@flywheel-io/vision 2.4.4 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/components/button-toggle/button-toggle-item/button-toggle-item.component.d.ts +1 -1
  2. package/components/chip-list/chip-list.component.d.ts +17 -0
  3. package/components/dialog/dialog-confirm.component.d.ts +1 -1
  4. package/components/dialog/dialog-simple.component.d.ts +1 -1
  5. package/components/dialog/dialog.service.d.ts +4 -2
  6. package/components/menu/menu-item/menu-item.component.d.ts +1 -1
  7. package/components/select-menu/multi-select-menu/multi-select-menu.component.d.ts +2 -2
  8. package/components/select-menu/select-menu.component.d.ts +1 -1
  9. package/components/typeahead/typeahead.component.d.ts +57 -0
  10. package/components/wrapped-input/wrapped-input.component.d.ts +1 -1
  11. package/esm2022/components/button-toggle/button-toggle-item/button-toggle-item.component.mjs +1 -1
  12. package/esm2022/components/chip-list/chip-list.component.mjs +72 -0
  13. package/esm2022/components/dialog/dialog-confirm.component.mjs +1 -1
  14. package/esm2022/components/dialog/dialog-simple.component.mjs +1 -1
  15. package/esm2022/components/dialog/dialog.service.mjs +10 -4
  16. package/esm2022/components/menu/menu-container/menu-container.component.mjs +3 -3
  17. package/esm2022/components/menu/menu-item/menu-item.component.mjs +3 -3
  18. package/esm2022/components/menu/menu-sub-item/menu-sub-item.component.mjs +3 -3
  19. package/esm2022/components/paginator/paginator.component.mjs +2 -2
  20. package/esm2022/components/phone-input/phone-input.component.mjs +3 -3
  21. package/esm2022/components/popover/popover.component.mjs +2 -2
  22. package/esm2022/components/select-menu/multi-select-menu/multi-select-menu.component.mjs +5 -5
  23. package/esm2022/components/select-menu/select-menu.component.mjs +3 -3
  24. package/esm2022/components/snackbar/snackbar/snackbar.component.mjs +3 -3
  25. package/esm2022/components/snackbar/snackbar-container/snackbar-container.component.mjs +3 -3
  26. package/esm2022/components/textarea-input/textarea-input.component.mjs +8 -3
  27. package/esm2022/components/typeahead/typeahead.component.mjs +232 -0
  28. package/esm2022/components/wrapped-input/wrapped-input.component.mjs +3 -3
  29. package/esm2022/public-api.mjs +3 -1
  30. package/fesm2022/flywheel-io-vision.mjs +321 -31
  31. package/fesm2022/flywheel-io-vision.mjs.map +1 -1
  32. package/package.json +1 -1
  33. package/public-api.d.ts +2 -0
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class FwButtonToggleItemComponent {
5
5
  title?: string;
6
6
  icon?: IconType;
7
- selectedIcon?: string;
7
+ selectedIcon?: IconType;
8
8
  value: string;
9
9
  selected: boolean;
10
10
  disabled: boolean;
@@ -0,0 +1,17 @@
1
+ import { ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class FwChipListComponent implements OnInit {
4
+ changeDetector: ChangeDetectorRef;
5
+ hostElement: ElementRef<any>;
6
+ childChipElementRefs: import("@angular/core").Signal<readonly ElementRef<any>[]>;
7
+ moreText: import("@angular/core").Signal<ElementRef<HTMLParagraphElement>>;
8
+ hiddenElementCount: import("@angular/core").WritableSignal<number>;
9
+ hiddenChips: import("@angular/core").WritableSignal<HTMLElement[]>;
10
+ hiddenLabels: import("@angular/core").Signal<string>;
11
+ childrenChanged: import("@angular/core").EffectRef;
12
+ resizeObserver: ResizeObserver;
13
+ ngOnInit(): void;
14
+ calcChipOverflow(): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<FwChipListComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<FwChipListComponent, "fw-chip-list", never, {}, {}, ["childChipElementRefs"], ["*"], true, never>;
17
+ }
@@ -11,7 +11,7 @@ export declare class FwDialogConfirmComponent {
11
11
  iconColor?: 'primary' | 'secondary' | 'red' | 'orange' | 'green' | 'slate';
12
12
  confirmColor?: 'primary' | 'secondary' | 'danger' | 'slate' | 'warning' | 'success';
13
13
  confirmButtonText?: string;
14
- confirmButtonIcon?: string;
14
+ confirmButtonIcon?: IconType;
15
15
  cancelButtonText?: string;
16
16
  contentIcon?: string;
17
17
  contentTitle?: string;
@@ -14,7 +14,7 @@ export declare class FwDialogSimpleComponent {
14
14
  actionButtonIcon?: string;
15
15
  cancelButtonText?: string;
16
16
  alternateButtonText?: string;
17
- alternateButtonIcon?: string;
17
+ alternateButtonIcon?: IconType;
18
18
  contentText?: string;
19
19
  externalClasses?: string | string[] | {
20
20
  [key: string]: boolean;
@@ -11,9 +11,11 @@ export declare class FwDialogService extends Dialog {
11
11
  /**
12
12
  * Open a custom component in an overlay and positioned near the top
13
13
  */
14
- openDialog<T>(component: ComponentType<T>, config?: DialogConfig, topOffset?: string): DialogRef<unknown, any>;
14
+ openDialog<T>(component: ComponentType<T>, config?: DialogConfig & {
15
+ canCloseCheck?: () => boolean;
16
+ }, topOffset?: string): DialogRef<unknown, any>;
15
17
  openModalDialog<T>(component: ComponentType<T>, config?: DialogConfig, topOffset?: string): DialogRef<unknown, any>;
16
- private closeWithAnimation;
18
+ closeWithAnimation(dialogRef: DialogRef<any>): void;
17
19
  static ɵfac: i0.ɵɵFactoryDeclaration<FwDialogService, [null, null, null, { optional: true; }, null, null, { optional: true; skipSelf: true; }, { optional: true; }]>;
18
20
  static ɵprov: i0.ɵɵInjectableDeclaration<FwDialogService>;
19
21
  }
@@ -13,7 +13,7 @@ export declare class FwMenuItemComponent implements OnChanges, OnDestroy, AfterC
13
13
  iconColor?: 'primary' | 'secondary' | 'red' | 'orange' | 'green' | 'slate' | 'typography';
14
14
  disabled?: boolean;
15
15
  showCheckbox?: boolean;
16
- checkboxColor?: 'primary' | 'secondary' | 'default';
16
+ checkboxColor?: 'primary' | 'secondary';
17
17
  multiSelect?: boolean;
18
18
  hidden?: boolean;
19
19
  collapsed?: boolean;
@@ -40,7 +40,7 @@ export declare class FwMultiSelectMenuComponent implements ControlValueAccessor,
40
40
  menuFilter: import("@angular/core").Signal<FwMenuContainerComponent>;
41
41
  renderedMenuItems: QueryList<FwMenuItemComponent>;
42
42
  customMenuItems: QueryList<FwMenuItemComponent>;
43
- createArray: (d: Iterable<unknown>) => unknown[];
43
+ createArray: (d: Iterable<string>) => string[];
44
44
  selectedValues: Set<string>;
45
45
  selectedOptions: object[];
46
46
  displayedOptions: WritableSignal<FwMenuItemComponent[]>;
@@ -66,7 +66,7 @@ export declare class FwMultiSelectMenuComponent implements ControlValueAccessor,
66
66
  private registerCustomMenuItems;
67
67
  handleTouched(): void;
68
68
  handleChipClose(chip: object): void;
69
- handleMenuChange(e: string[]): void;
69
+ handleMenuChange(e: string | string[]): void;
70
70
  addValue(incoming: string): void;
71
71
  updateValue(incomingValues: any[]): void;
72
72
  customFilter: (filter: string, menuItems: FwMenuItemComponent[]) => FwMenuItemComponent[];
@@ -34,7 +34,7 @@ export declare class FwSelectMenuComponent implements OnChanges, AfterContentIni
34
34
  readonly filterChanged: EventEmitter<string>;
35
35
  selectValue: string;
36
36
  selectTitle: string;
37
- selectIcon: string;
37
+ selectIcon: IconType | '';
38
38
  filterValue: string;
39
39
  private subscriptions;
40
40
  private _isOpen;
@@ -0,0 +1,57 @@
1
+ import { CdkMenuTrigger } from '@angular/cdk/menu';
2
+ import { ChangeDetectorRef, ElementRef } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+ import { Observable } from 'rxjs';
5
+ import { FwMenuItemComponent } from '../menu/menu-item/menu-item.component';
6
+ import * as i0 from "@angular/core";
7
+ type OptionFetchingFn = (searchString: string) => Observable<string[]>;
8
+ /**
9
+ * Component for having a user select multiple values while also allowing arbitrary values to be added
10
+ * @see [Vision Docs](https://cdn.flywheel.io/docs/vision/master/?path=/docs/form-controls-typeahead--docs)
11
+ */
12
+ export declare class FwTypeaheadComponent implements ControlValueAccessor {
13
+ outsideClick(): void;
14
+ trigger: import("@angular/core").Signal<CdkMenuTrigger>;
15
+ changeDetector: ChangeDetectorRef;
16
+ loading: import("@angular/core").ModelSignal<boolean>;
17
+ disabled: import("@angular/core").ModelSignal<boolean>;
18
+ setDisabledState(isDisabled: boolean): void;
19
+ writeValue(incomingValue: string[]): void;
20
+ onChange: (_: string[]) => void;
21
+ registerOnChange(onChangeFn: any): void;
22
+ onTouched: () => void;
23
+ registerOnTouched(onTouchedFn: any): void;
24
+ onClick(event: MouseEvent): void;
25
+ value: import("@angular/core").ModelSignal<string[]>;
26
+ optionsInput: import("@angular/core").InputSignal<string[] | OptionFetchingFn>;
27
+ maxOptionsHeight: import("@angular/core").InputSignal<string>;
28
+ minOptionsHeight: import("@angular/core").InputSignal<string>;
29
+ optionsWidth: import("@angular/core").InputSignal<string>;
30
+ notifyOnValueChanges: import("@angular/core").EffectRef;
31
+ searchValue: import("@angular/core").ModelSignal<string>;
32
+ searchValueChanges$: Observable<string>;
33
+ handleSearchChange(event: KeyboardEvent): void;
34
+ allowNew: import("@angular/core").InputSignal<boolean>;
35
+ placeholder: import("@angular/core").InputSignal<string>;
36
+ options$: Observable<string[]>;
37
+ optionsSignal: import("@angular/core").Signal<string[]>;
38
+ closeChip(chipValue: string): void;
39
+ displayNewOption: import("@angular/core").Signal<boolean>;
40
+ addValue: (newValue: string) => void;
41
+ handleOptionClick: (optionValue: any) => void;
42
+ resetFocusOnOptionsChange: import("@angular/core").EffectRef;
43
+ displayedOptions: import("@angular/core").Signal<readonly FwMenuItemComponent[]>;
44
+ focusedIndex: import("@angular/core").WritableSignal<number>;
45
+ focusedOption: import("@angular/core").Signal<string>;
46
+ inputRef: import("@angular/core").Signal<ElementRef<HTMLInputElement>>;
47
+ focusInput(e?: MouseEvent): void;
48
+ keyHandlerMap: {
49
+ [keycode: string]: (e: KeyboardEvent) => void;
50
+ };
51
+ handleKey(e: KeyboardEvent): void;
52
+ setFocusByValue(value: string): void;
53
+ private moveFocused;
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<FwTypeaheadComponent, never>;
55
+ static ɵcmp: i0.ɵɵComponentDeclaration<FwTypeaheadComponent, "fw-typeahead", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "optionsInput": { "alias": "options"; "required": false; "isSignal": true; }; "maxOptionsHeight": { "alias": "maxOptionsHeight"; "required": false; "isSignal": true; }; "minOptionsHeight": { "alias": "minOptionsHeight"; "required": false; "isSignal": true; }; "optionsWidth": { "alias": "optionsWidth"; "required": false; "isSignal": true; }; "searchValue": { "alias": "searchValue"; "required": false; "isSignal": true; }; "allowNew": { "alias": "allowNew"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "loading": "loadingChange"; "disabled": "disabledChange"; "value": "valueChange"; "searchValue": "searchValueChange"; }, never, never, true, never>;
56
+ }
57
+ export {};
@@ -6,5 +6,5 @@ export declare class FwWrappedInputComponent {
6
6
  errorText?: string;
7
7
  class: boolean;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<FwWrappedInputComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<FwWrappedInputComponent, "fw-wrapped-input", never, { "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; }, {}, never, ["fw-form-heading", "fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox"], false, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<FwWrappedInputComponent, "fw-wrapped-input", never, { "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; }, {}, never, ["fw-form-heading", "fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead"], false, never>;
10
10
  }
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
51
51
  type: HostBinding,
52
52
  args: ['attr.class']
53
53
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRvZ2dsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2J1dHRvbi10b2dnbGUvYnV0dG9uLXRvZ2dsZS1pdGVtL2J1dHRvbi10b2dnbGUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9idXR0b24tdG9nZ2xlL2J1dHRvbi10b2dnbGUtaXRlbS9idXR0b24tdG9nZ2xlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVVwRixNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLElBQStCLE9BQU87UUFDcEMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUFBLENBQUM7SUFFRjtRQWJTLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQWtDLFFBQVEsQ0FBQztRQUMvQyxVQUFLLEdBQXVGLE9BQU8sQ0FBQztRQUNwRyxrQkFBYSxHQUF1RixTQUFTLENBQUM7UUFDOUcsa0JBQWEsR0FBaUMsWUFBWSxDQUFDO1FBQ3BFLDREQUE0RDtRQUNsRCxVQUFLLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFPbkUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0F2QlUsMkJBQTJCO21HQUEzQiwyQkFBMkIsb1hDVnhDLDZVQVVBOzs0RkRBYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCO3dEQUt4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU07Z0JBRXdCLE9BQU87c0JBQXJDLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uVHlwZSB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi50eXBlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctYnV0dG9uLXRvZ2dsZS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi10b2dnbGUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEZ3QnV0dG9uVG9nZ2xlSXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uPzogSWNvblR5cGU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSWNvbj86IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJztcbiAgQElucHV0KCkgY29sb3I/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdkYW5nZXInIHwgJ3NsYXRlJyB8ICdza2VsZXRvbicgfCAnd2FybmluZycgfCAnc3VjY2VzcycgPSAnc2xhdGUnO1xuICBASW5wdXQoKSBzZWxlY3RlZENvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnZGFuZ2VyJyB8ICdzbGF0ZScgfCAnc2tlbGV0b24nIHwgJ3dhcm5pbmcnIHwgJ3N1Y2Nlc3MnID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBzZWxlY3RlZFN0eWxlPzogJ2JhY2tncm91bmQnIHwgJ2ZvcmVncm91bmQnID0gJ2JhY2tncm91bmQnO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGNsaWNrOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5jbGFzcycpIGdldCBjbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFsnZnctYnV0dG9uLXRvZ2dsZS1pdGVtJywgdGhpcy50aXRsZSAmJiB0aGlzLnRpdGxlLmxlbmd0aCA+IDAgPyAnaGFzLXRpdGxlJyA6ICduby10aXRsZSddLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBoYW5kbGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxufVxuIiwiPGZ3LWJ1dHRvblxuICBbdGl0bGVdPVwidGl0bGVcIlxuICBbbGVmdEljb25dPVwiKHNlbGVjdGVkICYmIHNlbGVjdGVkSWNvbikgPyBzZWxlY3RlZEljb24gOiBpY29uXCJcbiAgW3ZhcmlhbnRdPVwiKHNlbGVjdGVkICYmIHNlbGVjdGVkU3R5bGU9PT0nYmFja2dyb3VuZCcpID8gJ3NvbGlkJzonb3V0bGluZSdcIlxuICBbY29sb3JdPVwic2VsZWN0ZWQgPyBzZWxlY3RlZENvbG9yOmNvbG9yXCJcbiAgW3NpemVdPVwic2l6ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIChjbGljayk9XCJoYW5kbGVDbGljaygpXCI+XG4gIHt7IHRpdGxlIH19XG48L2Z3LWJ1dHRvbj5cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRvZ2dsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2J1dHRvbi10b2dnbGUvYnV0dG9uLXRvZ2dsZS1pdGVtL2J1dHRvbi10b2dnbGUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9idXR0b24tdG9nZ2xlL2J1dHRvbi10b2dnbGUtaXRlbS9idXR0b24tdG9nZ2xlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVVwRixNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLElBQStCLE9BQU87UUFDcEMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUFBLENBQUM7SUFFRjtRQWJTLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQWtDLFFBQVEsQ0FBQztRQUMvQyxVQUFLLEdBQXVGLE9BQU8sQ0FBQztRQUNwRyxrQkFBYSxHQUF1RixTQUFTLENBQUM7UUFDOUcsa0JBQWEsR0FBaUMsWUFBWSxDQUFDO1FBQ3BFLDREQUE0RDtRQUNsRCxVQUFLLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFPbkUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0F2QlUsMkJBQTJCO21HQUEzQiwyQkFBMkIsb1hDVnhDLDZVQVVBOzs0RkRBYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCO3dEQUt4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU07Z0JBRXdCLE9BQU87c0JBQXJDLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uVHlwZSB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi50eXBlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctYnV0dG9uLXRvZ2dsZS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi10b2dnbGUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEZ3QnV0dG9uVG9nZ2xlSXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uPzogSWNvblR5cGU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSWNvbj86IEljb25UeXBlO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdtZWRpdW0nO1xuICBASW5wdXQoKSBjb2xvcj86ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2RhbmdlcicgfCAnc2xhdGUnIHwgJ3NrZWxldG9uJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJyA9ICdzbGF0ZSc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQ29sb3I/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdkYW5nZXInIHwgJ3NsYXRlJyB8ICdza2VsZXRvbicgfCAnd2FybmluZycgfCAnc3VjY2VzcycgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkU3R5bGU/OiAnYmFja2dyb3VuZCcgfCAnZm9yZWdyb3VuZCcgPSAnYmFja2dyb3VuZCc7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgY2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmNsYXNzJykgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gWydmdy1idXR0b24tdG9nZ2xlLWl0ZW0nLCB0aGlzLnRpdGxlICYmIHRoaXMudGl0bGUubGVuZ3RoID4gMCA/ICdoYXMtdGl0bGUnIDogJ25vLXRpdGxlJ10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2xpY2suZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG59XG4iLCI8ZnctYnV0dG9uXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4gIFtsZWZ0SWNvbl09XCIoc2VsZWN0ZWQgJiYgc2VsZWN0ZWRJY29uKSA/IHNlbGVjdGVkSWNvbiA6IGljb25cIlxuICBbdmFyaWFudF09XCIoc2VsZWN0ZWQgJiYgc2VsZWN0ZWRTdHlsZT09PSdiYWNrZ3JvdW5kJykgPyAnc29saWQnOidvdXRsaW5lJ1wiXG4gIFtjb2xvcl09XCJzZWxlY3RlZCA/IHNlbGVjdGVkQ29sb3I6Y29sb3JcIlxuICBbc2l6ZV09XCJzaXplXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKClcIj5cbiAge3sgdGl0bGUgfX1cbjwvZnctYnV0dG9uPlxuIl19
@@ -0,0 +1,72 @@
1
+ import { ChangeDetectorRef, Component, computed, contentChildren, effect, ElementRef, inject, signal, viewChild } from '@angular/core';
2
+ import { FwChipComponent } from '../chip/chip.component';
3
+ import { FwChipModule } from '../chip/chip.module';
4
+ import { FwTooltipModule } from '../tooltip/tooltip.module';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../tooltip/tooltip.component";
7
+ // the nature of this component is to handle a complex layout issue so disabling this lint rule
8
+ /* eslint-disable @rx-angular/prefer-no-layout-sensitive-apis */
9
+ export class FwChipListComponent {
10
+ constructor() {
11
+ this.changeDetector = inject(ChangeDetectorRef);
12
+ this.hostElement = inject(ElementRef);
13
+ this.childChipElementRefs = contentChildren(FwChipComponent, { read: ElementRef });
14
+ this.moreText = viewChild.required('moreText');
15
+ this.hiddenElementCount = signal(0);
16
+ this.hiddenChips = signal([]);
17
+ this.hiddenLabels = computed(() => {
18
+ return this.hiddenChips().map(chip => {
19
+ // this relies on the dom shape of the chip, might be fragile
20
+ const contentSpan = chip.querySelector('span');
21
+ return contentSpan.innerText;
22
+ }).join(', ');
23
+ });
24
+ this.childrenChanged = effect(() => {
25
+ this.childChipElementRefs();
26
+ this.calcChipOverflow();
27
+ }, { allowSignalWrites: true });
28
+ this.resizeObserver = new ResizeObserver(() => {
29
+ this.calcChipOverflow();
30
+ });
31
+ }
32
+ ngOnInit() {
33
+ this.resizeObserver.observe(this.hostElement.nativeElement);
34
+ }
35
+ calcChipOverflow() {
36
+ const hostRect = this.hostElement.nativeElement.getBoundingClientRect();
37
+ const chipElements = this.childChipElementRefs().map(ref => ref.nativeElement);
38
+ const moreTextElement = this.moreText().nativeElement;
39
+ chipElements.forEach(chip => chip.classList.remove('hidden'));
40
+ moreTextElement.classList.remove('hidden');
41
+ const visibleChips = chipElements.filter(chip => {
42
+ const chipRect = chip.getBoundingClientRect();
43
+ return !(chipRect.right > hostRect.right || chipRect.bottom > hostRect.bottom);
44
+ });
45
+ const overflowChips = chipElements.toSpliced(0, visibleChips.length);
46
+ if (overflowChips.length > 0) {
47
+ const lastVisibleChip = visibleChips[visibleChips.length - 1];
48
+ const enoughRoomForMoreText = (hostRect.right - lastVisibleChip.getBoundingClientRect().right) > (moreTextElement.offsetWidth);
49
+ if (!enoughRoomForMoreText) {
50
+ overflowChips.push(lastVisibleChip);
51
+ }
52
+ this.hiddenChips.set(overflowChips);
53
+ overflowChips.forEach(hiddenChip => {
54
+ hiddenChip.classList.add('hidden');
55
+ });
56
+ }
57
+ else {
58
+ this.moreText().nativeElement.classList.add('hidden');
59
+ }
60
+ this.changeDetector.detectChanges();
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwChipListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: FwChipListComponent, isStandalone: true, selector: "fw-chip-list", queries: [{ propertyName: "childChipElementRefs", predicate: FwChipComponent, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "moreText", first: true, predicate: ["moreText"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n<fw-tooltip [title]=\"hiddenLabels()\">\n <p #moreText> +{{hiddenChips().length}} more </p>\n</fw-tooltip>\n", styles: [":host{flex-basis:max-content;display:flex;flex-flow:row wrap;gap:8px;align-items:flex-start;justify-content:flex-start;max-height:28px;overflow:hidden}:host p{line-height:24px;cursor:default;margin:0 8px 0 0;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FwChipModule }, { kind: "ngmodule", type: FwTooltipModule }, { kind: "component", type: i1.FwTooltipComponent, selector: "fw-tooltip", inputs: ["title", "color", "position", "maxWidth", "fullWidth", "isOpen", "trigger", "delay"] }] }); }
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwChipListComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'fw-chip-list', standalone: true, imports: [
68
+ FwChipModule,
69
+ FwTooltipModule,
70
+ ], template: "<ng-content></ng-content>\n<fw-tooltip [title]=\"hiddenLabels()\">\n <p #moreText> +{{hiddenChips().length}} more </p>\n</fw-tooltip>\n", styles: [":host{flex-basis:max-content;display:flex;flex-flow:row wrap;gap:8px;align-items:flex-start;justify-content:flex-start;max-height:28px;overflow:hidden}:host p{line-height:24px;cursor:default;margin:0 8px 0 0;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"] }]
71
+ }] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NoaXAtbGlzdC9jaGlwLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2hpcC1saXN0L2NoaXAtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRTVELCtGQUErRjtBQUMvRixnRUFBZ0U7QUFZaEUsTUFBTSxPQUFPLG1CQUFtQjtJQVZoQztRQVdFLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0MsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMseUJBQW9CLEdBQUcsZUFBZSxDQUE4QixlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMzRyxhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBbUMsVUFBVSxDQUFDLENBQUM7UUFFNUUsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFF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Q0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDOytHQTlEVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2R0FHc0MsZUFBZSxRQUFVLFVBQVUsbUtDdEJ6RywwSUFJQSw4VkRTSSxZQUFZLDhCQUNaLGVBQWU7OzRGQUtOLG1CQUFtQjtrQkFWL0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBjb21wdXRlZCwgY29udGVudENoaWxkcmVuLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgT25Jbml0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGd0NoaXBDb21wb25lbnQgfSBmcm9tICcuLi9jaGlwL2NoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZ3Q2hpcE1vZHVsZSB9IGZyb20gJy4uL2NoaXAvY2hpcC5tb2R1bGUnO1xuaW1wb3J0IHsgRndUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5cbi8vIHRoZSBuYXR1cmUgb2YgdGhpcyBjb21wb25lbnQgaXMgdG8gaGFuZGxlIGEgY29tcGxleCBsYXlvdXQgaXNzdWUgc28gZGlzYWJsaW5nIHRoaXMgbGludCBydWxlXG4vKiBlc2xpbnQtZGlzYWJsZSBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LWNoaXAtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGd0NoaXBNb2R1bGUsXG4gICAgRndUb29sdGlwTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hpcC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoaXAtbGlzdC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZ3Q2hpcExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBjaGlsZENoaXBFbGVtZW50UmVmcyA9IGNvbnRlbnRDaGlsZHJlbjxGd0NoaXBDb21wb25lbnQsIEVsZW1lbnRSZWY+KEZ3Q2hpcENvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICBtb3JlVGV4dCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxQYXJhZ3JhcGhFbGVtZW50Pj4oJ21vcmVUZXh0Jyk7XG5cbiAgaGlkZGVuRWxlbWVudENvdW50ID0gc2lnbmFsKDApO1xuICBoaWRkZW5DaGlwcyA9IHNpZ25hbDxIVE1MRWxlbWVudFtdPihbXSk7XG4gIGhpZGRlbkxhYmVscyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5oaWRkZW5DaGlwcygpLm1hcChjaGlwID0+IHtcbiAgICAgIC8vIHRoaXMgcmVsaWVzIG9uIHRoZSBkb20gc2hhcGUgb2YgdGhlIGNoaXAsIG1pZ2h0IGJlIGZyYWdpbGVcbiAgICAgIGNvbnN0IGNvbnRlbnRTcGFuID0gY2hpcC5xdWVyeVNlbGVjdG9yKCdzcGFuJyk7XG4gICAgICByZXR1cm4gY29udGVudFNwYW4uaW5uZXJUZXh0O1xuICAgIH0pLmpvaW4oJywgJyk7XG4gIH0pXG5cbiAgY2hpbGRyZW5DaGFuZ2VkID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmNoaWxkQ2hpcEVsZW1lbnRSZWZzKCk7XG4gICAgdGhpcy5jYWxjQ2hpcE92ZXJmbG93KCk7XG4gIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSlcblxuICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgdGhpcy5jYWxjQ2hpcE92ZXJmbG93KCk7XG4gIH0pXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBjYWxjQ2hpcE92ZXJmbG93KCk6IHZvaWQge1xuXG4gICAgY29uc3QgaG9zdFJlY3QgPSAodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjaGlwRWxlbWVudHMgPSB0aGlzLmNoaWxkQ2hpcEVsZW1lbnRSZWZzKCkubWFwKHJlZiA9PiByZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG4gICAgY29uc3QgbW9yZVRleHRFbGVtZW50ID0gdGhpcy5tb3JlVGV4dCgpLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjaGlwRWxlbWVudHMuZm9yRWFjaChjaGlwID0+IGNoaXAuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJykpO1xuICAgIG1vcmVUZXh0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcblxuICAgIGNvbnN0IHZpc2libGVDaGlwcyA9IGNoaXBFbGVtZW50cy5maWx0ZXIoY2hpcCA9PiB7XG4gICAgICBjb25zdCBjaGlwUmVjdCA9IGNoaXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZXR1cm4gIShjaGlwUmVjdC5yaWdodCA+IGhvc3RSZWN0LnJpZ2h0IHx8IGNoaXBSZWN0LmJvdHRvbSA+IGhvc3RSZWN0LmJvdHRvbSk7XG4gICAgfSlcblxuICAgIGNvbnN0IG92ZXJmbG93Q2hpcHMgPSBjaGlwRWxlbWVudHMudG9TcGxpY2VkKDAsIHZpc2libGVDaGlwcy5sZW5ndGgpO1xuXG4gICAgaWYgKG92ZXJmbG93Q2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbGFzdFZpc2libGVDaGlwID0gdmlzaWJsZUNoaXBzW3Zpc2libGVDaGlwcy5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IGVub3VnaFJvb21Gb3JNb3JlVGV4dCA9IChob3N0UmVjdC5yaWdodCAtIGxhc3RWaXNpYmxlQ2hpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCkgPiAobW9yZVRleHRFbGVtZW50Lm9mZnNldFdpZHRoKTtcblxuICAgICAgaWYgKCFlbm91Z2hSb29tRm9yTW9yZVRleHQpIHtcbiAgICAgICAgb3ZlcmZsb3dDaGlwcy5wdXNoKGxhc3RWaXNpYmxlQ2hpcClcbiAgICAgIH1cblxuICAgICAgdGhpcy5oaWRkZW5DaGlwcy5zZXQob3ZlcmZsb3dDaGlwcyk7XG4gICAgICBvdmVyZmxvd0NoaXBzLmZvckVhY2goaGlkZGVuQ2hpcCA9PiB7XG4gICAgICAgIGhpZGRlbkNoaXAuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vcmVUZXh0KCkubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGZ3LXRvb2x0aXAgW3RpdGxlXT1cImhpZGRlbkxhYmVscygpXCI+XG4gIDxwICNtb3JlVGV4dD4gK3t7aGlkZGVuQ2hpcHMoKS5sZW5ndGh9fSBtb3JlIDwvcD5cbjwvZnctdG9vbHRpcD5cbiJdfQ==
@@ -103,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
103
103
  type: HostBinding,
104
104
  args: ['class']
105
105
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFPakQsTUFBTSxPQUFPLHdCQUF3QjtJQW9CbkMsWUFBK0IsU0FBb0IsRUFBVSxVQUFzQjtRQUFwRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQW5CMUUsVUFBSyxHQUFZLFNBQVMsQ0FBQztRQUUzQixjQUFTLEdBQW9FLFNBQVMsQ0FBQztRQUN2RixpQkFBWSxHQUEwRSxTQUFTLENBQUM7UUFDaEcsc0JBQWlCLEdBQVksU0FBUyxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFZLFlBQVksQ0FBQztRQUMxQyxxQkFBZ0IsR0FBWSxRQUFRLENBQUM7UUFFckMsaUJBQVksR0FBWSxlQUFlLENBQUM7UUFJakQsNERBQTREO1FBQ2xELFVBQUssR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyRCxZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUMsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFFckMsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUcxQixDQUFDO0lBRUQsSUFBMEIsT0FBTztRQUMvQixNQUFNLE9BQU8sR0FBK0IsRUFBRSxDQUFDO1FBRS9DLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtvQkFDdEQsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUM3QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7b0JBQzNDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWxFVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix3ZkNYckMscWxDQXNDQTs7NEZEM0JhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQXdCaEIsUUFBUTtrRUFuQlosS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVUsZUFBZTtzQkFBOUIsS0FBSzt1QkFBQyxPQUFPO2dCQUVKLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQVFtQixPQUFPO3NCQUFoQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9pY29uL2ljb24udHlwZXMnO1xuaW1wb3J0IHsgRGlhbG9nV2lkdGggfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy1kaWFsb2ctY29uZmlybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy1jb25maXJtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZ3RGlhbG9nQ29uZmlybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nID0gJ0NvbmZpcm0nO1xuICBASW5wdXQoKSBpY29uPzogSWNvblR5cGU7XG4gIEBJbnB1dCgpIGljb25Db2xvcj86ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3JlZCcgfCAnb3JhbmdlJyB8ICdncmVlbicgfCAnc2xhdGUnID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBjb25maXJtQ29sb3I/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdkYW5nZXInIHwgJ3NsYXRlJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJyA9ICdwcmltYXJ5JztcbiAgQElucHV0KCkgY29uZmlybUJ1dHRvblRleHQ/OiBzdHJpbmcgPSAnQ29uZmlybSc7XG4gIEBJbnB1dCgpIGNvbmZpcm1CdXR0b25JY29uPzogc3RyaW5nID0gJ2RvbmUtY2hlY2snO1xuICBASW5wdXQoKSBjYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nID0gJ0NhbmNlbCc7XG4gIEBJbnB1dCgpIGNvbnRlbnRJY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjb250ZW50VGl0bGU/OiBzdHJpbmcgPSAnQXJlIHlvdSBzdXJlPyc7XG4gIEBJbnB1dCgpIGNvbnRlbnRUZXh0Pzogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NsYXNzJykgZXh0ZXJuYWxDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY29uZmlybTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRGlhbG9nV2lkdGggPSBEaWFsb2dXaWR0aDtcblxuICBwcml2YXRlIGlzQ2xvc2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzZXMoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIGNvbnN0IGNsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbENsYXNzZXMpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5leHRlcm5hbENsYXNzZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmV4dGVybmFsQ2xhc3NlcykpIHtcbiAgICAgICAgdGhpcy5leHRlcm5hbENsYXNzZXMuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY2xhc3NlcywgdGhpcy5leHRlcm5hbENsYXNzZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Nsb3NpbmcgPyAnZGlhbG9nLWNsb3NpbmcnIDogJyc7XG4gIH1cblxuICBoYW5kbGVDbG9zZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVdpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDbG9zaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIiwiPGZ3LWRpYWxvZ1xuICBbd2lkdGhdPVwiRGlhbG9nV2lkdGguRXh0cmFTbWFsbFwiXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4gIFtpY29uXT1cImljb25cIlxuICBbaWNvbkNvbG9yXT1cImljb25Db2xvclwiXG4gIFtzaG93Q2xvc2VdPVwiZmFsc2VcIlxuICBbbmdDbGFzc109XCJkaWFsb2dDbGFzc2VzXCI+XG4gIDxmdy1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNvbnRlbnQtY29uZmlybVwiPlxuICAgICAgPGZ3LWljb24gY2xhc3M9XCJjb250ZW50LWljb25cIiBbbmdDbGFzc109XCJjb25maXJtQ29sb3JcIiAqbmdJZj1cImNvbnRlbnRJY29uXCI+XG4gICAgICAgIHt7IGNvbnRlbnRJY29uIH19XG4gICAgICA8L2Z3LWljb24+XG4gICAgICA8cCBjbGFzcz1cInZpc2lvbi1wMiBjb250ZW50LXRpdGxlXCIgKm5nSWY9XCJjb250ZW50VGl0bGVcIj5cbiAgICAgICAge3sgY29udGVudFRpdGxlIH19XG4gICAgICA8L3A+XG4gICAgICA8cCBjbGFzcz1cInZpc2lvbi1wMiBjb250ZW50LXRleHRcIiAqbmdJZj1cImNvbnRlbnRUZXh0XCI+XG4gICAgICAgIHt7IGNvbnRlbnRUZXh0IH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gIDwvZnctZGlhbG9nLWNvbnRlbnQ+XG4gIDxmdy1kaWFsb2ctYWN0aW9ucz5cbiAgICA8ZnctYnV0dG9uXG4gICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAqbmdJZj1cImNhbmNlbEJ1dHRvblRleHRcIlxuICAgICAgY29sb3I9XCJzbGF0ZVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xvc2VCdXR0b24oKVwiPlxuICAgICAge3sgY2FuY2VsQnV0dG9uVGV4dCB9fVxuICAgIDwvZnctYnV0dG9uPlxuICAgIDxmdy1idXR0b25cbiAgICAgIHZhcmlhbnQ9XCJzb2xpZFwiXG4gICAgICAqbmdJZj1cImNvbmZpcm1CdXR0b25UZXh0XCJcbiAgICAgIFtjb2xvcl09XCJjb25maXJtQ29sb3JcIlxuICAgICAgW2xlZnRJY29uXT1cImNvbmZpcm1CdXR0b25JY29uXCJcbiAgICAgIChjbGljayk9XCJjb25maXJtLmVtaXQoKVwiPlxuICAgICAge3sgY29uZmlybUJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgPC9mdy1kaWFsb2ctYWN0aW9ucz5cbjwvZnctZGlhbG9nPlxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFPakQsTUFBTSxPQUFPLHdCQUF3QjtJQW9CbkMsWUFBK0IsU0FBb0IsRUFBVSxVQUFzQjtRQUFwRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQW5CMUUsVUFBSyxHQUFZLFNBQVMsQ0FBQztRQUUzQixjQUFTLEdBQW9FLFNBQVMsQ0FBQztRQUN2RixpQkFBWSxHQUEwRSxTQUFTLENBQUM7UUFDaEcsc0JBQWlCLEdBQVksU0FBUyxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFjLFlBQVksQ0FBQztRQUM1QyxxQkFBZ0IsR0FBWSxRQUFRLENBQUM7UUFFckMsaUJBQVksR0FBWSxlQUFlLENBQUM7UUFJakQsNERBQTREO1FBQ2xELFVBQUssR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyRCxZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUMsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFFckMsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUcxQixDQUFDO0lBRUQsSUFBMEIsT0FBTztRQUMvQixNQUFNLE9BQU8sR0FBK0IsRUFBRSxDQUFDO1FBRS9DLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtvQkFDdEQsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUM3QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7b0JBQzNDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWxFVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix3ZkNYckMscWxDQXNDQTs7NEZEM0JhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQXdCaEIsUUFBUTtrRUFuQlosS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVUsZUFBZTtzQkFBOUIsS0FBSzt1QkFBQyxPQUFPO2dCQUVKLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQVFtQixPQUFPO3NCQUFoQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9pY29uL2ljb24udHlwZXMnO1xuaW1wb3J0IHsgRGlhbG9nV2lkdGggfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy1kaWFsb2ctY29uZmlybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy1jb25maXJtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZ3RGlhbG9nQ29uZmlybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nID0gJ0NvbmZpcm0nO1xuICBASW5wdXQoKSBpY29uPzogSWNvblR5cGU7XG4gIEBJbnB1dCgpIGljb25Db2xvcj86ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3JlZCcgfCAnb3JhbmdlJyB8ICdncmVlbicgfCAnc2xhdGUnID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBjb25maXJtQ29sb3I/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdkYW5nZXInIHwgJ3NsYXRlJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJyA9ICdwcmltYXJ5JztcbiAgQElucHV0KCkgY29uZmlybUJ1dHRvblRleHQ/OiBzdHJpbmcgPSAnQ29uZmlybSc7XG4gIEBJbnB1dCgpIGNvbmZpcm1CdXR0b25JY29uPzogSWNvblR5cGUgPSAnZG9uZS1jaGVjayc7XG4gIEBJbnB1dCgpIGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmcgPSAnQ2FuY2VsJztcbiAgQElucHV0KCkgY29udGVudEljb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbnRlbnRUaXRsZT86IHN0cmluZyA9ICdBcmUgeW91IHN1cmU/JztcbiAgQElucHV0KCkgY29udGVudFRleHQ/OiBzdHJpbmc7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY2xhc3MnKSBleHRlcm5hbENsYXNzZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBEaWFsb2dXaWR0aCA9IERpYWxvZ1dpZHRoO1xuXG4gIHByaXZhdGUgaXNDbG9zaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogRGlhbG9nUmVmLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NlcygpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgY29uc3QgY2xhc3NlczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAgIGlmICh0aGlzLmV4dGVybmFsQ2xhc3Nlcykge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4dGVybmFsQ2xhc3NlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5leHRlcm5hbENsYXNzZXMuc3BsaXQoJyAnKS5mb3JFYWNoKChjbHM6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGlmIChjbHMudHJpbSgpKSB7XG4gICAgICAgICAgICBjbGFzc2VzW2Nscy50cmltKCldID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZXh0ZXJuYWxDbGFzc2VzKSkge1xuICAgICAgICB0aGlzLmV4dGVybmFsQ2xhc3Nlcy5mb3JFYWNoKChjbHM6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGlmIChjbHMudHJpbSgpKSB7XG4gICAgICAgICAgICBjbGFzc2VzW2Nscy50cmltKCldID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjbGFzc2VzLCB0aGlzLmV4dGVybmFsQ2xhc3Nlcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cblxuICBnZXQgZGlhbG9nQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzQ2xvc2luZyA/ICdkaWFsb2ctY2xvc2luZycgOiAnJztcbiAgfVxuXG4gIGhhbmRsZUNsb3NlQnV0dG9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VXaXRoQW5pbWF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlV2l0aEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Nsb3NpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzQ2xvc2luZyA9IHRydWU7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICB9LCAzMDApO1xuICB9XG59XG4iLCI8ZnctZGlhbG9nXG4gIFt3aWR0aF09XCJEaWFsb2dXaWR0aC5FeHRyYVNtYWxsXCJcbiAgW3RpdGxlXT1cInRpdGxlXCJcbiAgW2ljb25dPVwiaWNvblwiXG4gIFtpY29uQ29sb3JdPVwiaWNvbkNvbG9yXCJcbiAgW3Nob3dDbG9zZV09XCJmYWxzZVwiXG4gIFtuZ0NsYXNzXT1cImRpYWxvZ0NsYXNzZXNcIj5cbiAgPGZ3LWRpYWxvZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudC1jb25maXJtXCI+XG4gICAgICA8ZnctaWNvbiBjbGFzcz1cImNvbnRlbnQtaWNvblwiIFtuZ0NsYXNzXT1cImNvbmZpcm1Db2xvclwiICpuZ0lmPVwiY29udGVudEljb25cIj5cbiAgICAgICAge3sgY29udGVudEljb24gfX1cbiAgICAgIDwvZnctaWNvbj5cbiAgICAgIDxwIGNsYXNzPVwidmlzaW9uLXAyIGNvbnRlbnQtdGl0bGVcIiAqbmdJZj1cImNvbnRlbnRUaXRsZVwiPlxuICAgICAgICB7eyBjb250ZW50VGl0bGUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxwIGNsYXNzPVwidmlzaW9uLXAyIGNvbnRlbnQtdGV4dFwiICpuZ0lmPVwiY29udGVudFRleHRcIj5cbiAgICAgICAge3sgY29udGVudFRleHQgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9mdy1kaWFsb2ctY29udGVudD5cbiAgPGZ3LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxmdy1idXR0b25cbiAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICpuZ0lmPVwiY2FuY2VsQnV0dG9uVGV4dFwiXG4gICAgICBjb2xvcj1cInNsYXRlXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbG9zZUJ1dHRvbigpXCI+XG4gICAgICB7eyBjYW5jZWxCdXR0b25UZXh0IH19XG4gICAgPC9mdy1idXR0b24+XG4gICAgPGZ3LWJ1dHRvblxuICAgICAgdmFyaWFudD1cInNvbGlkXCJcbiAgICAgICpuZ0lmPVwiY29uZmlybUJ1dHRvblRleHRcIlxuICAgICAgW2NvbG9yXT1cImNvbmZpcm1Db2xvclwiXG4gICAgICBbbGVmdEljb25dPVwiY29uZmlybUJ1dHRvbkljb25cIlxuICAgICAgKGNsaWNrKT1cImNvbmZpcm0uZW1pdCgpXCI+XG4gICAgICB7eyBjb25maXJtQnV0dG9uVGV4dCB9fVxuICAgIDwvZnctYnV0dG9uPlxuICA8L2Z3LWRpYWxvZy1hY3Rpb25zPlxuPC9mdy1kaWFsb2c+XG4iXX0=
@@ -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/OiBJY29uVHlwZTtcbiAgQElucHV0KCkgaWNvbkNvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdvcmFuZ2UnIHwgJ2dyZWVuJyB8ICdzbGF0ZScgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNob3dDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25JY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25JY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjb250ZW50VGV4dD86IHN0cmluZztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjbGFzcycpIGV4dGVybmFsQ2xhc3Nlcz86IHN0cmluZyB8IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGFjdGlvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWx0ZXJuYXRlQWN0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBpc0Nsb3NpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nUmVmOiBEaWFsb2dSZWYsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBjbGFzc2VzKCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICBjb25zdCBjbGFzc2VzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgaWYgKHRoaXMuZXh0ZXJuYWxDbGFzc2VzKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuZXh0ZXJuYWxDbGFzc2VzID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmV4dGVybmFsQ2xhc3Nlcy5zcGxpdCgnICcpLmZvckVhY2goKGNsczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKGNscy50cmltKCkpIHtcbiAgICAgICAgICAgIGNsYXNzZXNbY2xzLnRyaW0oKV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5leHRlcm5hbENsYXNzZXMpKSB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDbGFzc2VzLmZvckVhY2goKGNsczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKGNscy50cmltKCkpIHtcbiAgICAgICAgICAgIGNsYXNzZXNbY2xzLnRyaW0oKV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3QuYXNzaWduKGNsYXNzZXMsIHRoaXMuZXh0ZXJuYWxDbGFzc2VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIGdldCBkaWFsb2dDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNDbG9zaW5nID8gJ2RpYWxvZy1jbG9zaW5nJyA6ICcnO1xuICB9XG5cbiAgaGFuZGxlQ2xvc2VCdXR0b24oKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZVdpdGhBbmltYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VXaXRoQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ2xvc2luZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNDbG9zaW5nID0gdHJ1ZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH0sIDMwMCk7XG4gIH1cbn1cbiIsIjxmdy1kaWFsb2dcbiAgW3dpZHRoXT1cIndpZHRoXCJcbiAgW3RpdGxlXT1cInRpdGxlXCJcbiAgW2ljb25dPVwiaWNvblwiXG4gIFtpY29uQ29sb3JdPVwiaWNvbkNvbG9yXCJcbiAgW3Nob3dDbG9zZV09XCJzaG93Q2xvc2VcIlxuICBbbmdDbGFzc109XCJkaWFsb2dDbGFzc2VzXCI+XG4gIDxmdy1kaWFsb2ctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmdy1kaWFsb2ctY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICA8cCBjbGFzcz1cInZpc2lvbi1wMiBkaWFsb2ctY29udGVudC1kZWZhdWx0XCIgKm5nSWY9XCJjb250ZW50VGV4dFwiPnt7IGNvbnRlbnRUZXh0IH19PC9wPlxuICA8L2Z3LWRpYWxvZy1jb250ZW50PlxuICA8ZnctZGlhbG9nLWFjdGlvbnM+XG4gICAgPGZ3LWJ1dHRvblxuICAgICAgdmFyaWFudD1cIm91dGxpbmVcIlxuICAgICAgKm5nSWY9XCJhbHRlcm5hdGVCdXR0b25UZXh0XCJcbiAgICAgIFtsZWZ0SWNvbl09XCJhbHRlcm5hdGVCdXR0b25JY29uXCJcbiAgICAgIChjbGljayk9XCJhbHRlcm5hdGVBY3Rpb24uZW1pdCgpXCI+XG4gICAgICB7eyBhbHRlcm5hdGVCdXR0b25UZXh0IH19XG4gICAgPC9mdy1idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj48L2Rpdj5cbiAgICA8ZnctYnV0dG9uIHZhcmlhbnQ9XCJvdXRsaW5lXCIgKm5nSWY9XCJjYW5jZWxCdXR0b25UZXh0XCIgKGNsaWNrKT1cImhhbmRsZUNsb3NlQnV0dG9uKClcIj5cbiAgICAgIHt7IGNhbmNlbEJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgICA8ZnctYnV0dG9uIHZhcmlhbnQ9XCJzb2xpZFwiICpuZ0lmPVwiYWN0aW9uQnV0dG9uVGV4dFwiIChjbGljayk9XCJhY3Rpb24uZW1pdCgpXCI+XG4gICAgICB7eyBhY3Rpb25CdXR0b25UZXh0IH19XG4gICAgPC9mdy1idXR0b24+XG4gIDwvZnctZGlhbG9nLWFjdGlvbnM+XG48L2Z3LWRpYWxvZz5cblxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJsQyxZQUErQixTQUFvQixFQUFVLFVBQXNCO1FBQXBELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBcEIxRSxVQUFLLEdBQWtFLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFHOUYsY0FBUyxHQUFvRSxTQUFTLENBQUM7UUFDdkYsY0FBUyxHQUFhLElBQUksQ0FBQztRQVNwQyw0REFBNEQ7UUFDbEQsVUFBSyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RCxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWpFLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFHMUIsQ0FBQztJQUVELElBQTBCLE9BQU87UUFDL0IsTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUUvQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7b0JBQ3RELElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO29CQUMzQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQzdCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0FuRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNmpCQ1hwQyw4N0JBNkJBOzs0RkRsQmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBeUJmLFFBQVE7a0VBcEJaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVUsZUFBZTtzQkFBOUIsS0FBSzt1QkFBQyxPQUFPO2dCQUVKLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFPbUIsT0FBTztzQkFBaEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vaWNvbi9pY29uLnR5cGVzJztcbmltcG9ydCB7IERpYWxvZ1dpZHRoIH0gZnJvbSAnLi9kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctZGlhbG9nLXNpbXBsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctc2ltcGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLXNpbXBsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ1NpbXBsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdpZHRoPzogJ2V4dHJhLXNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAnZXh0cmEtbGFyZ2UnID0gRGlhbG9nV2lkdGguRXh0cmFTbWFsbDtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb24/OiBJY29uVHlwZTtcbiAgQElucHV0KCkgaWNvbkNvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdvcmFuZ2UnIHwgJ2dyZWVuJyB8ICdzbGF0ZScgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNob3dDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25JY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRlcm5hdGVCdXR0b25JY29uPzogSWNvblR5cGU7XG4gIEBJbnB1dCgpIGNvbnRlbnRUZXh0Pzogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NsYXNzJykgZXh0ZXJuYWxDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhbHRlcm5hdGVBY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIGlzQ2xvc2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzZXMoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIGNvbnN0IGNsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbENsYXNzZXMpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5leHRlcm5hbENsYXNzZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmV4dGVybmFsQ2xhc3NlcykpIHtcbiAgICAgICAgdGhpcy5leHRlcm5hbENsYXNzZXMuZm9yRWFjaCgoY2xzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoY2xzLnRyaW0oKSkge1xuICAgICAgICAgICAgY2xhc3Nlc1tjbHMudHJpbSgpXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY2xhc3NlcywgdGhpcy5leHRlcm5hbENsYXNzZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Nsb3NpbmcgPyAnZGlhbG9nLWNsb3NpbmcnIDogJyc7XG4gIH1cblxuICBoYW5kbGVDbG9zZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVdpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDbG9zaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIiwiPGZ3LWRpYWxvZ1xuICBbd2lkdGhdPVwid2lkdGhcIlxuICBbdGl0bGVdPVwidGl0bGVcIlxuICBbaWNvbl09XCJpY29uXCJcbiAgW2ljb25Db2xvcl09XCJpY29uQ29sb3JcIlxuICBbc2hvd0Nsb3NlXT1cInNob3dDbG9zZVwiXG4gIFtuZ0NsYXNzXT1cImRpYWxvZ0NsYXNzZXNcIj5cbiAgPGZ3LWRpYWxvZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZ3LWRpYWxvZy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDxwIGNsYXNzPVwidmlzaW9uLXAyIGRpYWxvZy1jb250ZW50LWRlZmF1bHRcIiAqbmdJZj1cImNvbnRlbnRUZXh0XCI+e3sgY29udGVudFRleHQgfX08L3A+XG4gIDwvZnctZGlhbG9nLWNvbnRlbnQ+XG4gIDxmdy1kaWFsb2ctYWN0aW9ucz5cbiAgICA8ZnctYnV0dG9uXG4gICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAqbmdJZj1cImFsdGVybmF0ZUJ1dHRvblRleHRcIlxuICAgICAgW2xlZnRJY29uXT1cImFsdGVybmF0ZUJ1dHRvbkljb25cIlxuICAgICAgKGNsaWNrKT1cImFsdGVybmF0ZUFjdGlvbi5lbWl0KClcIj5cbiAgICAgIHt7IGFsdGVybmF0ZUJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPjwvZGl2PlxuICAgIDxmdy1idXR0b24gdmFyaWFudD1cIm91dGxpbmVcIiAqbmdJZj1cImNhbmNlbEJ1dHRvblRleHRcIiAoY2xpY2spPVwiaGFuZGxlQ2xvc2VCdXR0b24oKVwiPlxuICAgICAge3sgY2FuY2VsQnV0dG9uVGV4dCB9fVxuICAgIDwvZnctYnV0dG9uPlxuICAgIDxmdy1idXR0b24gdmFyaWFudD1cInNvbGlkXCIgKm5nSWY9XCJhY3Rpb25CdXR0b25UZXh0XCIgKGNsaWNrKT1cImFjdGlvbi5lbWl0KClcIj5cbiAgICAgIHt7IGFjdGlvbkJ1dHRvblRleHQgfX1cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgPC9mdy1kaWFsb2ctYWN0aW9ucz5cbjwvZnctZGlhbG9nPlxuXG4iXX0=
@@ -26,14 +26,20 @@ export class FwDialogService extends Dialog {
26
26
  // Handle backdrop clicks with animation
27
27
  if (dialogRef.overlayRef.backdropElement) {
28
28
  dialogRef.overlayRef.backdropElement.addEventListener('click', evt => {
29
- evt.stopPropagation();
30
- this.closeWithAnimation(dialogRef);
29
+ const isBackdropCloseEnabled = !config.canCloseCheck || config.canCloseCheck();
30
+ if (isBackdropCloseEnabled) {
31
+ evt.stopPropagation();
32
+ this.closeWithAnimation(dialogRef);
33
+ }
31
34
  });
32
35
  }
33
36
  // Handle ESC key with animation
34
37
  dialogRef.overlayRef.keydownEvents().subscribe(event => {
38
+ const isBackdropCloseEnabled = !config.canCloseCheck || config.canCloseCheck();
35
39
  if (event.key === 'Escape') {
36
- this.closeWithAnimation(dialogRef);
40
+ if (isBackdropCloseEnabled) {
41
+ this.closeWithAnimation(dialogRef);
42
+ }
37
43
  }
38
44
  });
39
45
  return dialogRef;
@@ -88,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
88
94
  }] }, { type: i2.DialogRef, decorators: [{
89
95
  type: Optional
90
96
  }] }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQTJCLE1BQU0scUJBQXFCLENBQUM7QUFFckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUtqRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQ3pDLFlBQW9CLE9BQWdCLEVBQ3hCLFNBQW1CLEVBQ1osUUFBa0IsRUFDa0IsYUFBMkIsRUFDL0Qsb0JBQXNDLEVBQ2IsY0FBbUIsRUFDM0IsYUFBcUIsRUFDMUIsU0FBeUI7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVI1RSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRWpCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFbEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFrQjtRQUcxQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUV4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUksU0FBMkIsRUFBRSxNQUFxQixFQUFFLFNBQWtCO1FBQ2xGLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGtCQUFrQixFQUFFO1lBQzNHLFlBQVksRUFBRSxJ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LFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgREVGQVVMVF9ESUFMT0dfQ09ORklHLCBEaWFsb2csIERJQUxPR19TQ1JPTExfU1RSQVRFR1ksIERpYWxvZ0NvbmZpZywgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBPdmVybGF5LCBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGd0RpYWxvZ1NlcnZpY2UgZXh0ZW5kcyBEaWFsb2cge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREVGQVVMVF9ESUFMT0dfQ09ORklHKSBfZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgIHB1YmxpYyBfb3ZlcmxheUNvbnRhaW5lclJlZjogT3ZlcmxheUNvbnRhaW5lcixcbiAgICAgICAgICAgICAgQEluamVjdChESUFMT0dfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneTogYW55LFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBfcGFyZW50RGlhbG9nOiBEaWFsb2csXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+KSB7XG4gICAgc3VwZXIob3ZlcmxheSwgX2luamVjdG9yLCBfZGlhbG9nQ29uZmlnLCBfcGFyZW50RGlhbG9nLCBfb3ZlcmxheUNvbnRhaW5lclJlZiwgc2Nyb2xsU3RyYXRlZ3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gYSBjdXN0b20gY29tcG9uZW50IGluIGFuIG92ZXJsYXkgYW5kIHBvc2l0aW9uZWQgbmVhciB0aGUgdG9wXG4gICAqL1xuICBvcGVuRGlhbG9nPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnLCB0b3BPZmZzZXQ/OiBzdHJpbmcpOiBEaWFsb2dSZWY8dW5rbm93biwgYW55PiB7XG4gICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0ge1xuICAgICAgYmFja2Ryb3BDbGFzczogJ3Zpc2lvbi1vdmVybGF5JyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCh0b3BPZmZzZXQgPyB0b3BPZmZzZXQgOiAnMTB2aCcpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLCAvLyBEaXNhYmxlIGRlZmF1bHQgYmFja2Ryb3AgY2xvc2UgdG8gaGFuZGxlIGl0IG1hbnVhbGx5XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBzdXBlci5vcGVuKGNvbXBvbmVudCwgY29uZmlnKTtcblxuICAgIC8vIEhhbmRsZSBiYWNrZHJvcCBjbGlja3Mgd2l0aCBhbmltYXRpb25cbiAgICBpZiAoZGlhbG9nUmVmLm92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICBkaWFsb2dSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY2xvc2VXaXRoQW5pbWF0aW9uKGRpYWxvZ1JlZik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgRVNDIGtleSB3aXRoIGFuaW1hdGlvblxuICAgIGRpYWxvZ1JlZi5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgdGhpcy5jbG9zZVdpdGhBbmltYXRpb24oZGlhbG9nUmVmKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkaWFsb2dSZWY7XG4gIH1cblxuICBvcGVuTW9kYWxEaWFsb2c8VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc/OiBEaWFsb2dDb25maWcsIHRvcE9mZnNldD86IHN0cmluZyk6IERpYWxvZ1JlZjx1bmtub3duLCBhbnk+IHtcbiAgICBjb25zdCBkZWZhdWx0U2V0dGluZ3MgPSB7XG4gICAgICBiYWNrZHJvcENsYXNzOiAndmlzaW9uLW92ZXJsYXknLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkudG9wKHRvcE9mZnNldCA/IHRvcE9mZnNldCA6ICcxMHZoJykuY2VudGVySG9yaXpvbnRhbGx5KCksXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsIC8vIERpc2FibGUgZGVmYXVsdCBiYWNrZHJvcCBjbG9zZSB0byBoYW5kbGUgaXQgbWFudWFsbHlcbiAgICB9O1xuXG4gICAgY29uZmlnID0geyAuLi5jb25maWcsIC4uLmRlZmF1bHRTZXR0aW5ncyB9O1xuICAgIHJldHVybiBzdXBlci5vcGVuKGNvbXBvbmVudCwgY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VXaXRoQW5pbWF0aW9uKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dFbGVtZW50ID0gZGlhbG9nUmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2Z3LWRpYWxvZywgZnctZGlhbG9nLWNvbmZpcm0sIGZ3LWRpYWxvZy1zaW1wbGUnKTtcblxuICAgIGlmIChkaWFsb2dFbGVtZW50ICYmICFkaWFsb2dFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnZGlhbG9nLWNsb3NpbmcnKSkge1xuICAgICAgaWYgKGRpYWxvZ0VsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAnZnctZGlhbG9nJykge1xuICAgICAgICAvLyBGb3IgZnctZGlhbG9nLWNvbmZpcm0gYW5kIGZ3LWRpYWxvZy1zaW1wbGUsIGFwcGx5IHRoZSBjbGFzcyB0byB0aGUgaW5uZXIgZnctZGlhbG9nIGVsZW1lbnRcbiAgICAgICAgY29uc3QgaW5uZXJEaWFsb2cgPSBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Z3LWRpYWxvZycpO1xuICAgICAgICBpZiAoaW5uZXJEaWFsb2cpIHtcbiAgICAgICAgICBpbm5lckRpYWxvZy5jbGFzc0xpc3QuYWRkKCdkaWFsb2ctY2xvc2luZycpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaWFsb2dFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2RpYWxvZy1jbG9zaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQTJCLE1BQU0scUJBQXFCLENBQUM7QUFFckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUtqRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQ3pDLFlBQW9CLE9BQWdCLEVBQ3hCLFNBQW1CLEVBQ1osUUFBa0IsRUFDa0IsYUFBMkIsRUFDL0Qsb0JBQXNDLEVBQ2IsY0FBbUIsRUFDM0IsYUFBcUIsRUFDMUIsU0FBeUI7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVI1RSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRWpCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFbEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFrQjtRQUcxQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUV4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUksU0FBMkIsRUFBRSxNQUF5RCxFQUFFLFNBQWtCO1FBQ3RILE1BQU0sZUFBZSxHQUFHO1lBQ3RCLGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGtCQUFrQixFQUFFO1lBQzNHLFlBQVksRUFBRSxJ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QUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQzsrR0EvRVUsZUFBZSx5RkFJTSxxQkFBcUIsNkRBRWpDLHNCQUFzQjttSEFOL0IsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBRXhDLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDN0IsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBERUZBVUxUX0RJQUxPR19DT05GSUcsIERpYWxvZywgRElBTE9HX1NDUk9MTF9TVFJBVEVHWSwgRGlhbG9nQ29uZmlnLCBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUsIE92ZXJsYXksIE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZ3RGlhbG9nU2VydmljZSBleHRlbmRzIERpYWxvZyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHVibGljIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChERUZBVUxUX0RJQUxPR19DT05GSUcpIF9kaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgcHVibGljIF9vdmVybGF5Q29udGFpbmVyUmVmOiBPdmVybGF5Q29udGFpbmVyLFxuICAgICAgICAgICAgICBASW5qZWN0KERJQUxPR19TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIF9wYXJlbnREaWFsb2c6IERpYWxvZyxcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4pIHtcbiAgICBzdXBlcihvdmVybGF5LCBfaW5qZWN0b3IsIF9kaWFsb2dDb25maWcsIF9wYXJlbnREaWFsb2csIF9vdmVybGF5Q29udGFpbmVyUmVmLCBzY3JvbGxTdHJhdGVneSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiBhIGN1c3RvbSBjb21wb25lbnQgaW4gYW4gb3ZlcmxheSBhbmQgcG9zaXRpb25lZCBuZWFyIHRoZSB0b3BcbiAgICovXG4gIG9wZW5EaWFsb2c8VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc/OiBEaWFsb2dDb25maWcgJiB7IGNhbkNsb3NlQ2hlY2s/OiAoKSA9PiBib29sZWFuIH0sIHRvcE9mZnNldD86IHN0cmluZyk6IERpYWxvZ1JlZjx1bmtub3duLCBhbnk+IHtcbiAgICBjb25zdCBkZWZhdWx0U2V0dGluZ3MgPSB7XG4gICAgICBiYWNrZHJvcENsYXNzOiAndmlzaW9uLW92ZXJsYXknLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkudG9wKHRvcE9mZnNldCA/IHRvcE9mZnNldCA6ICcxMHZoJykuY2VudGVySG9yaXpvbnRhbGx5KCksXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsIC8vIERpc2FibGUgZGVmYXVsdCBiYWNrZHJvcCBjbG9zZSB0byBoYW5kbGUgaXQgbWFudWFsbHlcbiAgICB9O1xuXG4gICAgY29uZmlnID0geyAuLi5jb25maWcsIC4uLmRlZmF1bHRTZXR0aW5ncyB9O1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHN1cGVyLm9wZW4oY29tcG9uZW50LCBjb25maWcpO1xuXG4gICAgLy8gSGFuZGxlIGJhY2tkcm9wIGNsaWNrcyB3aXRoIGFuaW1hdGlvblxuICAgIGlmIChkaWFsb2dSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQpIHtcbiAgICAgIGRpYWxvZ1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV2dCA9PiB7XG4gICAgICAgIGNvbnN0IGlzQmFja2Ryb3BDbG9zZUVuYWJsZWQgPSAhY29uZmlnLmNhbkNsb3NlQ2hlY2sgfHwgY29uZmlnLmNhbkNsb3NlQ2hlY2soKTtcbiAgICAgICAgaWYgKGlzQmFja2Ryb3BDbG9zZUVuYWJsZWQpIHtcbiAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdGhpcy5jbG9zZVdpdGhBbmltYXRpb24oZGlhbG9nUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIEVTQyBrZXkgd2l0aCBhbmltYXRpb25cbiAgICBkaWFsb2dSZWYub3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzQmFja2Ryb3BDbG9zZUVuYWJsZWQgPSAhY29uZmlnLmNhbkNsb3NlQ2hlY2sgfHwgY29uZmlnLmNhbkNsb3NlQ2hlY2soKTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgaWYgKGlzQmFja2Ryb3BDbG9zZUVuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlV2l0aEFuaW1hdGlvbihkaWFsb2dSZWYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgb3Blbk1vZGFsRGlhbG9nPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnLCB0b3BPZmZzZXQ/OiBzdHJpbmcpOiBEaWFsb2dSZWY8dW5rbm93biwgYW55PiB7XG4gICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0ge1xuICAgICAgYmFja2Ryb3BDbGFzczogJ3Zpc2lvbi1vdmVybGF5JyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCh0b3BPZmZzZXQgPyB0b3BPZmZzZXQgOiAnMTB2aCcpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLCAvLyBEaXNhYmxlIGRlZmF1bHQgYmFja2Ryb3AgY2xvc2UgdG8gaGFuZGxlIGl0IG1hbnVhbGx5XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICByZXR1cm4gc3VwZXIub3Blbihjb21wb25lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBjbG9zZVdpdGhBbmltYXRpb24oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ0VsZW1lbnQgPSBkaWFsb2dSZWYub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudD8ucXVlcnlTZWxlY3RvcignZnctZGlhbG9nLCBmdy1kaWFsb2ctY29uZmlybSwgZnctZGlhbG9nLXNpbXBsZScpO1xuXG4gICAgaWYgKGRpYWxvZ0VsZW1lbnQgJiYgIWRpYWxvZ0VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaWFsb2ctY2xvc2luZycpKSB7XG4gICAgICBpZiAoZGlhbG9nRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdmdy1kaWFsb2cnKSB7XG4gICAgICAgIC8vIEZvciBmdy1kaWFsb2ctY29uZmlybSBhbmQgZnctZGlhbG9nLXNpbXBsZSwgYXBwbHkgdGhlIGNsYXNzIHRvIHRoZSBpbm5lciBmdy1kaWFsb2cgZWxlbWVudFxuICAgICAgICBjb25zdCBpbm5lckRpYWxvZyA9IGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcignZnctZGlhbG9nJyk7XG4gICAgICAgIGlmIChpbm5lckRpYWxvZykge1xuICAgICAgICAgIGlubmVyRGlhbG9nLmNsYXNzTGlzdC5hZGQoJ2RpYWxvZy1jbG9zaW5nJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpYWxvZ0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZGlhbG9nLWNsb3NpbmcnKTtcbiAgICAgIH1cblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -83,11 +83,11 @@ export class FwMenuContainerComponent {
83
83
  this.filteredMenuItemChange.emit(this.filteredMenuItems);
84
84
  }
85
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwMenuContainerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: false, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: false, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: false, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: false, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: false, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, filterText: { classPropertyName: "filterText", publicName: "filterText", isSignal: false, isRequired: false, transformFunction: null }, focusFilterOnMount: { classPropertyName: "focusFilterOnMount", publicName: "focusFilterOnMount", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: false, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, additionalMenuItems: { classPropertyName: "additionalMenuItems", publicName: "additionalMenuItems", isSignal: true, isRequired: false, transformFunction: null }, keyHandler: { classPropertyName: "keyHandler", publicName: "keyHandler", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { filteredMenuItemChange: "filteredMenuItemChange", filterChanged: "filterChanged" }, host: { properties: { "attr.class": "this.classes", "style": "this.style" } }, queries: [{ propertyName: "childMenuItems", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], viewQueries: [{ propertyName: "filterRef", first: true, predicate: ["menuFilter"], descendants: true }], ngImport: i0, template: "<div #filterBox *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n (click)=\"handleFilterClick($event)\"\n #menuFilter\n (keydown)=\"keyHandler?.($event)\"\n placeholder=\"Search\" leftIcon=\"search\" autofocus\n [value]=\"filterText\" (input)=\"handleFilterInput($event)\">\n </fw-text-input>\n <ng-content select=\".filter-content\"></ng-content>\n</div>\n<div class=\"menu-wrapper\">\n <fw-menu-item *ngIf=\"noResults()\" [title]=\"emptyText()\" [disabled]=\"true\"></fw-menu-item>\n <ng-content></ng-content>\n <ng-content select=\"custom-menu-items\"></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;flex-direction:column;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);max-width:calc(100% - 16px);height:fit-content}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;overflow:hidden auto;margin-bottom:4px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"], dependencies: [{ kind: "directive", type: i2.CdkMenuBar, selector: "[cdkMenuBar]", exportAs: ["cdkMenuBar"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "value", "error", "width"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "component", type: i5.FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }], encapsulation: i0.ViewEncapsulation.None }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: false, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: false, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: false, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: false, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: false, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, filterText: { classPropertyName: "filterText", publicName: "filterText", isSignal: false, isRequired: false, transformFunction: null }, focusFilterOnMount: { classPropertyName: "focusFilterOnMount", publicName: "focusFilterOnMount", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: false, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, additionalMenuItems: { classPropertyName: "additionalMenuItems", publicName: "additionalMenuItems", isSignal: true, isRequired: false, transformFunction: null }, keyHandler: { classPropertyName: "keyHandler", publicName: "keyHandler", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { filteredMenuItemChange: "filteredMenuItemChange", filterChanged: "filterChanged" }, host: { properties: { "attr.class": "this.classes", "style": "this.style" } }, queries: [{ propertyName: "childMenuItems", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], viewQueries: [{ propertyName: "filterRef", first: true, predicate: ["menuFilter"], descendants: true }], ngImport: i0, template: "<div #filterBox *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n (click)=\"handleFilterClick($event)\"\n #menuFilter\n (keydown)=\"keyHandler?.($event)\"\n placeholder=\"Search\" leftIcon=\"search\" [autofocus]=\"true\"\n [value]=\"filterText\" (input)=\"handleFilterInput($event)\">\n </fw-text-input>\n <ng-content select=\".filter-content\"></ng-content>\n</div>\n<div class=\"menu-wrapper\">\n <fw-menu-item *ngIf=\"noResults()\" [title]=\"emptyText()\" [disabled]=\"true\"></fw-menu-item>\n <ng-content></ng-content>\n <ng-content select=\"custom-menu-items\"></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;flex-direction:column;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);max-width:calc(100% - 16px);height:fit-content}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;overflow:hidden auto;margin-bottom:4px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"], dependencies: [{ kind: "directive", type: i2.CdkMenuBar, selector: "[cdkMenuBar]", exportAs: ["cdkMenuBar"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "value", "error", "width"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "component", type: i5.FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }], encapsulation: i0.ViewEncapsulation.None }); }
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwMenuContainerComponent, decorators: [{
89
89
  type: Component,
90
- args: [{ selector: 'fw-menu-container, fw-menu-filter', encapsulation: ViewEncapsulation.None, template: "<div #filterBox *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n (click)=\"handleFilterClick($event)\"\n #menuFilter\n (keydown)=\"keyHandler?.($event)\"\n placeholder=\"Search\" leftIcon=\"search\" autofocus\n [value]=\"filterText\" (input)=\"handleFilterInput($event)\">\n </fw-text-input>\n <ng-content select=\".filter-content\"></ng-content>\n</div>\n<div class=\"menu-wrapper\">\n <fw-menu-item *ngIf=\"noResults()\" [title]=\"emptyText()\" [disabled]=\"true\"></fw-menu-item>\n <ng-content></ng-content>\n <ng-content select=\"custom-menu-items\"></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;flex-direction:column;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);max-width:calc(100% - 16px);height:fit-content}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;overflow:hidden auto;margin-bottom:4px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"] }]
90
+ args: [{ selector: 'fw-menu-container, fw-menu-filter', encapsulation: ViewEncapsulation.None, template: "<div #filterBox *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n (click)=\"handleFilterClick($event)\"\n #menuFilter\n (keydown)=\"keyHandler?.($event)\"\n placeholder=\"Search\" leftIcon=\"search\" [autofocus]=\"true\"\n [value]=\"filterText\" (input)=\"handleFilterInput($event)\">\n </fw-text-input>\n <ng-content select=\".filter-content\"></ng-content>\n</div>\n<div class=\"menu-wrapper\">\n <fw-menu-item *ngIf=\"noResults()\" [title]=\"emptyText()\" [disabled]=\"true\"></fw-menu-item>\n <ng-content></ng-content>\n <ng-content select=\"custom-menu-items\"></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;flex-direction:column;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);max-width:calc(100% - 16px);height:fit-content}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;overflow:hidden auto;margin-bottom:4px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"] }]
91
91
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { width: [{
92
92
  type: Input
93
93
  }], maxHeight: [{
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
123
123
  type: HostBinding,
124
124
  args: ['style']
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbWVudS9tZW51LWNvbnRhaW5lci9tZW51LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tZW51L21lbnUtY29udGFpbmVyL21lbnUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFdBQVcsRUFDWCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLHdCQUF3QjtJQXNDbkMsSUFBK0IsT0FBTztRQUNwQyxPQUFPO1lBQ0wsbUJBQW1CO1lBQ25CLGlCQUFpQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzlCLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUN4QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBMEIsS0FBSztRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7ZUFDcEMsSUFBSSxDQUFDLEtBQUs7b0JBQ0wsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsSUFBSSxDQUFDLE1BQU07S0FDMUIsQ0FBQyxDQUFDO0lBQ0ws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QWU7Z0JBV3BCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRXlCLE9BQU87c0JBQXJDLFdBQVc7dUJBQUMsWUFBWTtnQkFRQyxLQUFLO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBDb250ZW50Q2hpbGQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlU3R5bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgRndUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZ3TWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEZ3TWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LW1lbnUtY29udGFpbmVyLCBmdy1tZW51LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEZ3TWVudUNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIHdpZHRoPzogc3RyaW5nID0gJ2luaGVyaXQnO1xuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBzdHJpbmcgPSAnYXV0byc7XG4gIEBJbnB1dCgpIG1pbkhlaWdodD86IHN0cmluZyA9ICdhdXRvJztcbiAgQElucHV0KCkgYm9yZGVyPzogJ25vbmUnIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzaGFkb3c/OiAnbm9uZScgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ2V4dHJhLWxhcmdlJyB8ICdpbm5lcicgPSAnbGFyZ2UnO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWw6IEJvb2xlYW5JbnB1dCkgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCkgfSkgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWx0ZXJUZXh0Pzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbDogQm9vbGVhbklucHV0KSA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKSB9KSBmb2N1c0ZpbHRlck9uTW91bnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgb2Zmc2V0Pzogc3RyaW5nID0gJzBweCc7XG4gIGVtcHR5VGV4dCA9IGlucHV0KCdObyByZXN1bHRzJylcblxuICBmaWx0ZXJlZE1lbnVJdGVtczogRndNZW51SXRlbUNvbXBvbmVudFtdO1xuICBmaWx0ZXJlZE1lbnVJdGVtQ2hhbmdlID0gb3V0cHV0PEZ3TWVudUl0ZW1Db21wb25lbnRbXT4oKTtcblxuICBwcml2YXRlIGRlZmF1bHRGaWx0ZXJGbiA9IChmaWx0ZXI6IHN0cmluZywgbWVudUl0ZW1zOiBGd01lbnVJdGVtQ29tcG9uZW50W10pOiBGd01lbnVJdGVtQ29tcG9uZW50W10gPT4ge1xuICAgIHJldHVybiBtZW51SXRlbXM/LmZpbHRlcihtZW51SXRlbSA9PiBtZW51SXRlbS50aXRsZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXI/LnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuXG4gIGZpbHRlckZuID0gaW5wdXQodGhpcy5kZWZhdWx0RmlsdGVyRm4pO1xuXG4gIGZpbHRlckNoYW5nZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICBAVmlld0NoaWxkKCdtZW51RmlsdGVyJykgZmlsdGVyUmVmOiBGd1RleHRJbnB1dENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEZ3TWVudUNvbXBvbmVudCkgbWVudTogRndNZW51Q29tcG9uZW50O1xuXG4gIC8vIGZvciBwYXNzaW5nIG1lbnUgaXRlbXMgZm9yIHRoZSBjb250YWluZXIgdG8gZmlsdGVyXG4gIC8vIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBuZXN0ZWQgY29udGVudCBjaGlsZHJlblxuICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYyODg2NjEzL2FuZ3VsYXItOS1uZXN0ZWQtbmctY29udGVudC1hbmQtY29udGVudGNoaWxkcmVuXG4gIGFkZGl0aW9uYWxNZW51SXRlbXMgPSBpbnB1dDxGd01lbnVJdGVtQ29tcG9uZW50W10+KFtdKTtcbiAgY2hpbGRNZW51SXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oRndNZW51SXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBjb21iaW5lZE1lbnVJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gWy4uLnRoaXMuY2hpbGRNZW51SXRlbXMoKSwgLi4udGhpcy5hZGRpdGlvbmFsTWVudUl0ZW1zKCldO1xuICB9KTtcblxuICBASW5wdXQoKSBrZXlIYW5kbGVyOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmNsYXNzJykgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z3LW1lbnUtY29udGFpbmVyJyxcbiAgICAgIGB2aXNpb24tc2hhZG93LSR7dGhpcy5zaGFkb3d9YCxcbiAgICAgIGBib3JkZXItJHt0aGlzLmJvcmRlcn1gLFxuICAgIF0uam9pbignICcpO1xuICB9O1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgc3R5bGUoKTogU2FmZVN0eWxlIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICAgIHdpZHRoOiAke3RoaXMud2lkdGh9O1xuICAgICAgbWF4LWhlaWdodDogJHt0aGlzLm1heEhlaWdodH07XG4gICAgICBtaW4taGVpZ2h0OiAke3RoaXMubWluSGVpZ2h0fTtcbiAgICAgIG1hcmdpbi10b3A6ICR7dGhpcy5vZmZzZXR9O1xuICAgIGApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9jdXNGaWx0ZXJPbk1vdW50ICYmIHRoaXMuc2hvd0ZpbHRlcikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEByeC1hbmd1bGFyL3ByZWZlci1uby1sYXlvdXQtc2Vuc2l0aXZlLWFwaXNcbiAgICAgIHRoaXMuZmlsdGVyUmVmPy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8vIHdlIG5lZWQgdG8gcnVuIHRoZSBmaWx0ZXIgb24gaW5pdCBpbiBjYXNlIHRoZSBjdXN0b20gZmlsdGVyIGlzIGZpbHRlcmluZyB0aGluZ3NcbiAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlKCcnKTtcbiAgfVxuXG4gIG5vUmVzdWx0cyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgaGFuZGxlRmlsdGVyQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZHtcbiAgICAvLyBzdG9wcyBmaWx0ZXJzIGluIG1lbnVzIGZyb20gY2xvc2luZyB0aGUgcGFyZW50IG1lbnVcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGhhbmRsZUZpbHRlcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBpbnB1dC52YWx1ZTtcbiAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlKGZpbHRlclZhbHVlKTtcbiAgfVxuXG4gIG9uRmlsdGVyQ2hhbmdlKGZpbHRlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYWxsTWVudUl0ZW1zID0gdGhpcy5jb21iaW5lZE1lbnVJdGVtcygpO1xuXG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VkLmVtaXQoZmlsdGVyKTtcbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuZmlsdGVyRm4oKTtcblxuICAgIHRoaXMuZmlsdGVyZWRNZW51SXRlbXMgPSBmaWx0ZXJGbihmaWx0ZXIsIGFsbE1lbnVJdGVtcyk7XG5cbiAgICBhbGxNZW51SXRlbXMuZm9yRWFjaChtZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBzaG91bGRCZUhpZGRlbiA9ICF0aGlzLmZpbHRlcmVkTWVudUl0ZW1zLmluY2x1ZGVzKG1lbnVJdGVtKTtcbiAgICAgIG1lbnVJdGVtLmhpZGRlbiA9IHNob3VsZEJlSGlkZGVuO1xuICAgIH0pXG5cbiAgICB0aGlzLm5vUmVzdWx0cy5zZXQoYWxsTWVudUl0ZW1zLmxlbmd0aCA+IDAgJiYgYWxsTWVudUl0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5oaWRkZW4pKTtcblxuICAgIHRoaXMuZmlsdGVyZWRNZW51SXRlbUNoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRNZW51SXRlbXMpO1xuICB9XG59XG4iLCI8ZGl2ICNmaWx0ZXJCb3ggKm5nSWY9XCJzaG93RmlsdGVyXCIgY2xhc3M9XCJmaWx0ZXItYm94XCIgY2RrTWVudUJhcj5cbiAgPGZ3LXRleHQtaW5wdXRcbiAgICAoY2xpY2spPVwiaGFuZGxlRmlsdGVyQ2xpY2soJGV2ZW50KVwiXG4gICAgI21lbnVGaWx0ZXJcbiAgICAoa2V5ZG93bik9XCJrZXlIYW5kbGVyPy4oJGV2ZW50KVwiXG4gICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBsZWZ0SWNvbj1cInNlYXJjaFwiIGF1dG9mb2N1c1xuICAgIFt2YWx1ZV09XCJmaWx0ZXJUZXh0XCIgKGlucHV0KT1cImhhbmRsZUZpbHRlcklucHV0KCRldmVudClcIj5cbiAgPC9mdy10ZXh0LWlucHV0PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZmlsdGVyLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtZW51LXdyYXBwZXJcIj5cbiAgPGZ3LW1lbnUtaXRlbSAqbmdJZj1cIm5vUmVzdWx0cygpXCIgW3RpdGxlXT1cImVtcHR5VGV4dCgpXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2Z3LW1lbnUtaXRlbT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJjdXN0b20tbWVudS1pdGVtc1wiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbWVudS9tZW51LWNvbnRhaW5lci9tZW51LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tZW51L21lbnUtY29udGFpbmVyL21lbnUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFdBQVcsRUFDWCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLHdCQUF3QjtJQXNDbkMsSUFBK0IsT0FBTztRQUNwQyxPQUFPO1lBQ0wsbUJBQW1CO1lBQ25CLGlCQUFpQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzlCLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUN4QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBMEIsS0FBSztRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7ZUFDcEMsSUFBSSxDQUFDLEtBQUs7b0JBQ0wsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsSUFBSSxDQUFDLE1BQU07S0FDMUIsQ0FBQyxDQUFDO0lBQ0ws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QWU7Z0JBV3BCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRXlCLE9BQU87c0JBQXJDLFdBQVc7dUJBQUMsWUFBWTtnQkFRQyxLQUFLO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBDb250ZW50Q2hpbGQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlU3R5bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgRndUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZ3TWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEZ3TWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LW1lbnUtY29udGFpbmVyLCBmdy1tZW51LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEZ3TWVudUNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIHdpZHRoPzogc3RyaW5nID0gJ2luaGVyaXQnO1xuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBzdHJpbmcgPSAnYXV0byc7XG4gIEBJbnB1dCgpIG1pbkhlaWdodD86IHN0cmluZyA9ICdhdXRvJztcbiAgQElucHV0KCkgYm9yZGVyPzogJ25vbmUnIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzaGFkb3c/OiAnbm9uZScgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ2V4dHJhLWxhcmdlJyB8ICdpbm5lcicgPSAnbGFyZ2UnO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWw6IEJvb2xlYW5JbnB1dCkgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCkgfSkgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWx0ZXJUZXh0Pzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbDogQm9vbGVhbklucHV0KSA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKSB9KSBmb2N1c0ZpbHRlck9uTW91bnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgb2Zmc2V0Pzogc3RyaW5nID0gJzBweCc7XG4gIGVtcHR5VGV4dCA9IGlucHV0KCdObyByZXN1bHRzJylcblxuICBmaWx0ZXJlZE1lbnVJdGVtczogRndNZW51SXRlbUNvbXBvbmVudFtdO1xuICBmaWx0ZXJlZE1lbnVJdGVtQ2hhbmdlID0gb3V0cHV0PEZ3TWVudUl0ZW1Db21wb25lbnRbXT4oKTtcblxuICBwcml2YXRlIGRlZmF1bHRGaWx0ZXJGbiA9IChmaWx0ZXI6IHN0cmluZywgbWVudUl0ZW1zOiBGd01lbnVJdGVtQ29tcG9uZW50W10pOiBGd01lbnVJdGVtQ29tcG9uZW50W10gPT4ge1xuICAgIHJldHVybiBtZW51SXRlbXM/LmZpbHRlcihtZW51SXRlbSA9PiBtZW51SXRlbS50aXRsZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXI/LnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuXG4gIGZpbHRlckZuID0gaW5wdXQodGhpcy5kZWZhdWx0RmlsdGVyRm4pO1xuXG4gIGZpbHRlckNoYW5nZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICBAVmlld0NoaWxkKCdtZW51RmlsdGVyJykgZmlsdGVyUmVmOiBGd1RleHRJbnB1dENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEZ3TWVudUNvbXBvbmVudCkgbWVudTogRndNZW51Q29tcG9uZW50O1xuXG4gIC8vIGZvciBwYXNzaW5nIG1lbnUgaXRlbXMgZm9yIHRoZSBjb250YWluZXIgdG8gZmlsdGVyXG4gIC8vIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBuZXN0ZWQgY29udGVudCBjaGlsZHJlblxuICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYyODg2NjEzL2FuZ3VsYXItOS1uZXN0ZWQtbmctY29udGVudC1hbmQtY29udGVudGNoaWxkcmVuXG4gIGFkZGl0aW9uYWxNZW51SXRlbXMgPSBpbnB1dDxGd01lbnVJdGVtQ29tcG9uZW50W10+KFtdKTtcbiAgY2hpbGRNZW51SXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oRndNZW51SXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBjb21iaW5lZE1lbnVJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gWy4uLnRoaXMuY2hpbGRNZW51SXRlbXMoKSwgLi4udGhpcy5hZGRpdGlvbmFsTWVudUl0ZW1zKCldO1xuICB9KTtcblxuICBASW5wdXQoKSBrZXlIYW5kbGVyOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmNsYXNzJykgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z3LW1lbnUtY29udGFpbmVyJyxcbiAgICAgIGB2aXNpb24tc2hhZG93LSR7dGhpcy5zaGFkb3d9YCxcbiAgICAgIGBib3JkZXItJHt0aGlzLmJvcmRlcn1gLFxuICAgIF0uam9pbignICcpO1xuICB9O1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgc3R5bGUoKTogU2FmZVN0eWxlIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICAgIHdpZHRoOiAke3RoaXMud2lkdGh9O1xuICAgICAgbWF4LWhlaWdodDogJHt0aGlzLm1heEhlaWdodH07XG4gICAgICBtaW4taGVpZ2h0OiAke3RoaXMubWluSGVpZ2h0fTtcbiAgICAgIG1hcmdpbi10b3A6ICR7dGhpcy5vZmZzZXR9O1xuICAgIGApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9jdXNGaWx0ZXJPbk1vdW50ICYmIHRoaXMuc2hvd0ZpbHRlcikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEByeC1hbmd1bGFyL3ByZWZlci1uby1sYXlvdXQtc2Vuc2l0aXZlLWFwaXNcbiAgICAgIHRoaXMuZmlsdGVyUmVmPy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8vIHdlIG5lZWQgdG8gcnVuIHRoZSBmaWx0ZXIgb24gaW5pdCBpbiBjYXNlIHRoZSBjdXN0b20gZmlsdGVyIGlzIGZpbHRlcmluZyB0aGluZ3NcbiAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlKCcnKTtcbiAgfVxuXG4gIG5vUmVzdWx0cyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgaGFuZGxlRmlsdGVyQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZHtcbiAgICAvLyBzdG9wcyBmaWx0ZXJzIGluIG1lbnVzIGZyb20gY2xvc2luZyB0aGUgcGFyZW50IG1lbnVcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGhhbmRsZUZpbHRlcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBpbnB1dC52YWx1ZTtcbiAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlKGZpbHRlclZhbHVlKTtcbiAgfVxuXG4gIG9uRmlsdGVyQ2hhbmdlKGZpbHRlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYWxsTWVudUl0ZW1zID0gdGhpcy5jb21iaW5lZE1lbnVJdGVtcygpO1xuXG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VkLmVtaXQoZmlsdGVyKTtcbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuZmlsdGVyRm4oKTtcblxuICAgIHRoaXMuZmlsdGVyZWRNZW51SXRlbXMgPSBmaWx0ZXJGbihmaWx0ZXIsIGFsbE1lbnVJdGVtcyk7XG5cbiAgICBhbGxNZW51SXRlbXMuZm9yRWFjaChtZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBzaG91bGRCZUhpZGRlbiA9ICF0aGlzLmZpbHRlcmVkTWVudUl0ZW1zLmluY2x1ZGVzKG1lbnVJdGVtKTtcbiAgICAgIG1lbnVJdGVtLmhpZGRlbiA9IHNob3VsZEJlSGlkZGVuO1xuICAgIH0pXG5cbiAgICB0aGlzLm5vUmVzdWx0cy5zZXQoYWxsTWVudUl0ZW1zLmxlbmd0aCA+IDAgJiYgYWxsTWVudUl0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5oaWRkZW4pKTtcblxuICAgIHRoaXMuZmlsdGVyZWRNZW51SXRlbUNoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRNZW51SXRlbXMpO1xuICB9XG59XG4iLCI8ZGl2ICNmaWx0ZXJCb3ggKm5nSWY9XCJzaG93RmlsdGVyXCIgY2xhc3M9XCJmaWx0ZXItYm94XCIgY2RrTWVudUJhcj5cbiAgPGZ3LXRleHQtaW5wdXRcbiAgICAoY2xpY2spPVwiaGFuZGxlRmlsdGVyQ2xpY2soJGV2ZW50KVwiXG4gICAgI21lbnVGaWx0ZXJcbiAgICAoa2V5ZG93bik9XCJrZXlIYW5kbGVyPy4oJGV2ZW50KVwiXG4gICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBsZWZ0SWNvbj1cInNlYXJjaFwiIFthdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlclRleHRcIiAoaW5wdXQpPVwiaGFuZGxlRmlsdGVySW5wdXQoJGV2ZW50KVwiPlxuICA8L2Z3LXRleHQtaW5wdXQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5maWx0ZXItY29udGVudFwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1lbnUtd3JhcHBlclwiPlxuICA8ZnctbWVudS1pdGVtICpuZ0lmPVwibm9SZXN1bHRzKClcIiBbdGl0bGVdPVwiZW1wdHlUZXh0KClcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvZnctbWVudS1pdGVtPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImN1c3RvbS1tZW51LWl0ZW1zXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=