@taiga-ui/addon-doc 4.52.0-canary.a4e325d → 4.52.0-canary.f729878
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.
|
@@ -232,7 +232,7 @@ class TuiDocAPIItem {
|
|
|
232
232
|
}
|
|
233
233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocAPIItem, decorators: [{
|
|
234
234
|
type: Component,
|
|
235
|
-
args: [{ selector: 'tr[tuiDocAPIItem]', imports: [
|
|
235
|
+
args: [{ standalone: true, selector: 'tr[tuiDocAPIItem]', imports: [
|
|
236
236
|
FormsModule,
|
|
237
237
|
NgForOf,
|
|
238
238
|
NgIf,
|
|
@@ -282,7 +282,7 @@ class TuiDocCode {
|
|
|
282
282
|
}
|
|
283
283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocCode, decorators: [{
|
|
284
284
|
type: Component,
|
|
285
|
-
args: [{ selector: 'tui-doc-code', imports: [ClipboardModule, Highlight, NgForOf, NgIf, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
285
|
+
args: [{ standalone: true, selector: 'tui-doc-code', imports: [ClipboardModule, Highlight, NgForOf, NgIf, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
286
286
|
'[style.visibility]': 'isServer ? "hidden" : "visible"',
|
|
287
287
|
'[class._has-filename]': 'hasFilename',
|
|
288
288
|
}, template: "<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{ filename }}\n</p>\n<pre\n *ngFor=\"let content of processor()\"\n class=\"t-code\"\n>\n <code [lineNumbers]=\"true\" [highlight]=\"content\"></code>\n <div class=\"t-code-actions\">\n <button\n tuiIconButton\n type=\"button\"\n appearance=\"outline-grayscale\"\n size=\"s\"\n class=\"t-copy-button\"\n [iconStart]=\"icon()\"\n [cdkCopyToClipboard]=\"content\"\n (click)=\"copy$.next()\"\n >\n {{ copyText()}}\n </button>\n <ng-content />\n </div>\n</pre>\n", styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-header+.t-code{border-radius:.25rem}.t-code{position:relative;margin:0;white-space:normal;outline:1px solid var(--tui-border-normal)}.t-code ::ng-deep .hljs-ln{inline-size:100%}.t-code ::ng-deep .hljs-ln .hljs-ln-numbers{inline-size:1rem}.t-code ::ng-deep .hljs-ln td{white-space:pre}.t-code ::ng-deep .hljs-ln td:not(.hljs-ln-numbers):hover{outline:1px solid var(--tui-border-normal);border-radius:.25rem}.t-code+.t-code{margin-block-start:1rem}.t-code-actions{position:absolute;top:.75rem;right:.75rem;display:flex;justify-content:center;align-items:center;flex-direction:row-reverse}.t-copy-button::ng-deep+*:not(:empty){margin-inline-end:.375rem}.hljs:not(:empty){font:var(--tui-font-text-m);font-size:.875rem;padding:1.5rem 2rem;font-family:monospace;overflow-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.hljs:not(:empty)::-webkit-scrollbar,.hljs:not(:empty)::-webkit-scrollbar-thumb{inline-size:1rem;block-size:1rem;border-radius:6.25rem;background-clip:padding-box;border:.375rem solid transparent}.hljs:not(:empty)::-webkit-scrollbar{background-color:transparent}.hljs:not(:empty)::-webkit-scrollbar-thumb{background-color:var(--tui-background-neutral-1-hover)}.hljs:not(:empty)::-webkit-scrollbar-thumb:hover{background-color:var(--tui-background-neutral-1-pressed)}.hljs:not(:empty)::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-tertiary)}}@media screen and (max-width: 47.9625em){.hljs:not(:empty){padding:1rem}}.t-code-actions,.hljs:not(:empty){background:var(--tui-background-base)}@supports (background: color-mix(in srgb,var(--tui-background-base),#222 2%)){.t-code-actions,.hljs:not(:empty){background:color-mix(in srgb,var(--tui-background-base),#222 2%)}}\n"] }]
|
|
@@ -309,7 +309,7 @@ class TuiDocCopy {
|
|
|
309
309
|
}
|
|
310
310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocCopy, decorators: [{
|
|
311
311
|
type: Component,
|
|
312
|
-
args: [{ selector: 'tui-doc-copy', imports: [NgIf, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n appearance=\"\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-copy\"\n (click)=\"onClick()\"\n>\n <span class=\"t-content\">\n <span\n class=\"t-initial\"\n [attr.data-text]=\"copied() ? '' : texts()[0]\"\n >\n <ng-container *ngIf=\"!copied()\">\n <ng-content />\n </ng-container>\n </span>\n {{ copied() ? texts()[1] : '' }}\n </span>\n</button>\n", styles: [":host{position:relative;display:inline-block;vertical-align:middle;border-radius:var(--tui-radius-m)}.t-copy{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:100%;block-size:100%;color:var(--tui-text-primary);background:var(--tui-background-base);overflow:hidden}.t-copy:hover{background:var(--tui-background-base-alt)}.t-initial{white-space:nowrap}.t-initial:empty:before{content:attr(data-text)}.t-content{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;flex-direction:column;text-align:center;line-height:2rem}\n"] }]
|
|
312
|
+
args: [{ standalone: true, selector: 'tui-doc-copy', imports: [NgIf, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n appearance=\"\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-copy\"\n (click)=\"onClick()\"\n>\n <span class=\"t-content\">\n <span\n class=\"t-initial\"\n [attr.data-text]=\"copied() ? '' : texts()[0]\"\n >\n <ng-container *ngIf=\"!copied()\">\n <ng-content />\n </ng-container>\n </span>\n {{ copied() ? texts()[1] : '' }}\n </span>\n</button>\n", styles: [":host{position:relative;display:inline-block;vertical-align:middle;border-radius:var(--tui-radius-m)}.t-copy{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:100%;block-size:100%;color:var(--tui-text-primary);background:var(--tui-background-base);overflow:hidden}.t-copy:hover{background:var(--tui-background-base-alt)}.t-initial{white-space:nowrap}.t-initial:empty:before{content:attr(data-text)}.t-content{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;flex-direction:column;text-align:center;line-height:2rem}\n"] }]
|
|
313
313
|
}] });
|
|
314
314
|
|
|
315
315
|
const MIN_WIDTH = 160;
|
|
@@ -413,7 +413,7 @@ __decorate([
|
|
|
413
413
|
], TuiDocDemo.prototype, "updateUrl", null);
|
|
414
414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocDemo, decorators: [{
|
|
415
415
|
type: Component,
|
|
416
|
-
args: [{ selector: 'tui-doc-demo', imports: [
|
|
416
|
+
args: [{ standalone: true, selector: 'tui-doc-demo', imports: [
|
|
417
417
|
FormsModule,
|
|
418
418
|
JsonPipe,
|
|
419
419
|
NgIf,
|
|
@@ -667,7 +667,7 @@ class TuiDocDocumentation {
|
|
|
667
667
|
}
|
|
668
668
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocDocumentation, decorators: [{
|
|
669
669
|
type: Component,
|
|
670
|
-
args: [{ selector: 'tui-doc-documentation', imports: [
|
|
670
|
+
args: [{ standalone: true, selector: 'tui-doc-documentation', imports: [
|
|
671
671
|
FormsModule,
|
|
672
672
|
NgForOf,
|
|
673
673
|
NgIf,
|
|
@@ -866,7 +866,7 @@ class TuiDocExample {
|
|
|
866
866
|
}
|
|
867
867
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocExample, decorators: [{
|
|
868
868
|
type: Component,
|
|
869
|
-
args: [{ selector: 'tui-doc-example', imports: [
|
|
869
|
+
args: [{ standalone: true, selector: 'tui-doc-example', imports: [
|
|
870
870
|
AsyncPipe,
|
|
871
871
|
NgComponentOutlet,
|
|
872
872
|
NgForOf,
|
|
@@ -1119,7 +1119,7 @@ __decorate([
|
|
|
1119
1119
|
], TuiDocNavigation.prototype, "flattenSubPages", null);
|
|
1120
1120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocNavigation, decorators: [{
|
|
1121
1121
|
type: Component,
|
|
1122
|
-
args: [{ selector: 'tui-doc-navigation', imports: [
|
|
1122
|
+
args: [{ standalone: true, selector: 'tui-doc-navigation', imports: [
|
|
1123
1123
|
NgForOf,
|
|
1124
1124
|
NgIf,
|
|
1125
1125
|
NgTemplateOutlet,
|
|
@@ -1169,7 +1169,7 @@ class TuiDocHeader {
|
|
|
1169
1169
|
}
|
|
1170
1170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocHeader, decorators: [{
|
|
1171
1171
|
type: Component,
|
|
1172
|
-
args: [{ selector: 'header[tuiDocHeader]', imports: [PolymorpheusOutlet, TuiActiveZone, TuiButton, TuiDocNavigation, TuiSidebar], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n appearance=\"icon\"\n tuiIconButton\n type=\"button\"\n class=\"t-menu\"\n [iconStart]=\"icons.menu\"\n [title]=\"menu\"\n (click)=\"onClick()\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-doc-navigation\n *tuiSidebar=\"open()\"\n class=\"t-navigation\"\n />\n</button>\n<div class=\"t-logo\">\n <img\n *polymorpheusOutlet=\"logo as src\"\n alt=\"Logo\"\n class=\"t-img\"\n [src]=\"src\"\n />\n</div>\n<ng-content />\n", styles: [":host{position:fixed;top:0;left:0;right:0;z-index:1;display:flex;box-shadow:var(--tui-shadow-small);block-size:4.125rem;align-items:center;padding:0 1.25rem;background:var(--tui-background-base);border-block-end:1px solid var(--tui-border-normal)}@supports (background: color-mix(in srgb,var(--tui-background-base),transparent 50%)){:host{background:color-mix(in srgb,var(--tui-background-base),transparent 50%);-webkit-backdrop-filter:blur(1.25rem);backdrop-filter:blur(1.25rem)}}.t-logo{margin-inline-end:auto;font:var(--tui-font-heading-5)}.t-img{display:block}.t-menu{margin-inline-start:-1.25rem}@media screen and (min-width: 48em){.t-menu{display:none}}.t-navigation{min-block-size:100%}\n"] }]
|
|
1172
|
+
args: [{ standalone: true, selector: 'header[tuiDocHeader]', imports: [PolymorpheusOutlet, TuiActiveZone, TuiButton, TuiDocNavigation, TuiSidebar], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n appearance=\"icon\"\n tuiIconButton\n type=\"button\"\n class=\"t-menu\"\n [iconStart]=\"icons.menu\"\n [title]=\"menu\"\n (click)=\"onClick()\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-doc-navigation\n *tuiSidebar=\"open()\"\n class=\"t-navigation\"\n />\n</button>\n<div class=\"t-logo\">\n <img\n *polymorpheusOutlet=\"logo as src\"\n alt=\"Logo\"\n class=\"t-img\"\n [src]=\"src\"\n />\n</div>\n<ng-content />\n", styles: [":host{position:fixed;top:0;left:0;right:0;z-index:1;display:flex;box-shadow:var(--tui-shadow-small);block-size:4.125rem;align-items:center;padding:0 1.25rem;background:var(--tui-background-base);border-block-end:1px solid var(--tui-border-normal)}@supports (background: color-mix(in srgb,var(--tui-background-base),transparent 50%)){:host{background:color-mix(in srgb,var(--tui-background-base),transparent 50%);-webkit-backdrop-filter:blur(1.25rem);backdrop-filter:blur(1.25rem)}}.t-logo{margin-inline-end:auto;font:var(--tui-font-heading-5)}.t-img{display:block}.t-menu{margin-inline-start:-1.25rem}@media screen and (min-width: 48em){.t-menu{display:none}}.t-navigation{min-block-size:100%}\n"] }]
|
|
1173
1173
|
}] });
|
|
1174
1174
|
|
|
1175
1175
|
class TuiDocSeeAlso {
|
|
@@ -1186,7 +1186,7 @@ class TuiDocSeeAlso {
|
|
|
1186
1186
|
}
|
|
1187
1187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocSeeAlso, decorators: [{
|
|
1188
1188
|
type: Component,
|
|
1189
|
-
args: [{ selector: 'tui-doc-see-also', imports: [NgForOf, NgIf, RouterLink, TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<h5 class=\"t-header\">{{ text }}</h5>\n<ng-container *ngFor=\"let item of seeAlso; last as last\">\n <a\n tuiLink\n [innerText]=\"item\"\n [routerLink]=\"getRouterLink(item)\"\n ></a>\n <ng-container *ngIf=\"!last\">{{ ', ' }}</ng-container>\n</ng-container>\n", styles: [":host{display:block}.t-header{font-size:.6875rem;line-height:1rem;text-transform:uppercase;letter-spacing:.075em;color:var(--tui-text-secondary);margin:0 0 .5rem;white-space:nowrap}\n"] }]
|
|
1189
|
+
args: [{ standalone: true, selector: 'tui-doc-see-also', imports: [NgForOf, NgIf, RouterLink, TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<h5 class=\"t-header\">{{ text }}</h5>\n<ng-container *ngFor=\"let item of seeAlso; last as last\">\n <a\n tuiLink\n [innerText]=\"item\"\n [routerLink]=\"getRouterLink(item)\"\n ></a>\n <ng-container *ngIf=\"!last\">{{ ', ' }}</ng-container>\n</ng-container>\n", styles: [":host{display:block}.t-header{font-size:.6875rem;line-height:1rem;text-transform:uppercase;letter-spacing:.075em;color:var(--tui-text-secondary);margin:0 0 .5rem;white-space:nowrap}\n"] }]
|
|
1190
1190
|
}], propDecorators: { seeAlso: [{
|
|
1191
1191
|
type: Input
|
|
1192
1192
|
}] } });
|
|
@@ -1226,7 +1226,7 @@ __decorate([
|
|
|
1226
1226
|
], TuiDocSourceCode.prototype, "getPathOptions", null);
|
|
1227
1227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocSourceCode, decorators: [{
|
|
1228
1228
|
type: Component,
|
|
1229
|
-
args: [{ selector: 'tui-doc-source-code', imports: [PolymorpheusOutlet, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n *polymorpheusOutlet=\"pathIsUrl(path) ? path : sourceCode as link; context: pathOptions\"\n appearance=\"icon\"\n size=\"s\"\n target=\"_blank\"\n tuiIconButton\n type=\"button\"\n [href]=\"link\"\n [iconStart]=\"icons.code\"\n [style.height]=\"'var(--tui-height-l)'\"\n>\n {{ text }}\n</a>\n" }]
|
|
1229
|
+
args: [{ standalone: true, selector: 'tui-doc-source-code', imports: [PolymorpheusOutlet, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n *polymorpheusOutlet=\"pathIsUrl(path) ? path : sourceCode as link; context: pathOptions\"\n appearance=\"icon\"\n size=\"s\"\n target=\"_blank\"\n tuiIconButton\n type=\"button\"\n [href]=\"link\"\n [iconStart]=\"icons.code\"\n [style.height]=\"'var(--tui-height-l)'\"\n>\n {{ text }}\n</a>\n" }]
|
|
1230
1230
|
}], propDecorators: { header: [{
|
|
1231
1231
|
type: Input
|
|
1232
1232
|
}], package: [{
|
|
@@ -1278,7 +1278,7 @@ class TuiDocLanguageSwitcher {
|
|
|
1278
1278
|
}
|
|
1279
1279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocLanguageSwitcher, decorators: [{
|
|
1280
1280
|
type: Component,
|
|
1281
|
-
args: [{ selector: 'tui-doc-language-switcher', imports: [
|
|
1281
|
+
args: [{ standalone: true, selector: 'tui-doc-language-switcher', imports: [
|
|
1282
1282
|
NgForOf,
|
|
1283
1283
|
ReactiveFormsModule,
|
|
1284
1284
|
TitleCasePipe,
|
|
@@ -1313,7 +1313,7 @@ class TuiDocMain {
|
|
|
1313
1313
|
}
|
|
1314
1314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocMain, decorators: [{
|
|
1315
1315
|
type: Component,
|
|
1316
|
-
args: [{ selector: 'tui-doc-main', imports: [
|
|
1316
|
+
args: [{ standalone: true, selector: 'tui-doc-main', imports: [
|
|
1317
1317
|
NgIf,
|
|
1318
1318
|
RouterOutlet,
|
|
1319
1319
|
TuiButton,
|
|
@@ -1389,7 +1389,7 @@ class TuiDocPage {
|
|
|
1389
1389
|
}
|
|
1390
1390
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocPage, decorators: [{
|
|
1391
1391
|
type: Component,
|
|
1392
|
-
args: [{ selector: 'tui-doc-page', imports: [
|
|
1392
|
+
args: [{ standalone: true, selector: 'tui-doc-page', imports: [
|
|
1393
1393
|
KeyValuePipe,
|
|
1394
1394
|
NgForOf,
|
|
1395
1395
|
NgIf,
|
|
@@ -1452,7 +1452,7 @@ class TuiDocThemeSwitcher {
|
|
|
1452
1452
|
}
|
|
1453
1453
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiDocThemeSwitcher, decorators: [{
|
|
1454
1454
|
type: Component,
|
|
1455
|
-
args: [{ selector: 'tui-doc-theme-switcher', imports: [FormsModule, NgForOf, TuiDataList, TuiSelectModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-select\n [ngModel]=\"theme\"\n (ngModelChange)=\"onTheme($event)\"\n>\n <ng-content />\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let key of keys\"\n tuiOption\n type=\"button\"\n [value]=\"key\"\n >\n <img\n alt=\"\"\n [src]=\"themes[key]\"\n [style.margin-inline-end.rem]=\"0.5\"\n [style.width.rem]=\"1.75\"\n />\n {{ key }}\n </button>\n </tui-data-list>\n</tui-select>\n" }]
|
|
1455
|
+
args: [{ standalone: true, selector: 'tui-doc-theme-switcher', imports: [FormsModule, NgForOf, TuiDataList, TuiSelectModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-select\n [ngModel]=\"theme\"\n (ngModelChange)=\"onTheme($event)\"\n>\n <ng-content />\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let key of keys\"\n tuiOption\n type=\"button\"\n [value]=\"key\"\n >\n <img\n alt=\"\"\n [src]=\"themes[key]\"\n [style.margin-inline-end.rem]=\"0.5\"\n [style.width.rem]=\"1.75\"\n />\n {{ key }}\n </button>\n </tui-data-list>\n</tui-select>\n" }]
|
|
1456
1456
|
}] });
|
|
1457
1457
|
|
|
1458
1458
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-doc-components.mjs","sources":["../../../projects/addon-doc/components/api/api.component.ts","../../../projects/addon-doc/components/api/api.template.html","../../../projects/addon-doc/components/documentation/pipes/inspect.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/type-reference.pipe.ts","../../../projects/addon-doc/components/api/api-item-number.directive.ts","../../../projects/addon-doc/components/api/api-item.component.ts","../../../projects/addon-doc/components/api/api-item.template.html","../../../projects/addon-doc/components/code/index.ts","../../../projects/addon-doc/components/code/index.html","../../../projects/addon-doc/components/copy/index.ts","../../../projects/addon-doc/components/copy/index.html","../../../projects/addon-doc/components/demo/index.ts","../../../projects/addon-doc/components/demo/index.html","../../../projects/addon-doc/components/doc-tab/index.ts","../../../projects/addon-doc/components/doc-tab/index.html","../../../projects/addon-doc/components/documentation/documentation-property-connector.directive.ts","../../../projects/addon-doc/components/documentation/pipes/cleaner.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/optional.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/strip-optional.pipe.ts","../../../projects/addon-doc/components/documentation/documentation.component.ts","../../../projects/addon-doc/components/documentation/documentation.template.html","../../../projects/addon-doc/components/documentation/pipes/color.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/opacity.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/primitive-polymorpheus-content.pipe.ts","../../../projects/addon-doc/components/example/example.options.ts","../../../projects/addon-doc/components/example/example-get-tabs.pipe.ts","../../../projects/addon-doc/components/example/example.component.ts","../../../projects/addon-doc/components/example/example.template.html","../../../projects/addon-doc/components/navigation/navigation.providers.ts","../../../projects/addon-doc/components/navigation/scroll-into-view.directive.ts","../../../projects/addon-doc/components/navigation/navigation.component.ts","../../../projects/addon-doc/components/navigation/navigation.template.html","../../../projects/addon-doc/components/internal/header/index.ts","../../../projects/addon-doc/components/internal/header/index.html","../../../projects/addon-doc/components/internal/see-also/index.ts","../../../projects/addon-doc/components/internal/see-also/index.html","../../../projects/addon-doc/components/internal/source-code/source-code.component.ts","../../../projects/addon-doc/components/internal/source-code/source-code.template.html","../../../projects/addon-doc/components/language-switcher/index.ts","../../../projects/addon-doc/components/language-switcher/index.html","../../../projects/addon-doc/components/main/main.component.ts","../../../projects/addon-doc/components/main/main.template.html","../../../projects/addon-doc/components/page/page.providers.ts","../../../projects/addon-doc/components/page/page-tab.directive.ts","../../../projects/addon-doc/components/page/page.component.ts","../../../projects/addon-doc/components/page/page.template.html","../../../projects/addon-doc/components/theme-switcher/theme-switcher.component.ts","../../../projects/addon-doc/components/theme-switcher/theme-switcher.template.html","../../../projects/addon-doc/components/taiga-ui-addon-doc-components.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_DOC_DOCUMENTATION_TEXTS} from '@taiga-ui/addon-doc/tokens';\n\n@Component({\n standalone: true,\n selector: 'table[tuiDocAPI]',\n templateUrl: './api.template.html',\n styleUrls: ['./api.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocAPI {\n protected readonly texts = inject(TUI_DOC_DOCUMENTATION_TEXTS);\n}\n","<thead>\n <tr>\n <th>{{ texts[2] }}</th>\n <th>{{ texts[1] }}</th>\n <th>{{ texts[3] }}</th>\n </tr>\n</thead>\n<ng-content />\n","import {inject, Pipe, type PipeTransform, TemplateRef} from '@angular/core';\nimport {tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {TUI_IS_E2E} from '@taiga-ui/cdk/tokens';\n\n@Pipe({\n standalone: true,\n name: 'tuiInspectAny',\n})\nexport class TuiInspectPipe implements PipeTransform {\n private readonly isE2E = inject(TUI_IS_E2E);\n\n public transform(value: unknown, depth = 2): string {\n if (this.isE2E && typeof value === 'function') {\n /**\n * @description:\n * When developing in production mode the webpack bundler minify\n * functions in different ways, then due to which the string content\n * of the function may differ from build to build, which can be to\n * various problems when screenshot testing on e2e.\n */\n return 'λ(x) => y';\n }\n\n return value instanceof TemplateRef ? 'TemplateRef' : tuiInspectAny(value, depth);\n }\n}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {\n TUI_DOC_TYPE_REFERENCE_HANDLER,\n TUI_DOC_TYPE_REFERENCE_PARSER,\n} from '@taiga-ui/addon-doc/tokens';\n\n@Pipe({\n standalone: true,\n name: 'tuiDocTypeReference',\n})\nexport class TuiDocTypeReferencePipe implements PipeTransform {\n private readonly parser = inject(TUI_DOC_TYPE_REFERENCE_PARSER);\n private readonly linkHandler = inject(TUI_DOC_TYPE_REFERENCE_HANDLER);\n\n public transform(original: string): ReadonlyArray<{\n type: string;\n extracted: string;\n reference: string | null;\n }> {\n return this.parser(original)\n .map(({type, extracted}) => ({\n type,\n extracted,\n reference: this.linkHandler?.(extracted) ?? null,\n }))\n .sort((a, b) => b.reference?.localeCompare(a.reference ?? '') ?? -1);\n }\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'tr[tuiDocAPIItem][type=number]',\n})\nexport class TuiDocAPINumberItem {\n @Input()\n public min: number | null = null;\n\n @Input()\n public max: number | null = null;\n}\n","import {Location, NgForOf, NgIf, NgSwitch, NgSwitchCase} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n type OnInit,\n Output,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute, type Params, UrlSerializer} from '@angular/router';\nimport {TUI_DOC_ICONS, TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {tuiCoerceValue, tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputNumber} from '@taiga-ui/kit/components/input-number';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\n\nimport {TuiInspectPipe} from '../documentation/pipes/inspect.pipe';\nimport {TuiDocTypeReferencePipe} from '../documentation/pipes/type-reference.pipe';\nimport {TuiDocAPINumberItem} from './api-item-number.directive';\n\nconst SERIALIZED_SUFFIX = '$';\n\n@Component({\n selector: 'tr[tuiDocAPIItem]',\n imports: [\n FormsModule,\n NgForOf,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n TuiChevron,\n TuiDataListWrapper,\n TuiDocTypeReferencePipe,\n TuiIcon,\n TuiInputNumber,\n TuiInspectPipe,\n TuiSwitch,\n TuiTextfield,\n ],\n templateUrl: './api-item.template.html',\n styleUrls: ['./api-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocAPIItem<T> implements OnInit {\n private readonly locationRef = inject(Location);\n private readonly activatedRoute = inject(ActivatedRoute);\n private readonly urlSerializer = inject(UrlSerializer);\n private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n private readonly alerts = inject(TuiAlertService);\n\n protected readonly icons = inject(TUI_DOC_ICONS);\n\n protected readonly numberItem = inject(TuiDocAPINumberItem, {\n self: true,\n optional: true,\n });\n\n @Input()\n public name = '';\n\n @Input()\n public type = '';\n\n @Input()\n public value?: T;\n\n @Input()\n public items: readonly T[] = [];\n\n @Output()\n public readonly valueChange = new EventEmitter<T>();\n\n public ngOnInit(): void {\n this.parseParams(this.activatedRoute.snapshot.queryParams);\n }\n\n public onValueChange(value: T): void {\n this.value = value;\n this.valueChange.emit(value);\n this.setQueryParam(value);\n }\n\n public emitEvent(event: unknown): void {\n console.info('emitEvent', event);\n\n const alert =\n !event || event?.toString() === '[object Object]'\n ? tuiInspectAny(event, 2)\n : (event as string);\n\n this.alerts.open(alert, {label: this.name}).subscribe();\n }\n\n private clearBrackets(value: string): string {\n return value.replaceAll(/[()[\\]]/g, '');\n }\n\n private parseParams(params: Params): void {\n const name = this.clearBrackets(this.name);\n const propertyValue: string | undefined = params[name];\n const propertyValueWithSuffix: number | string | undefined =\n params[`${name}${SERIALIZED_SUFFIX}`];\n\n if (!propertyValue && !propertyValueWithSuffix) {\n return;\n }\n\n let value =\n !!propertyValueWithSuffix && this.items\n ? this.items[propertyValueWithSuffix as number]\n : tuiCoerceValue(propertyValue);\n\n if (this.type === 'string' && tuiIsNumber(value)) {\n value = value.toString();\n }\n\n this.onValueChange(value as T);\n }\n\n private setQueryParam(value: T | boolean | number | string | null): void {\n const tree = this.urlSerializer.parse(this.locationRef.path());\n\n const isValueAvailableByKey = value instanceof Object;\n const computedValue =\n isValueAvailableByKey && this.items ? this.items.indexOf(value as T) : value;\n\n const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';\n const propName = this.clearBrackets(this.name) + suffix;\n\n tree.queryParams = {\n ...tree.queryParams,\n [propName]: computedValue,\n };\n\n this.locationRef.go(this.urlStateHandler(tree));\n }\n}\n","<td class=\"t-td\">\n <code\n class=\"t-name\"\n [class.t-name_banana]=\"name.startsWith('[(')\"\n [class.t-name_input]=\"name.startsWith('[')\"\n [class.t-name_output]=\"name.startsWith('(')\"\n >\n {{ name }}\n </code>\n <ng-content />\n</td>\n<td class=\"t-td\">\n <code class=\"t-type\">\n <ng-container *ngFor=\"let item of type | tuiDocTypeReference; let last = last\">\n <a\n *ngIf=\"item.reference; else default\"\n target=\"_blank\"\n class=\"t-reference\"\n [attr.href]=\"item.reference\"\n >\n {{ item.type }}\n <tui-icon\n *ngIf=\"icons.externalLink\"\n [icon]=\"icons.externalLink\"\n [style.font-size.rem]=\"1\"\n />\n </a>\n <ng-template #default>\n {{ item.type }}\n </ng-template>\n <span *ngIf=\"!last\"> | </span>\n </ng-container>\n </code>\n</td>\n<td class=\"t-td\">\n <tui-textfield\n *ngIf=\"items.length; else noItems\"\n tuiChevron\n tuiTextfieldSize=\"m\"\n class=\"t-input\"\n [content]=\"content\"\n [tuiTextfieldCleaner]=\"type.includes('null') || type.includes('PolymorpheusContent')\"\n >\n <select\n placeholder=\"null\"\n tuiTextfield\n [ngModel]=\"value ?? null\"\n (ngModelChange)=\"onValueChange($event)\"\n ></select>\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n [itemContent]=\"content\"\n [items]=\"items\"\n />\n </tui-textfield>\n <ng-template\n #content\n let-data\n >\n <code [style.margin]=\"0\">{{ data | tuiInspectAny }}</code>\n </ng-template>\n <ng-template #noItems>\n <ng-container\n *ngIf=\"value !== undefined\"\n [ngSwitch]=\"type\"\n >\n <input\n *ngSwitchCase=\"'boolean'\"\n tuiSwitch\n type=\"checkbox\"\n [id]=\"name\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n />\n\n <tui-textfield\n *ngSwitchCase=\"'string'\"\n tuiTextfieldSize=\"m\"\n class=\"t-input\"\n >\n <input\n tuiTextfield\n [id]=\"name\"\n [ngModel]=\"value || ''\"\n (ngModelChange)=\"onValueChange($event)\"\n />\n </tui-textfield>\n\n <tui-textfield\n *ngSwitchCase=\"'number'\"\n tuiTextfieldSize=\"m\"\n >\n <input\n tuiInputNumber\n [id]=\"name\"\n [max]=\"numberItem?.max ?? null\"\n [min]=\"numberItem?.min ?? null\"\n [ngModel]=\"value\"\n [step]=\"1\"\n (ngModelChange)=\"onValueChange($event || 0)\"\n />\n </tui-textfield>\n </ng-container>\n </ng-template>\n</td>\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {isPlatformServer, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n PLATFORM_ID,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR,\n TUI_DOC_ICONS,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\nimport {tuiRawLoad} from '@taiga-ui/addon-doc/utils';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Highlight} from 'ngx-highlightjs';\nimport {BehaviorSubject, map, startWith, Subject, switchMap, timer} from 'rxjs';\n\n@Component({\n selector: 'tui-doc-code',\n imports: [ClipboardModule, Highlight, NgForOf, NgIf, TuiButton],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.visibility]': 'isServer ? \"hidden\" : \"visible\"',\n '[class._has-filename]': 'hasFilename',\n },\n})\nexport class TuiDocCode {\n private readonly icons = inject(TUI_DOC_ICONS);\n private readonly rawLoader$$ = new BehaviorSubject<TuiRawLoaderContent>('');\n\n protected readonly isServer = isPlatformServer(inject(PLATFORM_ID));\n\n protected readonly markdownCodeProcessor: TuiHandler<string, readonly string[]> =\n inject(TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR);\n\n protected readonly copy$ = new Subject<void>();\n protected readonly copyText = toSignal(\n inject(TUI_COPY_TEXTS).pipe(map(([copy]) => copy)),\n );\n\n protected readonly icon = toSignal(\n this.copy$.pipe(\n switchMap(() =>\n timer(2000).pipe(\n map(() => this.icons.copy),\n startWith(this.icons.check),\n ),\n ),\n ),\n {initialValue: this.icons.copy},\n );\n\n protected readonly processor = toSignal(\n this.rawLoader$$.pipe(\n switchMap(tuiRawLoad),\n map((value: string) => this.markdownCodeProcessor(value)),\n ),\n {initialValue: []},\n );\n\n @Input()\n public filename = '';\n\n @Input()\n public set code(code: TuiRawLoaderContent) {\n this.rawLoader$$.next(code);\n }\n\n public get hasFilename(): boolean {\n return !!this.filename;\n }\n}\n","<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{ filename }}\n</p>\n<pre\n *ngFor=\"let content of processor()\"\n class=\"t-code\"\n>\n <code [lineNumbers]=\"true\" [highlight]=\"content\"></code>\n <div class=\"t-code-actions\">\n <button\n tuiIconButton\n type=\"button\"\n appearance=\"outline-grayscale\"\n size=\"s\"\n class=\"t-copy-button\"\n [iconStart]=\"icon()\"\n [cdkCopyToClipboard]=\"content\"\n (click)=\"copy$.next()\"\n >\n {{ copyText()}}\n </button>\n <ng-content />\n </div>\n</pre>\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nconst COPIED_TIMEOUT = 1500;\n\n@Component({\n selector: 'tui-doc-copy',\n imports: [NgIf, TuiButton],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocCopy {\n private readonly copy$ = new Subject<void>();\n\n protected readonly texts = toSignal(inject(TUI_COPY_TEXTS), {\n initialValue: ['', ''] as const,\n });\n\n protected readonly copied = toSignal(\n this.copy$.pipe(\n switchMap(() =>\n timer(COPIED_TIMEOUT).pipe(map(TUI_FALSE_HANDLER), startWith(true)),\n ),\n ),\n {initialValue: false},\n );\n\n protected onClick(): void {\n this.copy$.next();\n }\n}\n","<button\n appearance=\"\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-copy\"\n (click)=\"onClick()\"\n>\n <span class=\"t-content\">\n <span\n class=\"t-initial\"\n [attr.data-text]=\"copied() ? '' : texts()[0]\"\n >\n <ng-container *ngIf=\"!copied()\">\n <ng-content />\n </ng-container>\n </span>\n {{ copied() ? texts()[1] : '' }}\n </span>\n</button>\n","import {JsonPipe, Location, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n type ElementRef,\n inject,\n Input,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport {type Params, UrlSerializer, type UrlTree} from '@angular/router';\nimport {TUI_DOC_DEMO_TEXTS, TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDemoParams} from '@taiga-ui/addon-doc/types';\nimport {tuiCleanObject, tuiCoerceValueIsTrue} from '@taiga-ui/addon-doc/utils';\nimport {TuiResizable, TuiResizer} from '@taiga-ui/cdk/directives/resizer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiToInteger} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {TuiGroup} from '@taiga-ui/core/directives/group';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {skip} from 'rxjs';\n\nconst MIN_WIDTH = 160;\n\n@Component({\n selector: 'tui-doc-demo',\n imports: [\n FormsModule,\n JsonPipe,\n NgIf,\n NgTemplateOutlet,\n ReactiveFormsModule,\n TuiButton,\n TuiChevron,\n TuiDataListWrapper,\n TuiExpand,\n TuiGroup,\n TuiResizable,\n TuiResizer,\n TuiSelectModule,\n TuiSwitch,\n TuiTextfieldControllerModule,\n ],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._sticky]': 'sticky',\n '(window:resize)': 'onResize()',\n '(document:mouseup.zoneless)': 'onMouseUp()',\n },\n})\nexport class TuiDocDemo implements AfterViewInit {\n @ViewChild(TuiResizable, {static: true})\n private readonly resizable?: ElementRef<HTMLElement>;\n\n @ViewChild('content', {static: true})\n private readonly content?: ElementRef<HTMLElement>;\n\n @ViewChild('resizer', {static: true})\n private readonly resizer?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly locationRef = inject(Location);\n private readonly urlSerializer = inject(UrlSerializer);\n private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n private readonly darkMode = inject(TUI_DARK_MODE);\n\n @ContentChild(TemplateRef)\n protected readonly template: TemplateRef<Record<string, unknown>> | null = null;\n\n protected readonly rendered = signal(false);\n\n protected theme = computed(() => (this.dark() ? 'dark' : 'light'));\n\n protected dark = signal(\n tuiCoerceValueIsTrue(this.params.darkMode ?? this.darkMode()),\n );\n\n protected readonly $ = toObservable(this.darkMode)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((mode) => this.onModeChange(mode));\n\n protected testForm?: FormGroup;\n\n protected readonly updateOnVariants = ['change', 'blur', 'submit'] as const;\n\n protected updateOn: 'blur' | 'change' | 'submit' =\n this.params.updateOn || this.updateOnVariants[0];\n\n protected opaque = tuiCoerceValueIsTrue(this.params.sandboxOpaque ?? true);\n protected expanded = tuiCoerceValueIsTrue(this.params.sandboxExpanded ?? false);\n protected sandboxWidth = tuiToInteger(this.params.sandboxWidth);\n protected readonly texts = inject(TUI_DOC_DEMO_TEXTS);\n\n @Input()\n public control: AbstractControl | null = null;\n\n @Input()\n public sticky = true;\n\n public ngAfterViewInit(): void {\n this.createForm();\n this.updateWidth(this.sandboxWidth + this.delta);\n this.rendered.set(true);\n }\n\n protected onResize(): void {\n this.updateWidth();\n this.onMouseUp();\n }\n\n protected onMouseUp(): void {\n this.updateUrl({sandboxWidth: this.sandboxWidth});\n }\n\n protected onModeChange(darkMode: boolean): void {\n this.dark.set(darkMode);\n this.updateUrl({sandboxWidth: this.sandboxWidth, darkMode});\n }\n\n protected toggleDetails(): void {\n this.expanded = !this.expanded;\n this.updateUrl({sandboxExpanded: this.expanded});\n }\n\n protected changeOpaque(opaque: boolean): void {\n this.opaque = opaque;\n this.updateUrl({sandboxOpaque: this.opaque});\n }\n\n protected updateOnChange(updateOn: 'blur' | 'change' | 'submit'): void {\n this.updateOn = updateOn;\n this.updateUrl({updateOn});\n this.createForm();\n }\n\n protected updateWidth(width = NaN): void {\n if (!this.resizer || !this.resizable || !this.content) {\n return;\n }\n\n const safe = width || this.resizable.nativeElement.clientWidth;\n const total = this.el.clientWidth;\n const clamped = Math.round(tuiClamp(safe, MIN_WIDTH, total)) - this.delta;\n const validated = safe < total ? clamped : NaN;\n\n this.resizer.nativeElement.textContent = String(clamped || '-');\n this.resizable.nativeElement.style.width = validated ? tuiPx(safe) : '';\n this.sandboxWidth = validated;\n }\n\n private get delta(): number {\n return this.resizable && this.content\n ? this.resizable.nativeElement.clientWidth -\n this.content.nativeElement.clientWidth\n : 0;\n }\n\n private get params(): Params | TuiDemoParams {\n return this.getUrlTree().queryParams;\n }\n\n @tuiPure\n private updateUrl(params: TuiDemoParams): void {\n const tree = this.getUrlTree();\n const {queryParams} = tree;\n\n delete queryParams.sandboxWidth;\n\n tree.queryParams = {\n ...queryParams,\n ...tuiCleanObject({...params}),\n };\n\n this.locationRef.go(this.urlStateHandler(tree));\n }\n\n private createForm(): void {\n const {control, updateOn} = this;\n\n if (control) {\n this.testForm = new FormGroup({testValue: control}, {updateOn});\n }\n }\n\n private getUrlTree(): UrlTree {\n return this.urlSerializer.parse(this.locationRef.path());\n }\n}\n","<div class=\"t-settings\">\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"dark()\"\n (ngModelChange)=\"onModeChange($event)\"\n />\n {{ texts[0] }}\n </label>\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"opaque\"\n (ngModelChange)=\"changeOpaque($event)\"\n />\n {{ texts[1] }}\n </label>\n</div>\n<div\n tuiResizable\n class=\"t-wrapper\"\n [attr.tuiTheme]=\"theme()\"\n [class.t-wrapper_transparent]=\"!opaque\"\n [style.visibility]=\"rendered() ? 'visible' : 'hidden'\"\n>\n <div class=\"t-content\">\n <div\n #content\n id=\"demo-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\" />\n </div>\n <button\n automation-id=\"tui-demo-button__toggle-details\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiChevron]=\"expanded\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\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 automation-id=\"tui-demo-select__expand-update-on\"\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 />\n </tui-select>\n <button\n automation-id=\"tui-demo-button__reset-state\"\n size=\"s\"\n tuiButton\n type=\"reset\"\n [style.flex]=\"'0 0 auto'\"\n >\n Reset\n </button>\n <button\n automation-id=\"tui-demo-button__submit-state\"\n size=\"s\"\n tuiButton\n type=\"submit\"\n [style.flex]=\"'0 0 auto'\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content />\n </div>\n </div>\n <div\n #resizer\n class=\"t-resizer\"\n [tuiResizer]=\"[1, 0]\"\n (tuiSizeChange)=\"updateWidth($event[0])\"\n ></div>\n</div>\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-tab',\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocTab {\n @Input()\n public src = '';\n}\n","<div class=\"t-tab\">\n <img\n alt=\"Documentation tab icon\"\n class=\"t-icon\"\n [src]=\"src\"\n />\n <ng-content />\n</div>\n","import {Location} from '@angular/common';\nimport {\n Directive,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n type OnInit,\n Output,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport {ActivatedRoute, type Params, UrlSerializer} from '@angular/router';\nimport {TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {tuiCleanObject, tuiCoerceValue, tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {Subject} from 'rxjs';\n\nconst SERIALIZED_SUFFIX = '$';\n\nexport type TuiDocumentationPropertyType = 'input-output' | 'input' | 'output' | null;\n\n// @bad TODO: refactor output and value sync\n@Directive({\n standalone: true,\n selector: 'ng-template[documentationPropertyName]',\n exportAs: 'documentationProperty',\n})\nexport class TuiDocDocumentationPropertyConnector<T> implements OnInit, OnChanges {\n private readonly locationRef = inject(Location);\n private readonly activatedRoute = inject(ActivatedRoute);\n private readonly urlSerializer = inject(UrlSerializer);\n private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n private readonly alerts = inject(TuiAlertService);\n\n @Input()\n public documentationPropertyName = '';\n\n @Input()\n public documentationPropertyMode: TuiDocumentationPropertyType = null;\n\n @Input()\n public documentationPropertyType = '';\n\n @Input()\n public documentationPropertyValue!: T;\n\n @Input()\n public documentationPropertyDeprecated = false;\n\n @Input()\n public documentationPropertyValues: readonly T[] | null = null;\n\n @Output()\n public readonly documentationPropertyValueChange = new EventEmitter<T>();\n\n public readonly changed$ = new Subject<void>();\n\n public readonly emits = signal(1);\n\n public readonly template = inject(TemplateRef);\n\n public get attrName(): string {\n switch (this.documentationPropertyMode) {\n case 'input':\n return `[${this.documentationPropertyName}]`;\n case 'input-output':\n return `[(${this.documentationPropertyName})]`;\n case 'output':\n return `(${this.documentationPropertyName})`;\n default:\n return this.documentationPropertyName;\n }\n }\n\n public get shouldShowValues(): boolean {\n return this.documentationPropertyMode !== 'output';\n }\n\n public get hasItems(): boolean {\n return !!this.documentationPropertyValues;\n }\n\n public ngOnInit(): void {\n this.parseParams(this.activatedRoute.snapshot.queryParams);\n }\n\n public ngOnChanges(): void {\n this.changed$.next();\n }\n\n public onValueChange(value: T): void {\n this.documentationPropertyValue = value;\n this.documentationPropertyValueChange.emit(value);\n this.setQueryParam(value);\n }\n\n public emitEvent(event: unknown): void {\n // For more convenient debugging\n console.info(this.attrName, event);\n\n this.emits.update((x) => ++x);\n\n let content: string | undefined;\n\n if (event !== undefined) {\n content = tuiInspectAny(event, 2);\n }\n\n this.alerts.open(content, {label: this.attrName}).subscribe();\n }\n\n private parseParams(params: Params): void {\n const propertyValue: string | undefined = params[this.documentationPropertyName];\n const propertyValueWithSuffix: number | string | undefined =\n params[`${this.documentationPropertyName}${SERIALIZED_SUFFIX}`];\n\n if (!propertyValue && !propertyValueWithSuffix) {\n return;\n }\n\n let value =\n !!propertyValueWithSuffix && this.documentationPropertyValues\n ? this.documentationPropertyValues[propertyValueWithSuffix as number]\n : tuiCoerceValue(propertyValue);\n\n if (this.documentationPropertyType === 'string' && tuiIsNumber(value)) {\n value = value.toString();\n }\n\n this.onValueChange(value as T);\n }\n\n private setQueryParam(value: unknown): void {\n const tree = this.urlSerializer.parse(this.locationRef.path());\n const isValueAvailableByKey = value instanceof Object;\n const name = this.documentationPropertyName;\n const nameWithSuffix = `${name}${SERIALIZED_SUFFIX}`;\n\n const computedValue =\n isValueAvailableByKey && this.documentationPropertyValues\n ? this.documentationPropertyValues.indexOf(value as T)\n : value;\n\n tree.queryParams = tuiCleanObject({\n ...tree.queryParams,\n /**\n * Caretaker note: reset previous conflicted param in route\n * issue: https://github.com/taiga-family/taiga-ui/issues/9764\n */\n ...(isValueAvailableByKey\n ? {\n [nameWithSuffix]: computedValue,\n [name]: undefined,\n }\n : {\n [nameWithSuffix]: undefined,\n [name]: computedValue,\n }),\n });\n\n this.locationRef.go(this.urlStateHandler(tree));\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiShowCleanerPipe',\n})\nexport class TuiShowCleanerPipe implements PipeTransform {\n public transform(type: string): boolean {\n return type.includes('null');\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiIsOptionalPipe',\n})\nexport class TuiIsOptionalPipe implements PipeTransform {\n public transform(name: string): boolean {\n return name.includes('?');\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiStripOptionalPipe',\n})\nexport class TuiStripOptionalPipe implements PipeTransform {\n public transform(name: string): string {\n return name.replace('?', '');\n }\n}\n","import {animate, style, transition, trigger} from '@angular/animations';\nimport {NgForOf, NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {\n TUI_DOC_DOCUMENTATION_TEXTS,\n TUI_DOC_EXCLUDED_PROPERTIES,\n} from '@taiga-ui/addon-doc/tokens';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TuiFilterPipe} from '@taiga-ui/cdk/pipes/filter';\nimport {TuiToArrayPipe} from '@taiga-ui/cdk/pipes/to-array';\nimport {type TuiMatcher} from '@taiga-ui/cdk/types';\nimport {TuiNotification} from '@taiga-ui/core/components/notification';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiBadge} from '@taiga-ui/kit/components/badge';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputNumber} from '@taiga-ui/kit/components/input-number';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {merge, switchMap} from 'rxjs';\n\nimport {TuiDocDocumentationPropertyConnector} from './documentation-property-connector.directive';\nimport {TuiShowCleanerPipe} from './pipes/cleaner.pipe';\nimport {TuiInspectPipe} from './pipes/inspect.pipe';\nimport {TuiIsOptionalPipe} from './pipes/optional.pipe';\nimport {TuiStripOptionalPipe} from './pipes/strip-optional.pipe';\nimport {TuiDocTypeReferencePipe} from './pipes/type-reference.pipe';\n\n// @bad TODO subscribe propertiesConnectors changes\n// @bad TODO refactor to make more flexible\n@Component({\n selector: 'tui-doc-documentation',\n imports: [\n FormsModule,\n NgForOf,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n NgTemplateOutlet,\n TuiBadge,\n TuiDataListWrapper,\n TuiDocTypeReferencePipe,\n TuiDropdown,\n TuiFilterPipe,\n TuiInputNumber,\n TuiInspectPipe,\n TuiIsOptionalPipe,\n TuiNotification,\n TuiSelectModule,\n TuiShowCleanerPipe,\n TuiStripOptionalPipe,\n TuiSwitch,\n TuiTextfield,\n TuiTextfieldControllerModule,\n TuiToArrayPipe,\n ],\n templateUrl: './documentation.template.html',\n styleUrls: ['./documentation.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiScrollbarOptionsProvider({mode: 'hover'})],\n animations: [\n trigger('emitEvent', [\n transition(':increment', [style({opacity: 1}), animate('500ms ease-in')]),\n ]),\n ],\n})\nexport class TuiDocDocumentation implements AfterContentInit {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n\n @ContentChildren(TuiDocDocumentationPropertyConnector)\n protected propertiesConnectors: QueryList<\n TuiDocDocumentationPropertyConnector<unknown>\n > = EMPTY_QUERY;\n\n protected readonly texts = inject(TUI_DOC_DOCUMENTATION_TEXTS);\n protected readonly excludedProperties = inject(TUI_DOC_EXCLUDED_PROPERTIES);\n protected activeItemIndex = 0;\n\n @Input()\n public heading = '';\n\n @Input()\n public showValues = true;\n\n @Input()\n public isAPI = false;\n\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.propertiesConnectors)\n .pipe(\n switchMap((items) => merge(...items.map(({changed$}) => changed$))),\n tuiWatch(this.cdr),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n protected get type(): string {\n return this.isAPI ? this.texts[0] : this.texts[1];\n }\n\n protected matcher: TuiMatcher<\n [TuiDocDocumentationPropertyConnector<unknown>, Set<string>]\n > = (item, exclusions) => !exclusions.has(item.documentationPropertyName);\n}\n","<h1\n *ngIf=\"heading\"\n class=\"t-heading\"\n>\n {{ heading }}\n</h1>\n<ng-content />\n<ng-container *ngIf=\"propertiesConnectors | tuiToArray | tuiFilter: matcher : excludedProperties as properties\">\n <table\n *ngIf=\"properties.length\"\n class=\"t-table\"\n >\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-th_value\"\n >\n {{ texts[3] }}\n </th>\n </tr>\n <tr\n *ngFor=\"let propertyConnector of properties\"\n class=\"t-row\"\n [class.t-deprecated]=\"propertyConnector.documentationPropertyDeprecated\"\n >\n <td class=\"t-cell t-no-overflow\">\n <div\n automation-id=\"tui-documentation__property-name\"\n class=\"t-property t-additional-info\"\n >\n <code\n *ngIf=\"propertyConnector.attrName\"\n class=\"t-property-code\"\n [style.color]=\"'var(--tui-background-accent-2-pressed)'\"\n >\n {{ propertyConnector.attrName | tuiStripOptionalPipe }}\n </code>\n <tui-badge\n *ngIf=\"propertyConnector.attrName | tuiIsOptionalPipe\"\n appearance=\"neutral\"\n size=\"s\"\n >\n Optional\n </tui-badge>\n <tui-badge\n *ngIf=\"propertyConnector.documentationPropertyDeprecated\"\n appearance=\"negative\"\n size=\"s\"\n >\n Deprecated\n </tui-badge>\n </div>\n <ng-container [ngTemplateOutlet]=\"propertyConnector.template\" />\n </td>\n <td class=\"t-cell t-no-overflow\">\n <span class=\"type\">\n <code class=\"t-code-type\">\n <ng-container\n *ngFor=\"\n let item of propertyConnector.documentationPropertyType | tuiDocTypeReference;\n let last = last\n \"\n >\n <a\n *ngIf=\"item.reference; else default\"\n target=\"_blank\"\n class=\"t-code-reference\"\n [attr.href]=\"item.reference\"\n >\n {{ item.type }}\n </a>\n <ng-template #default>\n {{ item.type }}\n </ng-template>\n <span *ngIf=\"!last\"> | </span>\n </ng-container>\n </code>\n </span>\n </td>\n <td\n *ngIf=\"showValues\"\n class=\"t-cell t-cell_value\"\n >\n <ng-container *ngIf=\"propertyConnector.shouldShowValues; else elseEmitter\">\n <tui-select\n *ngIf=\"propertyConnector.hasItems; else noItems\"\n tuiDropdownLimitWidth=\"min\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [tuiTextfieldCleaner]=\"propertyConnector.documentationPropertyType | tuiShowCleanerPipe\"\n [tuiTextfieldLabelOutside]=\"true\"\n [valueContent]=\"selectContent\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n >\n <code class=\"t-exception\">null</code>\n <tui-data-list-wrapper\n *tuiDataList\n class=\"t-data-list\"\n [itemContent]=\"selectContent\"\n [items]=\"propertyConnector.documentationPropertyValues\"\n />\n </tui-select>\n <ng-template\n #selectContent\n let-data\n >\n <code>{{ data | tuiInspectAny }}</code>\n </ng-template>\n\n <ng-template #noItems>\n <ng-container [ngSwitch]=\"propertyConnector.documentationPropertyType\">\n <input\n *ngSwitchCase=\"'boolean'\"\n tuiSwitch\n type=\"checkbox\"\n class=\"t-switch\"\n [id]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [showIcons]=\"true\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n />\n\n <tui-textfield\n *ngSwitchCase=\"'string'\"\n tuiTextfieldSize=\"m\"\n >\n <input\n tuiTextfield\n [id]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue || ''\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n />\n </tui-textfield>\n\n <tui-textfield\n *ngSwitchCase=\"'number'\"\n tuiTextfieldSize=\"m\"\n >\n <input\n tuiInputNumber\n [id]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [step]=\"1\"\n (ngModelChange)=\"propertyConnector.onValueChange($event || 0)\"\n />\n </tui-textfield>\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()\"\n >\n Emit!\n </tui-notification>\n </ng-template>\n </td>\n </tr>\n </table>\n</ng-container>\n","import {Pipe, type PipeTransform} from '@angular/core';\nimport {tuiRgbToHex} from '@taiga-ui/cdk/utils/color';\n\n@Pipe({\n standalone: true,\n name: 'tuiGetColorPipe',\n})\nexport class TuiGetColorPipe implements PipeTransform {\n public transform(color: string): string {\n if (color.length === 4) {\n return color\n .split('')\n .reduce<string[]>((result, current) => [...result, current, current], [])\n .join('')\n .replace('#', '');\n }\n\n if (color.startsWith('#')) {\n return color;\n }\n\n if (color === 'transparent') {\n return '#000000';\n }\n\n const parsed = color\n .replace('rgb(', '')\n .replace('rgba(', '')\n .replace(')', '')\n .replace(' ', '')\n .split(',')\n .map((v) => Number.parseInt(v, 10)) as [number, number, number];\n\n return tuiRgbToHex(...parsed);\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiGetOpacity',\n})\nexport class TuiGetOpacityPipe implements PipeTransform {\n public transform(color: string): number {\n if (color.startsWith('#') || color.startsWith('rgb(')) {\n return 100;\n }\n\n if (color === 'transparent') {\n return 0;\n }\n\n const lastComma = color.lastIndexOf(',');\n const parsed = color\n .slice(lastComma)\n .replace(')', '')\n .replace(' ', '')\n .replace(',', '');\n\n return Math.round(Number.parseFloat(parsed) * 100);\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\nimport {tuiIsNumber, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Pipe({\n standalone: true,\n name: 'tuiIsPrimitivePolymorpheusContentPipe',\n})\nexport class TuiIsPrimitivePolymorpheusContentPipe implements PipeTransform {\n public transform(value: unknown): boolean {\n return tuiIsString(value) || tuiIsNumber(value);\n }\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {TUI_EXAMPLE_PRIMARY_FILE_NAME} from '@taiga-ui/addon-doc/types';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport interface TuiDocExampleOptions {\n codeEditorVisibilityHandler: TuiBooleanHandler<Record<string, string>>;\n fullsize: boolean;\n tabTitles: Map<unknown, PolymorpheusContent>;\n}\n\nexport const TUI_DOC_EXAMPLE_DEFAULT_OPTIONS: TuiDocExampleOptions = {\n codeEditorVisibilityHandler: (files) =>\n Boolean(\n files[TUI_EXAMPLE_PRIMARY_FILE_NAME.TS] &&\n files[TUI_EXAMPLE_PRIMARY_FILE_NAME.HTML],\n ),\n tabTitles: new Map(),\n fullsize: true,\n};\n\n/**\n * Default parameters for DocExample component\n */\nexport const TUI_DOC_EXAMPLE_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_DOC_EXAMPLE_OPTIONS' : '',\n {\n factory: () => TUI_DOC_EXAMPLE_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiDocExampleOptionsProvider(\n options: Partial<TuiDocExampleOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_DOC_EXAMPLE_OPTIONS,\n options,\n TUI_DOC_EXAMPLE_DEFAULT_OPTIONS,\n );\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiDocExampleGetTabs',\n})\nexport class TuiDocExampleGetTabsPipe implements PipeTransform {\n public transform(content: Record<string, string>, defaultTab: string): string[] {\n return [defaultTab, ...Object.keys(content).filter((tab) => content[tab])];\n }\n}\n","import {Clipboard} from '@angular/cdk/clipboard';\nimport {AsyncPipe, DOCUMENT, NgComponentOutlet, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n type Type,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute, RouterLink, RouterLinkActive} from '@angular/router';\nimport {WA_LOCATION} from '@ng-web-apis/common';\nimport {\n TUI_DOC_CODE_ACTIONS,\n TUI_DOC_CODE_EDITOR,\n TUI_DOC_EXAMPLE_CONTENT_PROCESSOR,\n TUI_DOC_EXAMPLE_TEXTS,\n TUI_DOC_ICONS,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\nimport {tuiRawLoadRecord} from '@taiga-ui/addon-doc/utils';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiFullscreen} from '@taiga-ui/core/components/fullscreen';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {TuiTabs} from '@taiga-ui/kit/components/tabs';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {BehaviorSubject, map, switchMap} from 'rxjs';\n\nimport {TuiDocCode} from '../code';\nimport {TUI_DOC_EXAMPLE_OPTIONS} from './example.options';\nimport {TuiDocExampleGetTabsPipe} from './example-get-tabs.pipe';\n\n@Component({\n selector: 'tui-doc-example',\n imports: [\n AsyncPipe,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n RouterLink,\n RouterLinkActive,\n TuiButton,\n TuiDocCode,\n TuiDocExampleGetTabsPipe,\n TuiFullscreen,\n TuiLet,\n TuiLink,\n TuiLoader,\n TuiMapperPipe,\n TuiTabs,\n ],\n templateUrl: './example.template.html',\n styleUrls: ['./example.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n '[class._fullsize]': 'fullsize',\n },\n})\nexport class TuiDocExample {\n private readonly clipboard = inject(Clipboard);\n private readonly alerts = inject(TuiAlertService);\n private readonly location = inject(WA_LOCATION);\n private readonly copyTexts$ = inject(TUI_COPY_TEXTS);\n private readonly processContent = inject(TUI_DOC_EXAMPLE_CONTENT_PROCESSOR);\n\n private readonly rawLoader$$ = new BehaviorSubject<\n Record<string, TuiRawLoaderContent>\n >({});\n\n protected readonly fullscreenEnabled = inject(DOCUMENT).fullscreenEnabled;\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly options = inject(TUI_DOC_EXAMPLE_OPTIONS);\n protected readonly texts = inject(TUI_DOC_EXAMPLE_TEXTS);\n protected readonly codeEditor = inject(TUI_DOC_CODE_EDITOR, {optional: true});\n protected readonly codeActions =\n inject<ReadonlyArray<PolymorpheusContent<TuiContext<string>>>>(\n TUI_DOC_CODE_ACTIONS,\n );\n\n protected readonly route = inject(ActivatedRoute);\n\n protected readonly defaultTabIndex = 0;\n protected readonly defaultTab = this.texts[this.defaultTabIndex];\n protected activeItemIndex = this.defaultTabIndex;\n protected fullscreen = false;\n\n protected readonly copy = toSignal(this.copyTexts$.pipe(map(([copy]) => copy)), {\n initialValue: '',\n });\n\n protected readonly loading = signal(false);\n\n protected readonly processor = toSignal(\n this.rawLoader$$.pipe(\n switchMap(tuiRawLoadRecord),\n map((value) => this.processContent(value)),\n ),\n {initialValue: {} as unknown as Record<string, string>},\n );\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public heading: PolymorpheusContent;\n\n @Input()\n public description: PolymorpheusContent;\n\n @Input()\n public fullsize = inject(TUI_DOC_EXAMPLE_OPTIONS).fullsize;\n\n @Input()\n public componentName: string = this.location.pathname.slice(1);\n\n @Input()\n public component?: Promise<Type<unknown>>;\n\n @Input()\n public set content(content: Record<string, TuiRawLoaderContent>) {\n this.rawLoader$$.next(content);\n }\n\n protected readonly visible = (files: Record<string, string>): boolean =>\n Boolean(this.codeEditor && this.options.codeEditorVisibilityHandler(files));\n\n protected getTabTitle(fileName: string): PolymorpheusContent {\n return this.options.tabTitles.get(fileName) || fileName;\n }\n\n protected copyExampleLink(target: EventTarget | null): void {\n this.clipboard.copy((target as HTMLAnchorElement | null)?.href ?? '');\n this.alerts\n .open(this.texts[1], {label: this.texts[2], appearance: 'positive'})\n .subscribe();\n }\n\n protected edit(files: Record<string, string>): void {\n this.loading.set(true);\n this.codeEditor\n ?.edit(this.componentName, this.id || '', files)\n .finally(() => this.loading.set(false));\n }\n}\n","<div class=\"t-title-block\">\n <h2\n *ngIf=\"heading\"\n class=\"t-title\"\n >\n <span\n *polymorpheusOutlet=\"heading as text\"\n [textContent]=\"text\"\n ></span>\n </h2>\n <a\n *ngIf=\"id\"\n routerLink=\".\"\n routerLinkActive=\"t-link-active\"\n tuiLink\n type=\"button\"\n class=\"t-link\"\n [attr.title]=\"copy()\"\n [fragment]=\"id\"\n [relativeTo]=\"route.firstChild ?? route\"\n [routerLinkActiveOptions]=\"{matrixParams: 'exact', queryParams: 'exact', paths: 'exact', fragment: 'exact'}\"\n (click)=\"copyExampleLink($event.currentTarget)\"\n >\n #\n </a>\n</div>\n<h3\n *ngIf=\"description\"\n class=\"t-description\"\n>\n <ng-container *polymorpheusOutlet=\"description as text\">\n {{ text }}\n </ng-container>\n</h3>\n\n<div\n class=\"t-example\"\n [(tuiFullscreen)]=\"fullscreen\"\n>\n <ng-container *ngIf=\"processor() | 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 type=\"button\"\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=\"processor() | tuiMapper: visible\"\n size=\"xs\"\n class=\"t-code-editor\"\n [overlay]=\"true\"\n [showLoader]=\"loading()\"\n (click)=\"edit(processor())\"\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\n <button\n *ngIf=\"fullscreenEnabled\"\n appearance=\"flat\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"fullscreen ? icons.shrink : icons.expand\"\n (click)=\"fullscreen = !fullscreen\"\n >\n Fullscreen\n </button>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n >\n <section\n *ngIf=\"index === defaultTabIndex\"\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n [style.display]=\"activeItemIndex === index && index === defaultTabIndex ? 'block' : 'none'\"\n >\n <ng-content />\n <ng-container *ngComponentOutlet=\"component | async\" />\n </section>\n\n <tui-doc-code\n *tuiLet=\"processor()[tabs[index] || 0] || '' as code\"\n [code]=\"code\"\n [style.display]=\"activeItemIndex === index && index !== defaultTabIndex ? 'block' : 'none'\"\n >\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 </div>\n </ng-container>\n</div>\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute, type Event, NavigationEnd, Router, Scroll} from '@angular/router';\nimport {TUI_DOC_PAGES, TUI_DOC_TITLE} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDocRoutePages} from '@taiga-ui/addon-doc/types';\nimport {tuiAutoFocusOptionsProvider} from '@taiga-ui/cdk/directives/auto-focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {filter, map, mergeMap, type Observable} from 'rxjs';\n\nfunction labelsProviderFactory(pages: TuiDocRoutePages): readonly string[] {\n return pages\n .map(({section}) => section)\n .filter(tuiIsPresent)\n .filter((item, index, array) => array.indexOf(item) === index);\n}\n\n/**\n * Page title\n */\nexport const NAVIGATION_TITLE = new InjectionToken<Observable<string>>(\n ngDevMode ? 'NAVIGATION_TITLE' : '',\n);\n\n/**\n * Navigation sections labels for search\n */\nexport const NAVIGATION_LABELS = new InjectionToken<readonly string[]>(\n ngDevMode ? 'NAVIGATION_LABELS' : '',\n);\n\n/**\n * Navigation pages\n */\nexport const NAVIGATION_ITEMS = new InjectionToken<readonly TuiDocRoutePages[]>(\n ngDevMode ? 'NAVIGATION_ITEMS' : '',\n);\n\nexport const NAVIGATION_PROVIDERS: Provider[] = [\n tuiAutoFocusOptionsProvider({preventScroll: true}),\n tuiLinkOptionsProvider({appearance: 'action-grayscale'}),\n {\n provide: NAVIGATION_TITLE,\n deps: [Router, ActivatedRoute, TUI_DOC_TITLE],\n useFactory: (\n router: Router,\n activatedRoute: ActivatedRoute,\n titlePrefix: string,\n ): Observable<string> =>\n router.events.pipe(\n filter(\n (event: Event) =>\n event instanceof NavigationEnd ||\n (event instanceof Scroll\n ? event.routerEvent instanceof NavigationEnd\n : false),\n ),\n map(() => activatedRoute.firstChild),\n filter(tuiIsPresent),\n mergeMap(({data}) => data),\n map(({title}) => `${titlePrefix}${title}`),\n takeUntilDestroyed(),\n ),\n },\n {\n provide: NAVIGATION_LABELS,\n deps: [TUI_DOC_PAGES],\n useFactory: labelsProviderFactory,\n },\n {\n provide: NAVIGATION_ITEMS,\n deps: [TUI_DOC_PAGES],\n useFactory: (pages: TuiDocRoutePages): readonly TuiDocRoutePages[] => {\n const labels = labelsProviderFactory(pages);\n\n return [\n ...labels.map((label) => pages.filter(({section}) => section === label)),\n pages.filter((page) => !page.section),\n ];\n },\n },\n tuiScrollbarOptionsProvider({\n mode: 'hover',\n }),\n];\n","import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TUI_DOC_PAGE_LOADED} from '@taiga-ui/addon-doc/tokens';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {debounceTime, filter, ReplaySubject, switchMap, take} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiDocScrollIntoViewLink]',\n})\nexport class TuiDocScrollIntoViewLink {\n private readonly scroll$ = new ReplaySubject<boolean>(1);\n private readonly el = tuiInjectElement();\n\n protected readonly sub = inject(TUI_DOC_PAGE_LOADED)\n .pipe(\n filter(Boolean),\n take(1),\n switchMap(() => this.scroll$),\n debounceTime(750, tuiZonefreeScheduler()),\n filter((shallWe) => shallWe && !!tuiGetElementObscures(this.el)),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.el.scrollIntoView());\n\n @Input()\n public set tuiDocScrollIntoViewLink(shallWe: boolean) {\n this.scroll$.next(shallWe);\n }\n}\n","import {DOCUMENT, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {Title} from '@angular/platform-browser';\nimport {Router, RouterLink, RouterLinkActive, Scroll} from '@angular/router';\nimport {\n TUI_DOC_ICONS,\n TUI_DOC_PAGE_LOADED,\n TUI_DOC_SEARCH_ENABLED,\n TUI_DOC_SEARCH_TEXT,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDocRoutePage, type TuiDocRoutePages} from '@taiga-ui/addon-doc/types';\nimport {tuiTransliterateKeyboardLayout} from '@taiga-ui/addon-doc/utils';\nimport {TuiSidebarDirective} from '@taiga-ui/addon-mobile/directives/sidebar';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {tuiControlValue, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiPure, tuiUniqBy} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield, TuiTextfieldDirective} from '@taiga-ui/core/components/textfield';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiAccordion} from '@taiga-ui/kit/components/accordion';\nimport {TuiInputModule} from '@taiga-ui/legacy/components/input';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {combineLatest, filter, fromEvent, map, of, switchMap, take} from 'rxjs';\n\nimport {\n NAVIGATION_ITEMS,\n NAVIGATION_LABELS,\n NAVIGATION_PROVIDERS,\n NAVIGATION_TITLE,\n} from './navigation.providers';\nimport {TuiDocScrollIntoViewLink} from './scroll-into-view.directive';\n\n@Component({\n selector: 'tui-doc-navigation',\n imports: [\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n PolymorpheusOutlet,\n ReactiveFormsModule,\n RouterLink,\n RouterLinkActive,\n TuiAccordion,\n TuiAutoFocus,\n TuiDataList,\n TuiDocScrollIntoViewLink,\n TuiExpand,\n TuiIcon,\n TuiInputModule,\n TuiLink,\n TuiScrollbar,\n TuiTextfield,\n TuiTextfieldControllerModule,\n ],\n templateUrl: './navigation.template.html',\n styleUrls: ['./navigation.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: NAVIGATION_PROVIDERS,\n host: {\n '[class._open]': 'menuOpen',\n '(window:keydown)': 'onFocusSearch($event)',\n },\n})\nexport class TuiDocNavigation {\n @ViewChild(TuiTextfieldDirective, {read: ElementRef})\n private readonly searchInput?: ElementRef<HTMLInputElement>;\n\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n\n protected open = signal(false);\n protected menuOpen = false;\n\n protected readonly sidebar = inject(TuiSidebarDirective, {optional: true});\n protected readonly labels = inject(NAVIGATION_LABELS);\n protected readonly items = inject(NAVIGATION_ITEMS);\n protected readonly searchText = inject(TUI_DOC_SEARCH_TEXT);\n protected readonly searchEnabled = inject(TUI_DOC_SEARCH_ENABLED);\n protected readonly docIcons = inject(TUI_DOC_ICONS);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n protected openPagesArr: boolean[] = [];\n protected openPagesGroupsArr: boolean[] = [];\n protected active = '';\n\n protected readonly search = new FormControl('');\n\n protected readonly filtered = toSignal(\n tuiControlValue<string>(this.search).pipe(\n filter((search) => search.trim().length > 2),\n map((search) => this.filterItems(this.flattenSubPages(this.items), search)),\n ),\n {initialValue: []},\n );\n\n constructor() {\n const titleService = inject(Title);\n const readyToScroll$ = inject(TUI_DOC_PAGE_LOADED);\n\n inject(NAVIGATION_TITLE)\n .pipe(tuiWatch(), takeUntilDestroyed())\n .subscribe((title) => {\n titleService.setTitle(title);\n this.openActivePageGroup();\n });\n\n combineLatest([\n this.router.events.pipe(\n filter((event): event is Scroll => event instanceof Scroll),\n switchMap(({anchor}) =>\n 'onscrollend' in this.doc\n ? fromEvent(this.doc, 'scrollend').pipe(map(() => anchor))\n : of(anchor),\n ),\n ),\n inject(NAVIGATION_TITLE).pipe(\n switchMap(() => readyToScroll$.pipe(filter(Boolean))),\n ),\n ])\n .pipe(\n take(1),\n map(([anchor]) => anchor || ''),\n filter<string>(Boolean),\n takeUntilDestroyed(),\n )\n .subscribe((anchor) => this.navigateToAnchorLink(anchor));\n }\n\n protected get canOpen(): boolean {\n return (this.search.value?.length ?? 0) > 2;\n }\n\n protected get itemsWithoutSections(): TuiDocRoutePages {\n return this.items[this.items.length - 1] ?? [];\n }\n\n protected $pages<T extends TuiDocRoutePage[]>(pages: T): readonly TuiDocRoutePage[] {\n return pages as TuiDocRoutePage[];\n }\n\n protected isActive(route: string): boolean {\n return route === this.active;\n }\n\n protected onGroupClick(index: number): void {\n this.openPagesGroupsArr[index] = !this.openPagesGroupsArr[index];\n }\n\n protected closeMenu(): void {\n this.menuOpen = false;\n }\n\n protected onClick(): void {\n this.open.set(false);\n this.menuOpen = false;\n this.search.setValue('');\n this.openActivePageGroup();\n }\n\n protected onFocusSearch(event: KeyboardEvent): void {\n if (\n event.code === 'Slash' &&\n !this.doc.activeElement?.matches('input,textarea,[contenteditable]')\n ) {\n this.searchInput?.nativeElement?.focus();\n event.preventDefault();\n }\n }\n\n @tuiPure\n private filterItems(\n items: ReadonlyArray<readonly TuiDocRoutePage[]>,\n search: string,\n ): ReadonlyArray<readonly TuiDocRoutePage[]> {\n return items.map((section) =>\n tuiUniqBy(\n section.filter(({title, keywords = ''}) => {\n search = search.toLowerCase().trim();\n keywords = keywords.toLowerCase();\n title = title.toLowerCase();\n\n return (\n title.includes(search) ||\n keywords.includes(search) ||\n title.includes(tuiTransliterateKeyboardLayout(search)) ||\n keywords.includes(tuiTransliterateKeyboardLayout(search)) ||\n search.replaceAll('-', '').includes(title) ||\n title.includes(search.replaceAll(/\\s|tui/g, '')) ||\n keywords.includes(search.replaceAll(/\\s|tui/g, '')) ||\n search.split(/\\s/).find((word) => title.includes(word))\n );\n }),\n 'title',\n ),\n );\n }\n\n @tuiPure\n private flattenSubPages(\n items: readonly TuiDocRoutePages[],\n ): ReadonlyArray<readonly TuiDocRoutePage[]> {\n return items.reduce<ReadonlyArray<readonly TuiDocRoutePage[]>>(\n (array, item) => [\n ...array,\n item.reduce<readonly TuiDocRoutePage[]>(\n (pages, page) =>\n 'subPages' in page\n ? [...pages, ...page.subPages]\n : [...pages, page],\n [],\n ),\n ],\n [],\n );\n }\n\n private isActiveRoute(route: string): boolean {\n return this.router.isActive(route, {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n }\n\n private openActivePageGroup(): void {\n this.items.forEach((pages, pagesIndex) => {\n pages.forEach((page, pageIndex) => {\n if ('route' in page && this.isActiveRoute(page.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.active = page.route;\n }\n\n if ('subPages' in page) {\n page.subPages.forEach((subPage) => {\n if (this.isActiveRoute(subPage.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.openPagesGroupsArr[pagesIndex * 100 + pageIndex] = true;\n this.active = subPage.route;\n }\n });\n }\n });\n });\n }\n\n private navigateToAnchorLink(fragment: string): void {\n const nodes = fragment ? this.doc.querySelectorAll(`#${fragment}`) : [];\n const element = nodes.length && nodes[nodes.length - 1];\n\n if (!element) {\n return;\n }\n\n // emulate :target event\n const target = this.doc.createElement('a');\n\n target.href = `${this.doc.location.pathname}#${fragment}`;\n target.style.display = 'none';\n target.style.position = 'absolute';\n this.doc.body.appendChild(target);\n target.click();\n target.remove();\n }\n}\n","<tui-textfield\n *ngIf=\"searchEnabled()\"\n tuiTextfieldSize=\"m\"\n class=\"t-input\"\n [iconStart]=\"docIcons.search\"\n [open]=\"open() && canOpen\"\n (keyup)=\"open.set(canOpen && $event.code !== 'Escape')\"\n (openChange)=\"open.set($event)\"\n>\n <code\n *ngIf=\"!search.value\"\n class=\"t-slash\"\n >\n /\n </code>\n <input\n tuiTextfield\n class=\"t-prevent-ios-scroll\"\n [formControl]=\"search\"\n [placeholder]=\"searchText\"\n [tuiAutoFocus]=\"!!sidebar\"\n />\n <ng-container *ngIf=\"canOpen\">\n <tui-data-list *tuiTextfieldDropdown>\n <tui-opt-group\n *ngFor=\"let group of filtered(); let index = index\"\n [label]=\"labels[index] || ''\"\n >\n <ng-container *ngFor=\"let item of group\">\n <a\n *ngIf=\"item.route.includes('://'); else internal\"\n tuiOption\n [attr.rel]=\"item.rel\"\n [href]=\"item.route\"\n [target]=\"item.target || '_self'\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n\n <ng-template #internal>\n <a\n tuiOption\n [attr.rel]=\"item.rel\"\n [fragment]=\"item.fragment\"\n [routerLink]=\"item.route\"\n [target]=\"item.target || '_self'\"\n (click)=\"onClick()\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n </ng-template>\n </ng-container>\n </tui-opt-group>\n </tui-data-list>\n </ng-container>\n</tui-textfield>\n\n<nav class=\"t-navigation\">\n <tui-scrollbar class=\"t-scrollbar\">\n <tui-accordion\n [class.t-accordion-standalone]=\"!searchEnabled()\"\n [closeOthers]=\"false\"\n [rounded]=\"false\"\n >\n <tui-accordion-item\n *ngFor=\"let label of labels; index as index\"\n size=\"s\"\n [borders]=\"null\"\n [open]=\"!!openPagesArr[index]\"\n (openChange)=\"openPagesArr[index] = $event\"\n >\n <span class=\"t-label\">\n <strong>{{ label }}</strong>\n </span>\n <ng-template tuiAccordionItemContent>\n <div class=\"t-section\">\n <ng-container\n *ngFor=\"let item of items[index]; index as subIndex\"\n [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: index * 100 + subIndex}\"\n />\n </div>\n </ng-template>\n </tui-accordion-item>\n </tui-accordion>\n <div class=\"t-items-container\">\n <ng-container\n *ngFor=\"let item of itemsWithoutSections; let index = index\"\n [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: items.length - 1 + index}\"\n />\n </div>\n\n <ng-template\n #pages\n let-index=\"index\"\n let-item=\"item\"\n >\n <ng-container *ngIf=\"!item.subPages; else subPagesTemplate\">\n <a\n *ngIf=\"item.route.includes('://'); else internal\"\n tuiLink\n class=\"t-sublink\"\n [attr.rel]=\"item.rel\"\n [href]=\"item.route\"\n [target]=\"item.target || '_self'\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n\n <ng-template #internal>\n <a\n routerLinkActive=\"t-sublink_active\"\n tuiLink\n class=\"t-sublink\"\n [attr.rel]=\"item.rel\"\n [routerLink]=\"item.route\"\n [target]=\"item.target || '_self'\"\n [tuiDocScrollIntoViewLink]=\"isActive(item.route)\"\n (click)=\"closeMenu()\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n </ng-template>\n </ng-container>\n\n <ng-template #subPagesTemplate>\n <div\n routerLinkActive\n class=\"t-subsection\"\n [routerLinkActiveOptions]=\"{exact: false}\"\n >\n <button\n *ngIf=\"item.subPages\"\n tuiLink\n type=\"button\"\n class=\"t-sublink t-sublink_subsection\"\n (click)=\"onGroupClick(index)\"\n >\n <tui-icon\n class=\"t-chevron\"\n [class.t-chevron_active]=\"!!openPagesGroupsArr[index]\"\n [icon]=\"icons.more\"\n />\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </button>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"!!openPagesGroupsArr[index]\"\n >\n <div class=\"t-section t-section_bordered\">\n <ng-container *ngFor=\"let subPage of $pages(item.subPages)\">\n <a\n *ngIf=\"subPage.route.includes('://'); else internal\"\n tuiLink\n class=\"t-sublink t-sublink_small\"\n [attr.rel]=\"subPage.rel\"\n [href]=\"subPage.route\"\n [target]=\"subPage.target || '_self'\"\n >\n {{ subPage.title }}\n <tui-icon\n *polymorpheusOutlet=\"subPage.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n\n <ng-template #internal>\n <a\n routerLinkActive=\"t-sublink_active\"\n tuiLink\n class=\"t-sublink t-sublink_small\"\n [attr.rel]=\"subPage.rel\"\n [fragment]=\"subPage.fragment\"\n [routerLink]=\"subPage.route\"\n [target]=\"subPage.target || '_self'\"\n [tuiDocScrollIntoViewLink]=\"isActive(subPage.route)\"\n (click)=\"closeMenu()\"\n >\n {{ subPage.title }}\n <tui-icon\n *polymorpheusOutlet=\"subPage.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n </ng-template>\n </ng-container>\n </div>\n </tui-expand>\n </div>\n </ng-template>\n </ng-template>\n </tui-scrollbar>\n</nav>\n\n<ng-content />\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {Router} from '@angular/router';\nimport {TUI_DOC_ICONS, TUI_DOC_LOGO, TUI_DOC_MENU_TEXT} from '@taiga-ui/addon-doc/tokens';\nimport {TuiSidebar} from '@taiga-ui/addon-mobile/directives/sidebar';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, merge, startWith, Subject} from 'rxjs';\n\nimport {TuiDocNavigation} from '../../navigation/navigation.component';\n\n@Component({\n selector: 'header[tuiDocHeader]',\n imports: [PolymorpheusOutlet, TuiActiveZone, TuiButton, TuiDocNavigation, TuiSidebar],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocHeader {\n private readonly stream$ = new Subject<boolean>();\n private readonly router = inject(Router);\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly logo = inject(TUI_DOC_LOGO);\n protected readonly menu = inject(TUI_DOC_MENU_TEXT);\n\n protected readonly open = toSignal(\n merge(this.router.events.pipe(map(TUI_FALSE_HANDLER)), this.stream$).pipe(\n startWith(false),\n distinctUntilChanged(),\n ),\n {initialValue: false},\n );\n\n protected onClick(): void {\n this.stream$.next(true);\n }\n\n protected onActiveZone(active: boolean): void {\n if (!active) {\n this.stream$.next(false);\n }\n }\n}\n","<button\n appearance=\"icon\"\n tuiIconButton\n type=\"button\"\n class=\"t-menu\"\n [iconStart]=\"icons.menu\"\n [title]=\"menu\"\n (click)=\"onClick()\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-doc-navigation\n *tuiSidebar=\"open()\"\n class=\"t-navigation\"\n />\n</button>\n<div class=\"t-logo\">\n <img\n *polymorpheusOutlet=\"logo as src\"\n alt=\"Logo\"\n class=\"t-img\"\n [src]=\"src\"\n />\n</div>\n<ng-content />\n","import {NgForOf, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {RouterLink} from '@angular/router';\nimport {TUI_DOC_MAP_PAGES, TUI_DOC_SEE_ALSO_TEXT} from '@taiga-ui/addon-doc/tokens';\nimport {TuiLink} from '@taiga-ui/core/components/link';\n\n@Component({\n selector: 'tui-doc-see-also',\n imports: [NgForOf, NgIf, RouterLink, TuiLink],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSeeAlso {\n private readonly pages = inject(TUI_DOC_MAP_PAGES);\n protected readonly text = inject(TUI_DOC_SEE_ALSO_TEXT);\n\n @Input()\n public seeAlso: readonly string[] = [];\n\n protected getRouterLink(pageTitle: string): string {\n return this.pages.get(pageTitle)?.route ?? '';\n }\n}\n","<h5 class=\"t-header\">{{ text }}</h5>\n<ng-container *ngFor=\"let item of seeAlso; last as last\">\n <a\n tuiLink\n [innerText]=\"item\"\n [routerLink]=\"getRouterLink(item)\"\n ></a>\n <ng-container *ngIf=\"!last\">{{ ', ' }}</ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {\n TUI_DOC_ICONS,\n TUI_DOC_SOURCE_CODE,\n TUI_DOC_SOURCE_CODE_TEXT,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDocSourceCodePathOptions} from '@taiga-ui/addon-doc/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-doc-source-code',\n imports: [PolymorpheusOutlet, TuiButton],\n templateUrl: './source-code.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSourceCode {\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly sourceCode = inject(TUI_DOC_SOURCE_CODE);\n protected readonly text = inject(TUI_DOC_SOURCE_CODE_TEXT);\n\n @Input()\n public header = '';\n\n @Input()\n public package = '';\n\n @Input()\n public type = '';\n\n @Input()\n public path = '';\n\n protected get pathOptions(): TuiDocSourceCodePathOptions {\n return this.getPathOptions(this.header, this.package, this.type, this.path);\n }\n\n @tuiPure\n protected pathIsUrl(path: string): boolean {\n return path.startsWith('http');\n }\n\n @tuiPure\n private getPathOptions(\n header: string,\n packageName: string,\n type: string,\n path: string,\n ): TuiDocSourceCodePathOptions {\n return {\n header,\n package: packageName,\n type,\n path,\n };\n }\n}\n","<a\n *polymorpheusOutlet=\"pathIsUrl(path) ? path : sourceCode as link; context: pathOptions\"\n appearance=\"icon\"\n size=\"s\"\n target=\"_blank\"\n tuiIconButton\n type=\"button\"\n [href]=\"link\"\n [iconStart]=\"icons.code\"\n [style.height]=\"'var(--tui-height-l)'\"\n>\n {{ text }}\n</a>\n","import {NgForOf, TitleCasePipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {TUI_DOC_ICONS} from '@taiga-ui/addon-doc/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiFlagPipe} from '@taiga-ui/core/pipes/flag';\nimport {type TuiCountryIsoCode, type TuiLanguageName} from '@taiga-ui/i18n/types';\nimport {TuiLanguageSwitcherService} from '@taiga-ui/i18n/utils';\nimport {TuiBadge} from '@taiga-ui/kit/components/badge';\nimport {TuiBadgedContent} from '@taiga-ui/kit/components/badged-content';\nimport {TuiButtonSelect} from '@taiga-ui/kit/directives/button-select';\n\n@Component({\n selector: 'tui-doc-language-switcher',\n imports: [\n NgForOf,\n ReactiveFormsModule,\n TitleCasePipe,\n TuiBadge,\n TuiBadgedContent,\n TuiButton,\n TuiButtonSelect,\n TuiDataList,\n TuiFlagPipe,\n TuiTextfield,\n ],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiScrollbarOptionsProvider({mode: 'hover'})],\n})\nexport class TuiDocLanguageSwitcher {\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly switcher = inject(TuiLanguageSwitcherService);\n protected readonly language = new FormControl(capitalize(this.switcher.language));\n\n protected open = false;\n\n public readonly flags = new Map<TuiLanguageName, TuiCountryIsoCode>([\n ['arabic', 'SA'],\n ['belarusian', 'BY'],\n ['chinese', 'CN'],\n ['dutch', 'NL'],\n ['english', 'GB'],\n ['french', 'FR'],\n ['german', 'DE'],\n ['hebrew', 'IL'],\n ['italian', 'IT'],\n ['japan', 'JP'],\n ['kazakh', 'KZ'],\n ['korean', 'KR'],\n ['lithuanian', 'LT'],\n ['malay', 'MY'],\n ['polish', 'PL'],\n ['portuguese', 'PT'],\n ['russian', 'RU'],\n ['spanish', 'ES'],\n ['turkish', 'TR'],\n ['ukrainian', 'UA'],\n ['vietnamese', 'VN'],\n ]);\n\n public readonly names: TuiLanguageName[] = Array.from(this.flags.keys());\n\n public setLang(lang: TuiLanguageName): void {\n this.language.setValue(lang);\n this.switcher.setLanguage(lang);\n this.open = false;\n }\n}\n\nfunction capitalize(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n","<tui-badged-content>\n <img\n alt=\"\"\n size=\"s\"\n tuiBadge\n tuiSlot=\"bottom\"\n [src]=\"flags.get(language.value ?? '') || flags.get(switcher.language) | tuiFlag\"\n />\n\n <button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButtonSelect\n tuiIconButton\n type=\"button\"\n [formControl]=\"language\"\n [iconStart]=\"icons.languages\"\n >\n Language\n <tui-data-list *tuiTextfieldDropdown>\n <tui-opt-group label=\"Language of components\">\n <button\n *ngFor=\"let name of names\"\n new\n tuiOption\n type=\"button\"\n [value]=\"name | titlecase\"\n (click)=\"setLang(name)\"\n >\n <img\n alt=\"\"\n class=\"t-flag\"\n [src]=\"flags.get(name) | tuiFlag\"\n />\n {{ name | titlecase }}\n </button>\n </tui-opt-group>\n </tui-data-list>\n </button>\n</tui-badged-content>\n","import {DOCUMENT, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\nimport {TUI_DOC_DIRECTION_ENABLED, TUI_DOC_ICONS} from '@taiga-ui/addon-doc/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiRoot} from '@taiga-ui/core/components/root';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\n\nimport {TuiDocHeader} from '../internal/header';\nimport {TuiDocNavigation} from '../navigation/navigation.component';\n\n@Component({\n selector: 'tui-doc-main',\n imports: [\n NgIf,\n RouterOutlet,\n TuiButton,\n TuiDocHeader,\n TuiDocNavigation,\n TuiIcon,\n TuiRoot,\n ],\n templateUrl: './main.template.html',\n styleUrls: ['./main.style.less'],\n encapsulation: ViewEncapsulation.None,\n // @note: This one was default on purpose, so we can test demo in default mode.\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiDocMain {\n private readonly doc = inject(DOCUMENT);\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly dir = inject(TUI_DOC_DIRECTION_ENABLED);\n protected readonly darkMode = inject(TUI_DARK_MODE);\n protected readonly theme = computed(() => (this.darkMode() ? 'dark' : null));\n protected readonly icon = computed(() =>\n this.darkMode() ? this.icons.light : this.icons.dark,\n );\n\n public changeTextDirection(): void {\n const dir = this.doc.documentElement.getAttribute('dir') ?? 'ltr';\n\n this.doc.documentElement.setAttribute('dir', dir === 'ltr' ? 'rtl' : 'ltr');\n }\n}\n","<tui-root [attr.tuiTheme]=\"theme()\">\n <div class=\"tui-doc-page\">\n <tui-doc-navigation class=\"tui-doc-navigation\">\n <ng-content select=\"tuiDocNavigation\" />\n </tui-doc-navigation>\n <div class=\"tui-doc-content\">\n <router-outlet class=\"tui-doc-outlet\" />\n </div>\n </div>\n <header tuiDocHeader>\n <ng-content select=\"tuiDocHeader\" />\n\n <button\n *ngIf=\"dir && icons.ltr\"\n appearance=\"outline\"\n aria-label=\"Switch directionality of the element's text\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"tui-doc-switch-direction\"\n [iconEnd]=\"icons.ltr.preview\"\n (click)=\"changeTextDirection()\"\n >\n <tui-icon [icon]=\"icons.ltr.direction\" />\n </button>\n\n <button\n appearance=\"secondary\"\n aria-label=\"Switch between dark and light mode\"\n size=\"s\"\n tuiIconButton\n type=\"button\"\n class=\"tui-doc-dark-mode-switch\"\n [iconStart]=\"icon()\"\n [style.border-radius.%]=\"100\"\n (click)=\"darkMode.set(!darkMode())\"\n ></button>\n </header>\n <ng-container ngProjectAs=\"tuiOverContent\">\n <ng-content select=\"tuiOverContent\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverDialogs\">\n <ng-content select=\"tuiOverDialogs\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverAlerts\">\n <ng-content select=\"tuiOverAlerts\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverDropdowns\">\n <ng-content select=\"tuiOverDropdowns\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverHints\">\n <ng-content select=\"tuiOverHints\" />\n </ng-container>\n</tui-root>\n","import {ElementRef, InjectionToken, type Provider} from '@angular/core';\nimport {type ActivatedRouteSnapshot} from '@angular/router';\nimport {TUI_DOC_SEE_ALSO} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport const TUI_DOC_TABS = new InjectionToken<\n TuiHandler<ActivatedRouteSnapshot, Record<string, PolymorpheusContent>>\n>(ngDevMode ? 'TUI_DOC_TABS' : '', {\n factory: () => () => ({}),\n});\n\n/**\n * Array if related page titles\n */\nexport const PAGE_SEE_ALSO = new InjectionToken<readonly string[]>(\n ngDevMode ? 'PAGE_SEE_ALSO' : '',\n);\n\nexport const PAGE_PROVIDERS: Provider[] = [\n {\n provide: PAGE_SEE_ALSO,\n deps: [ElementRef, TUI_DOC_SEE_ALSO],\n useFactory: (\n {nativeElement}: ElementRef,\n seeAlsoGroups: ReadonlyArray<readonly string[]>,\n ): readonly string[] => {\n const currentHeader = nativeElement.getAttribute('header');\n const groups =\n seeAlsoGroups.filter((group) => group.includes(currentHeader)) || [];\n\n const seeAlsoSet = new Set(\n groups\n .join()\n .split(',')\n .filter((component) => component && component !== currentHeader),\n );\n\n return Array.from(seeAlsoSet);\n },\n },\n];\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[pageTab]',\n})\nexport class TuiDocPageTabConnector {\n @Input()\n public pageTab?: string;\n\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\n}\n","import {KeyValuePipe, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n} from '@angular/core';\nimport {ActivatedRoute, RouterLink, RouterLinkActive} from '@angular/router';\nimport {TUI_DOC_DEFAULT_TABS, TUI_DOC_SUPPORT_LANGUAGE} from '@taiga-ui/addon-doc/tokens';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiReplacePipe} from '@taiga-ui/cdk/pipes/replace';\nimport {TuiAutoColorPipe} from '@taiga-ui/core/pipes/auto-color';\nimport {TuiChip} from '@taiga-ui/kit/components/chip';\nimport {TuiTabs} from '@taiga-ui/kit/components/tabs';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDocSeeAlso} from '../internal/see-also';\nimport {TuiDocSourceCode} from '../internal/source-code/source-code.component';\nimport {TuiDocLanguageSwitcher} from '../language-switcher';\nimport {PAGE_PROVIDERS, PAGE_SEE_ALSO, TUI_DOC_TABS} from './page.providers';\nimport {TuiDocPageTabConnector} from './page-tab.directive';\n\n@Component({\n selector: 'tui-doc-page',\n imports: [\n KeyValuePipe,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n PolymorpheusOutlet,\n RouterLink,\n RouterLinkActive,\n TuiAutoColorPipe,\n TuiChip,\n TuiDocLanguageSwitcher,\n TuiDocSeeAlso,\n TuiDocSourceCode,\n TuiReplacePipe,\n TuiTabs,\n ],\n templateUrl: './page.template.html',\n styleUrls: ['./page.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: PAGE_PROVIDERS,\n})\nexport class TuiDocPage {\n protected readonly tabs = inject(TUI_DOC_TABS)(inject(ActivatedRoute).snapshot);\n protected readonly supportLanguage = inject(TUI_DOC_SUPPORT_LANGUAGE);\n protected readonly defaultTabs = inject(TUI_DOC_DEFAULT_TABS);\n protected readonly from = / /g;\n protected readonly to = '_';\n\n @Input()\n public header = '';\n\n @Input()\n public package = '';\n\n @Input()\n public type = '';\n\n @Input()\n public tags: string[] = [];\n\n @Input()\n public path = '';\n\n @Input()\n public deprecated: boolean | '' = false;\n\n @ContentChildren(TuiDocPageTabConnector)\n public readonly tabConnectors: QueryList<TuiDocPageTabConnector> = EMPTY_QUERY;\n\n public activeItemIndex = 0;\n public readonly seeAlso = inject(PAGE_SEE_ALSO);\n\n public get showSeeAlso(): boolean {\n return !!this.seeAlso.length && this.activeItemIndex === 0;\n }\n}\n","<header class=\"t-header\">\n <h1\n *ngIf=\"header\"\n class=\"t-title\"\n >\n {{ header }}\n <tui-chip\n *ngIf=\"!!deprecated || deprecated === ''\"\n appearance=\"custom\"\n size=\"xs\"\n class=\"t-tag t-tag_deprecated\"\n >\n deprecated\n </tui-chip>\n <tui-chip\n *ngIf=\"package\"\n appearance=\"custom\"\n size=\"xs\"\n class=\"t-tag t-tag_package\"\n [style.background]=\"package | tuiAutoColor\"\n >\n {{ package }}\n </tui-chip>\n <tui-chip\n *ngFor=\"let tag of tags\"\n appearance=\"custom\"\n size=\"xs\"\n class=\"t-tag t-tag_package\"\n [style.background]=\"tag | tuiAutoColor\"\n >\n {{ tag }}\n </tui-chip>\n </h1>\n <tui-tabs-with-more\n *ngIf=\"tabConnectors.length\"\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabConnectors; first as first; index as index\">\n <ng-container *ngIf=\"tab.pageTab || defaultTabs[index] as tabName\">\n <a\n *tuiItem\n routerLinkActive\n tuiTab\n [routerLink]=\"first ? './' : (tabName | tuiReplace: from : to)\"\n [routerLinkActiveOptions]=\"{exact: first}\"\n >\n {{ tabName }}\n </a>\n </ng-container>\n </ng-container>\n <ng-container *ngFor=\"let tab of tabs | keyvalue\">\n <a\n *tuiItem\n routerLinkActive\n tuiTab\n [routerLink]=\"tab.key\"\n >\n {{ tab.key }}\n </a>\n </ng-container>\n </tui-tabs-with-more>\n\n <div\n *ngIf=\"package || path || type\"\n class=\"t-right-side\"\n >\n <tui-doc-source-code\n class=\"t-source-code\"\n [header]=\"header\"\n [package]=\"package\"\n [path]=\"path\"\n [type]=\"type\"\n />\n\n <tui-doc-language-switcher *ngIf=\"supportLanguage.has(header)\" />\n </div>\n</header>\n<div class=\"t-content\">\n <ng-content />\n <tui-doc-see-also\n *ngIf=\"showSeeAlso\"\n class=\"t-see-also\"\n [seeAlso]=\"seeAlso\"\n />\n <ng-container *ngFor=\"let tab of tabConnectors; index as index\">\n <ng-container\n *ngIf=\"index === activeItemIndex\"\n [ngTemplateOutlet]=\"tab.template\"\n />\n </ng-container>\n <ng-container *ngFor=\"let tab of tabs | keyvalue; index as index\">\n <ng-container *ngIf=\"index + tabConnectors.length === activeItemIndex\">\n <ng-container *polymorpheusOutlet=\"tab.value as text\">{{ text }}</ng-container>\n </ng-container>\n </ng-container>\n</div>\n","import {NgForOf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n type FactoryProvider,\n inject,\n InjectionToken,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {WA_LOCAL_STORAGE, WA_LOCATION} from '@ng-web-apis/common';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TUI_THEME} from '@taiga-ui/core/tokens';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\n\nexport const TUI_THEME_KEY = new InjectionToken(ngDevMode ? 'TUI_THEME_KEY' : '', {\n factory: () => 'data-tui-theme',\n});\nexport const TUI_THEMES = new InjectionToken<Record<string, string>>(\n ngDevMode ? 'TUI_THEMES' : '',\n {\n factory: () => ({}),\n },\n);\n\nexport function tuiDocThemeProvider(): FactoryProvider {\n return {\n provide: TUI_THEME,\n useFactory: () =>\n inject(WA_LOCAL_STORAGE)?.getItem(inject(TUI_THEME_KEY)) || 'Taiga UI',\n };\n}\n\n@Component({\n selector: 'tui-doc-theme-switcher',\n imports: [FormsModule, NgForOf, TuiDataList, TuiSelectModule],\n templateUrl: './theme-switcher.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocThemeSwitcher {\n private readonly storage = inject(WA_LOCAL_STORAGE);\n private readonly key = inject(TUI_THEME_KEY);\n private readonly location = inject(WA_LOCATION);\n\n protected readonly theme = inject(TUI_THEME);\n protected readonly themes = inject(TUI_THEMES);\n protected readonly keys = Object.keys(this.themes);\n\n public onTheme(theme: string): void {\n this.storage?.setItem(this.key, theme);\n this.location.reload();\n }\n}\n","<tui-select\n [ngModel]=\"theme\"\n (ngModelChange)=\"onTheme($event)\"\n>\n <ng-content />\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let key of keys\"\n tuiOption\n type=\"button\"\n [value]=\"key\"\n >\n <img\n alt=\"\"\n [src]=\"themes[key]\"\n [style.margin-inline-end.rem]=\"0.5\"\n [style.width.rem]=\"1.75\"\n />\n {{ key }}\n </button>\n </tui-data-list>\n</tui-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SERIALIZED_SUFFIX","i1","i3","i4","i6","i5","i7","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-doc-components.mjs","sources":["../../../projects/addon-doc/components/api/api.component.ts","../../../projects/addon-doc/components/api/api.template.html","../../../projects/addon-doc/components/documentation/pipes/inspect.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/type-reference.pipe.ts","../../../projects/addon-doc/components/api/api-item-number.directive.ts","../../../projects/addon-doc/components/api/api-item.component.ts","../../../projects/addon-doc/components/api/api-item.template.html","../../../projects/addon-doc/components/code/index.ts","../../../projects/addon-doc/components/code/index.html","../../../projects/addon-doc/components/copy/index.ts","../../../projects/addon-doc/components/copy/index.html","../../../projects/addon-doc/components/demo/index.ts","../../../projects/addon-doc/components/demo/index.html","../../../projects/addon-doc/components/doc-tab/index.ts","../../../projects/addon-doc/components/doc-tab/index.html","../../../projects/addon-doc/components/documentation/documentation-property-connector.directive.ts","../../../projects/addon-doc/components/documentation/pipes/cleaner.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/optional.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/strip-optional.pipe.ts","../../../projects/addon-doc/components/documentation/documentation.component.ts","../../../projects/addon-doc/components/documentation/documentation.template.html","../../../projects/addon-doc/components/documentation/pipes/color.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/opacity.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/primitive-polymorpheus-content.pipe.ts","../../../projects/addon-doc/components/example/example.options.ts","../../../projects/addon-doc/components/example/example-get-tabs.pipe.ts","../../../projects/addon-doc/components/example/example.component.ts","../../../projects/addon-doc/components/example/example.template.html","../../../projects/addon-doc/components/navigation/navigation.providers.ts","../../../projects/addon-doc/components/navigation/scroll-into-view.directive.ts","../../../projects/addon-doc/components/navigation/navigation.component.ts","../../../projects/addon-doc/components/navigation/navigation.template.html","../../../projects/addon-doc/components/internal/header/index.ts","../../../projects/addon-doc/components/internal/header/index.html","../../../projects/addon-doc/components/internal/see-also/index.ts","../../../projects/addon-doc/components/internal/see-also/index.html","../../../projects/addon-doc/components/internal/source-code/source-code.component.ts","../../../projects/addon-doc/components/internal/source-code/source-code.template.html","../../../projects/addon-doc/components/language-switcher/index.ts","../../../projects/addon-doc/components/language-switcher/index.html","../../../projects/addon-doc/components/main/main.component.ts","../../../projects/addon-doc/components/main/main.template.html","../../../projects/addon-doc/components/page/page.providers.ts","../../../projects/addon-doc/components/page/page-tab.directive.ts","../../../projects/addon-doc/components/page/page.component.ts","../../../projects/addon-doc/components/page/page.template.html","../../../projects/addon-doc/components/theme-switcher/theme-switcher.component.ts","../../../projects/addon-doc/components/theme-switcher/theme-switcher.template.html","../../../projects/addon-doc/components/taiga-ui-addon-doc-components.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_DOC_DOCUMENTATION_TEXTS} from '@taiga-ui/addon-doc/tokens';\n\n@Component({\n standalone: true,\n selector: 'table[tuiDocAPI]',\n templateUrl: './api.template.html',\n styleUrls: ['./api.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocAPI {\n protected readonly texts = inject(TUI_DOC_DOCUMENTATION_TEXTS);\n}\n","<thead>\n <tr>\n <th>{{ texts[2] }}</th>\n <th>{{ texts[1] }}</th>\n <th>{{ texts[3] }}</th>\n </tr>\n</thead>\n<ng-content />\n","import {inject, Pipe, type PipeTransform, TemplateRef} from '@angular/core';\nimport {tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {TUI_IS_E2E} from '@taiga-ui/cdk/tokens';\n\n@Pipe({\n standalone: true,\n name: 'tuiInspectAny',\n})\nexport class TuiInspectPipe implements PipeTransform {\n private readonly isE2E = inject(TUI_IS_E2E);\n\n public transform(value: unknown, depth = 2): string {\n if (this.isE2E && typeof value === 'function') {\n /**\n * @description:\n * When developing in production mode the webpack bundler minify\n * functions in different ways, then due to which the string content\n * of the function may differ from build to build, which can be to\n * various problems when screenshot testing on e2e.\n */\n return 'λ(x) => y';\n }\n\n return value instanceof TemplateRef ? 'TemplateRef' : tuiInspectAny(value, depth);\n }\n}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {\n TUI_DOC_TYPE_REFERENCE_HANDLER,\n TUI_DOC_TYPE_REFERENCE_PARSER,\n} from '@taiga-ui/addon-doc/tokens';\n\n@Pipe({\n standalone: true,\n name: 'tuiDocTypeReference',\n})\nexport class TuiDocTypeReferencePipe implements PipeTransform {\n private readonly parser = inject(TUI_DOC_TYPE_REFERENCE_PARSER);\n private readonly linkHandler = inject(TUI_DOC_TYPE_REFERENCE_HANDLER);\n\n public transform(original: string): ReadonlyArray<{\n type: string;\n extracted: string;\n reference: string | null;\n }> {\n return this.parser(original)\n .map(({type, extracted}) => ({\n type,\n extracted,\n reference: this.linkHandler?.(extracted) ?? null,\n }))\n .sort((a, b) => b.reference?.localeCompare(a.reference ?? '') ?? -1);\n }\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'tr[tuiDocAPIItem][type=number]',\n})\nexport class TuiDocAPINumberItem {\n @Input()\n public min: number | null = null;\n\n @Input()\n public max: number | null = null;\n}\n","import {Location, NgForOf, NgIf, NgSwitch, NgSwitchCase} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n type OnInit,\n Output,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute, type Params, UrlSerializer} from '@angular/router';\nimport {TUI_DOC_ICONS, TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {tuiCoerceValue, tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputNumber} from '@taiga-ui/kit/components/input-number';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\n\nimport {TuiInspectPipe} from '../documentation/pipes/inspect.pipe';\nimport {TuiDocTypeReferencePipe} from '../documentation/pipes/type-reference.pipe';\nimport {TuiDocAPINumberItem} from './api-item-number.directive';\n\nconst SERIALIZED_SUFFIX = '$';\n\n@Component({\n standalone: true,\n selector: 'tr[tuiDocAPIItem]',\n imports: [\n FormsModule,\n NgForOf,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n TuiChevron,\n TuiDataListWrapper,\n TuiDocTypeReferencePipe,\n TuiIcon,\n TuiInputNumber,\n TuiInspectPipe,\n TuiSwitch,\n TuiTextfield,\n ],\n templateUrl: './api-item.template.html',\n styleUrls: ['./api-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocAPIItem<T> implements OnInit {\n private readonly locationRef = inject(Location);\n private readonly activatedRoute = inject(ActivatedRoute);\n private readonly urlSerializer = inject(UrlSerializer);\n private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n private readonly alerts = inject(TuiAlertService);\n\n protected readonly icons = inject(TUI_DOC_ICONS);\n\n protected readonly numberItem = inject(TuiDocAPINumberItem, {\n self: true,\n optional: true,\n });\n\n @Input()\n public name = '';\n\n @Input()\n public type = '';\n\n @Input()\n public value?: T;\n\n @Input()\n public items: readonly T[] = [];\n\n @Output()\n public readonly valueChange = new EventEmitter<T>();\n\n public ngOnInit(): void {\n this.parseParams(this.activatedRoute.snapshot.queryParams);\n }\n\n public onValueChange(value: T): void {\n this.value = value;\n this.valueChange.emit(value);\n this.setQueryParam(value);\n }\n\n public emitEvent(event: unknown): void {\n console.info('emitEvent', event);\n\n const alert =\n !event || event?.toString() === '[object Object]'\n ? tuiInspectAny(event, 2)\n : (event as string);\n\n this.alerts.open(alert, {label: this.name}).subscribe();\n }\n\n private clearBrackets(value: string): string {\n return value.replaceAll(/[()[\\]]/g, '');\n }\n\n private parseParams(params: Params): void {\n const name = this.clearBrackets(this.name);\n const propertyValue: string | undefined = params[name];\n const propertyValueWithSuffix: number | string | undefined =\n params[`${name}${SERIALIZED_SUFFIX}`];\n\n if (!propertyValue && !propertyValueWithSuffix) {\n return;\n }\n\n let value =\n !!propertyValueWithSuffix && this.items\n ? this.items[propertyValueWithSuffix as number]\n : tuiCoerceValue(propertyValue);\n\n if (this.type === 'string' && tuiIsNumber(value)) {\n value = value.toString();\n }\n\n this.onValueChange(value as T);\n }\n\n private setQueryParam(value: T | boolean | number | string | null): void {\n const tree = this.urlSerializer.parse(this.locationRef.path());\n\n const isValueAvailableByKey = value instanceof Object;\n const computedValue =\n isValueAvailableByKey && this.items ? this.items.indexOf(value as T) : value;\n\n const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';\n const propName = this.clearBrackets(this.name) + suffix;\n\n tree.queryParams = {\n ...tree.queryParams,\n [propName]: computedValue,\n };\n\n this.locationRef.go(this.urlStateHandler(tree));\n }\n}\n","<td class=\"t-td\">\n <code\n class=\"t-name\"\n [class.t-name_banana]=\"name.startsWith('[(')\"\n [class.t-name_input]=\"name.startsWith('[')\"\n [class.t-name_output]=\"name.startsWith('(')\"\n >\n {{ name }}\n </code>\n <ng-content />\n</td>\n<td class=\"t-td\">\n <code class=\"t-type\">\n <ng-container *ngFor=\"let item of type | tuiDocTypeReference; let last = last\">\n <a\n *ngIf=\"item.reference; else default\"\n target=\"_blank\"\n class=\"t-reference\"\n [attr.href]=\"item.reference\"\n >\n {{ item.type }}\n <tui-icon\n *ngIf=\"icons.externalLink\"\n [icon]=\"icons.externalLink\"\n [style.font-size.rem]=\"1\"\n />\n </a>\n <ng-template #default>\n {{ item.type }}\n </ng-template>\n <span *ngIf=\"!last\"> | </span>\n </ng-container>\n </code>\n</td>\n<td class=\"t-td\">\n <tui-textfield\n *ngIf=\"items.length; else noItems\"\n tuiChevron\n tuiTextfieldSize=\"m\"\n class=\"t-input\"\n [content]=\"content\"\n [tuiTextfieldCleaner]=\"type.includes('null') || type.includes('PolymorpheusContent')\"\n >\n <select\n placeholder=\"null\"\n tuiTextfield\n [ngModel]=\"value ?? null\"\n (ngModelChange)=\"onValueChange($event)\"\n ></select>\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n [itemContent]=\"content\"\n [items]=\"items\"\n />\n </tui-textfield>\n <ng-template\n #content\n let-data\n >\n <code [style.margin]=\"0\">{{ data | tuiInspectAny }}</code>\n </ng-template>\n <ng-template #noItems>\n <ng-container\n *ngIf=\"value !== undefined\"\n [ngSwitch]=\"type\"\n >\n <input\n *ngSwitchCase=\"'boolean'\"\n tuiSwitch\n type=\"checkbox\"\n [id]=\"name\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n />\n\n <tui-textfield\n *ngSwitchCase=\"'string'\"\n tuiTextfieldSize=\"m\"\n class=\"t-input\"\n >\n <input\n tuiTextfield\n [id]=\"name\"\n [ngModel]=\"value || ''\"\n (ngModelChange)=\"onValueChange($event)\"\n />\n </tui-textfield>\n\n <tui-textfield\n *ngSwitchCase=\"'number'\"\n tuiTextfieldSize=\"m\"\n >\n <input\n tuiInputNumber\n [id]=\"name\"\n [max]=\"numberItem?.max ?? null\"\n [min]=\"numberItem?.min ?? null\"\n [ngModel]=\"value\"\n [step]=\"1\"\n (ngModelChange)=\"onValueChange($event || 0)\"\n />\n </tui-textfield>\n </ng-container>\n </ng-template>\n</td>\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {isPlatformServer, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n PLATFORM_ID,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR,\n TUI_DOC_ICONS,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\nimport {tuiRawLoad} from '@taiga-ui/addon-doc/utils';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Highlight} from 'ngx-highlightjs';\nimport {BehaviorSubject, map, startWith, Subject, switchMap, timer} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-code',\n imports: [ClipboardModule, Highlight, NgForOf, NgIf, TuiButton],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.visibility]': 'isServer ? \"hidden\" : \"visible\"',\n '[class._has-filename]': 'hasFilename',\n },\n})\nexport class TuiDocCode {\n private readonly icons = inject(TUI_DOC_ICONS);\n private readonly rawLoader$$ = new BehaviorSubject<TuiRawLoaderContent>('');\n\n protected readonly isServer = isPlatformServer(inject(PLATFORM_ID));\n\n protected readonly markdownCodeProcessor: TuiHandler<string, readonly string[]> =\n inject(TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR);\n\n protected readonly copy$ = new Subject<void>();\n protected readonly copyText = toSignal(\n inject(TUI_COPY_TEXTS).pipe(map(([copy]) => copy)),\n );\n\n protected readonly icon = toSignal(\n this.copy$.pipe(\n switchMap(() =>\n timer(2000).pipe(\n map(() => this.icons.copy),\n startWith(this.icons.check),\n ),\n ),\n ),\n {initialValue: this.icons.copy},\n );\n\n protected readonly processor = toSignal(\n this.rawLoader$$.pipe(\n switchMap(tuiRawLoad),\n map((value: string) => this.markdownCodeProcessor(value)),\n ),\n {initialValue: []},\n );\n\n @Input()\n public filename = '';\n\n @Input()\n public set code(code: TuiRawLoaderContent) {\n this.rawLoader$$.next(code);\n }\n\n public get hasFilename(): boolean {\n return !!this.filename;\n }\n}\n","<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{ filename }}\n</p>\n<pre\n *ngFor=\"let content of processor()\"\n class=\"t-code\"\n>\n <code [lineNumbers]=\"true\" [highlight]=\"content\"></code>\n <div class=\"t-code-actions\">\n <button\n tuiIconButton\n type=\"button\"\n appearance=\"outline-grayscale\"\n size=\"s\"\n class=\"t-copy-button\"\n [iconStart]=\"icon()\"\n [cdkCopyToClipboard]=\"content\"\n (click)=\"copy$.next()\"\n >\n {{ copyText()}}\n </button>\n <ng-content />\n </div>\n</pre>\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nconst COPIED_TIMEOUT = 1500;\n\n@Component({\n standalone: true,\n selector: 'tui-doc-copy',\n imports: [NgIf, TuiButton],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocCopy {\n private readonly copy$ = new Subject<void>();\n\n protected readonly texts = toSignal(inject(TUI_COPY_TEXTS), {\n initialValue: ['', ''] as const,\n });\n\n protected readonly copied = toSignal(\n this.copy$.pipe(\n switchMap(() =>\n timer(COPIED_TIMEOUT).pipe(map(TUI_FALSE_HANDLER), startWith(true)),\n ),\n ),\n {initialValue: false},\n );\n\n protected onClick(): void {\n this.copy$.next();\n }\n}\n","<button\n appearance=\"\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-copy\"\n (click)=\"onClick()\"\n>\n <span class=\"t-content\">\n <span\n class=\"t-initial\"\n [attr.data-text]=\"copied() ? '' : texts()[0]\"\n >\n <ng-container *ngIf=\"!copied()\">\n <ng-content />\n </ng-container>\n </span>\n {{ copied() ? texts()[1] : '' }}\n </span>\n</button>\n","import {JsonPipe, Location, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n type ElementRef,\n inject,\n Input,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport {type Params, UrlSerializer, type UrlTree} from '@angular/router';\nimport {TUI_DOC_DEMO_TEXTS, TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDemoParams} from '@taiga-ui/addon-doc/types';\nimport {tuiCleanObject, tuiCoerceValueIsTrue} from '@taiga-ui/addon-doc/utils';\nimport {TuiResizable, TuiResizer} from '@taiga-ui/cdk/directives/resizer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiToInteger} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {TuiGroup} from '@taiga-ui/core/directives/group';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {skip} from 'rxjs';\n\nconst MIN_WIDTH = 160;\n\n@Component({\n standalone: true,\n selector: 'tui-doc-demo',\n imports: [\n FormsModule,\n JsonPipe,\n NgIf,\n NgTemplateOutlet,\n ReactiveFormsModule,\n TuiButton,\n TuiChevron,\n TuiDataListWrapper,\n TuiExpand,\n TuiGroup,\n TuiResizable,\n TuiResizer,\n TuiSelectModule,\n TuiSwitch,\n TuiTextfieldControllerModule,\n ],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._sticky]': 'sticky',\n '(window:resize)': 'onResize()',\n '(document:mouseup.zoneless)': 'onMouseUp()',\n },\n})\nexport class TuiDocDemo implements AfterViewInit {\n @ViewChild(TuiResizable, {static: true})\n private readonly resizable?: ElementRef<HTMLElement>;\n\n @ViewChild('content', {static: true})\n private readonly content?: ElementRef<HTMLElement>;\n\n @ViewChild('resizer', {static: true})\n private readonly resizer?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly locationRef = inject(Location);\n private readonly urlSerializer = inject(UrlSerializer);\n private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n private readonly darkMode = inject(TUI_DARK_MODE);\n\n @ContentChild(TemplateRef)\n protected readonly template: TemplateRef<Record<string, unknown>> | null = null;\n\n protected readonly rendered = signal(false);\n\n protected theme = computed(() => (this.dark() ? 'dark' : 'light'));\n\n protected dark = signal(\n tuiCoerceValueIsTrue(this.params.darkMode ?? this.darkMode()),\n );\n\n protected readonly $ = toObservable(this.darkMode)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((mode) => this.onModeChange(mode));\n\n protected testForm?: FormGroup;\n\n protected readonly updateOnVariants = ['change', 'blur', 'submit'] as const;\n\n protected updateOn: 'blur' | 'change' | 'submit' =\n this.params.updateOn || this.updateOnVariants[0];\n\n protected opaque = tuiCoerceValueIsTrue(this.params.sandboxOpaque ?? true);\n protected expanded = tuiCoerceValueIsTrue(this.params.sandboxExpanded ?? false);\n protected sandboxWidth = tuiToInteger(this.params.sandboxWidth);\n protected readonly texts = inject(TUI_DOC_DEMO_TEXTS);\n\n @Input()\n public control: AbstractControl | null = null;\n\n @Input()\n public sticky = true;\n\n public ngAfterViewInit(): void {\n this.createForm();\n this.updateWidth(this.sandboxWidth + this.delta);\n this.rendered.set(true);\n }\n\n protected onResize(): void {\n this.updateWidth();\n this.onMouseUp();\n }\n\n protected onMouseUp(): void {\n this.updateUrl({sandboxWidth: this.sandboxWidth});\n }\n\n protected onModeChange(darkMode: boolean): void {\n this.dark.set(darkMode);\n this.updateUrl({sandboxWidth: this.sandboxWidth, darkMode});\n }\n\n protected toggleDetails(): void {\n this.expanded = !this.expanded;\n this.updateUrl({sandboxExpanded: this.expanded});\n }\n\n protected changeOpaque(opaque: boolean): void {\n this.opaque = opaque;\n this.updateUrl({sandboxOpaque: this.opaque});\n }\n\n protected updateOnChange(updateOn: 'blur' | 'change' | 'submit'): void {\n this.updateOn = updateOn;\n this.updateUrl({updateOn});\n this.createForm();\n }\n\n protected updateWidth(width = NaN): void {\n if (!this.resizer || !this.resizable || !this.content) {\n return;\n }\n\n const safe = width || this.resizable.nativeElement.clientWidth;\n const total = this.el.clientWidth;\n const clamped = Math.round(tuiClamp(safe, MIN_WIDTH, total)) - this.delta;\n const validated = safe < total ? clamped : NaN;\n\n this.resizer.nativeElement.textContent = String(clamped || '-');\n this.resizable.nativeElement.style.width = validated ? tuiPx(safe) : '';\n this.sandboxWidth = validated;\n }\n\n private get delta(): number {\n return this.resizable && this.content\n ? this.resizable.nativeElement.clientWidth -\n this.content.nativeElement.clientWidth\n : 0;\n }\n\n private get params(): Params | TuiDemoParams {\n return this.getUrlTree().queryParams;\n }\n\n @tuiPure\n private updateUrl(params: TuiDemoParams): void {\n const tree = this.getUrlTree();\n const {queryParams} = tree;\n\n delete queryParams.sandboxWidth;\n\n tree.queryParams = {\n ...queryParams,\n ...tuiCleanObject({...params}),\n };\n\n this.locationRef.go(this.urlStateHandler(tree));\n }\n\n private createForm(): void {\n const {control, updateOn} = this;\n\n if (control) {\n this.testForm = new FormGroup({testValue: control}, {updateOn});\n }\n }\n\n private getUrlTree(): UrlTree {\n return this.urlSerializer.parse(this.locationRef.path());\n }\n}\n","<div class=\"t-settings\">\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"dark()\"\n (ngModelChange)=\"onModeChange($event)\"\n />\n {{ texts[0] }}\n </label>\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"opaque\"\n (ngModelChange)=\"changeOpaque($event)\"\n />\n {{ texts[1] }}\n </label>\n</div>\n<div\n tuiResizable\n class=\"t-wrapper\"\n [attr.tuiTheme]=\"theme()\"\n [class.t-wrapper_transparent]=\"!opaque\"\n [style.visibility]=\"rendered() ? 'visible' : 'hidden'\"\n>\n <div class=\"t-content\">\n <div\n #content\n id=\"demo-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\" />\n </div>\n <button\n automation-id=\"tui-demo-button__toggle-details\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiChevron]=\"expanded\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\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 automation-id=\"tui-demo-select__expand-update-on\"\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 />\n </tui-select>\n <button\n automation-id=\"tui-demo-button__reset-state\"\n size=\"s\"\n tuiButton\n type=\"reset\"\n [style.flex]=\"'0 0 auto'\"\n >\n Reset\n </button>\n <button\n automation-id=\"tui-demo-button__submit-state\"\n size=\"s\"\n tuiButton\n type=\"submit\"\n [style.flex]=\"'0 0 auto'\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content />\n </div>\n </div>\n <div\n #resizer\n class=\"t-resizer\"\n [tuiResizer]=\"[1, 0]\"\n (tuiSizeChange)=\"updateWidth($event[0])\"\n ></div>\n</div>\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-tab',\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocTab {\n @Input()\n public src = '';\n}\n","<div class=\"t-tab\">\n <img\n alt=\"Documentation tab icon\"\n class=\"t-icon\"\n [src]=\"src\"\n />\n <ng-content />\n</div>\n","import {Location} from '@angular/common';\nimport {\n Directive,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n type OnInit,\n Output,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport {ActivatedRoute, type Params, UrlSerializer} from '@angular/router';\nimport {TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {tuiCleanObject, tuiCoerceValue, tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {Subject} from 'rxjs';\n\nconst SERIALIZED_SUFFIX = '$';\n\nexport type TuiDocumentationPropertyType = 'input-output' | 'input' | 'output' | null;\n\n// @bad TODO: refactor output and value sync\n@Directive({\n standalone: true,\n selector: 'ng-template[documentationPropertyName]',\n exportAs: 'documentationProperty',\n})\nexport class TuiDocDocumentationPropertyConnector<T> implements OnInit, OnChanges {\n private readonly locationRef = inject(Location);\n private readonly activatedRoute = inject(ActivatedRoute);\n private readonly urlSerializer = inject(UrlSerializer);\n private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n private readonly alerts = inject(TuiAlertService);\n\n @Input()\n public documentationPropertyName = '';\n\n @Input()\n public documentationPropertyMode: TuiDocumentationPropertyType = null;\n\n @Input()\n public documentationPropertyType = '';\n\n @Input()\n public documentationPropertyValue!: T;\n\n @Input()\n public documentationPropertyDeprecated = false;\n\n @Input()\n public documentationPropertyValues: readonly T[] | null = null;\n\n @Output()\n public readonly documentationPropertyValueChange = new EventEmitter<T>();\n\n public readonly changed$ = new Subject<void>();\n\n public readonly emits = signal(1);\n\n public readonly template = inject(TemplateRef);\n\n public get attrName(): string {\n switch (this.documentationPropertyMode) {\n case 'input':\n return `[${this.documentationPropertyName}]`;\n case 'input-output':\n return `[(${this.documentationPropertyName})]`;\n case 'output':\n return `(${this.documentationPropertyName})`;\n default:\n return this.documentationPropertyName;\n }\n }\n\n public get shouldShowValues(): boolean {\n return this.documentationPropertyMode !== 'output';\n }\n\n public get hasItems(): boolean {\n return !!this.documentationPropertyValues;\n }\n\n public ngOnInit(): void {\n this.parseParams(this.activatedRoute.snapshot.queryParams);\n }\n\n public ngOnChanges(): void {\n this.changed$.next();\n }\n\n public onValueChange(value: T): void {\n this.documentationPropertyValue = value;\n this.documentationPropertyValueChange.emit(value);\n this.setQueryParam(value);\n }\n\n public emitEvent(event: unknown): void {\n // For more convenient debugging\n console.info(this.attrName, event);\n\n this.emits.update((x) => ++x);\n\n let content: string | undefined;\n\n if (event !== undefined) {\n content = tuiInspectAny(event, 2);\n }\n\n this.alerts.open(content, {label: this.attrName}).subscribe();\n }\n\n private parseParams(params: Params): void {\n const propertyValue: string | undefined = params[this.documentationPropertyName];\n const propertyValueWithSuffix: number | string | undefined =\n params[`${this.documentationPropertyName}${SERIALIZED_SUFFIX}`];\n\n if (!propertyValue && !propertyValueWithSuffix) {\n return;\n }\n\n let value =\n !!propertyValueWithSuffix && this.documentationPropertyValues\n ? this.documentationPropertyValues[propertyValueWithSuffix as number]\n : tuiCoerceValue(propertyValue);\n\n if (this.documentationPropertyType === 'string' && tuiIsNumber(value)) {\n value = value.toString();\n }\n\n this.onValueChange(value as T);\n }\n\n private setQueryParam(value: unknown): void {\n const tree = this.urlSerializer.parse(this.locationRef.path());\n const isValueAvailableByKey = value instanceof Object;\n const name = this.documentationPropertyName;\n const nameWithSuffix = `${name}${SERIALIZED_SUFFIX}`;\n\n const computedValue =\n isValueAvailableByKey && this.documentationPropertyValues\n ? this.documentationPropertyValues.indexOf(value as T)\n : value;\n\n tree.queryParams = tuiCleanObject({\n ...tree.queryParams,\n /**\n * Caretaker note: reset previous conflicted param in route\n * issue: https://github.com/taiga-family/taiga-ui/issues/9764\n */\n ...(isValueAvailableByKey\n ? {\n [nameWithSuffix]: computedValue,\n [name]: undefined,\n }\n : {\n [nameWithSuffix]: undefined,\n [name]: computedValue,\n }),\n });\n\n this.locationRef.go(this.urlStateHandler(tree));\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiShowCleanerPipe',\n})\nexport class TuiShowCleanerPipe implements PipeTransform {\n public transform(type: string): boolean {\n return type.includes('null');\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiIsOptionalPipe',\n})\nexport class TuiIsOptionalPipe implements PipeTransform {\n public transform(name: string): boolean {\n return name.includes('?');\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiStripOptionalPipe',\n})\nexport class TuiStripOptionalPipe implements PipeTransform {\n public transform(name: string): string {\n return name.replace('?', '');\n }\n}\n","import {animate, style, transition, trigger} from '@angular/animations';\nimport {NgForOf, NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {\n TUI_DOC_DOCUMENTATION_TEXTS,\n TUI_DOC_EXCLUDED_PROPERTIES,\n} from '@taiga-ui/addon-doc/tokens';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TuiFilterPipe} from '@taiga-ui/cdk/pipes/filter';\nimport {TuiToArrayPipe} from '@taiga-ui/cdk/pipes/to-array';\nimport {type TuiMatcher} from '@taiga-ui/cdk/types';\nimport {TuiNotification} from '@taiga-ui/core/components/notification';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiBadge} from '@taiga-ui/kit/components/badge';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputNumber} from '@taiga-ui/kit/components/input-number';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {merge, switchMap} from 'rxjs';\n\nimport {TuiDocDocumentationPropertyConnector} from './documentation-property-connector.directive';\nimport {TuiShowCleanerPipe} from './pipes/cleaner.pipe';\nimport {TuiInspectPipe} from './pipes/inspect.pipe';\nimport {TuiIsOptionalPipe} from './pipes/optional.pipe';\nimport {TuiStripOptionalPipe} from './pipes/strip-optional.pipe';\nimport {TuiDocTypeReferencePipe} from './pipes/type-reference.pipe';\n\n// @bad TODO subscribe propertiesConnectors changes\n// @bad TODO refactor to make more flexible\n@Component({\n standalone: true,\n selector: 'tui-doc-documentation',\n imports: [\n FormsModule,\n NgForOf,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n NgTemplateOutlet,\n TuiBadge,\n TuiDataListWrapper,\n TuiDocTypeReferencePipe,\n TuiDropdown,\n TuiFilterPipe,\n TuiInputNumber,\n TuiInspectPipe,\n TuiIsOptionalPipe,\n TuiNotification,\n TuiSelectModule,\n TuiShowCleanerPipe,\n TuiStripOptionalPipe,\n TuiSwitch,\n TuiTextfield,\n TuiTextfieldControllerModule,\n TuiToArrayPipe,\n ],\n templateUrl: './documentation.template.html',\n styleUrls: ['./documentation.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiScrollbarOptionsProvider({mode: 'hover'})],\n animations: [\n trigger('emitEvent', [\n transition(':increment', [style({opacity: 1}), animate('500ms ease-in')]),\n ]),\n ],\n})\nexport class TuiDocDocumentation implements AfterContentInit {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n\n @ContentChildren(TuiDocDocumentationPropertyConnector)\n protected propertiesConnectors: QueryList<\n TuiDocDocumentationPropertyConnector<unknown>\n > = EMPTY_QUERY;\n\n protected readonly texts = inject(TUI_DOC_DOCUMENTATION_TEXTS);\n protected readonly excludedProperties = inject(TUI_DOC_EXCLUDED_PROPERTIES);\n protected activeItemIndex = 0;\n\n @Input()\n public heading = '';\n\n @Input()\n public showValues = true;\n\n @Input()\n public isAPI = false;\n\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.propertiesConnectors)\n .pipe(\n switchMap((items) => merge(...items.map(({changed$}) => changed$))),\n tuiWatch(this.cdr),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n protected get type(): string {\n return this.isAPI ? this.texts[0] : this.texts[1];\n }\n\n protected matcher: TuiMatcher<\n [TuiDocDocumentationPropertyConnector<unknown>, Set<string>]\n > = (item, exclusions) => !exclusions.has(item.documentationPropertyName);\n}\n","<h1\n *ngIf=\"heading\"\n class=\"t-heading\"\n>\n {{ heading }}\n</h1>\n<ng-content />\n<ng-container *ngIf=\"propertiesConnectors | tuiToArray | tuiFilter: matcher : excludedProperties as properties\">\n <table\n *ngIf=\"properties.length\"\n class=\"t-table\"\n >\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-th_value\"\n >\n {{ texts[3] }}\n </th>\n </tr>\n <tr\n *ngFor=\"let propertyConnector of properties\"\n class=\"t-row\"\n [class.t-deprecated]=\"propertyConnector.documentationPropertyDeprecated\"\n >\n <td class=\"t-cell t-no-overflow\">\n <div\n automation-id=\"tui-documentation__property-name\"\n class=\"t-property t-additional-info\"\n >\n <code\n *ngIf=\"propertyConnector.attrName\"\n class=\"t-property-code\"\n [style.color]=\"'var(--tui-background-accent-2-pressed)'\"\n >\n {{ propertyConnector.attrName | tuiStripOptionalPipe }}\n </code>\n <tui-badge\n *ngIf=\"propertyConnector.attrName | tuiIsOptionalPipe\"\n appearance=\"neutral\"\n size=\"s\"\n >\n Optional\n </tui-badge>\n <tui-badge\n *ngIf=\"propertyConnector.documentationPropertyDeprecated\"\n appearance=\"negative\"\n size=\"s\"\n >\n Deprecated\n </tui-badge>\n </div>\n <ng-container [ngTemplateOutlet]=\"propertyConnector.template\" />\n </td>\n <td class=\"t-cell t-no-overflow\">\n <span class=\"type\">\n <code class=\"t-code-type\">\n <ng-container\n *ngFor=\"\n let item of propertyConnector.documentationPropertyType | tuiDocTypeReference;\n let last = last\n \"\n >\n <a\n *ngIf=\"item.reference; else default\"\n target=\"_blank\"\n class=\"t-code-reference\"\n [attr.href]=\"item.reference\"\n >\n {{ item.type }}\n </a>\n <ng-template #default>\n {{ item.type }}\n </ng-template>\n <span *ngIf=\"!last\"> | </span>\n </ng-container>\n </code>\n </span>\n </td>\n <td\n *ngIf=\"showValues\"\n class=\"t-cell t-cell_value\"\n >\n <ng-container *ngIf=\"propertyConnector.shouldShowValues; else elseEmitter\">\n <tui-select\n *ngIf=\"propertyConnector.hasItems; else noItems\"\n tuiDropdownLimitWidth=\"min\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [tuiTextfieldCleaner]=\"propertyConnector.documentationPropertyType | tuiShowCleanerPipe\"\n [tuiTextfieldLabelOutside]=\"true\"\n [valueContent]=\"selectContent\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n >\n <code class=\"t-exception\">null</code>\n <tui-data-list-wrapper\n *tuiDataList\n class=\"t-data-list\"\n [itemContent]=\"selectContent\"\n [items]=\"propertyConnector.documentationPropertyValues\"\n />\n </tui-select>\n <ng-template\n #selectContent\n let-data\n >\n <code>{{ data | tuiInspectAny }}</code>\n </ng-template>\n\n <ng-template #noItems>\n <ng-container [ngSwitch]=\"propertyConnector.documentationPropertyType\">\n <input\n *ngSwitchCase=\"'boolean'\"\n tuiSwitch\n type=\"checkbox\"\n class=\"t-switch\"\n [id]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [showIcons]=\"true\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n />\n\n <tui-textfield\n *ngSwitchCase=\"'string'\"\n tuiTextfieldSize=\"m\"\n >\n <input\n tuiTextfield\n [id]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue || ''\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n />\n </tui-textfield>\n\n <tui-textfield\n *ngSwitchCase=\"'number'\"\n tuiTextfieldSize=\"m\"\n >\n <input\n tuiInputNumber\n [id]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [step]=\"1\"\n (ngModelChange)=\"propertyConnector.onValueChange($event || 0)\"\n />\n </tui-textfield>\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()\"\n >\n Emit!\n </tui-notification>\n </ng-template>\n </td>\n </tr>\n </table>\n</ng-container>\n","import {Pipe, type PipeTransform} from '@angular/core';\nimport {tuiRgbToHex} from '@taiga-ui/cdk/utils/color';\n\n@Pipe({\n standalone: true,\n name: 'tuiGetColorPipe',\n})\nexport class TuiGetColorPipe implements PipeTransform {\n public transform(color: string): string {\n if (color.length === 4) {\n return color\n .split('')\n .reduce<string[]>((result, current) => [...result, current, current], [])\n .join('')\n .replace('#', '');\n }\n\n if (color.startsWith('#')) {\n return color;\n }\n\n if (color === 'transparent') {\n return '#000000';\n }\n\n const parsed = color\n .replace('rgb(', '')\n .replace('rgba(', '')\n .replace(')', '')\n .replace(' ', '')\n .split(',')\n .map((v) => Number.parseInt(v, 10)) as [number, number, number];\n\n return tuiRgbToHex(...parsed);\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiGetOpacity',\n})\nexport class TuiGetOpacityPipe implements PipeTransform {\n public transform(color: string): number {\n if (color.startsWith('#') || color.startsWith('rgb(')) {\n return 100;\n }\n\n if (color === 'transparent') {\n return 0;\n }\n\n const lastComma = color.lastIndexOf(',');\n const parsed = color\n .slice(lastComma)\n .replace(')', '')\n .replace(' ', '')\n .replace(',', '');\n\n return Math.round(Number.parseFloat(parsed) * 100);\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\nimport {tuiIsNumber, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Pipe({\n standalone: true,\n name: 'tuiIsPrimitivePolymorpheusContentPipe',\n})\nexport class TuiIsPrimitivePolymorpheusContentPipe implements PipeTransform {\n public transform(value: unknown): boolean {\n return tuiIsString(value) || tuiIsNumber(value);\n }\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {TUI_EXAMPLE_PRIMARY_FILE_NAME} from '@taiga-ui/addon-doc/types';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport interface TuiDocExampleOptions {\n codeEditorVisibilityHandler: TuiBooleanHandler<Record<string, string>>;\n fullsize: boolean;\n tabTitles: Map<unknown, PolymorpheusContent>;\n}\n\nexport const TUI_DOC_EXAMPLE_DEFAULT_OPTIONS: TuiDocExampleOptions = {\n codeEditorVisibilityHandler: (files) =>\n Boolean(\n files[TUI_EXAMPLE_PRIMARY_FILE_NAME.TS] &&\n files[TUI_EXAMPLE_PRIMARY_FILE_NAME.HTML],\n ),\n tabTitles: new Map(),\n fullsize: true,\n};\n\n/**\n * Default parameters for DocExample component\n */\nexport const TUI_DOC_EXAMPLE_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_DOC_EXAMPLE_OPTIONS' : '',\n {\n factory: () => TUI_DOC_EXAMPLE_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiDocExampleOptionsProvider(\n options: Partial<TuiDocExampleOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_DOC_EXAMPLE_OPTIONS,\n options,\n TUI_DOC_EXAMPLE_DEFAULT_OPTIONS,\n );\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'tuiDocExampleGetTabs',\n})\nexport class TuiDocExampleGetTabsPipe implements PipeTransform {\n public transform(content: Record<string, string>, defaultTab: string): string[] {\n return [defaultTab, ...Object.keys(content).filter((tab) => content[tab])];\n }\n}\n","import {Clipboard} from '@angular/cdk/clipboard';\nimport {AsyncPipe, DOCUMENT, NgComponentOutlet, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n type Type,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute, RouterLink, RouterLinkActive} from '@angular/router';\nimport {WA_LOCATION} from '@ng-web-apis/common';\nimport {\n TUI_DOC_CODE_ACTIONS,\n TUI_DOC_CODE_EDITOR,\n TUI_DOC_EXAMPLE_CONTENT_PROCESSOR,\n TUI_DOC_EXAMPLE_TEXTS,\n TUI_DOC_ICONS,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\nimport {tuiRawLoadRecord} from '@taiga-ui/addon-doc/utils';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiFullscreen} from '@taiga-ui/core/components/fullscreen';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {TuiTabs} from '@taiga-ui/kit/components/tabs';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {BehaviorSubject, map, switchMap} from 'rxjs';\n\nimport {TuiDocCode} from '../code';\nimport {TUI_DOC_EXAMPLE_OPTIONS} from './example.options';\nimport {TuiDocExampleGetTabsPipe} from './example-get-tabs.pipe';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-example',\n imports: [\n AsyncPipe,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n RouterLink,\n RouterLinkActive,\n TuiButton,\n TuiDocCode,\n TuiDocExampleGetTabsPipe,\n TuiFullscreen,\n TuiLet,\n TuiLink,\n TuiLoader,\n TuiMapperPipe,\n TuiTabs,\n ],\n templateUrl: './example.template.html',\n styleUrls: ['./example.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n '[class._fullsize]': 'fullsize',\n },\n})\nexport class TuiDocExample {\n private readonly clipboard = inject(Clipboard);\n private readonly alerts = inject(TuiAlertService);\n private readonly location = inject(WA_LOCATION);\n private readonly copyTexts$ = inject(TUI_COPY_TEXTS);\n private readonly processContent = inject(TUI_DOC_EXAMPLE_CONTENT_PROCESSOR);\n\n private readonly rawLoader$$ = new BehaviorSubject<\n Record<string, TuiRawLoaderContent>\n >({});\n\n protected readonly fullscreenEnabled = inject(DOCUMENT).fullscreenEnabled;\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly options = inject(TUI_DOC_EXAMPLE_OPTIONS);\n protected readonly texts = inject(TUI_DOC_EXAMPLE_TEXTS);\n protected readonly codeEditor = inject(TUI_DOC_CODE_EDITOR, {optional: true});\n protected readonly codeActions =\n inject<ReadonlyArray<PolymorpheusContent<TuiContext<string>>>>(\n TUI_DOC_CODE_ACTIONS,\n );\n\n protected readonly route = inject(ActivatedRoute);\n\n protected readonly defaultTabIndex = 0;\n protected readonly defaultTab = this.texts[this.defaultTabIndex];\n protected activeItemIndex = this.defaultTabIndex;\n protected fullscreen = false;\n\n protected readonly copy = toSignal(this.copyTexts$.pipe(map(([copy]) => copy)), {\n initialValue: '',\n });\n\n protected readonly loading = signal(false);\n\n protected readonly processor = toSignal(\n this.rawLoader$$.pipe(\n switchMap(tuiRawLoadRecord),\n map((value) => this.processContent(value)),\n ),\n {initialValue: {} as unknown as Record<string, string>},\n );\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public heading: PolymorpheusContent;\n\n @Input()\n public description: PolymorpheusContent;\n\n @Input()\n public fullsize = inject(TUI_DOC_EXAMPLE_OPTIONS).fullsize;\n\n @Input()\n public componentName: string = this.location.pathname.slice(1);\n\n @Input()\n public component?: Promise<Type<unknown>>;\n\n @Input()\n public set content(content: Record<string, TuiRawLoaderContent>) {\n this.rawLoader$$.next(content);\n }\n\n protected readonly visible = (files: Record<string, string>): boolean =>\n Boolean(this.codeEditor && this.options.codeEditorVisibilityHandler(files));\n\n protected getTabTitle(fileName: string): PolymorpheusContent {\n return this.options.tabTitles.get(fileName) || fileName;\n }\n\n protected copyExampleLink(target: EventTarget | null): void {\n this.clipboard.copy((target as HTMLAnchorElement | null)?.href ?? '');\n this.alerts\n .open(this.texts[1], {label: this.texts[2], appearance: 'positive'})\n .subscribe();\n }\n\n protected edit(files: Record<string, string>): void {\n this.loading.set(true);\n this.codeEditor\n ?.edit(this.componentName, this.id || '', files)\n .finally(() => this.loading.set(false));\n }\n}\n","<div class=\"t-title-block\">\n <h2\n *ngIf=\"heading\"\n class=\"t-title\"\n >\n <span\n *polymorpheusOutlet=\"heading as text\"\n [textContent]=\"text\"\n ></span>\n </h2>\n <a\n *ngIf=\"id\"\n routerLink=\".\"\n routerLinkActive=\"t-link-active\"\n tuiLink\n type=\"button\"\n class=\"t-link\"\n [attr.title]=\"copy()\"\n [fragment]=\"id\"\n [relativeTo]=\"route.firstChild ?? route\"\n [routerLinkActiveOptions]=\"{matrixParams: 'exact', queryParams: 'exact', paths: 'exact', fragment: 'exact'}\"\n (click)=\"copyExampleLink($event.currentTarget)\"\n >\n #\n </a>\n</div>\n<h3\n *ngIf=\"description\"\n class=\"t-description\"\n>\n <ng-container *polymorpheusOutlet=\"description as text\">\n {{ text }}\n </ng-container>\n</h3>\n\n<div\n class=\"t-example\"\n [(tuiFullscreen)]=\"fullscreen\"\n>\n <ng-container *ngIf=\"processor() | 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 type=\"button\"\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=\"processor() | tuiMapper: visible\"\n size=\"xs\"\n class=\"t-code-editor\"\n [overlay]=\"true\"\n [showLoader]=\"loading()\"\n (click)=\"edit(processor())\"\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\n <button\n *ngIf=\"fullscreenEnabled\"\n appearance=\"flat\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"fullscreen ? icons.shrink : icons.expand\"\n (click)=\"fullscreen = !fullscreen\"\n >\n Fullscreen\n </button>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n >\n <section\n *ngIf=\"index === defaultTabIndex\"\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n [style.display]=\"activeItemIndex === index && index === defaultTabIndex ? 'block' : 'none'\"\n >\n <ng-content />\n <ng-container *ngComponentOutlet=\"component | async\" />\n </section>\n\n <tui-doc-code\n *tuiLet=\"processor()[tabs[index] || 0] || '' as code\"\n [code]=\"code\"\n [style.display]=\"activeItemIndex === index && index !== defaultTabIndex ? 'block' : 'none'\"\n >\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 </div>\n </ng-container>\n</div>\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute, type Event, NavigationEnd, Router, Scroll} from '@angular/router';\nimport {TUI_DOC_PAGES, TUI_DOC_TITLE} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDocRoutePages} from '@taiga-ui/addon-doc/types';\nimport {tuiAutoFocusOptionsProvider} from '@taiga-ui/cdk/directives/auto-focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {filter, map, mergeMap, type Observable} from 'rxjs';\n\nfunction labelsProviderFactory(pages: TuiDocRoutePages): readonly string[] {\n return pages\n .map(({section}) => section)\n .filter(tuiIsPresent)\n .filter((item, index, array) => array.indexOf(item) === index);\n}\n\n/**\n * Page title\n */\nexport const NAVIGATION_TITLE = new InjectionToken<Observable<string>>(\n ngDevMode ? 'NAVIGATION_TITLE' : '',\n);\n\n/**\n * Navigation sections labels for search\n */\nexport const NAVIGATION_LABELS = new InjectionToken<readonly string[]>(\n ngDevMode ? 'NAVIGATION_LABELS' : '',\n);\n\n/**\n * Navigation pages\n */\nexport const NAVIGATION_ITEMS = new InjectionToken<readonly TuiDocRoutePages[]>(\n ngDevMode ? 'NAVIGATION_ITEMS' : '',\n);\n\nexport const NAVIGATION_PROVIDERS: Provider[] = [\n tuiAutoFocusOptionsProvider({preventScroll: true}),\n tuiLinkOptionsProvider({appearance: 'action-grayscale'}),\n {\n provide: NAVIGATION_TITLE,\n deps: [Router, ActivatedRoute, TUI_DOC_TITLE],\n useFactory: (\n router: Router,\n activatedRoute: ActivatedRoute,\n titlePrefix: string,\n ): Observable<string> =>\n router.events.pipe(\n filter(\n (event: Event) =>\n event instanceof NavigationEnd ||\n (event instanceof Scroll\n ? event.routerEvent instanceof NavigationEnd\n : false),\n ),\n map(() => activatedRoute.firstChild),\n filter(tuiIsPresent),\n mergeMap(({data}) => data),\n map(({title}) => `${titlePrefix}${title}`),\n takeUntilDestroyed(),\n ),\n },\n {\n provide: NAVIGATION_LABELS,\n deps: [TUI_DOC_PAGES],\n useFactory: labelsProviderFactory,\n },\n {\n provide: NAVIGATION_ITEMS,\n deps: [TUI_DOC_PAGES],\n useFactory: (pages: TuiDocRoutePages): readonly TuiDocRoutePages[] => {\n const labels = labelsProviderFactory(pages);\n\n return [\n ...labels.map((label) => pages.filter(({section}) => section === label)),\n pages.filter((page) => !page.section),\n ];\n },\n },\n tuiScrollbarOptionsProvider({\n mode: 'hover',\n }),\n];\n","import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TUI_DOC_PAGE_LOADED} from '@taiga-ui/addon-doc/tokens';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {debounceTime, filter, ReplaySubject, switchMap, take} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiDocScrollIntoViewLink]',\n})\nexport class TuiDocScrollIntoViewLink {\n private readonly scroll$ = new ReplaySubject<boolean>(1);\n private readonly el = tuiInjectElement();\n\n protected readonly sub = inject(TUI_DOC_PAGE_LOADED)\n .pipe(\n filter(Boolean),\n take(1),\n switchMap(() => this.scroll$),\n debounceTime(750, tuiZonefreeScheduler()),\n filter((shallWe) => shallWe && !!tuiGetElementObscures(this.el)),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.el.scrollIntoView());\n\n @Input()\n public set tuiDocScrollIntoViewLink(shallWe: boolean) {\n this.scroll$.next(shallWe);\n }\n}\n","import {DOCUMENT, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {Title} from '@angular/platform-browser';\nimport {Router, RouterLink, RouterLinkActive, Scroll} from '@angular/router';\nimport {\n TUI_DOC_ICONS,\n TUI_DOC_PAGE_LOADED,\n TUI_DOC_SEARCH_ENABLED,\n TUI_DOC_SEARCH_TEXT,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDocRoutePage, type TuiDocRoutePages} from '@taiga-ui/addon-doc/types';\nimport {tuiTransliterateKeyboardLayout} from '@taiga-ui/addon-doc/utils';\nimport {TuiSidebarDirective} from '@taiga-ui/addon-mobile/directives/sidebar';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {tuiControlValue, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiPure, tuiUniqBy} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield, TuiTextfieldDirective} from '@taiga-ui/core/components/textfield';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiAccordion} from '@taiga-ui/kit/components/accordion';\nimport {TuiInputModule} from '@taiga-ui/legacy/components/input';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {combineLatest, filter, fromEvent, map, of, switchMap, take} from 'rxjs';\n\nimport {\n NAVIGATION_ITEMS,\n NAVIGATION_LABELS,\n NAVIGATION_PROVIDERS,\n NAVIGATION_TITLE,\n} from './navigation.providers';\nimport {TuiDocScrollIntoViewLink} from './scroll-into-view.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-navigation',\n imports: [\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n PolymorpheusOutlet,\n ReactiveFormsModule,\n RouterLink,\n RouterLinkActive,\n TuiAccordion,\n TuiAutoFocus,\n TuiDataList,\n TuiDocScrollIntoViewLink,\n TuiExpand,\n TuiIcon,\n TuiInputModule,\n TuiLink,\n TuiScrollbar,\n TuiTextfield,\n TuiTextfieldControllerModule,\n ],\n templateUrl: './navigation.template.html',\n styleUrls: ['./navigation.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: NAVIGATION_PROVIDERS,\n host: {\n '[class._open]': 'menuOpen',\n '(window:keydown)': 'onFocusSearch($event)',\n },\n})\nexport class TuiDocNavigation {\n @ViewChild(TuiTextfieldDirective, {read: ElementRef})\n private readonly searchInput?: ElementRef<HTMLInputElement>;\n\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n\n protected open = signal(false);\n protected menuOpen = false;\n\n protected readonly sidebar = inject(TuiSidebarDirective, {optional: true});\n protected readonly labels = inject(NAVIGATION_LABELS);\n protected readonly items = inject(NAVIGATION_ITEMS);\n protected readonly searchText = inject(TUI_DOC_SEARCH_TEXT);\n protected readonly searchEnabled = inject(TUI_DOC_SEARCH_ENABLED);\n protected readonly docIcons = inject(TUI_DOC_ICONS);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n protected openPagesArr: boolean[] = [];\n protected openPagesGroupsArr: boolean[] = [];\n protected active = '';\n\n protected readonly search = new FormControl('');\n\n protected readonly filtered = toSignal(\n tuiControlValue<string>(this.search).pipe(\n filter((search) => search.trim().length > 2),\n map((search) => this.filterItems(this.flattenSubPages(this.items), search)),\n ),\n {initialValue: []},\n );\n\n constructor() {\n const titleService = inject(Title);\n const readyToScroll$ = inject(TUI_DOC_PAGE_LOADED);\n\n inject(NAVIGATION_TITLE)\n .pipe(tuiWatch(), takeUntilDestroyed())\n .subscribe((title) => {\n titleService.setTitle(title);\n this.openActivePageGroup();\n });\n\n combineLatest([\n this.router.events.pipe(\n filter((event): event is Scroll => event instanceof Scroll),\n switchMap(({anchor}) =>\n 'onscrollend' in this.doc\n ? fromEvent(this.doc, 'scrollend').pipe(map(() => anchor))\n : of(anchor),\n ),\n ),\n inject(NAVIGATION_TITLE).pipe(\n switchMap(() => readyToScroll$.pipe(filter(Boolean))),\n ),\n ])\n .pipe(\n take(1),\n map(([anchor]) => anchor || ''),\n filter<string>(Boolean),\n takeUntilDestroyed(),\n )\n .subscribe((anchor) => this.navigateToAnchorLink(anchor));\n }\n\n protected get canOpen(): boolean {\n return (this.search.value?.length ?? 0) > 2;\n }\n\n protected get itemsWithoutSections(): TuiDocRoutePages {\n return this.items[this.items.length - 1] ?? [];\n }\n\n protected $pages<T extends TuiDocRoutePage[]>(pages: T): readonly TuiDocRoutePage[] {\n return pages as TuiDocRoutePage[];\n }\n\n protected isActive(route: string): boolean {\n return route === this.active;\n }\n\n protected onGroupClick(index: number): void {\n this.openPagesGroupsArr[index] = !this.openPagesGroupsArr[index];\n }\n\n protected closeMenu(): void {\n this.menuOpen = false;\n }\n\n protected onClick(): void {\n this.open.set(false);\n this.menuOpen = false;\n this.search.setValue('');\n this.openActivePageGroup();\n }\n\n protected onFocusSearch(event: KeyboardEvent): void {\n if (\n event.code === 'Slash' &&\n !this.doc.activeElement?.matches('input,textarea,[contenteditable]')\n ) {\n this.searchInput?.nativeElement?.focus();\n event.preventDefault();\n }\n }\n\n @tuiPure\n private filterItems(\n items: ReadonlyArray<readonly TuiDocRoutePage[]>,\n search: string,\n ): ReadonlyArray<readonly TuiDocRoutePage[]> {\n return items.map((section) =>\n tuiUniqBy(\n section.filter(({title, keywords = ''}) => {\n search = search.toLowerCase().trim();\n keywords = keywords.toLowerCase();\n title = title.toLowerCase();\n\n return (\n title.includes(search) ||\n keywords.includes(search) ||\n title.includes(tuiTransliterateKeyboardLayout(search)) ||\n keywords.includes(tuiTransliterateKeyboardLayout(search)) ||\n search.replaceAll('-', '').includes(title) ||\n title.includes(search.replaceAll(/\\s|tui/g, '')) ||\n keywords.includes(search.replaceAll(/\\s|tui/g, '')) ||\n search.split(/\\s/).find((word) => title.includes(word))\n );\n }),\n 'title',\n ),\n );\n }\n\n @tuiPure\n private flattenSubPages(\n items: readonly TuiDocRoutePages[],\n ): ReadonlyArray<readonly TuiDocRoutePage[]> {\n return items.reduce<ReadonlyArray<readonly TuiDocRoutePage[]>>(\n (array, item) => [\n ...array,\n item.reduce<readonly TuiDocRoutePage[]>(\n (pages, page) =>\n 'subPages' in page\n ? [...pages, ...page.subPages]\n : [...pages, page],\n [],\n ),\n ],\n [],\n );\n }\n\n private isActiveRoute(route: string): boolean {\n return this.router.isActive(route, {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n }\n\n private openActivePageGroup(): void {\n this.items.forEach((pages, pagesIndex) => {\n pages.forEach((page, pageIndex) => {\n if ('route' in page && this.isActiveRoute(page.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.active = page.route;\n }\n\n if ('subPages' in page) {\n page.subPages.forEach((subPage) => {\n if (this.isActiveRoute(subPage.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.openPagesGroupsArr[pagesIndex * 100 + pageIndex] = true;\n this.active = subPage.route;\n }\n });\n }\n });\n });\n }\n\n private navigateToAnchorLink(fragment: string): void {\n const nodes = fragment ? this.doc.querySelectorAll(`#${fragment}`) : [];\n const element = nodes.length && nodes[nodes.length - 1];\n\n if (!element) {\n return;\n }\n\n // emulate :target event\n const target = this.doc.createElement('a');\n\n target.href = `${this.doc.location.pathname}#${fragment}`;\n target.style.display = 'none';\n target.style.position = 'absolute';\n this.doc.body.appendChild(target);\n target.click();\n target.remove();\n }\n}\n","<tui-textfield\n *ngIf=\"searchEnabled()\"\n tuiTextfieldSize=\"m\"\n class=\"t-input\"\n [iconStart]=\"docIcons.search\"\n [open]=\"open() && canOpen\"\n (keyup)=\"open.set(canOpen && $event.code !== 'Escape')\"\n (openChange)=\"open.set($event)\"\n>\n <code\n *ngIf=\"!search.value\"\n class=\"t-slash\"\n >\n /\n </code>\n <input\n tuiTextfield\n class=\"t-prevent-ios-scroll\"\n [formControl]=\"search\"\n [placeholder]=\"searchText\"\n [tuiAutoFocus]=\"!!sidebar\"\n />\n <ng-container *ngIf=\"canOpen\">\n <tui-data-list *tuiTextfieldDropdown>\n <tui-opt-group\n *ngFor=\"let group of filtered(); let index = index\"\n [label]=\"labels[index] || ''\"\n >\n <ng-container *ngFor=\"let item of group\">\n <a\n *ngIf=\"item.route.includes('://'); else internal\"\n tuiOption\n [attr.rel]=\"item.rel\"\n [href]=\"item.route\"\n [target]=\"item.target || '_self'\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n\n <ng-template #internal>\n <a\n tuiOption\n [attr.rel]=\"item.rel\"\n [fragment]=\"item.fragment\"\n [routerLink]=\"item.route\"\n [target]=\"item.target || '_self'\"\n (click)=\"onClick()\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n </ng-template>\n </ng-container>\n </tui-opt-group>\n </tui-data-list>\n </ng-container>\n</tui-textfield>\n\n<nav class=\"t-navigation\">\n <tui-scrollbar class=\"t-scrollbar\">\n <tui-accordion\n [class.t-accordion-standalone]=\"!searchEnabled()\"\n [closeOthers]=\"false\"\n [rounded]=\"false\"\n >\n <tui-accordion-item\n *ngFor=\"let label of labels; index as index\"\n size=\"s\"\n [borders]=\"null\"\n [open]=\"!!openPagesArr[index]\"\n (openChange)=\"openPagesArr[index] = $event\"\n >\n <span class=\"t-label\">\n <strong>{{ label }}</strong>\n </span>\n <ng-template tuiAccordionItemContent>\n <div class=\"t-section\">\n <ng-container\n *ngFor=\"let item of items[index]; index as subIndex\"\n [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: index * 100 + subIndex}\"\n />\n </div>\n </ng-template>\n </tui-accordion-item>\n </tui-accordion>\n <div class=\"t-items-container\">\n <ng-container\n *ngFor=\"let item of itemsWithoutSections; let index = index\"\n [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: items.length - 1 + index}\"\n />\n </div>\n\n <ng-template\n #pages\n let-index=\"index\"\n let-item=\"item\"\n >\n <ng-container *ngIf=\"!item.subPages; else subPagesTemplate\">\n <a\n *ngIf=\"item.route.includes('://'); else internal\"\n tuiLink\n class=\"t-sublink\"\n [attr.rel]=\"item.rel\"\n [href]=\"item.route\"\n [target]=\"item.target || '_self'\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n\n <ng-template #internal>\n <a\n routerLinkActive=\"t-sublink_active\"\n tuiLink\n class=\"t-sublink\"\n [attr.rel]=\"item.rel\"\n [routerLink]=\"item.route\"\n [target]=\"item.target || '_self'\"\n [tuiDocScrollIntoViewLink]=\"isActive(item.route)\"\n (click)=\"closeMenu()\"\n >\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n </ng-template>\n </ng-container>\n\n <ng-template #subPagesTemplate>\n <div\n routerLinkActive\n class=\"t-subsection\"\n [routerLinkActiveOptions]=\"{exact: false}\"\n >\n <button\n *ngIf=\"item.subPages\"\n tuiLink\n type=\"button\"\n class=\"t-sublink t-sublink_subsection\"\n (click)=\"onGroupClick(index)\"\n >\n <tui-icon\n class=\"t-chevron\"\n [class.t-chevron_active]=\"!!openPagesGroupsArr[index]\"\n [icon]=\"icons.more\"\n />\n {{ item.title }}\n <tui-icon\n *polymorpheusOutlet=\"item.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </button>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"!!openPagesGroupsArr[index]\"\n >\n <div class=\"t-section t-section_bordered\">\n <ng-container *ngFor=\"let subPage of $pages(item.subPages)\">\n <a\n *ngIf=\"subPage.route.includes('://'); else internal\"\n tuiLink\n class=\"t-sublink t-sublink_small\"\n [attr.rel]=\"subPage.rel\"\n [href]=\"subPage.route\"\n [target]=\"subPage.target || '_self'\"\n >\n {{ subPage.title }}\n <tui-icon\n *polymorpheusOutlet=\"subPage.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n\n <ng-template #internal>\n <a\n routerLinkActive=\"t-sublink_active\"\n tuiLink\n class=\"t-sublink t-sublink_small\"\n [attr.rel]=\"subPage.rel\"\n [fragment]=\"subPage.fragment\"\n [routerLink]=\"subPage.route\"\n [target]=\"subPage.target || '_self'\"\n [tuiDocScrollIntoViewLink]=\"isActive(subPage.route)\"\n (click)=\"closeMenu()\"\n >\n {{ subPage.title }}\n <tui-icon\n *polymorpheusOutlet=\"subPage.icon as icon\"\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </a>\n </ng-template>\n </ng-container>\n </div>\n </tui-expand>\n </div>\n </ng-template>\n </ng-template>\n </tui-scrollbar>\n</nav>\n\n<ng-content />\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {Router} from '@angular/router';\nimport {TUI_DOC_ICONS, TUI_DOC_LOGO, TUI_DOC_MENU_TEXT} from '@taiga-ui/addon-doc/tokens';\nimport {TuiSidebar} from '@taiga-ui/addon-mobile/directives/sidebar';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, merge, startWith, Subject} from 'rxjs';\n\nimport {TuiDocNavigation} from '../../navigation/navigation.component';\n\n@Component({\n standalone: true,\n selector: 'header[tuiDocHeader]',\n imports: [PolymorpheusOutlet, TuiActiveZone, TuiButton, TuiDocNavigation, TuiSidebar],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocHeader {\n private readonly stream$ = new Subject<boolean>();\n private readonly router = inject(Router);\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly logo = inject(TUI_DOC_LOGO);\n protected readonly menu = inject(TUI_DOC_MENU_TEXT);\n\n protected readonly open = toSignal(\n merge(this.router.events.pipe(map(TUI_FALSE_HANDLER)), this.stream$).pipe(\n startWith(false),\n distinctUntilChanged(),\n ),\n {initialValue: false},\n );\n\n protected onClick(): void {\n this.stream$.next(true);\n }\n\n protected onActiveZone(active: boolean): void {\n if (!active) {\n this.stream$.next(false);\n }\n }\n}\n","<button\n appearance=\"icon\"\n tuiIconButton\n type=\"button\"\n class=\"t-menu\"\n [iconStart]=\"icons.menu\"\n [title]=\"menu\"\n (click)=\"onClick()\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-doc-navigation\n *tuiSidebar=\"open()\"\n class=\"t-navigation\"\n />\n</button>\n<div class=\"t-logo\">\n <img\n *polymorpheusOutlet=\"logo as src\"\n alt=\"Logo\"\n class=\"t-img\"\n [src]=\"src\"\n />\n</div>\n<ng-content />\n","import {NgForOf, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {RouterLink} from '@angular/router';\nimport {TUI_DOC_MAP_PAGES, TUI_DOC_SEE_ALSO_TEXT} from '@taiga-ui/addon-doc/tokens';\nimport {TuiLink} from '@taiga-ui/core/components/link';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-see-also',\n imports: [NgForOf, NgIf, RouterLink, TuiLink],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSeeAlso {\n private readonly pages = inject(TUI_DOC_MAP_PAGES);\n protected readonly text = inject(TUI_DOC_SEE_ALSO_TEXT);\n\n @Input()\n public seeAlso: readonly string[] = [];\n\n protected getRouterLink(pageTitle: string): string {\n return this.pages.get(pageTitle)?.route ?? '';\n }\n}\n","<h5 class=\"t-header\">{{ text }}</h5>\n<ng-container *ngFor=\"let item of seeAlso; last as last\">\n <a\n tuiLink\n [innerText]=\"item\"\n [routerLink]=\"getRouterLink(item)\"\n ></a>\n <ng-container *ngIf=\"!last\">{{ ', ' }}</ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {\n TUI_DOC_ICONS,\n TUI_DOC_SOURCE_CODE,\n TUI_DOC_SOURCE_CODE_TEXT,\n} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiDocSourceCodePathOptions} from '@taiga-ui/addon-doc/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-source-code',\n imports: [PolymorpheusOutlet, TuiButton],\n templateUrl: './source-code.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSourceCode {\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly sourceCode = inject(TUI_DOC_SOURCE_CODE);\n protected readonly text = inject(TUI_DOC_SOURCE_CODE_TEXT);\n\n @Input()\n public header = '';\n\n @Input()\n public package = '';\n\n @Input()\n public type = '';\n\n @Input()\n public path = '';\n\n protected get pathOptions(): TuiDocSourceCodePathOptions {\n return this.getPathOptions(this.header, this.package, this.type, this.path);\n }\n\n @tuiPure\n protected pathIsUrl(path: string): boolean {\n return path.startsWith('http');\n }\n\n @tuiPure\n private getPathOptions(\n header: string,\n packageName: string,\n type: string,\n path: string,\n ): TuiDocSourceCodePathOptions {\n return {\n header,\n package: packageName,\n type,\n path,\n };\n }\n}\n","<a\n *polymorpheusOutlet=\"pathIsUrl(path) ? path : sourceCode as link; context: pathOptions\"\n appearance=\"icon\"\n size=\"s\"\n target=\"_blank\"\n tuiIconButton\n type=\"button\"\n [href]=\"link\"\n [iconStart]=\"icons.code\"\n [style.height]=\"'var(--tui-height-l)'\"\n>\n {{ text }}\n</a>\n","import {NgForOf, TitleCasePipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {TUI_DOC_ICONS} from '@taiga-ui/addon-doc/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiFlagPipe} from '@taiga-ui/core/pipes/flag';\nimport {type TuiCountryIsoCode, type TuiLanguageName} from '@taiga-ui/i18n/types';\nimport {TuiLanguageSwitcherService} from '@taiga-ui/i18n/utils';\nimport {TuiBadge} from '@taiga-ui/kit/components/badge';\nimport {TuiBadgedContent} from '@taiga-ui/kit/components/badged-content';\nimport {TuiButtonSelect} from '@taiga-ui/kit/directives/button-select';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-language-switcher',\n imports: [\n NgForOf,\n ReactiveFormsModule,\n TitleCasePipe,\n TuiBadge,\n TuiBadgedContent,\n TuiButton,\n TuiButtonSelect,\n TuiDataList,\n TuiFlagPipe,\n TuiTextfield,\n ],\n templateUrl: './index.html',\n styleUrls: ['./index.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiScrollbarOptionsProvider({mode: 'hover'})],\n})\nexport class TuiDocLanguageSwitcher {\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly switcher = inject(TuiLanguageSwitcherService);\n protected readonly language = new FormControl(capitalize(this.switcher.language));\n\n protected open = false;\n\n public readonly flags = new Map<TuiLanguageName, TuiCountryIsoCode>([\n ['arabic', 'SA'],\n ['belarusian', 'BY'],\n ['chinese', 'CN'],\n ['dutch', 'NL'],\n ['english', 'GB'],\n ['french', 'FR'],\n ['german', 'DE'],\n ['hebrew', 'IL'],\n ['italian', 'IT'],\n ['japan', 'JP'],\n ['kazakh', 'KZ'],\n ['korean', 'KR'],\n ['lithuanian', 'LT'],\n ['malay', 'MY'],\n ['polish', 'PL'],\n ['portuguese', 'PT'],\n ['russian', 'RU'],\n ['spanish', 'ES'],\n ['turkish', 'TR'],\n ['ukrainian', 'UA'],\n ['vietnamese', 'VN'],\n ]);\n\n public readonly names: TuiLanguageName[] = Array.from(this.flags.keys());\n\n public setLang(lang: TuiLanguageName): void {\n this.language.setValue(lang);\n this.switcher.setLanguage(lang);\n this.open = false;\n }\n}\n\nfunction capitalize(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n","<tui-badged-content>\n <img\n alt=\"\"\n size=\"s\"\n tuiBadge\n tuiSlot=\"bottom\"\n [src]=\"flags.get(language.value ?? '') || flags.get(switcher.language) | tuiFlag\"\n />\n\n <button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButtonSelect\n tuiIconButton\n type=\"button\"\n [formControl]=\"language\"\n [iconStart]=\"icons.languages\"\n >\n Language\n <tui-data-list *tuiTextfieldDropdown>\n <tui-opt-group label=\"Language of components\">\n <button\n *ngFor=\"let name of names\"\n new\n tuiOption\n type=\"button\"\n [value]=\"name | titlecase\"\n (click)=\"setLang(name)\"\n >\n <img\n alt=\"\"\n class=\"t-flag\"\n [src]=\"flags.get(name) | tuiFlag\"\n />\n {{ name | titlecase }}\n </button>\n </tui-opt-group>\n </tui-data-list>\n </button>\n</tui-badged-content>\n","import {DOCUMENT, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\nimport {TUI_DOC_DIRECTION_ENABLED, TUI_DOC_ICONS} from '@taiga-ui/addon-doc/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiRoot} from '@taiga-ui/core/components/root';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\n\nimport {TuiDocHeader} from '../internal/header';\nimport {TuiDocNavigation} from '../navigation/navigation.component';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-main',\n imports: [\n NgIf,\n RouterOutlet,\n TuiButton,\n TuiDocHeader,\n TuiDocNavigation,\n TuiIcon,\n TuiRoot,\n ],\n templateUrl: './main.template.html',\n styleUrls: ['./main.style.less'],\n encapsulation: ViewEncapsulation.None,\n // @note: This one was default on purpose, so we can test demo in default mode.\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiDocMain {\n private readonly doc = inject(DOCUMENT);\n protected readonly icons = inject(TUI_DOC_ICONS);\n protected readonly dir = inject(TUI_DOC_DIRECTION_ENABLED);\n protected readonly darkMode = inject(TUI_DARK_MODE);\n protected readonly theme = computed(() => (this.darkMode() ? 'dark' : null));\n protected readonly icon = computed(() =>\n this.darkMode() ? this.icons.light : this.icons.dark,\n );\n\n public changeTextDirection(): void {\n const dir = this.doc.documentElement.getAttribute('dir') ?? 'ltr';\n\n this.doc.documentElement.setAttribute('dir', dir === 'ltr' ? 'rtl' : 'ltr');\n }\n}\n","<tui-root [attr.tuiTheme]=\"theme()\">\n <div class=\"tui-doc-page\">\n <tui-doc-navigation class=\"tui-doc-navigation\">\n <ng-content select=\"tuiDocNavigation\" />\n </tui-doc-navigation>\n <div class=\"tui-doc-content\">\n <router-outlet class=\"tui-doc-outlet\" />\n </div>\n </div>\n <header tuiDocHeader>\n <ng-content select=\"tuiDocHeader\" />\n\n <button\n *ngIf=\"dir && icons.ltr\"\n appearance=\"outline\"\n aria-label=\"Switch directionality of the element's text\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"tui-doc-switch-direction\"\n [iconEnd]=\"icons.ltr.preview\"\n (click)=\"changeTextDirection()\"\n >\n <tui-icon [icon]=\"icons.ltr.direction\" />\n </button>\n\n <button\n appearance=\"secondary\"\n aria-label=\"Switch between dark and light mode\"\n size=\"s\"\n tuiIconButton\n type=\"button\"\n class=\"tui-doc-dark-mode-switch\"\n [iconStart]=\"icon()\"\n [style.border-radius.%]=\"100\"\n (click)=\"darkMode.set(!darkMode())\"\n ></button>\n </header>\n <ng-container ngProjectAs=\"tuiOverContent\">\n <ng-content select=\"tuiOverContent\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverDialogs\">\n <ng-content select=\"tuiOverDialogs\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverAlerts\">\n <ng-content select=\"tuiOverAlerts\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverDropdowns\">\n <ng-content select=\"tuiOverDropdowns\" />\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverHints\">\n <ng-content select=\"tuiOverHints\" />\n </ng-container>\n</tui-root>\n","import {ElementRef, InjectionToken, type Provider} from '@angular/core';\nimport {type ActivatedRouteSnapshot} from '@angular/router';\nimport {TUI_DOC_SEE_ALSO} from '@taiga-ui/addon-doc/tokens';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport const TUI_DOC_TABS = new InjectionToken<\n TuiHandler<ActivatedRouteSnapshot, Record<string, PolymorpheusContent>>\n>(ngDevMode ? 'TUI_DOC_TABS' : '', {\n factory: () => () => ({}),\n});\n\n/**\n * Array if related page titles\n */\nexport const PAGE_SEE_ALSO = new InjectionToken<readonly string[]>(\n ngDevMode ? 'PAGE_SEE_ALSO' : '',\n);\n\nexport const PAGE_PROVIDERS: Provider[] = [\n {\n provide: PAGE_SEE_ALSO,\n deps: [ElementRef, TUI_DOC_SEE_ALSO],\n useFactory: (\n {nativeElement}: ElementRef,\n seeAlsoGroups: ReadonlyArray<readonly string[]>,\n ): readonly string[] => {\n const currentHeader = nativeElement.getAttribute('header');\n const groups =\n seeAlsoGroups.filter((group) => group.includes(currentHeader)) || [];\n\n const seeAlsoSet = new Set(\n groups\n .join()\n .split(',')\n .filter((component) => component && component !== currentHeader),\n );\n\n return Array.from(seeAlsoSet);\n },\n },\n];\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[pageTab]',\n})\nexport class TuiDocPageTabConnector {\n @Input()\n public pageTab?: string;\n\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\n}\n","import {KeyValuePipe, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n} from '@angular/core';\nimport {ActivatedRoute, RouterLink, RouterLinkActive} from '@angular/router';\nimport {TUI_DOC_DEFAULT_TABS, TUI_DOC_SUPPORT_LANGUAGE} from '@taiga-ui/addon-doc/tokens';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiReplacePipe} from '@taiga-ui/cdk/pipes/replace';\nimport {TuiAutoColorPipe} from '@taiga-ui/core/pipes/auto-color';\nimport {TuiChip} from '@taiga-ui/kit/components/chip';\nimport {TuiTabs} from '@taiga-ui/kit/components/tabs';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDocSeeAlso} from '../internal/see-also';\nimport {TuiDocSourceCode} from '../internal/source-code/source-code.component';\nimport {TuiDocLanguageSwitcher} from '../language-switcher';\nimport {PAGE_PROVIDERS, PAGE_SEE_ALSO, TUI_DOC_TABS} from './page.providers';\nimport {TuiDocPageTabConnector} from './page-tab.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-doc-page',\n imports: [\n KeyValuePipe,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n PolymorpheusOutlet,\n RouterLink,\n RouterLinkActive,\n TuiAutoColorPipe,\n TuiChip,\n TuiDocLanguageSwitcher,\n TuiDocSeeAlso,\n TuiDocSourceCode,\n TuiReplacePipe,\n TuiTabs,\n ],\n templateUrl: './page.template.html',\n styleUrls: ['./page.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: PAGE_PROVIDERS,\n})\nexport class TuiDocPage {\n protected readonly tabs = inject(TUI_DOC_TABS)(inject(ActivatedRoute).snapshot);\n protected readonly supportLanguage = inject(TUI_DOC_SUPPORT_LANGUAGE);\n protected readonly defaultTabs = inject(TUI_DOC_DEFAULT_TABS);\n protected readonly from = / /g;\n protected readonly to = '_';\n\n @Input()\n public header = '';\n\n @Input()\n public package = '';\n\n @Input()\n public type = '';\n\n @Input()\n public tags: string[] = [];\n\n @Input()\n public path = '';\n\n @Input()\n public deprecated: boolean | '' = false;\n\n @ContentChildren(TuiDocPageTabConnector)\n public readonly tabConnectors: QueryList<TuiDocPageTabConnector> = EMPTY_QUERY;\n\n public activeItemIndex = 0;\n public readonly seeAlso = inject(PAGE_SEE_ALSO);\n\n public get showSeeAlso(): boolean {\n return !!this.seeAlso.length && this.activeItemIndex === 0;\n }\n}\n","<header class=\"t-header\">\n <h1\n *ngIf=\"header\"\n class=\"t-title\"\n >\n {{ header }}\n <tui-chip\n *ngIf=\"!!deprecated || deprecated === ''\"\n appearance=\"custom\"\n size=\"xs\"\n class=\"t-tag t-tag_deprecated\"\n >\n deprecated\n </tui-chip>\n <tui-chip\n *ngIf=\"package\"\n appearance=\"custom\"\n size=\"xs\"\n class=\"t-tag t-tag_package\"\n [style.background]=\"package | tuiAutoColor\"\n >\n {{ package }}\n </tui-chip>\n <tui-chip\n *ngFor=\"let tag of tags\"\n appearance=\"custom\"\n size=\"xs\"\n class=\"t-tag t-tag_package\"\n [style.background]=\"tag | tuiAutoColor\"\n >\n {{ tag }}\n </tui-chip>\n </h1>\n <tui-tabs-with-more\n *ngIf=\"tabConnectors.length\"\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabConnectors; first as first; index as index\">\n <ng-container *ngIf=\"tab.pageTab || defaultTabs[index] as tabName\">\n <a\n *tuiItem\n routerLinkActive\n tuiTab\n [routerLink]=\"first ? './' : (tabName | tuiReplace: from : to)\"\n [routerLinkActiveOptions]=\"{exact: first}\"\n >\n {{ tabName }}\n </a>\n </ng-container>\n </ng-container>\n <ng-container *ngFor=\"let tab of tabs | keyvalue\">\n <a\n *tuiItem\n routerLinkActive\n tuiTab\n [routerLink]=\"tab.key\"\n >\n {{ tab.key }}\n </a>\n </ng-container>\n </tui-tabs-with-more>\n\n <div\n *ngIf=\"package || path || type\"\n class=\"t-right-side\"\n >\n <tui-doc-source-code\n class=\"t-source-code\"\n [header]=\"header\"\n [package]=\"package\"\n [path]=\"path\"\n [type]=\"type\"\n />\n\n <tui-doc-language-switcher *ngIf=\"supportLanguage.has(header)\" />\n </div>\n</header>\n<div class=\"t-content\">\n <ng-content />\n <tui-doc-see-also\n *ngIf=\"showSeeAlso\"\n class=\"t-see-also\"\n [seeAlso]=\"seeAlso\"\n />\n <ng-container *ngFor=\"let tab of tabConnectors; index as index\">\n <ng-container\n *ngIf=\"index === activeItemIndex\"\n [ngTemplateOutlet]=\"tab.template\"\n />\n </ng-container>\n <ng-container *ngFor=\"let tab of tabs | keyvalue; index as index\">\n <ng-container *ngIf=\"index + tabConnectors.length === activeItemIndex\">\n <ng-container *polymorpheusOutlet=\"tab.value as text\">{{ text }}</ng-container>\n </ng-container>\n </ng-container>\n</div>\n","import {NgForOf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n type FactoryProvider,\n inject,\n InjectionToken,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {WA_LOCAL_STORAGE, WA_LOCATION} from '@ng-web-apis/common';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TUI_THEME} from '@taiga-ui/core/tokens';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\n\nexport const TUI_THEME_KEY = new InjectionToken(ngDevMode ? 'TUI_THEME_KEY' : '', {\n factory: () => 'data-tui-theme',\n});\nexport const TUI_THEMES = new InjectionToken<Record<string, string>>(\n ngDevMode ? 'TUI_THEMES' : '',\n {\n factory: () => ({}),\n },\n);\n\nexport function tuiDocThemeProvider(): FactoryProvider {\n return {\n provide: TUI_THEME,\n useFactory: () =>\n inject(WA_LOCAL_STORAGE)?.getItem(inject(TUI_THEME_KEY)) || 'Taiga UI',\n };\n}\n\n@Component({\n standalone: true,\n selector: 'tui-doc-theme-switcher',\n imports: [FormsModule, NgForOf, TuiDataList, TuiSelectModule],\n templateUrl: './theme-switcher.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocThemeSwitcher {\n private readonly storage = inject(WA_LOCAL_STORAGE);\n private readonly key = inject(TUI_THEME_KEY);\n private readonly location = inject(WA_LOCATION);\n\n protected readonly theme = inject(TUI_THEME);\n protected readonly themes = inject(TUI_THEMES);\n protected readonly keys = Object.keys(this.themes);\n\n public onTheme(theme: string): void {\n this.storage?.setItem(this.key, theme);\n this.location.reload();\n }\n}\n","<tui-select\n [ngModel]=\"theme\"\n (ngModelChange)=\"onTheme($event)\"\n>\n <ng-content />\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let key of keys\"\n tuiOption\n type=\"button\"\n [value]=\"key\"\n >\n <img\n alt=\"\"\n [src]=\"themes[key]\"\n [style.margin-inline-end.rem]=\"0.5\"\n [style.width.rem]=\"1.75\"\n />\n {{ key }}\n </button>\n </tui-data-list>\n</tui-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SERIALIZED_SUFFIX","i1","i3","i4","i6","i5","i7","i2"],"mappings":"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"}
|
package/package.json
CHANGED