@taiga-ui/addon-doc 2.75.0 → 2.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/bundles/taiga-ui-addon-doc.umd.js +173 -128
  2. package/bundles/taiga-ui-addon-doc.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-doc.umd.min.js +1 -1
  4. package/bundles/taiga-ui-addon-doc.umd.min.js.map +1 -1
  5. package/components/demo/demo.component.d.ts +2 -2
  6. package/components/documentation/documentation-property-connector.directive.d.ts +1 -1
  7. package/esm2015/components/code/code.component.js +6 -6
  8. package/esm2015/components/copy/copy.component.js +2 -2
  9. package/esm2015/components/demo/demo.component.js +12 -12
  10. package/esm2015/components/documentation/documentation-property-connector.directive.js +11 -11
  11. package/esm2015/components/documentation/documentation.component.js +30 -30
  12. package/esm2015/components/example/example.component.js +9 -9
  13. package/esm2015/components/language-switcher/language-switcher.component.js +16 -16
  14. package/esm2015/components/main/main.component.js +8 -8
  15. package/esm2015/components/navigation/navigation.component.js +16 -16
  16. package/esm2015/components/page/page-tab.directive.js +2 -2
  17. package/esm2015/components/page/page.component.js +10 -10
  18. package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +3 -3
  19. package/esm2015/internal/header/header.component.js +3 -3
  20. package/esm2015/internal/input-opacity/input-opacity.directive.js +3 -3
  21. package/esm2015/internal/see-also/see-also.component.js +4 -4
  22. package/esm2015/internal/source-code/source-code.component.js +6 -6
  23. package/esm2015/utils/coerce-value.js +3 -3
  24. package/esm5/components/code/code.component.js +6 -6
  25. package/esm5/components/copy/copy.component.js +2 -2
  26. package/esm5/components/demo/demo.component.js +12 -12
  27. package/esm5/components/documentation/documentation-property-connector.directive.js +11 -11
  28. package/esm5/components/documentation/documentation.component.js +30 -30
  29. package/esm5/components/example/example.component.js +9 -9
  30. package/esm5/components/language-switcher/language-switcher.component.js +16 -16
  31. package/esm5/components/main/main.component.js +8 -8
  32. package/esm5/components/navigation/navigation.component.js +16 -16
  33. package/esm5/components/page/page-tab.directive.js +2 -2
  34. package/esm5/components/page/page.component.js +10 -10
  35. package/esm5/directives/scroll-into-view/scroll-into-view.directive.js +3 -3
  36. package/esm5/internal/header/header.component.js +3 -3
  37. package/esm5/internal/input-opacity/input-opacity.directive.js +3 -3
  38. package/esm5/internal/see-also/see-also.component.js +4 -4
  39. package/esm5/internal/source-code/source-code.component.js +6 -6
  40. package/esm5/utils/coerce-value.js +3 -3
  41. package/fesm2015/taiga-ui-addon-doc.js +127 -127
  42. package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
  43. package/fesm5/taiga-ui-addon-doc.js +127 -127
  44. package/fesm5/taiga-ui-addon-doc.js.map +1 -1
  45. package/internal/see-also/see-also.component.d.ts +1 -1
  46. package/package.json +5 -5
  47. package/taiga-ui-addon-doc.metadata.json +1 -1
  48. package/utils/coerce-value.d.ts +1 -1
@@ -20,7 +20,7 @@ export declare class TuiDocDemoComponent implements OnInit, AfterViewInit {
20
20
  readonly template: TemplateRef<Record<string, unknown>> | null;
21
21
  testForm?: FormGroup;
22
22
  updateOnVariants: string[];
23
- updateOn: 'change' | 'blur' | 'submit';
23
+ updateOn: 'blur' | 'change' | 'submit';
24
24
  expanded: boolean;
25
25
  opaque: boolean;
26
26
  modeControl: FormControl;
@@ -36,7 +36,7 @@ export declare class TuiDocDemoComponent implements OnInit, AfterViewInit {
36
36
  onDragContinues(event: MouseEvent): void;
37
37
  onDragEnd(): void;
38
38
  toggleDetails(): void;
39
- updateOnChange(updateOn: 'change' | 'blur' | 'submit'): void;
39
+ updateOnChange(updateOn: 'blur' | 'change' | 'submit'): void;
40
40
  private createForm;
41
41
  private resizeContent;
42
42
  }
@@ -2,7 +2,7 @@ import { Location } from '@angular/common';
2
2
  import { EventEmitter, OnChanges, OnInit, TemplateRef } from '@angular/core';
3
3
  import { ActivatedRoute, UrlSerializer } from '@angular/router';
4
4
  import { BehaviorSubject, Subject } from 'rxjs';
5
- export declare type DocumentationPropertyType = 'input' | 'output' | 'input-output' | null;
5
+ export declare type DocumentationPropertyType = 'input-output' | 'input' | 'output' | null;
6
6
  export declare class TuiDocDocumentationPropertyConnectorDirective<T> implements OnInit, OnChanges {
7
7
  readonly template: TemplateRef<Record<string, unknown>>;
8
8
  private readonly locationRef;
@@ -6,8 +6,8 @@ import { rawLoad } from '../../utils/raw-load';
6
6
  import { tryParseMarkdownCodeBlock } from './parse-code-block';
7
7
  let TuiDocCodeComponent = class TuiDocCodeComponent {
8
8
  constructor() {
9
- this.rawLoader$$ = new BehaviorSubject(``);
10
- this.filename = ``;
9
+ this.rawLoader$$ = new BehaviorSubject('');
10
+ this.filename = '';
11
11
  this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad), map(tryParseMarkdownCodeBlock));
12
12
  }
13
13
  set code(code) {
@@ -24,14 +24,14 @@ __decorate([
24
24
  Input()
25
25
  ], TuiDocCodeComponent.prototype, "code", null);
26
26
  __decorate([
27
- HostBinding(`class._has-filename`)
27
+ HostBinding('class._has-filename')
28
28
  ], TuiDocCodeComponent.prototype, "hasFilename", null);
29
29
  TuiDocCodeComponent = __decorate([
30
30
  Component({
31
- selector: `tui-doc-code`,
32
- 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",
31
+ selector: 'tui-doc-code',
32
+ 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>\n<code [lineNumbers]=\"true\" [highlight]=\"content\"></code>\n</pre>\n",
33
33
  styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.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:0.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}"]
34
34
  })
35
35
  ], TuiDocCodeComponent);
36
36
  export { TuiDocCodeComponent };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQU83RCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQUFoQztRQUNxQixnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUd6RSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN2QyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQ2xCLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUNqQyxDQUFDO0lBV04sQ0FBQztJQVJHLElBQUksSUFBSSxDQUFDLElBQXNCO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLFdBQVc7UUFDWCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDSixDQUFBO0FBaEJHO0lBREMsS0FBSyxFQUFFO3FEQUNNO0FBUWQ7SUFEQyxLQUFLLEVBQUU7K0NBR1A7QUFHRDtJQURDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztzREFHbEM7QUFuQlEsbUJBQW1CO0lBTC9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLGdQQUFtQzs7S0FFdEMsQ0FBQztHQUNXLG1CQUFtQixDQW9CL0I7U0FwQlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7UmF3TG9hZGVyQ29udGVudH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wYWdlJztcbmltcG9ydCB7cmF3TG9hZH0gZnJvbSAnLi4vLi4vdXRpbHMvcmF3LWxvYWQnO1xuaW1wb3J0IHt0cnlQYXJzZU1hcmtkb3duQ29kZUJsb2NrfSBmcm9tICcuL3BhcnNlLWNvZGUtYmxvY2snO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1kb2MtY29kZWAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2NvZGUudGVtcGxhdGUuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbYC4vY29kZS5zdHlsZS5sZXNzYF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvZGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3TG9hZGVyJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJhd0xvYWRlckNvbnRlbnQ+KGBgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZW5hbWUgPSBgYDtcblxuICAgIHJlYWRvbmx5IHByb2Nlc3NvciQgPSB0aGlzLnJhd0xvYWRlciQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyYXdMb2FkKSxcbiAgICAgICAgbWFwKHRyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2spLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2RlKGNvZGU6IFJhd0xvYWRlckNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5yYXdMb2FkZXIkJC5uZXh0KGNvZGUpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuX2hhcy1maWxlbmFtZWApXG4gICAgZ2V0IGhhc0ZpbGVuYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZpbGVuYW1lO1xuICAgIH1cbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQU83RCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQUFoQztRQUNxQixnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUd6RSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN2QyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQ2xCLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUNqQyxDQUFDO0lBV04sQ0FBQztJQVJHLElBQUksSUFBSSxDQUFDLElBQXNCO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLFdBQVc7UUFDWCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDSixDQUFBO0FBaEJHO0lBREMsS0FBSyxFQUFFO3FEQUNNO0FBUWQ7SUFEQyxLQUFLLEVBQUU7K0NBR1A7QUFHRDtJQURDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztzREFHbEM7QUFuQlEsbUJBQW1CO0lBTC9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLG9QQUFtQzs7S0FFdEMsQ0FBQztHQUNXLG1CQUFtQixDQW9CL0I7U0FwQlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7UmF3TG9hZGVyQ29udGVudH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wYWdlJztcbmltcG9ydCB7cmF3TG9hZH0gZnJvbSAnLi4vLi4vdXRpbHMvcmF3LWxvYWQnO1xuaW1wb3J0IHt0cnlQYXJzZU1hcmtkb3duQ29kZUJsb2NrfSBmcm9tICcuL3BhcnNlLWNvZGUtYmxvY2snO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29kZS5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvZGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3TG9hZGVyJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJhd0xvYWRlckNvbnRlbnQ+KCcnKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZW5hbWUgPSAnJztcblxuICAgIHJlYWRvbmx5IHByb2Nlc3NvciQgPSB0aGlzLnJhd0xvYWRlciQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyYXdMb2FkKSxcbiAgICAgICAgbWFwKHRyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2spLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2RlKGNvZGU6IFJhd0xvYWRlckNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5yYXdMb2FkZXIkJC5uZXh0KGNvZGUpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hhcy1maWxlbmFtZScpXG4gICAgZ2V0IGhhc0ZpbGVuYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZpbGVuYW1lO1xuICAgIH1cbn1cbiJdfQ==
@@ -26,7 +26,7 @@ __decorate([
26
26
  ], TuiDocCopyComponent.prototype, "copied$", null);
27
27
  TuiDocCopyComponent = __decorate([
28
28
  Component({
29
- selector: `tui-doc-copy`,
29
+ selector: 'tui-doc-copy',
30
30
  template: "<button\n *ngIf=\"texts$ | async as texts\"\n tuiButton\n type=\"button\"\n appearance=\"\"\n size=\"s\"\n class=\"t-copy\"\n [title]=\"texts[0]\"\n (click)=\"onClick()\"\n>\n <span\n class=\"t-content\"\n [class.t-content_moved]=\"copied$ | async\"\n >\n <span\n class=\"t-initial\"\n [attr.data-text]=\"texts[0]\"\n >\n <ng-content></ng-content>\n </span>\n {{ texts[1] }}\n </span>\n</button>\n",
31
31
  changeDetection: ChangeDetectionStrategy.OnPush,
32
32
  providers: [TuiDestroyService],
@@ -35,4 +35,4 @@ TuiDocCopyComponent = __decorate([
35
35
  __param(0, Inject(TUI_COPY_TEXTS))
36
36
  ], TuiDocCopyComponent);
37
37
  export { TuiDocCopyComponent };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb3B5L2NvcHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUU1QixXQUFXO0FBUVgsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFHNUIsWUFBNkMsTUFBb0M7UUFBcEMsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFGaEUsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFNkMsQ0FBQztJQUdyRixJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNsQixXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDekUsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0osQ0FBQTs7WUFad0QsVUFBVSx1QkFBbEQsTUFBTSxTQUFDLGNBQWM7O0FBR2xDO0lBREMsT0FBTztrREFLUDtBQVZRLG1CQUFtQjtJQVAvQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsY0FBYztRQUN4QixxZ0JBQW1DO1FBRW5DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDOztLQUNqQyxDQUFDO0lBSWUsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7R0FIMUIsbUJBQW1CLENBZS9CO1NBZlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlEZXN0cm95U2VydmljZSwgdHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9DT1BZX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXBUbywgc3RhcnRXaXRoLCBzd2l0Y2hNYXBUb30gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBDT1BJRURfVElNRU9VVCA9IDE1MDA7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1kb2MtY29weWAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2NvcHkudGVtcGxhdGUuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbYC4vY29weS5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NDb3B5Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvcHkkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVFVJX0NPUFlfVEVYVFMpIHJlYWRvbmx5IHRleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPikge31cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IGNvcGllZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvcHkkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXBUbyh0aW1lcihDT1BJRURfVElNRU9VVCkucGlwZShtYXBUbyhmYWxzZSksIHN0YXJ0V2l0aCh0cnVlKSkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29weSQubmV4dCgpO1xuICAgIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb3B5L2NvcHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUU1QixXQUFXO0FBUVgsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFHNUIsWUFBNkMsTUFBb0M7UUFBcEMsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFGaEUsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFNkMsQ0FBQztJQUdyRixJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNsQixXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDekUsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0osQ0FBQTs7WUFad0QsVUFBVSx1QkFBbEQsTUFBTSxTQUFDLGNBQWM7O0FBR2xDO0lBREMsT0FBTztrREFLUDtBQVZRLG1CQUFtQjtJQVAvQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsY0FBYztRQUN4QixxZ0JBQW1DO1FBRW5DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDOztLQUNqQyxDQUFDO0lBSWUsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7R0FIMUIsbUJBQW1CLENBZS9CO1NBZlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlEZXN0cm95U2VydmljZSwgdHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9DT1BZX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXBUbywgc3RhcnRXaXRoLCBzd2l0Y2hNYXBUb30gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBDT1BJRURfVElNRU9VVCA9IDE1MDA7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtY29weScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvcHkudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29weS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NDb3B5Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvcHkkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVFVJX0NPUFlfVEVYVFMpIHJlYWRvbmx5IHRleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPikge31cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IGNvcGllZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvcHkkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXBUbyh0aW1lcihDT1BJRURfVElNRU9VVCkucGlwZShtYXBUbyhmYWxzZSksIHN0YXJ0V2l0aCh0cnVlKSkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29weSQubmV4dCgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -21,14 +21,14 @@ let TuiDocDemoComponent = TuiDocDemoComponent_1 = class TuiDocDemoComponent {
21
21
  this.wrapperWidth = 0;
22
22
  this.control = null;
23
23
  this.template = null;
24
- this.updateOnVariants = [`change`, `blur`, `submit`];
25
- this.updateOn = `change`;
24
+ this.updateOnVariants = ['change', 'blur', 'submit'];
25
+ this.updateOn = 'change';
26
26
  this.expanded = false;
27
27
  this.opaque = true;
28
28
  this.modeControl = new FormControl();
29
29
  this.mode = null;
30
30
  this.change$ = new Subject();
31
- this.items = [`onLight`, `onDark`];
31
+ this.items = ['onLight', 'onDark'];
32
32
  this.isBrowser = isPlatformBrowser(platformId);
33
33
  const parsedMode = locationRef.path().match(/tuiMode=(onDark|onLight)/);
34
34
  if (parsedMode !== null && parsedMode.length > 0) {
@@ -59,9 +59,9 @@ let TuiDocDemoComponent = TuiDocDemoComponent_1 = class TuiDocDemoComponent {
59
59
  }
60
60
  const paddingLeft = this.isBrowser
61
61
  ? getComputedStyle(this.content.nativeElement).paddingLeft
62
- : `0`;
62
+ : '0';
63
63
  const { offsetWidth } = this.content.nativeElement;
64
- this.resizerText.nativeElement.textContent = String(offsetWidth - parseInt(paddingLeft || `0`, 10) * 2);
64
+ this.resizerText.nativeElement.textContent = String(offsetWidth - parseInt(paddingLeft || '0', 10) * 2);
65
65
  }
66
66
  onDragStart(event) {
67
67
  event.preventDefault();
@@ -94,7 +94,7 @@ let TuiDocDemoComponent = TuiDocDemoComponent_1 = class TuiDocDemoComponent {
94
94
  if (!this.wrapper) {
95
95
  return;
96
96
  }
97
- this.renderer.setStyle(this.wrapper.nativeElement, `width`, px(Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)));
97
+ this.renderer.setStyle(this.wrapper.nativeElement, 'width', px(Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)));
98
98
  }
99
99
  };
100
100
  TuiDocDemoComponent.ctorParameters = () => [
@@ -107,13 +107,13 @@ TuiDocDemoComponent.ctorParameters = () => [
107
107
  { type: Array, decorators: [{ type: Inject, args: [TUI_DOC_DEMO_TEXTS,] }] }
108
108
  ];
109
109
  __decorate([
110
- ViewChild(`content`)
110
+ ViewChild('content')
111
111
  ], TuiDocDemoComponent.prototype, "content", void 0);
112
112
  __decorate([
113
- ViewChild(`wrapper`)
113
+ ViewChild('wrapper')
114
114
  ], TuiDocDemoComponent.prototype, "wrapper", void 0);
115
115
  __decorate([
116
- ViewChild(`resizerText`)
116
+ ViewChild('resizerText')
117
117
  ], TuiDocDemoComponent.prototype, "resizerText", void 0);
118
118
  __decorate([
119
119
  Input()
@@ -122,11 +122,11 @@ __decorate([
122
122
  ContentChild(TemplateRef)
123
123
  ], TuiDocDemoComponent.prototype, "template", void 0);
124
124
  __decorate([
125
- HostListener(`window:resize`)
125
+ HostListener('window:resize')
126
126
  ], TuiDocDemoComponent.prototype, "onResize", null);
127
127
  TuiDocDemoComponent = TuiDocDemoComponent_1 = __decorate([
128
128
  Component({
129
- selector: `tui-doc-demo`,
129
+ selector: 'tui-doc-demo',
130
130
  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",
131
131
  changeDetection: ChangeDetectionStrategy.OnPush,
132
132
  providers: [
@@ -147,4 +147,4 @@ TuiDocDemoComponent = TuiDocDemoComponent_1 = __decorate([
147
147
  __param(6, Inject(TUI_DOC_DEMO_TEXTS))
148
148
  ], TuiDocDemoComponent);
149
149
  export { TuiDocDemoComponent };
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kZW1vL2RlbW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDSCxhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQWdCLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBRWhDLFdBQVc7QUFjWCxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBbUI7SUE4QjVCLFlBQ29DLFFBQWlCLEVBQ0wsUUFBMkIsRUFDbkMsUUFBbUIsRUFDbEMsVUFBbUMsRUFDdEMsV0FBcUIsRUFDaEIsYUFBNEIsRUFDZCxLQUErQjtRQU5w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QztJQWdDTyxXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNyQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3pCLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2pCLFdBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ25CLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3JCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7R0FyQ3RCLG1CQUFtQixDQTJJL0I7U0EzSVksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3NlciwgTG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtVcmxTZXJpYWxpemVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtweCwgVFVJX0lTX01PQklMRSwgVHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlNb2RlRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9ET0NfREVNT19URVhUU30gZnJvbSAnLi4vLi4vdG9rZW5zL2kxOG4nO1xuXG5jb25zdCBNSU5fQ09NUE9ORU5UX1dJRFRIID0gMTA0O1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktZG9jLWRlbW9gLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9kZW1vLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2RlbW8uc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVHVpTW9kZURpcmVjdGl2ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aURvY0RlbW9Db21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0RlbW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoYGNvbnRlbnRgKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChgd3JhcHBlcmApXG4gICAgcHJpdmF0ZSByZWFkb25seSB3cmFwcGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKGByZXNpemVyVGV4dGApXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVyVGV4dD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBpbml0aWFsWCA9IDA7XG4gICAgcHJpdmF0ZSB3cmFwcGVyV2lkdGggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IG51bGwgPSBudWxsO1xuXG4gICAgdGVzdEZvcm0/OiBGb3JtR3JvdXA7XG4gICAgdXBkYXRlT25WYXJpYW50cyA9IFtgY2hhbmdlYCwgYGJsdXJgLCBgc3VibWl0YF07XG4gICAgdXBkYXRlT246ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcgPSBgY2hhbmdlYDtcbiAgICBleHBhbmRlZCA9IGZhbHNlO1xuICAgIG9wYXF1ZSA9IHRydWU7XG4gICAgbW9kZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBtb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCA9IG51bGw7XG4gICAgcmVhZG9ubHkgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcmVhZG9ubHkgaXRlbXM6IHJlYWRvbmx5IFR1aUJyaWdodG5lc3NbXSA9IFtgb25MaWdodGAsIGBvbkRhcmtgXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIEBJbmplY3QoTG9jYXRpb24pIGxvY2F0aW9uUmVmOiBMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChVcmxTZXJpYWxpemVyKSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfREVNT19URVhUUykgcmVhZG9ubHkgdGV4dHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcblxuICAgICAgICBjb25zdCBwYXJzZWRNb2RlID0gbG9jYXRpb25SZWYucGF0aCgpLm1hdGNoKC90dWlNb2RlPShvbkRhcmt8b25MaWdodCkvKTtcblxuICAgICAgICBpZiAocGFyc2VkTW9kZSAhPT0gbnVsbCAmJiBwYXJzZWRNb2RlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMubW9kZUNvbnRyb2wuc2V0VmFsdWUocGFyc2VkTW9kZVsxXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vZGVDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMubW9kZUNvbnRyb2wudmFsdWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKG1vZGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB1cmxTZXJpYWxpemVyLnBhcnNlKGxvY2F0aW9uUmVmLnBhdGgoKSk7XG5cbiAgICAgICAgICAgICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi51cmxUcmVlLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICB0dWlNb2RlOiBtb2RlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBsb2NhdGlvblJlZi5nbyhTdHJpbmcodXJsVHJlZSkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihgd2luZG93OnJlc2l6ZWApXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UmVzaXplclRleHRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRSZXNpemVyVGV4dENvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBzZXRSZXNpemVyVGV4dENvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZW50IHx8ICF0aGlzLnJlc2l6ZXJUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHRoaXMuaXNCcm93c2VyXG4gICAgICAgICAgICA/IGdldENvbXB1dGVkU3R5bGUodGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQpLnBhZGRpbmdMZWZ0XG4gICAgICAgICAgICA6IGAwYDtcbiAgICAgICAgY29uc3Qge29mZnNldFdpZHRofSA9IHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMucmVzaXplclRleHQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA9IFN0cmluZyhcbiAgICAgICAgICAgIG9mZnNldFdpZHRoIC0gcGFyc2VJbnQocGFkZGluZ0xlZnQgfHwgYDBgLCAxMCkgKiAyLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbFggPSBldmVudC5jbGllbnRYO1xuICAgICAgICB0aGlzLndyYXBwZXJXaWR0aCA9IHRoaXMud3JhcHBlciA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICBvbkRyYWdDb250aW51ZXMoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGVsdGFYID0gdGhpcy5pbml0aWFsWCAtIGV2ZW50LmNsaWVudFg7XG5cbiAgICAgICAgdGhpcy5yZXNpemVDb250ZW50KGRlbHRhWCk7XG4gICAgICAgIHRoaXMuc2V0UmVzaXplclRleHRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyYXBwZXJXaWR0aCA9IHRoaXMud3JhcHBlciA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICB0b2dnbGVEZXRhaWxzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgdXBkYXRlT25DaGFuZ2UodXBkYXRlT246ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVPbiA9IHVwZGF0ZU9uO1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjb250cm9sLCB1cGRhdGVPbn0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50ZXN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe3Rlc3RWYWx1ZTogY29udHJvbH0sIHt1cGRhdGVPbn0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplQ29udGVudChkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy53cmFwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBgd2lkdGhgLFxuICAgICAgICAgICAgcHgoTWF0aC5tYXgodGhpcy53cmFwcGVyV2lkdGggLSBkZWx0YSwgTUlOX0NPTVBPTkVOVF9XSURUSCkpLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kZW1vL2RlbW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDSCxhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQWdCLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBRWhDLFdBQVc7QUFjWCxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBbUI7SUE4QjVCLFlBQ29DLFFBQWlCLEVBQ0wsUUFBMkIsRUFDbkMsUUFBbUIsRUFDbEMsVUFBbUMsRUFDdEMsV0FBcUIsRUFDaEIsYUFBNEIsRUFDZCxLQUErQjtRQU5w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QztJQWdDTyxXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNyQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3pCLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2pCLFdBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ25CLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3JCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7R0FyQ3RCLG1CQUFtQixDQTJJL0I7U0EzSVksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3NlciwgTG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtVcmxTZXJpYWxpemVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtweCwgVFVJX0lTX01PQklMRSwgVHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlNb2RlRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9ET0NfREVNT19URVhUU30gZnJvbSAnLi4vLi4vdG9rZW5zL2kxOG4nO1xuXG5jb25zdCBNSU5fQ09NUE9ORU5UX1dJRFRIID0gMTA0O1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZG9jLWRlbW8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZW1vLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlbW8uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVHVpTW9kZURpcmVjdGl2ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aURvY0RlbW9Db21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0RlbW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnd3JhcHBlcicpXG4gICAgcHJpdmF0ZSByZWFkb25seSB3cmFwcGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdyZXNpemVyVGV4dCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVyVGV4dD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBpbml0aWFsWCA9IDA7XG4gICAgcHJpdmF0ZSB3cmFwcGVyV2lkdGggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IG51bGwgPSBudWxsO1xuXG4gICAgdGVzdEZvcm0/OiBGb3JtR3JvdXA7XG4gICAgdXBkYXRlT25WYXJpYW50cyA9IFsnY2hhbmdlJywgJ2JsdXInLCAnc3VibWl0J107XG4gICAgdXBkYXRlT246ICdibHVyJyB8ICdjaGFuZ2UnIHwgJ3N1Ym1pdCcgPSAnY2hhbmdlJztcbiAgICBleHBhbmRlZCA9IGZhbHNlO1xuICAgIG9wYXF1ZSA9IHRydWU7XG4gICAgbW9kZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBtb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCA9IG51bGw7XG4gICAgcmVhZG9ubHkgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcmVhZG9ubHkgaXRlbXM6IHJlYWRvbmx5IFR1aUJyaWdodG5lc3NbXSA9IFsnb25MaWdodCcsICdvbkRhcmsnXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIEBJbmplY3QoTG9jYXRpb24pIGxvY2F0aW9uUmVmOiBMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChVcmxTZXJpYWxpemVyKSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfREVNT19URVhUUykgcmVhZG9ubHkgdGV4dHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcblxuICAgICAgICBjb25zdCBwYXJzZWRNb2RlID0gbG9jYXRpb25SZWYucGF0aCgpLm1hdGNoKC90dWlNb2RlPShvbkRhcmt8b25MaWdodCkvKTtcblxuICAgICAgICBpZiAocGFyc2VkTW9kZSAhPT0gbnVsbCAmJiBwYXJzZWRNb2RlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMubW9kZUNvbnRyb2wuc2V0VmFsdWUocGFyc2VkTW9kZVsxXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vZGVDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMubW9kZUNvbnRyb2wudmFsdWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKG1vZGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB1cmxTZXJpYWxpemVyLnBhcnNlKGxvY2F0aW9uUmVmLnBhdGgoKSk7XG5cbiAgICAgICAgICAgICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi51cmxUcmVlLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICB0dWlNb2RlOiBtb2RlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBsb2NhdGlvblJlZi5nbyhTdHJpbmcodXJsVHJlZSkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UmVzaXplclRleHRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRSZXNpemVyVGV4dENvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBzZXRSZXNpemVyVGV4dENvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZW50IHx8ICF0aGlzLnJlc2l6ZXJUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHRoaXMuaXNCcm93c2VyXG4gICAgICAgICAgICA/IGdldENvbXB1dGVkU3R5bGUodGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQpLnBhZGRpbmdMZWZ0XG4gICAgICAgICAgICA6ICcwJztcbiAgICAgICAgY29uc3Qge29mZnNldFdpZHRofSA9IHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMucmVzaXplclRleHQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA9IFN0cmluZyhcbiAgICAgICAgICAgIG9mZnNldFdpZHRoIC0gcGFyc2VJbnQocGFkZGluZ0xlZnQgfHwgJzAnLCAxMCkgKiAyLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbFggPSBldmVudC5jbGllbnRYO1xuICAgICAgICB0aGlzLndyYXBwZXJXaWR0aCA9IHRoaXMud3JhcHBlciA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICBvbkRyYWdDb250aW51ZXMoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGVsdGFYID0gdGhpcy5pbml0aWFsWCAtIGV2ZW50LmNsaWVudFg7XG5cbiAgICAgICAgdGhpcy5yZXNpemVDb250ZW50KGRlbHRhWCk7XG4gICAgICAgIHRoaXMuc2V0UmVzaXplclRleHRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyYXBwZXJXaWR0aCA9IHRoaXMud3JhcHBlciA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICB0b2dnbGVEZXRhaWxzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgdXBkYXRlT25DaGFuZ2UodXBkYXRlT246ICdibHVyJyB8ICdjaGFuZ2UnIHwgJ3N1Ym1pdCcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVPbiA9IHVwZGF0ZU9uO1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjb250cm9sLCB1cGRhdGVPbn0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50ZXN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe3Rlc3RWYWx1ZTogY29udHJvbH0sIHt1cGRhdGVPbn0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplQ29udGVudChkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy53cmFwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnd2lkdGgnLFxuICAgICAgICAgICAgcHgoTWF0aC5tYXgodGhpcy53cmFwcGVyV2lkdGggLSBkZWx0YSwgTUlOX0NPTVBPTkVOVF9XSURUSCkpLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -4,7 +4,7 @@ import { Directive, EventEmitter, Inject, Input, OnChanges, OnInit, Output, Temp
4
4
  import { ActivatedRoute, Params, UrlSerializer } from '@angular/router';
5
5
  import { BehaviorSubject, Subject } from 'rxjs';
6
6
  import { coerceValue } from '../../utils/coerce-value';
7
- const SERIALIZED_SUFFIX = `$`;
7
+ const SERIALIZED_SUFFIX = '$';
8
8
  // @bad TODO: refactor output and value sync
9
9
  let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPropertyConnectorDirective {
10
10
  constructor(template, locationRef, activatedRoute, urlSerializer) {
@@ -12,9 +12,9 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
12
12
  this.locationRef = locationRef;
13
13
  this.activatedRoute = activatedRoute;
14
14
  this.urlSerializer = urlSerializer;
15
- this.documentationPropertyName = ``;
15
+ this.documentationPropertyName = '';
16
16
  this.documentationPropertyMode = null;
17
- this.documentationPropertyType = ``;
17
+ this.documentationPropertyType = '';
18
18
  this.documentationPropertyDeprecated = false;
19
19
  this.documentationPropertyValues = null;
20
20
  this.documentationPropertyValueChange = new EventEmitter();
@@ -26,11 +26,11 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
26
26
  }
27
27
  get attrName() {
28
28
  switch (this.documentationPropertyMode) {
29
- case `input`:
29
+ case 'input':
30
30
  return `[${this.documentationPropertyName}]`;
31
- case `output`:
31
+ case 'output':
32
32
  return `(${this.documentationPropertyName})`;
33
- case `input-output`:
33
+ case 'input-output':
34
34
  return `[(${this.documentationPropertyName})]`;
35
35
  default:
36
36
  return this.documentationPropertyName;
@@ -40,7 +40,7 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
40
40
  return !!this.documentationPropertyValues;
41
41
  }
42
42
  get shouldShowValues() {
43
- return this.documentationPropertyMode !== `output`;
43
+ return this.documentationPropertyMode !== 'output';
44
44
  }
45
45
  ngOnChanges() {
46
46
  this.changed$.next();
@@ -72,7 +72,7 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
72
72
  const computedValue = isValueAvailableByKey && this.documentationPropertyValues
73
73
  ? this.documentationPropertyValues.indexOf(value)
74
74
  : value;
75
- const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : ``;
75
+ const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';
76
76
  const propName = this.documentationPropertyName + suffix;
77
77
  tree.queryParams = Object.assign(Object.assign({}, tree.queryParams), { [propName]: computedValue });
78
78
  this.locationRef.go(String(tree));
@@ -107,8 +107,8 @@ __decorate([
107
107
  ], TuiDocDocumentationPropertyConnectorDirective.prototype, "documentationPropertyValueChange", void 0);
108
108
  TuiDocDocumentationPropertyConnectorDirective = __decorate([
109
109
  Directive({
110
- selector: `ng-template[documentationPropertyName]`,
111
- exportAs: `documentationProperty`,
110
+ selector: 'ng-template[documentationPropertyName]',
111
+ exportAs: 'documentationProperty',
112
112
  }),
113
113
  __param(0, Inject(TemplateRef)),
114
114
  __param(1, Inject(Location)),
@@ -116,4 +116,4 @@ TuiDocDocumentationPropertyConnectorDirective = __decorate([
116
116
  __param(3, Inject(UrlSerializer))
117
117
  ], TuiDocDocumentationPropertyConnectorDirective);
118
118
  export { TuiDocDocumentationPropertyConnectorDirective };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi1wcm9wZXJ0eS1jb25uZWN0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2FkZG9uLWRvYy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZG9jdW1lbnRhdGlvbi9kb2N1bWVudGF0aW9uLXByb3BlcnR5LWNvbm5lY3Rvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU5QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFJOUIsNENBQTRDO0FBSzVDLElBQWEsNkNBQTZDLEdBQTFELE1BQWEsNkNBQTZDO0lBNEJ0RCxZQUNrQyxRQUE4QyxFQUN6QyxXQUFxQixFQUNmLGNBQThCLEVBQy9CLGFBQTRCO1FBSHRDLGFBQVEsR0FBUixRQUFRLENBQXNDO1FBQ3pDLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBNUJ4RSw4QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFHL0IsOEJBQXlCLEdBQThCLElBQUksQ0FBQztRQUc1RCw4QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFNL0Isb0NBQStCLEdBQUcsS0FBSyxDQUFDO1FBR3hDLGdDQUEyQixH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b2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBVcmxTZXJpYWxpemVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2NvZXJjZVZhbHVlfSBmcm9tICcuLi8uLi91dGlscy9jb2VyY2UtdmFsdWUnO1xuXG5jb25zdCBTRVJJQUxJWkVEX1NVRkZJWCA9IGAkYDtcblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSA9ICdpbnB1dCcgfCAnb3V0cHV0JyB8ICdpbnB1dC1vdXRwdXQnIHwgbnVsbDtcblxuLy8gQGJhZCBUT0RPOiByZWZhY3RvciBvdXRwdXQgYW5kIHZhbHVlIHN5bmNcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgbmctdGVtcGxhdGVbZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZV1gLFxuICAgIGV4cG9ydEFzOiBgZG9jdW1lbnRhdGlvblByb3BlcnR5YCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlPFQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICAgIEBJbnB1dCgpXG4gICAgZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZSA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBkb2N1bWVudGF0aW9uUHJvcGVydHlNb2RlOiBEb2N1bWVudGF0aW9uUHJvcGVydHlUeXBlID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgZG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBkb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZSE6IFQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGRvY3VtZW50YXRpb25Qcm9wZXJ0eURlcHJlY2F0ZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVzOiByZWFkb25seSBUW10gfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgcmVhZG9ubHkgY2hhbmdlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcmVhZG9ubHkgZW1pdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRlbXBsYXRlUmVmKSByZWFkb25seSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+LFxuICAgICAgICBASW5qZWN0KExvY2F0aW9uKSBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uUmVmOiBMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChBY3RpdmF0ZWRSb3V0ZSkgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIEBJbmplY3QoVXJsU2VyaWFsaXplcikgcHJpdmF0ZSByZWFkb25seSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcnNlUGFyYW1zKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpO1xuICAgIH1cblxuICAgIGdldCBhdHRyTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TW9kZSkge1xuICAgICAgICAgICAgY2FzZSBgaW5wdXRgOlxuICAgICAgICAgICAgICAgIHJldHVybiBgWyR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfV1gO1xuICAgICAgICAgICAgY2FzZSBgb3V0cHV0YDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCgke3RoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZX0pYDtcbiAgICAgICAgICAgIGNhc2UgYGlucHV0LW91dHB1dGA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBbKCR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfSldYDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBoYXNJdGVtcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXM7XG4gICAgfVxuXG4gICAgZ2V0IHNob3VsZFNob3dWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU1vZGUgIT09IGBvdXRwdXRgO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZWQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRRdWVyeVBhcmFtKHZhbHVlKTtcbiAgICB9XG5cbiAgICBlbWl0RXZlbnQoZXZlbnQ6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgLy8gRm9yIG1vcmUgY29udmVuaWVudCBkZWJ1Z2dpbmdcbiAgICAgICAgY29uc29sZS5pbmZvKHRoaXMuYXR0ck5hbWUsIGV2ZW50KTtcblxuICAgICAgICB0aGlzLmVtaXRzJC5uZXh0KHRoaXMuZW1pdHMkLnZhbHVlICsgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZVBhcmFtcyhwYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBwYXJhbXNbdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lXTtcbiAgICAgICAgY29uc3QgcHJvcGVydHlWYWx1ZVdpdGhTdWZmaXg6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgICBwYXJhbXNbYCR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfSR7U0VSSUFMSVpFRF9TVUZGSVh9YF07XG5cbiAgICAgICAgaWYgKCFwcm9wZXJ0eVZhbHVlICYmICFwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgICAgISFwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeCAmJiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlc1xuICAgICAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXNbcHJvcGVydHlWYWx1ZVdpdGhTdWZmaXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgICAgIDogY29lcmNlVmFsdWUocHJvcGVydHlWYWx1ZSk7XG5cbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlKHZhbHVlIGFzIFQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UXVlcnlQYXJhbSh2YWx1ZTogVCB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy5sb2NhdGlvblJlZi5wYXRoKCkpO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsdWVBdmFpbGFibGVCeUtleSA9IHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0O1xuICAgICAgICBjb25zdCBjb21wdXRlZFZhbHVlID1cbiAgICAgICAgICAgIGlzVmFsdWVBdmFpbGFibGVCeUtleSAmJiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlc1xuICAgICAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXMuaW5kZXhPZih2YWx1ZSBhcyBUKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG5cbiAgICAgICAgY29uc3Qgc3VmZml4ID0gaXNWYWx1ZUF2YWlsYWJsZUJ5S2V5ID8gU0VSSUFMSVpFRF9TVUZGSVggOiBgYDtcbiAgICAgICAgY29uc3QgcHJvcE5hbWUgPSB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWUgKyBzdWZmaXg7XG5cbiAgICAgICAgdHJlZS5xdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLnRyZWUucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBbcHJvcE5hbWVdOiBjb21wdXRlZFZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubG9jYXRpb25SZWYuZ28oU3RyaW5nKHRyZWUpKTtcbiAgICB9XG59XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi1wcm9wZXJ0eS1jb25uZWN0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2FkZG9uLWRvYy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZG9jdW1lbnRhdGlvbi9kb2N1bWVudGF0aW9uLXByb3BlcnR5LWNvbm5lY3Rvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU5QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFJOUIsNENBQTRDO0FBSzVDLElBQWEsNkNBQTZDLEdBQTFELE1BQWEsNkNBQTZDO0lBNEJ0RCxZQUNrQyxRQUE4QyxFQUN6QyxXQUFxQixFQUNmLGNBQThCLEVBQy9CLGFBQTRCO1FBSHRDLGFBQVEsR0FBUixRQUFRLENBQXNDO1FBQ3pDLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBNUJ4RSw4QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFHL0IsOEJBQXlCLEdBQThCLElBQUksQ0FBQztRQUc1RCw4QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFNL0Isb0NBQStCLEdBQUcsS0FBSyxDQUFDO1FBR3hDLGdDQUEyQixH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b2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBVcmxTZXJpYWxpemVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2NvZXJjZVZhbHVlfSBmcm9tICcuLi8uLi91dGlscy9jb2VyY2UtdmFsdWUnO1xuXG5jb25zdCBTRVJJQUxJWkVEX1NVRkZJWCA9ICckJztcblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSA9ICdpbnB1dC1vdXRwdXQnIHwgJ2lucHV0JyB8ICdvdXRwdXQnIHwgbnVsbDtcblxuLy8gQGJhZCBUT0RPOiByZWZhY3RvciBvdXRwdXQgYW5kIHZhbHVlIHN5bmNcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZV0nLFxuICAgIGV4cG9ydEFzOiAnZG9jdW1lbnRhdGlvblByb3BlcnR5Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlPFQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICAgIEBJbnB1dCgpXG4gICAgZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZSA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBkb2N1bWVudGF0aW9uUHJvcGVydHlNb2RlOiBEb2N1bWVudGF0aW9uUHJvcGVydHlUeXBlID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgZG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBkb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZSE6IFQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGRvY3VtZW50YXRpb25Qcm9wZXJ0eURlcHJlY2F0ZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVzOiByZWFkb25seSBUW10gfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgcmVhZG9ubHkgY2hhbmdlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcmVhZG9ubHkgZW1pdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRlbXBsYXRlUmVmKSByZWFkb25seSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+LFxuICAgICAgICBASW5qZWN0KExvY2F0aW9uKSBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uUmVmOiBMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChBY3RpdmF0ZWRSb3V0ZSkgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIEBJbmplY3QoVXJsU2VyaWFsaXplcikgcHJpdmF0ZSByZWFkb25seSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcnNlUGFyYW1zKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpO1xuICAgIH1cblxuICAgIGdldCBhdHRyTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnaW5wdXQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgWyR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfV1gO1xuICAgICAgICAgICAgY2FzZSAnb3V0cHV0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCgke3RoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZX0pYDtcbiAgICAgICAgICAgIGNhc2UgJ2lucHV0LW91dHB1dCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBbKCR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfSldYDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBoYXNJdGVtcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXM7XG4gICAgfVxuXG4gICAgZ2V0IHNob3VsZFNob3dWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU1vZGUgIT09ICdvdXRwdXQnO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZWQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRRdWVyeVBhcmFtKHZhbHVlKTtcbiAgICB9XG5cbiAgICBlbWl0RXZlbnQoZXZlbnQ6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgLy8gRm9yIG1vcmUgY29udmVuaWVudCBkZWJ1Z2dpbmdcbiAgICAgICAgY29uc29sZS5pbmZvKHRoaXMuYXR0ck5hbWUsIGV2ZW50KTtcblxuICAgICAgICB0aGlzLmVtaXRzJC5uZXh0KHRoaXMuZW1pdHMkLnZhbHVlICsgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZVBhcmFtcyhwYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBwYXJhbXNbdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lXTtcbiAgICAgICAgY29uc3QgcHJvcGVydHlWYWx1ZVdpdGhTdWZmaXg6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgICBwYXJhbXNbYCR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfSR7U0VSSUFMSVpFRF9TVUZGSVh9YF07XG5cbiAgICAgICAgaWYgKCFwcm9wZXJ0eVZhbHVlICYmICFwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgICAgISFwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeCAmJiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlc1xuICAgICAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXNbcHJvcGVydHlWYWx1ZVdpdGhTdWZmaXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgICAgIDogY29lcmNlVmFsdWUocHJvcGVydHlWYWx1ZSk7XG5cbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlKHZhbHVlIGFzIFQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UXVlcnlQYXJhbSh2YWx1ZTogVCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy5sb2NhdGlvblJlZi5wYXRoKCkpO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsdWVBdmFpbGFibGVCeUtleSA9IHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0O1xuICAgICAgICBjb25zdCBjb21wdXRlZFZhbHVlID1cbiAgICAgICAgICAgIGlzVmFsdWVBdmFpbGFibGVCeUtleSAmJiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlc1xuICAgICAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXMuaW5kZXhPZih2YWx1ZSBhcyBUKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG5cbiAgICAgICAgY29uc3Qgc3VmZml4ID0gaXNWYWx1ZUF2YWlsYWJsZUJ5S2V5ID8gU0VSSUFMSVpFRF9TVUZGSVggOiAnJztcbiAgICAgICAgY29uc3QgcHJvcE5hbWUgPSB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWUgKyBzdWZmaXg7XG5cbiAgICAgICAgdHJlZS5xdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLnRyZWUucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBbcHJvcE5hbWVdOiBjb21wdXRlZFZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubG9jYXRpb25SZWYuZ28oU3RyaW5nKHRyZWUpKTtcbiAgICB9XG59XG4iXX0=
@@ -15,7 +15,7 @@ let TuiDocDocumentationComponent = class TuiDocDocumentationComponent {
15
15
  constructor(changeDetectorRef, texts) {
16
16
  this.changeDetectorRef = changeDetectorRef;
17
17
  this.texts = texts;
18
- this.heading = ``;
18
+ this.heading = '';
19
19
  this.showValues = true;
20
20
  this.isAPI = false;
21
21
  this.propertiesConnectors = EMPTY_QUERY;
@@ -32,71 +32,71 @@ let TuiDocDocumentationComponent = class TuiDocDocumentationComponent {
32
32
  getColor(color) {
33
33
  if (color.length === 4) {
34
34
  return color
35
- .split(``)
35
+ .split('')
36
36
  .reduce((result, current) => [...result, current, current], [])
37
- .join(``)
38
- .replace(`#`, ``);
37
+ .join('')
38
+ .replace('#', '');
39
39
  }
40
- if (color.startsWith(`#`)) {
40
+ if (color.startsWith('#')) {
41
41
  return color;
42
42
  }
43
- if (color === `transparent`) {
44
- return `#000000`;
43
+ if (color === 'transparent') {
44
+ return '#000000';
45
45
  }
46
46
  const parsed = color
47
- .replace(`rgb(`, ``)
48
- .replace(`rgba(`, ``)
49
- .replace(`)`, ``)
50
- .replace(` `, ``)
51
- .split(`,`)
47
+ .replace('rgb(', '')
48
+ .replace('rgba(', '')
49
+ .replace(')', '')
50
+ .replace(' ', '')
51
+ .split(',')
52
52
  .map(v => Number.parseInt(v, 10));
53
53
  return rgbToHex(...parsed);
54
54
  }
55
55
  getOpacity(color) {
56
- if (color.startsWith(`#`) || color.startsWith(`rgb(`)) {
56
+ if (color.startsWith('#') || color.startsWith('rgb(')) {
57
57
  return 100;
58
58
  }
59
- if (color === `transparent`) {
59
+ if (color === 'transparent') {
60
60
  return 0;
61
61
  }
62
- const lastComma = color.lastIndexOf(`,`);
62
+ const lastComma = color.lastIndexOf(',');
63
63
  const parsed = color
64
64
  .slice(lastComma)
65
- .replace(`)`, ``)
66
- .replace(` `, ``)
67
- .replace(`,`, ``);
65
+ .replace(')', '')
66
+ .replace(' ', '')
67
+ .replace(',', '');
68
68
  return Math.round(Number.parseFloat(parsed) * 100);
69
69
  }
70
70
  onColorChange(connector, color) {
71
- const opacity = this.getOpacity(connector.documentationPropertyValue || ``);
71
+ const opacity = this.getOpacity(connector.documentationPropertyValue || '');
72
72
  if (opacity === 100) {
73
73
  connector.onValueChange(color);
74
74
  return;
75
75
  }
76
- const rgb = hexToRgb(color).join(`, `);
76
+ const rgb = hexToRgb(color).join(', ');
77
77
  const result = `rgba(${rgb}, ${opacity / 100})`;
78
78
  connector.onValueChange(result);
79
79
  }
80
80
  onOpacityChange(connector, opacity) {
81
- const hex = this.getColor(connector.documentationPropertyValue || ``);
81
+ const hex = this.getColor(connector.documentationPropertyValue || '');
82
82
  const rgb = hexToRgb(hex);
83
83
  const result = `rgba(${rgb}, ${opacity / 100})`;
84
84
  connector.onValueChange(result);
85
85
  }
86
86
  stripOptional(name) {
87
- return name.replace(`?`, ``);
87
+ return name.replace('?', '');
88
88
  }
89
89
  isOptional(name) {
90
- return name.includes(`?`);
90
+ return name.includes('?');
91
91
  }
92
92
  isPrimitivePolymorpheusContent(value) {
93
- return typeof value === `string` || typeof value === `number`;
93
+ return typeof value === 'string' || typeof value === 'number';
94
94
  }
95
95
  showCleaner(type) {
96
- return type.includes(`null`);
96
+ return type.includes('null');
97
97
  }
98
98
  showContentTooltip(type) {
99
- return type.includes(`PolymorpheusContent`);
99
+ return type.includes('PolymorpheusContent');
100
100
  }
101
101
  inspectAny(data) {
102
102
  return inspectAny(data, 2);
@@ -120,12 +120,12 @@ __decorate([
120
120
  ], TuiDocDocumentationComponent.prototype, "propertiesConnectors", void 0);
121
121
  TuiDocDocumentationComponent = __decorate([
122
122
  Component({
123
- selector: `tui-doc-documentation`,
123
+ selector: 'tui-doc-documentation',
124
124
  template: "<h1\n *ngIf=\"heading\"\n class=\"t-heading\"\n>\n {{ heading }}\n</h1>\n<ng-content></ng-content>\n<table class=\"t-table\">\n <tr class=\"t-row t-row_header\">\n <th class=\"t-th t-cell t-cell_prop\">{{ texts[2] }}</th>\n <th class=\"t-th\">{{ type }}</th>\n <th\n *ngIf=\"showValues && !isAPI\"\n class=\"t-th t-cell t-cell_value\"\n >\n {{ texts[3] }}\n </th>\n </tr>\n <tr\n *ngFor=\"let propertyConnector of propertiesConnectors\"\n class=\"t-row\"\n [class.t-deprecated]=\"propertyConnector.documentationPropertyDeprecated\"\n >\n <td class=\"t-cell\">\n <div\n automation-id=\"tui-documentation__property-name\"\n class=\"t-property\"\n >\n {{ stripOptional(propertyConnector.attrName) }}\n <tui-badge\n *ngIf=\"isOptional(propertyConnector.attrName)\"\n size=\"s\"\n value=\"Optional\"\n ></tui-badge>\n </div>\n <span\n *ngIf=\"propertyConnector.documentationPropertyDeprecated\"\n class=\"t-deprecated-label\"\n >\n deprecated\n </span>\n <ng-container [ngTemplateOutlet]=\"propertyConnector.template\"></ng-container>\n </td>\n <td class=\"t-cell\">\n <span class=\"type\">\n {{ propertyConnector.documentationPropertyType }}\n <tui-tooltip\n *ngIf=\"showContentTooltip(propertyConnector.documentationPropertyType)\"\n [describeId]=\"propertyConnector.attrName\"\n [content]=\"content\"\n >\n <ng-template #content>\n {{ texts[4] }}\n <a\n tuiLink\n tuiMode=\"onDark\"\n target=\"_blank\"\n href=\"https://github.com/tinkoff/ng-polymorpheus\"\n >\n <code>ng-polymorpheus</code>\n </a>\n </ng-template>\n </tui-tooltip>\n </span>\n </td>\n <td\n *ngIf=\"showValues\"\n class=\"t-cell\"\n >\n <ng-container *ngIf=\"propertyConnector.shouldShowValues; else elseEmitter\">\n <tui-select\n *ngIf=\"propertyConnector.hasItems; else noItems\"\n tuiTextfieldSize=\"m\"\n tuiDropdownLimitWidth=\"min\"\n [tuiTextfieldCleaner]=\"showCleaner(propertyConnector.documentationPropertyType)\"\n [tuiTextfieldLabelOutside]=\"true\"\n [nativeId]=\"propertyConnector.attrName\"\n [valueContent]=\"selectContent\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n >\n <code class=\"t-exception\">null</code>\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"propertyConnector.documentationPropertyValues\"\n [itemContent]=\"selectContent\"\n ></tui-data-list-wrapper>\n </tui-select>\n <ng-template\n #selectContent\n let-data\n >\n <code>{{ inspectAny(data) }}</code>\n </ng-template>\n\n <ng-template #noItems>\n <ng-container [ngSwitch]=\"propertyConnector.documentationPropertyType\">\n <tui-toggle\n *ngSwitchCase=\"'boolean'\"\n size=\"l\"\n [nativeId]=\"propertyConnector.attrName\"\n [showIcons]=\"true\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-toggle>\n\n <tui-primitive-textfield\n *ngSwitchCase=\"'string'\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [value]=\"propertyConnector.documentationPropertyValue || ''\"\n (valueChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-primitive-textfield>\n\n <div\n *ngSwitchCase=\"'color'\"\n tuiGroup\n >\n <tui-primitive-textfield\n tuiTextfieldType=\"text\"\n tuiTextfieldSize=\"m\"\n [attr.id]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiInputOpacity]=\"getOpacity(propertyConnector.documentationPropertyValue)\"\n [value]=\"getColor(propertyConnector.documentationPropertyValue)\"\n (valueChange)=\"onColorChange(propertyConnector, $event)\"\n ></tui-primitive-textfield>\n <tui-input-count\n tuiTextfieldSize=\"m\"\n [max]=\"100\"\n [ngModel]=\"getOpacity(propertyConnector.documentationPropertyValue)\"\n (ngModelChange)=\"onOpacityChange(propertyConnector, $event)\"\n >\n Opacity\n </tui-input-count>\n </div>\n\n <tui-input-count\n *ngSwitchCase=\"'number'\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-input-count>\n\n <ng-container *ngSwitchCase=\"'PolymorpheusContent'\">\n <tui-primitive-textfield\n *ngIf=\"isPrimitivePolymorpheusContent(propertyConnector.documentationPropertyValue)\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [value]=\"propertyConnector.documentationPropertyValue.toString()\"\n (valueChange)=\"propertyConnector.onValueChange($event)\"\n >\n Default content\n </tui-primitive-textfield>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-template #elseEmitter>\n <tui-notification\n class=\"t-output\"\n [@emitEvent]=\"propertyConnector.emits$ | async\"\n >\n Emit!\n </tui-notification>\n </ng-template>\n </td>\n </tr>\n</table>\n",
125
125
  changeDetection: ChangeDetectionStrategy.OnPush,
126
126
  animations: [
127
- trigger(`emitEvent`, [
128
- transition(`:increment`, [style({ opacity: 1 }), animate(`500ms ease-in`)]),
127
+ trigger('emitEvent', [
128
+ transition(':increment', [style({ opacity: 1 }), animate('500ms ease-in')]),
129
129
  ]),
130
130
  ],
131
131
  styles: [":host{display:block;min-width:100%}.t-table{width:100%;table-layout:fixed}.t-row:not(:last-child){border-bottom:1px solid var(--tui-base-03)}:host-context(tui-root._mobile) .t-row{display:flex;flex-wrap:wrap}:host-context(tui-root._mobile) .t-row_header{display:none}.t-cell{padding:1rem 1rem .875rem}.t-cell:first-child{padding-left:0}.t-cell:last-child{padding-right:0;text-align:right}.t-cell_prop{width:40%}.t-cell_value{max-width:20rem}:host-context(tui-root._mobile) .t-cell_value{width:9.375rem}:host-context(tui-root._mobile) .t-cell{width:100%;height:auto;padding:.5rem 0;text-align:left}.t-th{padding:.5rem 1rem;color:var(--tui-text-02);font-weight:400;text-align:left}.t-property{font:var(--tui-font-text-m);margin-bottom:.25rem;font-family:monospace;color:#8f75d1}:host-context(tui-root._mobile) .t-property{padding:.5rem 0}.t-type{font-family:monospace}.t-deprecated{background-color:var(--tui-error-bg);box-shadow:-1rem 0 var(--tui-error-bg),1rem 0 var(--tui-error-bg)}.t-deprecated-label{margin-right:.125rem;color:var(--tui-error-fill)}.t-exception{display:block;width:-webkit-max-content;width:-moz-max-content;width:max-content}.t-output{text-align:left;opacity:0}.t-heading{font:var(--tui-font-heading-4)}"]
@@ -134,4 +134,4 @@ TuiDocDocumentationComponent = __decorate([
134
134
  __param(1, Inject(TUI_DOC_DOCUMENTATION_TEXTS))
135
135
  ], TuiDocDocumentationComponent);
136
136
  export { TuiDocDocumentationComponent };
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kb2N1bWVudGF0aW9uL2RvY3VtZW50YXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFM0csbURBQW1EO0FBQ25ELDJDQUEyQztBQUMzQyxXQUFXO0FBWVgsSUFBYSw0QkFBNEIsR0FBekMsTUFBYSw0QkFBNEI7SUFnQnJDLFlBQ2dELGlCQUFvQyxFQUV2RSxLQUErQztRQUZaLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFFdkUsVUFBSyxHQUFMLEtBQUssQ0FBMEM7UUFqQjVELFlBQU8sR0FBRyxFQUFFLENBQUM7UUFHYixl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QUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWE7UUFDcEIsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDSixDQUFBOztZQXJIc0UsaUJBQWlCLHVCQUEvRSxNQUFNLFNBQUMsaUJBQWlCO3dDQUN4QixNQUFNLFNBQUMsMkJBQTJCOztBQWhCdkM7SUFEQyxLQUFLLEVBQUU7NkRBQ0s7QUFHYjtJQURDLEtBQUssRUFBRTtnRUFDVTtBQUdsQjtJQURDLEtBQUssRUFBRTsyREFDTTtBQUdkO0lBREMsZUFBZSxDQUFDLDZDQUE2QyxDQUFDOzBFQUUvQztBQVpQLDRCQUE0QjtJQVh4QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsdUJBQXVCO1FBQ2pDLCs2UEFBNEM7UUFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsVUFBVSxFQUFFO1lBQ1IsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDakIsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2FBQzVFLENBQUM7U0FDTDs7S0FDSixDQUFDO0lBa0JPLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtHQWxCL0IsNEJBQTRCLENBc0l4QztTQXRJWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFTVBUWV9RVUVSWSwgaXRlbXNRdWVyeUxpc3RPYnNlcnZhYmxlLCB3YXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge21lcmdlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0RPQ19ET0NVTUVOVEFUSU9OX1RFWFRTfSBmcm9tICcuLi8uLi90b2tlbnMvaTE4bic7XG5pbXBvcnQge2hleFRvUmdiLCByZ2JUb0hleH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3ItY29udmVyc2lvbic7XG5pbXBvcnQge2luc3BlY3RBbnl9IGZyb20gJy4uLy4uL3V0aWxzL2luc3BlY3QnO1xuaW1wb3J0IHtUdWlEb2NEb2N1bWVudGF0aW9uUHJvcGVydHlDb25uZWN0b3JEaXJlY3RpdmV9IGZyb20gJy4vZG9jdW1lbnRhdGlvbi1wcm9wZXJ0eS1jb25uZWN0b3IuZGlyZWN0aXZlJztcblxuLy8gQGJhZCBUT0RPIHN1YnNjcmliZSBwcm9wZXJ0aWVzQ29ubmVjdG9ycyBjaGFuZ2VzXG4vLyBAYmFkIFRPRE8gcmVmYWN0b3IgdG8gbWFrZSBtb3JlIGZsZXhpYmxlXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktZG9jLWRvY3VtZW50YXRpb25gLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9kb2N1bWVudGF0aW9uLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2RvY3VtZW50YXRpb24uc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcihgZW1pdEV2ZW50YCwgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbihgOmluY3JlbWVudGAsIFtzdHlsZSh7b3BhY2l0eTogMX0pLCBhbmltYXRlKGA1MDBtcyBlYXNlLWluYCldKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jRG9jdW1lbnRhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgaGVhZGluZyA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93VmFsdWVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaXNBUEkgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlKVxuICAgIHByb3BlcnRpZXNDb25uZWN0b3JzOiBRdWVyeUxpc3Q8VHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlPGFueT4+ID1cbiAgICAgICAgRU1QVFlfUVVFUlk7XG5cbiAgICBhY3RpdmVJdGVtSW5kZXggPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfRE9DVU1FTlRBVElPTl9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgdGV4dHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10sXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpdGVtc1F1ZXJ5TGlzdE9ic2VydmFibGUodGhpcy5wcm9wZXJ0aWVzQ29ubmVjdG9ycylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChpdGVtcyA9PiBtZXJnZSguLi5pdGVtcy5tYXAoKHtjaGFuZ2VkJH0pID0+IGNoYW5nZWQkKSkpLFxuICAgICAgICAgICAgICAgIHdhdGNoKHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQVBJID8gdGhpcy50ZXh0c1swXSA6IHRoaXMudGV4dHNbMV07XG4gICAgfVxuXG4gICAgZ2V0Q29sb3IoY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChjb2xvci5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xvclxuICAgICAgICAgICAgICAgIC5zcGxpdChgYClcbiAgICAgICAgICAgICAgICAucmVkdWNlPHN0cmluZ1tdPigocmVzdWx0LCBjdXJyZW50KSA9PiBbLi4ucmVzdWx0LCBjdXJyZW50LCBjdXJyZW50XSwgW10pXG4gICAgICAgICAgICAgICAgLmpvaW4oYGApXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoYCNgLCBgYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3Iuc3RhcnRzV2l0aChgI2ApKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3IgPT09IGB0cmFuc3BhcmVudGApIHtcbiAgICAgICAgICAgIHJldHVybiBgIzAwMDAwMGA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJzZWQgPSBjb2xvclxuICAgICAgICAgICAgLnJlcGxhY2UoYHJnYihgLCBgYClcbiAgICAgICAgICAgIC5yZXBsYWNlKGByZ2JhKGAsIGBgKVxuICAgICAgICAgICAgLnJlcGxhY2UoYClgLCBgYClcbiAgICAgICAgICAgIC5yZXBsYWNlKGAgYCwgYGApXG4gICAgICAgICAgICAuc3BsaXQoYCxgKVxuICAgICAgICAgICAgLm1hcCh2ID0+IE51bWJlci5wYXJzZUludCh2LCAxMCkpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuICAgICAgICByZXR1cm4gcmdiVG9IZXgoLi4ucGFyc2VkKTtcbiAgICB9XG5cbiAgICBnZXRPcGFjaXR5KGNvbG9yOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBpZiAoY29sb3Iuc3RhcnRzV2l0aChgI2ApIHx8IGNvbG9yLnN0YXJ0c1dpdGgoYHJnYihgKSkge1xuICAgICAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2xvciA9PT0gYHRyYW5zcGFyZW50YCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXN0Q29tbWEgPSBjb2xvci5sYXN0SW5kZXhPZihgLGApO1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBjb2xvclxuICAgICAgICAgICAgLnNsaWNlKGxhc3RDb21tYSlcbiAgICAgICAgICAgIC5yZXBsYWNlKGApYCwgYGApXG4gICAgICAgICAgICAucmVwbGFjZShgIGAsIGBgKVxuICAgICAgICAgICAgLnJlcGxhY2UoYCxgLCBgYCk7XG5cbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoTnVtYmVyLnBhcnNlRmxvYXQocGFyc2VkKSAqIDEwMCk7XG4gICAgfVxuXG4gICAgb25Db2xvckNoYW5nZShcbiAgICAgICAgY29ubmVjdG9yOiBUdWlEb2NEb2N1bWVudGF0aW9uUHJvcGVydHlDb25uZWN0b3JEaXJlY3RpdmU8c3RyaW5nPixcbiAgICAgICAgY29sb3I6IHN0cmluZyxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3BhY2l0eSA9IHRoaXMuZ2V0T3BhY2l0eShjb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWUgfHwgYGApO1xuXG4gICAgICAgIGlmIChvcGFjaXR5ID09PSAxMDApIHtcbiAgICAgICAgICAgIGNvbm5lY3Rvci5vblZhbHVlQ2hhbmdlKGNvbG9yKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmdiID0gaGV4VG9SZ2IoY29sb3IpLmpvaW4oYCwgYCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGByZ2JhKCR7cmdifSwgJHtvcGFjaXR5IC8gMTAwfSlgO1xuXG4gICAgICAgIGNvbm5lY3Rvci5vblZhbHVlQ2hhbmdlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgb25PcGFjaXR5Q2hhbmdlKFxuICAgICAgICBjb25uZWN0b3I6IFR1aURvY0RvY3VtZW50YXRpb25Qcm9wZXJ0eUNvbm5lY3RvckRpcmVjdGl2ZTxzdHJpbmc+LFxuICAgICAgICBvcGFjaXR5OiBudW1iZXIsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhleCA9IHRoaXMuZ2V0Q29sb3IoY29ubmVjdG9yLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlIHx8IGBgKTtcbiAgICAgICAgY29uc3QgcmdiID0gaGV4VG9SZ2IoaGV4KTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYHJnYmEoJHtyZ2J9LCAke29wYWNpdHkgLyAxMDB9KWA7XG5cbiAgICAgICAgY29ubmVjdG9yLm9uVmFsdWVDaGFuZ2UocmVzdWx0KTtcbiAgICB9XG5cbiAgICBzdHJpcE9wdGlvbmFsKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBuYW1lLnJlcGxhY2UoYD9gLCBgYCk7XG4gICAgfVxuXG4gICAgaXNPcHRpb25hbChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoYD9gKTtcbiAgICB9XG5cbiAgICBpc1ByaW1pdGl2ZVBvbHltb3JwaGV1c0NvbnRlbnQodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gYHN0cmluZ2AgfHwgdHlwZW9mIHZhbHVlID09PSBgbnVtYmVyYDtcbiAgICB9XG5cbiAgICBzaG93Q2xlYW5lcih0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGUuaW5jbHVkZXMoYG51bGxgKTtcbiAgICB9XG5cbiAgICBzaG93Q29udGVudFRvb2x0aXAodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlLmluY2x1ZGVzKGBQb2x5bW9ycGhldXNDb250ZW50YCk7XG4gICAgfVxuXG4gICAgaW5zcGVjdEFueShkYXRhOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGluc3BlY3RBbnkoZGF0YSwgMik7XG4gICAgfVxufVxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kb2N1bWVudGF0aW9uL2RvY3VtZW50YXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFM0csbURBQW1EO0FBQ25ELDJDQUEyQztBQUMzQyxXQUFXO0FBWVgsSUFBYSw0QkFBNEIsR0FBekMsTUFBYSw0QkFBNEI7SUFnQnJDLFlBQ2dELGlCQUFvQyxFQUV2RSxLQUErQztRQUZaLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFFdkUsVUFBSyxHQUFMLEtBQUssQ0FBMEM7UUFqQjVELFlBQU8sR0FBRyxFQUFFLENBQUM7UUFHYixl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QUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWE7UUFDcEIsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDSixDQUFBOztZQXJIc0UsaUJBQWlCLHVCQUEvRSxNQUFNLFNBQUMsaUJBQWlCO3dDQUN4QixNQUFNLFNBQUMsMkJBQTJCOztBQWhCdkM7SUFEQyxLQUFLLEVBQUU7NkRBQ0s7QUFHYjtJQURDLEtBQUssRUFBRTtnRUFDVTtBQUdsQjtJQURDLEtBQUssRUFBRTsyREFDTTtBQUdkO0lBREMsZUFBZSxDQUFDLDZDQUE2QyxDQUFDOzBFQUUvQztBQVpQLDRCQUE0QjtJQVh4QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsdUJBQXVCO1FBQ2pDLCs2UEFBNEM7UUFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsVUFBVSxFQUFFO1lBQ1IsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDakIsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2FBQzVFLENBQUM7U0FDTDs7S0FDSixDQUFDO0lBa0JPLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtHQWxCL0IsNEJBQTRCLENBc0l4QztTQXRJWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFTVBUWV9RVUVSWSwgaXRlbXNRdWVyeUxpc3RPYnNlcnZhYmxlLCB3YXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge21lcmdlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0RPQ19ET0NVTUVOVEFUSU9OX1RFWFRTfSBmcm9tICcuLi8uLi90b2tlbnMvaTE4bic7XG5pbXBvcnQge2hleFRvUmdiLCByZ2JUb0hleH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3ItY29udmVyc2lvbic7XG5pbXBvcnQge2luc3BlY3RBbnl9IGZyb20gJy4uLy4uL3V0aWxzL2luc3BlY3QnO1xuaW1wb3J0IHtUdWlEb2NEb2N1bWVudGF0aW9uUHJvcGVydHlDb25uZWN0b3JEaXJlY3RpdmV9IGZyb20gJy4vZG9jdW1lbnRhdGlvbi1wcm9wZXJ0eS1jb25uZWN0b3IuZGlyZWN0aXZlJztcblxuLy8gQGJhZCBUT0RPIHN1YnNjcmliZSBwcm9wZXJ0aWVzQ29ubmVjdG9ycyBjaGFuZ2VzXG4vLyBAYmFkIFRPRE8gcmVmYWN0b3IgdG8gbWFrZSBtb3JlIGZsZXhpYmxlXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZG9jLWRvY3VtZW50YXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudGF0aW9uLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvY3VtZW50YXRpb24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignZW1pdEV2ZW50JywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmluY3JlbWVudCcsIFtzdHlsZSh7b3BhY2l0eTogMX0pLCBhbmltYXRlKCc1MDBtcyBlYXNlLWluJyldKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jRG9jdW1lbnRhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgaGVhZGluZyA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93VmFsdWVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaXNBUEkgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlKVxuICAgIHByb3BlcnRpZXNDb25uZWN0b3JzOiBRdWVyeUxpc3Q8VHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlPGFueT4+ID1cbiAgICAgICAgRU1QVFlfUVVFUlk7XG5cbiAgICBhY3RpdmVJdGVtSW5kZXggPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfRE9DVU1FTlRBVElPTl9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgdGV4dHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10sXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpdGVtc1F1ZXJ5TGlzdE9ic2VydmFibGUodGhpcy5wcm9wZXJ0aWVzQ29ubmVjdG9ycylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChpdGVtcyA9PiBtZXJnZSguLi5pdGVtcy5tYXAoKHtjaGFuZ2VkJH0pID0+IGNoYW5nZWQkKSkpLFxuICAgICAgICAgICAgICAgIHdhdGNoKHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQVBJID8gdGhpcy50ZXh0c1swXSA6IHRoaXMudGV4dHNbMV07XG4gICAgfVxuXG4gICAgZ2V0Q29sb3IoY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChjb2xvci5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xvclxuICAgICAgICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAgICAgICAucmVkdWNlPHN0cmluZ1tdPigocmVzdWx0LCBjdXJyZW50KSA9PiBbLi4ucmVzdWx0LCBjdXJyZW50LCBjdXJyZW50XSwgW10pXG4gICAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3Iuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3IgPT09ICd0cmFuc3BhcmVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnIzAwMDAwMCc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJzZWQgPSBjb2xvclxuICAgICAgICAgICAgLnJlcGxhY2UoJ3JnYignLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCdyZ2JhKCcsICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoJyknLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCcgJywgJycpXG4gICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcCh2ID0+IE51bWJlci5wYXJzZUludCh2LCAxMCkpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuICAgICAgICByZXR1cm4gcmdiVG9IZXgoLi4ucGFyc2VkKTtcbiAgICB9XG5cbiAgICBnZXRPcGFjaXR5KGNvbG9yOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBpZiAoY29sb3Iuc3RhcnRzV2l0aCgnIycpIHx8IGNvbG9yLnN0YXJ0c1dpdGgoJ3JnYignKSkge1xuICAgICAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2xvciA9PT0gJ3RyYW5zcGFyZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXN0Q29tbWEgPSBjb2xvci5sYXN0SW5kZXhPZignLCcpO1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBjb2xvclxuICAgICAgICAgICAgLnNsaWNlKGxhc3RDb21tYSlcbiAgICAgICAgICAgIC5yZXBsYWNlKCcpJywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgnICcsICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoJywnLCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoTnVtYmVyLnBhcnNlRmxvYXQocGFyc2VkKSAqIDEwMCk7XG4gICAgfVxuXG4gICAgb25Db2xvckNoYW5nZShcbiAgICAgICAgY29ubmVjdG9yOiBUdWlEb2NEb2N1bWVudGF0aW9uUHJvcGVydHlDb25uZWN0b3JEaXJlY3RpdmU8c3RyaW5nPixcbiAgICAgICAgY29sb3I6IHN0cmluZyxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3BhY2l0eSA9IHRoaXMuZ2V0T3BhY2l0eShjb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWUgfHwgJycpO1xuXG4gICAgICAgIGlmIChvcGFjaXR5ID09PSAxMDApIHtcbiAgICAgICAgICAgIGNvbm5lY3Rvci5vblZhbHVlQ2hhbmdlKGNvbG9yKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmdiID0gaGV4VG9SZ2IoY29sb3IpLmpvaW4oJywgJyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGByZ2JhKCR7cmdifSwgJHtvcGFjaXR5IC8gMTAwfSlgO1xuXG4gICAgICAgIGNvbm5lY3Rvci5vblZhbHVlQ2hhbmdlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgb25PcGFjaXR5Q2hhbmdlKFxuICAgICAgICBjb25uZWN0b3I6IFR1aURvY0RvY3VtZW50YXRpb25Qcm9wZXJ0eUNvbm5lY3RvckRpcmVjdGl2ZTxzdHJpbmc+LFxuICAgICAgICBvcGFjaXR5OiBudW1iZXIsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhleCA9IHRoaXMuZ2V0Q29sb3IoY29ubmVjdG9yLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlIHx8ICcnKTtcbiAgICAgICAgY29uc3QgcmdiID0gaGV4VG9SZ2IoaGV4KTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYHJnYmEoJHtyZ2J9LCAke29wYWNpdHkgLyAxMDB9KWA7XG5cbiAgICAgICAgY29ubmVjdG9yLm9uVmFsdWVDaGFuZ2UocmVzdWx0KTtcbiAgICB9XG5cbiAgICBzdHJpcE9wdGlvbmFsKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBuYW1lLnJlcGxhY2UoJz8nLCAnJyk7XG4gICAgfVxuXG4gICAgaXNPcHRpb25hbChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoJz8nKTtcbiAgICB9XG5cbiAgICBpc1ByaW1pdGl2ZVBvbHltb3JwaGV1c0NvbnRlbnQodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcbiAgICB9XG5cbiAgICBzaG93Q2xlYW5lcih0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGUuaW5jbHVkZXMoJ251bGwnKTtcbiAgICB9XG5cbiAgICBzaG93Q29udGVudFRvb2x0aXAodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlLmluY2x1ZGVzKCdQb2x5bW9ycGhldXNDb250ZW50Jyk7XG4gICAgfVxuXG4gICAgaW5zcGVjdEFueShkYXRhOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGluc3BlY3RBbnkoZGF0YSwgMik7XG4gICAgfVxufVxuIl19