@taiga-ui/addon-doc 3.13.0 → 3.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,53 +1,42 @@
1
1
  import { Location } from '@angular/common';
2
- import { AfterViewInit, OnInit, Renderer2, TemplateRef } from '@angular/core';
3
- import { AbstractControl, FormControl, FormGroup } from '@angular/forms';
2
+ import { ElementRef, OnInit, TemplateRef } from '@angular/core';
3
+ import { AbstractControl, FormGroup } from '@angular/forms';
4
4
  import { UrlSerializer } from '@angular/router';
5
- import { TuiDestroyService } from '@taiga-ui/cdk';
6
5
  import { TuiBrightness } from '@taiga-ui/core';
7
6
  import { Subject } from 'rxjs';
8
7
  import * as i0 from "@angular/core";
9
- export declare class TuiDocDemoComponent implements OnInit, AfterViewInit {
8
+ export declare class TuiDocDemoComponent implements OnInit {
10
9
  readonly isMobile: boolean;
11
- private readonly destroy$;
12
- private readonly renderer;
10
+ private readonly elementRef;
13
11
  private readonly locationRef;
14
12
  private readonly urlSerializer;
15
13
  readonly texts: [string, string, string];
14
+ private readonly resizeable?;
16
15
  private readonly content?;
17
- private readonly wrapper?;
18
- private readonly resizerText?;
19
- private readonly isBrowser;
20
- private initialX;
21
- private wrapperWidth;
16
+ private readonly resizer?;
22
17
  control: AbstractControl | null;
23
18
  readonly template: TemplateRef<Record<string, unknown>> | null;
24
19
  testForm?: FormGroup;
25
- updateOnVariants: string[];
20
+ readonly updateOnVariants: readonly ["change", "blur", "submit"];
26
21
  updateOn: 'blur' | 'change' | 'submit';
27
22
  expanded: boolean;
28
23
  opaque: boolean;
29
- modeControl: FormControl;
30
24
  mode: TuiBrightness | null;
25
+ sandboxWidth: number;
31
26
  readonly change$: Subject<void>;
32
27
  readonly items: readonly TuiBrightness[];
33
- constructor(isMobile: boolean, destroy$: TuiDestroyService, renderer: Renderer2, platformId: Record<string, unknown>, locationRef: Location, urlSerializer: UrlSerializer, texts: [string, string, string]);
28
+ constructor(isMobile: boolean, elementRef: ElementRef<HTMLElement>, locationRef: Location, urlSerializer: UrlSerializer, texts: [string, string, string]);
34
29
  onResize(): void;
30
+ onMouseUp(): void;
35
31
  ngOnInit(): void;
36
- ngAfterViewInit(): void;
37
- setResizerTextContent(): void;
38
- onDragStart(event: MouseEvent): void;
39
- onDragContinues(event: MouseEvent): void;
40
- onDragEnd(): void;
32
+ onModeChange(mode: TuiBrightness | null): void;
41
33
  toggleDetails(): void;
42
34
  updateOnChange(updateOn: 'blur' | 'change' | 'submit'): void;
43
- private createForm;
44
- private resizeContent;
45
- private setWidthWrapper;
35
+ updateWidth(width?: number): void;
36
+ private get delta();
46
37
  private updateUrl;
38
+ private createForm;
47
39
  private getUrlTree;
48
- private getPaddingOfWrapper;
49
- private getResizeButtonWidth;
50
- private updateSandboxWidth;
51
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocDemoComponent, [null, { self: true; }, null, null, null, null, null]>;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocDemoComponent, never>;
52
41
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiDocDemoComponent, "tui-doc-demo", never, { "control": "control"; }, {}, ["template"], ["*"]>;
53
42
  }
@@ -4,10 +4,10 @@ import * as i2 from "@angular/common";
4
4
  import * as i3 from "@angular/forms";
5
5
  import * as i4 from "@angular/router";
6
6
  import * as i5 from "@taiga-ui/core";
7
- import * as i6 from "@taiga-ui/cdk";
8
- import * as i7 from "@taiga-ui/kit";
7
+ import * as i6 from "@taiga-ui/kit";
8
+ import * as i7 from "@taiga-ui/cdk";
9
9
  export declare class TuiDocDemoModule {
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocDemoModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<TuiDocDemoModule, [typeof i1.TuiDocDemoComponent], [typeof i2.CommonModule, typeof i3.ReactiveFormsModule, typeof i3.FormsModule, typeof i4.RouterModule, typeof i5.TuiLinkModule, typeof i6.TuiDragModule, typeof i5.TuiButtonModule, typeof i7.TuiSelectModule, typeof i5.TuiExpandModule, typeof i5.TuiGroupModule, typeof i5.TuiTooltipModule, typeof i5.TuiModeModule, typeof i7.TuiRadioBlockModule, typeof i7.TuiCheckboxLabeledModule, typeof i5.TuiSvgModule, typeof i7.TuiDataListWrapperModule, typeof i5.TuiDataListModule, typeof i5.TuiTextfieldControllerModule, typeof i5.TuiHintModule], [typeof i1.TuiDocDemoComponent]>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TuiDocDemoModule, [typeof i1.TuiDocDemoComponent], [typeof i2.CommonModule, typeof i3.ReactiveFormsModule, typeof i3.FormsModule, typeof i4.RouterModule, typeof i5.TuiLinkModule, typeof i5.TuiButtonModule, typeof i6.TuiSelectModule, typeof i5.TuiExpandModule, typeof i5.TuiGroupModule, typeof i5.TuiTooltipModule, typeof i5.TuiModeModule, typeof i6.TuiRadioBlockModule, typeof i6.TuiCheckboxLabeledModule, typeof i5.TuiSvgModule, typeof i6.TuiDataListWrapperModule, typeof i5.TuiDataListModule, typeof i5.TuiTextfieldControllerModule, typeof i5.TuiHintModule, typeof i7.TuiResizerModule], [typeof i1.TuiDocDemoComponent]>;
12
12
  static ɵinj: i0.ɵɵInjectorDeclaration<TuiDocDemoModule>;
13
13
  }
@@ -20,7 +20,7 @@ export class TuiDocCodeComponent {
20
20
  }
21
21
  }
22
22
  TuiDocCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- TuiDocCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: { filename: "filename", code: "code" }, host: { properties: { "class._has-filename": "this.hasFilename" } }, ngImport: i0, template: "<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{ filename }}\n</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n", styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:bold}.t-code{margin:0}.t-code+.t-code{margin-top:1rem}.hljs:not(:empty){font:var(--tui-font-text-m);padding:1.5rem 2rem;font-family:monospace;background:var(--tui-clear-disabled);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.hljs:not(:empty)::-webkit-scrollbar,.hljs:not(:empty)::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:2.667rem solid transparent}.hljs:not(:empty)::-webkit-scrollbar{background-color:transparent}.hljs:not(:empty)::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.hljs:not(:empty)::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.hljs:not(:empty)::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host._has-filename .hljs:not(:empty){border-radius:.75rem}:host-context(tui-root._mobile) .hljs:not(:empty){padding:1rem}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }], pipes: { "async": i1.AsyncPipe } });
23
+ TuiDocCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: { filename: "filename", code: "code" }, host: { properties: { "class._has-filename": "this.hasFilename" } }, ngImport: i0, template: "<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{ filename }}\n</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n", styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:bold}.t-code{margin:0}.t-code+.t-code{margin-top:1rem}.hljs:not(:empty){font:var(--tui-font-text-m);padding:1.5rem 2rem;font-family:monospace;background:var(--tui-clear);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.hljs:not(:empty)::-webkit-scrollbar,.hljs:not(:empty)::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:2.667rem solid transparent}.hljs:not(:empty)::-webkit-scrollbar{background-color:transparent}.hljs:not(:empty)::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.hljs:not(:empty)::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.hljs:not(:empty)::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host._has-filename .hljs:not(:empty){border-radius:.75rem}:host-context(tui-root._mobile) .hljs:not(:empty){padding:1rem}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }], pipes: { "async": i1.AsyncPipe } });
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{
@@ -1,12 +1,11 @@
1
1
  import { __decorate } from "tslib";
2
- import { isPlatformBrowser, Location } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, ContentChild, forwardRef, HostListener, Inject, Input, PLATFORM_ID, Renderer2, Self, TemplateRef, ViewChild, } from '@angular/core';
4
- import { FormControl, FormGroup } from '@angular/forms';
2
+ import { Location } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, forwardRef, HostListener, Inject, Input, TemplateRef, ViewChild, } from '@angular/core';
4
+ import { FormGroup } from '@angular/forms';
5
5
  import { UrlSerializer } from '@angular/router';
6
- import { TUI_IS_MOBILE, tuiDebounce, TuiDestroyService, tuiPx } from '@taiga-ui/cdk';
6
+ import { TUI_IS_MOBILE, tuiClamp, TuiDestroyService, tuiPure, tuiPx, TuiResizeableDirective, } from '@taiga-ui/cdk';
7
7
  import { TuiModeDirective } from '@taiga-ui/core';
8
8
  import { Subject } from 'rxjs';
9
- import { startWith, takeUntil } from 'rxjs/operators';
10
9
  import { TUI_DOC_DEMO_TEXTS } from '../../tokens/i18n';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "@taiga-ui/core";
@@ -15,75 +14,40 @@ import * as i3 from "@angular/router";
15
14
  import * as i4 from "@angular/common";
16
15
  import * as i5 from "@angular/forms";
17
16
  import * as i6 from "@taiga-ui/cdk";
18
- const MIN_COMPONENT_WIDTH = 104;
17
+ const MIN_WIDTH = 160;
19
18
  export class TuiDocDemoComponent {
20
- constructor(isMobile, destroy$, renderer, platformId, locationRef, urlSerializer, texts) {
19
+ constructor(isMobile, elementRef, locationRef, urlSerializer, texts) {
21
20
  this.isMobile = isMobile;
22
- this.destroy$ = destroy$;
23
- this.renderer = renderer;
21
+ this.elementRef = elementRef;
24
22
  this.locationRef = locationRef;
25
23
  this.urlSerializer = urlSerializer;
26
24
  this.texts = texts;
27
- this.initialX = 0;
28
- this.wrapperWidth = 0;
29
25
  this.control = null;
30
26
  this.template = null;
31
27
  this.updateOnVariants = [`change`, `blur`, `submit`];
32
- this.updateOn = `change`;
28
+ this.updateOn = this.updateOnVariants[0];
33
29
  this.expanded = false;
34
30
  this.opaque = true;
35
- this.modeControl = new FormControl();
36
- this.mode = null;
31
+ this.mode = this.getUrlTree().queryParams.tuiMode || null;
32
+ this.sandboxWidth = parseInt(this.getUrlTree().queryParams.sandboxWidth, 10);
37
33
  this.change$ = new Subject();
38
34
  this.items = [`onLight`, `onDark`];
39
- this.isBrowser = isPlatformBrowser(platformId);
40
- const parsedMode = locationRef.path().match(/tuiMode=(onDark|onLight)/);
41
- if (parsedMode !== null && parsedMode.length > 0) {
42
- this.modeControl.setValue(parsedMode[1]);
43
- }
44
35
  }
45
36
  onResize() {
46
- this.setResizerTextContent();
37
+ this.updateWidth();
38
+ this.onMouseUp();
39
+ }
40
+ onMouseUp() {
41
+ this.updateUrl(this.mode, this.sandboxWidth);
47
42
  }
48
43
  ngOnInit() {
49
44
  this.createForm();
45
+ this.updateWidth(this.sandboxWidth + this.delta);
50
46
  }
51
- ngAfterViewInit() {
52
- this.modeControl.valueChanges
53
- .pipe(startWith(this.modeControl.value), takeUntil(this.destroy$))
54
- .subscribe(mode => {
55
- this.updateUrl(mode);
56
- const wrapperWidth = parseInt(this.getUrlTree().queryParams.sandboxWidth, 10) +
57
- this.getPaddingOfWrapper() +
58
- this.getResizeButtonWidth();
59
- if (!Number.isNaN(wrapperWidth)) {
60
- this.wrapperWidth = wrapperWidth;
61
- this.setWidthWrapper(tuiPx(wrapperWidth));
62
- }
63
- this.setResizerTextContent();
64
- this.mode = mode;
65
- this.change$.next();
66
- });
67
- }
68
- setResizerTextContent() {
69
- if (!this.content || !this.resizerText) {
70
- return;
71
- }
72
- this.resizerText.nativeElement.textContent = (this.content.nativeElement.offsetWidth - this.getPaddingOfWrapper()).toString();
73
- }
74
- onDragStart(event) {
75
- event.preventDefault();
76
- this.initialX = event.clientX;
77
- this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;
78
- }
79
- onDragContinues(event) {
80
- const deltaX = this.initialX - event.clientX;
81
- this.resizeContent(deltaX);
82
- this.setResizerTextContent();
83
- }
84
- onDragEnd() {
85
- this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;
86
- this.updateSandboxWidth();
47
+ onModeChange(mode) {
48
+ this.updateUrl(mode, this.sandboxWidth);
49
+ this.mode = mode;
50
+ this.change$.next();
87
51
  }
88
52
  toggleDetails() {
89
53
  this.expanded = !this.expanded;
@@ -92,63 +56,55 @@ export class TuiDocDemoComponent {
92
56
  this.updateOn = updateOn;
93
57
  this.createForm();
94
58
  }
95
- createForm() {
96
- const { control, updateOn } = this;
97
- if (!control) {
59
+ updateWidth(width = NaN) {
60
+ if (!this.resizer || !this.resizeable || !this.content) {
98
61
  return;
99
62
  }
100
- this.testForm = new FormGroup({ testValue: control }, { updateOn });
101
- }
102
- resizeContent(delta) {
103
- this.setWidthWrapper(tuiPx(Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)));
63
+ const safe = width || this.resizeable.nativeElement.clientWidth;
64
+ const total = this.elementRef.nativeElement.clientWidth;
65
+ const clamped = Math.round(tuiClamp(safe, MIN_WIDTH, total)) - this.delta;
66
+ const validated = safe < total ? clamped : NaN;
67
+ this.resizer.nativeElement.textContent = String(clamped);
68
+ this.resizeable.nativeElement.style.width = validated ? tuiPx(safe) : ``;
69
+ this.sandboxWidth = validated;
70
+ }
71
+ get delta() {
72
+ return this.resizeable && this.content
73
+ ? this.resizeable.nativeElement.clientWidth -
74
+ this.content.nativeElement.clientWidth
75
+ : 0;
76
+ }
77
+ updateUrl(tuiMode, sandboxWidth) {
78
+ const urlTree = this.getUrlTree();
79
+ const { queryParams } = urlTree;
80
+ const modeParam = tuiMode ? { tuiMode } : {};
81
+ const resizeParam = !Number.isNaN(sandboxWidth) ? { sandboxWidth } : {};
82
+ delete queryParams.sandboxWidth;
83
+ delete queryParams.tuiMode;
84
+ urlTree.queryParams = Object.assign(Object.assign(Object.assign({}, queryParams), modeParam), resizeParam);
85
+ this.locationRef.replaceState(String(urlTree));
104
86
  }
105
- setWidthWrapper(width) {
106
- if (!this.wrapper) {
107
- return;
87
+ createForm() {
88
+ const { control, updateOn } = this;
89
+ if (control) {
90
+ this.testForm = new FormGroup({ testValue: control }, { updateOn });
108
91
  }
109
- this.renderer.setStyle(this.wrapper.nativeElement, `width`, width);
110
- }
111
- updateUrl(mode) {
112
- const urlTree = this.getUrlTree();
113
- const modeParam = (mode !== null && mode !== void 0 ? mode : urlTree.queryParams.tuiMode) ? { tuiMode: mode } : {};
114
- const sandboxWidth = parseInt(urlTree.queryParams.sandboxWidth, 10);
115
- const resizeParam = !Number.isNaN(sandboxWidth) && MIN_COMPONENT_WIDTH > sandboxWidth
116
- ? { sandboxWidth }
117
- : {};
118
- urlTree.queryParams = Object.assign(Object.assign(Object.assign({}, urlTree.queryParams), modeParam), resizeParam);
119
- this.locationRef.go(String(urlTree));
120
92
  }
121
93
  getUrlTree() {
122
94
  return this.urlSerializer.parse(this.locationRef.path());
123
95
  }
124
- getPaddingOfWrapper() {
125
- const paddingLeft = this.isBrowser && this.content
126
- ? getComputedStyle(this.content.nativeElement).paddingLeft
127
- : `0`;
128
- return parseInt(paddingLeft || `0`, 10) * 2;
129
- }
130
- getResizeButtonWidth() {
131
- var _a, _b, _c;
132
- return (_c = (_b = (_a = this.resizerText) === null || _a === void 0 ? void 0 : _a.nativeElement.parentElement) === null || _b === void 0 ? void 0 : _b.offsetWidth) !== null && _c !== void 0 ? _c : 0;
133
- }
134
- updateSandboxWidth() {
135
- var _a, _b;
136
- const urlTree = this.getUrlTree();
137
- urlTree.queryParams.sandboxWidth = parseInt((_b = (_a = this.resizerText) === null || _a === void 0 ? void 0 : _a.nativeElement.textContent) !== null && _b !== void 0 ? _b : `0`, 10);
138
- this.locationRef.go(String(urlTree));
139
- }
140
96
  }
141
- TuiDocDemoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocDemoComponent, deps: [{ token: TUI_IS_MOBILE }, { token: TuiDestroyService, self: true }, { token: Renderer2 }, { token: PLATFORM_ID }, { token: Location }, { token: UrlSerializer }, { token: TUI_DOC_DEMO_TEXTS }], target: i0.ɵɵFactoryTarget.Component });
142
- TuiDocDemoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocDemoComponent, selector: "tui-doc-demo", inputs: { control: "control" }, host: { listeners: { "window:resize": "onResize()" } }, providers: [
97
+ TuiDocDemoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocDemoComponent, deps: [{ token: TUI_IS_MOBILE }, { token: ElementRef }, { token: Location }, { token: UrlSerializer }, { token: TUI_DOC_DEMO_TEXTS }], target: i0.ɵɵFactoryTarget.Component });
98
+ TuiDocDemoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocDemoComponent, selector: "tui-doc-demo", inputs: { control: "control" }, host: { listeners: { "window:resize": "onResize()", "document:mouseup.silent": "onMouseUp()" } }, providers: [
143
99
  TuiDestroyService,
144
100
  {
145
101
  provide: TuiModeDirective,
146
102
  useExisting: forwardRef(() => TuiDocDemoComponent),
147
103
  },
148
- ], queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "resizerText", first: true, predicate: ["resizerText"], descendants: true }], ngImport: i0, template: "<div\n class=\"t-bg-toggle\"\n [tuiMode]=\"null\"\n>\n <ng-template #tooltip>\n {{ texts[0] }}\n <a\n tuiLink\n tuiMode=\"onDark\"\n routerLink=\"/directives/mode\"\n >\n <code>tuiMode</code>\n </a>\n </ng-template>\n <ng-container *ngIf=\"isMobile; else desktop\">\n <tui-select\n tuiTextfieldSize=\"s\"\n class=\"t-mode\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHintContent]=\"tooltip\"\n [formControl]=\"modeControl\"\n >\n tuiMode\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n ></tui-data-list-wrapper>\n </tui-select>\n </ng-container>\n <ng-template #desktop>\n tuiMode:\n <tui-tooltip\n describeId=\"form\"\n [content]=\"tooltip\"\n ></tui-tooltip>\n <div\n tuiGroup\n class=\"t-group\"\n [collapsed]=\"true\"\n >\n <tui-radio-block\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [item]=\"null\"\n [hideRadio]=\"true\"\n [formControl]=\"modeControl\"\n >\n null\n </tui-radio-block>\n <tui-radio-block\n item=\"onDark\"\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [formControl]=\"modeControl\"\n >\n onDark\n </tui-radio-block>\n <tui-radio-block\n item=\"onLight\"\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [formControl]=\"modeControl\"\n >\n onLight\n </tui-radio-block>\n </div>\n </ng-template>\n <tui-checkbox-labeled\n size=\"m\"\n class=\"t-checkbox\"\n [(ngModel)]=\"opaque\"\n >\n {{ texts[1] }}\n </tui-checkbox-labeled>\n</div>\n<div\n #wrapper\n class=\"t-wrapper\"\n [class.t-wrapper_dark]=\"modeControl.value === 'onDark'\"\n [class.t-wrapper_gray]=\"modeControl.value === 'onLight'\"\n [class.t-wrapper_transparent]=\"!opaque\"\n>\n <div\n #content\n id=\"demoContent\"\n class=\"t-content\"\n >\n <form\n *ngIf=\"testForm\"\n class=\"t-form\"\n [formGroup]=\"testForm\"\n >\n <div class=\"t-input-wrapper\">\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n </div>\n <button\n tuiButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [iconRight]=\"icon\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\n <ng-template #icon>\n <tui-svg\n src=\"tuiIconChevronDown\"\n class=\"t-icon\"\n [class.t-icon_rotated]=\"expanded\"\n ></tui-svg>\n </ng-template>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"expanded\"\n >\n <ng-template tuiExpandContent>\n <pre class=\"t-value\">Form data: {{ testForm.value | json }}</pre>\n <div\n tuiGroup\n class=\"t-form-controls\"\n >\n <tui-select\n tuiTextfieldSize=\"s\"\n class=\"t-select\"\n [ngModel]=\"updateOn\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"updateOnChange($event)\"\n >\n updateOn\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"updateOnVariants\"\n ></tui-data-list-wrapper>\n </tui-select>\n <button\n tuiButton\n type=\"reset\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n >\n Reset\n </button>\n <button\n tuiButton\n type=\"submit\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content></ng-content>\n </div>\n <button\n tabindex=\"-1\"\n class=\"t-resizer\"\n (tuiDragStart)=\"onDragStart($event)\"\n (tuiDragContinues)=\"onDragContinues($event)\"\n (tuiDragEnd)=\"onDragEnd()\"\n >\n <span\n #resizerText\n class=\"t-resizer-text\"\n ></span>\n </button>\n</div>\n", styles: [":host{position:relative;display:block;min-width:100%;margin:1.5rem 0}.t-bg-toggle{position:absolute;bottom:calc(100% + .75rem);display:flex;align-items:center;justify-content:flex-end;pointer-events:none;width:100%}.t-bg-toggle>*{pointer-events:auto}.t-wrapper{box-shadow:0 1.5rem 1rem rgba(0,0,0,.03),0 .75rem .75rem rgba(0,0,0,.04),0 .25rem .375rem rgba(0,0,0,.05);display:flex;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);max-width:100%;min-height:6rem;width:100%;background-color:var(--tui-base-01);overflow:hidden}.t-wrapper.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-base-02) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-base-02) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-base-02) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-base-02) 75%);background-size:1.25rem 1.25rem;background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0}.t-wrapper.t-wrapper_dark{background-color:#454e58;color:var(--tui-base-01)}.t-wrapper.t-wrapper_gray{background-color:#e5e7ea}.t-wrapper.t-wrapper_dark.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-focus) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-focus) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-focus) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-focus) 75%)}.t-wrapper.t-wrapper_gray.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-base-05) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-base-05) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-base-05) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-base-05) 75%)}:host-context(tui-root._mobile) .t-wrapper{min-height:auto}.t-content{flex:1 1 0;min-width:0;padding:1.5rem;box-sizing:border-box;overflow:hidden}:host-context(tui-root._mobile) .t-content{padding:1rem}.t-form{display:flex;flex-wrap:wrap;align-items:flex-start}.t-input-wrapper{width:100%;margin-bottom:.5rem}.t-expand{width:100%}.t-icon{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}.t-icon_rotated{transform:rotate(180deg)}.t-value{flex:1;background:var(--tui-clear-inverse);padding:.75rem;border-radius:.25rem}.t-mode{width:12.5rem}.t-select{max-width:15rem}.t-resizer{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;box-shadow:0 1.5rem 1rem rgba(0,0,0,.03),0 .75rem .75rem rgba(0,0,0,.04),0 .25rem .375rem rgba(0,0,0,.05);position:relative;width:3.5rem;min-height:inherit;flex-shrink:0;border-left:1px solid var(--tui-base-03);cursor:col-resize;outline:none;background:var(--tui-base-01);color:var(--tui-text-01)}.t-resizer:before,.t-resizer:after{content:\"\";position:absolute;top:.75rem;left:50%;bottom:.75rem;width:1px;background:var(--tui-base-05)}.t-resizer:before{transform:translate(.125rem)}.t-resizer:after{transform:translate(-.1875rem)}:host-context(tui-root._mobile) .t-resizer{display:none}.t-resizer-text{font:var(--tui-font-text-s);position:relative;z-index:1;padding:.75rem;background:var(--tui-base-01)}.wrapper_light .t-resizer-text{background:#3e464e}.t-group,.t-checkbox{margin-left:.75rem}.t-button,.t-form-controls{margin-top:.75rem}@supports ((position: -webkit-sticky) or (position: sticky)){@media screen and (min-height: 37.5rem){:host{position:-webkit-sticky;position:sticky;top:4.625rem;z-index:2}}}\n"], components: [{ type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { type: i2.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }, { type: i1.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId"] }, { type: i2.TuiRadioBlockComponent, selector: "tui-radio-block", inputs: ["item", "identityMatcher", "contentAlign", "size", "hideRadio", "pseudoDisabled"] }, { type: i2.TuiCheckboxLabeledComponent, selector: "tui-checkbox-labeled", inputs: ["size"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], directives: [{ type: i1.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TuiSelectDirective, selector: "tui-select" }, { type: i1.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { type: i1.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { type: i1.TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: ["tuiHintContent", "tuiHintDirection", "tuiHintAppearance", "tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i1.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.TuiExpandContentDirective, selector: "[tuiExpandContent]" }, { type: i6.TuiDragDirective, selector: "[tuiDragStart], [tuiDragContinues], [tuiDragEnd]", outputs: ["tuiDragStart", "tuiDragContinues", "tuiDragEnd"] }], pipes: { "json": i4.JsonPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
+ ], queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "resizeable", first: true, predicate: TuiResizeableDirective, descendants: true, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "resizer", first: true, predicate: ["resizer"], descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"t-bg-toggle\"\n [tuiMode]=\"null\"\n>\n <ng-template #tooltip>\n {{ texts[0] }}\n <a\n tuiLink\n tuiMode=\"onDark\"\n routerLink=\"/directives/mode\"\n >\n <code>tuiMode</code>\n </a>\n </ng-template>\n <ng-container *ngIf=\"isMobile; else desktop\">\n <tui-select\n tuiTextfieldSize=\"s\"\n class=\"t-mode\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHintContent]=\"tooltip\"\n [ngModel]=\"mode\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n tuiMode\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n ></tui-data-list-wrapper>\n </tui-select>\n </ng-container>\n <ng-template #desktop>\n tuiMode:\n <tui-tooltip\n describeId=\"form\"\n [content]=\"tooltip\"\n ></tui-tooltip>\n <div\n tuiGroup\n class=\"t-group\"\n [collapsed]=\"true\"\n >\n <tui-radio-block\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [item]=\"null\"\n [hideRadio]=\"true\"\n [ngModel]=\"mode\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n null\n </tui-radio-block>\n <tui-radio-block\n item=\"onDark\"\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [ngModel]=\"mode\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n onDark\n </tui-radio-block>\n <tui-radio-block\n item=\"onLight\"\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [ngModel]=\"mode\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n onLight\n </tui-radio-block>\n </div>\n </ng-template>\n <tui-checkbox-labeled\n size=\"m\"\n class=\"t-checkbox\"\n [(ngModel)]=\"opaque\"\n >\n {{ texts[1] }}\n </tui-checkbox-labeled>\n</div>\n<div\n tuiResizeable\n class=\"t-wrapper\"\n [class.t-wrapper_dark]=\"mode === 'onDark'\"\n [class.t-wrapper_gray]=\"mode === 'onLight'\"\n [class.t-wrapper_transparent]=\"!opaque\"\n>\n <div\n id=\"demo-content\"\n class=\"t-content\"\n >\n <div #content>\n <form\n *ngIf=\"testForm\"\n class=\"t-form\"\n [formGroup]=\"testForm\"\n >\n <div class=\"t-input-wrapper\">\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n </div>\n <button\n tuiButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [iconRight]=\"icon\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\n <ng-template #icon>\n <tui-svg\n src=\"tuiIconChevronDown\"\n class=\"t-icon\"\n [class.t-icon_rotated]=\"expanded\"\n ></tui-svg>\n </ng-template>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"expanded\"\n >\n <ng-template tuiExpandContent>\n <pre class=\"t-value\">Form data: {{ testForm.value | json }}</pre>\n <div\n tuiGroup\n class=\"t-form-controls\"\n >\n <tui-select\n tuiTextfieldSize=\"s\"\n class=\"t-select\"\n [ngModel]=\"updateOn\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"updateOnChange($event)\"\n >\n updateOn\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"updateOnVariants\"\n ></tui-data-list-wrapper>\n </tui-select>\n <button\n tuiButton\n type=\"reset\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n >\n Reset\n </button>\n <button\n tuiButton\n type=\"submit\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content></ng-content>\n </div>\n </div>\n <div\n #resizer\n class=\"t-resizer\"\n [tuiResizer]=\"[1, 0]\"\n (tuiSizeChange)=\"updateWidth($event[0])\"\n ></div>\n</div>\n", styles: [":host{position:relative;display:block;min-width:100%;margin:1.5rem 0}.t-bg-toggle{position:absolute;bottom:calc(100% + .75rem);display:flex;align-items:center;justify-content:flex-end;pointer-events:none;width:100%}.t-bg-toggle>*{pointer-events:auto}.t-wrapper{box-shadow:0 1.5rem 1rem rgba(0,0,0,.03),0 .75rem .75rem rgba(0,0,0,.04),0 .25rem .375rem rgba(0,0,0,.05);display:flex;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);max-width:100%;min-height:6rem;width:100%;min-width:10rem;background-color:var(--tui-base-01);overflow:hidden}.t-wrapper.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-base-02) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-base-02) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-base-02) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-base-02) 75%);background-size:1.25rem 1.25rem;background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0}.t-wrapper.t-wrapper_dark{background-color:#454e58;color:var(--tui-base-01)}.t-wrapper.t-wrapper_gray{background-color:#e5e7ea}.t-wrapper.t-wrapper_dark.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-focus) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-focus) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-focus) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-focus) 75%)}.t-wrapper.t-wrapper_gray.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-base-05) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-base-05) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-base-05) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-base-05) 75%)}:host-context(tui-root._mobile) .t-wrapper{min-height:auto}.t-content{flex:1 1 0;min-width:0;padding:1.5rem;box-sizing:border-box;overflow:hidden}:host-context(tui-root._mobile) .t-content{padding:1rem}.t-form{display:flex;flex-wrap:wrap;align-items:flex-start}.t-input-wrapper{width:100%;margin-bottom:.5rem}.t-expand{width:100%}.t-icon{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}.t-icon_rotated{transform:rotate(180deg)}.t-value{flex:1;background:var(--tui-clear-inverse);padding:.75rem;border-radius:.25rem}.t-mode{width:12.5rem}.t-select{max-width:15rem}.t-resizer{box-shadow:0 1.5rem 1rem rgba(0,0,0,.03),0 .75rem .75rem rgba(0,0,0,.04),0 .25rem .375rem rgba(0,0,0,.05);position:relative;width:3.5rem;min-height:inherit;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-left:1px solid var(--tui-base-03);outline:none;background:var(--tui-base-01);color:var(--tui-text-01)}.t-resizer:before,.t-resizer:after{content:\"\";position:absolute;top:.75rem;left:50%;bottom:calc(50% + 1rem);width:1px;background:var(--tui-base-04);box-shadow:-.25rem 0 var(--tui-base-04);transform:translate(0)}.t-resizer:after{bottom:.75rem;top:calc(50% + 1rem)}:host-context(tui-root._mobile) .t-resizer{display:none}.t-resizer-text{font:var(--tui-font-text-s);position:relative;z-index:1;padding:.75rem;background:var(--tui-base-01)}.wrapper_light .t-resizer-text{background:#3e464e}.t-group,.t-checkbox{margin-left:.75rem}.t-button,.t-form-controls{margin-top:.75rem}@supports ((position: -webkit-sticky) or (position: sticky)){@media screen and (min-height: 37.5rem){:host{position:-webkit-sticky;position:sticky;top:4.625rem;z-index:2}}}\n"], components: [{ type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { type: i2.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }, { type: i1.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId"] }, { type: i2.TuiRadioBlockComponent, selector: "tui-radio-block", inputs: ["item", "identityMatcher", "contentAlign", "size", "hideRadio", "pseudoDisabled"] }, { type: i2.TuiCheckboxLabeledComponent, selector: "tui-checkbox-labeled", inputs: ["size"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], directives: [{ type: i1.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TuiSelectDirective, selector: "tui-select" }, { type: i1.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { type: i1.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { type: i1.TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: ["tuiHintContent", "tuiHintDirection", "tuiHintAppearance", "tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i1.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i6.TuiResizeableDirective, selector: "[tuiResizeable]" }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.TuiExpandContentDirective, selector: "[tuiExpandContent]" }, { type: i6.TuiResizerDirective, selector: "[tuiResizer]", inputs: ["tuiResizer"], outputs: ["tuiSizeChange"] }], pipes: { "json": i4.JsonPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
149
105
  __decorate([
150
- tuiDebounce(200)
151
- ], TuiDocDemoComponent.prototype, "onResize", null);
106
+ tuiPure
107
+ ], TuiDocDemoComponent.prototype, "updateUrl", null);
152
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocDemoComponent, decorators: [{
153
109
  type: Component,
154
110
  args: [{
@@ -167,17 +123,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
167
123
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
168
124
  type: Inject,
169
125
  args: [TUI_IS_MOBILE]
170
- }] }, { type: i6.TuiDestroyService, decorators: [{
171
- type: Self
172
- }, {
173
- type: Inject,
174
- args: [TuiDestroyService]
175
- }] }, { type: i0.Renderer2, decorators: [{
126
+ }] }, { type: i0.ElementRef, decorators: [{
176
127
  type: Inject,
177
- args: [Renderer2]
178
- }] }, { type: undefined, decorators: [{
179
- type: Inject,
180
- args: [PLATFORM_ID]
128
+ args: [ElementRef]
181
129
  }] }, { type: i4.Location, decorators: [{
182
130
  type: Inject,
183
131
  args: [Location]
@@ -187,15 +135,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
187
135
  }] }, { type: undefined, decorators: [{
188
136
  type: Inject,
189
137
  args: [TUI_DOC_DEMO_TEXTS]
190
- }] }]; }, propDecorators: { content: [{
138
+ }] }]; }, propDecorators: { resizeable: [{
191
139
  type: ViewChild,
192
- args: [`content`]
193
- }], wrapper: [{
140
+ args: [TuiResizeableDirective, { static: true }]
141
+ }], content: [{
194
142
  type: ViewChild,
195
- args: [`wrapper`]
196
- }], resizerText: [{
143
+ args: [`content`, { static: true }]
144
+ }], resizer: [{
197
145
  type: ViewChild,
198
- args: [`resizerText`]
146
+ args: [`resizer`, { static: true }]
199
147
  }], control: [{
200
148
  type: Input
201
149
  }], template: [{
@@ -204,5 +152,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
204
152
  }], onResize: [{
205
153
  type: HostListener,
206
154
  args: [`window:resize`]
207
- }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2Mvc3JjL2NvbXBvbmVudHMvZGVtby9kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy9zcmMvY29tcG9uZW50cy9kZW1vL2RlbW8udGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0FBRXJELE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBZWhDLE1BQU0sT0FBTyxtQkFBbUI7SUE4QjVCLFlBQ29DLFFBQWlCLEVBQ0csUUFBMkIsRUFD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cm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtVcmxTZXJpYWxpemVyLCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFLCB0dWlEZWJvdW5jZSwgVHVpRGVzdHJveVNlcnZpY2UsIHR1aVB4fSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpTW9kZURpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3RhcnRXaXRoLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfRE9DX0RFTU9fVEVYVFN9IGZyb20gJy4uLy4uL3Rva2Vucy9pMThuJztcblxuY29uc3QgTUlOX0NPTVBPTkVOVF9XSURUSCA9IDEwNDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktZG9jLWRlbW9gLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9kZW1vLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2RlbW8uc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVHVpTW9kZURpcmVjdGl2ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aURvY0RlbW9Db21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0RlbW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoYGNvbnRlbnRgKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChgd3JhcHBlcmApXG4gICAgcHJpdmF0ZSByZWFkb25seSB3cmFwcGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKGByZXNpemVyVGV4dGApXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVyVGV4dD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBpbml0aWFsWCA9IDA7XG4gICAgcHJpdmF0ZSB3cmFwcGVyV2lkdGggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IG51bGwgPSBudWxsO1xuXG4gICAgdGVzdEZvcm0/OiBGb3JtR3JvdXA7XG4gICAgdXBkYXRlT25WYXJpYW50cyA9IFtgY2hhbmdlYCwgYGJsdXJgLCBgc3VibWl0YF07XG4gICAgdXBkYXRlT246ICdibHVyJyB8ICdjaGFuZ2UnIHwgJ3N1Ym1pdCcgPSBgY2hhbmdlYDtcbiAgICBleHBhbmRlZCA9IGZhbHNlO1xuICAgIG9wYXF1ZSA9IHRydWU7XG4gICAgbW9kZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBtb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCA9IG51bGw7XG4gICAgcmVhZG9ubHkgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcmVhZG9ubHkgaXRlbXM6IHJlYWRvbmx5IFR1aUJyaWdodG5lc3NbXSA9IFtgb25MaWdodGAsIGBvbkRhcmtgXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBAU2VsZigpIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQ6IFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFJlbmRlcmVyMikgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgQEluamVjdChMb2NhdGlvbikgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZjogTG9jYXRpb24sXG4gICAgICAgIEBJbmplY3QoVXJsU2VyaWFsaXplcikgcHJpdmF0ZSByZWFkb25seSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfREVNT19URVhUUykgcmVhZG9ubHkgdGV4dHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcblxuICAgICAgICBjb25zdCBwYXJzZWRNb2RlID0gbG9jYXRpb25SZWYucGF0aCgpLm1hdGNoKC90dWlNb2RlPShvbkRhcmt8b25MaWdodCkvKTtcblxuICAgICAgICBpZiAocGFyc2VkTW9kZSAhPT0gbnVsbCAmJiBwYXJzZWRNb2RlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMubW9kZUNvbnRyb2wuc2V0VmFsdWUocGFyc2VkTW9kZVsxXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAdHVpRGVib3VuY2UoMjAwKVxuICAgIEBIb3N0TGlzdGVuZXIoYHdpbmRvdzpyZXNpemVgKVxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFJlc2l6ZXJUZXh0Q29udGVudCgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5tb2RlQ29udHJvbC52YWx1ZSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUobW9kZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVVcmwobW9kZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPVxuICAgICAgICAgICAgICAgICAgICBwYXJzZUludCh0aGlzLmdldFVybFRyZWUoKS5xdWVyeVBhcmFtcy5zYW5kYm94V2lkdGgsIDEwKSArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGFkZGluZ09mV3JhcHBlcigpICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRSZXNpemVCdXR0b25XaWR0aCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4od3JhcHBlcldpZHRoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyYXBwZXJXaWR0aCA9IHdyYXBwZXJXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRXaWR0aFdyYXBwZXIodHVpUHgod3JhcHBlcldpZHRoKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSZXNpemVyVGV4dENvbnRlbnQoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldFJlc2l6ZXJUZXh0Q29udGVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnQgfHwgIXRoaXMucmVzaXplclRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVzaXplclRleHQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA9IChcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gdGhpcy5nZXRQYWRkaW5nT2ZXcmFwcGVyKClcbiAgICAgICAgKS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbFggPSBldmVudC5jbGllbnRYO1xuICAgICAgICB0aGlzLndyYXBwZXJXaWR0aCA9IHRoaXMud3JhcHBlciA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICBvbkRyYWdDb250aW51ZXMoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGVsdGFYID0gdGhpcy5pbml0aWFsWCAtIGV2ZW50LmNsaWVudFg7XG5cbiAgICAgICAgdGhpcy5yZXNpemVDb250ZW50KGRlbHRhWCk7XG4gICAgICAgIHRoaXMuc2V0UmVzaXplclRleHRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyYXBwZXJXaWR0aCA9IHRoaXMud3JhcHBlciA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICAgICAgdGhpcy51cGRhdGVTYW5kYm94V2lkdGgoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVEZXRhaWxzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgdXBkYXRlT25DaGFuZ2UodXBkYXRlT246ICdibHVyJyB8ICdjaGFuZ2UnIHwgJ3N1Ym1pdCcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVPbiA9IHVwZGF0ZU9uO1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjb250cm9sLCB1cGRhdGVPbn0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50ZXN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe3Rlc3RWYWx1ZTogY29udHJvbH0sIHt1cGRhdGVPbn0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplQ29udGVudChkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0V2lkdGhXcmFwcGVyKFxuICAgICAgICAgICAgdHVpUHgoTWF0aC5tYXgodGhpcy53cmFwcGVyV2lkdGggLSBkZWx0YSwgTUlOX0NPTVBPTkVOVF9XSURUSCkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0V2lkdGhXcmFwcGVyKHdpZHRoOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQsIGB3aWR0aGAsIHdpZHRoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVVybChtb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuZ2V0VXJsVHJlZSgpO1xuICAgICAgICBjb25zdCBtb2RlUGFyYW0gPSBtb2RlID8/IHVybFRyZWUucXVlcnlQYXJhbXMudHVpTW9kZSA/IHt0dWlNb2RlOiBtb2RlfSA6IHt9O1xuICAgICAgICBjb25zdCBzYW5kYm94V2lkdGggPSBwYXJzZUludCh1cmxUcmVlLnF1ZXJ5UGFyYW1zLnNhbmRib3hXaWR0aCwgMTApO1xuICAgICAgICBjb25zdCByZXNpemVQYXJhbSA9XG4gICAgICAgICAgICAhTnVtYmVyLmlzTmFOKHNhbmRib3hXaWR0aCkgJiYgTUlOX0NPTVBPTkVOVF9XSURUSCA+IHNhbmRib3hXaWR0aFxuICAgICAgICAgICAgICAgID8ge3NhbmRib3hXaWR0aH1cbiAgICAgICAgICAgICAgICA6IHt9O1xuXG4gICAgICAgIHVybFRyZWUucXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgICAuLi51cmxUcmVlLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgLi4ubW9kZVBhcmFtLFxuICAgICAgICAgICAgLi4ucmVzaXplUGFyYW0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5sb2NhdGlvblJlZi5nbyhTdHJpbmcodXJsVHJlZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsVHJlZSgpOiBVcmxUcmVlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLmxvY2F0aW9uUmVmLnBhdGgoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYWRkaW5nT2ZXcmFwcGVyKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhZGRpbmdMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMuaXNCcm93c2VyICYmIHRoaXMuY29udGVudFxuICAgICAgICAgICAgICAgID8gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudCkucGFkZGluZ0xlZnRcbiAgICAgICAgICAgICAgICA6IGAwYDtcblxuICAgICAgICByZXR1cm4gcGFyc2VJbnQocGFkZGluZ0xlZnQgfHwgYDBgLCAxMCkgKiAyO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVzaXplQnV0dG9uV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzaXplclRleHQ/Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ub2Zmc2V0V2lkdGggPz8gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNhbmRib3hXaWR0aCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuZ2V0VXJsVHJlZSgpO1xuXG4gICAgICAgIHVybFRyZWUucXVlcnlQYXJhbXMuc2FuZGJveFdpZHRoID0gcGFyc2VJbnQoXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZXJUZXh0Py5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50ID8/IGAwYCxcbiAgICAgICAgICAgIDEwLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubG9jYXRpb25SZWYuZ28oU3RyaW5nKHVybFRyZWUpKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ0LWJnLXRvZ2dsZVwiXG4gICAgW3R1aU1vZGVdPVwibnVsbFwiXG4+XG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwPlxuICAgICAgICB7eyB0ZXh0c1swXSB9fVxuICAgICAgICA8YVxuICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgdHVpTW9kZT1cIm9uRGFya1wiXG4gICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2RpcmVjdGl2ZXMvbW9kZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxjb2RlPnR1aU1vZGU8L2NvZGU+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01vYmlsZTsgZWxzZSBkZXNrdG9wXCI+XG4gICAgICAgIDx0dWktc2VsZWN0XG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwic1wiXG4gICAgICAgICAgICBjbGFzcz1cInQtbW9kZVwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt0dWlIaW50Q29udGVudF09XCJ0b29sdGlwXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJtb2RlQ29udHJvbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHR1aU1vZGVcbiAgICAgICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgPjwvdHVpLWRhdGEtbGlzdC13cmFwcGVyPlxuICAgICAgICA8L3R1aS1zZWxlY3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNkZXNrdG9wPlxuICAgICAgICB0dWlNb2RlOlxuICAgICAgICA8dHVpLXRvb2x0aXBcbiAgICAgICAgICAgIGRlc2NyaWJlSWQ9XCJmb3JtXCJcbiAgICAgICAgICAgIFtjb250ZW50XT1cInRvb2x0aXBcIlxuICAgICAgICA+PC90dWktdG9vbHRpcD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgdHVpR3JvdXBcbiAgICAgICAgICAgIGNsYXNzPVwidC1ncm91cFwiXG4gICAgICAgICAgICBbY29sbGFwc2VkXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXJhZGlvLWJsb2NrXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIG5hdGl2ZUlkPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwibnVsbFwiXG4gICAgICAgICAgICAgICAgW2hpZGVSYWRpb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibW9kZUNvbnRyb2xcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIDwvdHVpLXJhZGlvLWJsb2NrPlxuICAgICAgICAgICAgPHR1aS1yYWRpby1ibG9ja1xuICAgICAgICAgICAgICAgIGl0ZW09XCJvbkRhcmtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBuYXRpdmVJZD1cImZvcm1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHVpLWdyb3VwX19hdXRvLXdpZHRoLWl0ZW1cIlxuICAgICAgICAgICAgICAgIFtoaWRlUmFkaW9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm1vZGVDb250cm9sXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBvbkRhcmtcbiAgICAgICAgICAgIDwvdHVpLXJhZGlvLWJsb2NrPlxuICAgICAgICAgICAgPHR1aS1yYWRpby1ibG9ja1xuICAgICAgICAgICAgICAgIGl0ZW09XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgbmF0aXZlSWQ9XCJmb3JtXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR1aS1ncm91cF9fYXV0by13aWR0aC1pdGVtXCJcbiAgICAgICAgICAgICAgICBbaGlkZVJhZGlvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJtb2RlQ29udHJvbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgb25MaWdodFxuICAgICAgICAgICAgPC90dWktcmFkaW8tYmxvY2s+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHR1aS1jaGVja2JveC1sYWJlbGVkXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgY2xhc3M9XCJ0LWNoZWNrYm94XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJvcGFxdWVcIlxuICAgID5cbiAgICAgICAge3sgdGV4dHNbMV0gfX1cbiAgICA8L3R1aS1jaGVja2JveC1sYWJlbGVkPlxuPC9kaXY+XG48ZGl2XG4gICAgI3dyYXBwZXJcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgW2NsYXNzLnQtd3JhcHBlcl9kYXJrXT1cIm1vZGVDb250cm9sLnZhbHVlID09PSAnb25EYXJrJ1wiXG4gICAgW2NsYXNzLnQtd3JhcHBlcl9ncmF5XT1cIm1vZGVDb250cm9sLnZhbHVlID09PSAnb25MaWdodCdcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfdHJhbnNwYXJlbnRdPVwiIW9wYXF1ZVwiXG4+XG4gICAgPGRpdlxuICAgICAgICAjY29udGVudFxuICAgICAgICBpZD1cImRlbW9Db250ZW50XCJcbiAgICAgICAgY2xhc3M9XCJ0LWNvbnRlbnRcIlxuICAgID5cbiAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICpuZ0lmPVwidGVzdEZvcm1cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWZvcm1cIlxuICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJ0ZXN0Rm9ybVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2ljb25SaWdodF09XCJpY29uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlscygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0c1syXSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ljb24+XG4gICAgICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwidHVpSWNvbkNoZXZyb25Eb3duXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudC1pY29uX3JvdGF0ZWRdPVwiZXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPHR1aS1leHBhbmRcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtZXhwYW5kXCJcbiAgICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0dWlFeHBhbmRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPVwidC12YWx1ZVwiPkZvcm0gZGF0YToge3sgdGVzdEZvcm0udmFsdWUgfCBqc29uIH19PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtZm9ybS1jb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInVwZGF0ZU9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVPblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJ1cGRhdGVPblZhcmlhbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90dWktZGF0YS1saXN0LXdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3R1aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR1aS1ncm91cF9fYXV0by13aWR0aC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90dWktZXhwYW5kPlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBjbGFzcz1cInQtcmVzaXplclwiXG4gICAgICAgICh0dWlEcmFnU3RhcnQpPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiXG4gICAgICAgICh0dWlEcmFnQ29udGludWVzKT1cIm9uRHJhZ0NvbnRpbnVlcygkZXZlbnQpXCJcbiAgICAgICAgKHR1aURyYWdFbmQpPVwib25EcmFnRW5kKClcIlxuICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICNyZXNpemVyVGV4dFxuICAgICAgICAgICAgY2xhc3M9XCJ0LXJlc2l6ZXItdGV4dFwiXG4gICAgICAgID48L3NwYW4+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
155
+ }], onMouseUp: [{
156
+ type: HostListener,
157
+ args: [`document:mouseup.silent`]
158
+ }], updateUrl: [] } });
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2Mvc3JjL2NvbXBvbmVudHMvZGVtby9kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy9zcmMvY29tcG9uZW50cy9kZW1vL2RlbW8udGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUNILGFBQWEsRUFDYixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsc0JBQXNCLEdBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7OztBQUVyRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFldEIsTUFBTSxPQUFPLG1CQUFtQjtJQTJCNUIsWUFDb0MsUUFBaUIsRUFDWixVQUFtQyxFQUNyQyxXQUFxQixFQUNoQixhQUE0QixFQUMvQixLQUErQjtRQUpwQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ1osZUFBVSxHQUFW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QUM7Z0JBSWhDLE9BQU87c0JBRHZCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJbkIsT0FBTztzQkFEdkIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUlwQyxPQUFPO3NCQUROLEtBQUs7Z0JBSUcsUUFBUTtzQkFEaEIsWUFBWTt1QkFBQyxXQUFXO2dCQXVCekIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWU7Z0JBTzdCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBZ0QvQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VXJsU2VyaWFsaXplciwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gICAgVFVJX0lTX01PQklMRSxcbiAgICB0dWlDbGFtcCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVB4LFxuICAgIFR1aVJlc2l6ZWFibGVEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlNb2RlRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1RVSV9ET0NfREVNT19URVhUU30gZnJvbSAnLi4vLi4vdG9rZW5zL2kxOG4nO1xuXG5jb25zdCBNSU5fV0lEVEggPSAxNjA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLWRvYy1kZW1vYCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vZGVtby50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9kZW1vLnN0eWxlLmxlc3NgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFR1aU1vZGVEaXJlY3RpdmUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlEb2NEZW1vQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NEZW1vQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKFR1aVJlc2l6ZWFibGVEaXJlY3RpdmUsIHtzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplYWJsZT86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChgY29udGVudGAsIHtzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChgcmVzaXplcmAsIHtzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IG51bGwgPSBudWxsO1xuXG4gICAgdGVzdEZvcm0/OiBGb3JtR3JvdXA7XG4gICAgcmVhZG9ubHkgdXBkYXRlT25WYXJpYW50cyA9IFtgY2hhbmdlYCwgYGJsdXJgLCBgc3VibWl0YF0gYXMgY29uc3Q7XG4gICAgdXBkYXRlT246ICdibHVyJyB8ICdjaGFuZ2UnIHwgJ3N1Ym1pdCcgPSB0aGlzLnVwZGF0ZU9uVmFyaWFudHNbMF07XG4gICAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgICBvcGFxdWUgPSB0cnVlO1xuICAgIG1vZGU6IFR1aUJyaWdodG5lc3MgfCBudWxsID0gdGhpcy5nZXRVcmxUcmVlKCkucXVlcnlQYXJhbXMudHVpTW9kZSB8fCBudWxsO1xuICAgIHNhbmRib3hXaWR0aCA9IHBhcnNlSW50KHRoaXMuZ2V0VXJsVHJlZSgpLnF1ZXJ5UGFyYW1zLnNhbmRib3hXaWR0aCwgMTApO1xuXG4gICAgcmVhZG9ubHkgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcmVhZG9ubHkgaXRlbXM6IHJlYWRvbmx5IFR1aUJyaWdodG5lc3NbXSA9IFtgb25MaWdodGAsIGBvbkRhcmtgXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb25SZWY6IExvY2F0aW9uLFxuICAgICAgICBASW5qZWN0KFVybFNlcmlhbGl6ZXIpIHByaXZhdGUgcmVhZG9ubHkgdXJsU2VyaWFsaXplcjogVXJsU2VyaWFsaXplcixcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0RFTU9fVEVYVFMpIHJlYWRvbmx5IHRleHRzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10sXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcihgd2luZG93OnJlc2l6ZWApXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgICAgICAgdGhpcy5vbk1vdXNlVXAoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKGBkb2N1bWVudDptb3VzZXVwLnNpbGVudGApXG4gICAgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVVybCh0aGlzLm1vZGUsIHRoaXMuc2FuZGJveFdpZHRoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgICAgIHRoaXMudXBkYXRlV2lkdGgodGhpcy5zYW5kYm94V2lkdGggKyB0aGlzLmRlbHRhKTtcbiAgICB9XG5cbiAgICBvbk1vZGVDaGFuZ2UobW9kZTogVHVpQnJpZ2h0bmVzcyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVVcmwobW9kZSwgdGhpcy5zYW5kYm94V2lkdGgpO1xuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgIH1cblxuICAgIHRvZ2dsZURldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICB9XG5cbiAgICB1cGRhdGVPbkNoYW5nZSh1cGRhdGVPbjogJ2JsdXInIHwgJ2NoYW5nZScgfCAnc3VibWl0Jyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU9uID0gdXBkYXRlT247XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVdpZHRoKHdpZHRoOiBudW1iZXIgPSBOYU4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlc2l6ZXIgfHwgIXRoaXMucmVzaXplYWJsZSB8fCAhdGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYWZlID0gd2lkdGggfHwgdGhpcy5yZXNpemVhYmxlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IGNsYW1wZWQgPSBNYXRoLnJvdW5kKHR1aUNsYW1wKHNhZmUsIE1JTl9XSURUSCwgdG90YWwpKSAtIHRoaXMuZGVsdGE7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZCA9IHNhZmUgPCB0b3RhbCA/IGNsYW1wZWQgOiBOYU47XG5cbiAgICAgICAgdGhpcy5yZXNpemVyLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBTdHJpbmcoY2xhbXBlZCk7XG4gICAgICAgIHRoaXMucmVzaXplYWJsZS5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gdmFsaWRhdGVkID8gdHVpUHgoc2FmZSkgOiBgYDtcbiAgICAgICAgdGhpcy5zYW5kYm94V2lkdGggPSB2YWxpZGF0ZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZGVsdGEoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzaXplYWJsZSAmJiB0aGlzLmNvbnRlbnRcbiAgICAgICAgICAgID8gdGhpcy5yZXNpemVhYmxlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLVxuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgICAgICAgIDogMDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgdXBkYXRlVXJsKHR1aU1vZGU6IFR1aUJyaWdodG5lc3MgfCBudWxsLCBzYW5kYm94V2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5nZXRVcmxUcmVlKCk7XG4gICAgICAgIGNvbnN0IHtxdWVyeVBhcmFtc30gPSB1cmxUcmVlO1xuICAgICAgICBjb25zdCBtb2RlUGFyYW0gPSB0dWlNb2RlID8ge3R1aU1vZGV9IDoge307XG4gICAgICAgIGNvbnN0IHJlc2l6ZVBhcmFtID0gIU51bWJlci5pc05hTihzYW5kYm94V2lkdGgpID8ge3NhbmRib3hXaWR0aH0gOiB7fTtcblxuICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXMuc2FuZGJveFdpZHRoO1xuICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXMudHVpTW9kZTtcblxuICAgICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgLi4ucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICAuLi5tb2RlUGFyYW0sXG4gICAgICAgICAgICAuLi5yZXNpemVQYXJhbSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmxvY2F0aW9uUmVmLnJlcGxhY2VTdGF0ZShTdHJpbmcodXJsVHJlZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2NvbnRyb2wsIHVwZGF0ZU9ufSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMudGVzdEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt0ZXN0VmFsdWU6IGNvbnRyb2x9LCB7dXBkYXRlT259KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsVHJlZSgpOiBVcmxUcmVlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLmxvY2F0aW9uUmVmLnBhdGgoKSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidC1iZy10b2dnbGVcIlxuICAgIFt0dWlNb2RlXT1cIm51bGxcIlxuPlxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcD5cbiAgICAgICAge3sgdGV4dHNbMF0gfX1cbiAgICAgICAgPGFcbiAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgIHR1aU1vZGU9XCJvbkRhcmtcIlxuICAgICAgICAgICAgcm91dGVyTGluaz1cIi9kaXJlY3RpdmVzL21vZGVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Y29kZT50dWlNb2RlPC9jb2RlPlxuICAgICAgICA8L2E+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNb2JpbGU7IGVsc2UgZGVza3RvcFwiPlxuICAgICAgICA8dHVpLXNlbGVjdFxuICAgICAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cInNcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LW1vZGVcIlxuICAgICAgICAgICAgW3R1aVRleHRmaWVsZENsZWFuZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbdHVpSGludENvbnRlbnRdPVwidG9vbHRpcFwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgdHVpTW9kZVxuICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICA+PC90dWktZGF0YS1saXN0LXdyYXBwZXI+XG4gICAgICAgIDwvdHVpLXNlbGVjdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2Rlc2t0b3A+XG4gICAgICAgIHR1aU1vZGU6XG4gICAgICAgIDx0dWktdG9vbHRpcFxuICAgICAgICAgICAgZGVzY3JpYmVJZD1cImZvcm1cIlxuICAgICAgICAgICAgW2NvbnRlbnRdPVwidG9vbHRpcFwiXG4gICAgICAgID48L3R1aS10b29sdGlwPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlHcm91cFxuICAgICAgICAgICAgY2xhc3M9XCJ0LWdyb3VwXCJcbiAgICAgICAgICAgIFtjb2xsYXBzZWRdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0dWktcmFkaW8tYmxvY2tcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgbmF0aXZlSWQ9XCJmb3JtXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR1aS1ncm91cF9fYXV0by13aWR0aC1pdGVtXCJcbiAgICAgICAgICAgICAgICBbaXRlbV09XCJudWxsXCJcbiAgICAgICAgICAgICAgICBbaGlkZVJhZGlvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICA8L3R1aS1yYWRpby1ibG9jaz5cbiAgICAgICAgICAgIDx0dWktcmFkaW8tYmxvY2tcbiAgICAgICAgICAgICAgICBpdGVtPVwib25EYXJrXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgbmF0aXZlSWQ9XCJmb3JtXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR1aS1ncm91cF9fYXV0by13aWR0aC1pdGVtXCJcbiAgICAgICAgICAgICAgICBbaGlkZVJhZGlvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBvbkRhcmtcbiAgICAgICAgICAgIDwvdHVpLXJhZGlvLWJsb2NrPlxuICAgICAgICAgICAgPHR1aS1yYWRpby1ibG9ja1xuICAgICAgICAgICAgICAgIGl0ZW09XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgbmF0aXZlSWQ9XCJmb3JtXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR1aS1ncm91cF9fYXV0by13aWR0aC1pdGVtXCJcbiAgICAgICAgICAgICAgICBbaGlkZVJhZGlvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBvbkxpZ2h0XG4gICAgICAgICAgICA8L3R1aS1yYWRpby1ibG9jaz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8dHVpLWNoZWNrYm94LWxhYmVsZWRcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICBjbGFzcz1cInQtY2hlY2tib3hcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cIm9wYXF1ZVwiXG4gICAgPlxuICAgICAgICB7eyB0ZXh0c1sxXSB9fVxuICAgIDwvdHVpLWNoZWNrYm94LWxhYmVsZWQ+XG48L2Rpdj5cbjxkaXZcbiAgICB0dWlSZXNpemVhYmxlXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfZGFya109XCJtb2RlID09PSAnb25EYXJrJ1wiXG4gICAgW2NsYXNzLnQtd3JhcHBlcl9ncmF5XT1cIm1vZGUgPT09ICdvbkxpZ2h0J1wiXG4gICAgW2NsYXNzLnQtd3JhcHBlcl90cmFuc3BhcmVudF09XCIhb3BhcXVlXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGlkPVwiZGVtby1jb250ZW50XCJcbiAgICAgICAgY2xhc3M9XCJ0LWNvbnRlbnRcIlxuICAgID5cbiAgICAgICAgPGRpdiAjY29udGVudD5cbiAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0ZXN0Rm9ybVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWZvcm1cIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwidGVzdEZvcm1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbaWNvblJpZ2h0XT1cImljb25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlscygpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHRleHRzWzJdIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICAgICAgICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwidHVpSWNvbkNoZXZyb25Eb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50LWljb25fcm90YXRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8dHVpLWV4cGFuZFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtZXhwYW5kXCJcbiAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0dWlFeHBhbmRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz1cInQtdmFsdWVcIj5Gb3JtIGRhdGE6IHt7IHRlc3RGb3JtLnZhbHVlIHwganNvbiB9fTwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWZvcm0tY29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInVwZGF0ZU9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlT25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwidXBkYXRlT25WYXJpYW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3R1aS1kYXRhLWxpc3Qtd3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3R1aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR1aS1ncm91cF9fYXV0by13aWR0aC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvdHVpLWV4cGFuZD5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAjcmVzaXplclxuICAgICAgICBjbGFzcz1cInQtcmVzaXplclwiXG4gICAgICAgIFt0dWlSZXNpemVyXT1cIlsxLCAwXVwiXG4gICAgICAgICh0dWlTaXplQ2hhbmdlKT1cInVwZGF0ZVdpZHRoKCRldmVudFswXSlcIlxuICAgID48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -2,7 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { RouterModule } from '@angular/router';
5
- import { TuiDragModule } from '@taiga-ui/cdk';
5
+ import { TuiResizerModule } from '@taiga-ui/cdk';
6
6
  import { TuiButtonModule, TuiDataListModule, TuiExpandModule, TuiGroupModule, TuiHintModule, TuiLinkModule, TuiModeModule, TuiSvgModule, TuiTextfieldControllerModule, TuiTooltipModule, } from '@taiga-ui/core';
7
7
  import { TuiCheckboxLabeledModule, TuiDataListWrapperModule, TuiRadioBlockModule, TuiSelectModule, } from '@taiga-ui/kit';
8
8
  import { TuiDocDemoComponent } from './demo.component';
@@ -15,7 +15,6 @@ TuiDocDemoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
15
15
  FormsModule,
16
16
  RouterModule,
17
17
  TuiLinkModule,
18
- TuiDragModule,
19
18
  TuiButtonModule,
20
19
  TuiSelectModule,
21
20
  TuiExpandModule,
@@ -28,14 +27,14 @@ TuiDocDemoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
28
27
  TuiDataListWrapperModule,
29
28
  TuiDataListModule,
30
29
  TuiTextfieldControllerModule,
31
- TuiHintModule], exports: [TuiDocDemoComponent] });
30
+ TuiHintModule,
31
+ TuiResizerModule], exports: [TuiDocDemoComponent] });
32
32
  TuiDocDemoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocDemoModule, imports: [[
33
33
  CommonModule,
34
34
  ReactiveFormsModule,
35
35
  FormsModule,
36
36
  RouterModule,
37
37
  TuiLinkModule,
38
- TuiDragModule,
39
38
  TuiButtonModule,
40
39
  TuiSelectModule,
41
40
  TuiExpandModule,
@@ -49,6 +48,7 @@ TuiDocDemoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
49
48
  TuiDataListModule,
50
49
  TuiTextfieldControllerModule,
51
50
  TuiHintModule,
51
+ TuiResizerModule,
52
52
  ]] });
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocDemoModule, decorators: [{
54
54
  type: NgModule,
@@ -59,7 +59,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
59
59
  FormsModule,
60
60
  RouterModule,
61
61
  TuiLinkModule,
62
- TuiDragModule,
63
62
  TuiButtonModule,
64
63
  TuiSelectModule,
65
64
  TuiExpandModule,
@@ -73,9 +72,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
73
72
  TuiDataListModule,
74
73
  TuiTextfieldControllerModule,
75
74
  TuiHintModule,
75
+ TuiResizerModule,
76
76
  ],
77
77
  declarations: [TuiDocDemoComponent],
78
78
  exports: [TuiDocDemoComponent],
79
79
  }]
80
80
  }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2Mvc3JjL2NvbXBvbmVudHMvZGVtby9kZW1vLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUNILGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGFBQWEsRUFDYixZQUFZLEVBQ1osNEJBQTRCLEVBQzVCLGdCQUFnQixHQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixlQUFlLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDOztBQTJCckQsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQUhWLG1CQUFtQixhQXBCOUIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsWUFBWTtRQUNaLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBQ2YsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLHdCQUF3QjtRQUN4QixZQUFZO1FBQ1osd0JBQXdCO1FBQ3hCLGlCQUFpQjtRQUNqQiw0QkFBNEI7UUFDNUIsYUFBYSxhQUdQLG1CQUFtQjsrR0FFcEIsZ0JBQWdCLFlBeEJoQjtZQUNMLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsV0FBVztZQUNYLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsNEJBQTRCO1lBQzVCLGFBQWE7U0FDaEI7NEZBSVEsZ0JBQWdCO2tCQXpCNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLDRCQUE0Qjt3QkFDNUIsYUFBYTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHVpRHJhZ01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFR1aUJ1dHRvbk1vZHVsZSxcbiAgICBUdWlEYXRhTGlzdE1vZHVsZSxcbiAgICBUdWlFeHBhbmRNb2R1bGUsXG4gICAgVHVpR3JvdXBNb2R1bGUsXG4gICAgVHVpSGludE1vZHVsZSxcbiAgICBUdWlMaW5rTW9kdWxlLFxuICAgIFR1aU1vZGVNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgVHVpVG9vbHRpcE1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUdWlDaGVja2JveExhYmVsZWRNb2R1bGUsXG4gICAgVHVpRGF0YUxpc3RXcmFwcGVyTW9kdWxlLFxuICAgIFR1aVJhZGlvQmxvY2tNb2R1bGUsXG4gICAgVHVpU2VsZWN0TW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0JztcblxuaW1wb3J0IHtUdWlEb2NEZW1vQ29tcG9uZW50fSBmcm9tICcuL2RlbW8uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgVHVpTGlua01vZHVsZSxcbiAgICAgICAgVHVpRHJhZ01vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgICAgICBUdWlTZWxlY3RNb2R1bGUsXG4gICAgICAgIFR1aUV4cGFuZE1vZHVsZSxcbiAgICAgICAgVHVpR3JvdXBNb2R1bGUsXG4gICAgICAgIFR1aVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFR1aU1vZGVNb2R1bGUsXG4gICAgICAgIFR1aVJhZGlvQmxvY2tNb2R1bGUsXG4gICAgICAgIFR1aUNoZWNrYm94TGFiZWxlZE1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlEYXRhTGlzdFdyYXBwZXJNb2R1bGUsXG4gICAgICAgIFR1aURhdGFMaXN0TW9kdWxlLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgICAgICBUdWlIaW50TW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHVpRG9jRGVtb0NvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aURvY0RlbW9Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NEZW1vTW9kdWxlIHt9XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2Mvc3JjL2NvbXBvbmVudHMvZGVtby9kZW1vLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsY0FBYyxFQUNkLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxFQUNiLFlBQVksRUFDWiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNILHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGVBQWUsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7O0FBMkJyRCxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSFYsbUJBQW1CLGFBcEI5QixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxZQUFZO1FBQ1osYUFBYTtRQUNiLGVBQWU7UUFDZixlQUFlO1FBQ2YsZUFBZTtRQUNmLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIsWUFBWTtRQUNaLHdCQUF3QjtRQUN4QixpQkFBaUI7UUFDakIsNEJBQTRCO1FBQzVCLGFBQWE7UUFDYixnQkFBZ0IsYUFHVixtQkFBbUI7K0dBRXBCLGdCQUFnQixZQXhCaEI7WUFDTCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsNEJBQTRCO1lBQzVCLGFBQWE7WUFDYixnQkFBZ0I7U0FDbkI7NEZBSVEsZ0JBQWdCO2tCQXpCNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsaUJBQWlCO3dCQUNqQiw0QkFBNEI7d0JBQzVCLGFBQWE7d0JBQ2IsZ0JBQWdCO3FCQUNuQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUdWlSZXNpemVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgIFR1aURhdGFMaXN0TW9kdWxlLFxuICAgIFR1aUV4cGFuZE1vZHVsZSxcbiAgICBUdWlHcm91cE1vZHVsZSxcbiAgICBUdWlIaW50TW9kdWxlLFxuICAgIFR1aUxpbmtNb2R1bGUsXG4gICAgVHVpTW9kZU1vZHVsZSxcbiAgICBUdWlTdmdNb2R1bGUsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICBUdWlUb29sdGlwTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1xuICAgIFR1aUNoZWNrYm94TGFiZWxlZE1vZHVsZSxcbiAgICBUdWlEYXRhTGlzdFdyYXBwZXJNb2R1bGUsXG4gICAgVHVpUmFkaW9CbG9ja01vZHVsZSxcbiAgICBUdWlTZWxlY3RNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuXG5pbXBvcnQge1R1aURvY0RlbW9Db21wb25lbnR9IGZyb20gJy4vZGVtby5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBUdWlMaW5rTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIFR1aVNlbGVjdE1vZHVsZSxcbiAgICAgICAgVHVpRXhwYW5kTW9kdWxlLFxuICAgICAgICBUdWlHcm91cE1vZHVsZSxcbiAgICAgICAgVHVpVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgVHVpTW9kZU1vZHVsZSxcbiAgICAgICAgVHVpUmFkaW9CbG9ja01vZHVsZSxcbiAgICAgICAgVHVpQ2hlY2tib3hMYWJlbGVkTW9kdWxlLFxuICAgICAgICBUdWlTdmdNb2R1bGUsXG4gICAgICAgIFR1aURhdGFMaXN0V3JhcHBlck1vZHVsZSxcbiAgICAgICAgVHVpRGF0YUxpc3RNb2R1bGUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIFR1aUhpbnRNb2R1bGUsXG4gICAgICAgIFR1aVJlc2l6ZXJNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlEb2NEZW1vQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpRG9jRGVtb0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0RlbW9Nb2R1bGUge31cbiJdfQ==