@taiga-ui/addon-doc 3.61.0 → 3.63.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,6 +1,4 @@
1
1
  import { Clipboard } from '@angular/cdk/clipboard';
2
- import { Location as NgLocation } from '@angular/common';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
2
  import { TuiCodeEditor, TuiDocExample } from '@taiga-ui/addon-doc/interfaces';
5
3
  import { TuiContextWithImplicit, TuiHandler } from '@taiga-ui/cdk';
6
4
  import { TuiAlertService } from '@taiga-ui/core';
@@ -18,9 +16,6 @@ export declare class TuiDocExampleComponent {
18
16
  private readonly processContent;
19
17
  readonly isE2E: boolean;
20
18
  readonly codeActions: Array<PolymorpheusContent<TuiContextWithImplicit<string>>>;
21
- private readonly router;
22
- private readonly route;
23
- private readonly ngLocation;
24
19
  readonly options: TuiDocExampleOptions;
25
20
  private readonly rawLoader$$;
26
21
  id: string | null;
@@ -35,12 +30,11 @@ export declare class TuiDocExampleComponent {
35
30
  readonly copy$: Observable<string>;
36
31
  readonly processor$: Observable<Record<string, string>>;
37
32
  readonly loading$: Subject<boolean>;
38
- constructor(clipboard: Clipboard, alerts: TuiAlertService, location: Location, copyTexts$: Observable<[string, string]>, texts: [string, string, string], codeEditor: TuiCodeEditor | null, processContent: TuiHandler<Record<string, string>, Record<string, string>>, isE2E: boolean, codeActions: Array<PolymorpheusContent<TuiContextWithImplicit<string>>>, router: Router, route: ActivatedRoute, ngLocation: NgLocation, options: TuiDocExampleOptions);
33
+ constructor(clipboard: Clipboard, alerts: TuiAlertService, location: Location, copyTexts$: Observable<[string, string]>, texts: [string, string, string], codeEditor: TuiCodeEditor | null, processContent: TuiHandler<Record<string, string>, Record<string, string>>, isE2E: boolean, codeActions: Array<PolymorpheusContent<TuiContextWithImplicit<string>>>, options: TuiDocExampleOptions);
39
34
  readonly visible: (files: Record<string, string>) => boolean;
40
35
  getTabTitle(fileName: string): PolymorpheusContent;
41
- copyExampleLink(): void;
36
+ copyExampleLink({ href }: HTMLAnchorElement): void;
42
37
  edit(files: Record<string, string>): void;
43
- private setFragmentWithoutRedirect;
44
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocExampleComponent, [null, null, null, null, null, { optional: true; }, null, null, null, null, null, null, null]>;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocExampleComponent, [null, null, null, null, null, { optional: true; }, null, null, null, null]>;
45
39
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiDocExampleComponent, "tui-doc-example", never, { "id": "id"; "heading": "heading"; "description": "description"; "content": "content"; "fullsize": "fullsize"; "componentName": "componentName"; }, {}, never, ["*"]>;
46
40
  }
@@ -9,8 +9,9 @@ import * as i7 from "../copy/copy.module";
9
9
  import * as i8 from "../code/code.module";
10
10
  import * as i9 from "@tinkoff/ng-polymorpheus";
11
11
  import * as i10 from "@taiga-ui/cdk";
12
+ import * as i11 from "@angular/router";
12
13
  export declare class TuiDocExampleModule {
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocExampleModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<TuiDocExampleModule, [typeof i1.TuiDocExampleComponent, typeof i2.TuiDocExampleGetTabsPipe], [typeof i3.CommonModule, typeof i4.ClipboardModule, typeof i5.TuiTabsModule, typeof i6.TuiButtonModule, typeof i7.TuiDocCopyModule, typeof i8.TuiDocCodeModule, typeof i9.PolymorpheusModule, typeof i10.TuiMapperPipeModule, typeof i6.TuiLoaderModule], [typeof i1.TuiDocExampleComponent, typeof i2.TuiDocExampleGetTabsPipe]>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TuiDocExampleModule, [typeof i1.TuiDocExampleComponent, typeof i2.TuiDocExampleGetTabsPipe], [typeof i3.CommonModule, typeof i4.ClipboardModule, typeof i5.TuiTabsModule, typeof i6.TuiButtonModule, typeof i7.TuiDocCopyModule, typeof i8.TuiDocCodeModule, typeof i9.PolymorpheusModule, typeof i10.TuiMapperPipeModule, typeof i6.TuiLoaderModule, typeof i11.RouterModule], [typeof i1.TuiDocExampleComponent, typeof i2.TuiDocExampleGetTabsPipe]>;
15
16
  static ɵinj: i0.ɵɵInjectorDeclaration<TuiDocExampleModule>;
16
17
  }
@@ -1,7 +1,5 @@
1
1
  import { Clipboard } from '@angular/cdk/clipboard';
2
- import { Location as NgLocation } from '@angular/common';
3
2
  import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, } from '@angular/core';
4
- import { ActivatedRoute, Router } from '@angular/router';
5
3
  import { LOCATION } from '@ng-web-apis/common';
6
4
  import { TUI_DOC_CODE_ACTIONS, TUI_DOC_CODE_EDITOR, TUI_DOC_EXAMPLE_CONTENT_PROCESSOR, TUI_DOC_EXAMPLE_TEXTS, } from '@taiga-ui/addon-doc/tokens';
7
5
  import { tuiRawLoadRecord } from '@taiga-ui/addon-doc/utils';
@@ -17,13 +15,13 @@ import * as i2 from "@taiga-ui/kit";
17
15
  import * as i3 from "../code/code.component";
18
16
  import * as i4 from "@angular/common";
19
17
  import * as i5 from "@tinkoff/ng-polymorpheus";
20
- import * as i6 from "@taiga-ui/cdk";
21
- import * as i7 from "./example-get-tabs.pipe";
22
- import * as i8 from "@angular/cdk/clipboard";
23
- import * as i9 from "rxjs";
24
- import * as i10 from "@angular/router";
18
+ import * as i6 from "@angular/router";
19
+ import * as i7 from "@taiga-ui/cdk";
20
+ import * as i8 from "./example-get-tabs.pipe";
21
+ import * as i9 from "@angular/cdk/clipboard";
22
+ import * as i10 from "rxjs";
25
23
  export class TuiDocExampleComponent {
26
- constructor(clipboard, alerts, location, copyTexts$, texts, codeEditor, processContent, isE2E, codeActions, router, route, ngLocation, options) {
24
+ constructor(clipboard, alerts, location, copyTexts$, texts, codeEditor, processContent, isE2E, codeActions, options) {
27
25
  this.clipboard = clipboard;
28
26
  this.alerts = alerts;
29
27
  this.location = location;
@@ -33,9 +31,6 @@ export class TuiDocExampleComponent {
33
31
  this.processContent = processContent;
34
32
  this.isE2E = isE2E;
35
33
  this.codeActions = codeActions;
36
- this.router = router;
37
- this.route = route;
38
- this.ngLocation = ngLocation;
39
34
  this.options = options;
40
35
  this.rawLoader$$ = new BehaviorSubject({});
41
36
  this.id = null;
@@ -55,19 +50,10 @@ export class TuiDocExampleComponent {
55
50
  getTabTitle(fileName) {
56
51
  return this.options.tabTitles.get(fileName) || fileName;
57
52
  }
58
- copyExampleLink() {
59
- const hashPosition = this.location.href.indexOf('#');
60
- const currentUrl = hashPosition > -1
61
- ? this.location.href.slice(0, Math.max(0, hashPosition))
62
- : this.location.href;
63
- const url = `${currentUrl}#${this.id}`;
64
- this.setFragmentWithoutRedirect(this.id);
65
- this.clipboard.copy(url);
53
+ copyExampleLink({ href }) {
54
+ this.clipboard.copy(href);
66
55
  this.alerts
67
- .open(this.texts[1], {
68
- label: this.texts[2],
69
- status: 'success',
70
- })
56
+ .open(this.texts[1], { label: this.texts[2], status: 'success' })
71
57
  .subscribe();
72
58
  }
73
59
  edit(files) {
@@ -75,15 +61,9 @@ export class TuiDocExampleComponent {
75
61
  this.loading$.next(true);
76
62
  (_a = this.codeEditor) === null || _a === void 0 ? void 0 : _a.edit(this.componentName, this.id || '', files).then(() => this.loading$.next(false)).catch(() => this.loading$.next(false));
77
63
  }
78
- setFragmentWithoutRedirect(id) {
79
- const url = this.router
80
- .createUrlTree([], { relativeTo: this.route, fragment: id || '' })
81
- .toString();
82
- this.ngLocation.go(url);
83
- }
84
64
  }
85
- TuiDocExampleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleComponent, deps: [{ token: Clipboard }, { token: TuiAlertService }, { token: LOCATION }, { token: TUI_COPY_TEXTS }, { token: TUI_DOC_EXAMPLE_TEXTS }, { token: TUI_DOC_CODE_EDITOR, optional: true }, { token: TUI_DOC_EXAMPLE_CONTENT_PROCESSOR }, { token: TUI_IS_E2E }, { token: TUI_DOC_CODE_ACTIONS }, { token: Router }, { token: ActivatedRoute }, { token: NgLocation }, { token: TUI_DOC_EXAMPLE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
86
- TuiDocExampleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocExampleComponent, selector: "tui-doc-example", inputs: { id: "id", heading: "heading", description: "description", content: "content", fullsize: "fullsize", componentName: "componentName" }, host: { properties: { "class._fullsize": "this.fullsize" } }, ngImport: i0, template: "<h3\n *ngIf=\"heading\"\n class=\"t-title\"\n>\n <span\n *polymorpheusOutlet=\"heading as text\"\n [textContent]=\"text\"\n ></span>\n <button\n *ngIf=\"id\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-link-icon\"\n [icon]=\"options.linkIcon\"\n [title]=\"copy$ | async\"\n (click)=\"copyExampleLink()\"\n ></button>\n</h3>\n<h4\n *ngIf=\"description\"\n class=\"t-description\"\n>\n <ng-container *polymorpheusOutlet=\"description as text\">\n {{ text }}\n </ng-container>\n</h4>\n\n<div\n *ngIf=\"processor$ | async as files\"\n class=\"t-example\"\n>\n <ng-container *ngIf=\"files | tuiDocExampleGetTabs: defaultTab as tabs\">\n <div\n *ngIf=\"tabs.length > 1\"\n class=\"t-tabs-wrapper\"\n >\n <tui-tabs-with-more\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n *tuiItem\n tuiTab\n >\n <ng-container *polymorpheusOutlet=\"getTabTitle(tab) as text\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </tui-tabs-with-more>\n\n <tui-loader\n *ngIf=\"files | tuiMapper: visible\"\n size=\"xs\"\n [overlay]=\"true\"\n [showLoader]=\"!!(loading$ | async)\"\n (click)=\"edit(files)\"\n >\n <ng-container *ngIf=\"codeEditor?.content as content; else defaultEditContent\">\n <ng-container *polymorpheusOutlet=\"content as editContent\">\n {{ editContent }}\n </ng-container>\n </ng-container>\n\n <ng-template #defaultEditContent>\n <button\n appearance=\"flat\"\n size=\"s\"\n tuiButton\n type=\"button\"\n >\n Edit on {{ codeEditor!.name }}\n </button>\n </ng-template>\n </tui-loader>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n [class.t-content_animated]=\"!isE2E\"\n [class.t-content_visible]=\"activeItemIndex === index\"\n >\n <ng-container\n *ngIf=\"index === defaultTabIndex; else anotherTab\"\n [ngTemplateOutlet]=\"preview\"\n ></ng-container>\n <ng-template #anotherTab>\n <ng-container\n [ngTemplateOutlet]=\"codeSection\"\n [ngTemplateOutletContext]=\"{$implicit: files?.[tabs[activeItemIndex]] || ''}\"\n ></ng-container>\n </ng-template>\n </div>\n </ng-container>\n</div>\n\n<ng-template #preview>\n <div\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template\n #codeSection\n let-code\n>\n <tui-doc-code [code]=\"code\">\n <ng-container *ngFor=\"let action of codeActions\">\n <ng-container *polymorpheusOutlet=\"action as text; context: {$implicit: code}\">\n {{ text }}\n </ng-container>\n </ng-container>\n </tui-doc-code>\n</ng-template>\n", styles: [":host{position:relative;display:block;padding-top:3.5rem;clear:right}:host:target{animation:1s .3s tuiShaking}:host :host-context(tui-root._mobile){padding-top:2rem}.t-title{font:var(--tui-font-heading-5);margin:0 0 .5rem}:host-context(tui-root._mobile) .t-title{font:var(--tui-font-heading-6)}.t-description{font:var(--tui-font-text-m);font-weight:normal;margin:0}.t-title:first-letter,.t-description:first-letter{text-transform:capitalize}.t-example{position:relative;margin-top:1.5rem;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);box-shadow:0 .125rem .1875rem #0000001a;overflow:hidden}:host-context(tui-root._mobile) .t-example{margin-top:.75rem}.t-tabs-wrapper{display:flex;padding:0 .875rem 0 2rem;box-shadow:inset 0 -1px var(--tui-base-03);justify-content:space-between;align-items:center}:host-context(tui-root._mobile) .t-tabs-wrapper{padding:0 .875rem 0 1rem}.t-tabs{flex-grow:1}.t-demo{padding:2rem;max-width:100%;box-sizing:border-box;overflow-x:auto}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.t-demo::-webkit-scrollbar,.t-demo::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:.375rem solid transparent}.t-demo::-webkit-scrollbar{background-color:transparent}.t-demo::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.t-demo::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.t-demo::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host-context(tui-root._mobile) .t-demo{padding:1rem}:host:not(._fullsize) .t-demo{width:-webkit-min-content;width:min-content;min-width:20rem}.t-link-icon{margin-left:.3rem;vertical-align:baseline}.t-content{will-change:opacity;height:0;visibility:hidden;opacity:0}.t-content_animated{transition:opacity .3s ease-in-out}.t-content_visible{height:auto;visibility:visible;opacity:1}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i2.TuiTabsWithMoreComponent, selector: "tui-tabs-with-more, nav[tuiTabsWithMore]", inputs: ["moreContent", "dropdownContent", "underline", "activeItemIndex", "itemsLimit"], outputs: ["activeItemIndexChange"] }, { type: i2.TuiTabComponent, selector: "a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]" }, { type: i1.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { type: i3.TuiDocCodeComponent, selector: "tui-doc-code", inputs: ["filename", "code"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.TuiItemDirective, selector: "[tuiItem]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i4.AsyncPipe, "tuiDocExampleGetTabs": i7.TuiDocExampleGetTabsPipe, "tuiMapper": i6.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
+ TuiDocExampleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleComponent, deps: [{ token: Clipboard }, { token: TuiAlertService }, { token: LOCATION }, { token: TUI_COPY_TEXTS }, { token: TUI_DOC_EXAMPLE_TEXTS }, { token: TUI_DOC_CODE_EDITOR, optional: true }, { token: TUI_DOC_EXAMPLE_CONTENT_PROCESSOR }, { token: TUI_IS_E2E }, { token: TUI_DOC_CODE_ACTIONS }, { token: TUI_DOC_EXAMPLE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
66
+ TuiDocExampleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocExampleComponent, selector: "tui-doc-example", inputs: { id: "id", heading: "heading", description: "description", content: "content", fullsize: "fullsize", componentName: "componentName" }, host: { properties: { "class._fullsize": "this.fullsize" } }, ngImport: i0, template: "<h3\n *ngIf=\"heading\"\n class=\"t-title\"\n>\n <span\n *polymorpheusOutlet=\"heading as text\"\n [textContent]=\"text\"\n ></span>\n <a\n *ngIf=\"id\"\n appearance=\"icon\"\n routerLink=\".\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-link-icon\"\n [fragment]=\"id\"\n [icon]=\"options.linkIcon\"\n [title]=\"copy$ | async\"\n (click)=\"copyExampleLink($any($event.currentTarget))\"\n ></a>\n</h3>\n<h4\n *ngIf=\"description\"\n class=\"t-description\"\n>\n <ng-container *polymorpheusOutlet=\"description as text\">\n {{ text }}\n </ng-container>\n</h4>\n\n<div\n *ngIf=\"processor$ | async as files\"\n class=\"t-example\"\n>\n <ng-container *ngIf=\"files | tuiDocExampleGetTabs: defaultTab as tabs\">\n <div\n *ngIf=\"tabs.length > 1\"\n class=\"t-tabs-wrapper\"\n >\n <tui-tabs-with-more\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n *tuiItem\n tuiTab\n >\n <ng-container *polymorpheusOutlet=\"getTabTitle(tab) as text\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </tui-tabs-with-more>\n\n <tui-loader\n *ngIf=\"files | tuiMapper: visible\"\n size=\"xs\"\n [overlay]=\"true\"\n [showLoader]=\"!!(loading$ | async)\"\n (click)=\"edit(files)\"\n >\n <ng-container *ngIf=\"codeEditor?.content as content; else defaultEditContent\">\n <ng-container *polymorpheusOutlet=\"content as editContent\">\n {{ editContent }}\n </ng-container>\n </ng-container>\n\n <ng-template #defaultEditContent>\n <button\n appearance=\"flat\"\n size=\"s\"\n tuiButton\n type=\"button\"\n >\n Edit on {{ codeEditor!.name }}\n </button>\n </ng-template>\n </tui-loader>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n [class.t-content_animated]=\"!isE2E\"\n [class.t-content_visible]=\"activeItemIndex === index\"\n >\n <ng-container\n *ngIf=\"index === defaultTabIndex; else anotherTab\"\n [ngTemplateOutlet]=\"preview\"\n ></ng-container>\n <ng-template #anotherTab>\n <ng-container\n [ngTemplateOutlet]=\"codeSection\"\n [ngTemplateOutletContext]=\"{$implicit: files?.[tabs[activeItemIndex]] || ''}\"\n ></ng-container>\n </ng-template>\n </div>\n </ng-container>\n</div>\n\n<ng-template #preview>\n <div\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template\n #codeSection\n let-code\n>\n <tui-doc-code [code]=\"code\">\n <ng-container *ngFor=\"let action of codeActions\">\n <ng-container *polymorpheusOutlet=\"action as text; context: {$implicit: code}\">\n {{ text }}\n </ng-container>\n </ng-container>\n </tui-doc-code>\n</ng-template>\n", styles: [":host{position:relative;display:block;padding-top:3.5rem;clear:right}:host:target{animation:1s .3s tuiShaking}:host :host-context(tui-root._mobile){padding-top:2rem}.t-title{font:var(--tui-font-heading-5);margin:0 0 .5rem}:host-context(tui-root._mobile) .t-title{font:var(--tui-font-heading-6)}.t-description{font:var(--tui-font-text-m);font-weight:normal;margin:0}.t-title:first-letter,.t-description:first-letter{text-transform:capitalize}.t-example{position:relative;margin-top:1.5rem;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);box-shadow:0 .125rem .1875rem #0000001a;overflow:hidden}:host-context(tui-root._mobile) .t-example{margin-top:.75rem}.t-tabs-wrapper{display:flex;padding:0 .875rem 0 2rem;box-shadow:inset 0 -1px var(--tui-base-03);justify-content:space-between;align-items:center}:host-context(tui-root._mobile) .t-tabs-wrapper{padding:0 .875rem 0 1rem}.t-tabs{flex-grow:1}.t-demo{padding:2rem;max-width:100%;box-sizing:border-box;overflow-x:auto}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.t-demo::-webkit-scrollbar,.t-demo::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:.375rem solid transparent}.t-demo::-webkit-scrollbar{background-color:transparent}.t-demo::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.t-demo::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.t-demo::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host-context(tui-root._mobile) .t-demo{padding:1rem}:host:not(._fullsize) .t-demo{width:-webkit-min-content;width:min-content;min-width:20rem}.t-link-icon{margin-left:.3rem;vertical-align:baseline}.t-content{will-change:opacity;height:0;visibility:hidden;opacity:0}.t-content_animated{transition:opacity .3s ease-in-out}.t-content_visible{height:auto;visibility:visible;opacity:1}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i2.TuiTabsWithMoreComponent, selector: "tui-tabs-with-more, nav[tuiTabsWithMore]", inputs: ["moreContent", "dropdownContent", "underline", "activeItemIndex", "itemsLimit"], outputs: ["activeItemIndexChange"] }, { type: i2.TuiTabComponent, selector: "a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]" }, { type: i1.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { type: i3.TuiDocCodeComponent, selector: "tui-doc-code", inputs: ["filename", "code"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i6.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.TuiItemDirective, selector: "[tuiItem]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i4.AsyncPipe, "tuiDocExampleGetTabs": i8.TuiDocExampleGetTabsPipe, "tuiMapper": i7.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
87
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleComponent, decorators: [{
88
68
  type: Component,
89
69
  args: [{
@@ -92,7 +72,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
92
72
  styleUrls: ['./example.style.less'],
93
73
  changeDetection: ChangeDetectionStrategy.OnPush,
94
74
  }]
95
- }], ctorParameters: function () { return [{ type: i8.Clipboard, decorators: [{
75
+ }], ctorParameters: function () { return [{ type: i9.Clipboard, decorators: [{
96
76
  type: Inject,
97
77
  args: [Clipboard]
98
78
  }] }, { type: i1.TuiAlertService, decorators: [{
@@ -101,7 +81,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
101
81
  }] }, { type: Location, decorators: [{
102
82
  type: Inject,
103
83
  args: [LOCATION]
104
- }] }, { type: i9.Observable, decorators: [{
84
+ }] }, { type: i10.Observable, decorators: [{
105
85
  type: Inject,
106
86
  args: [TUI_COPY_TEXTS]
107
87
  }] }, { type: undefined, decorators: [{
@@ -121,15 +101,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
121
101
  }] }, { type: Array, decorators: [{
122
102
  type: Inject,
123
103
  args: [TUI_DOC_CODE_ACTIONS]
124
- }] }, { type: i10.Router, decorators: [{
125
- type: Inject,
126
- args: [Router]
127
- }] }, { type: i10.ActivatedRoute, decorators: [{
128
- type: Inject,
129
- args: [ActivatedRoute]
130
- }] }, { type: i4.Location, decorators: [{
131
- type: Inject,
132
- args: [NgLocation]
133
104
  }] }, { type: undefined, decorators: [{
134
105
  type: Inject,
135
106
  args: [TUI_DOC_EXAMPLE_OPTIONS]
@@ -149,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
149
120
  }], componentName: [{
150
121
  type: Input
151
122
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9leGFtcGxlL2V4YW1wbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZXhhbXBsZS9leGFtcGxlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLElBQUksVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGlDQUFpQyxFQUNqQyxxQkFBcUIsR0FDeEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsVUFBVSxFQUFxQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLEVBQUMsZUFBZSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9B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ZW50IjpbImltcG9ydCB7Q2xpcGJvYXJkfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7TG9jYXRpb24gYXMgTmdMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xPQ0FUSU9OfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpQ29kZUVkaXRvciwgVHVpRG9jRXhhbXBsZX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgVFVJX0RPQ19DT0RFX0FDVElPTlMsXG4gICAgVFVJX0RPQ19DT0RFX0VESVRPUixcbiAgICBUVUlfRE9DX0VYQU1QTEVfQ09OVEVOVF9QUk9DRVNTT1IsXG4gICAgVFVJX0RPQ19FWEFNUExFX1RFWFRTLFxufSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3Rva2Vucyc7XG5pbXBvcnQge3R1aVJhd0xvYWRSZWNvcmR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdXRpbHMnO1xuaW1wb3J0IHtUVUlfSVNfRTJFLCBUdWlDb250ZXh0V2l0aEltcGxpY2l0LCBUdWlIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpQWxlcnRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9DT1BZX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfRE9DX0VYQU1QTEVfT1BUSU9OUywgVHVpRG9jRXhhbXBsZU9wdGlvbnN9IGZyb20gJy4vZXhhbXBsZS5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZG9jLWV4YW1wbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9leGFtcGxlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2V4YW1wbGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NFeGFtcGxlQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhd0xvYWRlciQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUdWlEb2NFeGFtcGxlPih7fSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgaGVhZGluZzogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVzY3JpcHRpb246IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IFR1aURvY0V4YW1wbGUpIHtcbiAgICAgICAgdGhpcy5yYXdMb2FkZXIkJC5uZXh0KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZnVsbHNpemUnKVxuICAgIGZ1bGxzaXplID0gdGhpcy5vcHRpb25zLmZ1bGxzaXplO1xuXG4gICAgQElucHV0KClcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcgPSB0aGlzLmxvY2F0aW9uLnBhdGhuYW1lLnNsaWNlKDEpO1xuXG4gICAgcmVhZG9ubHkgZGVmYXVsdFRhYkluZGV4ID0gMDtcblxuICAgIHJlYWRvbmx5IGRlZmF1bHRUYWIgPSB0aGlzLnRleHRzW3RoaXMuZGVmYXVsdFRhYkluZGV4XTtcblxuICAgIGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMuZGVmYXVsdFRhYkluZGV4O1xuXG4gICAgcmVhZG9ubHkgY29weSQgPSB0aGlzLmNvcHlUZXh0cyQucGlwZShtYXAoKFtjb3B5XSkgPT4gY29weSkpO1xuXG4gICAgcmVhZG9ubHkgcHJvY2Vzc29yJDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHRoaXMucmF3TG9hZGVyJCQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHR1aVJhd0xvYWRSZWNvcmQpLFxuICAgICAgICBtYXAodmFsdWUgPT4gdGhpcy5wcm9jZXNzQ29udGVudCh2YWx1ZSkpLFxuICAgICk7XG5cbiAgICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChDbGlwYm9hcmQpIHByaXZhdGUgcmVhZG9ubHkgY2xpcGJvYXJkOiBDbGlwYm9hcmQsXG4gICAgICAgIEBJbmplY3QoVHVpQWxlcnRTZXJ2aWNlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVHVpQWxlcnRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KExPQ0FUSU9OKSBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChUVUlfQ09QWV9URVhUUykgcHJpdmF0ZSByZWFkb25seSBjb3B5VGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfRVhBTVBMRV9URVhUUykgcmVhZG9ubHkgdGV4dHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0NPREVfRURJVE9SKVxuICAgICAgICByZWFkb25seSBjb2RlRWRpdG9yOiBUdWlDb2RlRWRpdG9yIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0VYQU1QTEVfQ09OVEVOVF9QUk9DRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0NvbnRlbnQ6IFR1aUhhbmRsZXI8XG4gICAgICAgICAgICBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgICAgICAgICAgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgICAgICA+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19FMkUpIHJlYWRvbmx5IGlzRTJFOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfQ09ERV9BQ1RJT05TKVxuICAgICAgICByZWFkb25seSBjb2RlQWN0aW9uczogQXJyYXk8UG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PHN0cmluZz4+PixcbiAgICAgICAgQEluamVjdChSb3V0ZXIpIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIEBJbmplY3QoQWN0aXZhdGVkUm91dGUpIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBASW5qZWN0KE5nTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbmdMb2NhdGlvbjogTmdMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0VYQU1QTEVfT1BUSU9OUykgcmVhZG9ubHkgb3B0aW9uczogVHVpRG9jRXhhbXBsZU9wdGlvbnMsXG4gICAgKSB7fVxuXG4gICAgcmVhZG9ubHkgdmlzaWJsZSA9IChmaWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IGJvb2xlYW4gPT5cbiAgICAgICAgQm9vbGVhbih0aGlzLmNvZGVFZGl0b3IgJiYgdGhpcy5vcHRpb25zLmNvZGVFZGl0b3JWaXNpYmlsaXR5SGFuZGxlcihmaWxlcykpO1xuXG4gICAgZ2V0VGFiVGl0bGUoZmlsZU5hbWU6IHN0cmluZyk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRhYlRpdGxlcy5nZXQoZmlsZU5hbWUpIHx8IGZpbGVOYW1lO1xuICAgIH1cblxuICAgIGNvcHlFeGFtcGxlTGluaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzaFBvc2l0aW9uID0gdGhpcy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJyMnKTtcbiAgICAgICAgY29uc3QgY3VycmVudFVybCA9XG4gICAgICAgICAgICBoYXNoUG9zaXRpb24gPiAtMVxuICAgICAgICAgICAgICAgID8gdGhpcy5sb2NhdGlvbi5ocmVmLnNsaWNlKDAsIE1hdGgubWF4KDAsIGhhc2hQb3NpdGlvbikpXG4gICAgICAgICAgICAgICAgOiB0aGlzLmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2N1cnJlbnRVcmx9IyR7dGhpcy5pZH1gO1xuXG4gICAgICAgIHRoaXMuc2V0RnJhZ21lbnRXaXRob3V0UmVkaXJlY3QodGhpcy5pZCk7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkodXJsKTtcbiAgICAgICAgdGhpcy5hbGVydHNcbiAgICAgICAgICAgIC5vcGVuKHRoaXMudGV4dHNbMV0sIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50ZXh0c1syXSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZWRpdChmaWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuY29kZUVkaXRvclxuICAgICAgICAgICAgPy5lZGl0KHRoaXMuY29tcG9uZW50TmFtZSwgdGhpcy5pZCB8fCAnJywgZmlsZXMpXG4gICAgICAgICAgICAvLyBUT0RPOiByZXBsYWNlIGxpbmVzIGJlbG93IHdpdGggYGZpbmFsbHlgIHdoZW4gd2UgYnVtcCBGaXJlZm94IHRvIDU4K1xuICAgICAgICAgICAgLy8gVE9ETzogQWRkIGBlczIwMTgucHJvbWlzZWAgdG8gYHRzY29uZmlnLmpzb25gID0+IGBjb21waWxlck9wdGlvbnMubGliYC5cbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGcmFnbWVudFdpdGhvdXRSZWRpcmVjdChpZDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlclxuICAgICAgICAgICAgLmNyZWF0ZVVybFRyZWUoW10sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBmcmFnbWVudDogaWQgfHwgJyd9KVxuICAgICAgICAgICAgLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgdGhpcy5uZ0xvY2F0aW9uLmdvKHVybCk7XG4gICAgfVxufVxuIiwiPGgzXG4gICAgKm5nSWY9XCJoZWFkaW5nXCJcbiAgICBjbGFzcz1cInQtdGl0bGVcIlxuPlxuICAgIDxzcGFuXG4gICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJoZWFkaW5nIGFzIHRleHRcIlxuICAgICAgICBbdGV4dENvbnRlbnRdPVwidGV4dFwiXG4gICAgPjwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiaWRcIlxuICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwidC1saW5rLWljb25cIlxuICAgICAgICBbaWNvbl09XCJvcHRpb25zLmxpbmtJY29uXCJcbiAgICAgICAgW3RpdGxlXT1cImNvcHkkIHwgYXN5bmNcIlxuICAgICAgICAoY2xpY2spPVwiY29weUV4YW1wbGVMaW5rKClcIlxuICAgID48L2J1dHRvbj5cbjwvaDM+XG48aDRcbiAgICAqbmdJZj1cImRlc2NyaXB0aW9uXCJcbiAgICBjbGFzcz1cInQtZGVzY3JpcHRpb25cIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImRlc2NyaXB0aW9uIGFzIHRleHRcIj5cbiAgICAgICAge3sgdGV4dCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9oND5cblxuPGRpdlxuICAgICpuZ0lmPVwicHJvY2Vzc29yJCB8IGFzeW5jIGFzIGZpbGVzXCJcbiAgICBjbGFzcz1cInQtZXhhbXBsZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbGVzIHwgdHVpRG9jRXhhbXBsZUdldFRhYnM6IGRlZmF1bHRUYWIgYXMgdGFic1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInRhYnMubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtdGFicy13cmFwcGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS10YWJzLXdpdGgtbW9yZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC10YWJzXCJcbiAgICAgICAgICAgICAgICBbKGFjdGl2ZUl0ZW1JbmRleCldPVwiYWN0aXZlSXRlbUluZGV4XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqdHVpSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGFiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImdldFRhYlRpdGxlKHRhYikgYXMgdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdHVpLXRhYnMtd2l0aC1tb3JlPlxuXG4gICAgICAgICAgICA8dHVpLWxvYWRlclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZXMgfCB0dWlNYXBwZXI6IHZpc2libGVcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgW292ZXJsYXldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0KGZpbGVzKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvZGVFZGl0b3I/LmNvbnRlbnQgYXMgY29udGVudDsgZWxzZSBkZWZhdWx0RWRpdENvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGVudCBhcyBlZGl0Q29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZWRpdENvbnRlbnQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFZGl0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgRWRpdCBvbiB7eyBjb2RlRWRpdG9yIS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3R1aS1sb2FkZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbnRlbnRcIlxuICAgICAgICAgICAgW2NsYXNzLnQtY29udGVudF9hbmltYXRlZF09XCIhaXNFMkVcIlxuICAgICAgICAgICAgW2NsYXNzLnQtY29udGVudF92aXNpYmxlXT1cImFjdGl2ZUl0ZW1JbmRleCA9PT0gaW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpbmRleCA9PT0gZGVmYXVsdFRhYkluZGV4OyBlbHNlIGFub3RoZXJUYWJcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByZXZpZXdcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNhbm90aGVyVGFiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29kZVNlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogZmlsZXM/Llt0YWJzW2FjdGl2ZUl0ZW1JbmRleF1dIHx8ICcnfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwcmV2aWV3PlxuICAgIDxkaXZcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1kb2MtZXhhbXBsZVwiXG4gICAgICAgIGNsYXNzPVwidC1kZW1vXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb2RlU2VjdGlvblxuICAgIGxldC1jb2RlXG4+XG4gICAgPHR1aS1kb2MtY29kZSBbY29kZV09XCJjb2RlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2RlQWN0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiYWN0aW9uIGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvZGV9XCI+XG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdHVpLWRvYy1jb2RlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9leGFtcGxlL2V4YW1wbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZXhhbXBsZS9leGFtcGxlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUNILG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsaUNBQWlDLEVBQ2pDLHFCQUFxQixHQUN4QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxVQUFVLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLHVCQUF1QixFQUF1QixNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7QUFRaEYsTUFBTSxPQUFPLHNCQUFzQjtJQXVDL0IsWUFDd0MsU0FBb0IsRUFFdkMsTUFBdUIsRUFD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fSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xPQ0FUSU9OfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpQ29kZUVkaXRvciwgVHVpRG9jRXhhbXBsZX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgVFVJX0RPQ19DT0RFX0FDVElPTlMsXG4gICAgVFVJX0RPQ19DT0RFX0VESVRPUixcbiAgICBUVUlfRE9DX0VYQU1QTEVfQ09OVEVOVF9QUk9DRVNTT1IsXG4gICAgVFVJX0RPQ19FWEFNUExFX1RFWFRTLFxufSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3Rva2Vucyc7XG5pbXBvcnQge3R1aVJhd0xvYWRSZWNvcmR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdXRpbHMnO1xuaW1wb3J0IHtUVUlfSVNfRTJFLCBUdWlDb250ZXh0V2l0aEltcGxpY2l0LCBUdWlIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpQWxlcnRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9DT1BZX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfRE9DX0VYQU1QTEVfT1BUSU9OUywgVHVpRG9jRXhhbXBsZU9wdGlvbnN9IGZyb20gJy4vZXhhbXBsZS5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZG9jLWV4YW1wbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9leGFtcGxlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2V4YW1wbGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NFeGFtcGxlQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhd0xvYWRlciQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUdWlEb2NFeGFtcGxlPih7fSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgaGVhZGluZzogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVzY3JpcHRpb246IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IFR1aURvY0V4YW1wbGUpIHtcbiAgICAgICAgdGhpcy5yYXdMb2FkZXIkJC5uZXh0KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZnVsbHNpemUnKVxuICAgIGZ1bGxzaXplID0gdGhpcy5vcHRpb25zLmZ1bGxzaXplO1xuXG4gICAgQElucHV0KClcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcgPSB0aGlzLmxvY2F0aW9uLnBhdGhuYW1lLnNsaWNlKDEpO1xuXG4gICAgcmVhZG9ubHkgZGVmYXVsdFRhYkluZGV4ID0gMDtcblxuICAgIHJlYWRvbmx5IGRlZmF1bHRUYWIgPSB0aGlzLnRleHRzW3RoaXMuZGVmYXVsdFRhYkluZGV4XTtcblxuICAgIGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMuZGVmYXVsdFRhYkluZGV4O1xuXG4gICAgcmVhZG9ubHkgY29weSQgPSB0aGlzLmNvcHlUZXh0cyQucGlwZShtYXAoKFtjb3B5XSkgPT4gY29weSkpO1xuXG4gICAgcmVhZG9ubHkgcHJvY2Vzc29yJDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHRoaXMucmF3TG9hZGVyJCQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHR1aVJhd0xvYWRSZWNvcmQpLFxuICAgICAgICBtYXAodmFsdWUgPT4gdGhpcy5wcm9jZXNzQ29udGVudCh2YWx1ZSkpLFxuICAgICk7XG5cbiAgICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChDbGlwYm9hcmQpIHByaXZhdGUgcmVhZG9ubHkgY2xpcGJvYXJkOiBDbGlwYm9hcmQsXG4gICAgICAgIEBJbmplY3QoVHVpQWxlcnRTZXJ2aWNlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVHVpQWxlcnRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KExPQ0FUSU9OKSBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChUVUlfQ09QWV9URVhUUykgcHJpdmF0ZSByZWFkb25seSBjb3B5VGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfRVhBTVBMRV9URVhUUykgcmVhZG9ubHkgdGV4dHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0NPREVfRURJVE9SKVxuICAgICAgICByZWFkb25seSBjb2RlRWRpdG9yOiBUdWlDb2RlRWRpdG9yIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0VYQU1QTEVfQ09OVEVOVF9QUk9DRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0NvbnRlbnQ6IFR1aUhhbmRsZXI8XG4gICAgICAgICAgICBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgICAgICAgICAgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgICAgICA+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19FMkUpIHJlYWRvbmx5IGlzRTJFOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfQ09ERV9BQ1RJT05TKVxuICAgICAgICByZWFkb25seSBjb2RlQWN0aW9uczogQXJyYXk8UG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PHN0cmluZz4+PixcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0VYQU1QTEVfT1BUSU9OUykgcmVhZG9ubHkgb3B0aW9uczogVHVpRG9jRXhhbXBsZU9wdGlvbnMsXG4gICAgKSB7fVxuXG4gICAgcmVhZG9ubHkgdmlzaWJsZSA9IChmaWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IGJvb2xlYW4gPT5cbiAgICAgICAgQm9vbGVhbih0aGlzLmNvZGVFZGl0b3IgJiYgdGhpcy5vcHRpb25zLmNvZGVFZGl0b3JWaXNpYmlsaXR5SGFuZGxlcihmaWxlcykpO1xuXG4gICAgZ2V0VGFiVGl0bGUoZmlsZU5hbWU6IHN0cmluZyk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRhYlRpdGxlcy5nZXQoZmlsZU5hbWUpIHx8IGZpbGVOYW1lO1xuICAgIH1cblxuICAgIGNvcHlFeGFtcGxlTGluayh7aHJlZn06IEhUTUxBbmNob3JFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkoaHJlZik7XG4gICAgICAgIHRoaXMuYWxlcnRzXG4gICAgICAgICAgICAub3Blbih0aGlzLnRleHRzWzFdLCB7bGFiZWw6IHRoaXMudGV4dHNbMl0sIHN0YXR1czogJ3N1Y2Nlc3MnfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBlZGl0KGZpbGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5jb2RlRWRpdG9yXG4gICAgICAgICAgICA/LmVkaXQodGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmlkIHx8ICcnLCBmaWxlcylcbiAgICAgICAgICAgIC8vIFRPRE86IHJlcGxhY2UgbGluZXMgYmVsb3cgd2l0aCBgZmluYWxseWAgd2hlbiB3ZSBidW1wIEZpcmVmb3ggdG8gNTgrXG4gICAgICAgICAgICAvLyBUT0RPOiBBZGQgYGVzMjAxOC5wcm9taXNlYCB0byBgdHNjb25maWcuanNvbmAgPT4gYGNvbXBpbGVyT3B0aW9ucy5saWJgLlxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKTtcbiAgICB9XG59XG4iLCI8aDNcbiAgICAqbmdJZj1cImhlYWRpbmdcIlxuICAgIGNsYXNzPVwidC10aXRsZVwiXG4+XG4gICAgPHNwYW5cbiAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImhlYWRpbmcgYXMgdGV4dFwiXG4gICAgICAgIFt0ZXh0Q29udGVudF09XCJ0ZXh0XCJcbiAgICA+PC9zcGFuPlxuICAgIDxhXG4gICAgICAgICpuZ0lmPVwiaWRcIlxuICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgIHJvdXRlckxpbms9XCIuXCJcbiAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJ0LWxpbmstaWNvblwiXG4gICAgICAgIFtmcmFnbWVudF09XCJpZFwiXG4gICAgICAgIFtpY29uXT1cIm9wdGlvbnMubGlua0ljb25cIlxuICAgICAgICBbdGl0bGVdPVwiY29weSQgfCBhc3luY1wiXG4gICAgICAgIChjbGljayk9XCJjb3B5RXhhbXBsZUxpbmsoJGFueSgkZXZlbnQuY3VycmVudFRhcmdldCkpXCJcbiAgICA+PC9hPlxuPC9oMz5cbjxoNFxuICAgICpuZ0lmPVwiZGVzY3JpcHRpb25cIlxuICAgIGNsYXNzPVwidC1kZXNjcmlwdGlvblwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiZGVzY3JpcHRpb24gYXMgdGV4dFwiPlxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG48L2g0PlxuXG48ZGl2XG4gICAgKm5nSWY9XCJwcm9jZXNzb3IkIHwgYXN5bmMgYXMgZmlsZXNcIlxuICAgIGNsYXNzPVwidC1leGFtcGxlXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsZXMgfCB0dWlEb2NFeGFtcGxlR2V0VGFiczogZGVmYXVsdFRhYiBhcyB0YWJzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwidGFicy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC10YWJzLXdyYXBwZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXRhYnMtd2l0aC1tb3JlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXRhYnNcIlxuICAgICAgICAgICAgICAgIFsoYWN0aXZlSXRlbUluZGV4KV09XCJhY3RpdmVJdGVtSW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlUYWJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiZ2V0VGFiVGl0bGUodGFiKSBhcyB0ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90dWktdGFicy13aXRoLW1vcmU+XG5cbiAgICAgICAgICAgIDx0dWktbG9hZGVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmaWxlcyB8IHR1aU1hcHBlcjogdmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgICAgICAgICBbb3ZlcmxheV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc2hvd0xvYWRlcl09XCIhIShsb2FkaW5nJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXQoZmlsZXMpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29kZUVkaXRvcj8uY29udGVudCBhcyBjb250ZW50OyBlbHNlIGRlZmF1bHRFZGl0Q29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZW50IGFzIGVkaXRDb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBlZGl0Q29udGVudCB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVkaXRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0IG9uIHt7IGNvZGVFZGl0b3IhLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdHVpLWxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY29udGVudFwiXG4gICAgICAgICAgICBbY2xhc3MudC1jb250ZW50X2FuaW1hdGVkXT1cIiFpc0UyRVwiXG4gICAgICAgICAgICBbY2xhc3MudC1jb250ZW50X3Zpc2libGVdPVwiYWN0aXZlSXRlbUluZGV4ID09PSBpbmRleFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImluZGV4ID09PSBkZWZhdWx0VGFiSW5kZXg7IGVsc2UgYW5vdGhlclRhYlwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJldmlld1wiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Fub3RoZXJUYWI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2RlU2VjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBmaWxlcz8uW3RhYnNbYWN0aXZlSXRlbUluZGV4XV0gfHwgJyd9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3ByZXZpZXc+XG4gICAgPGRpdlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRvYy1leGFtcGxlXCJcbiAgICAgICAgY2xhc3M9XCJ0LWRlbW9cIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICAgI2NvZGVTZWN0aW9uXG4gICAgbGV0LWNvZGVcbj5cbiAgICA8dHVpLWRvYy1jb2RlIFtjb2RlXT1cImNvZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvZGVBY3Rpb25zXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJhY3Rpb24gYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogY29kZX1cIj5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90dWktZG9jLWNvZGU+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,6 +1,7 @@
1
1
  import { ClipboardModule } from '@angular/cdk/clipboard';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
+ import { RouterModule } from '@angular/router';
4
5
  import { TuiMapperPipeModule } from '@taiga-ui/cdk';
5
6
  import { TuiButtonModule, TuiLoaderModule } from '@taiga-ui/core';
6
7
  import { TuiTabsModule } from '@taiga-ui/kit';
@@ -21,7 +22,8 @@ TuiDocExampleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
21
22
  TuiDocCodeModule,
22
23
  PolymorpheusModule,
23
24
  TuiMapperPipeModule,
24
- TuiLoaderModule], exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe] });
25
+ TuiLoaderModule,
26
+ RouterModule], exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe] });
25
27
  TuiDocExampleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleModule, imports: [[
26
28
  CommonModule,
27
29
  ClipboardModule,
@@ -32,6 +34,7 @@ TuiDocExampleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
32
34
  PolymorpheusModule,
33
35
  TuiMapperPipeModule,
34
36
  TuiLoaderModule,
37
+ RouterModule,
35
38
  ]] });
36
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleModule, decorators: [{
37
40
  type: NgModule,
@@ -46,9 +49,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
46
49
  PolymorpheusModule,
47
50
  TuiMapperPipeModule,
48
51
  TuiLoaderModule,
52
+ RouterModule,
49
53
  ],
50
54
  declarations: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],
51
55
  exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],
52
56
  }]
53
57
  }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9leGFtcGxlL2V4YW1wbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDOztBQWlCakUsTUFBTSxPQUFPLG1CQUFtQjs7aUhBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGlCQUhiLHNCQUFzQixFQUFFLHdCQUF3QixhQVYzRCxZQUFZO1FBQ1osZUFBZTtRQUNmLGFBQWE7UUFDYixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLGVBQWUsYUFHVCxzQkFBc0IsRUFBRSx3QkFBd0I7a0hBRWpELG1CQUFtQixZQWRuQjtZQUNMLFlBQVk7WUFDWixlQUFlO1lBQ2YsYUFBYTtZQUNiLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsZUFBZTtTQUNsQjs0RkFJUSxtQkFBbUI7a0JBZi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixlQUFlO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSx3QkFBd0IsQ0FBQztvQkFDaEUsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsd0JBQXdCLENBQUM7aUJBQzlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGlwYm9hcmRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpTWFwcGVyUGlwZU1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUJ1dHRvbk1vZHVsZSwgVHVpTG9hZGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVRhYnNNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNNb2R1bGV9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VHVpRG9jQ29kZU1vZHVsZX0gZnJvbSAnLi4vY29kZS9jb2RlLm1vZHVsZSc7XG5pbXBvcnQge1R1aURvY0NvcHlNb2R1bGV9IGZyb20gJy4uL2NvcHkvY29weS5tb2R1bGUnO1xuaW1wb3J0IHtUdWlEb2NFeGFtcGxlQ29tcG9uZW50fSBmcm9tICcuL2V4YW1wbGUuY29tcG9uZW50JztcbmltcG9ydCB7VHVpRG9jRXhhbXBsZUdldFRhYnNQaXBlfSBmcm9tICcuL2V4YW1wbGUtZ2V0LXRhYnMucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIENsaXBib2FyZE1vZHVsZSxcbiAgICAgICAgVHVpVGFic01vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgICAgICBUdWlEb2NDb3B5TW9kdWxlLFxuICAgICAgICBUdWlEb2NDb2RlTW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgICAgIFR1aU1hcHBlclBpcGVNb2R1bGUsXG4gICAgICAgIFR1aUxvYWRlck1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aURvY0V4YW1wbGVDb21wb25lbnQsIFR1aURvY0V4YW1wbGVHZXRUYWJzUGlwZV0sXG4gICAgZXhwb3J0czogW1R1aURvY0V4YW1wbGVDb21wb25lbnQsIFR1aURvY0V4YW1wbGVHZXRUYWJzUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0V4YW1wbGVNb2R1bGUge31cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9leGFtcGxlL2V4YW1wbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFrQmpFLE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixpQkFIYixzQkFBc0IsRUFBRSx3QkFBd0IsYUFYM0QsWUFBWTtRQUNaLGVBQWU7UUFDZixhQUFhO1FBQ2IsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsWUFBWSxhQUdOLHNCQUFzQixFQUFFLHdCQUF3QjtrSEFFakQsbUJBQW1CLFlBZm5CO1lBQ0wsWUFBWTtZQUNaLGVBQWU7WUFDZixhQUFhO1lBQ2IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsWUFBWTtTQUNmOzRGQUlRLG1CQUFtQjtrQkFoQi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFlBQVk7cUJBQ2Y7b0JBQ0QsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsd0JBQXdCLENBQUM7b0JBQ2hFLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLHdCQUF3QixDQUFDO2lCQUM5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xpcGJvYXJkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHVpTWFwcGVyUGlwZU1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUJ1dHRvbk1vZHVsZSwgVHVpTG9hZGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVRhYnNNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNNb2R1bGV9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VHVpRG9jQ29kZU1vZHVsZX0gZnJvbSAnLi4vY29kZS9jb2RlLm1vZHVsZSc7XG5pbXBvcnQge1R1aURvY0NvcHlNb2R1bGV9IGZyb20gJy4uL2NvcHkvY29weS5tb2R1bGUnO1xuaW1wb3J0IHtUdWlEb2NFeGFtcGxlQ29tcG9uZW50fSBmcm9tICcuL2V4YW1wbGUuY29tcG9uZW50JztcbmltcG9ydCB7VHVpRG9jRXhhbXBsZUdldFRhYnNQaXBlfSBmcm9tICcuL2V4YW1wbGUtZ2V0LXRhYnMucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIENsaXBib2FyZE1vZHVsZSxcbiAgICAgICAgVHVpVGFic01vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgICAgICBUdWlEb2NDb3B5TW9kdWxlLFxuICAgICAgICBUdWlEb2NDb2RlTW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgICAgIFR1aU1hcHBlclBpcGVNb2R1bGUsXG4gICAgICAgIFR1aUxvYWRlck1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHVpRG9jRXhhbXBsZUNvbXBvbmVudCwgVHVpRG9jRXhhbXBsZUdldFRhYnNQaXBlXSxcbiAgICBleHBvcnRzOiBbVHVpRG9jRXhhbXBsZUNvbXBvbmVudCwgVHVpRG9jRXhhbXBsZUdldFRhYnNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jRXhhbXBsZU1vZHVsZSB7fVxuIl19
@@ -969,7 +969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
969
969
  }] });
970
970
 
971
971
  class TuiDocExampleComponent {
972
- constructor(clipboard, alerts, location, copyTexts$, texts, codeEditor, processContent, isE2E, codeActions, router, route, ngLocation, options) {
972
+ constructor(clipboard, alerts, location, copyTexts$, texts, codeEditor, processContent, isE2E, codeActions, options) {
973
973
  this.clipboard = clipboard;
974
974
  this.alerts = alerts;
975
975
  this.location = location;
@@ -979,9 +979,6 @@ class TuiDocExampleComponent {
979
979
  this.processContent = processContent;
980
980
  this.isE2E = isE2E;
981
981
  this.codeActions = codeActions;
982
- this.router = router;
983
- this.route = route;
984
- this.ngLocation = ngLocation;
985
982
  this.options = options;
986
983
  this.rawLoader$$ = new BehaviorSubject({});
987
984
  this.id = null;
@@ -1001,19 +998,10 @@ class TuiDocExampleComponent {
1001
998
  getTabTitle(fileName) {
1002
999
  return this.options.tabTitles.get(fileName) || fileName;
1003
1000
  }
1004
- copyExampleLink() {
1005
- const hashPosition = this.location.href.indexOf('#');
1006
- const currentUrl = hashPosition > -1
1007
- ? this.location.href.slice(0, Math.max(0, hashPosition))
1008
- : this.location.href;
1009
- const url = `${currentUrl}#${this.id}`;
1010
- this.setFragmentWithoutRedirect(this.id);
1011
- this.clipboard.copy(url);
1001
+ copyExampleLink({ href }) {
1002
+ this.clipboard.copy(href);
1012
1003
  this.alerts
1013
- .open(this.texts[1], {
1014
- label: this.texts[2],
1015
- status: 'success',
1016
- })
1004
+ .open(this.texts[1], { label: this.texts[2], status: 'success' })
1017
1005
  .subscribe();
1018
1006
  }
1019
1007
  edit(files) {
@@ -1021,15 +1009,9 @@ class TuiDocExampleComponent {
1021
1009
  this.loading$.next(true);
1022
1010
  (_a = this.codeEditor) === null || _a === void 0 ? void 0 : _a.edit(this.componentName, this.id || '', files).then(() => this.loading$.next(false)).catch(() => this.loading$.next(false));
1023
1011
  }
1024
- setFragmentWithoutRedirect(id) {
1025
- const url = this.router
1026
- .createUrlTree([], { relativeTo: this.route, fragment: id || '' })
1027
- .toString();
1028
- this.ngLocation.go(url);
1029
- }
1030
1012
  }
1031
- TuiDocExampleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleComponent, deps: [{ token: Clipboard }, { token: TuiAlertService }, { token: LOCATION }, { token: TUI_COPY_TEXTS }, { token: TUI_DOC_EXAMPLE_TEXTS }, { token: TUI_DOC_CODE_EDITOR, optional: true }, { token: TUI_DOC_EXAMPLE_CONTENT_PROCESSOR }, { token: TUI_IS_E2E }, { token: TUI_DOC_CODE_ACTIONS }, { token: Router }, { token: ActivatedRoute }, { token: Location$1 }, { token: TUI_DOC_EXAMPLE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
1032
- TuiDocExampleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocExampleComponent, selector: "tui-doc-example", inputs: { id: "id", heading: "heading", description: "description", content: "content", fullsize: "fullsize", componentName: "componentName" }, host: { properties: { "class._fullsize": "this.fullsize" } }, ngImport: i0, template: "<h3\n *ngIf=\"heading\"\n class=\"t-title\"\n>\n <span\n *polymorpheusOutlet=\"heading as text\"\n [textContent]=\"text\"\n ></span>\n <button\n *ngIf=\"id\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-link-icon\"\n [icon]=\"options.linkIcon\"\n [title]=\"copy$ | async\"\n (click)=\"copyExampleLink()\"\n ></button>\n</h3>\n<h4\n *ngIf=\"description\"\n class=\"t-description\"\n>\n <ng-container *polymorpheusOutlet=\"description as text\">\n {{ text }}\n </ng-container>\n</h4>\n\n<div\n *ngIf=\"processor$ | async as files\"\n class=\"t-example\"\n>\n <ng-container *ngIf=\"files | tuiDocExampleGetTabs: defaultTab as tabs\">\n <div\n *ngIf=\"tabs.length > 1\"\n class=\"t-tabs-wrapper\"\n >\n <tui-tabs-with-more\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n *tuiItem\n tuiTab\n >\n <ng-container *polymorpheusOutlet=\"getTabTitle(tab) as text\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </tui-tabs-with-more>\n\n <tui-loader\n *ngIf=\"files | tuiMapper: visible\"\n size=\"xs\"\n [overlay]=\"true\"\n [showLoader]=\"!!(loading$ | async)\"\n (click)=\"edit(files)\"\n >\n <ng-container *ngIf=\"codeEditor?.content as content; else defaultEditContent\">\n <ng-container *polymorpheusOutlet=\"content as editContent\">\n {{ editContent }}\n </ng-container>\n </ng-container>\n\n <ng-template #defaultEditContent>\n <button\n appearance=\"flat\"\n size=\"s\"\n tuiButton\n type=\"button\"\n >\n Edit on {{ codeEditor!.name }}\n </button>\n </ng-template>\n </tui-loader>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n [class.t-content_animated]=\"!isE2E\"\n [class.t-content_visible]=\"activeItemIndex === index\"\n >\n <ng-container\n *ngIf=\"index === defaultTabIndex; else anotherTab\"\n [ngTemplateOutlet]=\"preview\"\n ></ng-container>\n <ng-template #anotherTab>\n <ng-container\n [ngTemplateOutlet]=\"codeSection\"\n [ngTemplateOutletContext]=\"{$implicit: files?.[tabs[activeItemIndex]] || ''}\"\n ></ng-container>\n </ng-template>\n </div>\n </ng-container>\n</div>\n\n<ng-template #preview>\n <div\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template\n #codeSection\n let-code\n>\n <tui-doc-code [code]=\"code\">\n <ng-container *ngFor=\"let action of codeActions\">\n <ng-container *polymorpheusOutlet=\"action as text; context: {$implicit: code}\">\n {{ text }}\n </ng-container>\n </ng-container>\n </tui-doc-code>\n</ng-template>\n", styles: [":host{position:relative;display:block;padding-top:3.5rem;clear:right}:host:target{animation:1s .3s tuiShaking}:host :host-context(tui-root._mobile){padding-top:2rem}.t-title{font:var(--tui-font-heading-5);margin:0 0 .5rem}:host-context(tui-root._mobile) .t-title{font:var(--tui-font-heading-6)}.t-description{font:var(--tui-font-text-m);font-weight:normal;margin:0}.t-title:first-letter,.t-description:first-letter{text-transform:capitalize}.t-example{position:relative;margin-top:1.5rem;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);box-shadow:0 .125rem .1875rem #0000001a;overflow:hidden}:host-context(tui-root._mobile) .t-example{margin-top:.75rem}.t-tabs-wrapper{display:flex;padding:0 .875rem 0 2rem;box-shadow:inset 0 -1px var(--tui-base-03);justify-content:space-between;align-items:center}:host-context(tui-root._mobile) .t-tabs-wrapper{padding:0 .875rem 0 1rem}.t-tabs{flex-grow:1}.t-demo{padding:2rem;max-width:100%;box-sizing:border-box;overflow-x:auto}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.t-demo::-webkit-scrollbar,.t-demo::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:.375rem solid transparent}.t-demo::-webkit-scrollbar{background-color:transparent}.t-demo::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.t-demo::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.t-demo::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host-context(tui-root._mobile) .t-demo{padding:1rem}:host:not(._fullsize) .t-demo{width:-webkit-min-content;width:min-content;min-width:20rem}.t-link-icon{margin-left:.3rem;vertical-align:baseline}.t-content{will-change:opacity;height:0;visibility:hidden;opacity:0}.t-content_animated{transition:opacity .3s ease-in-out}.t-content_visible{height:auto;visibility:visible;opacity:1}\n"], components: [{ type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiTabsWithMoreComponent, selector: "tui-tabs-with-more, nav[tuiTabsWithMore]", inputs: ["moreContent", "dropdownContent", "underline", "activeItemIndex", "itemsLimit"], outputs: ["activeItemIndexChange"] }, { type: i1.TuiTabComponent, selector: "a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]" }, { type: i2.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: ["filename", "code"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5$1.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6$1.TuiItemDirective, selector: "[tuiItem]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i4.AsyncPipe, "tuiDocExampleGetTabs": TuiDocExampleGetTabsPipe, "tuiMapper": i6$1.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1013
+ TuiDocExampleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleComponent, deps: [{ token: Clipboard }, { token: TuiAlertService }, { token: LOCATION }, { token: TUI_COPY_TEXTS }, { token: TUI_DOC_EXAMPLE_TEXTS }, { token: TUI_DOC_CODE_EDITOR, optional: true }, { token: TUI_DOC_EXAMPLE_CONTENT_PROCESSOR }, { token: TUI_IS_E2E }, { token: TUI_DOC_CODE_ACTIONS }, { token: TUI_DOC_EXAMPLE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
1014
+ TuiDocExampleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocExampleComponent, selector: "tui-doc-example", inputs: { id: "id", heading: "heading", description: "description", content: "content", fullsize: "fullsize", componentName: "componentName" }, host: { properties: { "class._fullsize": "this.fullsize" } }, ngImport: i0, template: "<h3\n *ngIf=\"heading\"\n class=\"t-title\"\n>\n <span\n *polymorpheusOutlet=\"heading as text\"\n [textContent]=\"text\"\n ></span>\n <a\n *ngIf=\"id\"\n appearance=\"icon\"\n routerLink=\".\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-link-icon\"\n [fragment]=\"id\"\n [icon]=\"options.linkIcon\"\n [title]=\"copy$ | async\"\n (click)=\"copyExampleLink($any($event.currentTarget))\"\n ></a>\n</h3>\n<h4\n *ngIf=\"description\"\n class=\"t-description\"\n>\n <ng-container *polymorpheusOutlet=\"description as text\">\n {{ text }}\n </ng-container>\n</h4>\n\n<div\n *ngIf=\"processor$ | async as files\"\n class=\"t-example\"\n>\n <ng-container *ngIf=\"files | tuiDocExampleGetTabs: defaultTab as tabs\">\n <div\n *ngIf=\"tabs.length > 1\"\n class=\"t-tabs-wrapper\"\n >\n <tui-tabs-with-more\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n *tuiItem\n tuiTab\n >\n <ng-container *polymorpheusOutlet=\"getTabTitle(tab) as text\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </tui-tabs-with-more>\n\n <tui-loader\n *ngIf=\"files | tuiMapper: visible\"\n size=\"xs\"\n [overlay]=\"true\"\n [showLoader]=\"!!(loading$ | async)\"\n (click)=\"edit(files)\"\n >\n <ng-container *ngIf=\"codeEditor?.content as content; else defaultEditContent\">\n <ng-container *polymorpheusOutlet=\"content as editContent\">\n {{ editContent }}\n </ng-container>\n </ng-container>\n\n <ng-template #defaultEditContent>\n <button\n appearance=\"flat\"\n size=\"s\"\n tuiButton\n type=\"button\"\n >\n Edit on {{ codeEditor!.name }}\n </button>\n </ng-template>\n </tui-loader>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n [class.t-content_animated]=\"!isE2E\"\n [class.t-content_visible]=\"activeItemIndex === index\"\n >\n <ng-container\n *ngIf=\"index === defaultTabIndex; else anotherTab\"\n [ngTemplateOutlet]=\"preview\"\n ></ng-container>\n <ng-template #anotherTab>\n <ng-container\n [ngTemplateOutlet]=\"codeSection\"\n [ngTemplateOutletContext]=\"{$implicit: files?.[tabs[activeItemIndex]] || ''}\"\n ></ng-container>\n </ng-template>\n </div>\n </ng-container>\n</div>\n\n<ng-template #preview>\n <div\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template\n #codeSection\n let-code\n>\n <tui-doc-code [code]=\"code\">\n <ng-container *ngFor=\"let action of codeActions\">\n <ng-container *polymorpheusOutlet=\"action as text; context: {$implicit: code}\">\n {{ text }}\n </ng-container>\n </ng-container>\n </tui-doc-code>\n</ng-template>\n", styles: [":host{position:relative;display:block;padding-top:3.5rem;clear:right}:host:target{animation:1s .3s tuiShaking}:host :host-context(tui-root._mobile){padding-top:2rem}.t-title{font:var(--tui-font-heading-5);margin:0 0 .5rem}:host-context(tui-root._mobile) .t-title{font:var(--tui-font-heading-6)}.t-description{font:var(--tui-font-text-m);font-weight:normal;margin:0}.t-title:first-letter,.t-description:first-letter{text-transform:capitalize}.t-example{position:relative;margin-top:1.5rem;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);box-shadow:0 .125rem .1875rem #0000001a;overflow:hidden}:host-context(tui-root._mobile) .t-example{margin-top:.75rem}.t-tabs-wrapper{display:flex;padding:0 .875rem 0 2rem;box-shadow:inset 0 -1px var(--tui-base-03);justify-content:space-between;align-items:center}:host-context(tui-root._mobile) .t-tabs-wrapper{padding:0 .875rem 0 1rem}.t-tabs{flex-grow:1}.t-demo{padding:2rem;max-width:100%;box-sizing:border-box;overflow-x:auto}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.t-demo::-webkit-scrollbar,.t-demo::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:.375rem solid transparent}.t-demo::-webkit-scrollbar{background-color:transparent}.t-demo::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.t-demo::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.t-demo::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host-context(tui-root._mobile) .t-demo{padding:1rem}:host:not(._fullsize) .t-demo{width:-webkit-min-content;width:min-content;min-width:20rem}.t-link-icon{margin-left:.3rem;vertical-align:baseline}.t-content{will-change:opacity;height:0;visibility:hidden;opacity:0}.t-content_animated{transition:opacity .3s ease-in-out}.t-content_visible{height:auto;visibility:visible;opacity:1}\n"], components: [{ type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiTabsWithMoreComponent, selector: "tui-tabs-with-more, nav[tuiTabsWithMore]", inputs: ["moreContent", "dropdownContent", "underline", "activeItemIndex", "itemsLimit"], outputs: ["activeItemIndexChange"] }, { type: i1.TuiTabComponent, selector: "a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]" }, { type: i2.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: ["filename", "code"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5$1.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i6.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6$1.TuiItemDirective, selector: "[tuiItem]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i4.AsyncPipe, "tuiDocExampleGetTabs": TuiDocExampleGetTabsPipe, "tuiMapper": i6$1.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1033
1015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleComponent, decorators: [{
1034
1016
  type: Component,
1035
1017
  args: [{
@@ -1067,15 +1049,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1067
1049
  }] }, { type: Array, decorators: [{
1068
1050
  type: Inject,
1069
1051
  args: [TUI_DOC_CODE_ACTIONS]
1070
- }] }, { type: i6.Router, decorators: [{
1071
- type: Inject,
1072
- args: [Router]
1073
- }] }, { type: i6.ActivatedRoute, decorators: [{
1074
- type: Inject,
1075
- args: [ActivatedRoute]
1076
- }] }, { type: i4.Location, decorators: [{
1077
- type: Inject,
1078
- args: [Location$1]
1079
1052
  }] }, { type: undefined, decorators: [{
1080
1053
  type: Inject,
1081
1054
  args: [TUI_DOC_EXAMPLE_OPTIONS]
@@ -1107,7 +1080,8 @@ TuiDocExampleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
1107
1080
  TuiDocCodeModule,
1108
1081
  PolymorpheusModule,
1109
1082
  TuiMapperPipeModule,
1110
- TuiLoaderModule], exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe] });
1083
+ TuiLoaderModule,
1084
+ RouterModule], exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe] });
1111
1085
  TuiDocExampleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleModule, imports: [[
1112
1086
  CommonModule,
1113
1087
  ClipboardModule,
@@ -1118,6 +1092,7 @@ TuiDocExampleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
1118
1092
  PolymorpheusModule,
1119
1093
  TuiMapperPipeModule,
1120
1094
  TuiLoaderModule,
1095
+ RouterModule,
1121
1096
  ]] });
1122
1097
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocExampleModule, decorators: [{
1123
1098
  type: NgModule,
@@ -1132,6 +1107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1132
1107
  PolymorpheusModule,
1133
1108
  TuiMapperPipeModule,
1134
1109
  TuiLoaderModule,
1110
+ RouterModule,
1135
1111
  ],
1136
1112
  declarations: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],
1137
1113
  exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],