@taiga-ui/addon-mobile 3.39.1-dev.main.f92cc75 → 3.40.0-canary.fda819a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/README.md +3 -3
  2. package/bundles/taiga-ui-addon-mobile-components-app-bar.umd.js +9 -10
  3. package/bundles/taiga-ui-addon-mobile-components-app-bar.umd.js.map +1 -1
  4. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js +7 -3
  5. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js.map +1 -1
  6. package/bundles/taiga-ui-addon-mobile-components-sheet-dialog.umd.js +7 -3
  7. package/bundles/taiga-ui-addon-mobile-components-sheet-dialog.umd.js.map +1 -1
  8. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +7 -3
  9. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
  10. package/components/mobile-calendar/mobile-calendar.component.d.ts +4 -3
  11. package/components/sheet/components/sheet-heading/sheet-heading.component.d.ts +3 -1
  12. package/components/sheet-dialog/sheet-dialog.component.d.ts +3 -1
  13. package/esm2015/components/app-bar/app-bar-back.component.js +3 -4
  14. package/esm2015/components/mobile-calendar/mobile-calendar.component.js +9 -5
  15. package/esm2015/components/sheet/components/sheet-heading/sheet-heading.component.js +9 -5
  16. package/esm2015/components/sheet-dialog/sheet-dialog.component.js +9 -5
  17. package/fesm2015/taiga-ui-addon-mobile-components-app-bar.js +2 -3
  18. package/fesm2015/taiga-ui-addon-mobile-components-app-bar.js.map +1 -1
  19. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js +8 -4
  20. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
  21. package/fesm2015/taiga-ui-addon-mobile-components-sheet-dialog.js +8 -4
  22. package/fesm2015/taiga-ui-addon-mobile-components-sheet-dialog.js.map +1 -1
  23. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +8 -4
  24. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
  25. package/package.json +6 -6
@@ -1,7 +1,7 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, Self, ViewChild, } from '@angular/core';
3
3
  import { ALWAYS_FALSE_HANDLER, MONTHS_IN_YEAR, TUI_FIRST_DAY, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_LAST_DAY, TuiDay, TuiDayRange, TuiDestroyService, TuiMonth, tuiTypedFromEvent, } from '@taiga-ui/cdk';
4
- import { TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD, TUI_SHORT_WEEK_DAYS, } from '@taiga-ui/core';
4
+ import { TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD, TUI_COMMON_ICONS, TUI_SHORT_WEEK_DAYS, } from '@taiga-ui/core';
5
5
  import { TUI_CANCEL_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS, TUI_DONE_WORD, } from '@taiga-ui/kit';
6
6
  import { identity, race, timer } from 'rxjs';
7
7
  import { debounceTime, delay, filter, map, mergeMap, switchMap, take, takeUntil, windowToggle, } from 'rxjs/operators';
@@ -17,11 +17,12 @@ import * as i6 from "@angular/common";
17
17
  import * as i7 from "@taiga-ui/cdk";
18
18
  import * as i8 from "rxjs";
19
19
  export class TuiMobileCalendarComponent {
20
- constructor(isIOS, isCypress, doc, destroy$, valueChanges, closeWord$, cancelWord$, doneWord$, unorderedWeekDays$, chooseDayOrRangeTexts$, duration) {
20
+ constructor(isIOS, isCypress, doc, destroy$, valueChanges, icons, closeWord$, cancelWord$, doneWord$, unorderedWeekDays$, chooseDayOrRangeTexts$, duration) {
21
21
  this.isIOS = isIOS;
22
22
  this.isCypress = isCypress;
23
23
  this.doc = doc;
24
24
  this.destroy$ = destroy$;
25
+ this.icons = icons;
25
26
  this.closeWord$ = closeWord$;
26
27
  this.cancelWord$ = cancelWord$;
27
28
  this.doneWord$ = doneWord$;
@@ -214,8 +215,8 @@ export class TuiMobileCalendarComponent {
214
215
  return (year - this.activeYear) * MONTHS_IN_YEAR;
215
216
  }
216
217
  }
217
- TuiMobileCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileCalendarComponent, deps: [{ token: TUI_IS_IOS }, { token: TUI_IS_CYPRESS }, { token: DOCUMENT }, { token: TuiDestroyService, self: true }, { token: TUI_VALUE_STREAM }, { token: TUI_CLOSE_WORD }, { token: TUI_CANCEL_WORD }, { token: TUI_DONE_WORD }, { token: TUI_SHORT_WEEK_DAYS }, { token: TUI_CHOOSE_DAY_OR_RANGE_TEXTS }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Component });
218
- TuiMobileCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMobileCalendarComponent, selector: "tui-mobile-calendar", inputs: { single: "single", min: "min", max: "max", disabledItemHandler: "disabledItemHandler" }, outputs: { cancel: "cancel", confirm: "confirm" }, host: { properties: { "class._ios": "isIOS" } }, providers: TUI_MOBILE_CALENDAR_PROVIDERS, viewQueries: [{ propertyName: "yearsScrollRef", first: true, predicate: ["yearsScrollRef"], descendants: true }, { propertyName: "monthsScrollRef", first: true, predicate: ["monthsScrollRef"], descendants: true }], ngImport: i0, template: "<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n icon=\"tuiIconXLarge\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n type=\"button\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerMapper : min : max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\n", styles: [":host{display:block;height:100%;font-family:-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:var(--tui-text-01);-webkit-tap-highlight-color:transparent}.t-header{position:relative;display:flex;align-items:center;height:3.5rem;padding:0 1rem;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-header{height:2.75rem;border-bottom:none}.t-close{width:1.5rem;height:1.5rem;margin-right:2rem}:host._ios .t-close{display:none}.t-link{margin-left:auto;flex-shrink:0;font-size:.875rem;line-height:1rem;font-weight:500;text-transform:uppercase;color:var(--tui-link)}.t-link_close{display:none}:host._ios .t-link{min-width:3.75rem;text-align:right;font-size:.9375rem;line-height:1.125rem;font-weight:400;letter-spacing:.018125rem;text-transform:none}:host._ios .t-link_close{display:block;margin:0 auto 0 0;text-align:left}.t-label{position:relative;overflow:hidden;flex-grow:1;margin:0;font-size:1.25rem;line-height:3.5rem;font-weight:500;letter-spacing:-.0125rem;white-space:nowrap}.t-label:after{content:\"\";position:absolute;top:0;right:0;width:1.875rem;height:100%;background-image:linear-gradient(to right,transparent 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%);pointer-events:none}:host._ios .t-label{font-size:1.0625rem;font-weight:600;letter-spacing:-.025625rem;text-align:center}.t-label:after{background-image:linear-gradient(to right,rgba(255,255,255,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}:host-context([data-mode=\"onDark\"]) .t-label:after{background-image:linear-gradient(to right,rgba(34,34,34,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}.t-years{scrollbar-width:none;-ms-overflow-style:none;height:4.0625rem;background-color:var(--tui-base-01);box-shadow:0 .5px var(--tui-base-03)}.t-years::-webkit-scrollbar,.t-years::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-years{background-color:transparent}.t-years-wrapper{display:flex;height:4.0625rem}.t-year{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;outline:none;width:20vw;flex-shrink:0;font-size:.9375rem;font-weight:700;letter-spacing:.015625rem;cursor:pointer;opacity:.1;transform:scale(.73);transition:color,opacity,transform .2s}.t-year[data-state=adjacent]{transform:scale(.86);opacity:.3}.t-year[data-state=active]{color:var(--tui-link);opacity:1;transform:scale(1)}.t-week{display:flex;align-items:center;height:1.875rem;width:20.75rem;max-width:100%;margin:0 auto;font-size:.75rem}:host._ios .t-week{width:22.625rem;font-size:.6875rem;font-weight:500;color:var(--tui-text-02)}.t-day{flex:1;text-align:center}.t-months{scrollbar-width:none;-ms-overflow-style:none;height:calc(100% - 9.5rem);box-shadow:0 -1px var(--tui-base-03);overflow-x:hidden}.t-months::-webkit-scrollbar,.t-months::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-months{height:calc(100% - 8.75rem)}.t-month-wrapper{margin:.625rem 0 -.625rem}.t-month{height:2.75rem;line-height:2.75rem;padding-left:1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;margin:0 0 1.25rem;box-sizing:border-box;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-month{height:3.125rem;margin:0;border-bottom:none;text-transform:none;font-size:1.375rem;line-height:3.125rem;letter-spacing:.02rem;font-weight:700}.t-calendar{margin:0 auto;font-family:inherit;font-size:1.125rem;transition:opacity .2s}:host._ios .t-calendar{font-size:1.0625rem}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i3.TuiPrimitiveCalendarMobileComponent, selector: "tui-primitive-calendar-mobile" }], directives: [{ type: i4.TuiRippleDirective, selector: "[tuiRipple]", inputs: ["tuiRipple"] }, { type: i5.TuiTouchableDirective, selector: "[tuiTouchable]", inputs: ["tuiTouchable"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "tuiOrderWeekDays": i1.TuiOrderWeekDaysPipe, "tuiMonth": i1.TuiMonthPipe, "tuiMapper": i7.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
218
+ TuiMobileCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileCalendarComponent, deps: [{ token: TUI_IS_IOS }, { token: TUI_IS_CYPRESS }, { token: DOCUMENT }, { token: TuiDestroyService, self: true }, { token: TUI_VALUE_STREAM }, { token: TUI_COMMON_ICONS }, { token: TUI_CLOSE_WORD }, { token: TUI_CANCEL_WORD }, { token: TUI_DONE_WORD }, { token: TUI_SHORT_WEEK_DAYS }, { token: TUI_CHOOSE_DAY_OR_RANGE_TEXTS }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Component });
219
+ TuiMobileCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMobileCalendarComponent, selector: "tui-mobile-calendar", inputs: { single: "single", min: "min", max: "max", disabledItemHandler: "disabledItemHandler" }, outputs: { cancel: "cancel", confirm: "confirm" }, host: { properties: { "class._ios": "isIOS" } }, providers: TUI_MOBILE_CALENDAR_PROVIDERS, viewQueries: [{ propertyName: "yearsScrollRef", first: true, predicate: ["yearsScrollRef"], descendants: true }, { propertyName: "monthsScrollRef", first: true, predicate: ["monthsScrollRef"], descendants: true }], ngImport: i0, template: "<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [icon]=\"icons.close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n type=\"button\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerMapper : min : max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\n", styles: [":host{display:block;height:100%;font-family:-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:var(--tui-text-01);-webkit-tap-highlight-color:transparent}.t-header{position:relative;display:flex;align-items:center;height:3.5rem;padding:0 1rem;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-header{height:2.75rem;border-bottom:none}.t-close{width:1.5rem;height:1.5rem;margin-right:2rem}:host._ios .t-close{display:none}.t-link{margin-left:auto;flex-shrink:0;font-size:.875rem;line-height:1rem;font-weight:500;text-transform:uppercase;color:var(--tui-link)}.t-link_close{display:none}:host._ios .t-link{min-width:3.75rem;text-align:right;font-size:.9375rem;line-height:1.125rem;font-weight:400;letter-spacing:.018125rem;text-transform:none}:host._ios .t-link_close{display:block;margin:0 auto 0 0;text-align:left}.t-label{position:relative;overflow:hidden;flex-grow:1;margin:0;font-size:1.25rem;line-height:3.5rem;font-weight:500;letter-spacing:-.0125rem;white-space:nowrap}.t-label:after{content:\"\";position:absolute;top:0;right:0;width:1.875rem;height:100%;background-image:linear-gradient(to right,transparent 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%);pointer-events:none}:host._ios .t-label{font-size:1.0625rem;font-weight:600;letter-spacing:-.025625rem;text-align:center}.t-label:after{background-image:linear-gradient(to right,rgba(255,255,255,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}:host-context([data-mode=\"onDark\"]) .t-label:after{background-image:linear-gradient(to right,rgba(34,34,34,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}.t-years{scrollbar-width:none;-ms-overflow-style:none;height:4.0625rem;background-color:var(--tui-base-01);box-shadow:0 .5px var(--tui-base-03)}.t-years::-webkit-scrollbar,.t-years::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-years{background-color:transparent}.t-years-wrapper{display:flex;height:4.0625rem}.t-year{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;outline:none;width:20vw;flex-shrink:0;font-size:.9375rem;font-weight:700;letter-spacing:.015625rem;cursor:pointer;opacity:.1;transform:scale(.73);transition:color,opacity,transform .2s}.t-year[data-state=adjacent]{transform:scale(.86);opacity:.3}.t-year[data-state=active]{color:var(--tui-link);opacity:1;transform:scale(1)}.t-week{display:flex;align-items:center;height:1.875rem;width:20.75rem;max-width:100%;margin:0 auto;font-size:.75rem}:host._ios .t-week{width:22.625rem;font-size:.6875rem;font-weight:500;color:var(--tui-text-02)}.t-day{flex:1;text-align:center}.t-months{scrollbar-width:none;-ms-overflow-style:none;height:calc(100% - 9.5rem);box-shadow:0 -1px var(--tui-base-03);overflow-x:hidden}.t-months::-webkit-scrollbar,.t-months::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-months{height:calc(100% - 8.75rem)}.t-month-wrapper{margin:.625rem 0 -.625rem}.t-month{height:2.75rem;line-height:2.75rem;padding-left:1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;margin:0 0 1.25rem;box-sizing:border-box;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-month{height:3.125rem;margin:0;border-bottom:none;text-transform:none;font-size:1.375rem;line-height:3.125rem;letter-spacing:.02rem;font-weight:700}.t-calendar{margin:0 auto;font-family:inherit;font-size:1.125rem;transition:opacity .2s}:host._ios .t-calendar{font-size:1.0625rem}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i3.TuiPrimitiveCalendarMobileComponent, selector: "tui-primitive-calendar-mobile" }], directives: [{ type: i4.TuiRippleDirective, selector: "[tuiRipple]", inputs: ["tuiRipple"] }, { type: i5.TuiTouchableDirective, selector: "[tuiTouchable]", inputs: ["tuiTouchable"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "tuiOrderWeekDays": i1.TuiOrderWeekDaysPipe, "tuiMonth": i1.TuiMonthPipe, "tuiMapper": i7.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
219
220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileCalendarComponent, decorators: [{
220
221
  type: Component,
221
222
  args: [{
@@ -243,6 +244,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
243
244
  }] }, { type: i8.Observable, decorators: [{
244
245
  type: Inject,
245
246
  args: [TUI_VALUE_STREAM]
247
+ }] }, { type: undefined, decorators: [{
248
+ type: Inject,
249
+ args: [TUI_COMMON_ICONS]
246
250
  }] }, { type: i8.Observable, decorators: [{
247
251
  type: Inject,
248
252
  args: [TUI_CLOSE_WORD]
@@ -280,4 +284,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
280
284
  }], confirm: [{
281
285
  type: Output
282
286
  }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL21vYmlsZS1jYWxlbmRhci9tb2JpbGUtY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2NvbXBvbmVudHMvbW9iaWxlLWNhbGVuZGFyL21vYmlsZS1jYWxlbmRhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsY0FBYyxFQUNkLFVBQVUsRUFDVixZQUFZLEVBRVosTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsRUFHakIsUUFBUSxFQUNSLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxtQkFBbUIsR0FDdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0gsZUFBZSxFQUNmLDZCQUE2QixFQUM3QixhQUFhLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQXdDLElBQUksRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUNILFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILEtBQUssRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFlBQVksR0FDZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsZ0JBQWdCLEdBQ25CLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFVckMsTUFBTSxPQUFPLDBCQUEwQjtJQTBDbkMsWUFDaUMsS0FBYyxFQUNWLFNBQWtCLEVBQ2hCLEdBQWEsRUFHL0IsUUFBMkIsRUFDbEIsWUFBNEMsRUFDckMsVUFBOEIsRUFDN0IsV0FBK0IsRUFDakMsU0FBNkIsRUFFcEQsa0JBQXFFLEVBRXJFLHNCQUFvRCxFQUNYLFFBQWdCO1FBZHJDLFVBQUssR0FBTCxLQUFLLENBQVM7UUFDVixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFHL0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFFWCxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFFcEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtRDtRQUVyRSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQThCO1FBQ1gsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQWxEckQsVUFBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFHeEIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdkLFFBQUcsR0FBRyxhQUFhLENBQUM7UUFHcEIsUUFBRyxHQUFHLFlBQVksQ0FBQztRQUduQix3QkFBbUIsR0FBOEIsb0JBQW9CLENBQUM7UUFHN0QsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHbEMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRTVELFVBQUssR0FBZ0MsSUFBSSxDQUFDO1FBRWpDLFVBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBRWpFLFdBQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUN4QixFQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFDLEVBQ3BCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ0wsSUFBSSxRQUFRLENBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLEdBQUcsYUFBYSxFQUM5QyxDQUFDLEdBQUcsY0FBYyxDQUNyQixDQUNSLENBQUM7UUFpSE8sOEJBQXlCLEdBRzlCLENBQUMsbUJBQW1CLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDbkIsQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFwRzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUM7SUFDL0QsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXJDLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFFakIsT0FBTztTQUNWO1FBRUQsSUFDSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUk7WUFDbkIsSUFBSSxDQUFDLEtBQUssWUFBWSxNQUFNO1lBQzVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQ3pCO1lBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFdkMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzlELE9BQU8sVUFBVSxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQ3RDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXpCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0MsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNoQyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVk7UUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUMxQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxDLDhFQUE4RTtRQUM5RSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBVUQsSUFBWSxXQUFXO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztTQUMxQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssWUFBWSxNQUFNLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztTQUMxQjtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDO1NBQ2hGO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxZQUFZLE1BQU0sRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDO1NBQ2hGO1FBRUQsT0FBTyxDQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDckIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUMxRCxDQUFDO0lBQ04sQ0FBQztJQUVPLG9CQUFvQjs7UUFDeEIsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsZUFBZSxFQUFFLEtBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyx1QkFBdUI7O1FBQzNCLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QyxNQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLGlCQUFpQixFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVPLFFBQVE7UUFDWixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLGtCQUFrQjs7UUFDdEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFL0IsTUFBQSxJQUFJLENBQUMsZUFBZSwwQ0FBRSxtQkFBbUIsQ0FDcEMsSUFBSSxDQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFFM0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sY0FBYztRQUNsQixNQUFNLEVBQUMsY0FBYyxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRTlCLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakIsT0FBTztTQUNWO1FBRUQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQ2pDLGNBQWMsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUN2QyxZQUFZLENBQ2YsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUMvQixjQUFjLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDdkMsVUFBVSxDQUNiLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FDNUIsY0FBYyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQ3ZDLE9BQU8sQ0FDVixDQUFDO1FBRUYscUJBQXFCO1FBQ3JCLGNBQWM7YUFDVCxlQUFlLEVBQUU7YUFDakIsSUFBSTtRQUNELDhEQUE4RDtRQUM5RCxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUN2QyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEIsOEVBQThFO1FBQzlFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixHQUFHLENBQ0MsR0FBRyxFQUFFLENBQ0QsSUFBSSxDQUFDLEtBQUssQ0FDTixjQUFjLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUN4RDtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUM1QixhQUFhLENBQ3BCLEVBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDcEQsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRVAsc0RBQXNEO1FBQ3RELFdBQVc7YUFDTixJQUFJLENBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQ1gsSUFBSSxDQUNBLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFDaEMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQzlCLENBQUMsSUFBSSxDQUNGLFlBQVksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsRUFDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FDekIsQ0FDSixFQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxlQUFlO1FBQ25CLE1BQU0sRUFBQyxlQUFlLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFL0IsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FDakMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQ3hDLFlBQVksRUFDWixFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FDbEIsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUMvQixlQUFlLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDeEMsVUFBVSxDQUNiLENBQUM7UUFFRiw2REFBNkQ7UUFDN0QsV0FBVzthQUNOLElBQUksQ0FDRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQzFCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDWCxJQUFJLENBQ0EsZUFBZSxDQUFDLGVBQWUsRUFBRSxFQUNqQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FDOUIsQ0FBQyxJQUFJLENBQ0YsWUFBWSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxFQUN0QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUN6QixDQUNKLEVBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFdBQTJCLE1BQU07O1FBQ3hELE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsYUFBYSxDQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQ3JDLENBQUM7SUFDTixDQUFDO0lBRU8sbUJBQW1CLENBQUMsV0FBMkIsTUFBTTs7UUFDekQsTUFBQSxJQUFJLENBQUMsZUFBZSwwQ0FBRSxhQUFhLENBQy9CLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUNyQyxDQUFDO0lBQ04sQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFhO1FBQzlCLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWTtRQUMvQixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxjQUFjLENBQUM7SUFDckQsQ0FBQzs7d0hBelZRLDBCQUEwQixrQkEyQ3ZCLFVBQVUsYUFDVixjQUFjLGFBQ2QsUUFBUSxhQUVSLGlCQUFpQix5QkFFakIsZ0JBQWdCLGFBQ2hCLGNBQWMsYUFDZCxlQUFlLGFBQ2YsYUFBYSxhQUNiLG1CQUFtQixhQUVuQiw2QkFBNkIsYUFFN0IsdUJBQXVCOzRHQXpEMUIsMEJBQTBCLG9QQUh4Qiw2QkFBNkIsaVBDcEU1QywrNEVBcUZBOzRGRGRhLDBCQUEwQjtrQkFSdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRSw2QkFBNkI7b0JBQ3hDLElBQUksRUFBRSxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUM7aUJBQ2xDOzswQkE0Q1EsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxjQUFjOzhCQUNrQixRQUFROzBCQUEvQyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLElBQUk7OzBCQUNKLE1BQU07MkJBQUMsaUJBQWlCOzswQkFFeEIsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRTFCLE1BQU07MkJBQUMsNkJBQTZCOzswQkFFcEMsTUFBTTsyQkFBQyx1QkFBdUI7NENBdkRsQixjQUFjO3NCQUQ5QixTQUFTO3VCQUFDLGdCQUFnQjtnQkFJVixlQUFlO3NCQUQvQixTQUFTO3VCQUFDLGlCQUFpQjtnQkFRNUIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlHLE1BQU07c0JBRGQsTUFBTTtnQkFJRSxPQUFPO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Nka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIE1PTlRIU19JTl9ZRUFSLFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0lTX0NZUFJFU1MsXG4gICAgVFVJX0lTX0lPUyxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheVJhbmdlLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUluamVjdGlvblRva2VuVHlwZSxcbiAgICBUdWlNYXBwZXIsXG4gICAgVHVpTW9udGgsXG4gICAgdHVpVHlwZWRGcm9tRXZlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfQU5JTUFUSU9OU19EVVJBVElPTixcbiAgICBUVUlfQ0xPU0VfV09SRCxcbiAgICBUVUlfU0hPUlRfV0VFS19EQVlTLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9DQU5DRUxfV09SRCxcbiAgICBUVUlfQ0hPT1NFX0RBWV9PUl9SQU5HRV9URVhUUyxcbiAgICBUVUlfRE9ORV9XT1JELFxufSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7aWRlbnRpdHksIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgcmFjZSwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBkZWJvdW5jZVRpbWUsXG4gICAgZGVsYXksXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtZXJnZU1hcCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZSxcbiAgICB0YWtlVW50aWwsXG4gICAgd2luZG93VG9nZ2xlLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgUkFOR0UsXG4gICAgU0NST0xMX0RFQk9VTkNFX1RJTUUsXG4gICAgU1RBUlRJTkdfWUVBUixcbiAgICBZRUFSU19JTl9ST1csXG59IGZyb20gJy4vbW9iaWxlLWNhbGVuZGFyLmNvbnN0JztcbmltcG9ydCB7XG4gICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUlMsXG4gICAgVFVJX1ZBTFVFX1NUUkVBTSxcbn0gZnJvbSAnLi9tb2JpbGUtY2FsZW5kYXIucHJvdmlkZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktbW9iaWxlLWNhbGVuZGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9iaWxlLWNhbGVuZGFyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21vYmlsZS1jYWxlbmRhci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfTU9CSUxFX0NBTEVOREFSX1BST1ZJREVSUyxcbiAgICBob3N0OiB7J1tjbGFzcy5faW9zXSc6ICdpc0lPUyd9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlNb2JpbGVDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3llYXJzU2Nyb2xsUmVmJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IHllYXJzU2Nyb2xsUmVmPzogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gICAgQFZpZXdDaGlsZCgnbW9udGhzU2Nyb2xsUmVmJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vbnRoc1Njcm9sbFJlZj86IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9kYXkgPSBUdWlEYXkuY3VycmVudExvY2FsKCk7XG4gICAgcHJpdmF0ZSBhY3RpdmVZZWFyID0gMDtcbiAgICBwcml2YXRlIGFjdGl2ZU1vbnRoID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2luZ2xlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4ID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlEYXkgfCBUdWlEYXlSYW5nZT4oKTtcblxuICAgIHZhbHVlOiBUdWlEYXkgfCBUdWlEYXlSYW5nZSB8IG51bGwgPSBudWxsO1xuXG4gICAgcmVhZG9ubHkgeWVhcnMgPSBBcnJheS5mcm9tKHtsZW5ndGg6IFJBTkdFfSwgKF8sIGkpID0+IGkgKyBTVEFSVElOR19ZRUFSKTtcblxuICAgIHJlYWRvbmx5IG1vbnRocyA9IEFycmF5LmZyb20oXG4gICAgICAgIHtsZW5ndGg6IFJBTkdFICogMTJ9LFxuICAgICAgICAoXywgaSkgPT5cbiAgICAgICAgICAgIG5ldyBUdWlNb250aChcbiAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGkgLyBNT05USFNfSU5fWUVBUikgKyBTVEFSVElOR19ZRUFSLFxuICAgICAgICAgICAgICAgIGkgJSBNT05USFNfSU5fWUVBUixcbiAgICAgICAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHJlYWRvbmx5IGlzSU9TOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19DWVBSRVNTKSByZWFkb25seSBpc0N5cHJlc3M6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudCxcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfVkFMVUVfU1RSRUFNKSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8VHVpRGF5UmFuZ2UgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfQ0xPU0VfV09SRCkgcmVhZG9ubHkgY2xvc2VXb3JkJDogT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgICBASW5qZWN0KFRVSV9DQU5DRUxfV09SRCkgcmVhZG9ubHkgY2FuY2VsV29yZCQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgQEluamVjdChUVUlfRE9ORV9XT1JEKSByZWFkb25seSBkb25lV29yZCQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgQEluamVjdChUVUlfU0hPUlRfV0VFS19EQVlTKVxuICAgICAgICByZWFkb25seSB1bm9yZGVyZWRXZWVrRGF5cyQ6IFR1aUluamVjdGlvblRva2VuVHlwZTx0eXBlb2YgVFVJX1NIT1JUX1dFRUtfREFZUz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NIT09TRV9EQVlfT1JfUkFOR0VfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGNob29zZURheU9yUmFuZ2VUZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4sXG4gICAgICAgIEBJbmplY3QoVFVJX0FOSU1BVElPTlNfRFVSQVRJT04pIHByaXZhdGUgcmVhZG9ubHkgZHVyYXRpb246IG51bWJlcixcbiAgICApIHtcbiAgICAgICAgdmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgeWVhcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggLyBZRUFSU19JTl9ST1c7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVllYXIgPSB0aGlzLmluaXRpYWxZZWFyO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5pbml0aWFsTW9udGg7XG5cbiAgICAgICAgLy8gVmlydHVhbCBzY3JvbGwgaGFzIG5vdCB5ZXQgcmVuZGVyZWQgaXRlbXMgZXZlbiBpbiBuZ0FmdGVyVmlld0luaXRcbiAgICAgICAgdGhpcy53YWl0U2Nyb2xsZWRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Db25maXJtKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRheUNsaWNrKGRheTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNpbmdsZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRheTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZSBpbnN0YW5jZW9mIFR1aURheSB8fFxuICAgICAgICAgICAgIXRoaXMudmFsdWUuaXNTaW5nbGVEYXlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IFR1aURheVJhbmdlKGRheSwgZGF5KTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IFR1aURheVJhbmdlLnNvcnQodGhpcy52YWx1ZS5mcm9tLCBkYXkpO1xuICAgIH1cblxuICAgIGdldFN0YXRlKGluZGV4OiBudW1iZXIpOiAnYWN0aXZlJyB8ICdhZGphY2VudCcgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuaXNZZWFyQWN0aXZlKGluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuICdhY3RpdmUnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNZZWFyQWN0aXZlKGluZGV4IC0gMSkgfHwgdGhpcy5pc1llYXJBY3RpdmUoaW5kZXggKyAxKSkge1xuICAgICAgICAgICAgcmV0dXJuICdhZGphY2VudCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBvbk1vbnRoQ2hhbmdlKG1vbnRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgLy8gU2tpcHBpbmcgaW5pdGlhbCBjYWxsYmFjayB3aGVyZSBpbmRleCA9PT0gMFxuICAgICAgICBpZiAoIW1vbnRoIHx8IHRoaXMuYWN0aXZlTW9udGggPT09IG1vbnRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gbW9udGg7XG5cbiAgICAgICAgY29uc3QgYWN0aXZlWWVhciA9IHRoaXMubW9udGhUb1llYXIobW9udGgpO1xuXG4gICAgICAgIGlmIChhY3RpdmVZZWFyID09PSB0aGlzLmFjdGl2ZVllYXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlWWVhciA9IGFjdGl2ZVllYXI7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmVZZWFyKCk7XG4gICAgfVxuXG4gICAgc2V0WWVhcih5ZWFyOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlWWVhciA9PT0geWVhcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVNb250aCArPSB0aGlzLmdldE1vbnRoT2Zmc2V0KHllYXIpO1xuICAgICAgICB0aGlzLmFjdGl2ZVllYXIgPSB5ZWFyO1xuICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlWWVhcignc21vb3RoJyk7XG5cbiAgICAgICAgLy8gRGVsYXkgaXMgcmVxdWlyZWQgdG8gcnVuIG1vbnRocyBzY3JvbGwgaW4gdGhlIG5leHQgZnJhbWUgdG8gcHJldmVudCBmbGlja2VyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZU1vbnRoKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGRpc2FibGVkSXRlbUhhbmRsZXJNYXBwZXI6IFR1aU1hcHBlcjxcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PixcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PlxuICAgID4gPSAoZGlzYWJsZWRJdGVtSGFuZGxlciwgbWluOiBUdWlEYXksIG1heDogVHVpRGF5KSA9PiBpdGVtID0+XG4gICAgICAgIGl0ZW0uZGF5QmVmb3JlKG1pbikgfHxcbiAgICAgICAgKG1heCAhPT0gbnVsbCAmJiBpdGVtLmRheUFmdGVyKG1heCkpIHx8XG4gICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSk7XG5cbiAgICBwcml2YXRlIGdldCBpbml0aWFsWWVhcigpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvZGF5LnllYXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWx1ZSBpbnN0YW5jZW9mIFR1aURheSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUueWVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmZyb20ueWVhcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpbml0aWFsTW9udGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50b2RheS5tb250aCArICh0aGlzLnRvZGF5LnllYXIgLSBTVEFSVElOR19ZRUFSKSAqIE1PTlRIU19JTl9ZRUFSO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBUdWlEYXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlLm1vbnRoICsgKHRoaXMudmFsdWUueWVhciAtIFNUQVJUSU5HX1lFQVIpICogTU9OVEhTX0lOX1lFQVI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy52YWx1ZS5mcm9tLm1vbnRoICtcbiAgICAgICAgICAgICh0aGlzLnZhbHVlLmZyb20ueWVhciAtIFNUQVJUSU5HX1lFQVIpICogTU9OVEhTX0lOX1lFQVJcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFllYXJzVmlld3BvcnRTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXJzU2Nyb2xsUmVmPy5nZXRWaWV3cG9ydFNpemUoKSB8fCAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmlld3BvcnREaW1lbnNpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMueWVhcnNTY3JvbGxSZWY/LmNoZWNrVmlld3BvcnRTaXplKCk7XG4gICAgICAgIHRoaXMubW9udGhzU2Nyb2xsUmVmPy5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbGF0ZUluaXQoKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRZZWFyc1ZpZXdwb3J0U2l6ZSgpID4gMCA/IGlkZW50aXR5IDogZGVsYXkoMjAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhaXRTY3JvbGxlZENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydERpbWVuc2lvbigpO1xuXG4gICAgICAgIHRoaXMubW9udGhzU2Nyb2xsUmVmPy5zY3JvbGxlZEluZGV4Q2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkZWxheSh0aGlzLmR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICB0aGlzLmxhdGVJbml0KCksXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0RGltZW5zaW9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0WWVhclNjcm9sbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdE1vbnRoU2Nyb2xsKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZVllYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlTW9udGgoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFllYXJTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHt5ZWFyc1Njcm9sbFJlZn0gPSB0aGlzO1xuXG4gICAgICAgIGlmICgheWVhcnNTY3JvbGxSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRvdWNoc3RhcnQkID0gdHVpVHlwZWRGcm9tRXZlbnQoXG4gICAgICAgICAgICB5ZWFyc1Njcm9sbFJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAndG91Y2hzdGFydCcsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRvdWNoZW5kJCA9IHR1aVR5cGVkRnJvbUV2ZW50KFxuICAgICAgICAgICAgeWVhcnNTY3JvbGxSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ3RvdWNoZW5kJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY2xpY2skID0gdHVpVHlwZWRGcm9tRXZlbnQoXG4gICAgICAgICAgICB5ZWFyc1Njcm9sbFJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnY2xpY2snLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJlZnJlc2ggYWN0aXZlWWVhclxuICAgICAgICB5ZWFyc1Njcm9sbFJlZlxuICAgICAgICAgICAgLmVsZW1lbnRTY3JvbGxlZCgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgc21vb3RoIHNjcm9sbCByZXN1bHRpbmcgZnJvbSBjbGljayBvbiB0aGUgZXhhY3QgeWVhclxuICAgICAgICAgICAgICAgIHdpbmRvd1RvZ2dsZSh0b3VjaHN0YXJ0JCwgKCkgPT4gY2xpY2skKSxcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCh4ID0+IHgpLFxuICAgICAgICAgICAgICAgIC8vIERlbGF5IGlzIHJlcXVpcmVkIHRvIHJ1biBtb250aHMgc2Nyb2xsIGluIHRoZSBuZXh0IGZyYW1lIHRvIHByZXZlbnQgZmxpY2tlclxuICAgICAgICAgICAgICAgIGRlbGF5KDApLFxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVhcnNTY3JvbGxSZWYubWVhc3VyZVNjcm9sbE9mZnNldCgpIC8gdGhpcy55ZWFyV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoWUVBUlNfSU5fUk9XIC8gMikgK1xuICAgICAgICAgICAgICAgICAgICAgICAgU1RBUlRJTkdfWUVBUixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGZpbHRlcihhY3RpdmVZZWFyID0+IGFjdGl2ZVllYXIgIT09IHRoaXMuYWN0aXZlWWVhciksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhY3RpdmVZZWFyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoICs9IHRoaXMuZ2V0TW9udGhPZmZzZXQoYWN0aXZlWWVhcik7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVZZWFyID0gYWN0aXZlWWVhcjtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlTW9udGgoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNtb290aCBzY3JvbGwgdG8gYWN0aXZlWWVhciBhZnRlciBzY3JvbGxpbmcgaXMgZG9uZVxuICAgICAgICB0b3VjaHN0YXJ0JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRvdWNoZW5kJCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHJhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZWFyc1Njcm9sbFJlZi5lbGVtZW50U2Nyb2xsZWQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVyKFNDUk9MTF9ERUJPVU5DRV9USU1FKSxcbiAgICAgICAgICAgICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKFNDUk9MTF9ERUJPVU5DRV9USU1FICogMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRvdWNoc3RhcnQkKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zY3JvbGxUb0FjdGl2ZVllYXIoJ3Ntb290aCcpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRNb250aFNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge21vbnRoc1Njcm9sbFJlZn0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghbW9udGhzU2Nyb2xsUmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b3VjaHN0YXJ0JCA9IHR1aVR5cGVkRnJvbUV2ZW50KFxuICAgICAgICAgICAgbW9udGhzU2Nyb2xsUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICd0b3VjaHN0YXJ0JyxcbiAgICAgICAgICAgIHtwYXNzaXZlOiB0cnVlfSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgdG91Y2hlbmQkID0gdHVpVHlwZWRGcm9tRXZlbnQoXG4gICAgICAgICAgICBtb250aHNTY3JvbGxSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ3RvdWNoZW5kJyxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBTbW9vdGggc2Nyb2xsIHRvIHRoZSBjbG9zZXN0IG1vbnRoIGFmdGVyIHNjcm9sbGluZyBpcyBkb25lXG4gICAgICAgIHRvdWNoc3RhcnQkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdG91Y2hlbmQkKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgcmFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoc1Njcm9sbFJlZi5lbGVtZW50U2Nyb2xsZWQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVyKFNDUk9MTF9ERUJPVU5DRV9USU1FKSxcbiAgICAgICAgICAgICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKFNDUk9MTF9ERUJPVU5DRV9USU1FICogMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRvdWNoc3RhcnQkKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zY3JvbGxUb0FjdGl2ZU1vbnRoKCdzbW9vdGgnKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY3JvbGxUb0FjdGl2ZVllYXIoYmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nKTogdm9pZCB7XG4gICAgICAgIHRoaXMueWVhcnNTY3JvbGxSZWY/LnNjcm9sbFRvSW5kZXgoXG4gICAgICAgICAgICBNYXRoLm1heCh0aGlzLmFjdGl2ZVllYXIgLSBTVEFSVElOR19ZRUFSIC0gMiwgMCksXG4gICAgICAgICAgICB0aGlzLmlzQ3lwcmVzcyA/ICdhdXRvJyA6IGJlaGF2aW9yLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmVNb250aChiZWhhdmlvcjogU2Nyb2xsQmVoYXZpb3IgPSAnYXV0bycpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aHNTY3JvbGxSZWY/LnNjcm9sbFRvSW5kZXgoXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoLFxuICAgICAgICAgICAgdGhpcy5pc0N5cHJlc3MgPyAnYXV0bycgOiBiZWhhdmlvcixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzWWVhckFjdGl2ZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gdGhpcy5hY3RpdmVZZWFyO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW9udGhUb1llYXIobW9udGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoKG1vbnRoICsgMSkgLyBNT05USFNfSU5fWUVBUikgKyBTVEFSVElOR19ZRUFSIC0gMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1vbnRoT2Zmc2V0KHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoeWVhciAtIHRoaXMuYWN0aXZlWWVhcikgKiBNT05USFNfSU5fWUVBUjtcbiAgICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwidC1oZWFkZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktbW9iaWxlLWNhbGVuZGFyX19jYW5jZWxcIlxuICAgICAgICBpY29uPVwidHVpSWNvblhMYXJnZVwiXG4gICAgICAgIHNoYXBlPVwicm91bmRlZFwiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJcIlxuICAgICAgICB0dWlSaXBwbGVcbiAgICAgICAgY2xhc3M9XCJ0LWNsb3NlXCJcbiAgICAgICAgW3RpdGxlXT1cImNsb3NlV29yZCQgfCBhc3luY1wiXG4gICAgICAgIChjbGljayk9XCJvbkNsb3NlKClcIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR1aUxpbmtcbiAgICAgICAgdHVpVG91Y2hhYmxlPVwib3BhY2l0eVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtbGluayB0LWxpbmtfY2xvc2VcIlxuICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcbiAgICA+XG4gICAgICAgIHt7IGNhbmNlbFdvcmQkIHwgYXN5bmMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8aDJcbiAgICAgICAgKm5nSWY9XCJjaG9vc2VEYXlPclJhbmdlVGV4dHMkIHwgYXN5bmMgYXMgdGV4dHNcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLW1vYmlsZS1jYWxlbmRhcl9fbGFiZWxcIlxuICAgICAgICBjbGFzcz1cInQtbGFiZWxcIlxuICAgID5cbiAgICAgICAge3sgc2luZ2xlID8gdGV4dHNbMF0gOiB0ZXh0c1sxXSB9fVxuICAgIDwvaDI+XG4gICAgPGJ1dHRvblxuICAgICAgICB0dWlMaW5rXG4gICAgICAgIHR1aVRvdWNoYWJsZT1cIm9wYWNpdHlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1tb2JpbGUtY2FsZW5kYXJfX2NvbmZpcm1cIlxuICAgICAgICBjbGFzcz1cInQtbGlua1wiXG4gICAgICAgIChjbGljayk9XCJvbkNvbmZpcm0oKVwiXG4gICAgPlxuICAgICAgICB7eyBkb25lV29yZCQgfCBhc3luYyB9fVxuICAgIDwvYnV0dG9uPlxuPC9oZWFkZXI+XG48Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgI3llYXJzU2Nyb2xsUmVmXG4gICAgb3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcbiAgICBjbGFzcz1cInQteWVhcnNcIlxuICAgIFtpdGVtU2l6ZV09XCJ5ZWFyV2lkdGhcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJ0LXllYXJzLXdyYXBwZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaW5kZXggb2YgeWVhcnNcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQteWVhclwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXN0YXRlXT1cImdldFN0YXRlKGluZGV4KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0WWVhcihpbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBpbmRleCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuPGRpdiBjbGFzcz1cInQtd2Vla1wiPlxuICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiB1bm9yZGVyZWRXZWVrRGF5cyQgfCB0dWlPcmRlcldlZWtEYXlzIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cInQtZGF5XCJcbiAgICA+XG4gICAgICAgIHt7IGRheSB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG48Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgI21vbnRoc1Njcm9sbFJlZlxuICAgIGNsYXNzPVwidC1tb250aHNcIlxuICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIm9uTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4+XG4gICAgPHNlY3Rpb25cbiAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzOyB0ZW1wbGF0ZUNhY2hlU2l6ZTogMTBcIlxuICAgICAgICBjbGFzcz1cInQtbW9udGgtd3JhcHBlclwiXG4gICAgPlxuICAgICAgICA8aDIgY2xhc3M9XCJ0LW1vbnRoXCI+e3sgbW9udGggfCB0dWlNb250aCB8IGFzeW5jIH19PC9oMj5cbiAgICAgICAgPHR1aS1wcmltaXRpdmUtY2FsZW5kYXItbW9iaWxlXG4gICAgICAgICAgICBjbGFzcz1cInQtY2FsZW5kYXJcIlxuICAgICAgICAgICAgW21vbnRoXT1cIm1vbnRoXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJkaXNhYmxlZEl0ZW1IYW5kbGVyIHwgdHVpTWFwcGVyIDogZGlzYWJsZWRJdGVtSGFuZGxlck1hcHBlciA6IG1pbiA6IG1heFwiXG4gICAgICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgPjwvdHVpLXByaW1pdGl2ZS1jYWxlbmRhci1tb2JpbGU+XG4gICAgPC9zZWN0aW9uPlxuPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4iXX0=
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL21vYmlsZS1jYWxlbmRhci9tb2JpbGUtY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2NvbXBvbmVudHMvbW9iaWxlLWNhbGVuZGFyL21vYmlsZS1jYWxlbmRhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsY0FBYyxFQUNkLFVBQVUsRUFDVixZQUFZLEVBRVosTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsRUFHakIsUUFBUSxFQUNSLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEdBRXRCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNILGVBQWUsRUFDZiw2QkFBNkIsRUFDN0IsYUFBYSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUF3QyxJQUFJLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pGLE9BQU8sRUFDSCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxF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QWM7OEJBQ2tCLFFBQVE7MEJBQS9DLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUV4QixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUUxQixNQUFNOzJCQUFDLDZCQUE2Qjs7MEJBRXBDLE1BQU07MkJBQUMsdUJBQXVCOzRDQXhEbEIsY0FBYztzQkFEOUIsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSVYsZUFBZTtzQkFEL0IsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBUTVCLE1BQU07c0JBREwsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFJRyxNQUFNO3NCQURkLE1BQU07Z0JBSUUsT0FBTztzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBNT05USFNfSU5fWUVBUixcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9JU19DWVBSRVNTLFxuICAgIFRVSV9JU19JT1MsXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURheSxcbiAgICBUdWlEYXlSYW5nZSxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBUdWlJbmplY3Rpb25Ub2tlblR5cGUsXG4gICAgVHVpTWFwcGVyLFxuICAgIFR1aU1vbnRoLFxuICAgIHR1aVR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0FOSU1BVElPTlNfRFVSQVRJT04sXG4gICAgVFVJX0NMT1NFX1dPUkQsXG4gICAgVFVJX0NPTU1PTl9JQ09OUyxcbiAgICBUVUlfU0hPUlRfV0VFS19EQVlTLFxuICAgIFR1aUNvbW1vbkljb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9DQU5DRUxfV09SRCxcbiAgICBUVUlfQ0hPT1NFX0RBWV9PUl9SQU5HRV9URVhUUyxcbiAgICBUVUlfRE9ORV9XT1JELFxufSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7aWRlbnRpdHksIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgcmFjZSwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBkZWJvdW5jZVRpbWUsXG4gICAgZGVsYXksXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtZXJnZU1hcCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZSxcbiAgICB0YWtlVW50aWwsXG4gICAgd2luZG93VG9nZ2xlLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgUkFOR0UsXG4gICAgU0NST0xMX0RFQk9VTkNFX1RJTUUsXG4gICAgU1RBUlRJTkdfWUVBUixcbiAgICBZRUFSU19JTl9ST1csXG59IGZyb20gJy4vbW9iaWxlLWNhbGVuZGFyLmNvbnN0JztcbmltcG9ydCB7XG4gICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUlMsXG4gICAgVFVJX1ZBTFVFX1NUUkVBTSxcbn0gZnJvbSAnLi9tb2JpbGUtY2FsZW5kYXIucHJvdmlkZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktbW9iaWxlLWNhbGVuZGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9iaWxlLWNhbGVuZGFyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21vYmlsZS1jYWxlbmRhci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfTU9CSUxFX0NBTEVOREFSX1BST1ZJREVSUyxcbiAgICBob3N0OiB7J1tjbGFzcy5faW9zXSc6ICdpc0lPUyd9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlNb2JpbGVDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3llYXJzU2Nyb2xsUmVmJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IHllYXJzU2Nyb2xsUmVmPzogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gICAgQFZpZXdDaGlsZCgnbW9udGhzU2Nyb2xsUmVmJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vbnRoc1Njcm9sbFJlZj86IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9kYXkgPSBUdWlEYXkuY3VycmVudExvY2FsKCk7XG4gICAgcHJpdmF0ZSBhY3RpdmVZZWFyID0gMDtcbiAgICBwcml2YXRlIGFjdGl2ZU1vbnRoID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2luZ2xlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4ID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlEYXkgfCBUdWlEYXlSYW5nZT4oKTtcblxuICAgIHZhbHVlOiBUdWlEYXkgfCBUdWlEYXlSYW5nZSB8IG51bGwgPSBudWxsO1xuXG4gICAgcmVhZG9ubHkgeWVhcnMgPSBBcnJheS5mcm9tKHtsZW5ndGg6IFJBTkdFfSwgKF8sIGkpID0+IGkgKyBTVEFSVElOR19ZRUFSKTtcblxuICAgIHJlYWRvbmx5IG1vbnRocyA9IEFycmF5LmZyb20oXG4gICAgICAgIHtsZW5ndGg6IFJBTkdFICogMTJ9LFxuICAgICAgICAoXywgaSkgPT5cbiAgICAgICAgICAgIG5ldyBUdWlNb250aChcbiAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGkgLyBNT05USFNfSU5fWUVBUikgKyBTVEFSVElOR19ZRUFSLFxuICAgICAgICAgICAgICAgIGkgJSBNT05USFNfSU5fWUVBUixcbiAgICAgICAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHJlYWRvbmx5IGlzSU9TOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19DWVBSRVNTKSByZWFkb25seSBpc0N5cHJlc3M6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudCxcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfVkFMVUVfU1RSRUFNKSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8VHVpRGF5UmFuZ2UgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfQ09NTU9OX0lDT05TKSByZWFkb25seSBpY29uczogVHVpQ29tbW9uSWNvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX0NMT1NFX1dPUkQpIHJlYWRvbmx5IGNsb3NlV29yZCQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgQEluamVjdChUVUlfQ0FOQ0VMX1dPUkQpIHJlYWRvbmx5IGNhbmNlbFdvcmQkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RPTkVfV09SRCkgcmVhZG9ubHkgZG9uZVdvcmQkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NIT1JUX1dFRUtfREFZUylcbiAgICAgICAgcmVhZG9ubHkgdW5vcmRlcmVkV2Vla0RheXMkOiBUdWlJbmplY3Rpb25Ub2tlblR5cGU8dHlwZW9mIFRVSV9TSE9SVF9XRUVLX0RBWVM+LFxuICAgICAgICBASW5qZWN0KFRVSV9DSE9PU0VfREFZX09SX1JBTkdFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBjaG9vc2VEYXlPclJhbmdlVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBASW5qZWN0KFRVSV9BTklNQVRJT05TX0RVUkFUSU9OKSBwcml2YXRlIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXIsXG4gICAgKSB7XG4gICAgICAgIHZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IHllYXJXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC8gWUVBUlNfSU5fUk9XO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVZZWFyID0gdGhpcy5pbml0aWFsWWVhcjtcbiAgICAgICAgdGhpcy5hY3RpdmVNb250aCA9IHRoaXMuaW5pdGlhbE1vbnRoO1xuXG4gICAgICAgIC8vIFZpcnR1YWwgc2Nyb2xsIGhhcyBub3QgeWV0IHJlbmRlcmVkIGl0ZW1zIGV2ZW4gaW4gbmdBZnRlclZpZXdJbml0XG4gICAgICAgIHRoaXMud2FpdFNjcm9sbGVkQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ29uZmlybSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EYXlDbGljayhkYXk6IFR1aURheSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zaW5nbGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMudmFsdWUgaW5zdGFuY2VvZiBUdWlEYXkgfHxcbiAgICAgICAgICAgICF0aGlzLnZhbHVlLmlzU2luZ2xlRGF5XG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBUdWlEYXlSYW5nZShkYXksIGRheSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSBUdWlEYXlSYW5nZS5zb3J0KHRoaXMudmFsdWUuZnJvbSwgZGF5KTtcbiAgICB9XG5cbiAgICBnZXRTdGF0ZShpbmRleDogbnVtYmVyKTogJ2FjdGl2ZScgfCAnYWRqYWNlbnQnIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmlzWWVhckFjdGl2ZShpbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnYWN0aXZlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzWWVhckFjdGl2ZShpbmRleCAtIDEpIHx8IHRoaXMuaXNZZWFyQWN0aXZlKGluZGV4ICsgMSkpIHtcbiAgICAgICAgICAgIHJldHVybiAnYWRqYWNlbnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIC8vIFNraXBwaW5nIGluaXRpYWwgY2FsbGJhY2sgd2hlcmUgaW5kZXggPT09IDBcbiAgICAgICAgaWYgKCFtb250aCB8fCB0aGlzLmFjdGl2ZU1vbnRoID09PSBtb250aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVNb250aCA9IG1vbnRoO1xuXG4gICAgICAgIGNvbnN0IGFjdGl2ZVllYXIgPSB0aGlzLm1vbnRoVG9ZZWFyKG1vbnRoKTtcblxuICAgICAgICBpZiAoYWN0aXZlWWVhciA9PT0gdGhpcy5hY3RpdmVZZWFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZVllYXIgPSBhY3RpdmVZZWFyO1xuICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlWWVhcigpO1xuICAgIH1cblxuICAgIHNldFllYXIoeWVhcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVllYXIgPT09IHllYXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlTW9udGggKz0gdGhpcy5nZXRNb250aE9mZnNldCh5ZWFyKTtcbiAgICAgICAgdGhpcy5hY3RpdmVZZWFyID0geWVhcjtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZVllYXIoJ3Ntb290aCcpO1xuXG4gICAgICAgIC8vIERlbGF5IGlzIHJlcXVpcmVkIHRvIHJ1biBtb250aHMgc2Nyb2xsIGluIHRoZSBuZXh0IGZyYW1lIHRvIHByZXZlbnQgZmxpY2tlclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmVNb250aCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWFkb25seSBkaXNhYmxlZEl0ZW1IYW5kbGVyTWFwcGVyOiBUdWlNYXBwZXI8XG4gICAgICAgIFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4sXG4gICAgICAgIFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT5cbiAgICA+ID0gKGRpc2FibGVkSXRlbUhhbmRsZXIsIG1pbjogVHVpRGF5LCBtYXg6IFR1aURheSkgPT4gaXRlbSA9PlxuICAgICAgICBpdGVtLmRheUJlZm9yZShtaW4pIHx8XG4gICAgICAgIChtYXggIT09IG51bGwgJiYgaXRlbS5kYXlBZnRlcihtYXgpKSB8fFxuICAgICAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyKGl0ZW0pO1xuXG4gICAgcHJpdmF0ZSBnZXQgaW5pdGlhbFllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50b2RheS55ZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBUdWlEYXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlLnllYXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5mcm9tLnllYXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaW5pdGlhbE1vbnRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9kYXkubW9udGggKyAodGhpcy50b2RheS55ZWFyIC0gU1RBUlRJTkdfWUVBUikgKiBNT05USFNfSU5fWUVBUjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlIGluc3RhbmNlb2YgVHVpRGF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5tb250aCArICh0aGlzLnZhbHVlLnllYXIgLSBTVEFSVElOR19ZRUFSKSAqIE1PTlRIU19JTl9ZRUFSO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudmFsdWUuZnJvbS5tb250aCArXG4gICAgICAgICAgICAodGhpcy52YWx1ZS5mcm9tLnllYXIgLSBTVEFSVElOR19ZRUFSKSAqIE1PTlRIU19JTl9ZRUFSXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRZZWFyc1ZpZXdwb3J0U2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyc1Njcm9sbFJlZj8uZ2V0Vmlld3BvcnRTaXplKCkgfHwgMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZpZXdwb3J0RGltZW5zaW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnllYXJzU2Nyb2xsUmVmPy5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICAgICAgICB0aGlzLm1vbnRoc1Njcm9sbFJlZj8uY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxhdGVJbml0KCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0WWVhcnNWaWV3cG9ydFNpemUoKSA+IDAgPyBpZGVudGl0eSA6IGRlbGF5KDIwMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YWl0U2Nyb2xsZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnREaW1lbnNpb24oKTtcblxuICAgICAgICB0aGlzLm1vbnRoc1Njcm9sbFJlZj8uc2Nyb2xsZWRJbmRleENoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVsYXkodGhpcy5kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgdGhpcy5sYXRlSW5pdCgpLFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydERpbWVuc2lvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFllYXJTY3JvbGwoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRNb250aFNjcm9sbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmVZZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZU1vbnRoKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRZZWFyU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7eWVhcnNTY3JvbGxSZWZ9ID0gdGhpcztcblxuICAgICAgICBpZiAoIXllYXJzU2Nyb2xsUmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b3VjaHN0YXJ0JCA9IHR1aVR5cGVkRnJvbUV2ZW50KFxuICAgICAgICAgICAgeWVhcnNTY3JvbGxSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB0b3VjaGVuZCQgPSB0dWlUeXBlZEZyb21FdmVudChcbiAgICAgICAgICAgIHllYXJzU2Nyb2xsUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICd0b3VjaGVuZCcsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNsaWNrJCA9IHR1aVR5cGVkRnJvbUV2ZW50KFxuICAgICAgICAgICAgeWVhcnNTY3JvbGxSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBSZWZyZXNoIGFjdGl2ZVllYXJcbiAgICAgICAgeWVhcnNTY3JvbGxSZWZcbiAgICAgICAgICAgIC5lbGVtZW50U2Nyb2xsZWQoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHNtb290aCBzY3JvbGwgcmVzdWx0aW5nIGZyb20gY2xpY2sgb24gdGhlIGV4YWN0IHllYXJcbiAgICAgICAgICAgICAgICB3aW5kb3dUb2dnbGUodG91Y2hzdGFydCQsICgpID0+IGNsaWNrJCksXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoeCA9PiB4KSxcbiAgICAgICAgICAgICAgICAvLyBEZWxheSBpcyByZXF1aXJlZCB0byBydW4gbW9udGhzIHNjcm9sbCBpbiB0aGUgbmV4dCBmcmFtZSB0byBwcmV2ZW50IGZsaWNrZXJcbiAgICAgICAgICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllYXJzU2Nyb2xsUmVmLm1lYXN1cmVTY3JvbGxPZmZzZXQoKSAvIHRoaXMueWVhcldpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKFlFQVJTX0lOX1JPVyAvIDIpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFNUQVJUSU5HX1lFQVIsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoYWN0aXZlWWVhciA9PiBhY3RpdmVZZWFyICE9PSB0aGlzLmFjdGl2ZVllYXIpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYWN0aXZlWWVhciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVNb250aCArPSB0aGlzLmdldE1vbnRoT2Zmc2V0KGFjdGl2ZVllYXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlWWVhciA9IGFjdGl2ZVllYXI7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZU1vbnRoKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBTbW9vdGggc2Nyb2xsIHRvIGFjdGl2ZVllYXIgYWZ0ZXIgc2Nyb2xsaW5nIGlzIGRvbmVcbiAgICAgICAgdG91Y2hzdGFydCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0b3VjaGVuZCQpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgICByYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVhcnNTY3JvbGxSZWYuZWxlbWVudFNjcm9sbGVkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lcihTQ1JPTExfREVCT1VOQ0VfVElNRSksXG4gICAgICAgICAgICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZShTQ1JPTExfREVCT1VOQ0VfVElNRSAqIDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0b3VjaHN0YXJ0JCksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2Nyb2xsVG9BY3RpdmVZZWFyKCdzbW9vdGgnKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0TW9udGhTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHttb250aHNTY3JvbGxSZWZ9ID0gdGhpcztcblxuICAgICAgICBpZiAoIW1vbnRoc1Njcm9sbFJlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdG91Y2hzdGFydCQgPSB0dWlUeXBlZEZyb21FdmVudChcbiAgICAgICAgICAgIG1vbnRoc1Njcm9sbFJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAndG91Y2hzdGFydCcsXG4gICAgICAgICAgICB7cGFzc2l2ZTogdHJ1ZX0sXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRvdWNoZW5kJCA9IHR1aVR5cGVkRnJvbUV2ZW50KFxuICAgICAgICAgICAgbW9udGhzU2Nyb2xsUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICd0b3VjaGVuZCcsXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gU21vb3RoIHNjcm9sbCB0byB0aGUgY2xvc2VzdCBtb250aCBhZnRlciBzY3JvbGxpbmcgaXMgZG9uZVxuICAgICAgICB0b3VjaHN0YXJ0JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRvdWNoZW5kJCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHJhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBtb250aHNTY3JvbGxSZWYuZWxlbWVudFNjcm9sbGVkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lcihTQ1JPTExfREVCT1VOQ0VfVElNRSksXG4gICAgICAgICAgICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZShTQ1JPTExfREVCT1VOQ0VfVElNRSAqIDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0b3VjaHN0YXJ0JCksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2Nyb2xsVG9BY3RpdmVNb250aCgnc21vb3RoJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmVZZWFyKGJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvciA9ICdhdXRvJyk6IHZvaWQge1xuICAgICAgICB0aGlzLnllYXJzU2Nyb2xsUmVmPy5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgICAgTWF0aC5tYXgodGhpcy5hY3RpdmVZZWFyIC0gU1RBUlRJTkdfWUVBUiAtIDIsIDApLFxuICAgICAgICAgICAgdGhpcy5pc0N5cHJlc3MgPyAnYXV0bycgOiBiZWhhdmlvcixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNjcm9sbFRvQWN0aXZlTW9udGgoYmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9udGhzU2Nyb2xsUmVmPy5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb250aCxcbiAgICAgICAgICAgIHRoaXMuaXNDeXByZXNzID8gJ2F1dG8nIDogYmVoYXZpb3IsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1llYXJBY3RpdmUoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaW5kZXggPT09IHRoaXMuYWN0aXZlWWVhcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vbnRoVG9ZZWFyKG1vbnRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKChtb250aCArIDEpIC8gTU9OVEhTX0lOX1lFQVIpICsgU1RBUlRJTkdfWUVBUiAtIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNb250aE9mZnNldCh5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKHllYXIgLSB0aGlzLmFjdGl2ZVllYXIpICogTU9OVEhTX0lOX1lFQVI7XG4gICAgfVxufVxuIiwiPGhlYWRlciBjbGFzcz1cInQtaGVhZGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLW1vYmlsZS1jYWxlbmRhcl9fY2FuY2VsXCJcbiAgICAgICAgc2hhcGU9XCJyb3VuZGVkXCJcbiAgICAgICAgYXBwZWFyYW5jZT1cIlwiXG4gICAgICAgIHR1aVJpcHBsZVxuICAgICAgICBjbGFzcz1cInQtY2xvc2VcIlxuICAgICAgICBbaWNvbl09XCJpY29ucy5jbG9zZVwiXG4gICAgICAgIFt0aXRsZV09XCJjbG9zZVdvcmQkIHwgYXN5bmNcIlxuICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICB0dWlMaW5rXG4gICAgICAgIHR1aVRvdWNoYWJsZT1cIm9wYWNpdHlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJ0LWxpbmsgdC1saW5rX2Nsb3NlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgPlxuICAgICAgICB7eyBjYW5jZWxXb3JkJCB8IGFzeW5jIH19XG4gICAgPC9idXR0b24+XG4gICAgPGgyXG4gICAgICAgICpuZ0lmPVwiY2hvb3NlRGF5T3JSYW5nZVRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1tb2JpbGUtY2FsZW5kYXJfX2xhYmVsXCJcbiAgICAgICAgY2xhc3M9XCJ0LWxhYmVsXCJcbiAgICA+XG4gICAgICAgIHt7IHNpbmdsZSA/IHRleHRzWzBdIDogdGV4dHNbMV0gfX1cbiAgICA8L2gyPlxuICAgIDxidXR0b25cbiAgICAgICAgdHVpTGlua1xuICAgICAgICB0dWlUb3VjaGFibGU9XCJvcGFjaXR5XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktbW9iaWxlLWNhbGVuZGFyX19jb25maXJtXCJcbiAgICAgICAgY2xhc3M9XCJ0LWxpbmtcIlxuICAgICAgICAoY2xpY2spPVwib25Db25maXJtKClcIlxuICAgID5cbiAgICAgICAge3sgZG9uZVdvcmQkIHwgYXN5bmMgfX1cbiAgICA8L2J1dHRvbj5cbjwvaGVhZGVyPlxuPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICN5ZWFyc1Njcm9sbFJlZlxuICAgIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgY2xhc3M9XCJ0LXllYXJzXCJcbiAgICBbaXRlbVNpemVdPVwieWVhcldpZHRoXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwidC15ZWFycy13cmFwcGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpjZGtWaXJ0dWFsRm9yPVwibGV0IGluZGV4IG9mIHllYXJzXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXllYXJcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJnZXRTdGF0ZShpbmRleClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNldFllYXIoaW5kZXgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgaW5kZXggfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjxkaXYgY2xhc3M9XCJ0LXdlZWtcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgdW5vcmRlcmVkV2Vla0RheXMkIHwgdHVpT3JkZXJXZWVrRGF5cyB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJ0LWRheVwiXG4gICAgPlxuICAgICAgICB7eyBkYXkgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICNtb250aHNTY3JvbGxSZWZcbiAgICBjbGFzcz1cInQtbW9udGhzXCJcbiAgICAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJvbk1vbnRoQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDxzZWN0aW9uXG4gICAgICAgICpjZGtWaXJ0dWFsRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoczsgdGVtcGxhdGVDYWNoZVNpemU6IDEwXCJcbiAgICAgICAgY2xhc3M9XCJ0LW1vbnRoLXdyYXBwZXJcIlxuICAgID5cbiAgICAgICAgPGgyIGNsYXNzPVwidC1tb250aFwiPnt7IG1vbnRoIHwgdHVpTW9udGggfCBhc3luYyB9fTwvaDI+XG4gICAgICAgIDx0dWktcHJpbWl0aXZlLWNhbGVuZGFyLW1vYmlsZVxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNhbGVuZGFyXCJcbiAgICAgICAgICAgIFttb250aF09XCJtb250aFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlciB8IHR1aU1hcHBlciA6IGRpc2FibGVkSXRlbUhhbmRsZXJNYXBwZXIgOiBtaW4gOiBtYXhcIlxuICAgICAgICAgICAgKGRheUNsaWNrKT1cIm9uRGF5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgID48L3R1aS1wcmltaXRpdmUtY2FsZW5kYXItbW9iaWxlPlxuICAgIDwvc2VjdGlvbj5cbjwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuIl19
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, } from '@angular/core';
2
2
  import { TuiIdService } from '@taiga-ui/cdk';
3
- import { TUI_CLOSE_WORD } from '@taiga-ui/core';
3
+ import { TUI_CLOSE_WORD, TUI_COMMON_ICONS } from '@taiga-ui/core';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@taiga-ui/core";
6
6
  import * as i2 from "@angular/common";
@@ -9,10 +9,11 @@ import * as i4 from "rxjs";
9
9
  export const TUI_SHEET_CLOSE = 'tui-sheet-close';
10
10
  export const TUI_SHEET_ID = 'tui-sheet-id';
11
11
  export class TuiSheetHeadingComponent {
12
- constructor(idService, el, closeWord$) {
12
+ constructor(idService, el, closeWord$, icons) {
13
13
  this.idService = idService;
14
14
  this.el = el;
15
15
  this.closeWord$ = closeWord$;
16
+ this.icons = icons;
16
17
  this.id = this.idService.generate();
17
18
  }
18
19
  ngAfterViewInit() {
@@ -22,8 +23,8 @@ export class TuiSheetHeadingComponent {
22
23
  this.el.nativeElement.dispatchEvent(new CustomEvent(TUI_SHEET_CLOSE, { bubbles: true }));
23
24
  }
24
25
  }
25
- TuiSheetHeadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetHeadingComponent, deps: [{ token: TuiIdService }, { token: ElementRef }, { token: TUI_CLOSE_WORD }], target: i0.ɵɵFactoryTarget.Component });
26
- TuiSheetHeadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiSheetHeadingComponent, selector: "[tuiSheetHeading]", ngImport: i0, template: "<button\n tuiIconButton\n size=\"xs\"\n appearance=\"icon\"\n type=\"button\"\n icon=\"tuiIconCloseLarge\"\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClick()\"\n></button>\n<span [id]=\"id\">\n <ng-content></ng-content>\n</span>\n", styles: [":host{position:-webkit-sticky;position:sticky;top:0;z-index:1;min-height:2rem;box-sizing:border-box;margin:-1.25rem -1rem 0;padding:1.5rem 1rem 1rem;background:var(--tui-elevation-01);border-radius:.75rem .75rem 0 0;font:var(--tui-font-heading-6);box-shadow:inset 0 1px #ffffff40}:host:after{content:\"\";position:absolute;top:100%;left:0;right:0;height:1px;background:var(--tui-base-03);opacity:0}:host :host-context(._stuck):after{opacity:1}.t-close{display:none;float:right;margin-right:-.25rem}:host-context(.t-wrapper_closeable) .t-close{display:block}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
+ TuiSheetHeadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetHeadingComponent, deps: [{ token: TuiIdService }, { token: ElementRef }, { token: TUI_CLOSE_WORD }, { token: TUI_COMMON_ICONS }], target: i0.ɵɵFactoryTarget.Component });
27
+ TuiSheetHeadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiSheetHeadingComponent, selector: "[tuiSheetHeading]", ngImport: i0, template: "<button\n tuiIconButton\n size=\"xs\"\n appearance=\"icon\"\n type=\"button\"\n class=\"t-close\"\n [icon]=\"icons.close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClick()\"\n></button>\n<span [id]=\"id\">\n <ng-content></ng-content>\n</span>\n", styles: [":host{position:-webkit-sticky;position:sticky;top:0;z-index:1;min-height:2rem;box-sizing:border-box;margin:-1.25rem -1rem 0;padding:1.5rem 1rem 1rem;background:var(--tui-elevation-01);border-radius:.75rem .75rem 0 0;font:var(--tui-font-heading-6);box-shadow:inset 0 1px #ffffff40}:host:after{content:\"\";position:absolute;top:100%;left:0;right:0;height:1px;background:var(--tui-base-03);opacity:0}:host :host-context(._stuck):after{opacity:1}.t-close{display:none;float:right;margin-right:-.25rem}:host-context(.t-wrapper_closeable) .t-close{display:block}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetHeadingComponent, decorators: [{
28
29
  type: Component,
29
30
  args: [{
@@ -41,5 +42,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
41
42
  }] }, { type: i4.Observable, decorators: [{
42
43
  type: Inject,
43
44
  args: [TUI_CLOSE_WORD]
45
+ }] }, { type: undefined, decorators: [{
46
+ type: Inject,
47
+ args: [TUI_COMMON_ICONS]
44
48
  }] }]; } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQtaGVhZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9zaGVldC9jb21wb25lbnRzL3NoZWV0LWhlYWRpbmcvc2hlZXQtaGVhZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9zaGVldC9jb21wb25lbnRzL3NoZWV0LWhlYWRpbmcvc2hlZXQtaGVhZGluZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUc5QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztBQVEzQyxNQUFNLE9BQU8sd0JBQXdCO0lBR2pDLFlBQzJDLFNBQXVCLEVBQ3pCLEVBQTJCLEVBQy9CLFVBQThCO1FBRnhCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFDL0IsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFMMUQsT0FBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFNckMsQ0FBQztJQUVKLGVBQWU7UUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQy9CLElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUNsRSxDQUFDO0lBQ04sQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQy9CLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUNwRCxDQUFDO0lBQ04sQ0FBQzs7c0hBbkJRLHdCQUF3QixrQkFJckIsWUFBWSxhQUNaLFVBQVUsYUFDVixjQUFjOzBHQU5qQix3QkFBd0IseURDcEJyQywyUkFhQTs0RkRPYSx3QkFBd0I7a0JBTnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7b0JBQ3pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7MEJBS1EsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUlkU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9DTE9TRV9XT1JEfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgVFVJX1NIRUVUX0NMT1NFID0gJ3R1aS1zaGVldC1jbG9zZSc7XG5leHBvcnQgY29uc3QgVFVJX1NIRUVUX0lEID0gJ3R1aS1zaGVldC1pZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3R1aVNoZWV0SGVhZGluZ10nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaGVldC1oZWFkaW5nLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NoZWV0LWhlYWRpbmcuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTaGVldEhlYWRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICByZWFkb25seSBpZCA9IHRoaXMuaWRTZXJ2aWNlLmdlbmVyYXRlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlJZFNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgaWRTZXJ2aWNlOiBUdWlJZFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NMT1NFX1dPUkQpIHJlYWRvbmx5IGNsb3NlV29yZCQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFRVSV9TSEVFVF9JRCwge2J1YmJsZXM6IHRydWUsIGRldGFpbDogdGhpcy5pZH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFRVSV9TSEVFVF9DTE9TRSwge2J1YmJsZXM6IHRydWV9KSxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgdHVpSWNvbkJ1dHRvblxuICAgIHNpemU9XCJ4c1wiXG4gICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGljb249XCJ0dWlJY29uQ2xvc2VMYXJnZVwiXG4gICAgY2xhc3M9XCJ0LWNsb3NlXCJcbiAgICBbdGl0bGVdPVwiY2xvc2VXb3JkJCB8IGFzeW5jXCJcbiAgICAoY2xpY2spPVwib25DbGljaygpXCJcbj48L2J1dHRvbj5cbjxzcGFuIFtpZF09XCJpZFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQtaGVhZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9zaGVldC9jb21wb25lbnRzL3NoZWV0LWhlYWRpbmcvc2hlZXQtaGVhZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9zaGVldC9jb21wb25lbnRzL3NoZWV0LWhlYWRpbmcvc2hlZXQtaGVhZGluZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFHaEYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUM7QUFRM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUdqQyxZQUMyQyxTQUF1QixFQUN6QixFQUEyQixFQUMvQixVQUE4QixFQUM1QixLQUFxQjtRQUhqQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3pCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzVCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBTm5ELE9BQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBT3JDLENBQUM7SUFFSixlQUFlO1FBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUMvQixJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FDbEUsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUMvQixJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FDcEQsQ0FBQztJQUNOLENBQUM7O3NIQXBCUSx3QkFBd0Isa0JBSXJCLFlBQVksYUFDWixVQUFVLGFBQ1YsY0FBYyxhQUNkLGdCQUFnQjswR0FQbkIsd0JBQXdCLHlEQ3BCckMsdVJBYUE7NEZET2Esd0JBQXdCO2tCQU5wQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLDRCQUE0QixDQUFDO29CQUN6QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQUtRLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUlkU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9DTE9TRV9XT1JELCBUVUlfQ09NTU9OX0lDT05TLCBUdWlDb21tb25JY29uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9TSEVFVF9DTE9TRSA9ICd0dWktc2hlZXQtY2xvc2UnO1xuZXhwb3J0IGNvbnN0IFRVSV9TSEVFVF9JRCA9ICd0dWktc2hlZXQtaWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t0dWlTaGVldEhlYWRpbmddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hlZXQtaGVhZGluZy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zaGVldC1oZWFkaW5nLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2hlZXRIZWFkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcmVhZG9ubHkgaWQgPSB0aGlzLmlkU2VydmljZS5nZW5lcmF0ZSgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpSWRTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGlkU2VydmljZTogVHVpSWRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9DTE9TRV9XT1JEKSByZWFkb25seSBjbG9zZVdvcmQkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NPTU1PTl9JQ09OUykgcmVhZG9ubHkgaWNvbnM6IFR1aUNvbW1vbkljb25zLFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoVFVJX1NIRUVUX0lELCB7YnViYmxlczogdHJ1ZSwgZGV0YWlsOiB0aGlzLmlkfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoVFVJX1NIRUVUX0NMT1NFLCB7YnViYmxlczogdHJ1ZX0pLFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICB0dWlJY29uQnV0dG9uXG4gICAgc2l6ZT1cInhzXCJcbiAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJ0LWNsb3NlXCJcbiAgICBbaWNvbl09XCJpY29ucy5jbG9zZVwiXG4gICAgW3RpdGxlXT1cImNsb3NlV29yZCQgfCBhc3luY1wiXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4+PC9idXR0b24+XG48c3BhbiBbaWRdPVwiaWRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3NwYW4+XG4iXX0=
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Inject, ViewChild, ViewChildren, } from '@angular/core';
3
3
  import { INTERSECTION_ROOT } from '@ng-web-apis/intersection-observer';
4
4
  import { EMPTY_QUERY, tuiPure } from '@taiga-ui/cdk';
5
- import { TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD, tuiSlideInTop } from '@taiga-ui/core';
5
+ import { TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD, TUI_COMMON_ICONS, tuiSlideInTop, } from '@taiga-ui/core';
6
6
  import { shouldCall } from '@tinkoff/ng-event-plugins';
7
7
  import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
8
8
  import * as i0 from "@angular/core";
@@ -17,9 +17,10 @@ function isCloseable() {
17
17
  return this.context.closeable;
18
18
  }
19
19
  export class TuiSheetDialogComponent {
20
- constructor(el, duration, closeWord$, context) {
20
+ constructor(el, duration, icons, closeWord$, context) {
21
21
  this.el = el;
22
22
  this.duration = duration;
23
+ this.icons = icons;
23
24
  this.closeWord$ = closeWord$;
24
25
  this.context = context;
25
26
  this.stopsRefs = EMPTY_QUERY;
@@ -73,13 +74,13 @@ export class TuiSheetDialogComponent {
73
74
  return stops.map(({ nativeElement }) => nativeElement.offsetTop + nativeElement.clientHeight);
74
75
  }
75
76
  }
76
- TuiSheetDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetDialogComponent, deps: [{ token: ElementRef }, { token: TUI_ANIMATIONS_DURATION }, { token: TUI_CLOSE_WORD }, { token: POLYMORPHEUS_CONTEXT }], target: i0.ɵɵFactoryTarget.Component });
77
+ TuiSheetDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetDialogComponent, deps: [{ token: ElementRef }, { token: TUI_ANIMATIONS_DURATION }, { token: TUI_COMMON_ICONS }, { token: TUI_CLOSE_WORD }, { token: POLYMORPHEUS_CONTEXT }], target: i0.ɵɵFactoryTarget.Component });
77
78
  TuiSheetDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiSheetDialogComponent, selector: "tui-sheet-dialog", host: { listeners: { "document:touchstart.passive.silent": "onPointerChange(1)", "document:touchend.silent": "onPointerChange(-1)", "document:touchcancel.silent": "onPointerChange(-1)", "scroll.silent": "onPointerChange(0)" }, properties: { "class._stuck": "this.stuck", "@tuiSlideInTop": "this.slideInTop", "style.top.px": "this.offset", "class._closeable": "this.closeable" } }, providers: [
78
79
  {
79
80
  provide: INTERSECTION_ROOT,
80
81
  useExisting: ElementRef,
81
82
  },
82
- ], viewQueries: [{ propertyName: "sheet", first: true, predicate: ["sheet"], descendants: true }, { propertyName: "stopsRefs", predicate: ["stops"], descendants: true }], ngImport: i0, template: "<div class=\"t-stops\">\n <div\n *ngFor=\"let stop of context.stops\"\n #stops\n class=\"t-stop\"\n [style.margin-top]=\"stop\"\n ></div>\n</div>\n<div\n #sheet\n waIntersectionObserver\n waIntersectionRootMargin=\"0px 0px -100% 0px\"\n class=\"t-sheet\"\n [class.t-sheet_small]=\"isSmall\"\n (tuiClickOutside)=\"close()\"\n (waIntersectionObservee)=\"onIntersection($event)\"\n>\n <div class=\"t-top\"></div>\n <h2\n *ngIf=\"context.label\"\n class=\"t-heading\"\n [id]=\"context.id\"\n >\n <ng-container *polymorpheusOutlet=\"context.label as label\">\n {{ label }}\n </ng-container>\n <button\n *ngIf=\"context.closeable\"\n tuiIconButton\n icon=\"tuiIconClose\"\n size=\"xs\"\n appearance=\"icon\"\n class=\"t-close\"\n (click)=\"close()\"\n >\n {{ closeWord$ | async }}\n </button>\n </h2>\n <div\n *ngIf=\"context.content\"\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n </div>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;bottom:0;right:0;right:-1rem;display:flex;flex-direction:column;-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);font:var(--tui-font-text-m);overflow-y:scroll;scroll-snap-type:y mandatory;overscroll-behavior:none;box-shadow:0 20rem var(--tui-elevation-01)}:host._stuck{scroll-snap-type:y proximity}:host._closeable{display:block}:host._closeable .t-stops{display:flex}.t-stops{display:none;height:100%;scroll-snap-stop:always;scroll-snap-align:start}.t-stop{scroll-snap-stop:always;scroll-snap-align:start;height:1rem;width:1rem}.t-sheet{box-shadow:0 .25rem 1.5rem #0000001f;width:calc(100% - 1rem);border-radius:.75rem .75rem 0 0;padding:0 1rem 1rem;margin-top:auto;background:var(--tui-elevation-01);box-sizing:border-box;scroll-snap-stop:always;scroll-snap-align:start}@supports (-moz-appearance: none){.t-sheet_small{scroll-snap-align:end}}.t-top{position:-webkit-sticky;position:sticky;top:0;z-index:1;height:1.5rem;background:var(--tui-elevation-01)}.t-top:after{content:\"\";position:absolute;top:.5rem;left:50%;width:2rem;height:.25rem;transform:translate(-50%);background:var(--tui-base-05);border-radius:1rem}.t-heading{position:-webkit-sticky;position:sticky;top:1.5rem;z-index:1;display:flex;margin:0;padding-bottom:.5rem;font:var(--tui-font-heading-6);background:var(--tui-elevation-01);overflow:hidden}.t-close{right:-.25rem;flex-shrink:0;margin-left:auto}.t-content{position:relative;z-index:0}.t-content:nth-child(3){margin-top:1rem}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.IntersectionObserverDirective, selector: "[waIntersectionObserver]", exportAs: ["IntersectionObserver"] }, { type: i4.TuiClickOutsideDirective, selector: "[tuiClickOutside]", outputs: ["tuiClickOutside"] }, { type: i3.IntersectionObserveeDirective, selector: "[waIntersectionObservee]", outputs: ["waIntersectionObservee"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, animations: [tuiSlideInTop], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
+ ], viewQueries: [{ propertyName: "sheet", first: true, predicate: ["sheet"], descendants: true }, { propertyName: "stopsRefs", predicate: ["stops"], descendants: true }], ngImport: i0, template: "<div class=\"t-stops\">\n <div\n *ngFor=\"let stop of context.stops\"\n #stops\n class=\"t-stop\"\n [style.margin-top]=\"stop\"\n ></div>\n</div>\n<div\n #sheet\n waIntersectionObserver\n waIntersectionRootMargin=\"0px 0px -100% 0px\"\n class=\"t-sheet\"\n [class.t-sheet_small]=\"isSmall\"\n (tuiClickOutside)=\"close()\"\n (waIntersectionObservee)=\"onIntersection($event)\"\n>\n <div class=\"t-top\"></div>\n <h2\n *ngIf=\"context.label\"\n class=\"t-heading\"\n [id]=\"context.id\"\n >\n <ng-container *polymorpheusOutlet=\"context.label as label\">\n {{ label }}\n </ng-container>\n <button\n *ngIf=\"context.closeable\"\n tuiIconButton\n size=\"xs\"\n appearance=\"icon\"\n class=\"t-close\"\n [icon]=\"icons.close\"\n (click)=\"close()\"\n >\n {{ closeWord$ | async }}\n </button>\n </h2>\n <div\n *ngIf=\"context.content\"\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n </div>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;bottom:0;right:0;right:-1rem;display:flex;flex-direction:column;-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);font:var(--tui-font-text-m);overflow-y:scroll;scroll-snap-type:y mandatory;overscroll-behavior:none;box-shadow:0 20rem var(--tui-elevation-01)}:host._stuck{scroll-snap-type:y proximity}:host._closeable{display:block}:host._closeable .t-stops{display:flex}.t-stops{display:none;height:100%;scroll-snap-stop:always;scroll-snap-align:start}.t-stop{scroll-snap-stop:always;scroll-snap-align:start;height:1rem;width:1rem}.t-sheet{box-shadow:0 .25rem 1.5rem #0000001f;width:calc(100% - 1rem);border-radius:.75rem .75rem 0 0;padding:0 1rem 1rem;margin-top:auto;background:var(--tui-elevation-01);box-sizing:border-box;scroll-snap-stop:always;scroll-snap-align:start}@supports (-moz-appearance: none){.t-sheet_small{scroll-snap-align:end}}.t-top{position:-webkit-sticky;position:sticky;top:0;z-index:1;height:1.5rem;background:var(--tui-elevation-01)}.t-top:after{content:\"\";position:absolute;top:.5rem;left:50%;width:2rem;height:.25rem;transform:translate(-50%);background:var(--tui-base-05);border-radius:1rem}.t-heading{position:-webkit-sticky;position:sticky;top:1.5rem;z-index:1;display:flex;margin:0;padding-bottom:.5rem;font:var(--tui-font-heading-6);background:var(--tui-elevation-01);overflow:hidden}.t-close{right:-.25rem;flex-shrink:0;margin-left:auto}.t-content{position:relative;z-index:0}.t-content:nth-child(3){margin-top:1rem}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.IntersectionObserverDirective, selector: "[waIntersectionObserver]", exportAs: ["IntersectionObserver"] }, { type: i4.TuiClickOutsideDirective, selector: "[tuiClickOutside]", outputs: ["tuiClickOutside"] }, { type: i3.IntersectionObserveeDirective, selector: "[waIntersectionObservee]", outputs: ["waIntersectionObservee"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, animations: [tuiSlideInTop], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
84
  __decorate([
84
85
  shouldCall(isCloseable)
85
86
  ], TuiSheetDialogComponent.prototype, "close", null);
@@ -107,6 +108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
107
108
  }] }, { type: undefined, decorators: [{
108
109
  type: Inject,
109
110
  args: [TUI_ANIMATIONS_DURATION]
111
+ }] }, { type: undefined, decorators: [{
112
+ type: Inject,
113
+ args: [TUI_COMMON_ICONS]
110
114
  }] }, { type: i6.Observable, decorators: [{
111
115
  type: Inject,
112
116
  args: [TUI_CLOSE_WORD]
@@ -144,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
144
148
  type: HostListener,
145
149
  args: ['scroll.silent', ['0']]
146
150
  }], close: [], getStops: [] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL3NoZWV0LWRpYWxvZy9zaGVldC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2NvbXBvbmVudHMvc2hlZXQtZGlhbG9nL3NoZWV0LWRpYWxvZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsV0FBVyxFQUFhLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFLOUQscURBQXFEO0FBQ3JELFNBQVMsV0FBVztJQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQ2xDLENBQUM7QUFlRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJoQyxZQUN5QyxFQUEyQixFQUNkLFFBQWdCLEVBQ2pDLFVBQThCLEVBRXRELE9BQWlEO1FBSnJCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUV0RCxZQUFPLEdBQVAs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QUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDM0IsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVO3lCQUMxQjtxQkFDSjtpQkFDSjs7MEJBdUJRLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxvQkFBb0I7NENBdkJmLEtBQUs7c0JBRHJCLFNBQVM7dUJBQUMsT0FBTztnQkFJRCxTQUFTO3NCQUR6QixZQUFZO3VCQUFDLE9BQU87Z0JBTXJCLEtBQUs7c0JBREosV0FBVzt1QkFBQyxjQUFjO2dCQUlsQixVQUFVO3NCQURsQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFrQnpCLE1BQU07c0JBRFQsV0FBVzt1QkFBQyxjQUFjO2dCQU12QixTQUFTO3NCQURaLFdBQVc7dUJBQUMsa0JBQWtCO2dCQWEvQixlQUFlO3NCQUpkLFlBQVk7dUJBQUMsb0NBQW9DLEVBQUUsQ0FBQyxHQUFHLENBQUM7O3NCQUN4RCxZQUFZO3VCQUFDLDBCQUEwQixFQUFFLENBQUMsSUFBSSxDQUFDOztzQkFDL0MsWUFBWTt1QkFBQyw2QkFBNkIsRUFBRSxDQUFDLElBQUksQ0FBQzs7c0JBQ2xELFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDO2dCQWNwQyxLQUFLLE1Bc0JHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lOVEVSU0VDVElPTl9ST09UfSBmcm9tICdAbmctd2ViLWFwaXMvaW50ZXJzZWN0aW9uLW9ic2VydmVyJztcbmltcG9ydCB7RU1QVFlfUVVFUlksIFR1aURpYWxvZywgdHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9BTklNQVRJT05TX0RVUkFUSU9OLCBUVUlfQ0xPU0VfV09SRCwgdHVpU2xpZGVJblRvcH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtzaG91bGRDYWxsfSBmcm9tICdAdGlua29mZi9uZy1ldmVudC1wbHVnaW5zJztcbmltcG9ydCB7UE9MWU1PUlBIRVVTX0NPTlRFWFR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVNoZWV0RGlhbG9nT3B0aW9uc30gZnJvbSAnLi9zaGVldC1kaWFsb2cub3B0aW9ucyc7XG5cbi8vIFNvIHdlIHJlLWVudGVyIG5nWm9uZSBhbmQgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG5mdW5jdGlvbiBpc0Nsb3NlYWJsZSh0aGlzOiBUdWlTaGVldERpYWxvZ0NvbXBvbmVudDx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuY2xvc2VhYmxlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1zaGVldC1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaGVldC1kaWFsb2cudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2hlZXQtZGlhbG9nLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBhbmltYXRpb25zOiBbdHVpU2xpZGVJblRvcF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IElOVEVSU0VDVElPTl9ST09ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEVsZW1lbnRSZWYsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2hlZXREaWFsb2dDb21wb25lbnQ8ST4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdzaGVldCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBzaGVldD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZHJlbignc3RvcHMnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcHNSZWZzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBwcml2YXRlIHBvaW50ZXJzID0gMDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3N0dWNrJylcbiAgICBzdHVjayA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdAdHVpU2xpZGVJblRvcCcpXG4gICAgcmVhZG9ubHkgc2xpZGVJblRvcCA9IHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAnMTAwdmgnLFxuICAgICAgICAgICAgZHVyYXRpb246IHRoaXMuZHVyYXRpb24sXG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9BTklNQVRJT05TX0RVUkFUSU9OKSBwcml2YXRlIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX0NMT1NFX1dPUkQpIHJlYWRvbmx5IGNsb3NlV29yZCQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgQEluamVjdChQT0xZTU9SUEhFVVNfQ09OVEVYVClcbiAgICAgICAgcmVhZG9ubHkgY29udGV4dDogVHVpRGlhbG9nPFR1aVNoZWV0RGlhbG9nT3B0aW9uczxJPiwgYW55PixcbiAgICApIHt9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRvcC5weCcpXG4gICAgZ2V0IG9mZnNldCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0Lm9mZnNldDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9jbG9zZWFibGUnKVxuICAgIGdldCBjbG9zZWFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuY2xvc2VhYmxlO1xuICAgIH1cblxuICAgIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGVldFRvcCA+ICh0aGlzLnNoZWV0Py5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCB8fCBJbmZpbml0eSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hzdGFydC5wYXNzaXZlLnNpbGVudCcsIFsnMSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNoZW5kLnNpbGVudCcsIFsnLTEnXSlcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaGNhbmNlbC5zaWxlbnQnLCBbJy0xJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignc2Nyb2xsLnNpbGVudCcsIFsnMCddKVxuICAgIG9uUG9pbnRlckNoYW5nZShkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9pbnRlcnMgKz0gZGVsdGE7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmNsb3NlYWJsZSAmJlxuICAgICAgICAgICAgIXRoaXMucG9pbnRlcnMgJiZcbiAgICAgICAgICAgICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHNob3VsZENhbGwoaXNDbG9zZWFibGUpXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE86IFJlZmFjdG9yIGZvY3VzIHZpc2libGUgb24gbW9iaWxlXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnbW91c2Vkb3duJywge2J1YmJsZXM6IHRydWV9KSk7XG4gICAgICAgIHRoaXMuY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvbkludGVyc2VjdGlvbihbe2lzSW50ZXJzZWN0aW5nfV06IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0dWNrID0gaXNJbnRlcnNlY3RpbmcgJiYgIXRoaXMuaXNTbWFsbDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSBbXG4gICAgICAgICAgICAuLi50aGlzLmdldFN0b3BzKHRoaXMuc3RvcHNSZWZzKSxcbiAgICAgICAgICAgIHRoaXMuc2hlZXRUb3AsXG4gICAgICAgIF1bdGhpcy5jb250ZXh0LmluaXRpYWxdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHNoZWV0VG9wKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoZWV0Py5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcCA/PyBJbmZpbml0eTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0U3RvcHMoc3RvcHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4pOiByZWFkb25seSBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBzdG9wcy5tYXAoXG4gICAgICAgICAgICAoe25hdGl2ZUVsZW1lbnR9KSA9PiBuYXRpdmVFbGVtZW50Lm9mZnNldFRvcCArIG5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0LFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LXN0b3BzXCI+XG4gICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgc3RvcCBvZiBjb250ZXh0LnN0b3BzXCJcbiAgICAgICAgI3N0b3BzXG4gICAgICAgIGNsYXNzPVwidC1zdG9wXCJcbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwic3RvcFwiXG4gICAgPjwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gICAgI3NoZWV0XG4gICAgd2FJbnRlcnNlY3Rpb25PYnNlcnZlclxuICAgIHdhSW50ZXJzZWN0aW9uUm9vdE1hcmdpbj1cIjBweCAwcHggLTEwMCUgMHB4XCJcbiAgICBjbGFzcz1cInQtc2hlZXRcIlxuICAgIFtjbGFzcy50LXNoZWV0X3NtYWxsXT1cImlzU21hbGxcIlxuICAgICh0dWlDbGlja091dHNpZGUpPVwiY2xvc2UoKVwiXG4gICAgKHdhSW50ZXJzZWN0aW9uT2JzZXJ2ZWUpPVwib25JbnRlcnNlY3Rpb24oJGV2ZW50KVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInQtdG9wXCI+PC9kaXY+XG4gICAgPGgyXG4gICAgICAgICpuZ0lmPVwiY29udGV4dC5sYWJlbFwiXG4gICAgICAgIGNsYXNzPVwidC1oZWFkaW5nXCJcbiAgICAgICAgW2lkXT1cImNvbnRleHQuaWRcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGV4dC5sYWJlbCBhcyBsYWJlbFwiPlxuICAgICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dC5jbG9zZWFibGVcIlxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgaWNvbj1cInR1aUljb25DbG9zZVwiXG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNsb3NlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgY2xvc2VXb3JkJCB8IGFzeW5jIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvaDI+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNvbnRleHQuY29udGVudFwiXG4gICAgICAgIGNsYXNzPVwidC1jb250ZW50XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRleHQuY29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiBjb250ZXh0XCI+XG4gICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL3NoZWV0LWRpYWxvZy9zaGVldC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2NvbXBvbmVudHMvc2hlZXQtZGlhbG9nL3NoZWV0LWRpYWxvZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsV0FBVyxFQUFhLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxnQkFBZ0IsRUFFaEIsYUFBYSxHQUNoQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFLOUQscURBQXFEO0FBQ3JELFNBQVMsV0FBVztJQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQ2xDLENBQUM7QUFlRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJoQyxZQUN5QyxFQUEyQixFQUNkLFFBQWdCLEVBQy9CLEtBQXFCLEVBQ3ZCLFVBQThCLEVBRXRELE9BQWlEO1FBTHJCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUMvQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUV0RCxZQUFPLEdBQVAsT0FBTyxDQUEwQztRQXRCN0MsY0FBUyxHQUF1QyxXQUFXLENBQUM7UUFFckUsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUdyQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBR0wsZUFBVSxHQUFHO1lBQ2xCLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFO2dCQUNKLEtBQUssRUFBRSxPQUFPO2dCQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUMxQjtTQUNKLENBQUM7SUFTQyxDQUFDO0lBRUosSUFDSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxPQUFPOztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxhQUFhLENBQUMsWUFBWSxLQUFJLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFNRCxlQUFlLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUV2QixJQUNJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztZQUN0QixDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQ2xDO1lBQ0UsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQztJQUdELEtBQUs7UUFDRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQThCO1FBQzFELElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRztZQUM5QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUTtTQUNoQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVksUUFBUTs7UUFDaEIsT0FBTyxNQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsYUFBYSxDQUFDLFNBQVMsbUNBQUksUUFBUSxDQUFDO0lBQzNELENBQUM7SUFHTyxRQUFRLENBQUMsS0FBeUM7UUFDdEQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUNaLENBQUMsRUFBQyxhQUFhLEVBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUM1RSxDQUFDO0lBQ04sQ0FBQzs7cUhBdkZRLHVCQUF1QixrQkFzQnBCLFVBQVUsYUFDVix1QkFBdUIsYUFDdkIsZ0JBQWdCLGFBQ2hCLGNBQWMsYUFDZCxvQkFBb0I7eUdBMUJ2Qix1QkFBdUIsd2FBUHJCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVO1NBQzFCO0tBQ0osa01DM0NMLDZ1Q0ErQ0EsMDhFRFZnQixDQUFDLGFBQWEsQ0FBQztBQXFFM0I7SUFEQyxVQUFVLENBQUMsV0FBVyxDQUFDO29EQUt2QjtBQWtCRDtJQURDLE9BQU87dURBS1A7NEZBdkZRLHVCQUF1QjtrQkFibkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDeEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDM0IsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVO3lCQUMxQjtxQkFDSjtpQkFDSjs7MEJBdUJRLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLG9CQUFvQjs0Q0F4QmYsS0FBSztzQkFEckIsU0FBUzt1QkFBQyxPQUFPO2dCQUlELFNBQVM7c0JBRHpCLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsS0FBSztzQkFESixXQUFXO3VCQUFDLGNBQWM7Z0JBSWxCLFVBQVU7c0JBRGxCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQW1CekIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGNBQWM7Z0JBTXZCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxrQkFBa0I7Z0JBYS9CLGVBQWU7c0JBSmQsWUFBWTt1QkFBQyxvQ0FBb0MsRUFBRSxDQUFDLEdBQUcsQ0FBQzs7c0JBQ3hELFlBQVk7dUJBQUMsMEJBQTBCLEVBQUUsQ0FBQyxJQUFJLENBQUM7O3NCQUMvQyxZQUFZO3VCQUFDLDZCQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDOztzQkFDbEQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBY3BDLEtBQUssTUFzQkcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SU5URVJTRUNUSU9OX1JPT1R9IGZyb20gJ0BuZy13ZWItYXBpcy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXInO1xuaW1wb3J0IHtFTVBUWV9RVUVSWSwgVHVpRGlhbG9nLCB0dWlQdXJlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0FOSU1BVElPTlNfRFVSQVRJT04sXG4gICAgVFVJX0NMT1NFX1dPUkQsXG4gICAgVFVJX0NPTU1PTl9JQ09OUyxcbiAgICBUdWlDb21tb25JY29ucyxcbiAgICB0dWlTbGlkZUluVG9wLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge3Nob3VsZENhbGx9IGZyb20gJ0B0aW5rb2ZmL25nLWV2ZW50LXBsdWdpbnMnO1xuaW1wb3J0IHtQT0xZTU9SUEhFVVNfQ09OVEVYVH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpU2hlZXREaWFsb2dPcHRpb25zfSBmcm9tICcuL3NoZWV0LWRpYWxvZy5vcHRpb25zJztcblxuLy8gU28gd2UgcmUtZW50ZXIgbmdab25lIGFuZCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbmZ1bmN0aW9uIGlzQ2xvc2VhYmxlKHRoaXM6IFR1aVNoZWV0RGlhbG9nQ29tcG9uZW50PHVua25vd24+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5jbG9zZWFibGU7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXNoZWV0LWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NoZWV0LWRpYWxvZy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zaGVldC1kaWFsb2cuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlTbGlkZUluVG9wXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogSU5URVJTRUNUSU9OX1JPT1QsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRWxlbWVudFJlZixcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTaGVldERpYWxvZ0NvbXBvbmVudDxJPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3NoZWV0JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNoZWV0PzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkcmVuKCdzdG9wcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9wc1JlZnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIHByaXZhdGUgcG9pbnRlcnMgPSAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fc3R1Y2snKVxuICAgIHN0dWNrID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ0B0dWlTbGlkZUluVG9wJylcbiAgICByZWFkb25seSBzbGlkZUluVG9wID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhcnQ6ICcxMDB2aCcsXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0FOSU1BVElPTlNfRFVSQVRJT04pIHByaXZhdGUgcmVhZG9ubHkgZHVyYXRpb246IG51bWJlcixcbiAgICAgICAgQEluamVjdChUVUlfQ09NTU9OX0lDT05TKSByZWFkb25seSBpY29uczogVHVpQ29tbW9uSWNvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX0NMT1NFX1dPUkQpIHJlYWRvbmx5IGNsb3NlV29yZCQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgQEluamVjdChQT0xZTU9SUEhFVVNfQ09OVEVYVClcbiAgICAgICAgcmVhZG9ubHkgY29udGV4dDogVHVpRGlhbG9nPFR1aVNoZWV0RGlhbG9nT3B0aW9uczxJPiwgYW55PixcbiAgICApIHt9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRvcC5weCcpXG4gICAgZ2V0IG9mZnNldCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0Lm9mZnNldDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9jbG9zZWFibGUnKVxuICAgIGdldCBjbG9zZWFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuY2xvc2VhYmxlO1xuICAgIH1cblxuICAgIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGVldFRvcCA+ICh0aGlzLnNoZWV0Py5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCB8fCBJbmZpbml0eSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hzdGFydC5wYXNzaXZlLnNpbGVudCcsIFsnMSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNoZW5kLnNpbGVudCcsIFsnLTEnXSlcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaGNhbmNlbC5zaWxlbnQnLCBbJy0xJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignc2Nyb2xsLnNpbGVudCcsIFsnMCddKVxuICAgIG9uUG9pbnRlckNoYW5nZShkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9pbnRlcnMgKz0gZGVsdGE7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmNsb3NlYWJsZSAmJlxuICAgICAgICAgICAgIXRoaXMucG9pbnRlcnMgJiZcbiAgICAgICAgICAgICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHNob3VsZENhbGwoaXNDbG9zZWFibGUpXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE86IFJlZmFjdG9yIGZvY3VzIHZpc2libGUgb24gbW9iaWxlXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnbW91c2Vkb3duJywge2J1YmJsZXM6IHRydWV9KSk7XG4gICAgICAgIHRoaXMuY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvbkludGVyc2VjdGlvbihbe2lzSW50ZXJzZWN0aW5nfV06IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0dWNrID0gaXNJbnRlcnNlY3RpbmcgJiYgIXRoaXMuaXNTbWFsbDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSBbXG4gICAgICAgICAgICAuLi50aGlzLmdldFN0b3BzKHRoaXMuc3RvcHNSZWZzKSxcbiAgICAgICAgICAgIHRoaXMuc2hlZXRUb3AsXG4gICAgICAgIF1bdGhpcy5jb250ZXh0LmluaXRpYWxdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHNoZWV0VG9wKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoZWV0Py5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcCA/PyBJbmZpbml0eTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0U3RvcHMoc3RvcHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4pOiByZWFkb25seSBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBzdG9wcy5tYXAoXG4gICAgICAgICAgICAoe25hdGl2ZUVsZW1lbnR9KSA9PiBuYXRpdmVFbGVtZW50Lm9mZnNldFRvcCArIG5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0LFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LXN0b3BzXCI+XG4gICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgc3RvcCBvZiBjb250ZXh0LnN0b3BzXCJcbiAgICAgICAgI3N0b3BzXG4gICAgICAgIGNsYXNzPVwidC1zdG9wXCJcbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwic3RvcFwiXG4gICAgPjwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gICAgI3NoZWV0XG4gICAgd2FJbnRlcnNlY3Rpb25PYnNlcnZlclxuICAgIHdhSW50ZXJzZWN0aW9uUm9vdE1hcmdpbj1cIjBweCAwcHggLTEwMCUgMHB4XCJcbiAgICBjbGFzcz1cInQtc2hlZXRcIlxuICAgIFtjbGFzcy50LXNoZWV0X3NtYWxsXT1cImlzU21hbGxcIlxuICAgICh0dWlDbGlja091dHNpZGUpPVwiY2xvc2UoKVwiXG4gICAgKHdhSW50ZXJzZWN0aW9uT2JzZXJ2ZWUpPVwib25JbnRlcnNlY3Rpb24oJGV2ZW50KVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInQtdG9wXCI+PC9kaXY+XG4gICAgPGgyXG4gICAgICAgICpuZ0lmPVwiY29udGV4dC5sYWJlbFwiXG4gICAgICAgIGNsYXNzPVwidC1oZWFkaW5nXCJcbiAgICAgICAgW2lkXT1cImNvbnRleHQuaWRcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGV4dC5sYWJlbCBhcyBsYWJlbFwiPlxuICAgICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dC5jbG9zZWFibGVcIlxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jbG9zZVwiXG4gICAgICAgICAgICBbaWNvbl09XCJpY29ucy5jbG9zZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGNsb3NlV29yZCQgfCBhc3luYyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2gyPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjb250ZXh0LmNvbnRlbnRcIlxuICAgICAgICBjbGFzcz1cInQtY29udGVudFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogY29udGV4dFwiPlxuICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -5,7 +5,6 @@ import { TuiDestroyService, TuiResizeService, EMPTY_QUERY } from '@taiga-ui/cdk'
5
5
  import * as i2 from 'rxjs';
6
6
  import { merge } from 'rxjs';
7
7
  import { map } from 'rxjs/operators';
8
- import * as i1$1 from '@taiga-ui/core';
9
8
  import { tuiButtonOptionsProvider, TuiSvgModule } from '@taiga-ui/core';
10
9
  import * as i1 from '@angular/common';
11
10
  import { CommonModule } from '@angular/common';
@@ -81,12 +80,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
81
80
  class TuiAppBarBackComponent {
82
81
  }
83
82
  TuiAppBarBackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAppBarBackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
84
- TuiAppBarBackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiAppBarBackComponent, selector: "button[tuiAppBarBack], a[tuiAppBarBack]", ngImport: i0, template: '<tui-svg src="tuiIconChevronLeftLarge"></tui-svg><ng-content></ng-content>', isInline: true, styles: [":host{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;font-size:inherit;line-height:inherit;display:flex;align-items:center;padding:0 .625rem 0 .125rem}\n"], components: [{ type: i1$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
+ TuiAppBarBackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiAppBarBackComponent, selector: "button[tuiAppBarBack], a[tuiAppBarBack]", ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n>\n <path\n d=\"M7.44025 12L14.9826 4.43872C15.5391 3.88083 15.5391 2.97631 14.9826 2.41842C14.4261 1.86053 13.5239 1.86053 12.9674 2.41842L4.41737 10.9898C3.86088 11.5477 3.86088 12.4523 4.41737 13.0102L12.9674 21.5816C13.5239 22.1395 14.4261 22.1395 14.9826 21.5816C15.5391 21.0237 15.5391 20.1192 14.9826 19.5613L7.44025 12Z\"\n fill=\"currentColor\"\n />\n</svg>\n<ng-content></ng-content>\n", styles: [":host{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;font-size:inherit;line-height:inherit;display:flex;align-items:center;padding:0 .625rem 0 .125rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
85
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAppBarBackComponent, decorators: [{
86
85
  type: Component,
87
86
  args: [{
88
87
  selector: 'button[tuiAppBarBack], a[tuiAppBarBack]',
89
- template: '<tui-svg src="tuiIconChevronLeftLarge"></tui-svg><ng-content></ng-content>',
88
+ templateUrl: './app-bar-back.template.html',
90
89
  styleUrls: ['./app-bar-back.style.less'],
91
90
  changeDetection: ChangeDetectionStrategy.OnPush,
92
91
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-app-bar.js","sources":["../../../projects/addon-mobile/components/app-bar/app-bar.providers.ts","../../../projects/addon-mobile/components/app-bar/app-bar.component.ts","../../../projects/addon-mobile/components/app-bar/app-bar.template.html","../../../projects/addon-mobile/components/app-bar/app-bar.directive.ts","../../../projects/addon-mobile/components/app-bar/app-bar-back.component.ts","../../../projects/addon-mobile/components/app-bar/app-bar.module.ts","../../../projects/addon-mobile/components/app-bar/taiga-ui-addon-mobile-components-app-bar.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {\n MUTATION_OBSERVER_INIT,\n MutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {TuiDestroyService, TuiResizeService} from '@taiga-ui/cdk';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core';\n\nexport const TUI_APP_BAR_PROVIDERS: Provider[] = [\n TuiDestroyService,\n TuiResizeService,\n MutationObserverService,\n {\n provide: MUTATION_OBSERVER_INIT,\n useValue: {\n characterData: true,\n childList: true,\n subtree: true,\n },\n },\n tuiButtonOptionsProvider({\n size: `m`,\n appearance: ``,\n }),\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {EMPTY_QUERY, TuiResizeService} from '@taiga-ui/cdk';\nimport {merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_APP_BAR_PROVIDERS} from './app-bar.providers';\n\n@Component({\n selector: 'tui-app-bar',\n templateUrl: './app-bar.template.html',\n styleUrls: ['./app-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_APP_BAR_PROVIDERS,\n})\nexport class TuiAppBarComponent {\n @ViewChildren('side')\n private readonly side: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n readonly width$ = merge(this.resize$, this.mutation$).pipe(\n map(\n () =>\n 2 *\n Math.max(\n this.side.first?.nativeElement.clientWidth,\n this.side.last?.nativeElement.clientWidth,\n ),\n ),\n );\n\n constructor(\n @Inject(TuiResizeService) private readonly resize$: Observable<unknown>,\n @Inject(MutationObserverService) private readonly mutation$: Observable<unknown>,\n ) {}\n}\n","<div\n #side\n class=\"t-left\"\n>\n <ng-content select=\"[tuiSlot='left']\"></ng-content>\n</div>\n<div\n class=\"t-content\"\n [style.--sides.px]=\"width$ | async\"\n>\n <ng-content></ng-content>\n</div>\n<div\n #side\n class=\"t-right\"\n>\n <ng-content select=\"[tuiSlot='right']\"></ng-content>\n</div>\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n selector: '[tuiSlot]',\n})\nexport class TuiAppBarDirective {\n @Input()\n tuiSlot: string | 'left' | 'right' = 'left';\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'button[tuiAppBarBack], a[tuiAppBarBack]',\n template:\n '<tui-svg src=\"tuiIconChevronLeftLarge\"></tui-svg><ng-content></ng-content>',\n styleUrls: ['./app-bar-back.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiAppBarBackComponent {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiAppBarComponent} from './app-bar.component';\nimport {TuiAppBarDirective} from './app-bar.directive';\nimport {TuiAppBarBackComponent} from './app-bar-back.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiAppBarComponent, TuiAppBarDirective, TuiAppBarBackComponent],\n exports: [TuiAppBarComponent, TuiAppBarDirective, TuiAppBarBackComponent],\n})\nexport class TuiAppBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-components-app-bar.js","sources":["../../../projects/addon-mobile/components/app-bar/app-bar.providers.ts","../../../projects/addon-mobile/components/app-bar/app-bar.component.ts","../../../projects/addon-mobile/components/app-bar/app-bar.template.html","../../../projects/addon-mobile/components/app-bar/app-bar.directive.ts","../../../projects/addon-mobile/components/app-bar/app-bar-back.component.ts","../../../projects/addon-mobile/components/app-bar/app-bar-back.template.html","../../../projects/addon-mobile/components/app-bar/app-bar.module.ts","../../../projects/addon-mobile/components/app-bar/taiga-ui-addon-mobile-components-app-bar.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {\n MUTATION_OBSERVER_INIT,\n MutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {TuiDestroyService, TuiResizeService} from '@taiga-ui/cdk';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core';\n\nexport const TUI_APP_BAR_PROVIDERS: Provider[] = [\n TuiDestroyService,\n TuiResizeService,\n MutationObserverService,\n {\n provide: MUTATION_OBSERVER_INIT,\n useValue: {\n characterData: true,\n childList: true,\n subtree: true,\n },\n },\n tuiButtonOptionsProvider({\n size: `m`,\n appearance: ``,\n }),\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {EMPTY_QUERY, TuiResizeService} from '@taiga-ui/cdk';\nimport {merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_APP_BAR_PROVIDERS} from './app-bar.providers';\n\n@Component({\n selector: 'tui-app-bar',\n templateUrl: './app-bar.template.html',\n styleUrls: ['./app-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_APP_BAR_PROVIDERS,\n})\nexport class TuiAppBarComponent {\n @ViewChildren('side')\n private readonly side: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n readonly width$ = merge(this.resize$, this.mutation$).pipe(\n map(\n () =>\n 2 *\n Math.max(\n this.side.first?.nativeElement.clientWidth,\n this.side.last?.nativeElement.clientWidth,\n ),\n ),\n );\n\n constructor(\n @Inject(TuiResizeService) private readonly resize$: Observable<unknown>,\n @Inject(MutationObserverService) private readonly mutation$: Observable<unknown>,\n ) {}\n}\n","<div\n #side\n class=\"t-left\"\n>\n <ng-content select=\"[tuiSlot='left']\"></ng-content>\n</div>\n<div\n class=\"t-content\"\n [style.--sides.px]=\"width$ | async\"\n>\n <ng-content></ng-content>\n</div>\n<div\n #side\n class=\"t-right\"\n>\n <ng-content select=\"[tuiSlot='right']\"></ng-content>\n</div>\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n selector: '[tuiSlot]',\n})\nexport class TuiAppBarDirective {\n @Input()\n tuiSlot: string | 'left' | 'right' = 'left';\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'button[tuiAppBarBack], a[tuiAppBarBack]',\n templateUrl: './app-bar-back.template.html',\n styleUrls: ['./app-bar-back.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiAppBarBackComponent {}\n","<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n>\n <path\n d=\"M7.44025 12L14.9826 4.43872C15.5391 3.88083 15.5391 2.97631 14.9826 2.41842C14.4261 1.86053 13.5239 1.86053 12.9674 2.41842L4.41737 10.9898C3.86088 11.5477 3.86088 12.4523 4.41737 13.0102L12.9674 21.5816C13.5239 22.1395 14.4261 22.1395 14.9826 21.5816C15.5391 21.0237 15.5391 20.1192 14.9826 19.5613L7.44025 12Z\"\n fill=\"currentColor\"\n />\n</svg>\n<ng-content></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiAppBarComponent} from './app-bar.component';\nimport {TuiAppBarDirective} from './app-bar.directive';\nimport {TuiAppBarBackComponent} from './app-bar-back.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiAppBarComponent, TuiAppBarDirective, TuiAppBarBackComponent],\n exports: [TuiAppBarComponent, TuiAppBarDirective, TuiAppBarBackComponent],\n})\nexport class TuiAppBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAQa,MAAA,qBAAqB,GAAe;IAC7C,iBAAiB;IACjB,gBAAgB;IAChB,uBAAuB;AACvB,IAAA;AACI,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,QAAQ,EAAE;AACN,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AAChB,SAAA;AACJ,KAAA;AACD,IAAA,wBAAwB,CAAC;AACrB,QAAA,IAAI,EAAE,CAAG,CAAA,CAAA;AACT,QAAA,UAAU,EAAE,CAAE,CAAA;KACjB,CAAC;;;MCDO,kBAAkB,CAAA;IAe3B,WAC+C,CAAA,OAA4B,EACrB,SAA8B,EAAA;QADrC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QACrB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;QAfnE,IAAI,CAAA,IAAA,GAAuC,WAAW,CAAC;AAE/D,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CACtD,GAAG,CACC,MAAK;;AACD,YAAA,OAAA,CAAC;gBACD,IAAI,CAAC,GAAG,CACJ,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC,WAAW,EAC1C,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC,WAAW,CAC5C,CAAA;AAAA,SAAA,CACR,CACJ,CAAC;KAKE;;gHAlBK,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAgBf,gBAAgB,EAAA,EAAA,EAAA,KAAA,EAChB,uBAAuB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAjB1B,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAFhB,qBAAqB,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBpC,kVAkBA,EAAA,MAAA,EAAA,CAAA,6mBAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDIa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,WAAW,EAAE,yBAAyB;oBACtC,SAAS,EAAE,CAAC,sBAAsB,CAAC;oBACnC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE,qBAAqB;AACnC,iBAAA,CAAA;;0BAiBQ,MAAM;2BAAC,gBAAgB,CAAA;;0BACvB,MAAM;2BAAC,uBAAuB,CAAA;4CAflB,IAAI,EAAA,CAAA;sBADpB,YAAY;uBAAC,MAAM,CAAA;;;MElBX,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;QAKI,IAAO,CAAA,OAAA,GAA8B,MAAM,CAAC;AAC/C,KAAA;;gHAHY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAlB,kBAAkB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACxB,iBAAA,CAAA;8BAGG,OAAO,EAAA,CAAA;sBADN,KAAK;;;MCEG,sBAAsB,CAAA;;oHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,+ECRnC,ihBAYA,EAAA,MAAA,EAAA,CAAA,kMAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDJa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,WAAW,EAAE,8BAA8B;oBAC3C,SAAS,EAAE,CAAC,2BAA2B,CAAC;oBACxC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;;;MEMY,eAAe,CAAA;;6GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAHT,YAAA,EAAA,CAAA,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,CAAA,EAAA,OAAA,EAAA,CADnE,YAAY,EAAE,YAAY,CAE1B,EAAA,OAAA,EAAA,CAAA,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAE/D,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJf,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;4FAI5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AACrC,oBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;AAC9E,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;AAC5E,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
@@ -5,7 +5,7 @@ import { InjectionToken, Optional, ChangeDetectorRef, EventEmitter, Component, C
5
5
  import * as i7 from '@taiga-ui/cdk';
6
6
  import { MONTHS_IN_YEAR, tuiPure, TuiDestroyService, TuiScrollService, TUI_IS_IOS, tuiWatch, TuiDay, TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, TuiDayRange, tuiTypedFromEvent, TUI_IS_CYPRESS, TuiMapperPipeModule } from '@taiga-ui/cdk';
7
7
  import * as i1 from '@taiga-ui/core';
8
- import { TUI_CLOSE_WORD, TUI_SHORT_WEEK_DAYS, TUI_ANIMATIONS_DURATION, TuiLinkModule, TuiButtonModule, TuiMonthPipeModule, TuiOrderWeekDaysPipeModule } from '@taiga-ui/core';
8
+ import { TUI_COMMON_ICONS, TUI_CLOSE_WORD, TUI_SHORT_WEEK_DAYS, TUI_ANIMATIONS_DURATION, TuiLinkModule, TuiButtonModule, TuiMonthPipeModule, TuiOrderWeekDaysPipeModule } from '@taiga-ui/core';
9
9
  import { TUI_CALENDAR_DATE_STREAM, TUI_CANCEL_WORD, TUI_DONE_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS } from '@taiga-ui/kit';
10
10
  import * as i8 from 'rxjs';
11
11
  import { Subject, EMPTY, identity, race, timer } from 'rxjs';
@@ -185,11 +185,12 @@ const TUI_MOBILE_CALENDAR_PROVIDERS = [
185
185
  ];
186
186
 
187
187
  class TuiMobileCalendarComponent {
188
- constructor(isIOS, isCypress, doc, destroy$, valueChanges, closeWord$, cancelWord$, doneWord$, unorderedWeekDays$, chooseDayOrRangeTexts$, duration) {
188
+ constructor(isIOS, isCypress, doc, destroy$, valueChanges, icons, closeWord$, cancelWord$, doneWord$, unorderedWeekDays$, chooseDayOrRangeTexts$, duration) {
189
189
  this.isIOS = isIOS;
190
190
  this.isCypress = isCypress;
191
191
  this.doc = doc;
192
192
  this.destroy$ = destroy$;
193
+ this.icons = icons;
193
194
  this.closeWord$ = closeWord$;
194
195
  this.cancelWord$ = cancelWord$;
195
196
  this.doneWord$ = doneWord$;
@@ -382,8 +383,8 @@ class TuiMobileCalendarComponent {
382
383
  return (year - this.activeYear) * MONTHS_IN_YEAR;
383
384
  }
384
385
  }
385
- TuiMobileCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileCalendarComponent, deps: [{ token: TUI_IS_IOS }, { token: TUI_IS_CYPRESS }, { token: DOCUMENT }, { token: TuiDestroyService, self: true }, { token: TUI_VALUE_STREAM }, { token: TUI_CLOSE_WORD }, { token: TUI_CANCEL_WORD }, { token: TUI_DONE_WORD }, { token: TUI_SHORT_WEEK_DAYS }, { token: TUI_CHOOSE_DAY_OR_RANGE_TEXTS }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Component });
386
- TuiMobileCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMobileCalendarComponent, selector: "tui-mobile-calendar", inputs: { single: "single", min: "min", max: "max", disabledItemHandler: "disabledItemHandler" }, outputs: { cancel: "cancel", confirm: "confirm" }, host: { properties: { "class._ios": "isIOS" } }, providers: TUI_MOBILE_CALENDAR_PROVIDERS, viewQueries: [{ propertyName: "yearsScrollRef", first: true, predicate: ["yearsScrollRef"], descendants: true }, { propertyName: "monthsScrollRef", first: true, predicate: ["monthsScrollRef"], descendants: true }], ngImport: i0, template: "<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n icon=\"tuiIconXLarge\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n type=\"button\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerMapper : min : max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\n", styles: [":host{display:block;height:100%;font-family:-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:var(--tui-text-01);-webkit-tap-highlight-color:transparent}.t-header{position:relative;display:flex;align-items:center;height:3.5rem;padding:0 1rem;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-header{height:2.75rem;border-bottom:none}.t-close{width:1.5rem;height:1.5rem;margin-right:2rem}:host._ios .t-close{display:none}.t-link{margin-left:auto;flex-shrink:0;font-size:.875rem;line-height:1rem;font-weight:500;text-transform:uppercase;color:var(--tui-link)}.t-link_close{display:none}:host._ios .t-link{min-width:3.75rem;text-align:right;font-size:.9375rem;line-height:1.125rem;font-weight:400;letter-spacing:.018125rem;text-transform:none}:host._ios .t-link_close{display:block;margin:0 auto 0 0;text-align:left}.t-label{position:relative;overflow:hidden;flex-grow:1;margin:0;font-size:1.25rem;line-height:3.5rem;font-weight:500;letter-spacing:-.0125rem;white-space:nowrap}.t-label:after{content:\"\";position:absolute;top:0;right:0;width:1.875rem;height:100%;background-image:linear-gradient(to right,transparent 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%);pointer-events:none}:host._ios .t-label{font-size:1.0625rem;font-weight:600;letter-spacing:-.025625rem;text-align:center}.t-label:after{background-image:linear-gradient(to right,rgba(255,255,255,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}:host-context([data-mode=\"onDark\"]) .t-label:after{background-image:linear-gradient(to right,rgba(34,34,34,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}.t-years{scrollbar-width:none;-ms-overflow-style:none;height:4.0625rem;background-color:var(--tui-base-01);box-shadow:0 .5px var(--tui-base-03)}.t-years::-webkit-scrollbar,.t-years::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-years{background-color:transparent}.t-years-wrapper{display:flex;height:4.0625rem}.t-year{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;outline:none;width:20vw;flex-shrink:0;font-size:.9375rem;font-weight:700;letter-spacing:.015625rem;cursor:pointer;opacity:.1;transform:scale(.73);transition:color,opacity,transform .2s}.t-year[data-state=adjacent]{transform:scale(.86);opacity:.3}.t-year[data-state=active]{color:var(--tui-link);opacity:1;transform:scale(1)}.t-week{display:flex;align-items:center;height:1.875rem;width:20.75rem;max-width:100%;margin:0 auto;font-size:.75rem}:host._ios .t-week{width:22.625rem;font-size:.6875rem;font-weight:500;color:var(--tui-text-02)}.t-day{flex:1;text-align:center}.t-months{scrollbar-width:none;-ms-overflow-style:none;height:calc(100% - 9.5rem);box-shadow:0 -1px var(--tui-base-03);overflow-x:hidden}.t-months::-webkit-scrollbar,.t-months::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-months{height:calc(100% - 8.75rem)}.t-month-wrapper{margin:.625rem 0 -.625rem}.t-month{height:2.75rem;line-height:2.75rem;padding-left:1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;margin:0 0 1.25rem;box-sizing:border-box;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-month{height:3.125rem;margin:0;border-bottom:none;text-transform:none;font-size:1.375rem;line-height:3.125rem;letter-spacing:.02rem;font-weight:700}.t-calendar{margin:0 auto;font-family:inherit;font-size:1.125rem;transition:opacity .2s}:host._ios .t-calendar{font-size:1.0625rem}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i3.TuiPrimitiveCalendarMobileComponent, selector: "tui-primitive-calendar-mobile" }], directives: [{ type: i4.TuiRippleDirective, selector: "[tuiRipple]", inputs: ["tuiRipple"] }, { type: i5.TuiTouchableDirective, selector: "[tuiTouchable]", inputs: ["tuiTouchable"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "tuiOrderWeekDays": i1.TuiOrderWeekDaysPipe, "tuiMonth": i1.TuiMonthPipe, "tuiMapper": i7.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
386
+ TuiMobileCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileCalendarComponent, deps: [{ token: TUI_IS_IOS }, { token: TUI_IS_CYPRESS }, { token: DOCUMENT }, { token: TuiDestroyService, self: true }, { token: TUI_VALUE_STREAM }, { token: TUI_COMMON_ICONS }, { token: TUI_CLOSE_WORD }, { token: TUI_CANCEL_WORD }, { token: TUI_DONE_WORD }, { token: TUI_SHORT_WEEK_DAYS }, { token: TUI_CHOOSE_DAY_OR_RANGE_TEXTS }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Component });
387
+ TuiMobileCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMobileCalendarComponent, selector: "tui-mobile-calendar", inputs: { single: "single", min: "min", max: "max", disabledItemHandler: "disabledItemHandler" }, outputs: { cancel: "cancel", confirm: "confirm" }, host: { properties: { "class._ios": "isIOS" } }, providers: TUI_MOBILE_CALENDAR_PROVIDERS, viewQueries: [{ propertyName: "yearsScrollRef", first: true, predicate: ["yearsScrollRef"], descendants: true }, { propertyName: "monthsScrollRef", first: true, predicate: ["monthsScrollRef"], descendants: true }], ngImport: i0, template: "<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [icon]=\"icons.close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n type=\"button\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerMapper : min : max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\n", styles: [":host{display:block;height:100%;font-family:-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:var(--tui-text-01);-webkit-tap-highlight-color:transparent}.t-header{position:relative;display:flex;align-items:center;height:3.5rem;padding:0 1rem;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-header{height:2.75rem;border-bottom:none}.t-close{width:1.5rem;height:1.5rem;margin-right:2rem}:host._ios .t-close{display:none}.t-link{margin-left:auto;flex-shrink:0;font-size:.875rem;line-height:1rem;font-weight:500;text-transform:uppercase;color:var(--tui-link)}.t-link_close{display:none}:host._ios .t-link{min-width:3.75rem;text-align:right;font-size:.9375rem;line-height:1.125rem;font-weight:400;letter-spacing:.018125rem;text-transform:none}:host._ios .t-link_close{display:block;margin:0 auto 0 0;text-align:left}.t-label{position:relative;overflow:hidden;flex-grow:1;margin:0;font-size:1.25rem;line-height:3.5rem;font-weight:500;letter-spacing:-.0125rem;white-space:nowrap}.t-label:after{content:\"\";position:absolute;top:0;right:0;width:1.875rem;height:100%;background-image:linear-gradient(to right,transparent 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%);pointer-events:none}:host._ios .t-label{font-size:1.0625rem;font-weight:600;letter-spacing:-.025625rem;text-align:center}.t-label:after{background-image:linear-gradient(to right,rgba(255,255,255,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}:host-context([data-mode=\"onDark\"]) .t-label:after{background-image:linear-gradient(to right,rgba(34,34,34,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}.t-years{scrollbar-width:none;-ms-overflow-style:none;height:4.0625rem;background-color:var(--tui-base-01);box-shadow:0 .5px var(--tui-base-03)}.t-years::-webkit-scrollbar,.t-years::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-years{background-color:transparent}.t-years-wrapper{display:flex;height:4.0625rem}.t-year{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;outline:none;width:20vw;flex-shrink:0;font-size:.9375rem;font-weight:700;letter-spacing:.015625rem;cursor:pointer;opacity:.1;transform:scale(.73);transition:color,opacity,transform .2s}.t-year[data-state=adjacent]{transform:scale(.86);opacity:.3}.t-year[data-state=active]{color:var(--tui-link);opacity:1;transform:scale(1)}.t-week{display:flex;align-items:center;height:1.875rem;width:20.75rem;max-width:100%;margin:0 auto;font-size:.75rem}:host._ios .t-week{width:22.625rem;font-size:.6875rem;font-weight:500;color:var(--tui-text-02)}.t-day{flex:1;text-align:center}.t-months{scrollbar-width:none;-ms-overflow-style:none;height:calc(100% - 9.5rem);box-shadow:0 -1px var(--tui-base-03);overflow-x:hidden}.t-months::-webkit-scrollbar,.t-months::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-months{height:calc(100% - 8.75rem)}.t-month-wrapper{margin:.625rem 0 -.625rem}.t-month{height:2.75rem;line-height:2.75rem;padding-left:1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;margin:0 0 1.25rem;box-sizing:border-box;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-month{height:3.125rem;margin:0;border-bottom:none;text-transform:none;font-size:1.375rem;line-height:3.125rem;letter-spacing:.02rem;font-weight:700}.t-calendar{margin:0 auto;font-family:inherit;font-size:1.125rem;transition:opacity .2s}:host._ios .t-calendar{font-size:1.0625rem}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i3.TuiPrimitiveCalendarMobileComponent, selector: "tui-primitive-calendar-mobile" }], directives: [{ type: i4.TuiRippleDirective, selector: "[tuiRipple]", inputs: ["tuiRipple"] }, { type: i5.TuiTouchableDirective, selector: "[tuiTouchable]", inputs: ["tuiTouchable"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "tuiOrderWeekDays": i1.TuiOrderWeekDaysPipe, "tuiMonth": i1.TuiMonthPipe, "tuiMapper": i7.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
387
388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileCalendarComponent, decorators: [{
388
389
  type: Component,
389
390
  args: [{
@@ -411,6 +412,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
411
412
  }] }, { type: i8.Observable, decorators: [{
412
413
  type: Inject,
413
414
  args: [TUI_VALUE_STREAM]
415
+ }] }, { type: undefined, decorators: [{
416
+ type: Inject,
417
+ args: [TUI_COMMON_ICONS]
414
418
  }] }, { type: i8.Observable, decorators: [{
415
419
  type: Inject,
416
420
  args: [TUI_CLOSE_WORD]