@taiga-ui/core 4.46.0 → 4.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,26 +4,31 @@ import { TuiDay, TuiMonthRange, TuiYear } from '@taiga-ui/cdk/date-time';
4
4
  import type { TuiBooleanHandler } from '@taiga-ui/cdk/types';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class TuiCalendarYear {
7
- private hoveredItem;
8
- private readonly currentYear;
9
- value: TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null;
10
- initialItem: number;
11
- min: number | null;
12
- max: number | null;
7
+ private readonly hoveredItem;
8
+ protected readonly isRangePicking: import("@angular/core").Signal<boolean>;
13
9
  rangeMode: boolean;
14
10
  disabledItemHandler: TuiBooleanHandler<number>;
15
11
  readonly yearClick: EventEmitter<number>;
12
+ readonly initialItem: import("@angular/core").WritableSignal<number>;
13
+ readonly min: import("@angular/core").WritableSignal<number>;
14
+ readonly max: import("@angular/core").WritableSignal<number>;
15
+ readonly value: import("@angular/core").WritableSignal<number | TuiYear | TuiDayRange | readonly TuiDay[] | TuiMonthRange | null>;
16
+ set initialItemSetter(x: number | null);
17
+ set minSetter(x: number);
18
+ set maxSetter(x: number);
19
+ set valueSetter(x: TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null);
16
20
  isDisabled(item: number): boolean;
17
21
  getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null;
18
22
  onItemHovered(hovered: boolean, item: number): void;
19
- protected get isRangePicking(): boolean;
20
23
  protected get rows(): number;
21
24
  protected scrollItemIntoView(item: number): boolean;
22
25
  protected getItem(rowIndex: number, colIndex: number): number;
23
26
  protected itemIsToday(item: number): boolean;
24
27
  private get calculatedMin();
25
28
  private get calculatedMax();
26
- private updateHoveredItem;
27
29
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiCalendarYear, never>;
28
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarYear, "tui-calendar-year", never, { "value": { "alias": "value"; "required": false; }; "initialItem": { "alias": "initialItem"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "rangeMode": { "alias": "rangeMode"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; }, { "yearClick": "yearClick"; }, never, never, true, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarYear, "tui-calendar-year", never, { "rangeMode": { "alias": "rangeMode"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "initialItemSetter": { "alias": "initialItem"; "required": false; }; "minSetter": { "alias": "min"; "required": false; }; "maxSetter": { "alias": "max"; "required": false; }; "valueSetter": { "alias": "value"; "required": false; }; }, { "yearClick": "yearClick"; }, never, never, true, never>;
31
+ static ngAcceptInputType_initialItemSetter: number | null;
32
+ static ngAcceptInputType_minSetter: number | null;
33
+ static ngAcceptInputType_maxSetter: number | null;
29
34
  }
@@ -7,6 +7,8 @@ type Icon = SafeResourceUrl | string | null | undefined;
7
7
  export declare class TuiIcons {
8
8
  private readonly resolver;
9
9
  protected readonly nothing: undefined;
10
+ protected readonly iconStartUrl: import("@angular/core").Signal<string | null>;
11
+ protected readonly iconEndUrl: import("@angular/core").Signal<string | null>;
10
12
  readonly iconStart: import("@angular/core").WritableSignal<Icon>;
11
13
  readonly iconEnd: import("@angular/core").WritableSignal<string>;
12
14
  set iconStartSetter(x: Icon);
@@ -1,33 +1,52 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
1
+ import { ChangeDetectionStrategy, Component, computed, EventEmitter, inject, Input, Output, signal, } from '@angular/core';
3
2
  import { MAX_YEAR, MIN_YEAR, TuiDay, TuiMonth, TuiMonthRange, TuiYear, } from '@taiga-ui/cdk/date-time';
4
3
  import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
5
4
  import { TuiLet } from '@taiga-ui/cdk/directives/let';
6
5
  import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
7
6
  import { tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
8
7
  import { TuiScrollIntoView } from '@taiga-ui/core/components/scrollbar';
8
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives';
9
+ import { tuiAsAuxiliary } from '@taiga-ui/core/tokens';
9
10
  import * as i0 from "@angular/core";
10
11
  const LIMIT = 100;
11
12
  const ITEMS_IN_ROW = 4;
13
+ const CURRENT_YEAR = TuiMonth.currentLocal().year;
12
14
  class TuiCalendarYear {
13
15
  constructor() {
14
- this.hoveredItem = null;
15
- this.currentYear = TuiMonth.currentLocal().year;
16
- this.value = null;
17
- this.initialItem = this.currentYear;
18
- this.min = MIN_YEAR;
19
- this.max = MAX_YEAR;
16
+ this.hoveredItem = signal(null);
17
+ this.isRangePicking = computed((x = this.value()) => this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth));
20
18
  this.rangeMode = false;
21
- this.disabledItemHandler = TUI_FALSE_HANDLER;
19
+ this.disabledItemHandler = inject(TUI_ITEMS_HANDLERS).disabledItemHandler();
22
20
  this.yearClick = new EventEmitter();
21
+ this.initialItem = signal(CURRENT_YEAR);
22
+ this.min = signal(MIN_YEAR);
23
+ this.max = signal(MAX_YEAR);
24
+ this.value = signal(null);
25
+ }
26
+ // TODO(v5): use signal inputs
27
+ set initialItemSetter(x) {
28
+ this.initialItem.set(x ?? CURRENT_YEAR);
29
+ }
30
+ // TODO(v5): use signal inputs
31
+ set minSetter(x) {
32
+ this.min.set(x);
33
+ }
34
+ // TODO(v5): use signal inputs
35
+ set maxSetter(x) {
36
+ this.max.set(x);
37
+ }
38
+ // TODO(v5): use signal inputs
39
+ set valueSetter(x) {
40
+ this.value.set(x);
23
41
  }
24
42
  isDisabled(item) {
25
- return ((this.max && this.max < item) ||
26
- (this.min && this.min > item) ||
43
+ return ((this.max() && this.max() < item) ||
44
+ (this.min() && this.min() > item) ||
27
45
  this.disabledItemHandler(item));
28
46
  }
29
47
  getItemRange(item) {
30
- const { value, hoveredItem } = this;
48
+ const value = this.value();
49
+ const hoveredItem = this.hoveredItem();
31
50
  if (value instanceof TuiYear && value.year === item) {
32
51
  return 'active';
33
52
  }
@@ -37,7 +56,7 @@ class TuiCalendarYear {
37
56
  if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {
38
57
  return value?.find((day) => day.year === item) ? 'active' : null;
39
58
  }
40
- const hovered = this.isRangePicking ? hoveredItem : null;
59
+ const hovered = this.isRangePicking() ? hoveredItem : null;
41
60
  const from = 'from' in value ? value.from?.year : value.year;
42
61
  const to = 'from' in value ? value.to.year : value.year;
43
62
  const min = Math.min(from, hovered ?? to);
@@ -54,59 +73,56 @@ class TuiCalendarYear {
54
73
  return min < item && item < max ? 'middle' : null;
55
74
  }
56
75
  onItemHovered(hovered, item) {
57
- this.updateHoveredItem(hovered, item);
58
- }
59
- get isRangePicking() {
60
- return (this.rangeMode &&
61
- (this.value instanceof TuiDay || this.value instanceof TuiMonth));
76
+ this.hoveredItem.set(hovered ? item : null);
62
77
  }
63
78
  get rows() {
64
79
  return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);
65
80
  }
66
81
  scrollItemIntoView(item) {
67
- return this.initialItem === item;
82
+ return this.initialItem() === item;
68
83
  }
69
84
  getItem(rowIndex, colIndex) {
70
85
  return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;
71
86
  }
72
87
  itemIsToday(item) {
73
- return this.currentYear === item;
88
+ return CURRENT_YEAR === item;
74
89
  }
75
90
  get calculatedMin() {
76
- const initial = this.initialItem - LIMIT;
77
- const min = this.min ?? MIN_YEAR;
91
+ const initial = this.initialItem() - LIMIT;
92
+ const min = this.min() ?? MIN_YEAR;
78
93
  return min > initial ? min : initial;
79
94
  }
80
95
  get calculatedMax() {
81
- const initial = this.initialItem + LIMIT;
82
- const max = this.max ?? MAX_YEAR;
96
+ const initial = this.initialItem() + LIMIT;
97
+ const max = this.max() ?? MAX_YEAR;
83
98
  return max < initial ? max + 1 : initial;
84
99
  }
85
- updateHoveredItem(hovered, item) {
86
- this.hoveredItem = hovered ? item : null;
87
- }
88
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { value: "value", initialItem: "initialItem", min: "min", max: "max", rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler" }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking" } }, ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler", initialItemSetter: ["initialItem", "initialItemSetter", (x) => x ?? CURRENT_YEAR], minSetter: ["min", "minSetter", (x) => x ?? MIN_YEAR], maxSetter: ["max", "maxSetter", (x) => x ?? MAX_YEAR], valueSetter: ["value", "valueSetter"] }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
102
  }
91
103
  export { TuiCalendarYear };
92
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, decorators: [{
93
105
  type: Component,
94
- args: [{ standalone: true, selector: 'tui-calendar-year', imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, host: {
95
- '[class._picking]': 'isRangePicking',
96
- }, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
97
- }], propDecorators: { value: [{
98
- type: Input
99
- }], initialItem: [{
100
- type: Input
101
- }], min: [{
102
- type: Input
103
- }], max: [{
104
- type: Input
105
- }], rangeMode: [{
106
+ args: [{ standalone: true, selector: 'tui-calendar-year', imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
107
+ '[class._picking]': 'isRangePicking()',
108
+ }, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
109
+ }], propDecorators: { rangeMode: [{
106
110
  type: Input
107
111
  }], disabledItemHandler: [{
108
112
  type: Input
109
113
  }], yearClick: [{
110
114
  type: Output
115
+ }], initialItemSetter: [{
116
+ type: Input,
117
+ args: [{ alias: 'initialItem', transform: (x) => x ?? CURRENT_YEAR }]
118
+ }], minSetter: [{
119
+ type: Input,
120
+ args: [{ alias: 'min', transform: (x) => x ?? MIN_YEAR }]
121
+ }], maxSetter: [{
122
+ type: Input,
123
+ args: [{ alias: 'max', transform: (x) => x ?? MAX_YEAR }]
124
+ }], valueSetter: [{
125
+ type: Input,
126
+ args: ['value']
111
127
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIteWVhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIteWVhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE9BQU8sRUFDSCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFdEUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUV2QixNQVdhLGVBQWU7SUFYNUI7UUFZWSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBR3JELFVBQUssR0FNQyxJQUFJLENBQUM7UUFHWCxnQkFBVyxHQUFX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V0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQzsrR0F2SFEsZUFBZTttR0FBZixlQUFlLG9VQ3RDNUIsMHZCQXFCQSw2dEhEU2MsVUFBVSw4RkFBRSxNQUFNLHlFQUFFLGNBQWMsNkdBQUUsaUJBQWlCOztTQVF0RCxlQUFlOzRGQUFmLGVBQWU7a0JBWDNCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLG1CQUFtQixXQUNwQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixDQUFDLG1CQUcvQyx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLGtCQUFrQixFQUFFLGdCQUFnQjtxQkFDdkM7OEJBT00sS0FBSztzQkFEWCxLQUFLO2dCQVVDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUlVLFNBQVM7c0JBRHhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX0ZBTFNFX0hBTkRMRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUdWlEYXlSYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgICBNQVhfWUVBUixcbiAgICBNSU5fWUVBUixcbiAgICBUdWlEYXksXG4gICAgVHVpTW9udGgsXG4gICAgVHVpTW9udGhSYW5nZSxcbiAgICBUdWlZZWFyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge1R1aUhvdmVyZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9ob3ZlcmVkJztcbmltcG9ydCB7VHVpTGV0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvbGV0JztcbmltcG9ydCB7VHVpUmVwZWF0VGltZXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9yZXBlYXQtdGltZXMnO1xuaW1wb3J0IHR5cGUge1R1aUJvb2xlYW5IYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSXNOdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aVNjcm9sbEludG9WaWV3fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Njcm9sbGJhcic7XG5cbmNvbnN0IExJTUlUID0gMTAwO1xuY29uc3QgSVRFTVNfSU5fUk9XID0gNDtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1jYWxlbmRhci15ZWFyJyxcbiAgICBpbXBvcnRzOiBbVHVpSG92ZXJlZCwgVHVpTGV0LCBUdWlSZXBlYXRUaW1lcywgVHVpU2Nyb2xsSW50b1ZpZXddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci15ZWFyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLXllYXIuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5fcGlja2luZ10nOiAnaXNSYW5nZVBpY2tpbmcnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNhbGVuZGFyWWVhciB7XG4gICAgcHJpdmF0ZSBob3ZlcmVkSXRlbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50WWVhciA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpLnllYXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZTpcbiAgICAgICAgfCBUdWlEYXlSYW5nZVxuICAgICAgICB8IFR1aU1vbnRoUmFuZ2VcbiAgICAgICAgfCBUdWlZZWFyXG4gICAgICAgIHwgbnVtYmVyXG4gICAgICAgIHwgcmVhZG9ubHkgVHVpRGF5W11cbiAgICAgICAgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGluaXRpYWxJdGVtOiBudW1iZXIgPSB0aGlzLmN1cnJlbnRZZWFyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluOiBudW1iZXIgfCBudWxsID0gTUlOX1lFQVI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXg6IG51bWJlciB8IG51bGwgPSBNQVhfWUVBUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJhbmdlTW9kZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8bnVtYmVyPiA9IFRVSV9GQUxTRV9IQU5ETEVSO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IHllYXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgcHVibGljIGlzRGlzYWJsZWQoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5tYXggJiYgdGhpcy5tYXggPCBpdGVtKSB8fFxuICAgICAgICAgICAgKHRoaXMubWluICYmIHRoaXMubWluID4gaXRlbSkgfHxcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcihpdGVtKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtUmFuZ2UoaXRlbTogbnVtYmVyKTogJ2FjdGl2ZScgfCAnZW5kJyB8ICdtaWRkbGUnIHwgJ3N0YXJ0JyB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVHVpWWVhciAmJiB2YWx1ZS55ZWFyID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FjdGl2ZSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHVpSXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IGl0ZW0gPyAnYWN0aXZlJyA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIFR1aU1vbnRoUmFuZ2UpICYmICEodmFsdWUgaW5zdGFuY2VvZiBUdWlZZWFyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlPy5maW5kKChkYXkpID0+IGRheS55ZWFyID09PSBpdGVtKSA/ICdhY3RpdmUnIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhvdmVyZWQgPSB0aGlzLmlzUmFuZ2VQaWNraW5nID8gaG92ZXJlZEl0ZW0gOiBudWxsO1xuICAgICAgICBjb25zdCBmcm9tID0gJ2Zyb20nIGluIHZhbHVlID8gdmFsdWUuZnJvbT8ueWVhciA6IHZhbHVlLnllYXI7XG4gICAgICAgIGNvbnN0IHRvID0gJ2Zyb20nIGluIHZhbHVlID8gdmFsdWUudG8ueWVhciA6IHZhbHVlLnllYXI7XG5cbiAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oZnJvbSwgaG92ZXJlZCA/PyB0byk7XG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KGZyb20sIGhvdmVyZWQgPz8gdG8pO1xuXG4gICAgICAgIGlmIChtaW4gPT09IG1heCAmJiBmcm9tID09PSB0byAmJiBmcm9tID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FjdGl2ZSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWluID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3N0YXJ0JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXggPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiAnZW5kJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaW4gPCBpdGVtICYmIGl0ZW0gPCBtYXggPyAnbWlkZGxlJyA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSXRlbUhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZEl0ZW0oaG92ZXJlZCwgaXRlbSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc1JhbmdlUGlja2luZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucmFuZ2VNb2RlICYmXG4gICAgICAgICAgICAodGhpcy52YWx1ZSBpbnN0YW5jZW9mIFR1aURheSB8fCB0aGlzLnZhbHVlIGluc3RhbmNlb2YgVHVpTW9udGgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCByb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoKHRoaXMuY2FsY3VsYXRlZE1heCAtIHRoaXMuY2FsY3VsYXRlZE1pbikgLyBJVEVNU19JTl9ST1cpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzY3JvbGxJdGVtSW50b1ZpZXcoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxJdGVtID09PSBpdGVtO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRJdGVtKHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcm93SW5kZXggKiBJVEVNU19JTl9ST1cgKyBjb2xJbmRleCArIHRoaXMuY2FsY3VsYXRlZE1pbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXRlbUlzVG9kYXkoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyID09PSBpdGVtO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNhbGN1bGF0ZWRNaW4oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaW5pdGlhbCA9IHRoaXMuaW5pdGlhbEl0ZW0gLSBMSU1JVDtcbiAgICAgICAgY29uc3QgbWluID0gdGhpcy5taW4gPz8gTUlOX1lFQVI7XG5cbiAgICAgICAgcmV0dXJuIG1pbiA+IGluaXRpYWwgPyBtaW4gOiBpbml0aWFsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNhbGN1bGF0ZWRNYXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaW5pdGlhbCA9IHRoaXMuaW5pdGlhbEl0ZW0gKyBMSU1JVDtcbiAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5tYXggPz8gTUFYX1lFQVI7XG5cbiAgICAgICAgcmV0dXJuIG1heCA8IGluaXRpYWwgPyBtYXggKyAxIDogaW5pdGlhbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWRJdGVtKGhvdmVyZWQ6IGJvb2xlYW4sIGl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtID0gaG92ZXJlZCA/IGl0ZW0gOiBudWxsO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAqdHVpUmVwZWF0VGltZXM9XCJsZXQgcm93SW5kZXggb2Ygcm93c1wiXG4gICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhci15ZWFyX19yb3dcIlxuICAgIGNsYXNzPVwidC1yb3dcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnR1aVJlcGVhdFRpbWVzPVwibGV0IGNvbEluZGV4IG9mIDRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKnR1aUxldD1cImdldEl0ZW0ocm93SW5kZXgsIGNvbEluZGV4KSBhcyBpdGVtXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXIteWVhcl9fY2VsbFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY2VsbFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXJhbmdlXT1cImdldEl0ZW1SYW5nZShpdGVtKVwiXG4gICAgICAgICAgICBbY2xhc3MudC1jZWxsX2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgW2NsYXNzLnQtY2VsbF90b2RheV09XCJpdGVtSXNUb2RheShpdGVtKVwiXG4gICAgICAgICAgICBbdHVpU2Nyb2xsSW50b1ZpZXddPVwic2Nyb2xsSXRlbUludG9WaWV3KGl0ZW0pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ5ZWFyQ2xpY2suZW1pdChpdGVtKVwiXG4gICAgICAgICAgICAodHVpSG92ZXJlZENoYW5nZSk9XCJvbkl0ZW1Ib3ZlcmVkKCRldmVudCwgaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIteWVhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIteWVhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBRXJELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNsQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQztBQUVsRCxNQVlhLGVB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SERjYyxVQUFVLDhGQUFFLE1BQU0seUVBQUUsY0FBYyw2R0FBRSxpQkFBaUI7O1NBU3RELGVBQWU7NEZBQWYsZUFBZTtrQkFaM0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sbUJBQW1CLFdBQ3BCLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLENBQUMsbUJBRy9DLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGlCQUFpQixDQUFDLFFBQ3RDO3dCQUNGLGtCQUFrQixFQUFFLGtCQUFrQjtxQkFDekM7OEJBV00sU0FBUztzQkFEZixLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFLVSxTQUFTO3NCQUR4QixNQUFNO2dCQVlJLGlCQUFpQjtzQkFEM0IsS0FBSzt1QkFBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBQztnQkFPdEUsU0FBUztzQkFEbkIsS0FBSzt1QkFBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBQztnQkFPMUQsU0FBUztzQkFEbkIsS0FBSzt1QkFBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBQztnQkFPMUQsV0FBVztzQkFEckIsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlEYXlSYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgICBNQVhfWUVBUixcbiAgICBNSU5fWUVBUixcbiAgICBUdWlEYXksXG4gICAgVHVpTW9udGgsXG4gICAgVHVpTW9udGhSYW5nZSxcbiAgICBUdWlZZWFyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge1R1aUhvdmVyZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9ob3ZlcmVkJztcbmltcG9ydCB7VHVpTGV0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvbGV0JztcbmltcG9ydCB7VHVpUmVwZWF0VGltZXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9yZXBlYXQtdGltZXMnO1xuaW1wb3J0IHR5cGUge1R1aUJvb2xlYW5IYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSXNOdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aVNjcm9sbEludG9WaWV3fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Njcm9sbGJhcic7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcyc7XG5pbXBvcnQge3R1aUFzQXV4aWxpYXJ5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuXG5jb25zdCBMSU1JVCA9IDEwMDtcbmNvbnN0IElURU1TX0lOX1JPVyA9IDQ7XG5jb25zdCBDVVJSRU5UX1lFQVIgPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKS55ZWFyO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWNhbGVuZGFyLXllYXInLFxuICAgIGltcG9ydHM6IFtUdWlIb3ZlcmVkLCBUdWlMZXQsIFR1aVJlcGVhdFRpbWVzLCBUdWlTY3JvbGxJbnRvVmlld10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXllYXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIteWVhci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNBdXhpbGlhcnkoVHVpQ2FsZW5kYXJZZWFyKV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLl9waWNraW5nXSc6ICdpc1JhbmdlUGlja2luZygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhclllYXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG92ZXJlZEl0ZW0gPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNSYW5nZVBpY2tpbmcgPSBjb21wdXRlZChcbiAgICAgICAgKHggPSB0aGlzLnZhbHVlKCkpID0+XG4gICAgICAgICAgICB0aGlzLnJhbmdlTW9kZSAmJiAoeCBpbnN0YW5jZW9mIFR1aURheSB8fCB4IGluc3RhbmNlb2YgVHVpTW9udGgpLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByYW5nZU1vZGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPG51bWJlcj4gPVxuICAgICAgICBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKS5kaXNhYmxlZEl0ZW1IYW5kbGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgeWVhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5pdGlhbEl0ZW0gPSBzaWduYWw8bnVtYmVyPihDVVJSRU5UX1lFQVIpO1xuICAgIHB1YmxpYyByZWFkb25seSBtaW4gPSBzaWduYWwoTUlOX1lFQVIpO1xuICAgIHB1YmxpYyByZWFkb25seSBtYXggPSBzaWduYWwoTUFYX1lFQVIpO1xuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDxcbiAgICAgICAgVHVpRGF5UmFuZ2UgfCBUdWlNb250aFJhbmdlIHwgVHVpWWVhciB8IG51bWJlciB8IHJlYWRvbmx5IFR1aURheVtdIHwgbnVsbFxuICAgID4obnVsbCk7XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoe2FsaWFzOiAnaW5pdGlhbEl0ZW0nLCB0cmFuc2Zvcm06ICh4OiBudW1iZXIgfCBudWxsKSA9PiB4ID8/IENVUlJFTlRfWUVBUn0pXG4gICAgcHVibGljIHNldCBpbml0aWFsSXRlbVNldHRlcih4OiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbEl0ZW0uc2V0KHggPz8gQ1VSUkVOVF9ZRUFSKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoe2FsaWFzOiAnbWluJywgdHJhbnNmb3JtOiAoeDogbnVtYmVyIHwgbnVsbCkgPT4geCA/PyBNSU5fWUVBUn0pXG4gICAgcHVibGljIHNldCBtaW5TZXR0ZXIoeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWluLnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoe2FsaWFzOiAnbWF4JywgdHJhbnNmb3JtOiAoeDogbnVtYmVyIHwgbnVsbCkgPT4geCA/PyBNQVhfWUVBUn0pXG4gICAgcHVibGljIHNldCBtYXhTZXR0ZXIoeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWF4LnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ3ZhbHVlJylcbiAgICBwdWJsaWMgc2V0IHZhbHVlU2V0dGVyKFxuICAgICAgICB4OiBUdWlEYXlSYW5nZSB8IFR1aU1vbnRoUmFuZ2UgfCBUdWlZZWFyIHwgbnVtYmVyIHwgcmVhZG9ubHkgVHVpRGF5W10gfCBudWxsLFxuICAgICkge1xuICAgICAgICB0aGlzLnZhbHVlLnNldCh4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEaXNhYmxlZChpdGVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLm1heCgpICYmIHRoaXMubWF4KCkgPCBpdGVtKSB8fFxuICAgICAgICAgICAgKHRoaXMubWluKCkgJiYgdGhpcy5taW4oKSA+IGl0ZW0pIHx8XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SXRlbVJhbmdlKGl0ZW06IG51bWJlcik6ICdhY3RpdmUnIHwgJ2VuZCcgfCAnbWlkZGxlJyB8ICdzdGFydCcgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtID0gdGhpcy5ob3ZlcmVkSXRlbSgpO1xuXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFR1aVllYXIgJiYgdmFsdWUueWVhciA9PT0gaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuICdhY3RpdmUnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR1aUlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBpdGVtID8gJ2FjdGl2ZScgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aFJhbmdlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgVHVpWWVhcikpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZT8uZmluZCgoZGF5KSA9PiBkYXkueWVhciA9PT0gaXRlbSkgPyAnYWN0aXZlJyA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBob3ZlcmVkID0gdGhpcy5pc1JhbmdlUGlja2luZygpID8gaG92ZXJlZEl0ZW0gOiBudWxsO1xuICAgICAgICBjb25zdCBmcm9tID0gJ2Zyb20nIGluIHZhbHVlID8gdmFsdWUuZnJvbT8ueWVhciA6IHZhbHVlLnllYXI7XG4gICAgICAgIGNvbnN0IHRvID0gJ2Zyb20nIGluIHZhbHVlID8gdmFsdWUudG8ueWVhciA6IHZhbHVlLnllYXI7XG5cbiAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oZnJvbSwgaG92ZXJlZCA/PyB0byk7XG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KGZyb20sIGhvdmVyZWQgPz8gdG8pO1xuXG4gICAgICAgIGlmIChtaW4gPT09IG1heCAmJiBmcm9tID09PSB0byAmJiBmcm9tID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FjdGl2ZSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWluID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3N0YXJ0JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXggPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiAnZW5kJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaW4gPCBpdGVtICYmIGl0ZW0gPCBtYXggPyAnbWlkZGxlJyA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSXRlbUhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG92ZXJlZEl0ZW0uc2V0KGhvdmVyZWQgPyBpdGVtIDogbnVsbCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCByb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoKHRoaXMuY2FsY3VsYXRlZE1heCAtIHRoaXMuY2FsY3VsYXRlZE1pbikgLyBJVEVNU19JTl9ST1cpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzY3JvbGxJdGVtSW50b1ZpZXcoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxJdGVtKCkgPT09IGl0ZW07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEl0ZW0ocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiByb3dJbmRleCAqIElURU1TX0lOX1JPVyArIGNvbEluZGV4ICsgdGhpcy5jYWxjdWxhdGVkTWluO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpdGVtSXNUb2RheShpdGVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIENVUlJFTlRfWUVBUiA9PT0gaXRlbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYWxjdWxhdGVkTWluKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLmluaXRpYWxJdGVtKCkgLSBMSU1JVDtcbiAgICAgICAgY29uc3QgbWluID0gdGhpcy5taW4oKSA/PyBNSU5fWUVBUjtcblxuICAgICAgICByZXR1cm4gbWluID4gaW5pdGlhbCA/IG1pbiA6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY2FsY3VsYXRlZE1heCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBpbml0aWFsID0gdGhpcy5pbml0aWFsSXRlbSgpICsgTElNSVQ7XG4gICAgICAgIGNvbnN0IG1heCA9IHRoaXMubWF4KCkgPz8gTUFYX1lFQVI7XG5cbiAgICAgICAgcmV0dXJuIG1heCA8IGluaXRpYWwgPyBtYXggKyAxIDogaW5pdGlhbDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKnR1aVJlcGVhdFRpbWVzPVwibGV0IHJvd0luZGV4IG9mIHJvd3NcIlxuICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXIteWVhcl9fcm93XCJcbiAgICBjbGFzcz1cInQtcm93XCJcbj5cbiAgICA8bmctY29udGFpbmVyICp0dWlSZXBlYXRUaW1lcz1cImxldCBjb2xJbmRleCBvZiA0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICp0dWlMZXQ9XCJnZXRJdGVtKHJvd0luZGV4LCBjb2xJbmRleCkgYXMgaXRlbVwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXllYXJfX2NlbGxcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNlbGxcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1yYW5nZV09XCJnZXRJdGVtUmFuZ2UoaXRlbSlcIlxuICAgICAgICAgICAgW2NsYXNzLnQtY2VsbF9kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWNlbGxfdG9kYXldPVwiaXRlbUlzVG9kYXkoaXRlbSlcIlxuICAgICAgICAgICAgW3R1aVNjcm9sbEludG9WaWV3XT1cInNjcm9sbEl0ZW1JbnRvVmlldyhpdGVtKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwieWVhckNsaWNrLmVtaXQoaXRlbSlcIlxuICAgICAgICAgICAgKHR1aUhvdmVyZWRDaGFuZ2UpPVwib25JdGVtSG92ZXJlZCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -100,7 +100,7 @@ class TuiCalendar {
100
100
  this.hoveredItemChange.emit(day);
101
101
  }
102
102
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "hoveredItem", "showAdjacent", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["value", "initialItem", "min", "max", "rangeMode", "disabledItemHandler"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "hoveredItem", "showAdjacent", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["rangeMode", "disabledItemHandler", "initialItem", "min", "max", "value"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
104
  }
105
105
  export { TuiCalendar };
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendar, decorators: [{
@@ -114,7 +114,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
114
114
  TuiScrollbar,
115
115
  ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendar)], host: {
116
116
  '(pointerdown.prevent.zoneless)': '0',
117
- }, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"] }]
117
+ }, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"] }]
118
118
  }], propDecorators: { month: [{
119
119
  type: Input
120
120
  }], disabledItemHandler: [{
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
144
144
  }], initialView: [{
145
145
  type: Input
146
146
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxhQUFhLEVBQ2IsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sUUFBUSxHQUNYLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHN0IsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwy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QUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBM0lRLFdBQVc7bUdBQVgsV0FBVywwZ0JBTFQsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsMEJDOUM1QywreUNBcUNBLDJVRERRLElBQUksNkZBQ0osZ0JBQWdCLHdOQUNoQixlQUFlLHNJQUNmLGVBQWUscUtBQ2YsYUFBYSxrREFDYixZQUFZOztTQVVQLFdBQVc7NEZBQVgsV0FBVztrQkFuQnZCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGNBQWMsV0FDZjt3QkFDTCxJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsWUFBWTtxQkFDZixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsYUFBYSxDQUFDLFFBQ2xDO3dCQUNGLGdDQUFnQyxFQUFFLEdBQUc7cUJBQ3hDOzhCQVNNLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBS0MsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSVUsUUFBUTtzQkFEdkIsTUFBTTtnQkFJUyxXQUFXO3NCQUQxQixNQUFNO2dCQUlTLGlCQUFpQjtzQkFEaEMsTUFBTTtnQkFPSSxLQUFLO3NCQURmLEtBQUs7Z0JBZUssV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlEYXlSYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUVUlfTEFTVF9ESVNQTEFZRURfREFZLFxuICAgIFR1aURheSxcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlNYXBwZXJQaXBlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3BpcGVzL21hcHBlcic7XG5pbXBvcnQgdHlwZSB7VHVpQm9vbGVhbkhhbmRsZXIsIFR1aU1hcHBlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aU51bGxhYmxlU2FtZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpU2Nyb2xsYmFyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Njcm9sbGJhcic7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcyc7XG5pbXBvcnQge3R1aUFzQXV4aWxpYXJ5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUge1R1aU1hcmtlckhhbmRsZXJ9IGZyb20gJy4vY2FsZW5kYXItc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7VHVpQ2FsZW5kYXJTaGVldH0gZnJvbSAnLi9jYWxlbmRhci1zaGVldC5jb21wb25lbnQnO1xuaW1wb3J0IHtUVUlfQ0FMRU5EQVJfU0hFRVRfT1BUSU9OU30gZnJvbSAnLi9jYWxlbmRhci1zaGVldC5vcHRpb25zJztcbmltcG9ydCB7VHVpQ2FsZW5kYXJTcGlufSBmcm9tICcuL2NhbGVuZGFyLXNwaW4uY29tcG9uZW50JztcbmltcG9ydCB7VHVpQ2FsZW5kYXJZZWFyfSBmcm9tICcuL2NhbGVuZGFyLXllYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1jYWxlbmRhcicsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBUdWlDYWxlbmRhclNoZWV0LFxuICAgICAgICBUdWlDYWxlbmRhclNwaW4sXG4gICAgICAgIFR1aUNhbGVuZGFyWWVhcixcbiAgICAgICAgVHVpTWFwcGVyUGlwZSxcbiAgICAgICAgVHVpU2Nyb2xsYmFyLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt0dWlBc0F1eGlsaWFyeShUdWlDYWxlbmRhcildLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhwb2ludGVyZG93bi5wcmV2ZW50LnpvbmVsZXNzKSc6ICcwJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgZGF5OiBUdWlEYXkgfCBUdWlEYXlSYW5nZSB8IHJlYWRvbmx5IFR1aURheVtdIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSB2aWV3OiAnbW9udGgnIHwgJ3llYXInID0gJ21vbnRoJztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfQ0FMRU5EQVJfU0hFRVRfT1BUSU9OUyk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb250aDogVHVpTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPVxuICAgICAgICBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKS5kaXNhYmxlZEl0ZW1IYW5kbGVyKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW46IFR1aURheSB8IG51bGwgPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4OiBUdWlEYXkgfCBudWxsID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluVmlld2VkTW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IFRVSV9GSVJTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhWaWV3ZWRNb250aDogVHVpTW9udGggfCBudWxsID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaG92ZXJlZEl0ZW06IFR1aURheSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0FkamFjZW50ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBkYXlDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpRGF5PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IG1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlNb250aD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBob3ZlcmVkSXRlbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpRGF5IHwgbnVsbD4oKTtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBmb3IgcHJpdmF0ZSB1c2Ugb25seSB1bnRpbCBDYWxlbmRhcnMgYXJlIHJlZmFjdG9yZWQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgU3ViamVjdDxUdWlEYXk+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFR1aURheSB8IFR1aURheVJhbmdlIHwgcmVhZG9ubHkgVHVpRGF5W10gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLmRheSA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2hvd0FkamFjZW50ICYmXG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFR1aURheSAmJlxuICAgICAgICAgICAgdmFsdWUuZGF5U2FtZU9yQmVmb3JlKFRVSV9MQVNUX0RJU1BMQVlFRF9EQVkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5tb250aCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGluaXRpYWxWaWV3KHZpZXc6ICdtb250aCcgfCAneWVhcicpIHtcbiAgICAgICAgdGhpcy52aWV3ID0gdmlldztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFR1aURheSB8IFR1aURheVJhbmdlIHwgcmVhZG9ubHkgVHVpRGF5W10gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF5O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhZ2luYXRpb25WYWx1ZUNoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3ZWRNb250aChtb250aCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGF5Q2xpY2soZGF5OiBUdWlEYXkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXlDbGljay5lbWl0KGRheSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dChkYXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkhvdmVyZWRJdGVtQ2hhbmdlKGRheTogVHVpRGF5IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWREYXkoZGF5KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWluKCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA/PyBUVUlfRklSU1RfREFZO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRNYXgoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4ID8/IFRVSV9MQVNUX0RBWTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWluVmlld2VkTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICBjb25zdCBtaW4gPSB0aGlzLmNvbXB1dGVkTWluO1xuICAgICAgICBjb25zdCBtaW5WaWV3ZWQgPSB0aGlzLm1pblZpZXdlZE1vbnRoID8/IFRVSV9GSVJTVF9EQVk7XG5cbiAgICAgICAgcmV0dXJuIG1pblZpZXdlZC5tb250aFNhbWVPckFmdGVyKG1pbikgPyBtaW5WaWV3ZWQgOiBtaW47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZE1heFZpZXdlZE1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5jb21wdXRlZE1heDtcbiAgICAgICAgY29uc3QgbWF4Vmlld2VkID0gdGhpcy5tYXhWaWV3ZWRNb250aCA/PyBUVUlfTEFTVF9EQVk7XG5cbiAgICAgICAgcmV0dXJuIG1heFZpZXdlZC5tb250aFNhbWVPckJlZm9yZShtYXgpID8gbWF4Vmlld2VkIDogbWF4O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNJblllYXJWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3ID09PSAneWVhcic7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkSXRlbUhhbmRsZXJNYXBwZXI6IFR1aU1hcHBlcjxcbiAgICAgICAgW1R1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4sIFR1aURheSwgVHVpRGF5XSxcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PlxuICAgID4gPSAoZGlzYWJsZWRJdGVtSGFuZGxlciwgbWluLCBtYXgpID0+IChpdGVtKSA9PlxuICAgICAgICBpdGVtLmRheUJlZm9yZShtaW4pIHx8IGl0ZW0uZGF5QWZ0ZXIobWF4KSB8fCBkaXNhYmxlZEl0ZW1IYW5kbGVyKGl0ZW0pO1xuXG4gICAgcHJvdGVjdGVkIG9uUGFnaW5hdGlvblllYXJDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3ID0gJ3llYXInO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblBpY2tlclllYXJDbGljayh5ZWFyOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3ID0gJ21vbnRoJztcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3ZWRNb250aChuZXcgVHVpTW9udGgoeWVhciwgdGhpcy5tb250aC5tb250aCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmlld2VkTW9udGgobW9udGg6IFR1aU1vbnRoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vbnRoLm1vbnRoU2FtZShtb250aCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KG1vbnRoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWREYXkoZGF5OiBUdWlEYXkgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICh0dWlOdWxsYWJsZVNhbWUodGhpcy5ob3ZlcmVkSXRlbSwgZGF5LCAoYSwgYikgPT4gYS5kYXlTYW1lKGIpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbSA9IGRheTtcbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbUNoYW5nZS5lbWl0KGRheSk7XG4gICAgfVxufVxuIiwiPHR1aS1zY3JvbGxiYXJcbiAgICAqbmdJZj1cImlzSW5ZZWFyVmlldzsgZWxzZSBjYWxlbmRhclwiXG4gICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhcl9fc2Nyb2xsYmFyXCJcbiAgICBjbGFzcz1cInQtc2Nyb2xsYmFyXCJcbj5cbiAgICA8dHVpLWNhbGVuZGFyLXllYXJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhcl9feWVhclwiXG4gICAgICAgIFtpbml0aWFsSXRlbV09XCJtb250aC55ZWFyXCJcbiAgICAgICAgW21heF09XCJjb21wdXRlZE1heC55ZWFyXCJcbiAgICAgICAgW21pbl09XCJjb21wdXRlZE1pbi55ZWFyXCJcbiAgICAgICAgW3JhbmdlTW9kZV09XCJvcHRpb25zLnJhbmdlTW9kZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICh5ZWFyQ2xpY2spPVwib25QaWNrZXJZZWFyQ2xpY2soJGV2ZW50KVwiXG4gICAgLz5cbjwvdHVpLXNjcm9sbGJhcj5cbjxuZy10ZW1wbGF0ZSAjY2FsZW5kYXI+XG4gICAgPHR1aS1jYWxlbmRhci1zcGluXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXJfX3BhZ2luYXRpb25cIlxuICAgICAgICBjbGFzcz1cInQtcGFnaW5hdGlvblwiXG4gICAgICAgIFttYXhdPVwiY29tcHV0ZWRNYXhWaWV3ZWRNb250aFwiXG4gICAgICAgIFttaW5dPVwiY29tcHV0ZWRNaW5WaWV3ZWRNb250aFwiXG4gICAgICAgIFt2YWx1ZV09XCJtb250aFwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblBhZ2luYXRpb25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHllYXJDbGljayk9XCJvblBhZ2luYXRpb25ZZWFyQ2xpY2soKVwiXG4gICAgLz5cbiAgICA8dHVpLWNhbGVuZGFyLXNoZWV0XG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXJfX2NhbGVuZGFyXCJcbiAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlciB8IHR1aU1hcHBlcjogZGlzYWJsZWRJdGVtSGFuZGxlck1hcHBlciA6IGNvbXB1dGVkTWluIDogY29tcHV0ZWRNYXhcIlxuICAgICAgICBbaG92ZXJlZEl0ZW1dPVwiaG92ZXJlZEl0ZW1cIlxuICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgW21vbnRoXT1cIm1vbnRoXCJcbiAgICAgICAgW3Nob3dBZGphY2VudF09XCJzaG93QWRqYWNlbnRcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGhvdmVyZWRJdGVtQ2hhbmdlKT1cIm9uSG92ZXJlZEl0ZW1DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxhQUFhLEVBQ2IsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sUUFBUSxHQUNYLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHN0IsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwy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QUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBM0lRLFdBQVc7bUdBQVgsV0FBVywwZ0JBTFQsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsMEJDOUM1QywreUNBcUNBLHVXRERRLElBQUksNkZBQ0osZ0JBQWdCLHdOQUNoQixlQUFlLHNJQUNmLGVBQWUscUtBQ2YsYUFBYSxrREFDYixZQUFZOztTQVVQLFdBQVc7NEZBQVgsV0FBVztrQkFuQnZCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGNBQWMsV0FDZjt3QkFDTCxJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsWUFBWTtxQkFDZixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsYUFBYSxDQUFDLFFBQ2xDO3dCQUNGLGdDQUFnQyxFQUFFLEdBQUc7cUJBQ3hDOzhCQVNNLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBS0MsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSVUsUUFBUTtzQkFEdkIsTUFBTTtnQkFJUyxXQUFXO3NCQUQxQixNQUFNO2dCQUlTLGlCQUFpQjtzQkFEaEMsTUFBTTtnQkFPSSxLQUFLO3NCQURmLEtBQUs7Z0JBZUssV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlEYXlSYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUVUlfTEFTVF9ESVNQTEFZRURfREFZLFxuICAgIFR1aURheSxcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlNYXBwZXJQaXBlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3BpcGVzL21hcHBlcic7XG5pbXBvcnQgdHlwZSB7VHVpQm9vbGVhbkhhbmRsZXIsIFR1aU1hcHBlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aU51bGxhYmxlU2FtZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpU2Nyb2xsYmFyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Njcm9sbGJhcic7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcyc7XG5pbXBvcnQge3R1aUFzQXV4aWxpYXJ5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUge1R1aU1hcmtlckhhbmRsZXJ9IGZyb20gJy4vY2FsZW5kYXItc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7VHVpQ2FsZW5kYXJTaGVldH0gZnJvbSAnLi9jYWxlbmRhci1zaGVldC5jb21wb25lbnQnO1xuaW1wb3J0IHtUVUlfQ0FMRU5EQVJfU0hFRVRfT1BUSU9OU30gZnJvbSAnLi9jYWxlbmRhci1zaGVldC5vcHRpb25zJztcbmltcG9ydCB7VHVpQ2FsZW5kYXJTcGlufSBmcm9tICcuL2NhbGVuZGFyLXNwaW4uY29tcG9uZW50JztcbmltcG9ydCB7VHVpQ2FsZW5kYXJZZWFyfSBmcm9tICcuL2NhbGVuZGFyLXllYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1jYWxlbmRhcicsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBUdWlDYWxlbmRhclNoZWV0LFxuICAgICAgICBUdWlDYWxlbmRhclNwaW4sXG4gICAgICAgIFR1aUNhbGVuZGFyWWVhcixcbiAgICAgICAgVHVpTWFwcGVyUGlwZSxcbiAgICAgICAgVHVpU2Nyb2xsYmFyLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt0dWlBc0F1eGlsaWFyeShUdWlDYWxlbmRhcildLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhwb2ludGVyZG93bi5wcmV2ZW50LnpvbmVsZXNzKSc6ICcwJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgZGF5OiBUdWlEYXkgfCBUdWlEYXlSYW5nZSB8IHJlYWRvbmx5IFR1aURheVtdIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSB2aWV3OiAnbW9udGgnIHwgJ3llYXInID0gJ21vbnRoJztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfQ0FMRU5EQVJfU0hFRVRfT1BUSU9OUyk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb250aDogVHVpTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPVxuICAgICAgICBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKS5kaXNhYmxlZEl0ZW1IYW5kbGVyKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW46IFR1aURheSB8IG51bGwgPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4OiBUdWlEYXkgfCBudWxsID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluVmlld2VkTW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IFRVSV9GSVJTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhWaWV3ZWRNb250aDogVHVpTW9udGggfCBudWxsID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaG92ZXJlZEl0ZW06IFR1aURheSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0FkamFjZW50ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBkYXlDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpRGF5PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IG1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlNb250aD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBob3ZlcmVkSXRlbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpRGF5IHwgbnVsbD4oKTtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBmb3IgcHJpdmF0ZSB1c2Ugb25seSB1bnRpbCBDYWxlbmRhcnMgYXJlIHJlZmFjdG9yZWQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgU3ViamVjdDxUdWlEYXk+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFR1aURheSB8IFR1aURheVJhbmdlIHwgcmVhZG9ubHkgVHVpRGF5W10gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLmRheSA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2hvd0FkamFjZW50ICYmXG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFR1aURheSAmJlxuICAgICAgICAgICAgdmFsdWUuZGF5U2FtZU9yQmVmb3JlKFRVSV9MQVNUX0RJU1BMQVlFRF9EQVkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5tb250aCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGluaXRpYWxWaWV3KHZpZXc6ICdtb250aCcgfCAneWVhcicpIHtcbiAgICAgICAgdGhpcy52aWV3ID0gdmlldztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFR1aURheSB8IFR1aURheVJhbmdlIHwgcmVhZG9ubHkgVHVpRGF5W10gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF5O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhZ2luYXRpb25WYWx1ZUNoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3ZWRNb250aChtb250aCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGF5Q2xpY2soZGF5OiBUdWlEYXkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXlDbGljay5lbWl0KGRheSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dChkYXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkhvdmVyZWRJdGVtQ2hhbmdlKGRheTogVHVpRGF5IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWREYXkoZGF5KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWluKCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA/PyBUVUlfRklSU1RfREFZO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRNYXgoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4ID8/IFRVSV9MQVNUX0RBWTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWluVmlld2VkTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICBjb25zdCBtaW4gPSB0aGlzLmNvbXB1dGVkTWluO1xuICAgICAgICBjb25zdCBtaW5WaWV3ZWQgPSB0aGlzLm1pblZpZXdlZE1vbnRoID8/IFRVSV9GSVJTVF9EQVk7XG5cbiAgICAgICAgcmV0dXJuIG1pblZpZXdlZC5tb250aFNhbWVPckFmdGVyKG1pbikgPyBtaW5WaWV3ZWQgOiBtaW47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZE1heFZpZXdlZE1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5jb21wdXRlZE1heDtcbiAgICAgICAgY29uc3QgbWF4Vmlld2VkID0gdGhpcy5tYXhWaWV3ZWRNb250aCA/PyBUVUlfTEFTVF9EQVk7XG5cbiAgICAgICAgcmV0dXJuIG1heFZpZXdlZC5tb250aFNhbWVPckJlZm9yZShtYXgpID8gbWF4Vmlld2VkIDogbWF4O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNJblllYXJWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3ID09PSAneWVhcic7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkSXRlbUhhbmRsZXJNYXBwZXI6IFR1aU1hcHBlcjxcbiAgICAgICAgW1R1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4sIFR1aURheSwgVHVpRGF5XSxcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PlxuICAgID4gPSAoZGlzYWJsZWRJdGVtSGFuZGxlciwgbWluLCBtYXgpID0+IChpdGVtKSA9PlxuICAgICAgICBpdGVtLmRheUJlZm9yZShtaW4pIHx8IGl0ZW0uZGF5QWZ0ZXIobWF4KSB8fCBkaXNhYmxlZEl0ZW1IYW5kbGVyKGl0ZW0pO1xuXG4gICAgcHJvdGVjdGVkIG9uUGFnaW5hdGlvblllYXJDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3ID0gJ3llYXInO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblBpY2tlclllYXJDbGljayh5ZWFyOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3ID0gJ21vbnRoJztcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3ZWRNb250aChuZXcgVHVpTW9udGgoeWVhciwgdGhpcy5tb250aC5tb250aCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmlld2VkTW9udGgobW9udGg6IFR1aU1vbnRoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vbnRoLm1vbnRoU2FtZShtb250aCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KG1vbnRoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWREYXkoZGF5OiBUdWlEYXkgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICh0dWlOdWxsYWJsZVNhbWUodGhpcy5ob3ZlcmVkSXRlbSwgZGF5LCAoYSwgYikgPT4gYS5kYXlTYW1lKGIpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbSA9IGRheTtcbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbUNoYW5nZS5lbWl0KGRheSk7XG4gICAgfVxufVxuIiwiPHR1aS1zY3JvbGxiYXJcbiAgICAqbmdJZj1cImlzSW5ZZWFyVmlldzsgZWxzZSBjYWxlbmRhclwiXG4gICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhcl9fc2Nyb2xsYmFyXCJcbiAgICBjbGFzcz1cInQtc2Nyb2xsYmFyXCJcbj5cbiAgICA8dHVpLWNhbGVuZGFyLXllYXJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhcl9feWVhclwiXG4gICAgICAgIFtpbml0aWFsSXRlbV09XCJtb250aC55ZWFyXCJcbiAgICAgICAgW21heF09XCJjb21wdXRlZE1heC55ZWFyXCJcbiAgICAgICAgW21pbl09XCJjb21wdXRlZE1pbi55ZWFyXCJcbiAgICAgICAgW3JhbmdlTW9kZV09XCJvcHRpb25zLnJhbmdlTW9kZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICh5ZWFyQ2xpY2spPVwib25QaWNrZXJZZWFyQ2xpY2soJGV2ZW50KVwiXG4gICAgLz5cbjwvdHVpLXNjcm9sbGJhcj5cbjxuZy10ZW1wbGF0ZSAjY2FsZW5kYXI+XG4gICAgPHR1aS1jYWxlbmRhci1zcGluXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXJfX3BhZ2luYXRpb25cIlxuICAgICAgICBjbGFzcz1cInQtcGFnaW5hdGlvblwiXG4gICAgICAgIFttYXhdPVwiY29tcHV0ZWRNYXhWaWV3ZWRNb250aFwiXG4gICAgICAgIFttaW5dPVwiY29tcHV0ZWRNaW5WaWV3ZWRNb250aFwiXG4gICAgICAgIFt2YWx1ZV09XCJtb250aFwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblBhZ2luYXRpb25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHllYXJDbGljayk9XCJvblBhZ2luYXRpb25ZZWFyQ2xpY2soKVwiXG4gICAgLz5cbiAgICA8dHVpLWNhbGVuZGFyLXNoZWV0XG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXJfX2NhbGVuZGFyXCJcbiAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlciB8IHR1aU1hcHBlcjogZGlzYWJsZWRJdGVtSGFuZGxlck1hcHBlciA6IGNvbXB1dGVkTWluIDogY29tcHV0ZWRNYXhcIlxuICAgICAgICBbaG92ZXJlZEl0ZW1dPVwiaG92ZXJlZEl0ZW1cIlxuICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgW21vbnRoXT1cIm1vbnRoXCJcbiAgICAgICAgW3Nob3dBZGphY2VudF09XCJzaG93QWRqYWNlbnRcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGhvdmVyZWRJdGVtQ2hhbmdlKT1cIm9uSG92ZXJlZEl0ZW1DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -59,7 +59,7 @@ class TuiRoot {
59
59
  : !this.isChildRoot;
60
60
  }
61
61
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.46.0" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(isTopLayer)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\"><ng-content /></div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.47.0" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(isTopLayer)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
63
63
  }
64
64
  export { TuiRoot };
65
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
@@ -80,6 +80,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
80
80
  // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490
81
81
  '(touchstart.passive.zoneless)': '0',
82
82
  '(document:fullscreenchange)': 'top.set(isTopLayer)',
83
- }, template: "<div class=\"t-root-content\"><ng-content /></div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
83
+ }, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
84
84
  }], ctorParameters: function () { return []; } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvcm9vdC9yb290LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9yb290L3Jvb3QudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFBeEQsd0RBQXdEO0FBQ3hELE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixNQUFNLEVBQ04saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUNILHFCQUFx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QUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDbEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDeEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDOytHQTFEUSxPQUFPO21HQUFQLE9BQU8seWZDOURwQix1aEJBaUJBLDI0Q0RxQlEsSUFBSSw2RkFDSixTQUFTLHVEQUNULFVBQVUsd0RBQ1YsWUFBWSwwREFDWixRQUFRLHNEQUNSLFNBQVMsdURBQ1QsaUJBQWlCOztTQWtCWixPQUFPOzRGQUFQLE9BQU87a0JBNUJuQixTQUFTO2lDQUNNLElBQUksWUFDTixVQUFVLFdBQ1g7d0JBQ0wsSUFBSTt3QkFDSixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsaUJBQWlCO3FCQUNwQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUVwQix1QkFBdUIsQ0FBQyxPQUFPLGtCQUNoQyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLENBQUMsUUFDdkQ7d0JBQ0Ysa0JBQWtCLEVBQUUsV0FBVzt3QkFDL0IsMkJBQTJCLEVBQUUsVUFBVTt3QkFDdkMsK0JBQStCLEVBQUUsbUNBQW1DO3dCQUNwRSxpQkFBaUIsRUFBRSxlQUFlO3dCQUNsQyx5RkFBeUY7d0JBQ3pGLCtCQUErQixFQUFFLEdBQUc7d0JBQ3BDLDZCQUE2QixFQUFFLHFCQUFxQjtxQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cIkB0YWlnYS11aS90c2NvbmZpZy9uZy1kZXYtbW9kZVwiIC8+XG5pbXBvcnQge0RPQ1VNRU5ULCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgaW5qZWN0LFxuICAgIFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7RVZFTlRfTUFOQUdFUl9QTFVHSU5TfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7VFVJX1ZFUlNJT059IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpRm9udFNpemV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9mb250LXNpemUnO1xuaW1wb3J0IHtUdWlQbGF0Zm9ybX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3BsYXRmb3JtJztcbmltcG9ydCB7VHVpVmlzdWFsVmlld3BvcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy92aXN1YWwtdmlld3BvcnQnO1xuaW1wb3J0IHt0dWlXYXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtUdWlBbGVydHN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYWxlcnQnO1xuaW1wb3J0IHtUdWlEaWFsb2dzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQge1xuICAgIFRVSV9TQ1JPTExCQVJfT1BUSU9OUyxcbiAgICBUdWlTY3JvbGxDb250cm9scyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHtUdWlEcm9wZG93bnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHtUdWlIaW50c30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50JztcbmltcG9ydCB7VHVpUG9wdXBzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3BvcHVwJztcbmltcG9ydCB7VHVpQnJlYWtwb2ludFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3NlcnZpY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTlNfU1BFRUQsIFRVSV9SRURVQ0VEX01PVElPTiwgVFVJX1RIRU1FfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlHZXREdXJhdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtQcmV2ZW50RXZlbnRQbHVnaW59IGZyb20gJ0B0YWlnYS11aS9ldmVudC1wbHVnaW5zJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1yb290JyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFR1aUFsZXJ0cyxcbiAgICAgICAgVHVpRGlhbG9ncyxcbiAgICAgICAgVHVpRHJvcGRvd25zLFxuICAgICAgICBUdWlIaW50cyxcbiAgICAgICAgVHVpUG9wdXBzLFxuICAgICAgICBUdWlTY3JvbGxDb250cm9scyxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yb290LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FuaW1hdGlvbnMubGVzcycsICcuL3Jvb3Quc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItb24tcHVzaC1jb21wb25lbnQtY2hhbmdlLWRldGVjdGlvblxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aVBsYXRmb3JtLCBUdWlWaXN1YWxWaWV3cG9ydCwgVHVpRm9udFNpemVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2RhdGEtdHVpLXZlcnNpb24nOiBUVUlfVkVSU0lPTixcbiAgICAgICAgJ1tzdHlsZS4tLXR1aS1kdXJhdGlvbi5tc10nOiAnZHVyYXRpb24nLFxuICAgICAgICAnW3N0eWxlLi0tdHVpLXNjcm9sbC1iZWhhdmlvcl0nOiAncmVkdWNlZE1vdGlvbiA/IFwiYXV0b1wiIDogXCJzbW9vdGhcIicsXG4gICAgICAgICdbY2xhc3MuX21vYmlsZV0nOiAnaXNNb2JpbGVSZXMoKScsXG4gICAgICAgIC8vIFJlcXVpcmVkIGZvciB0aGUgOmFjdGl2ZSBzdGF0ZSB0byB3b3JrIGluIFNhZmFyaS4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzMzNjgxNDkwXG4gICAgICAgICcodG91Y2hzdGFydC5wYXNzaXZlLnpvbmVsZXNzKSc6ICcwJyxcbiAgICAgICAgJyhkb2N1bWVudDpmdWxsc2NyZWVuY2hhbmdlKSc6ICd0b3Auc2V0KGlzVG9wTGF5ZXIpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSb290IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvYyA9IGluamVjdChET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVkdWNlZE1vdGlvbiA9IGluamVjdChUVUlfUkVEVUNFRF9NT1RJT04pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkdXJhdGlvbiA9IHR1aUdldER1cmF0aW9uKGluamVjdChUVUlfQU5JTUFUSU9OU19TUEVFRCkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NoaWxkUm9vdCA9ICEhaW5qZWN0KFR1aVJvb3QsIHtvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWV9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9wID0gc2lnbmFsKCF0aGlzLmlzQ2hpbGRSb290KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGVSZXMgPSB0b1NpZ25hbChcbiAgICAgICAgaW5qZWN0KFR1aUJyZWFrcG9pbnRTZXJ2aWNlKS5waXBlKFxuICAgICAgICAgICAgbWFwKChicmVha3BvaW50KSA9PiBicmVha3BvaW50ID09PSAnbW9iaWxlJyksXG4gICAgICAgICAgICB0dWlXYXRjaCgpLFxuICAgICAgICApLFxuICAgICAgICB7aW5pdGlhbFZhbHVlOiBmYWxzZX0sXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBuYXRpdmVTY3JvbGxiYXIgPSBpbmplY3QoVFVJX1NDUk9MTEJBUl9PUFRJT05TKS5tb2RlID09PSAnbmF0aXZlJztcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxiYXJzID1cbiAgICAgICAgIXRoaXMubmF0aXZlU2Nyb2xsYmFyICYmICFpbmplY3QoVFVJX0lTX01PQklMRSkgJiYgIXRoaXMuaXNDaGlsZFJvb3Q7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gVE9ETyBtb3ZlIHRvIHByb3ZpZGVUYWlnYSBpbiB2NVxuICAgICAgICBjb25zdCBmYWN0b3J5ID0gaW5qZWN0PGFueT4oUmVuZGVyZXJGYWN0b3J5Mik7XG5cbiAgICAgICAgZmFjdG9yeS5yZW1vdmVTdHlsZXNPbkNvbXBEZXN0cm95ID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGZhY3RvcnkuZGVsZWdhdGUpIHtcbiAgICAgICAgICAgIGZhY3RvcnkuZGVsZWdhdGUucmVtb3ZlU3R5bGVzT25Db21wRGVzdHJveSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnRvcCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgJ2RhdGEtdHVpLXRoZW1lJyxcbiAgICAgICAgICAgIGluamVjdChUVUlfVEhFTUUpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZVNjcm9sbGJhcikge1xuICAgICAgICAgICAgdGhpcy5kb2MuZGVmYXVsdFZpZXc/LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFxuICAgICAgICAgICAgICAgICd0dWktemVyby1zY3JvbGxiYXInLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5nRGV2TW9kZSAmJlxuICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoXG4gICAgICAgICAgICAgICAgISFpbmplY3Q8dW5rbm93bltdPihFVkVOVF9NQU5BR0VSX1BMVUdJTlMpLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChwbHVnaW4pID0+IHBsdWdpbiBpbnN0YW5jZW9mIFByZXZlbnRFdmVudFBsdWdpbixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICdOR19FVkVOVF9QTFVHSU5TIGlzIG1pc3NpbmcgZnJvbSBnbG9iYWwgcHJvdmlkZXJzJyxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc1RvcExheWVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2MuZnVsbHNjcmVlbkVsZW1lbnQ/Lm1hdGNoZXMoJ3R1aS1yb290JylcbiAgICAgICAgICAgID8gdGhpcy5kb2MuZnVsbHNjcmVlbkVsZW1lbnQgPT09IHRoaXMuZWxcbiAgICAgICAgICAgIDogIXRoaXMuaXNDaGlsZFJvb3Q7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInQtcm9vdC1jb250ZW50XCI+PG5nLWNvbnRlbnQgLz48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0b3AoKVwiPlxuICAgIDx0dWktc2Nyb2xsLWNvbnRyb2xzXG4gICAgICAgICpuZ0lmPVwic2Nyb2xsYmFyc1wiXG4gICAgICAgIGNsYXNzPVwidC1yb290LXNjcm9sbGJhclwiXG4gICAgLz5cbiAgICA8dHVpLXBvcHVwcyAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aU92ZXJDb250ZW50XCIgLz5cbiAgICA8dHVpLWRpYWxvZ3MgLz5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWlPdmVyRGlhbG9nc1wiIC8+XG4gICAgPHR1aS1hbGVydHMgLz5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWlPdmVyQWxlcnRzXCIgLz5cbiAgICA8dHVpLWRyb3Bkb3ducyAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aU92ZXJEcm9wZG93bnNcIiAvPlxuICAgIDx0dWktaGludHMgLz5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWlPdmVySGludHNcIiAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvcm9vdC9yb290LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9yb290L3Jvb3QudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFBeEQsd0RBQXdEO0FBQ3hELE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixNQUFNLEVBQ04saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUNILHFCQUFx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QUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDbEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDeEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDOytHQTFEUSxPQUFPO21HQUFQLE9BQU8seWZDOURwQiwraEJBbUJBLDI0Q0RtQlEsSUFBSSw2RkFDSixTQUFTLHVEQUNULFVBQVUsd0RBQ1YsWUFBWSwwREFDWixRQUFRLHNEQUNSLFNBQVMsdURBQ1QsaUJBQWlCOztTQWtCWixPQUFPOzRGQUFQLE9BQU87a0JBNUJuQixTQUFTO2lDQUNNLElBQUksWUFDTixVQUFVLFdBQ1g7d0JBQ0wsSUFBSTt3QkFDSixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsaUJBQWlCO3FCQUNwQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUVwQix1QkFBdUIsQ0FBQyxPQUFPLGtCQUNoQyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLENBQUMsUUFDdkQ7d0JBQ0Ysa0JBQWtCLEVBQUUsV0FBVzt3QkFDL0IsMkJBQTJCLEVBQUUsVUFBVTt3QkFDdkMsK0JBQStCLEVBQUUsbUNBQW1DO3dCQUNwRSxpQkFBaUIsRUFBRSxlQUFlO3dCQUNsQyx5RkFBeUY7d0JBQ3pGLCtCQUErQixFQUFFLEdBQUc7d0JBQ3BDLDZCQUE2QixFQUFFLHFCQUFxQjtxQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cIkB0YWlnYS11aS90c2NvbmZpZy9uZy1kZXYtbW9kZVwiIC8+XG5pbXBvcnQge0RPQ1VNRU5ULCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgaW5qZWN0LFxuICAgIFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7RVZFTlRfTUFOQUdFUl9QTFVHSU5TfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7VFVJX1ZFUlNJT059IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpRm9udFNpemV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9mb250LXNpemUnO1xuaW1wb3J0IHtUdWlQbGF0Zm9ybX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3BsYXRmb3JtJztcbmltcG9ydCB7VHVpVmlzdWFsVmlld3BvcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy92aXN1YWwtdmlld3BvcnQnO1xuaW1wb3J0IHt0dWlXYXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtUdWlBbGVydHN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYWxlcnQnO1xuaW1wb3J0IHtUdWlEaWFsb2dzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQge1xuICAgIFRVSV9TQ1JPTExCQVJfT1BUSU9OUyxcbiAgICBUdWlTY3JvbGxDb250cm9scyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHtUdWlEcm9wZG93bnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHtUdWlIaW50c30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50JztcbmltcG9ydCB7VHVpUG9wdXBzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3BvcHVwJztcbmltcG9ydCB7VHVpQnJlYWtwb2ludFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3NlcnZpY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTlNfU1BFRUQsIFRVSV9SRURVQ0VEX01PVElPTiwgVFVJX1RIRU1FfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlHZXREdXJhdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtQcmV2ZW50RXZlbnRQbHVnaW59IGZyb20gJ0B0YWlnYS11aS9ldmVudC1wbHVnaW5zJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1yb290JyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFR1aUFsZXJ0cyxcbiAgICAgICAgVHVpRGlhbG9ncyxcbiAgICAgICAgVHVpRHJvcGRvd25zLFxuICAgICAgICBUdWlIaW50cyxcbiAgICAgICAgVHVpUG9wdXBzLFxuICAgICAgICBUdWlTY3JvbGxDb250cm9scyxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yb290LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FuaW1hdGlvbnMubGVzcycsICcuL3Jvb3Quc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItb24tcHVzaC1jb21wb25lbnQtY2hhbmdlLWRldGVjdGlvblxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aVBsYXRmb3JtLCBUdWlWaXN1YWxWaWV3cG9ydCwgVHVpRm9udFNpemVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2RhdGEtdHVpLXZlcnNpb24nOiBUVUlfVkVSU0lPTixcbiAgICAgICAgJ1tzdHlsZS4tLXR1aS1kdXJhdGlvbi5tc10nOiAnZHVyYXRpb24nLFxuICAgICAgICAnW3N0eWxlLi0tdHVpLXNjcm9sbC1iZWhhdmlvcl0nOiAncmVkdWNlZE1vdGlvbiA/IFwiYXV0b1wiIDogXCJzbW9vdGhcIicsXG4gICAgICAgICdbY2xhc3MuX21vYmlsZV0nOiAnaXNNb2JpbGVSZXMoKScsXG4gICAgICAgIC8vIFJlcXVpcmVkIGZvciB0aGUgOmFjdGl2ZSBzdGF0ZSB0byB3b3JrIGluIFNhZmFyaS4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzMzNjgxNDkwXG4gICAgICAgICcodG91Y2hzdGFydC5wYXNzaXZlLnpvbmVsZXNzKSc6ICcwJyxcbiAgICAgICAgJyhkb2N1bWVudDpmdWxsc2NyZWVuY2hhbmdlKSc6ICd0b3Auc2V0KGlzVG9wTGF5ZXIpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSb290IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvYyA9IGluamVjdChET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVkdWNlZE1vdGlvbiA9IGluamVjdChUVUlfUkVEVUNFRF9NT1RJT04pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkdXJhdGlvbiA9IHR1aUdldER1cmF0aW9uKGluamVjdChUVUlfQU5JTUFUSU9OU19TUEVFRCkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NoaWxkUm9vdCA9ICEhaW5qZWN0KFR1aVJvb3QsIHtvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWV9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9wID0gc2lnbmFsKCF0aGlzLmlzQ2hpbGRSb290KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGVSZXMgPSB0b1NpZ25hbChcbiAgICAgICAgaW5qZWN0KFR1aUJyZWFrcG9pbnRTZXJ2aWNlKS5waXBlKFxuICAgICAgICAgICAgbWFwKChicmVha3BvaW50KSA9PiBicmVha3BvaW50ID09PSAnbW9iaWxlJyksXG4gICAgICAgICAgICB0dWlXYXRjaCgpLFxuICAgICAgICApLFxuICAgICAgICB7aW5pdGlhbFZhbHVlOiBmYWxzZX0sXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBuYXRpdmVTY3JvbGxiYXIgPSBpbmplY3QoVFVJX1NDUk9MTEJBUl9PUFRJT05TKS5tb2RlID09PSAnbmF0aXZlJztcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxiYXJzID1cbiAgICAgICAgIXRoaXMubmF0aXZlU2Nyb2xsYmFyICYmICFpbmplY3QoVFVJX0lTX01PQklMRSkgJiYgIXRoaXMuaXNDaGlsZFJvb3Q7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gVE9ETyBtb3ZlIHRvIHByb3ZpZGVUYWlnYSBpbiB2NVxuICAgICAgICBjb25zdCBmYWN0b3J5ID0gaW5qZWN0PGFueT4oUmVuZGVyZXJGYWN0b3J5Mik7XG5cbiAgICAgICAgZmFjdG9yeS5yZW1vdmVTdHlsZXNPbkNvbXBEZXN0cm95ID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGZhY3RvcnkuZGVsZWdhdGUpIHtcbiAgICAgICAgICAgIGZhY3RvcnkuZGVsZWdhdGUucmVtb3ZlU3R5bGVzT25Db21wRGVzdHJveSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnRvcCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgJ2RhdGEtdHVpLXRoZW1lJyxcbiAgICAgICAgICAgIGluamVjdChUVUlfVEhFTUUpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZVNjcm9sbGJhcikge1xuICAgICAgICAgICAgdGhpcy5kb2MuZGVmYXVsdFZpZXc/LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFxuICAgICAgICAgICAgICAgICd0dWktemVyby1zY3JvbGxiYXInLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5nRGV2TW9kZSAmJlxuICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoXG4gICAgICAgICAgICAgICAgISFpbmplY3Q8dW5rbm93bltdPihFVkVOVF9NQU5BR0VSX1BMVUdJTlMpLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChwbHVnaW4pID0+IHBsdWdpbiBpbnN0YW5jZW9mIFByZXZlbnRFdmVudFBsdWdpbixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICdOR19FVkVOVF9QTFVHSU5TIGlzIG1pc3NpbmcgZnJvbSBnbG9iYWwgcHJvdmlkZXJzJyxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc1RvcExheWVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2MuZnVsbHNjcmVlbkVsZW1lbnQ/Lm1hdGNoZXMoJ3R1aS1yb290JylcbiAgICAgICAgICAgID8gdGhpcy5kb2MuZnVsbHNjcmVlbkVsZW1lbnQgPT09IHRoaXMuZWxcbiAgICAgICAgICAgIDogIXRoaXMuaXNDaGlsZFJvb3Q7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInQtcm9vdC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvcCgpXCI+XG4gICAgPHR1aS1zY3JvbGwtY29udHJvbHNcbiAgICAgICAgKm5nSWY9XCJzY3JvbGxiYXJzXCJcbiAgICAgICAgY2xhc3M9XCJ0LXJvb3Qtc2Nyb2xsYmFyXCJcbiAgICAvPlxuICAgIDx0dWktcG9wdXBzIC8+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpT3ZlckNvbnRlbnRcIiAvPlxuICAgIDx0dWktZGlhbG9ncyAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aU92ZXJEaWFsb2dzXCIgLz5cbiAgICA8dHVpLWFsZXJ0cyAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aU92ZXJBbGVydHNcIiAvPlxuICAgIDx0dWktZHJvcGRvd25zIC8+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpT3ZlckRyb3Bkb3duc1wiIC8+XG4gICAgPHR1aS1oaW50cyAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aU92ZXJIaW50c1wiIC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==