@alauda/ui 7.4.2-beta.3 → 7.4.2-beta.30

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.
@@ -45,7 +45,7 @@ export declare class AutoCompleteDirective extends BaseTooltip<AutoCompleteConte
45
45
  protected selectFocusedOption(): void;
46
46
  private _filterFn;
47
47
  static ɵfac: i0.ɵɵFactoryDeclaration<AutoCompleteDirective, [null, null, null, null, null, null, { optional: true; host: true; }]>;
48
- static ɵdir: i0.ɵɵDirectiveDeclaration<AutoCompleteDirective, "input[auiAutocomplete],textarea[auiAutocomplete]", ["auiAutocomplete"], { "class": { "alias": "auiAutocompleteClass"; "required": false; }; "autocomplete": { "alias": "auiAutocomplete"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; "defaultFirstSuggestion": { "alias": "auiAutocompleteDefaultFirstSuggestion"; "required": false; }; "suggestionTrigger": { "alias": "auiAutocompleteTrigger"; "required": false; }; "autoPatch": { "alias": "auiAutocompleteAutoPatch"; "required": false; }; }, { "visibleChange": "auiAutocompleteVisibleChange"; "selected": "auiAutocompleteSelected"; }, never, never, true, never>;
48
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AutoCompleteDirective, "input[auiAutocomplete],textarea[auiAutocomplete]", ["auiAutocomplete"], { "class": { "alias": "auiAutocompleteClass"; "required": false; }; "autocomplete": { "alias": "auiAutocomplete"; "required": false; }; "filterFn": { "alias": "auiAutocompleteFilterFn"; "required": false; }; "defaultFirstSuggestion": { "alias": "auiAutocompleteDefaultFirstSuggestion"; "required": false; }; "suggestionTrigger": { "alias": "auiAutocompleteTrigger"; "required": false; }; "autoPatch": { "alias": "auiAutocompleteAutoPatch"; "required": false; }; }, { "visibleChange": "auiAutocompleteVisibleChange"; "selected": "auiAutocompleteSelected"; }, never, never, true, never>;
49
49
  }
50
50
  export declare class CustomAutoCompleteDirective extends AutoCompleteDirective {
51
51
  innerSelector: string;
@@ -1,22 +1,35 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import dayjs, { ConfigType, Dayjs } from 'dayjs';
3
3
  import { I18nService } from '../../../i18n';
4
- import { CalendarHeaderRange, DateNavRange, Side } from '../../date-picker.type';
4
+ import { DateNavRange, Side } from '../../date-picker.type';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class CalendarHeaderComponent {
7
7
  private readonly i18nService;
8
- dateNavRange: DateNavRange;
9
- anchor: dayjs.Dayjs;
8
+ get dateNavRange(): DateNavRange;
9
+ set dateNavRange(val: DateNavRange);
10
+ get anchor(): dayjs.Dayjs;
11
+ set anchor(val: dayjs.Dayjs);
10
12
  maxAvail?: ConfigType;
11
13
  private get _maxAvail();
12
14
  minAvail?: ConfigType;
13
15
  private get _minAvail();
14
16
  navRangeChange: EventEmitter<DateNavRange>;
15
17
  anchorChange: EventEmitter<dayjs.Dayjs>;
16
- get headerRange(): CalendarHeaderRange;
18
+ private readonly $$dateNavRange;
19
+ private readonly $$anchor;
17
20
  bem: import("../../../internal/utils").Bem;
18
21
  DateNavRange: typeof DateNavRange;
19
- monthBeforeYear$: import("rxjs").Observable<boolean>;
22
+ $monthBeforeYear: import("@angular/core").Signal<boolean>;
23
+ $headerRange: import("@angular/core").Signal<{
24
+ start: {
25
+ year: string;
26
+ month: string;
27
+ };
28
+ end: {
29
+ year: string;
30
+ month: string;
31
+ };
32
+ }>;
20
33
  constructor(i18nService: I18nService);
21
34
  shouldShowNav(type: DateNavRange, side: Side): boolean;
22
35
  compareNavValue(type: DateNavRange, constrain: Dayjs, anchor: Dayjs): 1 | 0 | -1;
@@ -1,10 +1,10 @@
1
- import { EventEmitter, OnInit, TemplateRef } from '@angular/core';
1
+ import { EventEmitter, TemplateRef } from '@angular/core';
2
2
  import dayjs, { ConfigType, Dayjs } from 'dayjs';
3
3
  import { CommonFormControl } from '../../form/common-form';
4
4
  import { DatePickerType } from '../calendar/constant';
5
5
  import { DateNavRange, DisabledTimeFn } from '../date-picker.type';
6
6
  import * as i0 from "@angular/core";
7
- export declare class DatePickerComponent extends CommonFormControl<ConfigType, Dayjs> implements OnInit {
7
+ export declare class DatePickerComponent extends CommonFormControl<ConfigType, Dayjs> {
8
8
  clearable: boolean;
9
9
  clearText: string;
10
10
  format: string;
@@ -23,10 +23,8 @@ export declare class DatePickerComponent extends CommonFormControl<ConfigType, D
23
23
  visibleChange: EventEmitter<boolean>;
24
24
  value: Dayjs;
25
25
  DatePickerType: typeof DatePickerType;
26
- ngOnInit(): void;
27
26
  valueIn(obj: ConfigType): dayjs.Dayjs;
28
27
  writeValue(obj: Dayjs): void;
29
- private getDefaultFormat;
30
28
  clearValue(): void;
31
29
  tooltipVisibleChange(visible: boolean): void;
32
30
  static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, never>;
@@ -4,10 +4,13 @@ import { InputComponent } from '../../input/input.component';
4
4
  import { ComponentSize } from '../../internal/types';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class DatePickerTriggerComponent {
7
- format: string;
7
+ get value(): Dayjs | Dayjs[];
8
+ set value(val: Dayjs | Dayjs[]);
9
+ get format(): string;
10
+ set format(val: string);
11
+ get isRange(): boolean;
12
+ set isRange(val: boolean);
8
13
  size: ComponentSize;
9
- isRange: boolean;
10
- value: Dayjs | Dayjs[];
11
14
  clearable: boolean;
12
15
  placeholder: string;
13
16
  startPlaceholder: string;
@@ -24,8 +27,13 @@ export declare class DatePickerTriggerComponent {
24
27
  get isFocus(): boolean;
25
28
  get hasValue(): boolean | Dayjs;
26
29
  get showClear(): boolean;
30
+ private readonly i18nService;
31
+ private readonly $$value;
32
+ private readonly $$format;
33
+ private readonly $$isRange;
34
+ $formatValue: import("@angular/core").Signal<string | string[]>;
27
35
  constructor();
28
36
  focusInput(): void;
29
37
  static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerTriggerComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerTriggerComponent, "aui-date-picker-trigger", never, { "format": { "alias": "format"; "required": false; }; "size": { "alias": "size"; "required": false; }; "isRange": { "alias": "isRange"; "required": false; }; "value": { "alias": "value"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "startPlaceholder": { "alias": "startPlaceholder"; "required": false; }; "endPlaceholder": { "alias": "endPlaceholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "blur": "blur"; "clear": "clear"; }, never, never, true, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerTriggerComponent, "aui-date-picker-trigger", never, { "value": { "alias": "value"; "required": false; }; "format": { "alias": "format"; "required": false; }; "isRange": { "alias": "isRange"; "required": false; }; "size": { "alias": "size"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "startPlaceholder": { "alias": "startPlaceholder"; "required": false; }; "endPlaceholder": { "alias": "endPlaceholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "blur": "blur"; "clear": "clear"; }, never, never, true, never>;
31
39
  }
@@ -217,7 +217,7 @@ export class AutoCompleteDirective extends BaseTooltip {
217
217
  return suggestion?.toLowerCase().includes(inputValue?.toLowerCase() ?? '');
218
218
  }
219
219
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: AutoCompleteDirective, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.NgControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
220
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: AutoCompleteDirective, isStandalone: true, selector: "input[auiAutocomplete],textarea[auiAutocomplete]", inputs: { class: ["auiAutocompleteClass", "class"], autocomplete: ["auiAutocomplete", "autocomplete"], filterFn: "filterFn", defaultFirstSuggestion: ["auiAutocompleteDefaultFirstSuggestion", "defaultFirstSuggestion"], suggestionTrigger: ["auiAutocompleteTrigger", "suggestionTrigger"], autoPatch: ["auiAutocompleteAutoPatch", "autoPatch"] }, outputs: { visibleChange: "auiAutocompleteVisibleChange", selected: "auiAutocompleteSelected" }, host: { attributes: { "autocomplete": "off" } }, exportAs: ["auiAutocomplete"], usesInheritance: true, ngImport: i0 }); }
220
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: AutoCompleteDirective, isStandalone: true, selector: "input[auiAutocomplete],textarea[auiAutocomplete]", inputs: { class: ["auiAutocompleteClass", "class"], autocomplete: ["auiAutocomplete", "autocomplete"], filterFn: ["auiAutocompleteFilterFn", "filterFn"], defaultFirstSuggestion: ["auiAutocompleteDefaultFirstSuggestion", "defaultFirstSuggestion"], suggestionTrigger: ["auiAutocompleteTrigger", "suggestionTrigger"], autoPatch: ["auiAutocompleteAutoPatch", "autoPatch"] }, outputs: { visibleChange: "auiAutocompleteVisibleChange", selected: "auiAutocompleteSelected" }, host: { attributes: { "autocomplete": "off" } }, exportAs: ["auiAutocomplete"], usesInheritance: true, ngImport: i0 }); }
221
221
  }
222
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: AutoCompleteDirective, decorators: [{
223
223
  type: Directive,
@@ -240,8 +240,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
240
240
  }], filterFn: [{
241
241
  type: Input,
242
242
  args: ['auiAutocompleteFilterFn']
243
- }, {
244
- type: Input
245
243
  }], defaultFirstSuggestion: [{
246
244
  type: Input,
247
245
  args: ['auiAutocompleteDefaultFirstSuggestion']
@@ -281,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
281
279
  type: Input,
282
280
  args: ['auiAutocompleteInnerSelector']
283
281
  }] } });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixJQUFJLEVBQ0osS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLGVBQWUsRUFFZixPQUFPLEVBQ1AsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxvQkFBb0IsR0FDckIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBZ0J0RSxNQUFNLE9BQU8scUJBQ1gsU0FBUSxXQUFnQztJQUd4QyxJQUNJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQUc7UUFDbEIsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM5QixPQUFPO1NBQ1I7UUFDRCxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELElBRUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNkLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7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QUFhLEdBQUcsZ0JBQWdCLENBQUM7S0FDM0M7OEdBSFksMkJBQTJCO2tHQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBVHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRDQUE0QztvQkFDdEQsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsTUFBTSxFQUFFLENBQUMsNEJBQTRCLENBQUM7b0JBQ3RDLElBQUksRUFBRTt3QkFDSixZQUFZLEVBQUUsS0FBSztxQkFDcEI7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUdVLGFBQWE7c0JBRHJCLEtBQUs7dUJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGZyb21FdmVudCxcbiAgbWVyZ2UsXG4gIHRha2VVbnRpbCxcbiAgZGVib3VuY2VUaW1lLFxuICBzdGFydFdpdGgsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgc2Nyb2xsSW50b1ZpZXcgfSBmcm9tICcuLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBCYXNlVG9vbHRpcCwgVG9vbHRpcFRyaWdnZXIsIFRvb2x0aXBUeXBlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQgeyBBbmltYXRpb25UeXBlIH0gZnJvbSAnLi4vdG9vbHRpcC9hbmltYXRpb25zJztcblxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZUNvbnRleHQsIFN1Z2dlc3Rpb25GaWx0ZXJGbiB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLnR5cGVzJztcbmltcG9ydCB7IFN1Z2dlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3N1Z2dlc3Rpb24vc3VnZ2VzdGlvbi5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFthdWlBdXRvY29tcGxldGVdLHRleHRhcmVhW2F1aUF1dG9jb21wbGV0ZV0nLFxuICBleHBvcnRBczogJ2F1aUF1dG9jb21wbGV0ZScsXG4gIGlucHV0czogWydjbGFzczphdWlBdXRvY29tcGxldGVDbGFzcyddLFxuICBob3N0OiB7XG4gICAgYXV0b2NvbXBsZXRlOiAnb2ZmJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlRGlyZWN0aXZlXG4gIGV4dGVuZHMgQmFzZVRvb2x0aXA8QXV0b0NvbXBsZXRlQ29udGV4dD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICBASW5wdXQoJ2F1aUF1dG9jb21wbGV0ZScpXG4gIGdldCBhdXRvY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9jb21wbGV0ZTtcbiAgfVxuXG4gIHNldCBhdXRvY29tcGxldGUodmFsKSB7XG4gICAgaWYgKHZhbCA9PT0gdGhpcy5fYXV0b2NvbXBsZXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhbC5kaXJlY3RpdmUkJC5uZXh0KHRoaXMpO1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZSA9IHZhbDtcbiAgICB0aGlzLmNvbnRlbnQgPSB2YWwudGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoJ2F1aUF1dG9jb21wbGV0ZUZpbHRlckZuJylcbiAgQElucHV0KClcbiAgZ2V0IGZpbHRlckZuKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJGbjtcbiAgfVxuXG4gIHNldCBmaWx0ZXJGbih2YWwpIHtcbiAgICBpZiAodmFsICE9PSB0aGlzLl9maWx0ZXJGbikge1xuICAgICAgdGhpcy5fZmlsdGVyRm4gPSB2YWw7XG4gICAgICB0aGlzLmZpbHRlckZuJCQubmV4dCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlRGVmYXVsdEZpcnN0U3VnZ2VzdGlvbicpXG4gIGRlZmF1bHRGaXJzdFN1Z2dlc3Rpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlVHJpZ2dlcicpXG4gIHN1Z2dlc3Rpb25UcmlnZ2VyOiAnYXV0bycgfCAnaW5wdXQnID0gJ2F1dG8nO1xuXG4gIGRlY2xhcmUgaW5uZXJTZWxlY3Rvcjogc3RyaW5nO1xuXG4gIEBPdXRwdXQoJ2F1aUF1dG9jb21wbGV0ZVZpc2libGVDaGFuZ2UnKVxuICBvdmVycmlkZSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoJ2F1aUF1dG9jb21wbGV0ZVNlbGVjdGVkJylcbiAgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvLyBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgdXBkYXRlIGlucHV0IHZhbHVlIGFmdGVyIHNlbGVjdGlvblxuICBASW5wdXQoJ2F1aUF1dG9jb21wbGV0ZUF1dG9QYXRjaCcpXG4gIGF1dG9QYXRjaCA9IHRydWU7XG5cbiAgb3ZlcnJpZGUgYW5pbWF0aW9uVHlwZTogQW5pbWF0aW9uVHlwZSA9ICdzY2FsZVknO1xuXG4gIHByaXZhdGUgX2F1dG9jb21wbGV0ZTogQXV0b2NvbXBsZXRlQ29tcG9uZW50O1xuICBwcml2YXRlIGZvY3VzZWRTdWdnZXN0aW9uOiBTdWdnZXN0aW9uQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRWYWx1ZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmlucHV0LnZhbHVlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlckZuJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN1Z2dlc3Rpb25GaWx0ZXJGbj4oXG4gICAgdGhpcy5maWx0ZXJGbixcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgaW5wdXRWYWx1ZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuaW5wdXRWYWx1ZSQkXG4gICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgZmlsdGVyRm4kOiBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25GaWx0ZXJGbj4gPSB0aGlzLmZpbHRlckZuJCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgZ2V0IGlucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHJldHVybiB0aGlzLmlubmVyU2VsZWN0b3IgPyBlbC5xdWVyeVNlbGVjdG9yKHRoaXMuaW5uZXJTZWxlY3RvcikgOiBlbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBlbFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASG9zdCgpXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgc3VwZXIob3ZlcmxheSwgdmlld0NvbnRhaW5lclJlZiwgZWxSZWYsIHJlbmRlcmVyLCBjZHIsIG5nWm9uZSk7XG4gICAgdGhpcy50eXBlID0gVG9vbHRpcFR5cGUuUGxhaW47XG4gICAgdGhpcy50cmlnZ2VyID0gVG9vbHRpcFRyaWdnZXIuTWFudWFsO1xuICAgIHRoaXMucG9zaXRpb24gPSAnYm90dG9tIHN0YXJ0JztcbiAgICB0aGlzLmhpZGVPbkNsaWNrID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHZpc2libGUgPT4ge1xuICAgICAgdGhpc1t2aXNpYmxlID8gJ3VwZGF0ZVN1Z2dlc3Rpb25zQ29udGV4dCcgOiAncmVzZXRGb2N1c2VkU3VnZ2VzdGlvbiddKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcbiAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUkJC5uZXh0KHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLm5nQ29udHJvbC5zdGF0dXMpLCB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgICAuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHN0YXR1cyA9PT0gJ0RJU0FCTEVEJztcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dDtcblxuICAgIG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJyksXG4gICAgICBmcm9tRXZlbnQoaW5wdXQsICdmb2N1cycpLFxuICAgIClcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgwKSwgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkZvY3VzKCkpO1xuXG4gICAgZnJvbUV2ZW50KGlucHV0LCAnYmx1cicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQmx1cigpKTtcblxuICAgIGZyb21FdmVudChpbnB1dCwgJ2lucHV0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ID0+IHRoaXMub25JbnB1dChldikpO1xuXG4gICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGlucHV0LCAna2V5ZG93bicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZShldiA9PiB0aGlzLm9uS2V5RG93bihldikpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvdmVycmlkZSBvbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25UcmlnZ2VyID09PSAnYXV0bycgJiYgIXRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICBzdXBlci5vbkZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5pbnB1dFZhbHVlJCQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5zaG93KCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICB0aGlzLmZvY3VzU3VnZ2VzdGlvbkRpcignZG93bicpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLmZvY3VzU3VnZ2VzdGlvbkRpcigndXAnKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW50ZXInOiB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRTdWdnZXN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0VzY2FwZSc6IHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVTdWdnZXN0aW9uc0NvbnRleHQoKSB7XG4gICAgdGhpcy5jb250ZXh0ID0ge1xuICAgICAgLi4udGhpcy5jb250ZXh0LFxuICAgICAgd2lkdGg6IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCcsXG4gICAgfTtcbiAgfVxuXG4gIG9uU3VnZ2VzdGlvbkNsaWNrKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBsZXQgaXNBcnJDdHJsID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5hdXRvUGF0Y2gpIHtcbiAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICBjb25zdCB7IGNvbnRyb2wgfSA9IHRoaXMubmdDb250cm9sO1xuICAgICAgICBpc0FyckN0cmwgPSBBcnJheS5pc0FycmF5KGNvbnRyb2wudmFsdWUpO1xuICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUoaXNBcnJDdHJsID8gWy4uLmNvbnRyb2wudmFsdWUsIHZhbHVlXSA6IHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmlucHV0VmFsdWUkJC5uZXh0KGlzQXJyQ3RybCA/ICcnIDogdmFsdWUpO1xuXG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHNob3coKSB7XG4gICAgc3VwZXIuc2hvdygpO1xuICAgIHRoaXMuYXV0b0ZvY3VzRmlyc3RTdWdnZXN0aW9uKCk7XG4gIH1cblxuICBhdXRvRm9jdXNGaXJzdFN1Z2dlc3Rpb24oKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRTdWdnZXN0aW9uID0gdGhpcy5hdXRvY29tcGxldGUuc3VnZ2VzdGlvbnMuZmluZChcbiAgICAgIHN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbi5zZWxlY3RlZCxcbiAgICApO1xuICAgIGlmIChzZWxlY3RlZFN1Z2dlc3Rpb24pIHtcbiAgICAgIHRoaXMucmVzZXRGb2N1c2VkU3VnZ2VzdGlvbihzZWxlY3RlZFN1Z2dlc3Rpb24pO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb1N1Z2dlc3Rpb24oc2VsZWN0ZWRTdWdnZXN0aW9uKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kZWZhdWx0Rmlyc3RTdWdnZXN0aW9uKSB7XG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZVN1Z2dlc3Rpb24gPSB0aGlzLmF1dG9jb21wbGV0ZS5zdWdnZXN0aW9ucy5maW5kKFxuICAgICAgICBzdWdnZXN0aW9uID0+IHN1Z2dlc3Rpb24udmlzaWJsZSAmJiAhc3VnZ2VzdGlvbi5kaXNhYmxlZCxcbiAgICAgICk7XG4gICAgICB0aGlzLnJlc2V0Rm9jdXNlZFN1Z2dlc3Rpb24oZmlyc3RGb2N1c2FibGVTdWdnZXN0aW9uKTtcbiAgICAgIGlmIChmaXJzdEZvY3VzYWJsZVN1Z2dlc3Rpb24pIHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvU3VnZ2VzdGlvbihmaXJzdEZvY3VzYWJsZVN1Z2dlc3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzU3VnZ2VzdGlvbkRpcihkaXI6ICdkb3duJyB8ICd1cCcpIHtcbiAgICBpZiAoIXRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmlzaWJsZVN1Z2dlc3Rpb25zID0gdGhpcy5hdXRvY29tcGxldGUuc3VnZ2VzdGlvbnMuZmlsdGVyKFxuICAgICAgc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLnZpc2libGUgJiYgIXN1Z2dlc3Rpb24uZGlzYWJsZWQsXG4gICAgKTtcbiAgICBpZiAodmlzaWJsZVN1Z2dlc3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdGVwID0gZGlyID09PSAnZG93bicgPyAxIDogLTE7XG4gICAgbGV0IGkgPSB2aXNpYmxlU3VnZ2VzdGlvbnMuaW5kZXhPZih0aGlzLmZvY3VzZWRTdWdnZXN0aW9uKTtcbiAgICBpID0gaSArIHN0ZXA7XG4gICAgaWYgKGkgPj0gdmlzaWJsZVN1Z2dlc3Rpb25zLmxlbmd0aCkge1xuICAgICAgaSA9IDA7XG4gICAgfSBlbHNlIGlmIChpIDwgMCkge1xuICAgICAgaSA9IHZpc2libGVTdWdnZXN0aW9ucy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0Rm9jdXNlZFN1Z2dlc3Rpb24odmlzaWJsZVN1Z2dlc3Rpb25zW2ldKTtcbiAgICB0aGlzLnNjcm9sbFRvU3VnZ2VzdGlvbih0aGlzLmZvY3VzZWRTdWdnZXN0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGb2N1c2VkU3VnZ2VzdGlvbihcbiAgICBmb2N1c2VkU3VnZ2VzdGlvbjogU3VnZ2VzdGlvbkNvbXBvbmVudCA9IG51bGwsXG4gICkge1xuICAgIGlmICh0aGlzLmZvY3VzZWRTdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLmZvY3VzZWRTdWdnZXN0aW9uLmJsdXIoKTtcbiAgICB9XG4gICAgdGhpcy5mb2N1c2VkU3VnZ2VzdGlvbiA9IGZvY3VzZWRTdWdnZXN0aW9uO1xuICAgIGlmICh0aGlzLmZvY3VzZWRTdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLmZvY3VzZWRTdWdnZXN0aW9uLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxUb1N1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbkNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZS5zdWdnZXN0aW9uTGlzdFJlZikge1xuICAgICAgc2Nyb2xsSW50b1ZpZXcoXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLnN1Z2dlc3Rpb25MaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHN1Z2dlc3Rpb24uZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEZvY3VzZWRPcHRpb24oKSB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pIHtcbiAgICAgIHRoaXMub25TdWdnZXN0aW9uQ2xpY2sodGhpcy5mb2N1c2VkU3VnZ2VzdGlvbi52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRm4oaW5wdXRWYWx1ZTogc3RyaW5nLCBzdWdnZXN0aW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3VnZ2VzdGlvbj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhpbnB1dFZhbHVlPy50b0xvd2VyQ2FzZSgpID8/ICcnKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXVpQXV0b2NvbXBsZXRlXTpub3QoaW5wdXQpOm5vdCh0ZXh0YXJlYSknLFxuICBleHBvcnRBczogJ2F1aUF1dG9jb21wbGV0ZScsXG4gIGlucHV0czogWydjbGFzczphdWlBdXRvY29tcGxldGVDbGFzcyddLFxuICBob3N0OiB7XG4gICAgYXV0b2NvbXBsZXRlOiAnb2ZmJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tQXV0b0NvbXBsZXRlRGlyZWN0aXZlIGV4dGVuZHMgQXV0b0NvbXBsZXRlRGlyZWN0aXZlIHtcbiAgQElucHV0KCdhdWlBdXRvY29tcGxldGVJbm5lclNlbGVjdG9yJylcbiAgb3ZlcnJpZGUgaW5uZXJTZWxlY3RvciA9ICdpbnB1dCx0ZXh0YXJlYSc7XG59XG4iXX0=
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixJQUFJLEVBQ0osS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLGVBQWUsRUFFZixPQUFPLEVBQ1AsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxvQkFBb0IsR0FDckIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBZ0J0RSxNQUFNLE9BQU8scUJBQ1gsU0FBUSxXQUFnQztJQUd4QyxJQUNJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQUc7UUFDbEIsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM5QixPQUFPO1NBQ1I7UUFDRCxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNkLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7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Z0IsQ0FBQztLQUMzQzs4R0FIWSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFUdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixNQUFNLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDdEMsSUFBSSxFQUFFO3dCQUNKLFlBQVksRUFBRSxLQUFLO3FCQUNwQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBR1UsYUFBYTtzQkFEckIsS0FBSzt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgZnJvbUV2ZW50LFxuICBtZXJnZSxcbiAgdGFrZVVudGlsLFxuICBkZWJvdW5jZVRpbWUsXG4gIHN0YXJ0V2l0aCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBzY3JvbGxJbnRvVmlldyB9IGZyb20gJy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IEJhc2VUb29sdGlwLCBUb29sdGlwVHJpZ2dlciwgVG9vbHRpcFR5cGUgfSBmcm9tICcuLi90b29sdGlwJztcbmltcG9ydCB7IEFuaW1hdGlvblR5cGUgfSBmcm9tICcuLi90b29sdGlwL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlQ29udGV4dCwgU3VnZ2VzdGlvbkZpbHRlckZuIH0gZnJvbSAnLi9hdXRvY29tcGxldGUudHlwZXMnO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc3VnZ2VzdGlvbi9zdWdnZXN0aW9uLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2F1aUF1dG9jb21wbGV0ZV0sdGV4dGFyZWFbYXVpQXV0b2NvbXBsZXRlXScsXG4gIGV4cG9ydEFzOiAnYXVpQXV0b2NvbXBsZXRlJyxcbiAgaW5wdXRzOiBbJ2NsYXNzOmF1aUF1dG9jb21wbGV0ZUNsYXNzJ10sXG4gIGhvc3Q6IHtcbiAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVEaXJlY3RpdmVcbiAgZXh0ZW5kcyBCYXNlVG9vbHRpcDxBdXRvQ29tcGxldGVDb250ZXh0PlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlJylcbiAgZ2V0IGF1dG9jb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlO1xuICB9XG5cbiAgc2V0IGF1dG9jb21wbGV0ZSh2YWwpIHtcbiAgICBpZiAodmFsID09PSB0aGlzLl9hdXRvY29tcGxldGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFsLmRpcmVjdGl2ZSQkLm5leHQodGhpcyk7XG4gICAgdGhpcy5fYXV0b2NvbXBsZXRlID0gdmFsO1xuICAgIHRoaXMuY29udGVudCA9IHZhbC50ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlRmlsdGVyRm4nKVxuICBnZXQgZmlsdGVyRm4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckZuO1xuICB9XG5cbiAgc2V0IGZpbHRlckZuKHZhbCkge1xuICAgIGlmICh2YWwgIT09IHRoaXMuX2ZpbHRlckZuKSB7XG4gICAgICB0aGlzLl9maWx0ZXJGbiA9IHZhbDtcbiAgICAgIHRoaXMuZmlsdGVyRm4kJC5uZXh0KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdhdWlBdXRvY29tcGxldGVEZWZhdWx0Rmlyc3RTdWdnZXN0aW9uJylcbiAgZGVmYXVsdEZpcnN0U3VnZ2VzdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KCdhdWlBdXRvY29tcGxldGVUcmlnZ2VyJylcbiAgc3VnZ2VzdGlvblRyaWdnZXI6ICdhdXRvJyB8ICdpbnB1dCcgPSAnYXV0byc7XG5cbiAgZGVjbGFyZSBpbm5lclNlbGVjdG9yOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgnYXVpQXV0b2NvbXBsZXRlVmlzaWJsZUNoYW5nZScpXG4gIG92ZXJyaWRlIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQE91dHB1dCgnYXVpQXV0b2NvbXBsZXRlU2VsZWN0ZWQnKVxuICBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSB1cGRhdGUgaW5wdXQgdmFsdWUgYWZ0ZXIgc2VsZWN0aW9uXG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlQXV0b1BhdGNoJylcbiAgYXV0b1BhdGNoID0gdHJ1ZTtcblxuICBvdmVycmlkZSBhbmltYXRpb25UeXBlOiBBbmltYXRpb25UeXBlID0gJ3NjYWxlWSc7XG5cbiAgcHJpdmF0ZSBfYXV0b2NvbXBsZXRlOiBBdXRvY29tcGxldGVDb21wb25lbnQ7XG4gIHByaXZhdGUgZm9jdXNlZFN1Z2dlc3Rpb246IFN1Z2dlc3Rpb25Db21wb25lbnQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFZhbHVlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuaW5wdXQudmFsdWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyRm4kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3VnZ2VzdGlvbkZpbHRlckZuPihcbiAgICB0aGlzLmZpbHRlckZuLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBpbnB1dFZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dFZhbHVlJCRcbiAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICBmaWx0ZXJGbiQ6IE9ic2VydmFibGU8U3VnZ2VzdGlvbkZpbHRlckZuPiA9IHRoaXMuZmlsdGVyRm4kJC5hc09ic2VydmFibGUoKTtcblxuICBnZXQgaW5wdXQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJTZWxlY3RvciA/IGVsLnF1ZXJ5U2VsZWN0b3IodGhpcy5pbm5lclNlbGVjdG9yKSA6IGVsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBIb3N0KClcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbDogTmdDb250cm9sLFxuICApIHtcbiAgICBzdXBlcihvdmVybGF5LCB2aWV3Q29udGFpbmVyUmVmLCBlbFJlZiwgcmVuZGVyZXIsIGNkciwgbmdab25lKTtcbiAgICB0aGlzLnR5cGUgPSBUb29sdGlwVHlwZS5QbGFpbjtcbiAgICB0aGlzLnRyaWdnZXIgPSBUb29sdGlwVHJpZ2dlci5NYW51YWw7XG4gICAgdGhpcy5wb3NpdGlvbiA9ICdib3R0b20gc3RhcnQnO1xuICAgIHRoaXMuaGlkZU9uQ2xpY2sgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUodmlzaWJsZSA9PiB7XG4gICAgICB0aGlzW3Zpc2libGUgPyAndXBkYXRlU3VnZ2VzdGlvbnNDb250ZXh0JyA6ICdyZXNldEZvY3VzZWRTdWdnZXN0aW9uJ10oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSQkLm5leHQodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMubmdDb250cm9sLnN0YXR1cyksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcbiAgICAgICAgICB0aGlzLmRpc2FibGVkID0gc3RhdHVzID09PSAnRElTQUJMRUQnO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0O1xuXG4gICAgbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKSxcbiAgICAgIGZyb21FdmVudChpbnB1dCwgJ2ZvY3VzJyksXG4gICAgKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDApLCB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uRm9jdXMoKSk7XG5cbiAgICBmcm9tRXZlbnQoaW5wdXQsICdibHVyJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25CbHVyKCkpO1xuXG4gICAgZnJvbUV2ZW50KGlucHV0LCAnaW5wdXQnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXYgPT4gdGhpcy5vbklucHV0KGV2KSk7XG5cbiAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oaW5wdXQsICdrZXlkb3duJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ID0+IHRoaXMub25LZXlEb3duKGV2KSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvblRyaWdnZXIgPT09ICdhdXRvJyAmJiAhdGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHN1cGVyLm9uRm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmlucHV0VmFsdWUkJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XG4gICAgICAgIHRoaXMuZm9jdXNTdWdnZXN0aW9uRGlyKCdkb3duJyk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93VXAnOiB7XG4gICAgICAgIHRoaXMuZm9jdXNTdWdnZXN0aW9uRGlyKCd1cCcpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdEZvY3VzZWRPcHRpb24oKTtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRXNjYXBlJzoge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVN1Z2dlc3Rpb25zQ29udGV4dCgpIHtcbiAgICB0aGlzLmNvbnRleHQgPSB7XG4gICAgICAuLi50aGlzLmNvbnRleHQsXG4gICAgICB3aWR0aDogdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JyxcbiAgICB9O1xuICB9XG5cbiAgb25TdWdnZXN0aW9uQ2xpY2sodmFsdWU6IHN0cmluZykge1xuICAgIGxldCBpc0FyckN0cmwgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmF1dG9QYXRjaCkge1xuICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgIGNvbnN0IHsgY29udHJvbCB9ID0gdGhpcy5uZ0NvbnRyb2w7XG4gICAgICAgIGlzQXJyQ3RybCA9IEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSk7XG4gICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZShpc0FyckN0cmwgPyBbLi4uY29udHJvbC52YWx1ZSwgdmFsdWVdIDogdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaW5wdXRWYWx1ZSQkLm5leHQoaXNBcnJDdHJsID8gJycgOiB2YWx1ZSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQodmFsdWUpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2hvdygpIHtcbiAgICBzdXBlci5zaG93KCk7XG4gICAgdGhpcy5hdXRvRm9jdXNGaXJzdFN1Z2dlc3Rpb24oKTtcbiAgfVxuXG4gIGF1dG9Gb2N1c0ZpcnN0U3VnZ2VzdGlvbigpIHtcbiAgICBjb25zdCBzZWxlY3RlZFN1Z2dlc3Rpb24gPSB0aGlzLmF1dG9jb21wbGV0ZS5zdWdnZXN0aW9ucy5maW5kKFxuICAgICAgc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLnNlbGVjdGVkLFxuICAgICk7XG4gICAgaWYgKHNlbGVjdGVkU3VnZ2VzdGlvbikge1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRTdWdnZXN0aW9uKHNlbGVjdGVkU3VnZ2VzdGlvbik7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbFRvU3VnZ2VzdGlvbihzZWxlY3RlZFN1Z2dlc3Rpb24pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRlZmF1bHRGaXJzdFN1Z2dlc3Rpb24pIHtcbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlU3VnZ2VzdGlvbiA9IHRoaXMuYXV0b2NvbXBsZXRlLnN1Z2dlc3Rpb25zLmZpbmQoXG4gICAgICAgIHN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbi52aXNpYmxlICYmICFzdWdnZXN0aW9uLmRpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIHRoaXMucmVzZXRGb2N1c2VkU3VnZ2VzdGlvbihmaXJzdEZvY3VzYWJsZVN1Z2dlc3Rpb24pO1xuICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlU3VnZ2VzdGlvbikge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdWdnZXN0aW9uKGZpcnN0Rm9jdXNhYmxlU3VnZ2VzdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNTdWdnZXN0aW9uRGlyKGRpcjogJ2Rvd24nIHwgJ3VwJykge1xuICAgIGlmICghdGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2aXNpYmxlU3VnZ2VzdGlvbnMgPSB0aGlzLmF1dG9jb21wbGV0ZS5zdWdnZXN0aW9ucy5maWx0ZXIoXG4gICAgICBzdWdnZXN0aW9uID0+IHN1Z2dlc3Rpb24udmlzaWJsZSAmJiAhc3VnZ2VzdGlvbi5kaXNhYmxlZCxcbiAgICApO1xuICAgIGlmICh2aXNpYmxlU3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSBkaXIgPT09ICdkb3duJyA/IDEgOiAtMTtcbiAgICBsZXQgaSA9IHZpc2libGVTdWdnZXN0aW9ucy5pbmRleE9mKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pO1xuICAgIGkgPSBpICsgc3RlcDtcbiAgICBpZiAoaSA+PSB2aXNpYmxlU3VnZ2VzdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpID0gMDtcbiAgICB9IGVsc2UgaWYgKGkgPCAwKSB7XG4gICAgICBpID0gdmlzaWJsZVN1Z2dlc3Rpb25zLmxlbmd0aCAtIDE7XG4gICAgfVxuICAgIHRoaXMucmVzZXRGb2N1c2VkU3VnZ2VzdGlvbih2aXNpYmxlU3VnZ2VzdGlvbnNbaV0pO1xuICAgIHRoaXMuc2Nyb2xsVG9TdWdnZXN0aW9uKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZvY3VzZWRTdWdnZXN0aW9uKFxuICAgIGZvY3VzZWRTdWdnZXN0aW9uOiBTdWdnZXN0aW9uQ29tcG9uZW50ID0gbnVsbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24uYmx1cigpO1xuICAgIH1cbiAgICB0aGlzLmZvY3VzZWRTdWdnZXN0aW9uID0gZm9jdXNlZFN1Z2dlc3Rpb247XG4gICAgaWYgKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvU3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBTdWdnZXN0aW9uQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlLnN1Z2dlc3Rpb25MaXN0UmVmKSB7XG4gICAgICBzY3JvbGxJbnRvVmlldyhcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGUuc3VnZ2VzdGlvbkxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgc3VnZ2VzdGlvbi5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0Rm9jdXNlZE9wdGlvbigpIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkU3VnZ2VzdGlvbikge1xuICAgICAgdGhpcy5vblN1Z2dlc3Rpb25DbGljayh0aGlzLmZvY3VzZWRTdWdnZXN0aW9uLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJGbihpbnB1dFZhbHVlOiBzdHJpbmcsIHN1Z2dlc3Rpb246IHN0cmluZykge1xuICAgIHJldHVybiBzdWdnZXN0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGlucHV0VmFsdWU/LnRvTG93ZXJDYXNlKCkgPz8gJycpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdWlBdXRvY29tcGxldGVdOm5vdChpbnB1dCk6bm90KHRleHRhcmVhKScsXG4gIGV4cG9ydEFzOiAnYXVpQXV0b2NvbXBsZXRlJyxcbiAgaW5wdXRzOiBbJ2NsYXNzOmF1aUF1dG9jb21wbGV0ZUNsYXNzJ10sXG4gIGhvc3Q6IHtcbiAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21BdXRvQ29tcGxldGVEaXJlY3RpdmUgZXh0ZW5kcyBBdXRvQ29tcGxldGVEaXJlY3RpdmUge1xuICBASW5wdXQoJ2F1aUF1dG9jb21wbGV0ZUlubmVyU2VsZWN0b3InKVxuICBvdmVycmlkZSBpbm5lclNlbGVjdG9yID0gJ2lucHV0LHRleHRhcmVhJztcbn1cbiJdfQ==
@@ -54,11 +54,11 @@ export class SuggestionComponent {
54
54
  this.cdr.markForCheck();
55
55
  }
56
56
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SuggestionComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: forwardRef(() => AutocompleteComponent) }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.3", type: SuggestionComponent, isStandalone: true, selector: "aui-suggestion", inputs: { value: "value", disabled: ["disabled", "disabled", coerceAttrBoolean] }, viewQueries: [{ propertyName: "elRef", first: true, predicate: ["elRef"], descendants: true, static: true }], ngImport: i0, template: "<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block('medium')\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".aui-suggestion{color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.aui-suggestion--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-suggestion--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-suggestion:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-suggestion:hover,.aui-suggestion.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-suggestion.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-suggestion__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-suggestion.isSelected .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isSelected.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-suggestion.isDisabled .aui-suggestion__label{cursor:not-allowed}.aui-suggestion.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-suggestion:not(.isDisabled):hover .aui-suggestion__pointer,.aui-suggestion:not(.isDisabled).isFocused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}.aui-suggestion__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.3", type: SuggestionComponent, isStandalone: true, selector: "aui-suggestion", inputs: { value: "value", disabled: ["disabled", "disabled", coerceAttrBoolean] }, viewQueries: [{ propertyName: "elRef", first: true, predicate: ["elRef"], descendants: true, static: true }], ngImport: i0, template: "<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block('medium')\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <div [class]=\"bem.element('content')\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".aui-suggestion{display:flex;align-items:center;color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);cursor:pointer}.aui-suggestion__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-suggestion--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-suggestion--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-suggestion:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-suggestion:hover,.aui-suggestion.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-suggestion.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-suggestion__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-suggestion.isSelected .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isSelected.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-suggestion.isDisabled .aui-suggestion__label{cursor:not-allowed}.aui-suggestion.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-suggestion:not(.isDisabled):hover .aui-suggestion__pointer,.aui-suggestion:not(.isDisabled).isFocused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}.aui-suggestion__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
58
58
  }
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SuggestionComponent, decorators: [{
60
60
  type: Component,
61
- args: [{ selector: 'aui-suggestion', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe], template: "<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block('medium')\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".aui-suggestion{color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.aui-suggestion--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-suggestion--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-suggestion:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-suggestion:hover,.aui-suggestion.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-suggestion.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-suggestion__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-suggestion.isSelected .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isSelected.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-suggestion.isDisabled .aui-suggestion__label{cursor:not-allowed}.aui-suggestion.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-suggestion:not(.isDisabled):hover .aui-suggestion__pointer,.aui-suggestion:not(.isDisabled).isFocused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}.aui-suggestion__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}\n"] }]
61
+ args: [{ selector: 'aui-suggestion', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe], template: "<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block('medium')\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <div [class]=\"bem.element('content')\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".aui-suggestion{display:flex;align-items:center;color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);cursor:pointer}.aui-suggestion__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-suggestion--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-suggestion--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-suggestion--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-suggestion:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-suggestion:hover,.aui-suggestion.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-suggestion.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-suggestion__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-suggestion.cdk-keyboard-focused .aui-suggestion__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-suggestion.isSelected .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-suggestion.isIndeterminate .aui-suggestion__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-suggestion.isSelected.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-suggestion.isDisabled .aui-suggestion__label{cursor:not-allowed}.aui-suggestion.isDisabled .aui-suggestion__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-suggestion:not(.isDisabled):hover .aui-suggestion__pointer,.aui-suggestion:not(.isDisabled).isFocused .aui-suggestion__pointer{border-color:rgb(var(--aui-color-primary))}.aui-suggestion__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}\n"] }]
62
62
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AutocompleteComponent, decorators: [{
63
63
  type: Inject,
64
64
  args: [forwardRef(() => AutocompleteComponent)]
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
71
71
  type: ViewChild,
72
72
  args: ['elRef', { static: true }]
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0b2NvbXBsZXRlL3N1Z2dlc3Rpb24vc3VnZ2VzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvYXV0b2NvbXBsZXRlL3N1Z2dlc3Rpb24vc3VnZ2VzdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUVmLGFBQWEsRUFDYixHQUFHLEVBQ0gsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBRUwsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBWWxFLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFHO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQWVELFlBQ21CLEdBQXNCLEVBRXRCLFlBQW1DO1FBRm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRXRCLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQS9CdEQsUUFBRyxHQUFRLFFBQVEsQ0FBQyxnQkFB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QkFBcUIsQ0FBQzs0Q0F4QjdDLEtBQUs7c0JBRFIsS0FBSztnQkFXTixRQUFRO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBSXZDLEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEJlbSxcbiAgYnVpbGRCZW0sXG4gIGNvZXJjZUF0dHJCb29sZWFuLFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9hdXRvY29tcGxldGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXN1Z2dlc3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VnZ2VzdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1Z2dlc3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VnZ2VzdGlvbkNvbXBvbmVudCB7XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS1zdWdnZXN0aW9uJyk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHRoaXMudmFsdWUpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XG4gICAgdGhpcy52YWx1ZSQkLm5leHQodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnZWxSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBlbFJlZjogRWxlbWVudFJlZjtcblxuICBzZWxlY3RlZCA9IGZhbHNlO1xuICB2aXNpYmxlID0gdHJ1ZTtcbiAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdmlzaWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0b2NvbXBsZXRlOiBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICkge1xuICAgIHRoaXMuc2VsZWN0ZWQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZS5kaXJlY3RpdmUkJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoZGlyZWN0aXZlID0+IGRpcmVjdGl2ZS5pbnB1dFZhbHVlJCksXG4gICAgICApLFxuICAgICAgdGhpcy52YWx1ZSQkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtpbnB1dFZhbHVlLCBzZWxmVmFsdWVdKSA9PiBpbnB1dFZhbHVlID09PSBzZWxmVmFsdWUpLFxuICAgICAgdGFwKHNlbGVjdGVkID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgICB0aGlzLnZpc2libGUkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZS5kaXJlY3RpdmUkJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoZGlyZWN0aXZlID0+IGRpcmVjdGl2ZS5maWx0ZXJGbiQpLFxuICAgICAgKSxcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChkaXJlY3RpdmUgPT4gZGlyZWN0aXZlLmlucHV0VmFsdWUkKSxcbiAgICAgICksXG4gICAgICB0aGlzLnZhbHVlJCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlckZuLCBmaWx0ZXJTdHJpbmcsIHN1Z2dlc3Rpb25dKSA9PlxuICAgICAgICBmaWx0ZXJGbihmaWx0ZXJTdHJpbmcsIHN1Z2dlc3Rpb24pLFxuICAgICAgKSxcbiAgICAgIHRhcCh2aXNpYmxlID0+IHtcbiAgICAgICAgaWYgKCEodGhpcy52aXNpYmxlID0gdmlzaWJsZSkpIHtcbiAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hdXRvY29tcGxldGUuZGlyZWN0aXZlJCQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZGlyZWN0aXZlID0+IHtcbiAgICAgIGRpcmVjdGl2ZS5vblN1Z2dlc3Rpb25DbGljayh0aGlzLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBibHVyKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2XG4gICNlbFJlZlxuICBbaGlkZGVuXT1cIiEodmlzaWJsZSQgfCBhc3luYylcIlxuICBbY2xhc3NdPVwiYmVtLmJsb2NrKCdtZWRpdW0nKVwiXG4gIFtjbGFzcy5pc0Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwic2VsZWN0ZWQkIHwgYXN5bmNcIlxuICBbY2xhc3MuaXNGb2N1c2VkXT1cImZvY3VzZWRcIlxuICAoY2xpY2spPVwib25DbGljaygpXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0b2NvbXBsZXRlL3N1Z2dlc3Rpb24vc3VnZ2VzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvYXV0b2NvbXBsZXRlL3N1Z2dlc3Rpb24vc3VnZ2VzdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUVmLGFBQWEsRUFDYixHQUFHLEVBQ0gsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBRUwsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBWWxFLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFHO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQWVELFlBQ21CLEdBQXNCLEVBRXRCLFlBQW1DO1FBRm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRXRCLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQS9CdEQsUUFBRyxHQUFRLFFBQVEsQ0FBQyxnQkFB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QkFBcUIsQ0FBQzs0Q0F4QjdDLEtBQUs7c0JBRFIsS0FBSztnQkFXTixRQUFRO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBSXZDLEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEJlbSxcbiAgYnVpbGRCZW0sXG4gIGNvZXJjZUF0dHJCb29sZWFuLFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9hdXRvY29tcGxldGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXN1Z2dlc3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VnZ2VzdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1Z2dlc3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VnZ2VzdGlvbkNvbXBvbmVudCB7XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS1zdWdnZXN0aW9uJyk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHRoaXMudmFsdWUpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XG4gICAgdGhpcy52YWx1ZSQkLm5leHQodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnZWxSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBlbFJlZjogRWxlbWVudFJlZjtcblxuICBzZWxlY3RlZCA9IGZhbHNlO1xuICB2aXNpYmxlID0gdHJ1ZTtcbiAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdmlzaWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0b2NvbXBsZXRlOiBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICkge1xuICAgIHRoaXMuc2VsZWN0ZWQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZS5kaXJlY3RpdmUkJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoZGlyZWN0aXZlID0+IGRpcmVjdGl2ZS5pbnB1dFZhbHVlJCksXG4gICAgICApLFxuICAgICAgdGhpcy52YWx1ZSQkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtpbnB1dFZhbHVlLCBzZWxmVmFsdWVdKSA9PiBpbnB1dFZhbHVlID09PSBzZWxmVmFsdWUpLFxuICAgICAgdGFwKHNlbGVjdGVkID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgICB0aGlzLnZpc2libGUkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZS5kaXJlY3RpdmUkJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoZGlyZWN0aXZlID0+IGRpcmVjdGl2ZS5maWx0ZXJGbiQpLFxuICAgICAgKSxcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChkaXJlY3RpdmUgPT4gZGlyZWN0aXZlLmlucHV0VmFsdWUkKSxcbiAgICAgICksXG4gICAgICB0aGlzLnZhbHVlJCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlckZuLCBmaWx0ZXJTdHJpbmcsIHN1Z2dlc3Rpb25dKSA9PlxuICAgICAgICBmaWx0ZXJGbihmaWx0ZXJTdHJpbmcsIHN1Z2dlc3Rpb24pLFxuICAgICAgKSxcbiAgICAgIHRhcCh2aXNpYmxlID0+IHtcbiAgICAgICAgaWYgKCEodGhpcy52aXNpYmxlID0gdmlzaWJsZSkpIHtcbiAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hdXRvY29tcGxldGUuZGlyZWN0aXZlJCQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZGlyZWN0aXZlID0+IHtcbiAgICAgIGRpcmVjdGl2ZS5vblN1Z2dlc3Rpb25DbGljayh0aGlzLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBibHVyKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2XG4gICNlbFJlZlxuICBbaGlkZGVuXT1cIiEodmlzaWJsZSQgfCBhc3luYylcIlxuICBbY2xhc3NdPVwiYmVtLmJsb2NrKCdtZWRpdW0nKVwiXG4gIFtjbGFzcy5pc0Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwic2VsZWN0ZWQkIHwgYXN5bmNcIlxuICBbY2xhc3MuaXNGb2N1c2VkXT1cImZvY3VzZWRcIlxuICAoY2xpY2spPVwib25DbGljaygpXCJcbj5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRlbnQnKVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,40 +1,64 @@
1
- import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
1
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, computed, signal, } from '@angular/core';
3
3
  import dayjs from 'dayjs';
4
- import { map, startWith } from 'rxjs';
5
4
  import { ButtonComponent } from '../../../button/button.component';
6
5
  import { I18nPipe } from '../../../i18n';
7
6
  import { IconComponent } from '../../../icon/icon.component';
8
- import { buildBem, publishRef } from '../../../internal/utils';
9
- import { DateNavRange, Side, } from '../../date-picker.type';
10
- import { DatePickerType, MONTH, YEAR } from '../constant';
7
+ import { buildBem } from '../../../internal/utils';
8
+ import { DateNavRange, Side } from '../../date-picker.type';
9
+ import { MONTH, YEAR } from '../constant';
11
10
  import { calcRangeValue } from '../util';
12
11
  import * as i0 from "@angular/core";
13
12
  import * as i1 from "../../../i18n";
14
13
  const bem = buildBem('aui-calendar-header');
15
14
  export class CalendarHeaderComponent {
15
+ get dateNavRange() {
16
+ return this.$$dateNavRange();
17
+ }
18
+ set dateNavRange(val) {
19
+ if (!val || this.$$dateNavRange() === val) {
20
+ return;
21
+ }
22
+ this.$$dateNavRange.set(val);
23
+ }
24
+ get anchor() {
25
+ return this.$$anchor();
26
+ }
27
+ set anchor(val) {
28
+ if (!val || this.$$anchor() === val) {
29
+ return;
30
+ }
31
+ this.$$anchor.set(val);
32
+ }
16
33
  get _maxAvail() {
17
34
  return this.maxAvail ? dayjs(this.maxAvail) : null;
18
35
  }
19
36
  get _minAvail() {
20
37
  return this.minAvail ? dayjs(this.minAvail) : null;
21
38
  }
22
- get headerRange() {
23
- return calcRangeValue(this.dateNavRange, this.anchor);
24
- }
25
39
  constructor(i18nService) {
26
40
  this.i18nService = i18nService;
27
- this.dateNavRange = DateNavRange.Month;
28
- this.anchor = dayjs();
29
41
  this.navRangeChange = new EventEmitter();
30
42
  this.anchorChange = new EventEmitter();
43
+ this.$$dateNavRange = signal(DateNavRange.Month);
44
+ this.$$anchor = signal(dayjs());
31
45
  this.bem = bem;
32
46
  this.DateNavRange = DateNavRange;
33
- this.monthBeforeYear$ = this.i18nService.localeChange$.pipe(map(locale => {
34
- const parts = new Intl.DateTimeFormat(locale).formatToParts(new Date());
35
- return (parts.findIndex(part => part.type === DatePickerType.Month) <
36
- parts.findIndex(part => part.type === DatePickerType.Year));
37
- }), startWith(false), publishRef());
47
+ this.$monthBeforeYear = this.i18nService.$monthBeforeYear;
48
+ this.$headerRange = computed(() => {
49
+ const locale = this.i18nService.$locale();
50
+ const [start, end] = Object.values(calcRangeValue(this.$$dateNavRange(), this.$$anchor())).map(date => date.toDate());
51
+ return {
52
+ start: {
53
+ year: start.toLocaleDateString(locale, { year: 'numeric' }),
54
+ month: start.toLocaleDateString(locale, { month: 'short' }),
55
+ },
56
+ end: {
57
+ year: end?.toLocaleDateString(locale, { year: 'numeric' }),
58
+ month: end?.toLocaleDateString(locale, { month: 'short' }),
59
+ },
60
+ };
61
+ });
38
62
  this.clickNav = (range) => {
39
63
  if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {
40
64
  return;
@@ -87,18 +111,11 @@ export class CalendarHeaderComponent {
87
111
  this.anchorChange.next(anchor);
88
112
  }
89
113
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CalendarHeaderComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: CalendarHeaderComponent, isStandalone: true, selector: "aui-calendar-header", inputs: { dateNavRange: "dateNavRange", anchor: "anchor", maxAvail: "maxAvail", minAvail: "minAvail" }, outputs: { navRangeChange: "navRangeChange", anchorChange: "anchorChange" }, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? monthTemplate : yearTemplate\n \"\n ></ng-container>\n <div class=\"separator\">\n <span *ngIf=\"!('year_suffix' | auiI18n) && !('month_suffix' | auiI18n)\">\n /\n </span>\n </div>\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? yearTemplate : monthTemplate\n \"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - 100px);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: CalendarHeaderComponent, isStandalone: true, selector: "aui-calendar-header", inputs: { dateNavRange: "dateNavRange", anchor: "anchor", maxAvail: "maxAvail", minAvail: "minAvail" }, outputs: { navRangeChange: "navRangeChange", anchorChange: "anchorChange" }, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? monthTemplate : yearTemplate\"\n ></ng-container>\n <div class=\"separator\"></div>\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? yearTemplate : monthTemplate\"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ $headerRange().start.year }} - {{ $headerRange().end.year }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ $headerRange().start.month }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - var(--aui-inline-height-xs) * 4 - var(--aui-spacing-s) * 2);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
91
115
  }
92
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
93
117
  type: Component,
94
- args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
95
- NgIf,
96
- NgTemplateOutlet,
97
- ButtonComponent,
98
- IconComponent,
99
- I18nPipe,
100
- AsyncPipe,
101
- ], template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? monthTemplate : yearTemplate\n \"\n ></ng-container>\n <div class=\"separator\">\n <span *ngIf=\"!('year_suffix' | auiI18n) && !('month_suffix' | auiI18n)\">\n /\n </span>\n </div>\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? yearTemplate : monthTemplate\n \"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - 100px);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
118
+ args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgTemplateOutlet, ButtonComponent, IconComponent, I18nPipe], template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? monthTemplate : yearTemplate\"\n ></ng-container>\n <div class=\"separator\"></div>\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? yearTemplate : monthTemplate\"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ $headerRange().start.year }} - {{ $headerRange().end.year }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ $headerRange().start.month }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - var(--aui-inline-height-xs) * 4 - var(--aui-spacing-s) * 2);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
102
119
  }], ctorParameters: function () { return [{ type: i1.I18nService }]; }, propDecorators: { dateNavRange: [{
103
120
  type: Input
104
121
  }], anchor: [{
@@ -112,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
112
129
  }], anchorChange: [{
113
130
  type: Output
114
131
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2hlYWRlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvaGVhZGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBRUwsWUFBWSxFQUNaLElBQUksR0FDTCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFFekMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFrQjVDLE1BQU0sT0FBTyx1QkFBdUI7SUFVbEMsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFD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QUM7Z0JBQ3ZDLE1BQU07YUFDUDtZQUNELEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO2FBQ1A7WUFDRCxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdEMsTUFBTTthQUNQO1NBQ0Y7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXRHVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixvUUMxQ3BDLHUxSEE4SUEsMG5DRDVHSSxJQUFJLDZGQUNKLGdCQUFnQixvSkFDaEIsZUFBZSxzSUFDZixhQUFhLHVKQUNiLFFBQVEsMkNBQ1IsU0FBUzs7MkZBR0EsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDRSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixTQUFTO3FCQUNWO2tHQUlELFlBQVk7c0JBRFgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixjQUFjO3NCQURiLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUsIERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSTE4blBpcGUsIEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaTE4bic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBidWlsZEJlbSwgcHVibGlzaFJlZiB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7XG4gIENhbGVuZGFySGVhZGVyUmFuZ2UsXG4gIERhdGVOYXZSYW5nZSxcbiAgU2lkZSxcbn0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyVHlwZSwgTU9OVEgsIFlFQVIgfSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgeyBjYWxjUmFuZ2VWYWx1ZSB9IGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBiZW0gPSBidWlsZEJlbSgnYXVpLWNhbGVuZGFyLWhlYWRlcicpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktY2FsZW5kYXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEkxOG5QaXBlLFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBkYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2UuTW9udGg7XG5cbiAgQElucHV0KClcbiAgYW5jaG9yID0gZGF5anMoKTtcblxuICBASW5wdXQoKVxuICBtYXhBdmFpbD86IENvbmZpZ1R5cGU7XG5cbiAgcHJpdmF0ZSBnZXQgX21heEF2YWlsKCkge1xuICAgIHJldHVybiB0aGlzLm1heEF2YWlsID8gZGF5anModGhpcy5tYXhBdmFpbCkgOiBudWxsO1xuICB9XG5cbiAgQElucHV0KClcbiAgbWluQXZhaWw/OiBDb25maWdUeXBlO1xuXG4gIHByaXZhdGUgZ2V0IF9taW5BdmFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5taW5BdmFpbCA/IGRheWpzKHRoaXMubWluQXZhaWwpIDogbnVsbDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBuYXZSYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZU5hdlJhbmdlPigpO1xuXG4gIEBPdXRwdXQoKVxuICBhbmNob3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERheWpzPigpO1xuXG4gIGdldCBoZWFkZXJSYW5nZSgpOiBDYWxlbmRhckhlYWRlclJhbmdlIHtcbiAgICByZXR1cm4gY2FsY1JhbmdlVmFsdWUodGhpcy5kYXRlTmF2UmFuZ2UsIHRoaXMuYW5jaG9yKTtcbiAgfVxuXG4gIGJlbSA9IGJlbTtcblxuICBEYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2U7XG5cbiAgbW9udGhCZWZvcmVZZWFyJCA9IHRoaXMuaTE4blNlcnZpY2UubG9jYWxlQ2hhbmdlJC5waXBlKFxuICAgIG1hcChsb2NhbGUgPT4ge1xuICAgICAgY29uc3QgcGFydHMgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUpLmZvcm1hdFRvUGFydHMobmV3IERhdGUoKSk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBwYXJ0cy5maW5kSW5kZXgocGFydCA9PiBwYXJ0LnR5cGUgPT09IERhdGVQaWNrZXJUeXBlLk1vbnRoKSA8XG4gICAgICAgIHBhcnRzLmZpbmRJbmRleChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gRGF0ZVBpY2tlclR5cGUuWWVhcilcbiAgICAgICk7XG4gICAgfSksXG4gICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHt9XG5cbiAgLy8gbWF4QXZhaWwgPiBjdXJyZW50IGRhdGUg77yacmlnaHQgYnRuIGhpZGVcbiAgLy8gbWluQXZhaWwgPiBjdXJyZW50IGRhdGUg77yabGVmdCBidG4gaGlkZVxuICBzaG91bGRTaG93TmF2KHR5cGU6IERhdGVOYXZSYW5nZSwgc2lkZTogU2lkZSkge1xuICAgIGNvbnN0IGF2YWlsVmFsdWUgPSAoXG4gICAgICBzaWRlID09PSBTaWRlLkxlZnQgPyB0aGlzLl9taW5BdmFpbCA6IHRoaXMuX21heEF2YWlsXG4gICAgKT8uY2xvbmUoKTtcbiAgICBpZiAoIWF2YWlsVmFsdWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyDlr7nkuo7lubTnmoTliKTliKvvvIwyMDE0LTUtMeiHszIwMTUtNi0x5pel77yM5LuN5b2T5bGV56S65oyJ6ZKuXG4gICAgY29uc3QgY29uc3RyYWluRGF0ZSA9IFtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyh0eXBlKVxuICAgICAgPyBhdmFpbFZhbHVlLmFkZChzaWRlID09PSBTaWRlLkxlZnQgPyAxIDogLTEsIHR5cGUgYXMgJ21vbnRoJyB8ICd5ZWFyJylcbiAgICAgIDogYXZhaWxWYWx1ZTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb21wYXJlTmF2VmFsdWUodHlwZSwgY29uc3RyYWluRGF0ZSwgdGhpcy5hbmNob3IpID09PVxuICAgICAgKHNpZGUgPT09IFNpZGUuTGVmdCA/IC0xIDogMSlcbiAgICApO1xuICB9XG5cbiAgLy8gQHJldHVybiBpc0JldHdlZW58aXNFcXVhbDowLCBpc0JlZm9yZTotMSxpc0FmdGVyOjFcbiAgY29tcGFyZU5hdlZhbHVlKHR5cGU6IERhdGVOYXZSYW5nZSwgY29uc3RyYWluOiBEYXlqcywgYW5jaG9yOiBEYXlqcykge1xuICAgIGNvbnN0IHJhbmdlID0gY2FsY1JhbmdlVmFsdWUodHlwZSwgYW5jaG9yKTtcbiAgICBjb25zdCBjb25zdHJhaW5WYWx1ZSA9IGNvbnN0cmFpbjtcbiAgICBpZiAodHlwZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZSkge1xuICAgICAgaWYgKGNvbnN0cmFpblZhbHVlLmlzQmV0d2VlbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kLCBZRUFSKSkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb25zdHJhaW5WYWx1ZS5pc0JlZm9yZShyYW5nZS5zdGFydCkgPyAtMSA6IDE7XG4gICAgfVxuICAgIHJldHVybiBjb25zdHJhaW5WYWx1ZS5pc1NhbWUocmFuZ2Uuc3RhcnQsIE1PTlRIKVxuICAgICAgPyAwXG4gICAgICA6IGNvbnN0cmFpblZhbHVlLmlzQmVmb3JlKHJhbmdlLnN0YXJ0LCBNT05USClcbiAgICAgID8gLTFcbiAgICAgIDogMTtcbiAgfVxuXG4gIG5hdkhlYWQocmFuZ2U6IERhdGVOYXZSYW5nZSwgdmFsdWU6IG51bWJlcikge1xuICAgIGxldCBhbmNob3I6IERheWpzO1xuICAgIHN3aXRjaCAocmFuZ2UpIHtcbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLk1vbnRoOiB7XG4gICAgICAgIGFuY2hvciA9IHRoaXMuYW5jaG9yLmFkZCh2YWx1ZSwgTU9OVEgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLlllYXI6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5EZWNhZGU6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYW5jaG9yQ2hhbmdlLm5leHQoYW5jaG9yKTtcbiAgfVxuXG4gIGNsaWNrTmF2ID0gKHJhbmdlOiBEYXRlTmF2UmFuZ2UpID0+IHtcbiAgICBpZiAoIVtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyhyYW5nZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uYXZSYW5nZUNoYW5nZS5uZXh0KFxuICAgICAgcmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/IERhdGVOYXZSYW5nZS5ZZWFyIDogRGF0ZU5hdlJhbmdlLkRlY2FkZSxcbiAgICApO1xuICB9O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY2FkZUNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0g5YaF5a655Yy6IC0tPlxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICAgICAgKG1vbnRoQmVmb3JlWWVhciQgfCBhc3luYykgPyBtb250aFRlbXBsYXRlIDogeWVhclRlbXBsYXRlXG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiEoJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4pICYmICEoJ21vbnRoX3N1ZmZpeCcgfCBhdWlJMThuKVwiPlxuICAgICAgICAvXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiXG4gICAgICAgIChtb250aEJlZm9yZVllYXIkIHwgYXN5bmMpID8geWVhclRlbXBsYXRlIDogbW9udGhUZW1wbGF0ZVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cblxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuWWVhcilcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydD8ueWVhcigpIH19e3sgJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuXG4gICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICB7eyBoZWFkZXJSYW5nZT8uc3RhcnQueWVhcigpIH19IC0ge3sgaGVhZGVyUmFuZ2U/LmVuZD8ueWVhcigpIH19XG4gIDwvc3Bhbj5cblxuICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWFjdGlvbicpXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ3JpZ2h0JyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWNhZGVDb250cm9sXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNpZGU6ICdyaWdodCcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgI3llYXJDb250cm9sXG4gIGxldC1zaWRlPVwic2lkZVwiXG4+XG4gIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWJhclwiPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICpuZ0lmPVwic2lkZSA9PT0gJ3JpZ2h0J1wiXG4gICAgICBbY2xhc3MuaGlkZGVuXT1cIlxuICAgICAgICAhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuTW9udGgsIHNpZGUpIHx8XG4gICAgICAgIGRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLk1vbnRoXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLk1vbnRoLCAxKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV9yaWdodFwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLlllYXIsIHNpZGUgPT09ICdsZWZ0JyA/IC0xIDogMSlcIlxuICAgICAgW2NsYXNzLmhpZGRlbl09XCIhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuWWVhciwgc2lkZSlcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBbaWNvbl09XCJzaWRlID09PSAnbGVmdCcgPyAnYW5nbGVzX2xlZnQnIDogJ2FuZ2xlc19yaWdodCdcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgKm5nSWY9XCJzaWRlID09PSAnbGVmdCdcIlxuICAgICAgW2NsYXNzLmhpZGRlbl09XCJcbiAgICAgICAgIXNob3VsZFNob3dOYXYoRGF0ZU5hdlJhbmdlLk1vbnRoLCBzaWRlKSB8fFxuICAgICAgICBkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5Nb250aFxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJuYXZIZWFkKERhdGVOYXZSYW5nZS5Nb250aCwgLTEpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX2xlZnRcIj48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI2RlY2FkZUNvbnRyb2xcbiAgbGV0LXNpZGU9XCJzaWRlXCJcbj5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuRGVjYWRlLCBzaWRlID09PSAnbGVmdCcgPyAtMTAgOiAxMClcIlxuICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNob3VsZFNob3dOYXYoRGF0ZU5hdlJhbmdlLkRlY2FkZSwgc2lkZSlcIlxuICA+XG4gICAgPGF1aS1pY29uXG4gICAgICBbaWNvbl09XCJzaWRlID09PSAnbGVmdCcgPyAnYW5nbGVzX2xlZnQnIDogJ2FuZ2xlc19yaWdodCdcIlxuICAgID48L2F1aS1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjeWVhclRlbXBsYXRlPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIGNsYXNzPVwiaGVhZGVyLXJhbmdlXCJcbiAgICAoY2xpY2spPVwiY2xpY2tOYXYoRGF0ZU5hdlJhbmdlLlllYXIpXCJcbiAgPlxuICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydD8ueWVhcigpIH19e3sgJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4gfX1cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtb250aFRlbXBsYXRlPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIGNsYXNzPVwiaGVhZGVyLXJhbmdlXCJcbiAgICAoY2xpY2spPVwiY2xpY2tOYXYoRGF0ZU5hdlJhbmdlLk1vbnRoKVwiXG4gID5cbiAgICB7eyBoZWFkZXJSYW5nZT8uc3RhcnQ/Lm1vbnRoKCkgKyAxIH19e3sgJ21vbnRoX3N1ZmZpeCcgfCBhdWlJMThuIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2hlYWRlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvaGVhZGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBNEIsTUFBTSxPQUFPLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQUV6QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQVc1QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxHQUFHO1FBQ2xCLElBQUks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QUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQS9IVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixvUUNoQ3BDLHF3SEE4SUEsK3FDRGhIWSxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxlQUFlLHNJQUFFLGFBQWE7OzJGQUVyRCx1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0UscUJBQXFCLGlCQUdoQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQztrR0FJdkUsWUFBWTtzQkFEZixLQUFLO2dCQWFGLE1BQU07c0JBRFQsS0FBSztnQkFhTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLGNBQWM7c0JBRGIsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUsIERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJMThuUGlwZSwgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9pMThuJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IGJ1aWxkQmVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWwvdXRpbHMnO1xuaW1wb3J0IHsgRGF0ZU5hdlJhbmdlLCBTaWRlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBNT05USCwgWUVBUiB9IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7IGNhbGNSYW5nZVZhbHVlIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktY2FsZW5kYXItaGVhZGVyJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1jYWxlbmRhci1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBCdXR0b25Db21wb25lbnQsIEljb25Db21wb25lbnQsIEkxOG5QaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBnZXQgZGF0ZU5hdlJhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLiQkZGF0ZU5hdlJhbmdlKCk7XG4gIH1cblxuICBzZXQgZGF0ZU5hdlJhbmdlKHZhbCkge1xuICAgIGlmICghdmFsIHx8IHRoaXMuJCRkYXRlTmF2UmFuZ2UoKSA9PT0gdmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuJCRkYXRlTmF2UmFuZ2Uuc2V0KHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYW5jaG9yKCkge1xuICAgIHJldHVybiB0aGlzLiQkYW5jaG9yKCk7XG4gIH1cblxuICBzZXQgYW5jaG9yKHZhbCkge1xuICAgIGlmICghdmFsIHx8IHRoaXMuJCRhbmNob3IoKSA9PT0gdmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuJCRhbmNob3Iuc2V0KHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBtYXhBdmFpbD86IENvbmZpZ1R5cGU7XG5cbiAgcHJpdmF0ZSBnZXQgX21heEF2YWlsKCkge1xuICAgIHJldHVybiB0aGlzLm1heEF2YWlsID8gZGF5anModGhpcy5tYXhBdmFpbCkgOiBudWxsO1xuICB9XG5cbiAgQElucHV0KClcbiAgbWluQXZhaWw/OiBDb25maWdUeXBlO1xuXG4gIHByaXZhdGUgZ2V0IF9taW5BdmFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5taW5BdmFpbCA/IGRheWpzKHRoaXMubWluQXZhaWwpIDogbnVsbDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBuYXZSYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZU5hdlJhbmdlPigpO1xuXG4gIEBPdXRwdXQoKVxuICBhbmNob3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERheWpzPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgJCRkYXRlTmF2UmFuZ2UgPSBzaWduYWwoRGF0ZU5hdlJhbmdlLk1vbnRoKTtcbiAgcHJpdmF0ZSByZWFkb25seSAkJGFuY2hvciA9IHNpZ25hbChkYXlqcygpKTtcblxuICBiZW0gPSBiZW07XG5cbiAgRGF0ZU5hdlJhbmdlID0gRGF0ZU5hdlJhbmdlO1xuXG4gICRtb250aEJlZm9yZVllYXIgPSB0aGlzLmkxOG5TZXJ2aWNlLiRtb250aEJlZm9yZVllYXI7XG5cbiAgJGhlYWRlclJhbmdlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuaTE4blNlcnZpY2UuJGxvY2FsZSgpO1xuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IE9iamVjdC52YWx1ZXMoXG4gICAgICBjYWxjUmFuZ2VWYWx1ZSh0aGlzLiQkZGF0ZU5hdlJhbmdlKCksIHRoaXMuJCRhbmNob3IoKSksXG4gICAgKS5tYXAoZGF0ZSA9PiBkYXRlLnRvRGF0ZSgpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdGFydDoge1xuICAgICAgICB5ZWFyOiBzdGFydC50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IHllYXI6ICdudW1lcmljJyB9KSxcbiAgICAgICAgbW9udGg6IHN0YXJ0LnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHsgbW9udGg6ICdzaG9ydCcgfSksXG4gICAgICB9LFxuICAgICAgZW5kOiB7XG4gICAgICAgIHllYXI6IGVuZD8udG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSksXG4gICAgICAgIG1vbnRoOiBlbmQ/LnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHsgbW9udGg6ICdzaG9ydCcgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlKSB7fVxuXG4gIC8vIG1heEF2YWlsID4gY3VycmVudCBkYXRlIO+8mnJpZ2h0IGJ0biBoaWRlXG4gIC8vIG1pbkF2YWlsID4gY3VycmVudCBkYXRlIO+8mmxlZnQgYnRuIGhpZGVcbiAgc2hvdWxkU2hvd05hdih0eXBlOiBEYXRlTmF2UmFuZ2UsIHNpZGU6IFNpZGUpIHtcbiAgICBjb25zdCBhdmFpbFZhbHVlID0gKFxuICAgICAgc2lkZSA9PT0gU2lkZS5MZWZ0ID8gdGhpcy5fbWluQXZhaWwgOiB0aGlzLl9tYXhBdmFpbFxuICAgICk/LmNsb25lKCk7XG4gICAgaWYgKCFhdmFpbFZhbHVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8g5a+55LqO5bm055qE5Yik5Yir77yMMjAxNC01LTHoh7MyMDE1LTYtMeaXpe+8jOS7jeW9k+WxleekuuaMiemSrlxuICAgIGNvbnN0IGNvbnN0cmFpbkRhdGUgPSBbRGF0ZU5hdlJhbmdlLk1vbnRoLCBEYXRlTmF2UmFuZ2UuWWVhcl0uaW5jbHVkZXModHlwZSlcbiAgICAgID8gYXZhaWxWYWx1ZS5hZGQoc2lkZSA9PT0gU2lkZS5MZWZ0ID8gMSA6IC0xLCB0eXBlIGFzICdtb250aCcgfCAneWVhcicpXG4gICAgICA6IGF2YWlsVmFsdWU7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29tcGFyZU5hdlZhbHVlKHR5cGUsIGNvbnN0cmFpbkRhdGUsIHRoaXMuYW5jaG9yKSA9PT1cbiAgICAgIChzaWRlID09PSBTaWRlLkxlZnQgPyAtMSA6IDEpXG4gICAgKTtcbiAgfVxuXG4gIC8vIEByZXR1cm4gaXNCZXR3ZWVufGlzRXF1YWw6MCwgaXNCZWZvcmU6LTEsaXNBZnRlcjoxXG4gIGNvbXBhcmVOYXZWYWx1ZSh0eXBlOiBEYXRlTmF2UmFuZ2UsIGNvbnN0cmFpbjogRGF5anMsIGFuY2hvcjogRGF5anMpIHtcbiAgICBjb25zdCByYW5nZSA9IGNhbGNSYW5nZVZhbHVlKHR5cGUsIGFuY2hvcik7XG4gICAgY29uc3QgY29uc3RyYWluVmFsdWUgPSBjb25zdHJhaW47XG4gICAgaWYgKHR5cGUgPT09IERhdGVOYXZSYW5nZS5EZWNhZGUpIHtcbiAgICAgIGlmIChjb25zdHJhaW5WYWx1ZS5pc0JldHdlZW4ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCwgWUVBUikpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29uc3RyYWluVmFsdWUuaXNCZWZvcmUocmFuZ2Uuc3RhcnQpID8gLTEgOiAxO1xuICAgIH1cbiAgICByZXR1cm4gY29uc3RyYWluVmFsdWUuaXNTYW1lKHJhbmdlLnN0YXJ0LCBNT05USClcbiAgICAgID8gMFxuICAgICAgOiBjb25zdHJhaW5WYWx1ZS5pc0JlZm9yZShyYW5nZS5zdGFydCwgTU9OVEgpXG4gICAgICA/IC0xXG4gICAgICA6IDE7XG4gIH1cblxuICBuYXZIZWFkKHJhbmdlOiBEYXRlTmF2UmFuZ2UsIHZhbHVlOiBudW1iZXIpIHtcbiAgICBsZXQgYW5jaG9yOiBEYXlqcztcbiAgICBzd2l0Y2ggKHJhbmdlKSB7XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5Nb250aDoge1xuICAgICAgICBhbmNob3IgPSB0aGlzLmFuY2hvci5hZGQodmFsdWUsIE1PTlRIKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5ZZWFyOiB7XG4gICAgICAgIGFuY2hvciA9IHRoaXMuYW5jaG9yLmFkZCh2YWx1ZSwgWUVBUik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuRGVjYWRlOiB7XG4gICAgICAgIGFuY2hvciA9IHRoaXMuYW5jaG9yLmFkZCh2YWx1ZSwgWUVBUik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFuY2hvckNoYW5nZS5uZXh0KGFuY2hvcik7XG4gIH1cblxuICBjbGlja05hdiA9IChyYW5nZTogRGF0ZU5hdlJhbmdlKSA9PiB7XG4gICAgaWYgKCFbRGF0ZU5hdlJhbmdlLk1vbnRoLCBEYXRlTmF2UmFuZ2UuWWVhcl0uaW5jbHVkZXMocmFuZ2UpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubmF2UmFuZ2VDaGFuZ2UubmV4dChcbiAgICAgIHJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGggPyBEYXRlTmF2UmFuZ2UuWWVhciA6IERhdGVOYXZSYW5nZS5EZWNhZGUsXG4gICAgKTtcbiAgfTtcbn1cbiIsIjxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb250YWluZXInKVwiPlxuICA8ZGl2PlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJDb250cm9sXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNpZGU6ICdsZWZ0JyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWNhZGVDb250cm9sXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNpZGU6ICdsZWZ0JyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8IS0tIOWGheWuueWMuiAtLT5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ25hdi1jb250ZW50JylcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJG1vbnRoQmVmb3JlWWVhcigpID8gbW9udGhUZW1wbGF0ZSA6IHllYXJUZW1wbGF0ZVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkbW9udGhCZWZvcmVZZWFyKCkgPyB5ZWFyVGVtcGxhdGUgOiBtb250aFRlbXBsYXRlXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cblxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuWWVhcilcIlxuICAgID5cbiAgICAgIHt7ICRoZWFkZXJSYW5nZSgpLnN0YXJ0LnllYXIgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuXG4gICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICB7eyAkaGVhZGVyUmFuZ2UoKS5zdGFydC55ZWFyIH19IC0ge3sgJGhlYWRlclJhbmdlKCkuZW5kLnllYXIgfX1cbiAgPC9zcGFuPlxuXG4gIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtYWN0aW9uJylcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ5ZWFyQ29udHJvbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzaWRlOiAncmlnaHQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY2FkZUNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ3JpZ2h0JyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAjeWVhckNvbnRyb2xcbiAgbGV0LXNpZGU9XCJzaWRlXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tYmFyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICpuZ0lmPVwic2lkZSA9PT0gJ3JpZ2h0J1wiXG4gICAgICBbY2xhc3MuaGlkZGVuXT1cIlxuICAgICAgICAhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuTW9udGgsIHNpZGUpIHx8XG4gICAgICAgIGRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLk1vbnRoXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLk1vbnRoLCAxKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV9yaWdodFwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJuYXZIZWFkKERhdGVOYXZSYW5nZS5ZZWFyLCBzaWRlID09PSAnbGVmdCcgPyAtMSA6IDEpXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNob3VsZFNob3dOYXYoRGF0ZU5hdlJhbmdlLlllYXIsIHNpZGUpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgW2ljb25dPVwic2lkZSA9PT0gJ2xlZnQnID8gJ2FuZ2xlc19sZWZ0JyA6ICdhbmdsZXNfcmlnaHQnXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAqbmdJZj1cInNpZGUgPT09ICdsZWZ0J1wiXG4gICAgICBbY2xhc3MuaGlkZGVuXT1cIlxuICAgICAgICAhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuTW9udGgsIHNpZGUpIHx8XG4gICAgICAgIGRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLk1vbnRoXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLk1vbnRoLCAtMSlcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfbGVmdFwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVjYWRlQ29udHJvbFxuICBsZXQtc2lkZT1cInNpZGVcIlxuPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIHNpemU9XCJtaW5pXCJcbiAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgIChjbGljayk9XCJuYXZIZWFkKERhdGVOYXZSYW5nZS5EZWNhZGUsIHNpZGUgPT09ICdsZWZ0JyA/IC0xMCA6IDEwKVwiXG4gICAgW2NsYXNzLmhpZGRlbl09XCIhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuRGVjYWRlLCBzaWRlKVwiXG4gID5cbiAgICA8YXVpLWljb25cbiAgICAgIFtpY29uXT1cInNpZGUgPT09ICdsZWZ0JyA/ICdhbmdsZXNfbGVmdCcgOiAnYW5nbGVzX3JpZ2h0J1wiXG4gICAgPjwvYXVpLWljb24+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN5ZWFyVGVtcGxhdGU+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgY2xhc3M9XCJoZWFkZXItcmFuZ2VcIlxuICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuWWVhcilcIlxuICA+XG4gICAge3sgJGhlYWRlclJhbmdlKCkuc3RhcnQueWVhciB9fVxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI21vbnRoVGVtcGxhdGU+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgY2xhc3M9XCJoZWFkZXItcmFuZ2VcIlxuICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuTW9udGgpXCJcbiAgPlxuICAgIHt7ICRoZWFkZXJSYW5nZSgpLnN0YXJ0Lm1vbnRoIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==