@flywheel-io/vision 2.5.1 → 2.6.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.
@@ -11,6 +11,8 @@ export declare class FwAvatarComponent {
11
11
  imageUrl?: string;
12
12
  imageAltText?: string;
13
13
  icon?: IconType;
14
+ bordered: boolean;
15
+ get borderClass(): boolean;
14
16
  selected: import("@angular/core").InputSignal<boolean>;
15
17
  colorSeed: import("@angular/core").ModelSignal<string>;
16
18
  get selectedClassApplied(): boolean;
@@ -20,6 +22,6 @@ export declare class FwAvatarComponent {
20
22
  loadImage(): void;
21
23
  errorImage(): void;
22
24
  static ɵfac: i0.ɵɵFactoryDeclaration<FwAvatarComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<FwAvatarComponent, "fw-avatar", never, { "color": { "alias": "color"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "content": { "alias": "content"; "required": false; }; "size": { "alias": "size"; "required": false; }; "initial": { "alias": "initial"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "imageAltText": { "alias": "imageAltText"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "colorSeed": { "alias": "colorSeed"; "required": false; "isSignal": true; }; }, { "colorSeed": "colorSeedChange"; }, never, never, false, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<FwAvatarComponent, "fw-avatar", never, { "color": { "alias": "color"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "content": { "alias": "content"; "required": false; }; "size": { "alias": "size"; "required": false; }; "initial": { "alias": "initial"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "imageAltText": { "alias": "imageAltText"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "colorSeed": { "alias": "colorSeed"; "required": false; "isSignal": true; }; }, { "colorSeed": "colorSeedChange"; }, never, never, false, never>;
24
26
  }
25
27
  export {};
@@ -0,0 +1,22 @@
1
+ import { ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
2
+ import { FwAvatarComponent } from '../avatar/avatar.component';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Component for displaying and managing the overflow of a list of `fw-avatar`s
6
+ * @see [Vision Docs](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-avatar-list--docs)
7
+ */
8
+ export declare class FwAvatarListComponent implements OnInit {
9
+ hostElement: ElementRef<any>;
10
+ avatars: import("@angular/core").Signal<readonly FwAvatarComponent[]>;
11
+ avatarElementRefs: import("@angular/core").Signal<readonly ElementRef<any>[]>;
12
+ moreText: import("@angular/core").Signal<ElementRef<HTMLParagraphElement>>;
13
+ changeDetector: ChangeDetectorRef;
14
+ resizeDebounceMs: import("@angular/core").InputSignal<number>;
15
+ ngOnInit(): void;
16
+ applyBorderToChildAvatars: import("@angular/core").EffectRef;
17
+ childrenChanged: import("@angular/core").EffectRef;
18
+ hiddenAvatars: import("@angular/core").WritableSignal<any[]>;
19
+ calcChipOverflow(): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<FwAvatarListComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<FwAvatarListComponent, "fw-avatar-list", never, { "resizeDebounceMs": { "alias": "resizeDebounceMs"; "required": false; "isSignal": true; }; }, {}, ["avatars", "avatarElementRefs"], ["fw-avatar"], true, never>;
22
+ }
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export declare class FwDialogSimpleComponent {
6
6
  dialogRef: DialogRef;
7
7
  private elementRef;
8
- width?: 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large';
8
+ width?: 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large' | 'responsive';
9
9
  title?: string;
10
10
  icon?: IconType;
11
11
  iconColor?: 'primary' | 'secondary' | 'red' | 'orange' | 'green' | 'slate';
@@ -7,12 +7,13 @@ export declare enum DialogWidth {
7
7
  Small = "small",
8
8
  Medium = "medium",
9
9
  Large = "large",
10
- ExtraLarge = "extra-large"
10
+ ExtraLarge = "extra-large",
11
+ Responsive = "responsive"
11
12
  }
12
13
  export declare class FwDialogComponent {
13
14
  protected dialogRef: DialogRef;
14
15
  private elementRef;
15
- width?: 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large';
16
+ width?: 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large' | 'responsive';
16
17
  title?: string;
17
18
  icon?: IconType;
18
19
  iconColor?: 'primary' | 'secondary' | 'red' | 'orange' | 'green' | 'slate';
@@ -13,6 +13,7 @@ export declare class FwDialogService extends Dialog {
13
13
  */
14
14
  openDialog<T>(component: ComponentType<T>, config?: DialogConfig & {
15
15
  canCloseCheck?: () => boolean;
16
+ responsive?: boolean;
16
17
  }, topOffset?: string): DialogRef<unknown, any>;
17
18
  openModalDialog<T>(component: ComponentType<T>, config?: DialogConfig, topOffset?: string): DialogRef<unknown, any>;
18
19
  closeWithAnimation(dialogRef: DialogRef<any>): void;
@@ -54,7 +54,7 @@ export declare class FwMultiSelectMenuComponent implements ControlValueAccessor,
54
54
  private _value;
55
55
  constructor(_changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef);
56
56
  tabIndex: number;
57
- pointerEvents: string;
57
+ get pointerEvents(): string;
58
58
  onChange: (value: any[]) => void;
59
59
  onTouched: () => void;
60
60
  registerOnChange(fn: (value: any[]) => void): void;
@@ -1,35 +1,18 @@
1
1
  const accesibilityPallete = [
2
- '#00c0cb',
3
- '#ffff00',
4
- '#00ff00',
5
- '#80d8c7',
6
- '#ffff80',
7
- '#80ff80',
8
- '#00ff00',
9
- '#ffe0b0',
10
- '#c0ffc0',
11
- '#80c0ff',
12
- '#ff8000',
13
- '#80d8c7',
14
- '#b080ff',
15
- '#ffc080',
16
- '#c0ffc0',
17
- '#ff69b4',
18
- '#fff0d0',
19
- '#ff8080',
20
- '#ff6040',
21
- '#40e0e0',
22
- '#ff6930',
23
- '#ffc0c0',
24
- '#80e0e0',
25
- '#ff8000',
26
- '#c0f0f0',
27
- '#ffc000',
28
- '#ffb0c0',
29
- '#b0d0ff',
30
- '#f0f0c0',
31
- '#ffc0e0',
32
- '#d0e0ff',
2
+ '#1B68FA',
3
+ '#D73D3D',
4
+ '#FF8C00',
5
+ '#C47E09',
6
+ '#B080FC',
7
+ '#14AE5C',
8
+ '#FF6347',
9
+ '#F28B8B',
10
+ '#FF69B4',
11
+ '#748295',
12
+ '#9CCEF9',
13
+ '#00FF00',
14
+ '#66CDAA',
15
+ '#00CED1',
33
16
  ];
34
17
  export const hashCode = (str) => {
35
18
  let hash = 0;
@@ -42,4 +25,4 @@ export const pickColorViaHash = (seed = '') => {
42
25
  const hash = hashCode(seed);
43
26
  return accesibilityPallete[hash % (accesibilityPallete.length - 1)];
44
27
  };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29sb3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0NBQ1YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBVSxFQUFFO0lBQzlDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDcEMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBVSxFQUFFO0lBQ3BELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixPQUFPLG1CQUFtQixDQUFDLElBQUksR0FBRyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3JFLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgYWNjZXNpYmlsaXR5UGFsbGV0ZSA9IFtcbiAgJyMwMGMwY2InLFxuICAnI2ZmZmYwMCcsXG4gICcjMDBmZjAwJyxcbiAgJyM4MGQ4YzcnLFxuICAnI2ZmZmY4MCcsXG4gICcjODBmZjgwJyxcbiAgJyMwMGZmMDAnLFxuICAnI2ZmZTBiMCcsXG4gICcjYzBmZmMwJyxcbiAgJyM4MGMwZmYnLFxuICAnI2ZmODAwMCcsXG4gICcjODBkOGM3JyxcbiAgJyNiMDgwZmYnLFxuICAnI2ZmYzA4MCcsXG4gICcjYzBmZmMwJyxcbiAgJyNmZjY5YjQnLFxuICAnI2ZmZjBkMCcsXG4gICcjZmY4MDgwJyxcbiAgJyNmZjYwNDAnLFxuICAnIzQwZTBlMCcsXG4gICcjZmY2OTMwJyxcbiAgJyNmZmMwYzAnLFxuICAnIzgwZTBlMCcsXG4gICcjZmY4MDAwJyxcbiAgJyNjMGYwZjAnLFxuICAnI2ZmYzAwMCcsXG4gICcjZmZiMGMwJyxcbiAgJyNiMGQwZmYnLFxuICAnI2YwZjBjMCcsXG4gICcjZmZjMGUwJyxcbiAgJyNkMGUwZmYnLFxuXVxuXG5leHBvcnQgY29uc3QgaGFzaENvZGUgPSAoc3RyOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xuICBsZXQgaGFzaCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgaGFzaCA9IHN0ci5jaGFyQ29kZUF0KGkpICsgKChoYXNoIDw8IDUpIC0gaGFzaCk7XG4gIH1cbiAgcmV0dXJuIE1hdGguYWJzKGhhc2gpO1xufVxuXG5leHBvcnQgY29uc3QgcGlja0NvbG9yVmlhSGFzaCA9IChzZWVkID0gJycpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBoYXNoID0gaGFzaENvZGUoc2VlZCk7XG4gIHJldHVybiBhY2Nlc2liaWxpdHlQYWxsZXRlW2hhc2ggJSAoYWNjZXNpYmlsaXR5UGFsbGV0ZS5sZW5ndGggLSAxKV1cbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29sb3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztDQUNWLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUM5QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLElBQUksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQVUsRUFBRTtJQUNwRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNyRSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcbmNvbnN0IGFjY2VzaWJpbGl0eVBhbGxldGUgPSBbXG4gICcjMUI2OEZBJyxcbiAgJyNENzNEM0QnLFxuICAnI0ZGOEMwMCcsXG4gICcjQzQ3RTA5JyxcbiAgJyNCMDgwRkMnLFxuICAnIzE0QUU1QycsXG4gICcjRkY2MzQ3JyxcbiAgJyNGMjhCOEInLFxuICAnI0ZGNjlCNCcsXG4gICcjNzQ4Mjk1JyxcbiAgJyM5Q0NFRjknLFxuICAnIzAwRkYwMCcsXG4gICcjNjZDREFBJyxcbiAgJyMwMENFRDEnLFxuXVxuXG5leHBvcnQgY29uc3QgaGFzaENvZGUgPSAoc3RyOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xuICBsZXQgaGFzaCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgaGFzaCA9IHN0ci5jaGFyQ29kZUF0KGkpICsgKChoYXNoIDw8IDUpIC0gaGFzaCk7XG4gIH1cbiAgcmV0dXJuIE1hdGguYWJzKGhhc2gpO1xufVxuXG5leHBvcnQgY29uc3QgcGlja0NvbG9yVmlhSGFzaCA9IChzZWVkID0gJycpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBoYXNoID0gaGFzaENvZGUoc2VlZCk7XG4gIHJldHVybiBhY2Nlc2liaWxpdHlQYWxsZXRlW2hhc2ggJSAoYWNjZXNpYmlsaXR5UGFsbGV0ZS5sZW5ndGggLSAxKV1cbn1cbiJdfQ==
@@ -22,6 +22,7 @@ export class FwAvatarComponent {
22
22
  this.imageUrl = '';
23
23
  this.imageAltText = '';
24
24
  this.icon = 'user';
25
+ this.bordered = false;
25
26
  this.selected = input(false);
26
27
  this.colorSeed = model();
27
28
  this.hasedColor = computed(() => pickColorViaHash(this.colorSeed()));
@@ -32,6 +33,7 @@ export class FwAvatarComponent {
32
33
  return [this.size, this.variant, this.content, 'selected'].filter(Boolean).join(' ');
33
34
  }
34
35
  ;
36
+ get borderClass() { return this.bordered; }
35
37
  get selectedClassApplied() { return this.selected(); }
36
38
  loadImage() {
37
39
  this.isImageBroken = false;
@@ -40,11 +42,11 @@ export class FwAvatarComponent {
40
42
  this.isImageBroken = true;
41
43
  }
42
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: FwAvatarComponent, selector: "fw-avatar", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, initial: { classPropertyName: "initial", publicName: "initial", isSignal: false, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: false, isRequired: false, transformFunction: null }, imageAltText: { classPropertyName: "imageAltText", publicName: "imageAltText", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, colorSeed: { classPropertyName: "colorSeed", publicName: "colorSeed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorSeed: "colorSeedChange" }, host: { properties: { "attr.class": "this.classes", "class.selected": "this.selectedClassApplied" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"content\">\n <div [style.backgroundColor]=\"colorToDisplay()\" *ngSwitchCase=\"'image'\" class=\"avatar\">\n <img\n *ngIf=\"!isImageBroken else displayInitial\"\n [src]=\"imageUrl\"\n [alt]=\"imageAltText\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n </div>\n <div *ngSwitchCase=\"'icon'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayIcon\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'initial'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayInitial\"></ng-container>\n </div>\n</ng-container>\n<ng-template #displayInitial>\n <span class=\"initial\" *ngIf=\"initial else displayIcon\">{{ initial }}</span>\n</ng-template>\n<ng-template #displayIcon>\n <fw-icon>{{ icon }}</fw-icon>\n</ng-template>\n", styles: [":host-context(.selected):after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selected:after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: FwAvatarComponent, selector: "fw-avatar", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, initial: { classPropertyName: "initial", publicName: "initial", isSignal: false, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: false, isRequired: false, transformFunction: null }, imageAltText: { classPropertyName: "imageAltText", publicName: "imageAltText", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, colorSeed: { classPropertyName: "colorSeed", publicName: "colorSeed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorSeed: "colorSeedChange" }, host: { properties: { "attr.class": "this.classes", "class.bordered": "this.borderClass", "class.selected": "this.selectedClassApplied" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"content\">\n <div [style.backgroundColor]=\"colorToDisplay()\" *ngSwitchCase=\"'image'\" class=\"avatar\">\n <img\n *ngIf=\"!isImageBroken else displayInitial\"\n [src]=\"imageUrl\"\n [alt]=\"imageAltText\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n </div>\n <div *ngSwitchCase=\"'icon'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayIcon\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'initial'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayInitial\"></ng-container>\n </div>\n</ng-container>\n<ng-template #displayInitial>\n <span class=\"initial\" *ngIf=\"initial else displayIcon\">{{ initial }}</span>\n</ng-template>\n<ng-template #displayIcon>\n <fw-icon>{{ icon }}</fw-icon>\n</ng-template>\n", styles: [":host-context(.selected):after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host.bordered:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:inherit;top:-1px;left:-1px;border:1px solid var(--separations-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selected:after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
44
46
  }
45
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwAvatarComponent, decorators: [{
46
48
  type: Component,
47
- args: [{ selector: 'fw-avatar', template: "<ng-container [ngSwitch]=\"content\">\n <div [style.backgroundColor]=\"colorToDisplay()\" *ngSwitchCase=\"'image'\" class=\"avatar\">\n <img\n *ngIf=\"!isImageBroken else displayInitial\"\n [src]=\"imageUrl\"\n [alt]=\"imageAltText\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n </div>\n <div *ngSwitchCase=\"'icon'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayIcon\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'initial'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayInitial\"></ng-container>\n </div>\n</ng-container>\n<ng-template #displayInitial>\n <span class=\"initial\" *ngIf=\"initial else displayIcon\">{{ initial }}</span>\n</ng-template>\n<ng-template #displayIcon>\n <fw-icon>{{ icon }}</fw-icon>\n</ng-template>\n", styles: [":host-context(.selected):after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selected:after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"] }]
49
+ args: [{ selector: 'fw-avatar', template: "<ng-container [ngSwitch]=\"content\">\n <div [style.backgroundColor]=\"colorToDisplay()\" *ngSwitchCase=\"'image'\" class=\"avatar\">\n <img\n *ngIf=\"!isImageBroken else displayInitial\"\n [src]=\"imageUrl\"\n [alt]=\"imageAltText\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n </div>\n <div *ngSwitchCase=\"'icon'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayIcon\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'initial'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayInitial\"></ng-container>\n </div>\n</ng-container>\n<ng-template #displayInitial>\n <span class=\"initial\" *ngIf=\"initial else displayIcon\">{{ initial }}</span>\n</ng-template>\n<ng-template #displayIcon>\n <fw-icon>{{ icon }}</fw-icon>\n</ng-template>\n", styles: [":host-context(.selected):after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host.bordered:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:inherit;top:-1px;left:-1px;border:1px solid var(--separations-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selected:after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"] }]
48
50
  }], propDecorators: { classes: [{
49
51
  type: HostBinding,
50
52
  args: ['attr.class']
@@ -64,8 +66,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
64
66
  type: Input
65
67
  }], icon: [{
66
68
  type: Input
69
+ }], bordered: [{
70
+ type: Input
71
+ }], borderClass: [{
72
+ type: HostBinding,
73
+ args: ['class.bordered']
67
74
  }], selectedClassApplied: [{
68
75
  type: HostBinding,
69
76
  args: ['class.selected']
70
77
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFLckQsTUFBTSxhQUFhLEdBQXlDO0lBQzFELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsU0FBUyxFQUFFLHVCQUF1QjtJQUNsQyxHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLGFBQWEsRUFBRSxvQkFBb0I7SUFDbkMsS0FBSyxFQUFFLG1CQUFtQjtJQUMxQixPQUFPLEVBQUUsb0JBQW9CO0lBQzdCLE9BQU8sRUFBRSxtQkFBbUI7Q0FDN0IsQ0FBQTtBQU1ELE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFXVyxVQUFLLEdBQXVCLFNBQVMsQ0FBQztRQUN0QyxZQUFPLEdBQXVDLFVBQVUsQ0FBQztRQUN6RCxZQUFPLEdBQWtDLE1BQU0sQ0FBQztRQUNoRCxTQUFJLEdBQThDLE9BQU8sQ0FBQztRQUMxRCxZQUFPLEdBQVksRUFBRSxDQUFDO1FBQ3RCLGFBQVEsR0FBWSxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBWSxFQUFFLENBQUM7UUFDM0IsU0FBSSxHQUFjLE1BQU0sQ0FBQztRQUNsQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUk1QixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFaEUsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVsRyxrQkFBYSxHQUFZLEtBQUssQ0FBQztLQVNoQztJQS9CQyxJQUErQixPQUFPO1FBRXBDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFBQSxDQUFDO0lBYUYsSUFBbUMsb0JBQW9CLEtBQWMsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBUTlGLFNBQVM7UUFDUCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7K0dBL0JVLGlCQUFpQjttR0FBakIsaUJBQWlCLHM4Q0NyQjlCLDY0QkFzQkE7OzRGRERhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxXQUFXOzhCQUtVLE9BQU87c0JBQXJDLFdBQVc7dUJBQUMsWUFBWTtnQkFLaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUk2QixvQkFBb0I7c0JBQXRELFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCxIb3N0QmluZGluZywgSW5wdXQsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBwaWNrQ29sb3JWaWFIYXNoIH0gZnJvbSAnLi4vLi4vY29sb3IudXRpbHMnO1xuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9pY29uL2ljb24udHlwZXMnO1xuXG50eXBlIEF2YXRhckNvbG9yT3B0aW9uID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdsaWdodC1zbGF0ZScgfCAnc2xhdGUnIHwgJ3dhcm5pbmcnIHwgJ3N1Y2Nlc3MnO1xuXG5jb25zdCBuYW1lZENvbG9yTWFwOiB7IFtLIGluIEF2YXRhckNvbG9yT3B0aW9uXTogc3RyaW5nIH0gPSB7XG4gIHByaW1hcnk6ICd2YXIoLS1wcmltYXJ5LWJhc2UpJyxcbiAgc2Vjb25kYXJ5OiAndmFyKC0tc2Vjb25kYXJ5LWJhc2UpJyxcbiAgcmVkOiAndmFyKC0tcmVkLWJhc2UpJyxcbiAgJ2xpZ2h0LXNsYXRlJzogJ3ZhcigtLXNsYXRlLWxpZ2h0KScsXG4gIHNsYXRlOiAndmFyKC0tc2xhdGUtYmFzZSknLFxuICB3YXJuaW5nOiAndmFyKC0tb3JhbmdlLWJhc2UpJyxcbiAgc3VjY2VzczogJ3ZhcigtLWdyZWVuLWJhc2UpJyxcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LWF2YXRhcicsXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRndBdmF0YXJDb21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuY2xhc3MnKSBnZXQgY2xhc3NlcygpOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIFt0aGlzLnNpemUsIHRoaXMudmFyaWFudCwgdGhpcy5jb250ZW50LCAnc2VsZWN0ZWQnXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICB9O1xuXG4gIEBJbnB1dCgpIGNvbG9yPzogQXZhdGFyQ29sb3JPcHRpb24gPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHZhcmlhbnQ/OiAnY2lyY3VsYXInIHwgJ3JvdW5kZWQnIHwgJ3NxdWFyZScgPSAnY2lyY3VsYXInO1xuICBASW5wdXQoKSBjb250ZW50PzogJ2ltYWdlJyB8ICdpY29uJyB8ICdpbml0aWFsJyA9ICdpY29uJztcbiAgQElucHV0KCkgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneC1sYXJnZScgPSAnc21hbGwnO1xuICBASW5wdXQoKSBpbml0aWFsPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGltYWdlVXJsPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGltYWdlQWx0VGV4dD86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpY29uPzogSWNvblR5cGUgPSAndXNlcic7XG4gIHNlbGVjdGVkID0gaW5wdXQoZmFsc2UpO1xuICBjb2xvclNlZWQgPSBtb2RlbDxzdHJpbmc+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIGdldCBzZWxlY3RlZENsYXNzQXBwbGllZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWQoKTsgfVxuXG4gIGhhc2VkQ29sb3IgPSBjb21wdXRlZCgoKSA9PiBwaWNrQ29sb3JWaWFIYXNoKHRoaXMuY29sb3JTZWVkKCkpKTtcblxuICBjb2xvclRvRGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29sb3JTZWVkKCkgPyB0aGlzLmhhc2VkQ29sb3IoKSA6IG5hbWVkQ29sb3JNYXBbdGhpcy5jb2xvcl0pO1xuXG4gIGlzSW1hZ2VCcm9rZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBsb2FkSW1hZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ltYWdlQnJva2VuID0gZmFsc2U7XG4gIH1cblxuICBlcnJvckltYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbWFnZUJyb2tlbiA9IHRydWU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRlbnRcIj5cbiAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImNvbG9yVG9EaXNwbGF5KClcIiAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiIGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgPGltZ1xuICAgICAgKm5nSWY9XCIhaXNJbWFnZUJyb2tlbiBlbHNlIGRpc3BsYXlJbml0aWFsXCJcbiAgICAgIFtzcmNdPVwiaW1hZ2VVcmxcIlxuICAgICAgW2FsdF09XCJpbWFnZUFsdFRleHRcIlxuICAgICAgKGxvYWQpPVwibG9hZEltYWdlKClcIlxuICAgICAgKGVycm9yKT1cImVycm9ySW1hZ2UoKVwiPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2xvclRvRGlzcGxheSgpXCIgY2xhc3M9XCJhdmF0YXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlzcGxheUljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidpbml0aWFsJ1wiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiY29sb3JUb0Rpc3BsYXkoKVwiIGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpc3BsYXlJbml0aWFsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2Rpc3BsYXlJbml0aWFsPlxuICA8c3BhbiBjbGFzcz1cImluaXRpYWxcIiAqbmdJZj1cImluaXRpYWwgZWxzZSBkaXNwbGF5SWNvblwiPnt7IGluaXRpYWwgfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkaXNwbGF5SWNvbj5cbiAgPGZ3LWljb24+e3sgaWNvbiB9fTwvZnctaWNvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFLckQsTUFBTSxhQUFhLEdBQXlDO0lBQzFELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsU0FBUyxFQUFFLHVCQUF1QjtJQUNsQyxHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLGFBQWEsRUFBRSxvQkFBb0I7SUFDbkMsS0FBSyxFQUFFLG1CQUFtQjtJQUMxQixPQUFPLEVBQUUsb0JBQW9CO0lBQzdCLE9BQU8sRUFBRSxtQkFBbUI7Q0FDN0IsQ0FBQTtBQU1ELE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFZVyxVQUFLLEdBQXVCLFNBQVMsQ0FBQztRQUN0QyxZQUFPLEdBQXVDLFVBQVUsQ0FBQztRQUN6RCxZQUFPLEdBQWtDLE1BQU0sQ0FBQztRQUNoRCxTQUFJLEdBQThDLE9BQU8sQ0FBQztRQUMxRCxZQUFPLEdBQVksRUFBRSxDQUFDO1FBQ3RCLGFBQVEsR0FBWSxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBWSxFQUFFLENBQUM7UUFDM0IsU0FBSSxHQUFjLE1BQU0sQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBSTVCLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRSxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWxHLGtCQUFhLEdBQVksS0FBSyxDQUFDO0tBU2hDO0lBbENDLElBQStCLE9BQU87UUFFcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUFBLENBQUM7SUFZRixJQUFtQyxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUkxRSxJQUFtQyxvQkFBb0IsS0FBYyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFROUYsU0FBUztRQUNQLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQzsrR0FsQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsOG1EQ3JCOUIsNjRCQXNCQTs7NEZERGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7OEJBS1UsT0FBTztzQkFBckMsV0FBVzt1QkFBQyxZQUFZO2dCQU1oQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDNkIsV0FBVztzQkFBN0MsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBSU0sb0JBQW9CO3NCQUF0RCxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsSG9zdEJpbmRpbmcsIElucHV0LCBpbnB1dCwgbW9kZWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgcGlja0NvbG9yVmlhSGFzaCB9IGZyb20gJy4uLy4uL2NvbG9yLnV0aWxzJztcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vaWNvbi9pY29uLnR5cGVzJztcblxudHlwZSBBdmF0YXJDb2xvck9wdGlvbiA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3JlZCcgfCAnbGlnaHQtc2xhdGUnIHwgJ3NsYXRlJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJztcblxuY29uc3QgbmFtZWRDb2xvck1hcDogeyBbSyBpbiBBdmF0YXJDb2xvck9wdGlvbl06IHN0cmluZyB9ID0ge1xuICBwcmltYXJ5OiAndmFyKC0tcHJpbWFyeS1iYXNlKScsXG4gIHNlY29uZGFyeTogJ3ZhcigtLXNlY29uZGFyeS1iYXNlKScsXG4gIHJlZDogJ3ZhcigtLXJlZC1iYXNlKScsXG4gICdsaWdodC1zbGF0ZSc6ICd2YXIoLS1zbGF0ZS1saWdodCknLFxuICBzbGF0ZTogJ3ZhcigtLXNsYXRlLWJhc2UpJyxcbiAgd2FybmluZzogJ3ZhcigtLW9yYW5nZS1iYXNlKScsXG4gIHN1Y2Nlc3M6ICd2YXIoLS1ncmVlbi1iYXNlKScsXG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy1hdmF0YXInLFxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZ3QXZhdGFyQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmNsYXNzJykgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcblxuICAgIHJldHVybiBbdGhpcy5zaXplLCB0aGlzLnZhcmlhbnQsIHRoaXMuY29udGVudCwgJ3NlbGVjdGVkJ10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbiAgfTtcblxuXG4gIEBJbnB1dCgpIGNvbG9yPzogQXZhdGFyQ29sb3JPcHRpb24gPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHZhcmlhbnQ/OiAnY2lyY3VsYXInIHwgJ3JvdW5kZWQnIHwgJ3NxdWFyZScgPSAnY2lyY3VsYXInO1xuICBASW5wdXQoKSBjb250ZW50PzogJ2ltYWdlJyB8ICdpY29uJyB8ICdpbml0aWFsJyA9ICdpY29uJztcbiAgQElucHV0KCkgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneC1sYXJnZScgPSAnc21hbGwnO1xuICBASW5wdXQoKSBpbml0aWFsPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGltYWdlVXJsPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGltYWdlQWx0VGV4dD86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpY29uPzogSWNvblR5cGUgPSAndXNlcic7XG4gIEBJbnB1dCgpIGJvcmRlcmVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYm9yZGVyZWQnKSBnZXQgYm9yZGVyQ2xhc3MoKSB7IHJldHVybiB0aGlzLmJvcmRlcmVkOyB9XG4gIHNlbGVjdGVkID0gaW5wdXQoZmFsc2UpO1xuICBjb2xvclNlZWQgPSBtb2RlbDxzdHJpbmc+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIGdldCBzZWxlY3RlZENsYXNzQXBwbGllZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWQoKTsgfVxuXG4gIGhhc2VkQ29sb3IgPSBjb21wdXRlZCgoKSA9PiBwaWNrQ29sb3JWaWFIYXNoKHRoaXMuY29sb3JTZWVkKCkpKTtcblxuICBjb2xvclRvRGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29sb3JTZWVkKCkgPyB0aGlzLmhhc2VkQ29sb3IoKSA6IG5hbWVkQ29sb3JNYXBbdGhpcy5jb2xvcl0pO1xuXG4gIGlzSW1hZ2VCcm9rZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBsb2FkSW1hZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ltYWdlQnJva2VuID0gZmFsc2U7XG4gIH1cblxuICBlcnJvckltYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbWFnZUJyb2tlbiA9IHRydWU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRlbnRcIj5cbiAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImNvbG9yVG9EaXNwbGF5KClcIiAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiIGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgPGltZ1xuICAgICAgKm5nSWY9XCIhaXNJbWFnZUJyb2tlbiBlbHNlIGRpc3BsYXlJbml0aWFsXCJcbiAgICAgIFtzcmNdPVwiaW1hZ2VVcmxcIlxuICAgICAgW2FsdF09XCJpbWFnZUFsdFRleHRcIlxuICAgICAgKGxvYWQpPVwibG9hZEltYWdlKClcIlxuICAgICAgKGVycm9yKT1cImVycm9ySW1hZ2UoKVwiPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2xvclRvRGlzcGxheSgpXCIgY2xhc3M9XCJhdmF0YXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlzcGxheUljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidpbml0aWFsJ1wiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiY29sb3JUb0Rpc3BsYXkoKVwiIGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpc3BsYXlJbml0aWFsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2Rpc3BsYXlJbml0aWFsPlxuICA8c3BhbiBjbGFzcz1cImluaXRpYWxcIiAqbmdJZj1cImluaXRpYWwgZWxzZSBkaXNwbGF5SWNvblwiPnt7IGluaXRpYWwgfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkaXNwbGF5SWNvbj5cbiAgPGZ3LWljb24+e3sgaWNvbiB9fTwvZnctaWNvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,87 @@
1
+ import { ChangeDetectorRef, Component, contentChildren, effect, ElementRef, inject, input, signal, viewChild } from '@angular/core';
2
+ import { BehaviorSubject, debounce, timer } from 'rxjs';
3
+ import { FwAvatarComponent } from '../avatar/avatar.component';
4
+ import { FwAvatarModule } from '../avatar/avatar.module';
5
+ import { FwTooltipModule } from '../tooltip/tooltip.module';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../tooltip/tooltip.component";
8
+ // the nature of this component is to handle a complex layout issue so disabling this lint rule
9
+ /* eslint-disable @rx-angular/prefer-no-layout-sensitive-apis */
10
+ /**
11
+ * Component for displaying and managing the overflow of a list of `fw-avatar`s
12
+ * @see [Vision Docs](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-avatar-list--docs)
13
+ */
14
+ export class FwAvatarListComponent {
15
+ constructor() {
16
+ this.hostElement = inject(ElementRef);
17
+ this.avatars = contentChildren(FwAvatarComponent);
18
+ this.avatarElementRefs = contentChildren(FwAvatarComponent, { read: ElementRef });
19
+ this.moreText = viewChild.required('moreText');
20
+ this.changeDetector = inject(ChangeDetectorRef);
21
+ this.resizeDebounceMs = input(100);
22
+ this.applyBorderToChildAvatars = effect(() => {
23
+ this.avatars().forEach(avatar => {
24
+ avatar.bordered = true;
25
+ });
26
+ });
27
+ this.childrenChanged = effect(() => {
28
+ this.avatarElementRefs();
29
+ this.calcChipOverflow();
30
+ }, { allowSignalWrites: true });
31
+ this.hiddenAvatars = signal([]);
32
+ }
33
+ ngOnInit() {
34
+ // wire up resize observer to rxjs and debouce
35
+ const resize$ = new BehaviorSubject(null);
36
+ const recalcOnResize$ = resize$.pipe(debounce(() => timer(this.resizeDebounceMs())));
37
+ const resizeObserver = new ResizeObserver(() => {
38
+ resize$.next();
39
+ });
40
+ resizeObserver.observe(this.hostElement.nativeElement, {});
41
+ recalcOnResize$.subscribe(() => this.calcChipOverflow());
42
+ }
43
+ calcChipOverflow() {
44
+ const hostRect = this.hostElement.nativeElement.getBoundingClientRect();
45
+ const avatarElements = this.avatarElementRefs().map(ref => ref.nativeElement);
46
+ const moreTextElement = this.moreText().nativeElement;
47
+ avatarElements.forEach(chip => chip.classList.remove('hidden'));
48
+ moreTextElement.classList.remove('hidden');
49
+ const visibleChips = avatarElements.filter(chip => {
50
+ const chipRect = chip.getBoundingClientRect();
51
+ return !(chipRect.right > hostRect.right || chipRect.bottom > hostRect.bottom);
52
+ });
53
+ const overflowingAvatars = avatarElements.toSpliced(0, visibleChips.length);
54
+ if (overflowingAvatars.length > 0) {
55
+ const lastVisibleAvatar = visibleChips[visibleChips.length - 1];
56
+ const enoughRoomForMoreText = (hostRect.right - lastVisibleAvatar.getBoundingClientRect().right) > (moreTextElement.offsetWidth);
57
+ if (!enoughRoomForMoreText) {
58
+ overflowingAvatars.push(lastVisibleAvatar);
59
+ }
60
+ // avatars are less wide than the text so we might need to hide 2 to make room for the text
61
+ // there's probably a fancy recursive solution here but ehhh
62
+ const secondLastVisibleAvatar = visibleChips[visibleChips.length - 2];
63
+ const needEvenMoreSpace = (hostRect.right - secondLastVisibleAvatar.getBoundingClientRect().right) > (moreTextElement.offsetWidth);
64
+ if (!needEvenMoreSpace) {
65
+ overflowingAvatars.push(secondLastVisibleAvatar);
66
+ }
67
+ this.hiddenAvatars.set(overflowingAvatars);
68
+ overflowingAvatars.forEach(hiddenChip => {
69
+ hiddenChip.classList.add('hidden');
70
+ });
71
+ }
72
+ else {
73
+ this.moreText().nativeElement.classList.add('hidden');
74
+ }
75
+ this.changeDetector.detectChanges();
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwAvatarListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: FwAvatarListComponent, isStandalone: true, selector: "fw-avatar-list", inputs: { resizeDebounceMs: { classPropertyName: "resizeDebounceMs", publicName: "resizeDebounceMs", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "avatars", predicate: FwAvatarComponent, isSignal: true }, { propertyName: "avatarElementRefs", predicate: FwAvatarComponent, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "moreText", first: true, predicate: ["moreText"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"fw-avatar\"></ng-content>\n<fw-tooltip> <!--TODO: figure out how to get a tooltip-->\n <p #moreText> +{{hiddenAvatars().length}} </p>\n</fw-tooltip>\n", styles: [":host{display:flex;align-items:center;flex-basis:max-content;flex-flow:row nowrap;justify-content:flex-start;max-height:36px;overflow:hidden}:host ::ng-deep fw-avatar:not(:first-child){margin-left:-4px}:host p{line-height:100%;cursor:default;margin:0;padding-left:8px;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FwAvatarModule }, { kind: "ngmodule", type: FwTooltipModule }, { kind: "component", type: i1.FwTooltipComponent, selector: "fw-tooltip", inputs: ["title", "color", "position", "maxWidth", "fullWidth", "isOpen", "trigger", "delay"] }] }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwAvatarListComponent, decorators: [{
81
+ type: Component,
82
+ args: [{ selector: 'fw-avatar-list', standalone: true, imports: [
83
+ FwAvatarModule,
84
+ FwTooltipModule,
85
+ ], template: "<ng-content select=\"fw-avatar\"></ng-content>\n<fw-tooltip> <!--TODO: figure out how to get a tooltip-->\n <p #moreText> +{{hiddenAvatars().length}} </p>\n</fw-tooltip>\n", styles: [":host{display:flex;align-items:center;flex-basis:max-content;flex-flow:row nowrap;justify-content:flex-start;max-height:36px;overflow:hidden}:host ::ng-deep fw-avatar:not(:first-child){margin-left:-4px}:host p{line-height:100%;cursor:default;margin:0;padding-left:8px;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"] }]
86
+ }] });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXZhdGFyLWxpc3QvYXZhdGFyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXZhdGFyLWxpc3QvYXZhdGFyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUU1RCwrRkFBK0Y7QUFDL0YsZ0VBQWdFO0FBR2hFOzs7R0FHRztBQVdILE1BQU0sT0FBTyxxQkFBcUI7SUFWbEM7UUFZRSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsZUFBZSxDQUFvQixpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLHNCQUFpQixHQUFHLGVBQWUsQ0FBZ0MsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM1RyxhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBbUMsVUFBVSxDQUFDLENBQUM7UUFDNUUsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBRyxLQUFL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aW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgY29udGVudENoaWxkcmVuLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2UsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZ3QXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRndBdmF0YXJNb2R1bGUgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLm1vZHVsZSc7XG5pbXBvcnQgeyBGd1Rvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcblxuLy8gdGhlIG5hdHVyZSBvZiB0aGlzIGNvbXBvbmVudCBpcyB0byBoYW5kbGUgYSBjb21wbGV4IGxheW91dCBpc3N1ZSBzbyBkaXNhYmxpbmcgdGhpcyBsaW50IHJ1bGVcbi8qIGVzbGludC1kaXNhYmxlIEByeC1hbmd1bGFyL3ByZWZlci1uby1sYXlvdXQtc2Vuc2l0aXZlLWFwaXMgKi9cblxuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyBhbmQgbWFuYWdpbmcgdGhlIG92ZXJmbG93IG9mIGEgbGlzdCBvZiBgZnctYXZhdGFyYHNcbiAqIEBzZWUgW1Zpc2lvbiBEb2NzXShodHRwczovL2Nkbi5mbHl3aGVlbC5pby9kb2NzL3Zpc2lvbi9tYXN0ZXIvP3BhdGg9L2RvY3MvY29tcG9uZW50cy1hdmF0YXItbGlzdC0tZG9jcylcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctYXZhdGFyLWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRndBdmF0YXJNb2R1bGUsXG4gICAgRndUb29sdGlwTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXZhdGFyLWxpc3QuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGd0F2YXRhckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBhdmF0YXJzID0gY29udGVudENoaWxkcmVuPEZ3QXZhdGFyQ29tcG9uZW50PihGd0F2YXRhckNvbXBvbmVudCk7XG4gIGF2YXRhckVsZW1lbnRSZWZzID0gY29udGVudENoaWxkcmVuPEZ3QXZhdGFyQ29tcG9uZW50LCBFbGVtZW50UmVmPihGd0F2YXRhckNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICBtb3JlVGV4dCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxQYXJhZ3JhcGhFbGVtZW50Pj4oJ21vcmVUZXh0Jyk7XG4gIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVzaXplRGVib3VuY2VNcyA9IGlucHV0KDEwMCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gd2lyZSB1cCByZXNpemUgb2JzZXJ2ZXIgdG8gcnhqcyBhbmQgZGVib3VjZVxuICAgIGNvbnN0IHJlc2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KG51bGwpO1xuICAgIGNvbnN0IHJlY2FsY09uUmVzaXplJCA9IHJlc2l6ZSQucGlwZShcbiAgICAgIGRlYm91bmNlKCgpID0+IHRpbWVyKHRoaXMucmVzaXplRGVib3VuY2VNcygpKSksIC8vIGRlYm91bmNlIG90aGVyd2lzZSBpdCBjYW4gcnVuIEVWRVJZIGZyYW1lXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIHJlc2l6ZSQubmV4dCgpO1xuICAgIH0pXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHsgfSk7XG4gICAgcmVjYWxjT25SZXNpemUkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNhbGNDaGlwT3ZlcmZsb3coKSk7XG4gIH1cblxuICBhcHBseUJvcmRlclRvQ2hpbGRBdmF0YXJzID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmF2YXRhcnMoKS5mb3JFYWNoKGF2YXRhciA9PiB7XG4gICAgICBhdmF0YXIuYm9yZGVyZWQgPSB0cnVlXG4gICAgfSk7XG4gIH0pXG5cbiAgY2hpbGRyZW5DaGFuZ2VkID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmF2YXRhckVsZW1lbnRSZWZzKCk7XG4gICAgdGhpcy5jYWxjQ2hpcE92ZXJmbG93KCk7XG4gIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSlcblxuXG4gIGhpZGRlbkF2YXRhcnMgPSBzaWduYWwoW10pO1xuXG4gIGNhbGNDaGlwT3ZlcmZsb3coKTogdm9pZCB7XG5cbiAgICBjb25zdCBob3N0UmVjdCA9ICh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGF2YXRhckVsZW1lbnRzID0gdGhpcy5hdmF0YXJFbGVtZW50UmVmcygpLm1hcChyZWYgPT4gcmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuICAgIGNvbnN0IG1vcmVUZXh0RWxlbWVudCA9IHRoaXMubW9yZVRleHQoKS5uYXRpdmVFbGVtZW50O1xuXG4gICAgYXZhdGFyRWxlbWVudHMuZm9yRWFjaChjaGlwID0+IGNoaXAuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJykpO1xuICAgIG1vcmVUZXh0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcblxuICAgIGNvbnN0IHZpc2libGVDaGlwcyA9IGF2YXRhckVsZW1lbnRzLmZpbHRlcihjaGlwID0+IHtcbiAgICAgIGNvbnN0IGNoaXBSZWN0ID0gY2hpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHJldHVybiAhKGNoaXBSZWN0LnJpZ2h0ID4gaG9zdFJlY3QucmlnaHQgfHwgY2hpcFJlY3QuYm90dG9tID4gaG9zdFJlY3QuYm90dG9tKTtcbiAgICB9KVxuXG4gICAgY29uc3Qgb3ZlcmZsb3dpbmdBdmF0YXJzID0gYXZhdGFyRWxlbWVudHMudG9TcGxpY2VkKDAsIHZpc2libGVDaGlwcy5sZW5ndGgpO1xuXG4gICAgaWYgKG92ZXJmbG93aW5nQXZhdGFycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBsYXN0VmlzaWJsZUF2YXRhciA9IHZpc2libGVDaGlwc1t2aXNpYmxlQ2hpcHMubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBlbm91Z2hSb29tRm9yTW9yZVRleHQgPSAoaG9zdFJlY3QucmlnaHQgLSBsYXN0VmlzaWJsZUF2YXRhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCkgPiAobW9yZVRleHRFbGVtZW50Lm9mZnNldFdpZHRoKTtcblxuICAgICAgaWYgKCFlbm91Z2hSb29tRm9yTW9yZVRleHQpIHtcbiAgICAgICAgb3ZlcmZsb3dpbmdBdmF0YXJzLnB1c2gobGFzdFZpc2libGVBdmF0YXIpXG4gICAgICB9XG5cbiAgICAgIC8vIGF2YXRhcnMgYXJlIGxlc3Mgd2lkZSB0aGFuIHRoZSB0ZXh0IHNvIHdlIG1pZ2h0IG5lZWQgdG8gaGlkZSAyIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIHRleHRcbiAgICAgIC8vIHRoZXJlJ3MgcHJvYmFibHkgYSBmYW5jeSByZWN1cnNpdmUgc29sdXRpb24gaGVyZSBidXQgZWhoaFxuICAgICAgY29uc3Qgc2Vjb25kTGFzdFZpc2libGVBdmF0YXIgPSB2aXNpYmxlQ2hpcHNbdmlzaWJsZUNoaXBzLmxlbmd0aCAtIDJdO1xuICAgICAgY29uc3QgbmVlZEV2ZW5Nb3JlU3BhY2UgPSAoaG9zdFJlY3QucmlnaHQgLSBzZWNvbmRMYXN0VmlzaWJsZUF2YXRhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCkgPiAobW9yZVRleHRFbGVtZW50Lm9mZnNldFdpZHRoKTtcblxuICAgICAgaWYgKCFuZWVkRXZlbk1vcmVTcGFjZSkge1xuICAgICAgICBvdmVyZmxvd2luZ0F2YXRhcnMucHVzaChzZWNvbmRMYXN0VmlzaWJsZUF2YXRhcilcbiAgICAgIH1cblxuICAgICAgdGhpcy5oaWRkZW5BdmF0YXJzLnNldChvdmVyZmxvd2luZ0F2YXRhcnMpO1xuICAgICAgb3ZlcmZsb3dpbmdBdmF0YXJzLmZvckVhY2goaGlkZGVuQ2hpcCA9PiB7XG4gICAgICAgIGhpZGRlbkNoaXAuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vcmVUZXh0KCkubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJmdy1hdmF0YXJcIj48L25nLWNvbnRlbnQ+XG48ZnctdG9vbHRpcD4gPCEtLVRPRE86IGZpZ3VyZSBvdXQgaG93IHRvIGdldCBhIHRvb2x0aXAtLT5cbiAgPHAgI21vcmVUZXh0PiAre3toaWRkZW5BdmF0YXJzKCkubGVuZ3RofX0gPC9wPlxuPC9mdy10b29sdGlwPlxuIl19
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
102
102
  type: HostBinding,
103
103
  args: ['class']
104
104
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJsQyxZQUErQixTQUFvQixFQUFVLFVBQXNCO1FBQXBELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBcEIxRSxVQUFLLEdBQWtFLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFHOUYsY0FBUyxHQUFvRSxTQUFTLENBQUM7UUFDdkYsY0FBUyxHQUFhLElBQUksQ0FBQztRQVNwQyw0REFBNEQ7UUFDbEQsVUFBSyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RCxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWpFLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFHMUIsQ0FBQztJQUVELElBQTBCLE9BQU87UUFDL0IsTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUUvQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7b0JBQ3RELElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO29CQUMzQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQzdCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0FuRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNmpCQ1hwQyw4N0JBNkJBOzs0RkRsQmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBeUJmLFFBQVE7a0VBcEJaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVUsZUFBZTtzQkFBOUIsS0FBSzt1QkFBQyxPQUFPO2dCQUVKLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFPbUIsT0FBTztzQkFBaEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vaWNvbi9pY29uLnR5cGVzJztcbmltcG9ydCB7IERpYWxvZ1dpZHRoIH0gZnJvbSAnLi9kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctZGlhbG9nLXNpbXBsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctc2ltcGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ1NpbXBsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdpZHRoPzogJ2V4dHJhLXNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAnZXh0cmEtbGFyZ2UnID0gRGlhbG9nV2lkdGguRXh0cmFTbWFsbDtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb24/OiBJY29uVHlwZTtcbiAgQElucHV0KCkgaWNvbkNvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdvcmFuZ2UnIHwgJ2dyZWVuJyB8ICdzbGF0ZScgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNob3dDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25JY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25JY29uPzogSWNvblR5cGU7XG4gIEBJbnB1dCgpIGNvbnRlbnRUZXh0Pzogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NsYXNzJykgZXh0ZXJuYWxDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhbHRlcm5hdGVBY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIGlzQ2xvc2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzZXMoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIGNvbnN0IGNsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbENsYXNzZXMpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5leHRlcm5hbENsYXNzZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmV4dGVybmFsQ2xhc3NlcykpIHtcbiAgICAgICAgdGhpcy5leHRlcm5hbENsYXNzZXMuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY2xhc3NlcywgdGhpcy5leHRlcm5hbENsYXNzZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Nsb3NpbmcgPyAnZGlhbG9nLWNsb3NpbmcnIDogJyc7XG4gIH1cblxuICBoYW5kbGVDbG9zZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVdpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDbG9zaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIiwiPGZ3LWRpYWxvZ1xuICBbd2lkdGhdPVwid2lkdGhcIlxuICBbdGl0bGVdPVwidGl0bGVcIlxuICBbaWNvbl09XCJpY29uXCJcbiAgW2ljb25Db2xvcl09XCJpY29uQ29sb3JcIlxuICBbc2hvd0Nsb3NlXT1cInNob3dDbG9zZVwiXG4gIFtuZ0NsYXNzXT1cImRpYWxvZ0NsYXNzZXNcIj5cbiAgPGZ3LWRpYWxvZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZ3LWRpYWxvZy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDxwIGNsYXNzPVwidmlzaW9uLXAyIGRpYWxvZy1jb250ZW50LWRlZmF1bHRcIiAqbmdJZj1cImNvbnRlbnRUZXh0XCI+e3sgY29udGVudFRleHQgfX08L3A+XG4gIDwvZnctZGlhbG9nLWNvbnRlbnQ+XG4gIDxmdy1kaWFsb2ctYWN0aW9ucz5cbiAgICA8ZnctYnV0dG9uXG4gICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAqbmdJZj1cImFsdGVybmF0ZUJ1dHRvblRleHRcIlxuICAgICAgW2xlZnRJY29uXT1cImFsdGVybmF0ZUJ1dHRvbkljb25cIlxuICAgICAgKGNsaWNrKT1cImFsdGVybmF0ZUFjdGlvbi5lbWl0KClcIj5cbiAgICAgIHt7IGFsdGVybmF0ZUJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPjwvZGl2PlxuICAgIDxmdy1idXR0b24gdmFyaWFudD1cIm91dGxpbmVcIiAqbmdJZj1cImNhbmNlbEJ1dHRvblRleHRcIiAoY2xpY2spPVwiaGFuZGxlQ2xvc2VCdXR0b24oKVwiPlxuICAgICAge3sgY2FuY2VsQnV0dG9uVGV4dCB9fVxuICAgIDwvZnctYnV0dG9uPlxuICAgIDxmdy1idXR0b24gdmFyaWFudD1cInNvbGlkXCIgKm5nSWY9XCJhY3Rpb25CdXR0b25UZXh0XCIgKGNsaWNrKT1cImFjdGlvbi5lbWl0KClcIj5cbiAgICAgIHt7IGFjdGlvbkJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgPC9mdy1kaWFsb2ctYWN0aW9ucz5cbjwvZnctZGlhbG9nPlxuXG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJsQyxZQUErQixTQUFvQixFQUFVLFVBQXNCO1FBQXBELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBcEIxRSxVQUFLLEdBQWlGLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFHN0csY0FBUyxHQUFvRSxTQUFTLENBQUM7UUFDdkYsY0FBUyxHQUFhLElBQUksQ0FBQztRQVNwQyw0REFBNEQ7UUFDbEQsVUFBSyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RCxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWpFLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFHMUIsQ0FBQztJQUVELElBQTBCLE9BQU87UUFDL0IsTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUUvQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7b0JBQ3RELElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO29CQUMzQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQzdCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0FuRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNmpCQ1hwQyw4N0JBNkJBOzs0RkRsQmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBeUJmLFFBQVE7a0VBcEJaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVUsZUFBZTtzQkFBOUIsS0FBSzt1QkFBQyxPQUFPO2dCQUVKLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFPbUIsT0FBTztzQkFBaEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vaWNvbi9pY29uLnR5cGVzJztcbmltcG9ydCB7IERpYWxvZ1dpZHRoIH0gZnJvbSAnLi9kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctZGlhbG9nLXNpbXBsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctc2ltcGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ1NpbXBsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdpZHRoPzogJ2V4dHJhLXNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAnZXh0cmEtbGFyZ2UnIHwgJ3Jlc3BvbnNpdmUnID0gRGlhbG9nV2lkdGguRXh0cmFTbWFsbDtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb24/OiBJY29uVHlwZTtcbiAgQElucHV0KCkgaWNvbkNvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdvcmFuZ2UnIHwgJ2dyZWVuJyB8ICdzbGF0ZScgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNob3dDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25JY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25JY29uPzogSWNvblR5cGU7XG4gIEBJbnB1dCgpIGNvbnRlbnRUZXh0Pzogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NsYXNzJykgZXh0ZXJuYWxDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhbHRlcm5hdGVBY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIGlzQ2xvc2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzZXMoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIGNvbnN0IGNsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbENsYXNzZXMpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5leHRlcm5hbENsYXNzZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmV4dGVybmFsQ2xhc3NlcykpIHtcbiAgICAgICAgdGhpcy5leHRlcm5hbENsYXNzZXMuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY2xhc3NlcywgdGhpcy5leHRlcm5hbENsYXNzZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Nsb3NpbmcgPyAnZGlhbG9nLWNsb3NpbmcnIDogJyc7XG4gIH1cblxuICBoYW5kbGVDbG9zZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVdpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDbG9zaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIiwiPGZ3LWRpYWxvZ1xuICBbd2lkdGhdPVwid2lkdGhcIlxuICBbdGl0bGVdPVwidGl0bGVcIlxuICBbaWNvbl09XCJpY29uXCJcbiAgW2ljb25Db2xvcl09XCJpY29uQ29sb3JcIlxuICBbc2hvd0Nsb3NlXT1cInNob3dDbG9zZVwiXG4gIFtuZ0NsYXNzXT1cImRpYWxvZ0NsYXNzZXNcIj5cbiAgPGZ3LWRpYWxvZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZ3LWRpYWxvZy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDxwIGNsYXNzPVwidmlzaW9uLXAyIGRpYWxvZy1jb250ZW50LWRlZmF1bHRcIiAqbmdJZj1cImNvbnRlbnRUZXh0XCI+e3sgY29udGVudFRleHQgfX08L3A+XG4gIDwvZnctZGlhbG9nLWNvbnRlbnQ+XG4gIDxmdy1kaWFsb2ctYWN0aW9ucz5cbiAgICA8ZnctYnV0dG9uXG4gICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAqbmdJZj1cImFsdGVybmF0ZUJ1dHRvblRleHRcIlxuICAgICAgW2xlZnRJY29uXT1cImFsdGVybmF0ZUJ1dHRvbkljb25cIlxuICAgICAgKGNsaWNrKT1cImFsdGVybmF0ZUFjdGlvbi5lbWl0KClcIj5cbiAgICAgIHt7IGFsdGVybmF0ZUJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPjwvZGl2PlxuICAgIDxmdy1idXR0b24gdmFyaWFudD1cIm91dGxpbmVcIiAqbmdJZj1cImNhbmNlbEJ1dHRvblRleHRcIiAoY2xpY2spPVwiaGFuZGxlQ2xvc2VCdXR0b24oKVwiPlxuICAgICAge3sgY2FuY2VsQnV0dG9uVGV4dCB9fVxuICAgIDwvZnctYnV0dG9uPlxuICAgIDxmdy1idXR0b24gdmFyaWFudD1cInNvbGlkXCIgKm5nSWY9XCJhY3Rpb25CdXR0b25UZXh0XCIgKGNsaWNrKT1cImFjdGlvbi5lbWl0KClcIj5cbiAgICAgIHt7IGFjdGlvbkJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgPC9mdy1kaWFsb2ctYWN0aW9ucz5cbjwvZnctZGlhbG9nPlxuXG4iXX0=
@@ -11,6 +11,7 @@ export var DialogWidth;
11
11
  DialogWidth["Medium"] = "medium";
12
12
  DialogWidth["Large"] = "large";
13
13
  DialogWidth["ExtraLarge"] = "extra-large";
14
+ DialogWidth["Responsive"] = "responsive";
14
15
  })(DialogWidth || (DialogWidth = {}));
15
16
  export class FwDialogComponent {
16
17
  constructor(dialogRef, elementRef) {
@@ -63,11 +64,11 @@ export class FwDialogComponent {
63
64
  }, 300);
64
65
  }
65
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwDialogComponent, deps: [{ token: i1.DialogRef, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwDialogComponent, selector: "fw-dialog", inputs: { width: "width", title: "title", icon: "icon", iconColor: "iconColor", showClose: "showClose", externalClasses: ["class", "externalClasses"] }, outputs: { close: "close" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<div class=\"fw-dialog\">\n <fw-icon-button\n *ngIf=\"showClose\"\n tabindex=\"-1\" icon=\"close\" color=\"slate\"\n (click)=\"handleCloseButton()\">\n </fw-icon-button>\n <div class=\"dialog-header\">\n <ng-content select=\"fw-dialog-header\"></ng-content>\n <div class=\"dialog-title\" *ngIf=\"title\">\n <fw-icon *ngIf=\"icon\" [color]=\"iconColor\">{{ icon }}</fw-icon>\n <h3 class=\"vision-h3\">{{ title }}</h3>\n </div>\n </div>\n <div class=\"dialog-body\">\n <ng-content select=\"fw-dialog-content\"></ng-content>\n </div>\n <div class=\"dialog-actions\">\n <ng-content select=\"fw-dialog-actions\"></ng-content>\n </div>\n</div>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;background-color:var(--card-background);border:1px solid var(--separations-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host.dialog-width-extra-small{width:444px}:host.dialog-width-small{width:600px}:host.dialog-width-medium{width:900px}:host.dialog-width-large{width:1200px}:host.dialog-width-extra-large{width:1536px}:host .fw-dialog{position:relative}:host .fw-dialog fw-icon-button{position:absolute;top:4px;right:4px}:host .fw-dialog .dialog-header{background-color:var(--card-header)}:host .fw-dialog .dialog-header .dialog-title{display:flex;gap:8px;box-sizing:border-box;border-bottom:1px solid var(--separations-base);padding:12px 16px;height:44px;overflow:hidden;align-items:center}:host .fw-dialog .dialog-header .dialog-title fw-icon{font-size:22px}:host .fw-dialog .dialog-header .dialog-title h3{overflow:clip visible;min-width:0;white-space:nowrap;text-overflow:ellipsis;margin-right:30px;flex:1}:host .fw-dialog .dialog-header h3{margin:0}:host .fw-dialog .dialog-header:empty{display:none}:host .fw-dialog .dialog-body{background-color:var(--card-background);border-bottom:1px solid var(--separations-base)}:host .fw-dialog .dialog-body:empty{display:none}:host .fw-dialog .dialog-actions{padding:16px}:host .fw-dialog .dialog-actions:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FwIconButtonComponent, selector: "fw-icon-button", inputs: ["color", "icon", "size", "disabled", "selected"] }, { kind: "component", type: i4.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwDialogComponent, selector: "fw-dialog", inputs: { width: "width", title: "title", icon: "icon", iconColor: "iconColor", showClose: "showClose", externalClasses: ["class", "externalClasses"] }, outputs: { close: "close" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<div class=\"fw-dialog\">\n <fw-icon-button\n *ngIf=\"showClose\"\n tabindex=\"-1\" icon=\"close\" color=\"slate\"\n (click)=\"handleCloseButton()\">\n </fw-icon-button>\n <div class=\"dialog-header\">\n <ng-content select=\"fw-dialog-header\"></ng-content>\n <div class=\"dialog-title\" *ngIf=\"title\">\n <fw-icon *ngIf=\"icon\" [color]=\"iconColor\">{{ icon }}</fw-icon>\n <h3 class=\"vision-h3\">{{ title }}</h3>\n </div>\n </div>\n <div class=\"dialog-body\">\n <ng-content select=\"fw-dialog-content\"></ng-content>\n </div>\n <div class=\"dialog-actions\">\n <ng-content select=\"fw-dialog-actions\"></ng-content>\n </div>\n</div>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;background-color:var(--card-background);border:1px solid var(--separations-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host.dialog-width-extra-small{width:444px}:host.dialog-width-small{width:600px}:host.dialog-width-medium{width:900px}:host.dialog-width-large{width:1200px}:host.dialog-width-extra-large{width:1536px}:host.dialog-width-responsive{max-width:100vw;margin:0 12px}@media only screen and (width <= 575px){:host.dialog-width-responsive{max-height:92vh;margin-top:4vh;margin-bottom:4vh}:host.dialog-width-responsive .fw-dialog{border-radius:12px}:host.dialog-width-responsive .fw-dialog .dialog-body{max-height:65vh;overflow-y:auto;-webkit-overflow-scrolling:touch}:host.dialog-width-responsive .fw-dialog .dialog-body::-webkit-scrollbar{width:4px}:host.dialog-width-responsive .fw-dialog .dialog-body::-webkit-scrollbar-track{background:var(--separations-base)}:host.dialog-width-responsive .fw-dialog .dialog-body::-webkit-scrollbar-thumb{background:var(--slate-base);border-radius:2px}}@media only screen and (width >= 576px){:host.dialog-width-responsive{width:90vw;max-width:600px;margin:0}}@media only screen and (width >= 768px){:host.dialog-width-responsive{width:80vw;max-width:900px}:host.dialog-width-responsive .fw-dialog .dialog-body{max-height:70vh;overflow-y:auto}}@media only screen and (width >= 992px){:host.dialog-width-responsive{width:60vw;max-width:1200px}}@media only screen and (width >= 1200px){:host.dialog-width-responsive{width:50vw;max-width:1536px}}:host .fw-dialog{position:relative}:host .fw-dialog fw-icon-button{position:absolute;top:4px;right:4px}:host .fw-dialog .dialog-header{background-color:var(--card-header)}:host .fw-dialog .dialog-header .dialog-title{display:flex;gap:8px;box-sizing:border-box;border-bottom:1px solid var(--separations-base);padding:12px 16px;height:44px;overflow:hidden;align-items:center}:host .fw-dialog .dialog-header .dialog-title fw-icon{font-size:22px}:host .fw-dialog .dialog-header .dialog-title h3{overflow:clip visible;min-width:0;white-space:nowrap;text-overflow:ellipsis;margin-right:30px;flex:1}:host .fw-dialog .dialog-header h3{margin:0}:host .fw-dialog .dialog-header:empty{display:none}:host .fw-dialog .dialog-body{background-color:var(--card-background);border-bottom:1px solid var(--separations-base)}:host .fw-dialog .dialog-body:empty{display:none}:host .fw-dialog .dialog-actions{padding:16px}:host .fw-dialog .dialog-actions:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FwIconButtonComponent, selector: "fw-icon-button", inputs: ["color", "icon", "size", "disabled", "selected"] }, { kind: "component", type: i4.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
67
68
  }
68
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwDialogComponent, decorators: [{
69
70
  type: Component,
70
- args: [{ selector: 'fw-dialog', template: "<div class=\"fw-dialog\">\n <fw-icon-button\n *ngIf=\"showClose\"\n tabindex=\"-1\" icon=\"close\" color=\"slate\"\n (click)=\"handleCloseButton()\">\n </fw-icon-button>\n <div class=\"dialog-header\">\n <ng-content select=\"fw-dialog-header\"></ng-content>\n <div class=\"dialog-title\" *ngIf=\"title\">\n <fw-icon *ngIf=\"icon\" [color]=\"iconColor\">{{ icon }}</fw-icon>\n <h3 class=\"vision-h3\">{{ title }}</h3>\n </div>\n </div>\n <div class=\"dialog-body\">\n <ng-content select=\"fw-dialog-content\"></ng-content>\n </div>\n <div class=\"dialog-actions\">\n <ng-content select=\"fw-dialog-actions\"></ng-content>\n </div>\n</div>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;background-color:var(--card-background);border:1px solid var(--separations-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host.dialog-width-extra-small{width:444px}:host.dialog-width-small{width:600px}:host.dialog-width-medium{width:900px}:host.dialog-width-large{width:1200px}:host.dialog-width-extra-large{width:1536px}:host .fw-dialog{position:relative}:host .fw-dialog fw-icon-button{position:absolute;top:4px;right:4px}:host .fw-dialog .dialog-header{background-color:var(--card-header)}:host .fw-dialog .dialog-header .dialog-title{display:flex;gap:8px;box-sizing:border-box;border-bottom:1px solid var(--separations-base);padding:12px 16px;height:44px;overflow:hidden;align-items:center}:host .fw-dialog .dialog-header .dialog-title fw-icon{font-size:22px}:host .fw-dialog .dialog-header .dialog-title h3{overflow:clip visible;min-width:0;white-space:nowrap;text-overflow:ellipsis;margin-right:30px;flex:1}:host .fw-dialog .dialog-header h3{margin:0}:host .fw-dialog .dialog-header:empty{display:none}:host .fw-dialog .dialog-body{background-color:var(--card-background);border-bottom:1px solid var(--separations-base)}:host .fw-dialog .dialog-body:empty{display:none}:host .fw-dialog .dialog-actions{padding:16px}:host .fw-dialog .dialog-actions:empty{display:none}\n"] }]
71
+ args: [{ selector: 'fw-dialog', template: "<div class=\"fw-dialog\">\n <fw-icon-button\n *ngIf=\"showClose\"\n tabindex=\"-1\" icon=\"close\" color=\"slate\"\n (click)=\"handleCloseButton()\">\n </fw-icon-button>\n <div class=\"dialog-header\">\n <ng-content select=\"fw-dialog-header\"></ng-content>\n <div class=\"dialog-title\" *ngIf=\"title\">\n <fw-icon *ngIf=\"icon\" [color]=\"iconColor\">{{ icon }}</fw-icon>\n <h3 class=\"vision-h3\">{{ title }}</h3>\n </div>\n </div>\n <div class=\"dialog-body\">\n <ng-content select=\"fw-dialog-content\"></ng-content>\n </div>\n <div class=\"dialog-actions\">\n <ng-content select=\"fw-dialog-actions\"></ng-content>\n </div>\n</div>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;background-color:var(--card-background);border:1px solid var(--separations-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host.dialog-width-extra-small{width:444px}:host.dialog-width-small{width:600px}:host.dialog-width-medium{width:900px}:host.dialog-width-large{width:1200px}:host.dialog-width-extra-large{width:1536px}:host.dialog-width-responsive{max-width:100vw;margin:0 12px}@media only screen and (width <= 575px){:host.dialog-width-responsive{max-height:92vh;margin-top:4vh;margin-bottom:4vh}:host.dialog-width-responsive .fw-dialog{border-radius:12px}:host.dialog-width-responsive .fw-dialog .dialog-body{max-height:65vh;overflow-y:auto;-webkit-overflow-scrolling:touch}:host.dialog-width-responsive .fw-dialog .dialog-body::-webkit-scrollbar{width:4px}:host.dialog-width-responsive .fw-dialog .dialog-body::-webkit-scrollbar-track{background:var(--separations-base)}:host.dialog-width-responsive .fw-dialog .dialog-body::-webkit-scrollbar-thumb{background:var(--slate-base);border-radius:2px}}@media only screen and (width >= 576px){:host.dialog-width-responsive{width:90vw;max-width:600px;margin:0}}@media only screen and (width >= 768px){:host.dialog-width-responsive{width:80vw;max-width:900px}:host.dialog-width-responsive .fw-dialog .dialog-body{max-height:70vh;overflow-y:auto}}@media only screen and (width >= 992px){:host.dialog-width-responsive{width:60vw;max-width:1200px}}@media only screen and (width >= 1200px){:host.dialog-width-responsive{width:50vw;max-width:1536px}}:host .fw-dialog{position:relative}:host .fw-dialog fw-icon-button{position:absolute;top:4px;right:4px}:host .fw-dialog .dialog-header{background-color:var(--card-header)}:host .fw-dialog .dialog-header .dialog-title{display:flex;gap:8px;box-sizing:border-box;border-bottom:1px solid var(--separations-base);padding:12px 16px;height:44px;overflow:hidden;align-items:center}:host .fw-dialog .dialog-header .dialog-title fw-icon{font-size:22px}:host .fw-dialog .dialog-header .dialog-title h3{overflow:clip visible;min-width:0;white-space:nowrap;text-overflow:ellipsis;margin-right:30px;flex:1}:host .fw-dialog .dialog-header h3{margin:0}:host .fw-dialog .dialog-header:empty{display:none}:host .fw-dialog .dialog-body{background-color:var(--card-background);border-bottom:1px solid var(--separations-base)}:host .fw-dialog .dialog-body:empty{display:none}:host .fw-dialog .dialog-actions{padding:16px}:host .fw-dialog .dialog-actions:empty{display:none}\n"] }]
71
72
  }], ctorParameters: () => [{ type: i1.DialogRef, decorators: [{
72
73
  type: Optional
73
74
  }] }, { type: i0.ElementRef }], propDecorators: { width: [{
@@ -89,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
89
90
  type: HostBinding,
90
91
  args: ['class']
91
92
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUkxRyxNQUFNLENBQU4sSUFBWSxXQU1YO0FBTkQsV0FBWSxXQUFXO0lBQ3JCLHlDQUEwQixDQUFBO0lBQzFCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YseUNBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQU5XLFdBQVcsS0FBWCxXQUFXLFFBTXRCO0FBT0QsTUFBTSxPQUFPLGlCQUFpQjtJQWE1QixZQUFrQyxTQUFvQixFQUFVLFVBQXNCO1FBQXBELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWjdFLFVBQUssR0FBa0UsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUc5RixjQUFTLEdBQW9FLFNBQVMsQ0FBQztRQUN2RixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBR3BDLDREQUE0RDtRQUNsRCxVQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkQsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUcxQixDQUFDO0lBRUQsSUFBMEIsT0FBTztRQUMvQixNQUFNLE9BQU8sR0FBK0I7WUFDMUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNwQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNqQyxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO29CQUN0RCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQzdCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtvQkFDM0MsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUM3QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0ExRFUsaUJBQWlCO21HQUFqQixpQkFBaUIsMFJDbEI5QiwycUJBb0JBOzs0RkRGYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzs7MEJBaUJSLFFBQVE7a0VBWlosS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVVLGVBQWU7c0JBQTlCLEtBQUs7dUJBQUMsT0FBTztnQkFFSixLQUFLO3NCQUFkLE1BQU07Z0JBT21CLE9BQU87c0JBQWhDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uVHlwZSB9IGZyb20gJy4uL2ljb24vaWNvbi50eXBlcyc7XG5cbmV4cG9ydCBlbnVtIERpYWxvZ1dpZHRoIHtcbiAgRXh0cmFTbWFsbCA9ICdleHRyYS1zbWFsbCcsXG4gIFNtYWxsID0gJ3NtYWxsJyxcbiAgTWVkaXVtID0gJ21lZGl1bScsXG4gIExhcmdlID0gJ2xhcmdlJyxcbiAgRXh0cmFMYXJnZSA9ICdleHRyYS1sYXJnZSdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdpZHRoPzogJ2V4dHJhLXNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAnZXh0cmEtbGFyZ2UnID0gRGlhbG9nV2lkdGguRXh0cmFTbWFsbDtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb24/OiBJY29uVHlwZTtcbiAgQElucHV0KCkgaWNvbkNvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdvcmFuZ2UnIHwgJ2dyZWVuJyB8ICdzbGF0ZScgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNob3dDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NsYXNzJykgZXh0ZXJuYWxDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgaXNDbG9zaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGRpYWxvZ1JlZjogRGlhbG9nUmVmLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NlcygpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgY29uc3QgY2xhc3NlczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICBbYGRpYWxvZy13aWR0aC0ke3RoaXMud2lkdGh9YF06IHRydWUsXG4gICAgICAnZGlhbG9nLWNsb3NpbmcnOiB0aGlzLmlzQ2xvc2luZyxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuZXh0ZXJuYWxDbGFzc2VzKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuZXh0ZXJuYWxDbGFzc2VzID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmV4dGVybmFsQ2xhc3Nlcy5zcGxpdCgnICcpLmZvckVhY2goKGNsczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKGNscy50cmltKCkpIHtcbiAgICAgICAgICAgIGNsYXNzZXNbY2xzLnRyaW0oKV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5leHRlcm5hbENsYXNzZXMpKSB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDbGFzc2VzLmZvckVhY2goKGNsczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKGNscy50cmltKCkpIHtcbiAgICAgICAgICAgIGNsYXNzZXNbY2xzLnRyaW0oKV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3QuYXNzaWduKGNsYXNzZXMsIHRoaXMuZXh0ZXJuYWxDbGFzc2VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbG9zZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVdpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDbG9zaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3LWRpYWxvZ1wiPlxuICA8ZnctaWNvbi1idXR0b25cbiAgICAqbmdJZj1cInNob3dDbG9zZVwiXG4gICAgdGFiaW5kZXg9XCItMVwiIGljb249XCJjbG9zZVwiIGNvbG9yPVwic2xhdGVcIlxuICAgIChjbGljayk9XCJoYW5kbGVDbG9zZUJ1dHRvbigpXCI+XG4gIDwvZnctaWNvbi1idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZnctZGlhbG9nLWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXRpdGxlXCIgKm5nSWY9XCJ0aXRsZVwiPlxuICAgICAgPGZ3LWljb24gKm5nSWY9XCJpY29uXCIgW2NvbG9yXT1cImljb25Db2xvclwiPnt7IGljb24gfX08L2Z3LWljb24+XG4gICAgICA8aDMgY2xhc3M9XCJ2aXNpb24taDNcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWJvZHlcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmdy1kaWFsb2ctY29udGVudFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkaWFsb2ctYWN0aW9uc1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZ3LWRpYWxvZy1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUkxRyxNQUFNLENBQU4sSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBQ3JCLHlDQUEwQixDQUFBO0lBQzFCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YseUNBQTBCLENBQUE7SUFDMUIsd0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVBXLFdBQVcsS0FBWCxXQUFXLFFBT3RCO0FBT0QsTUFBTSxPQUFPLGlCQUFpQjtJQWE1QixZQUFrQyxTQUFvQixFQUFVLFVBQXNCO1FBQXBELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWjdFLFVBQUssR0FBaUYsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUc3RyxjQUFTLEdBQW9FLFNBQVMsQ0FBQztRQUN2RixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBR3BDLDREQUE0RDtRQUNsRCxVQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkQsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUcxQixDQUFDO0lBRUQsSUFBMEIsT0FBTztRQUMvQixNQUFNLE9BQU8sR0FBK0I7WUFDMUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNwQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNqQyxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO29CQUN0RCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQzdCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtvQkFDM0MsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUM3QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0ExRFUsaUJBQWlCO21HQUFqQixpQkFBaUIsMFJDbkI5QiwycUJBb0JBOzs0RkREYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzs7MEJBaUJSLFFBQVE7a0VBWlosS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVVLGVBQWU7c0JBQTlCLEtBQUs7dUJBQUMsT0FBTztnQkFFSixLQUFLO3NCQUFkLE1BQU07Z0JBT21CLE9BQU87c0JBQWhDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uVHlwZSB9IGZyb20gJy4uL2ljb24vaWNvbi50eXBlcyc7XG5cbmV4cG9ydCBlbnVtIERpYWxvZ1dpZHRoIHtcbiAgRXh0cmFTbWFsbCA9ICdleHRyYS1zbWFsbCcsXG4gIFNtYWxsID0gJ3NtYWxsJyxcbiAgTWVkaXVtID0gJ21lZGl1bScsXG4gIExhcmdlID0gJ2xhcmdlJyxcbiAgRXh0cmFMYXJnZSA9ICdleHRyYS1sYXJnZScsXG4gIFJlc3BvbnNpdmUgPSAncmVzcG9uc2l2ZSdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdpZHRoPzogJ2V4dHJhLXNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAnZXh0cmEtbGFyZ2UnIHwgJ3Jlc3BvbnNpdmUnID0gRGlhbG9nV2lkdGguRXh0cmFTbWFsbDtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb24/OiBJY29uVHlwZTtcbiAgQElucHV0KCkgaWNvbkNvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdvcmFuZ2UnIHwgJ2dyZWVuJyB8ICdzbGF0ZScgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNob3dDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NsYXNzJykgZXh0ZXJuYWxDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgaXNDbG9zaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGRpYWxvZ1JlZjogRGlhbG9nUmVmLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NlcygpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgY29uc3QgY2xhc3NlczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICBbYGRpYWxvZy13aWR0aC0ke3RoaXMud2lkdGh9YF06IHRydWUsXG4gICAgICAnZGlhbG9nLWNsb3NpbmcnOiB0aGlzLmlzQ2xvc2luZyxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuZXh0ZXJuYWxDbGFzc2VzKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuZXh0ZXJuYWxDbGFzc2VzID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmV4dGVybmFsQ2xhc3Nlcy5zcGxpdCgnICcpLmZvckVhY2goKGNsczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKGNscy50cmltKCkpIHtcbiAgICAgICAgICAgIGNsYXNzZXNbY2xzLnRyaW0oKV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5leHRlcm5hbENsYXNzZXMpKSB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDbGFzc2VzLmZvckVhY2goKGNsczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKGNscy50cmltKCkpIHtcbiAgICAgICAgICAgIGNsYXNzZXNbY2xzLnRyaW0oKV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3QuYXNzaWduKGNsYXNzZXMsIHRoaXMuZXh0ZXJuYWxDbGFzc2VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbG9zZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVdpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDbG9zaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3LWRpYWxvZ1wiPlxuICA8ZnctaWNvbi1idXR0b25cbiAgICAqbmdJZj1cInNob3dDbG9zZVwiXG4gICAgdGFiaW5kZXg9XCItMVwiIGljb249XCJjbG9zZVwiIGNvbG9yPVwic2xhdGVcIlxuICAgIChjbGljayk9XCJoYW5kbGVDbG9zZUJ1dHRvbigpXCI+XG4gIDwvZnctaWNvbi1idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZnctZGlhbG9nLWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXRpdGxlXCIgKm5nSWY9XCJ0aXRsZVwiPlxuICAgICAgPGZ3LWljb24gKm5nSWY9XCJpY29uXCIgW2NvbG9yXT1cImljb25Db2xvclwiPnt7IGljb24gfX08L2Z3LWljb24+XG4gICAgICA8aDMgY2xhc3M9XCJ2aXNpb24taDNcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWJvZHlcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmdy1kaWFsb2ctY29udGVudFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkaWFsb2ctYWN0aW9uc1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZ3LWRpYWxvZy1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -18,7 +18,13 @@ export class FwDialogService extends Dialog {
18
18
  openDialog(component, config, topOffset) {
19
19
  const defaultSettings = {
20
20
  backdropClass: 'vision-overlay',
21
- positionStrategy: this.overlay.position().global().top(topOffset ? topOffset : '10vh').centerHorizontally(),
21
+ positionStrategy: config?.responsive
22
+ ? this.overlay.position().global()
23
+ .top('5vh') // Reduced top margin for mobile optimization
24
+ .centerHorizontally()
25
+ : this.overlay.position().global()
26
+ .top(topOffset ? topOffset : '10vh')
27
+ .centerHorizontally(),
22
28
  disableClose: true, // Disable default backdrop close to handle it manually
23
29
  };
24
30
  config = { ...config, ...defaultSettings };
@@ -94,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
94
100
  }] }, { type: i2.DialogRef, decorators: [{
95
101
  type: Optional
96
102
  }] }] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQTJCLE1BQU0scUJBQXFCLENBQUM7QUFFckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUtqRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQ3pDLFlBQW9CLE9BQWdCLEVBQ3hCLFNBQW1CLEVBQ1osUUFBa0IsRUFDa0IsYUFBMkIsRUFDL0Qsb0JBQXNDLEVBQ2IsY0FBbUIsRUFDM0IsYUFBcUIsRUFDMUIsU0FBeUI7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVI1RSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRWpCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFbEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFrQjtRQUcxQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUV4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUksU0FBMkIsRUFBRSxNQUF5RCxFQUFFLFNBQWtCO1FBQ3RILE1BQU0sZUFBZSxHQUFHO1lBQ3RCLGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGtCQUFrQixFQUFFO1lBQzNHLFlBQVksRUFBRSxJ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QUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7K0dBL0VVLGVBQWUseUZBSU0scUJBQXFCLDZEQUVqQyxzQkFBc0I7bUhBTi9CLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS2MsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7OzBCQUV4QyxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgREVGQVVMVF9ESUFMT0dfQ09ORklHLCBEaWFsb2csIERJQUxPR19TQ1JPTExfU1RSQVRFR1ksIERpYWxvZ0NvbmZpZywgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBPdmVybGF5LCBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ1NlcnZpY2UgZXh0ZW5kcyBEaWFsb2cge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREVGQVVMVF9ESUFMT0dfQ09ORklHKSBfZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgIHB1YmxpYyBfb3ZlcmxheUNvbnRhaW5lclJlZjogT3ZlcmxheUNvbnRhaW5lcixcbiAgICAgICAgICAgICAgQEluamVjdChESUFMT0dfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneTogYW55LFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBfcGFyZW50RGlhbG9nOiBEaWFsb2csXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+KSB7XG4gICAgc3VwZXIob3ZlcmxheSwgX2luamVjdG9yLCBfZGlhbG9nQ29uZmlnLCBfcGFyZW50RGlhbG9nLCBfb3ZlcmxheUNvbnRhaW5lclJlZiwgc2Nyb2xsU3RyYXRlZ3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gYSBjdXN0b20gY29tcG9uZW50IGluIGFuIG92ZXJsYXkgYW5kIHBvc2l0aW9uZWQgbmVhciB0aGUgdG9wXG4gICAqL1xuICBvcGVuRGlhbG9nPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnICYgeyBjYW5DbG9zZUNoZWNrPzogKCkgPT4gYm9vbGVhbiB9LCB0b3BPZmZzZXQ/OiBzdHJpbmcpOiBEaWFsb2dSZWY8dW5rbm93biwgYW55PiB7XG4gICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0ge1xuICAgICAgYmFja2Ryb3BDbGFzczogJ3Zpc2lvbi1vdmVybGF5JyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCh0b3BPZmZzZXQgPyB0b3BPZmZzZXQgOiAnMTB2aCcpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLCAvLyBEaXNhYmxlIGRlZmF1bHQgYmFja2Ryb3AgY2xvc2UgdG8gaGFuZGxlIGl0IG1hbnVhbGx5XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBzdXBlci5vcGVuKGNvbXBvbmVudCwgY29uZmlnKTtcblxuICAgIC8vIEhhbmRsZSBiYWNrZHJvcCBjbGlja3Mgd2l0aCBhbmltYXRpb25cbiAgICBpZiAoZGlhbG9nUmVmLm92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICBkaWFsb2dSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICBjb25zdCBpc0JhY2tkcm9wQ2xvc2VFbmFibGVkID0gIWNvbmZpZy5jYW5DbG9zZUNoZWNrIHx8IGNvbmZpZy5jYW5DbG9zZUNoZWNrKCk7XG4gICAgICAgIGlmIChpc0JhY2tkcm9wQ2xvc2VFbmFibGVkKSB7XG4gICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuY2xvc2VXaXRoQW5pbWF0aW9uKGRpYWxvZ1JlZik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBFU0Mga2V5IHdpdGggYW5pbWF0aW9uXG4gICAgZGlhbG9nUmVmLm92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBjb25zdCBpc0JhY2tkcm9wQ2xvc2VFbmFibGVkID0gIWNvbmZpZy5jYW5DbG9zZUNoZWNrIHx8IGNvbmZpZy5jYW5DbG9zZUNoZWNrKCk7XG5cbiAgICAgICAgaWYgKGlzQmFja2Ryb3BDbG9zZUVuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbihkaWFsb2dSZWYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgb3Blbk1vZGFsRGlhbG9nPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnLCB0b3BPZmZzZXQ/OiBzdHJpbmcpOiBEaWFsb2dSZWY8dW5rbm93biwgYW55PiB7XG4gICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0ge1xuICAgICAgYmFja2Ryb3BDbGFzczogJ3Zpc2lvbi1vdmVybGF5JyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCh0b3BPZmZzZXQgPyB0b3BPZmZzZXQgOiAnMTB2aCcpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLCAvLyBEaXNhYmxlIGRlZmF1bHQgYmFja2Ryb3AgY2xvc2UgdG8gaGFuZGxlIGl0IG1hbnVhbGx5XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICByZXR1cm4gc3VwZXIub3Blbihjb21wb25lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBjbG9zZVdpdGhBbmltYXRpb24oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ0VsZW1lbnQgPSBkaWFsb2dSZWYub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudD8ucXVlcnlTZWxlY3RvcignZnctZGlhbG9nLCBmdy1kaWFsb2ctY29uZmlybSwgZnctZGlhbG9nLXNpbXBsZScpO1xuXG4gICAgaWYgKGRpYWxvZ0VsZW1lbnQgJiYgIWRpYWxvZ0VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaWFsb2ctY2xvc2luZycpKSB7XG4gICAgICBpZiAoZGlhbG9nRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdmdy1kaWFsb2cnKSB7XG4gICAgICAgIC8vIEZvciBmdy1kaWFsb2ctY29uZmlybSBhbmQgZnctZGlhbG9nLXNpbXBsZSwgYXBwbHkgdGhlIGNsYXNzIHRvIHRoZSBpbm5lciBmdy1kaWFsb2cgZWxlbWVudFxuICAgICAgICBjb25zdCBpbm5lckRpYWxvZyA9IGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcignZnctZGlhbG9nJyk7XG4gICAgICAgIGlmIChpbm5lckRpYWxvZykge1xuICAgICAgICAgIGlubmVyRGlhbG9nLmNsYXNzTGlzdC5hZGQoJ2RpYWxvZy1jbG9zaW5nJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpYWxvZ0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZGlhbG9nLWNsb3NpbmcnKTtcbiAgICAgIH1cblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQTJCLE1BQU0scUJBQXFCLENBQUM7QUFFckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUtqRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQ3pDLFlBQW9CLE9BQWdCLEVBQ3hCLFNBQW1CLEVBQ1osUUFBa0IsRUFDa0IsYUFBMkIsRUFDL0Qsb0JBQXNDLEVBQ2IsY0FBbUIsRUFDM0IsYUFBcUIsRUFDMUIsU0FBeUI7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVI1RSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRWpCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFbEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFrQjtRQUcxQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUV4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUksU0FBMkIsRUFBRSxNQUErRSxFQUFFLFNBQWtCO1FBQzVJLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRTtxQkFDN0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLDZDQUE2QztxQkFDeEQsa0JBQWtCLEVBQUU7Z0JBQ3pCLENB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QUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7K0dBckZVLGVBQWUseUZBSU0scUJBQXFCLDZEQUVqQyxzQkFBc0I7bUhBTi9CLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS2MsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7OzBCQUV4QyxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgREVGQVVMVF9ESUFMT0dfQ09ORklHLCBEaWFsb2csIERJQUxPR19TQ1JPTExfU1RSQVRFR1ksIERpYWxvZ0NvbmZpZywgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBPdmVybGF5LCBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ1NlcnZpY2UgZXh0ZW5kcyBEaWFsb2cge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREVGQVVMVF9ESUFMT0dfQ09ORklHKSBfZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgIHB1YmxpYyBfb3ZlcmxheUNvbnRhaW5lclJlZjogT3ZlcmxheUNvbnRhaW5lcixcbiAgICAgICAgICAgICAgQEluamVjdChESUFMT0dfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneTogYW55LFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBfcGFyZW50RGlhbG9nOiBEaWFsb2csXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+KSB7XG4gICAgc3VwZXIob3ZlcmxheSwgX2luamVjdG9yLCBfZGlhbG9nQ29uZmlnLCBfcGFyZW50RGlhbG9nLCBfb3ZlcmxheUNvbnRhaW5lclJlZiwgc2Nyb2xsU3RyYXRlZ3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gYSBjdXN0b20gY29tcG9uZW50IGluIGFuIG92ZXJsYXkgYW5kIHBvc2l0aW9uZWQgbmVhciB0aGUgdG9wXG4gICAqL1xuICBvcGVuRGlhbG9nPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnICYgeyBjYW5DbG9zZUNoZWNrPzogKCkgPT4gYm9vbGVhbiwgcmVzcG9uc2l2ZT86IGJvb2xlYW4gfSwgdG9wT2Zmc2V0Pzogc3RyaW5nKTogRGlhbG9nUmVmPHVua25vd24sIGFueT4ge1xuICAgIGNvbnN0IGRlZmF1bHRTZXR0aW5ncyA9IHtcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICd2aXNpb24tb3ZlcmxheScsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBjb25maWc/LnJlc3BvbnNpdmUgXG4gICAgICAgID8gdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKClcbiAgICAgICAgICAgIC50b3AoJzV2aCcpIC8vIFJlZHVjZWQgdG9wIG1hcmdpbiBmb3IgbW9iaWxlIG9wdGltaXphdGlvblxuICAgICAgICAgICAgLmNlbnRlckhvcml6b250YWxseSgpXG4gICAgICAgIDogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKClcbiAgICAgICAgICAgIC50b3AodG9wT2Zmc2V0ID8gdG9wT2Zmc2V0IDogJzEwdmgnKVxuICAgICAgICAgICAgLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLCAvLyBEaXNhYmxlIGRlZmF1bHQgYmFja2Ryb3AgY2xvc2UgdG8gaGFuZGxlIGl0IG1hbnVhbGx5XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBzdXBlci5vcGVuKGNvbXBvbmVudCwgY29uZmlnKTtcblxuICAgIC8vIEhhbmRsZSBiYWNrZHJvcCBjbGlja3Mgd2l0aCBhbmltYXRpb25cbiAgICBpZiAoZGlhbG9nUmVmLm92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICBkaWFsb2dSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICBjb25zdCBpc0JhY2tkcm9wQ2xvc2VFbmFibGVkID0gIWNvbmZpZy5jYW5DbG9zZUNoZWNrIHx8IGNvbmZpZy5jYW5DbG9zZUNoZWNrKCk7XG4gICAgICAgIGlmIChpc0JhY2tkcm9wQ2xvc2VFbmFibGVkKSB7XG4gICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuY2xvc2VXaXRoQW5pbWF0aW9uKGRpYWxvZ1JlZik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBFU0Mga2V5IHdpdGggYW5pbWF0aW9uXG4gICAgZGlhbG9nUmVmLm92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBjb25zdCBpc0JhY2tkcm9wQ2xvc2VFbmFibGVkID0gIWNvbmZpZy5jYW5DbG9zZUNoZWNrIHx8IGNvbmZpZy5jYW5DbG9zZUNoZWNrKCk7XG5cbiAgICAgICAgaWYgKGlzQmFja2Ryb3BDbG9zZUVuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbihkaWFsb2dSZWYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgb3Blbk1vZGFsRGlhbG9nPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnLCB0b3BPZmZzZXQ/OiBzdHJpbmcpOiBEaWFsb2dSZWY8dW5rbm93biwgYW55PiB7XG4gICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0ge1xuICAgICAgYmFja2Ryb3BDbGFzczogJ3Zpc2lvbi1vdmVybGF5JyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCh0b3BPZmZzZXQgPyB0b3BPZmZzZXQgOiAnMTB2aCcpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLCAvLyBEaXNhYmxlIGRlZmF1bHQgYmFja2Ryb3AgY2xvc2UgdG8gaGFuZGxlIGl0IG1hbnVhbGx5XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICByZXR1cm4gc3VwZXIub3Blbihjb21wb25lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBjbG9zZVdpdGhBbmltYXRpb24oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ0VsZW1lbnQgPSBkaWFsb2dSZWYub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudD8ucXVlcnlTZWxlY3RvcignZnctZGlhbG9nLCBmdy1kaWFsb2ctY29uZmlybSwgZnctZGlhbG9nLXNpbXBsZScpO1xuXG4gICAgaWYgKGRpYWxvZ0VsZW1lbnQgJiYgIWRpYWxvZ0VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaWFsb2ctY2xvc2luZycpKSB7XG4gICAgICBpZiAoZGlhbG9nRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdmdy1kaWFsb2cnKSB7XG4gICAgICAgIC8vIEZvciBmdy1kaWFsb2ctY29uZmlybSBhbmQgZnctZGlhbG9nLXNpbXBsZSwgYXBwbHkgdGhlIGNsYXNzIHRvIHRoZSBpbm5lciBmdy1kaWFsb2cgZWxlbWVudFxuICAgICAgICBjb25zdCBpbm5lckRpYWxvZyA9IGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcignZnctZGlhbG9nJyk7XG4gICAgICAgIGlmIChpbm5lckRpYWxvZykge1xuICAgICAgICAgIGlubmVyRGlhbG9nLmNsYXNzTGlzdC5hZGQoJ2RpYWxvZy1jbG9zaW5nJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpYWxvZ0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZGlhbG9nLWNsb3NpbmcnKTtcbiAgICAgIH1cblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==