@taiga-ui/addon-doc 4.65.0 → 5.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +33 -43
  2. package/components/api/api-item-number.directive.d.ts +3 -3
  3. package/components/api/api-item.component.d.ts +12 -9
  4. package/components/{documentation/pipes → api}/inspect.pipe.d.ts +1 -1
  5. package/components/{documentation/pipes → api}/type-reference.pipe.d.ts +3 -3
  6. package/components/code/index.d.ts +9 -6
  7. package/components/copy/index.d.ts +1 -1
  8. package/components/demo/index.d.ts +14 -9
  9. package/components/doc-tab/index.d.ts +2 -2
  10. package/components/example/example.component.d.ts +13 -16
  11. package/components/example/example.options.d.ts +1 -3
  12. package/components/index.d.ts +0 -10
  13. package/components/internal/header/index.d.ts +3 -4
  14. package/components/internal/see-also/index.d.ts +2 -2
  15. package/components/internal/source-code/source-code.component.d.ts +7 -8
  16. package/components/language-switcher/index.d.ts +1 -1
  17. package/components/main/main.component.d.ts +1 -2
  18. package/components/navigation/navigation.component.d.ts +6 -5
  19. package/components/navigation/scroll-into-view.directive.d.ts +5 -3
  20. package/components/page/page-tab.directive.d.ts +2 -2
  21. package/components/page/page.component.d.ts +12 -15
  22. package/components/page/page.providers.d.ts +2 -11
  23. package/fesm2022/taiga-ui-addon-doc-components.mjs +282 -740
  24. package/fesm2022/taiga-ui-addon-doc-components.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-addon-doc-services.mjs +4 -4
  26. package/fesm2022/taiga-ui-addon-doc-services.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-addon-doc-tokens.mjs +2 -7
  28. package/fesm2022/taiga-ui-addon-doc-tokens.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-addon-doc-types.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-addon-doc-utils.mjs +7 -8
  31. package/fesm2022/taiga-ui-addon-doc-utils.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-addon-doc.mjs +1 -7
  33. package/fesm2022/taiga-ui-addon-doc.mjs.map +1 -1
  34. package/index.d.ts +2 -4
  35. package/package.json +21 -36
  36. package/tokens/doc-icons.d.ts +2 -3
  37. package/types/page.d.ts +1 -1
  38. package/utils/inspect.d.ts +1 -1
  39. package/utils/provide-route-page-tab.d.ts +3 -4
  40. package/components/documentation/documentation-property-connector.directive.d.ts +0 -32
  41. package/components/documentation/documentation.component.d.ts +0 -23
  42. package/components/documentation/pipes/cleaner.pipe.d.ts +0 -7
  43. package/components/documentation/pipes/color.pipe.d.ts +0 -7
  44. package/components/documentation/pipes/opacity.pipe.d.ts +0 -7
  45. package/components/documentation/pipes/optional.pipe.d.ts +0 -7
  46. package/components/documentation/pipes/primitive-polymorpheus-content.pipe.d.ts +0 -7
  47. package/components/documentation/pipes/strip-optional.pipe.d.ts +0 -7
  48. package/directives/index.d.ts +0 -1
  49. package/directives/text-code/text-code.directive.d.ts +0 -9
  50. package/esm2022/components/api/api-item-number.directive.mjs +0 -23
  51. package/esm2022/components/api/api-item.component.mjs +0 -118
  52. package/esm2022/components/api/api.component.mjs +0 -16
  53. package/esm2022/components/code/index.mjs +0 -46
  54. package/esm2022/components/copy/index.mjs +0 -29
  55. package/esm2022/components/demo/index.mjs +0 -170
  56. package/esm2022/components/doc-tab/index.mjs +0 -17
  57. package/esm2022/components/documentation/documentation-property-connector.directive.mjs +0 -134
  58. package/esm2022/components/documentation/documentation.component.mjs +0 -108
  59. package/esm2022/components/documentation/pipes/cleaner.pipe.mjs +0 -18
  60. package/esm2022/components/documentation/pipes/color.pipe.mjs +0 -39
  61. package/esm2022/components/documentation/pipes/inspect.pipe.mjs +0 -33
  62. package/esm2022/components/documentation/pipes/opacity.pipe.mjs +0 -30
  63. package/esm2022/components/documentation/pipes/optional.pipe.mjs +0 -18
  64. package/esm2022/components/documentation/pipes/primitive-polymorpheus-content.pipe.mjs +0 -19
  65. package/esm2022/components/documentation/pipes/strip-optional.pipe.mjs +0 -18
  66. package/esm2022/components/documentation/pipes/type-reference.pipe.mjs +0 -29
  67. package/esm2022/components/example/example-get-tabs.pipe.mjs +0 -18
  68. package/esm2022/components/example/example.component.mjs +0 -118
  69. package/esm2022/components/example/example.options.mjs +0 -19
  70. package/esm2022/components/index.mjs +0 -33
  71. package/esm2022/components/internal/header/index.mjs +0 -39
  72. package/esm2022/components/internal/see-also/index.mjs +0 -26
  73. package/esm2022/components/internal/source-code/source-code.component.mjs +0 -54
  74. package/esm2022/components/language-switcher/index.mjs +0 -77
  75. package/esm2022/components/main/main.component.mjs +0 -41
  76. package/esm2022/components/navigation/navigation.component.mjs +0 -205
  77. package/esm2022/components/navigation/navigation.providers.mjs +0 -59
  78. package/esm2022/components/navigation/scroll-into-view.directive.mjs +0 -32
  79. package/esm2022/components/page/page-tab.directive.mjs +0 -20
  80. package/esm2022/components/page/page.component.mjs +0 -78
  81. package/esm2022/components/page/page.providers.mjs +0 -34
  82. package/esm2022/components/taiga-ui-addon-doc-components.mjs +0 -5
  83. package/esm2022/components/theme-switcher/theme-switcher.component.mjs +0 -45
  84. package/esm2022/directives/index.mjs +0 -2
  85. package/esm2022/directives/taiga-ui-addon-doc-directives.mjs +0 -5
  86. package/esm2022/directives/text-code/text-code.directive.mjs +0 -27
  87. package/esm2022/index.mjs +0 -28
  88. package/esm2022/services/index.mjs +0 -2
  89. package/esm2022/services/taiga-ui-addon-doc-services.mjs +0 -5
  90. package/esm2022/services/theme-dark.service.mjs +0 -52
  91. package/esm2022/taiga-ui-addon-doc.mjs +0 -5
  92. package/esm2022/tokens/code-actions.mjs +0 -8
  93. package/esm2022/tokens/code-editor.mjs +0 -6
  94. package/esm2022/tokens/default-tabs.mjs +0 -8
  95. package/esm2022/tokens/doc-icons.mjs +0 -29
  96. package/esm2022/tokens/example-content-processor.mjs +0 -16
  97. package/esm2022/tokens/excluded-properties.mjs +0 -11
  98. package/esm2022/tokens/i18n.mjs +0 -62
  99. package/esm2022/tokens/index.mjs +0 -17
  100. package/esm2022/tokens/logo.mjs +0 -8
  101. package/esm2022/tokens/page-loaded.mjs +0 -9
  102. package/esm2022/tokens/pages.mjs +0 -12
  103. package/esm2022/tokens/see-also.mjs +0 -8
  104. package/esm2022/tokens/source-code.mjs +0 -8
  105. package/esm2022/tokens/support-language.mjs +0 -5
  106. package/esm2022/tokens/taiga-ui-addon-doc-tokens.mjs +0 -5
  107. package/esm2022/tokens/title.mjs +0 -8
  108. package/esm2022/tokens/type-reference-handler.mjs +0 -9
  109. package/esm2022/tokens/url-state-handler.mjs +0 -27
  110. package/esm2022/types/code-editor.mjs +0 -2
  111. package/esm2022/types/demo-params.mjs +0 -2
  112. package/esm2022/types/index.mjs +0 -2
  113. package/esm2022/types/page.mjs +0 -6
  114. package/esm2022/types/source-code-path-options.mjs +0 -2
  115. package/esm2022/types/taiga-ui-addon-doc-types.mjs +0 -5
  116. package/esm2022/utils/clean-object.mjs +0 -10
  117. package/esm2022/utils/coerce-boolean.mjs +0 -4
  118. package/esm2022/utils/coerce-value.mjs +0 -43
  119. package/esm2022/utils/index.mjs +0 -14
  120. package/esm2022/utils/inspect.mjs +0 -67
  121. package/esm2022/utils/is-page-group.mjs +0 -4
  122. package/esm2022/utils/parse-code-block.mjs +0 -9
  123. package/esm2022/utils/provide-route-page-tab.mjs +0 -13
  124. package/esm2022/utils/raw-load-record.mjs +0 -11
  125. package/esm2022/utils/raw-load.mjs +0 -4
  126. package/esm2022/utils/sort-pages.mjs +0 -26
  127. package/esm2022/utils/taiga-ui-addon-doc-utils.mjs +0 -5
  128. package/esm2022/utils/to-flat-map-pages.mjs +0 -22
  129. package/esm2022/utils/transliterate-keyboard-layout.mjs +0 -47
  130. package/esm2022/utils/type-reference-parser.mjs +0 -21
  131. package/fesm2022/taiga-ui-addon-doc-directives.mjs +0 -33
  132. package/fesm2022/taiga-ui-addon-doc-directives.mjs.map +0 -1
@@ -1,41 +0,0 @@
1
- import { DOCUMENT, NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation, } from '@angular/core';
3
- import { RouterOutlet } from '@angular/router';
4
- import { TUI_DOC_DIRECTION_ENABLED, TUI_DOC_ICONS } from '@taiga-ui/addon-doc/tokens';
5
- import { TuiButton } from '@taiga-ui/core/components/button';
6
- import { TuiIcon } from '@taiga-ui/core/components/icon';
7
- import { TuiRoot } from '@taiga-ui/core/components/root';
8
- import { TUI_DARK_MODE } from '@taiga-ui/core/tokens';
9
- import { TuiDocHeader } from '../internal/header';
10
- import { TuiDocNavigation } from '../navigation/navigation.component';
11
- import * as i0 from "@angular/core";
12
- class TuiDocMain {
13
- constructor() {
14
- this.doc = inject(DOCUMENT);
15
- this.icons = inject(TUI_DOC_ICONS);
16
- this.dir = inject(TUI_DOC_DIRECTION_ENABLED);
17
- this.darkMode = inject(TUI_DARK_MODE);
18
- this.theme = computed(() => (this.darkMode() ? 'dark' : null));
19
- this.icon = computed(() => this.darkMode() ? this.icons.light : this.icons.dark);
20
- }
21
- changeTextDirection() {
22
- const dir = this.doc.documentElement.getAttribute('dir') ?? 'ltr';
23
- this.doc.documentElement.setAttribute('dir', dir === 'ltr' ? 'rtl' : 'ltr');
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocMain, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocMain, isStandalone: true, selector: "tui-doc-main", ngImport: i0, template: "<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", styles: ["@keyframes tuiShaking{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-.3125rem,0,0)}20%,40%,60%,80%{transform:translate3d(.3125rem,0,0)}}html,body{scroll-padding-top:4rem;background:var(--tui-background-base)}tui-root>tui-scroll-controls>.t-bar_vertical{top:4rem!important}tui-doc-main{display:block}code:not(pre code):not(.hljs):not([class*=language-]){transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:inline-flex;background:var(--tui-background-neutral-1);color:var(--tui-text-secondary);vertical-align:middle;align-items:center;border-radius:.25rem;font-weight:500;outline:1px solid var(--tui-border-hover);font-size:.75rem;padding:0 .3125rem;margin:.125rem .1875rem;text-wrap:wrap}a code:not(pre code):not(.hljs):not([class*=language-]){color:var(--tui-text-action)}button:focus code,a:focus code{background:var(--tui-background-base)}.tui-doc-page{isolation:isolate;padding-block-start:4rem}tui-doc-navigation.tui-doc-navigation{position:fixed;top:4rem;bottom:0;inline-size:16.25rem;border-inline-end:1px solid var(--tui-border-normal)}@media screen and (max-width: 47.9625em){tui-doc-navigation.tui-doc-navigation{display:none}}.tui-doc-content{margin-inline-start:16.25rem}@media screen and (max-width: 47.9625em){.tui-doc-content{margin-inline-start:0}}.tui-doc-outlet+*{display:block}.tui-doc-switch-direction,.tui-doc-dark-mode-switch{margin-inline-start:1rem}tui-doc-code .hljs-tag{background:none}tui-doc-code .hljs{display:block;overflow-x:auto;padding:.5em;color:var(--tui-text-primary);background-color:var(--tui-background-neutral-1)}tui-doc-code .hljs.hljs-line-numbers{background:transparent}tui-doc-code .hljs-subst,tui-doc-code .hljs-title{font-weight:400;color:var(--tui-text-primary)}tui-doc-code .hljs-property{color:#bd65a4}tui-doc-code .hljs-comment,tui-doc-code .hljs-quote{color:var(--tui-text-secondary);font-style:italic}tui-doc-code .hljs-meta{color:#e38162}tui-doc-code .hljs-section,tui-doc-code .hljs-name,tui-doc-code .hljs-literal,tui-doc-code .hljs-keyword,tui-doc-code .hljs-selector-tag,tui-doc-code .hljs-type,tui-doc-code .hljs-selector-id,tui-doc-code .hljs-selector-class{font-weight:700;color:var(--tui-text-action)}tui-doc-code .hljs-attr{color:var(--tui-text-action)}tui-doc-code .hljs-attribute,tui-doc-code .hljs-number,tui-doc-code .hljs-regexp,tui-doc-code .hljs-link,tui-doc-code .hljs-built_in{font-weight:700;color:#b8474e}tui-doc-code .hljs-number,tui-doc-code .hljs-regexp,tui-doc-code .hljs-link{font-weight:400}tui-doc-code .hljs-string{color:var(--tui-status-positive);font-weight:700}tui-doc-code .hljs-symbol,tui-doc-code .hljs-bullet,tui-doc-code .hljs-formula{color:var(--tui-text-primary);background:var(--tui-background-base-alt);font-style:italic}tui-doc-code .hljs-doctag{text-decoration:underline}tui-doc-code .hljs-variable,tui-doc-code .hljs-template-variable{color:var(--tui-text-action-hover)}tui-doc-code .hljs-addition{background:var(--tui-status-positive-pale)}tui-doc-code .hljs-deletion{background:var(--tui-status-negative-pale)}tui-doc-code .hljs-emphasis{font-style:italic}tui-doc-code .hljs-strong{font-weight:700}tui-doc-code .hljs .hljs-line-numbers{padding:0}tui-doc-code .hljs-ln-numbers{vertical-align:top;opacity:.3;text-align:end;padding-inline-end:1em!important}[tuiTheme=dark] tui-doc-code .hljs-variable,tui-doc-code[tuiTheme=dark] .hljs-variable,[tuiTheme=dark] tui-doc-code .hljs-template-variable,tui-doc-code[tuiTheme=dark] .hljs-template-variable{color:var(--tui-status-warning)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiDocHeader, selector: "header[tuiDocHeader]" }, { kind: "component", type: TuiDocNavigation, selector: "tui-doc-navigation" }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: TuiRoot, selector: "tui-root" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
27
- }
28
- export { TuiDocMain };
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocMain, decorators: [{
30
- type: Component,
31
- args: [{ standalone: true, selector: 'tui-doc-main', imports: [
32
- NgIf,
33
- RouterOutlet,
34
- TuiButton,
35
- TuiDocHeader,
36
- TuiDocNavigation,
37
- TuiIcon,
38
- TuiRoot,
39
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<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", styles: ["@keyframes tuiShaking{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-.3125rem,0,0)}20%,40%,60%,80%{transform:translate3d(.3125rem,0,0)}}html,body{scroll-padding-top:4rem;background:var(--tui-background-base)}tui-root>tui-scroll-controls>.t-bar_vertical{top:4rem!important}tui-doc-main{display:block}code:not(pre code):not(.hljs):not([class*=language-]){transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:inline-flex;background:var(--tui-background-neutral-1);color:var(--tui-text-secondary);vertical-align:middle;align-items:center;border-radius:.25rem;font-weight:500;outline:1px solid var(--tui-border-hover);font-size:.75rem;padding:0 .3125rem;margin:.125rem .1875rem;text-wrap:wrap}a code:not(pre code):not(.hljs):not([class*=language-]){color:var(--tui-text-action)}button:focus code,a:focus code{background:var(--tui-background-base)}.tui-doc-page{isolation:isolate;padding-block-start:4rem}tui-doc-navigation.tui-doc-navigation{position:fixed;top:4rem;bottom:0;inline-size:16.25rem;border-inline-end:1px solid var(--tui-border-normal)}@media screen and (max-width: 47.9625em){tui-doc-navigation.tui-doc-navigation{display:none}}.tui-doc-content{margin-inline-start:16.25rem}@media screen and (max-width: 47.9625em){.tui-doc-content{margin-inline-start:0}}.tui-doc-outlet+*{display:block}.tui-doc-switch-direction,.tui-doc-dark-mode-switch{margin-inline-start:1rem}tui-doc-code .hljs-tag{background:none}tui-doc-code .hljs{display:block;overflow-x:auto;padding:.5em;color:var(--tui-text-primary);background-color:var(--tui-background-neutral-1)}tui-doc-code .hljs.hljs-line-numbers{background:transparent}tui-doc-code .hljs-subst,tui-doc-code .hljs-title{font-weight:400;color:var(--tui-text-primary)}tui-doc-code .hljs-property{color:#bd65a4}tui-doc-code .hljs-comment,tui-doc-code .hljs-quote{color:var(--tui-text-secondary);font-style:italic}tui-doc-code .hljs-meta{color:#e38162}tui-doc-code .hljs-section,tui-doc-code .hljs-name,tui-doc-code .hljs-literal,tui-doc-code .hljs-keyword,tui-doc-code .hljs-selector-tag,tui-doc-code .hljs-type,tui-doc-code .hljs-selector-id,tui-doc-code .hljs-selector-class{font-weight:700;color:var(--tui-text-action)}tui-doc-code .hljs-attr{color:var(--tui-text-action)}tui-doc-code .hljs-attribute,tui-doc-code .hljs-number,tui-doc-code .hljs-regexp,tui-doc-code .hljs-link,tui-doc-code .hljs-built_in{font-weight:700;color:#b8474e}tui-doc-code .hljs-number,tui-doc-code .hljs-regexp,tui-doc-code .hljs-link{font-weight:400}tui-doc-code .hljs-string{color:var(--tui-status-positive);font-weight:700}tui-doc-code .hljs-symbol,tui-doc-code .hljs-bullet,tui-doc-code .hljs-formula{color:var(--tui-text-primary);background:var(--tui-background-base-alt);font-style:italic}tui-doc-code .hljs-doctag{text-decoration:underline}tui-doc-code .hljs-variable,tui-doc-code .hljs-template-variable{color:var(--tui-text-action-hover)}tui-doc-code .hljs-addition{background:var(--tui-status-positive-pale)}tui-doc-code .hljs-deletion{background:var(--tui-status-negative-pale)}tui-doc-code .hljs-emphasis{font-style:italic}tui-doc-code .hljs-strong{font-weight:700}tui-doc-code .hljs .hljs-line-numbers{padding:0}tui-doc-code .hljs-ln-numbers{vertical-align:top;opacity:.3;text-align:end;padding-inline-end:1em!important}[tuiTheme=dark] tui-doc-code .hljs-variable,tui-doc-code[tuiTheme=dark] .hljs-variable,[tuiTheme=dark] tui-doc-code .hljs-template-variable,tui-doc-code[tuiTheme=dark] .hljs-template-variable{color:var(--tui-status-warning)}\n"] }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9tYWluL21haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvbWFpbi9tYWluLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHlCQUF5QixFQUFFLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7O0FBRXBFLE1BbUJhLFVBQVU7SUFuQnZCO1FBb0JxQixRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JCLFVBQUssR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3hDLGFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFELFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3BDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN2RCxDQUFDO0tBT0w7SUFMVSxtQkFBbUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUVsRSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEYsQ0FBQzsrR0FkUSxVQUFVO21HQUFWLFVBQVUsd0VDckN2Qix3NERBc0RBLGdqSERoQ1EsSUFBSSw2RkFDSixZQUFZLDJKQUNaLFNBQVMsb0lBQ1QsWUFBWSxpRUFDWixnQkFBZ0IsK0RBQ2hCLE9BQU8scUZBQ1AsT0FBTzs7U0FTRixVQUFVOzRGQUFWLFVBQVU7a0JBbkJ0QixTQUFTO2lDQUNNLElBQUksWUFDTixjQUFjLFdBQ2Y7d0JBQ0wsSUFBSTt3QkFDSixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsT0FBTztxQkFDVixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUdwQix1QkFBdUIsQ0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVCwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGluamVjdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VFVJX0RPQ19ESVJFQ1RJT05fRU5BQkxFRCwgVFVJX0RPQ19JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy90b2tlbnMnO1xuaW1wb3J0IHtUdWlCdXR0b259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7VHVpSWNvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7VHVpUm9vdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9yb290JztcbmltcG9ydCB7VFVJX0RBUktfTU9ERX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcblxuaW1wb3J0IHtUdWlEb2NIZWFkZXJ9IGZyb20gJy4uL2ludGVybmFsL2hlYWRlcic7XG5pbXBvcnQge1R1aURvY05hdmlnYXRpb259IGZyb20gJy4uL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWRvYy1tYWluJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFJvdXRlck91dGxldCxcbiAgICAgICAgVHVpQnV0dG9uLFxuICAgICAgICBUdWlEb2NIZWFkZXIsXG4gICAgICAgIFR1aURvY05hdmlnYXRpb24sXG4gICAgICAgIFR1aUljb24sXG4gICAgICAgIFR1aVJvb3QsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFpbi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tYWluLnN0eWxlLmxlc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIC8vIEBub3RlOiBUaGlzIG9uZSB3YXMgZGVmYXVsdCBvbiBwdXJwb3NlLCBzbyB3ZSBjYW4gdGVzdCBkZW1vIGluIGRlZmF1bHQgbW9kZS5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3ByZWZlci1vbi1wdXNoLWNvbXBvbmVudC1jaGFuZ2UtZGV0ZWN0aW9uXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NNYWluIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvYyA9IGluamVjdChET0NVTUVOVCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25zID0gaW5qZWN0KFRVSV9ET0NfSUNPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkaXIgPSBpbmplY3QoVFVJX0RPQ19ESVJFQ1RJT05fRU5BQkxFRCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhcmtNb2RlID0gaW5qZWN0KFRVSV9EQVJLX01PREUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0aGVtZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmRhcmtNb2RlKCkgPyAnZGFyaycgOiBudWxsKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb24gPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLmRhcmtNb2RlKCkgPyB0aGlzLmljb25zLmxpZ2h0IDogdGhpcy5pY29ucy5kYXJrLFxuICAgICk7XG5cbiAgICBwdWJsaWMgY2hhbmdlVGV4dERpcmVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlyID0gdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlyJykgPz8gJ2x0cic7XG5cbiAgICAgICAgdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlyJywgZGlyID09PSAnbHRyJyA/ICdydGwnIDogJ2x0cicpO1xuICAgIH1cbn1cbiIsIjx0dWktcm9vdCBbYXR0ci50dWlUaGVtZV09XCJ0aGVtZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cInR1aS1kb2MtcGFnZVwiPlxuICAgICAgICA8dHVpLWRvYy1uYXZpZ2F0aW9uIGNsYXNzPVwidHVpLWRvYy1uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWlEb2NOYXZpZ2F0aW9uXCIgLz5cbiAgICAgICAgPC90dWktZG9jLW5hdmlnYXRpb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dWktZG9jLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxyb3V0ZXItb3V0bGV0IGNsYXNzPVwidHVpLWRvYy1vdXRsZXRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8aGVhZGVyIHR1aURvY0hlYWRlcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpRG9jSGVhZGVyXCIgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImRpciAmJiBpY29ucy5sdHJcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlN3aXRjaCBkaXJlY3Rpb25hbGl0eSBvZiB0aGUgZWxlbWVudCdzIHRleHRcIlxuICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwidHVpLWRvYy1zd2l0Y2gtZGlyZWN0aW9uXCJcbiAgICAgICAgICAgIFtpY29uRW5kXT1cImljb25zLmx0ci5wcmV2aWV3XCJcbiAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VUZXh0RGlyZWN0aW9uKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLWljb24gW2ljb25dPVwiaWNvbnMubHRyLmRpcmVjdGlvblwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlN3aXRjaCBiZXR3ZWVuIGRhcmsgYW5kIGxpZ2h0IG1vZGVcIlxuICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInR1aS1kb2MtZGFyay1tb2RlLXN3aXRjaFwiXG4gICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb24oKVwiXG4gICAgICAgICAgICBbc3R5bGUuYm9yZGVyLXJhZGl1cy4lXT1cIjEwMFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGFya01vZGUuc2V0KCFkYXJrTW9kZSgpKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2hlYWRlcj5cbiAgICA8bmctY29udGFpbmVyIG5nUHJvamVjdEFzPVwidHVpT3ZlckNvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpT3ZlckNvbnRlbnRcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJ0dWlPdmVyRGlhbG9nc1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWlPdmVyRGlhbG9nc1wiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cInR1aU92ZXJBbGVydHNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpT3ZlckFsZXJ0c1wiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cInR1aU92ZXJEcm9wZG93bnNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpT3ZlckRyb3Bkb3duc1wiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cInR1aU92ZXJIaW50c1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWlPdmVySGludHNcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC90dWktcm9vdD5cbiJdfQ==
@@ -1,205 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { DOCUMENT, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, ElementRef, inject, signal, ViewChild, } from '@angular/core';
4
- import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
5
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
6
- import { Title } from '@angular/platform-browser';
7
- import { Router, RouterLink, RouterLinkActive, Scroll } from '@angular/router';
8
- import { TUI_DOC_ICONS, TUI_DOC_PAGE_LOADED, TUI_DOC_SEARCH_ENABLED, TUI_DOC_SEARCH_TEXT, } from '@taiga-ui/addon-doc/tokens';
9
- import { tuiTransliterateKeyboardLayout } from '@taiga-ui/addon-doc/utils';
10
- import { TuiSidebarDirective } from '@taiga-ui/addon-mobile/directives/sidebar';
11
- import { TuiAutoFocus } from '@taiga-ui/cdk/directives/auto-focus';
12
- import { tuiControlValue, tuiWatch } from '@taiga-ui/cdk/observables';
13
- import { tuiPure, tuiUniqBy } from '@taiga-ui/cdk/utils/miscellaneous';
14
- import { TuiDataList } from '@taiga-ui/core/components/data-list';
15
- import { TuiExpand } from '@taiga-ui/core/components/expand';
16
- import { TuiIcon } from '@taiga-ui/core/components/icon';
17
- import { TuiLink } from '@taiga-ui/core/components/link';
18
- import { TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
19
- import { TuiTextfield, TuiTextfieldDirective } from '@taiga-ui/core/components/textfield';
20
- import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
21
- import { TuiAccordion } from '@taiga-ui/kit/components/accordion';
22
- import { TuiInputModule } from '@taiga-ui/legacy/components/input';
23
- import { TuiTextfieldControllerModule } from '@taiga-ui/legacy/directives/textfield-controller';
24
- import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
25
- import { combineLatest, filter, fromEvent, map, of, switchMap, take } from 'rxjs';
26
- import { NAVIGATION_ITEMS, NAVIGATION_LABELS, NAVIGATION_PROVIDERS, NAVIGATION_TITLE, } from './navigation.providers';
27
- import { TuiDocScrollIntoViewLink } from './scroll-into-view.directive';
28
- import * as i0 from "@angular/core";
29
- import * as i1 from "@angular/forms";
30
- import * as i2 from "@taiga-ui/kit/components/accordion";
31
- import * as i3 from "@taiga-ui/core/components/data-list";
32
- import * as i4 from "@taiga-ui/core/components/expand";
33
- import * as i5 from "@taiga-ui/core/components/textfield";
34
- import * as i6 from "@taiga-ui/legacy/directives/textfield-controller";
35
- class TuiDocNavigation {
36
- constructor() {
37
- this.router = inject(Router);
38
- this.doc = inject(DOCUMENT);
39
- this.open = signal(false);
40
- this.menuOpen = false;
41
- this.sidebar = inject(TuiSidebarDirective, { optional: true });
42
- this.labels = inject(NAVIGATION_LABELS);
43
- this.items = inject(NAVIGATION_ITEMS);
44
- this.searchText = inject(TUI_DOC_SEARCH_TEXT);
45
- this.searchEnabled = inject(TUI_DOC_SEARCH_ENABLED);
46
- this.docIcons = inject(TUI_DOC_ICONS);
47
- this.icons = inject(TUI_COMMON_ICONS);
48
- this.openPagesArr = [];
49
- this.openPagesGroupsArr = [];
50
- this.active = '';
51
- this.search = new FormControl('');
52
- this.filtered = toSignal(tuiControlValue(this.search).pipe(filter((search) => search.trim().length > 2), map((search) => this.filterItems(this.flattenSubPages(this.items), search))), { initialValue: [] });
53
- const titleService = inject(Title);
54
- const readyToScroll$ = inject(TUI_DOC_PAGE_LOADED);
55
- inject(NAVIGATION_TITLE)
56
- .pipe(tuiWatch(), takeUntilDestroyed())
57
- .subscribe((title) => {
58
- titleService.setTitle(title);
59
- this.openActivePageGroup();
60
- });
61
- combineLatest([
62
- this.router.events.pipe(filter((event) => event instanceof Scroll), switchMap(({ anchor }) => 'onscrollend' in this.doc
63
- ? fromEvent(this.doc, 'scrollend').pipe(map(() => anchor))
64
- : of(anchor))),
65
- inject(NAVIGATION_TITLE).pipe(switchMap(() => readyToScroll$.pipe(filter(Boolean)))),
66
- ])
67
- .pipe(take(1), map(([anchor]) => anchor || ''), filter(Boolean), takeUntilDestroyed())
68
- .subscribe((anchor) => this.navigateToAnchorLink(anchor));
69
- }
70
- get canOpen() {
71
- return (this.search.value?.length ?? 0) > 2;
72
- }
73
- get itemsWithoutSections() {
74
- return this.items[this.items.length - 1] ?? [];
75
- }
76
- $pages(pages) {
77
- return pages;
78
- }
79
- isActive(route) {
80
- return route === this.active;
81
- }
82
- onGroupClick(index) {
83
- this.openPagesGroupsArr[index] = !this.openPagesGroupsArr[index];
84
- }
85
- closeMenu() {
86
- this.menuOpen = false;
87
- }
88
- onClick() {
89
- this.open.set(false);
90
- this.menuOpen = false;
91
- this.search.setValue('');
92
- this.openActivePageGroup();
93
- }
94
- onFocusSearch(event) {
95
- if (event.code === 'Slash' &&
96
- !this.doc.activeElement?.matches('input,textarea,[contenteditable]')) {
97
- this.searchInput?.nativeElement?.focus();
98
- event.preventDefault();
99
- }
100
- }
101
- filterItems(items, search) {
102
- return items.map((section) => tuiUniqBy(section.filter(({ title, keywords = '' }) => {
103
- search = search.toLowerCase().trim();
104
- keywords = keywords.toLowerCase();
105
- title = title.toLowerCase();
106
- return (title.includes(search) ||
107
- keywords.includes(search) ||
108
- title.includes(tuiTransliterateKeyboardLayout(search)) ||
109
- keywords.includes(tuiTransliterateKeyboardLayout(search)) ||
110
- search.replaceAll('-', '').includes(title) ||
111
- title.includes(search.replaceAll(/\s|tui/g, '')) ||
112
- keywords.includes(search.replaceAll(/\s|tui/g, '')) ||
113
- search.split(/\s/).find((word) => title.includes(word)));
114
- }), 'title'));
115
- }
116
- flattenSubPages(items) {
117
- return items.reduce((array, item) => [
118
- ...array,
119
- item.reduce((pages, page) => 'subPages' in page
120
- ? [...pages, ...page.subPages]
121
- : [...pages, page], []),
122
- ], []);
123
- }
124
- isActiveRoute(route) {
125
- return this.router.isActive(route, {
126
- paths: 'subset',
127
- queryParams: 'subset',
128
- fragment: 'ignored',
129
- matrixParams: 'ignored',
130
- });
131
- }
132
- openActivePageGroup() {
133
- this.items.forEach((pages, pagesIndex) => {
134
- pages.forEach((page, pageIndex) => {
135
- if ('route' in page && this.isActiveRoute(page.route)) {
136
- this.openPagesArr[pagesIndex] = true;
137
- this.active = page.route;
138
- }
139
- if ('subPages' in page) {
140
- page.subPages.forEach((subPage) => {
141
- if (this.isActiveRoute(subPage.route)) {
142
- this.openPagesArr[pagesIndex] = true;
143
- this.openPagesGroupsArr[pagesIndex * 100 + pageIndex] = true;
144
- this.active = subPage.route;
145
- }
146
- });
147
- }
148
- });
149
- });
150
- }
151
- navigateToAnchorLink(fragment) {
152
- const nodes = fragment ? this.doc.querySelectorAll(`#${fragment}`) : [];
153
- const element = nodes.length && nodes[nodes.length - 1];
154
- if (!element) {
155
- return;
156
- }
157
- // emulate :target event
158
- const target = this.doc.createElement('a');
159
- target.href = `${this.doc.location.pathname}#${fragment}`;
160
- target.style.display = 'none';
161
- target.style.position = 'absolute';
162
- this.doc.body.appendChild(target);
163
- target.click();
164
- target.remove();
165
- }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocNavigation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocNavigation, isStandalone: true, selector: "tui-doc-navigation", host: { listeners: { "window:keydown": "onFocusSearch($event)" }, properties: { "class._open": "menuOpen" } }, providers: NAVIGATION_PROVIDERS, viewQueries: [{ propertyName: "searchInput", first: true, predicate: TuiTextfieldDirective, descendants: true, read: ElementRef }], ngImport: i0, template: "<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", styles: [":host{z-index:1;display:flex;flex-direction:column;text-align:center;background:var(--tui-background-base)}.t-input{margin:1.25rem}.t-input ::ng-deep tui-icon{border-width:.25rem}.t-slash{block-size:1rem;font-size:.5rem}.t-navigation{display:flex;max-block-size:100%;min-block-size:0;flex:1 1 0;text-align:start}.t-navigation tui-scrollbar{overscroll-behavior:none}.t-accordion-standalone{margin-block-start:1rem}.t-scrollbar{scroll-behavior:var(--tui-scroll-behavior);inline-size:100%}.t-items-container{display:flex;flex-direction:column;padding:0 1rem}.t-label{margin-inline-start:.5rem}.t-expand{margin-inline-start:.25rem}.t-section{display:flex;flex-direction:column;align-items:flex-start;margin:-.5rem 0 -1rem}.t-section_bordered{margin:.5rem 0;border-inline-start:1px solid var(--tui-border-normal)}@supports (-webkit-touch-callout: none){.t-prevent-ios-scroll:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}.t-subsection{margin-inline-start:.5rem}.t-sublink{font:var(--tui-font-text-m);margin-inline-start:.5rem;padding:.5rem 0;text-decoration:none}.t-sublink_small{margin-inline-start:1rem;line-height:1.5rem;padding-block-start:.5rem}.t-sublink_subsection{margin-inline-start:0;line-height:1.6rem}.t-sublink.t-sublink.t-sublink_active{color:var(--tui-text-primary)}.t-icon{margin-inline-start:.5rem}.t-chevron{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:1rem;block-size:1rem;margin:-.25rem .25rem 0 -.1875rem}.t-chevron_active{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i2.TuiAccordionItem, selector: "tui-accordion-item", inputs: ["noPadding", "showArrow", "borders", "size", "disabled", "disableHover", "open", "async"], outputs: ["openChange"] }, { kind: "directive", type: i2.TuiAccordionDirective, selector: "tui-accordion", inputs: ["closeOthers"] }, { kind: "directive", type: i2.TuiAccordionItemContent, selector: "ng-template[tuiAccordionItemContent]" }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "component", type: i3.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "component", type: i3.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "directive", type: i3.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "directive", type: TuiDocScrollIntoViewLink, selector: "[tuiDocScrollIntoViewLink]", inputs: ["tuiDocScrollIntoViewLink"] }, { kind: "component", type: i4.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "ngmodule", type: TuiInputModule }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }, { kind: "component", type: i5.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i5.TuiTextfieldDirective, selector: "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])" }, { kind: "directive", type: i5.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i5.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i6.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
168
- }
169
- __decorate([
170
- tuiPure
171
- ], TuiDocNavigation.prototype, "filterItems", null);
172
- __decorate([
173
- tuiPure
174
- ], TuiDocNavigation.prototype, "flattenSubPages", null);
175
- export { TuiDocNavigation };
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocNavigation, decorators: [{
177
- type: Component,
178
- args: [{ standalone: true, selector: 'tui-doc-navigation', imports: [
179
- NgForOf,
180
- NgIf,
181
- NgTemplateOutlet,
182
- PolymorpheusOutlet,
183
- ReactiveFormsModule,
184
- RouterLink,
185
- RouterLinkActive,
186
- TuiAccordion,
187
- TuiAutoFocus,
188
- TuiDataList,
189
- TuiDocScrollIntoViewLink,
190
- TuiExpand,
191
- TuiIcon,
192
- TuiInputModule,
193
- TuiLink,
194
- TuiScrollbar,
195
- TuiTextfield,
196
- TuiTextfieldControllerModule,
197
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: NAVIGATION_PROVIDERS, host: {
198
- '[class._open]': 'menuOpen',
199
- '(window:keydown)': 'onFocusSearch($event)',
200
- }, template: "<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", styles: [":host{z-index:1;display:flex;flex-direction:column;text-align:center;background:var(--tui-background-base)}.t-input{margin:1.25rem}.t-input ::ng-deep tui-icon{border-width:.25rem}.t-slash{block-size:1rem;font-size:.5rem}.t-navigation{display:flex;max-block-size:100%;min-block-size:0;flex:1 1 0;text-align:start}.t-navigation tui-scrollbar{overscroll-behavior:none}.t-accordion-standalone{margin-block-start:1rem}.t-scrollbar{scroll-behavior:var(--tui-scroll-behavior);inline-size:100%}.t-items-container{display:flex;flex-direction:column;padding:0 1rem}.t-label{margin-inline-start:.5rem}.t-expand{margin-inline-start:.25rem}.t-section{display:flex;flex-direction:column;align-items:flex-start;margin:-.5rem 0 -1rem}.t-section_bordered{margin:.5rem 0;border-inline-start:1px solid var(--tui-border-normal)}@supports (-webkit-touch-callout: none){.t-prevent-ios-scroll:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}.t-subsection{margin-inline-start:.5rem}.t-sublink{font:var(--tui-font-text-m);margin-inline-start:.5rem;padding:.5rem 0;text-decoration:none}.t-sublink_small{margin-inline-start:1rem;line-height:1.5rem;padding-block-start:.5rem}.t-sublink_subsection{margin-inline-start:0;line-height:1.6rem}.t-sublink.t-sublink.t-sublink_active{color:var(--tui-text-primary)}.t-icon{margin-inline-start:.5rem}.t-chevron{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:1rem;block-size:1rem;margin:-.25rem .25rem 0 -.1875rem}.t-chevron_active{transform:rotate(90deg)}\n"] }]
201
- }], ctorParameters: function () { return []; }, propDecorators: { searchInput: [{
202
- type: ViewChild,
203
- args: [TuiTextfieldDirective, { read: ElementRef }]
204
- }], filterItems: [], flattenSubPages: [] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQ0gsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3RCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxlQUFlLEVBQUUs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QzswRUFJZ0IsV0FBVztzQkFEM0IsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBMEc1QyxXQUFXLE1BNEJYLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5ULCBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VGl0bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtSb3V0ZXIsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUsIFNjcm9sbH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gICAgVFVJX0RPQ19JQ09OUyxcbiAgICBUVUlfRE9DX1BBR0VfTE9BREVELFxuICAgIFRVSV9ET0NfU0VBUkNIX0VOQUJMRUQsXG4gICAgVFVJX0RPQ19TRUFSQ0hfVEVYVCxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy90b2tlbnMnO1xuaW1wb3J0IHt0eXBlIFR1aURvY1JvdXRlUGFnZSwgdHlwZSBUdWlEb2NSb3V0ZVBhZ2VzfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3R5cGVzJztcbmltcG9ydCB7dHVpVHJhbnNsaXRlcmF0ZUtleWJvYXJkTGF5b3V0fSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3V0aWxzJztcbmltcG9ydCB7VHVpU2lkZWJhckRpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLW1vYmlsZS9kaXJlY3RpdmVzL3NpZGViYXInO1xuaW1wb3J0IHtUdWlBdXRvRm9jdXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzJztcbmltcG9ydCB7dHVpQ29udHJvbFZhbHVlLCB0dWlXYXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aVB1cmUsIHR1aVVuaXFCeX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpRGF0YUxpc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VHVpRXhwYW5kfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2V4cGFuZCc7XG5pbXBvcnQge1R1aUljb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQge1R1aUxpbmt9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbGluayc7XG5pbXBvcnQge1R1aVNjcm9sbGJhcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGQsIFR1aVRleHRmaWVsZERpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtUVUlfQ09NTU9OX0lDT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlBY2NvcmRpb259IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hY2NvcmRpb24nO1xuaW1wb3J0IHtUdWlJbnB1dE1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7VHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgZmlsdGVyLCBmcm9tRXZlbnQsIG1hcCwgb2YsIHN3aXRjaE1hcCwgdGFrZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgTkFWSUdBVElPTl9JVEVNUyxcbiAgICBOQVZJR0FUSU9OX0xBQkVMUyxcbiAgICBOQVZJR0FUSU9OX1BST1ZJREVSUyxcbiAgICBOQVZJR0FUSU9OX1RJVExFLFxufSBmcm9tICcuL25hdmlnYXRpb24ucHJvdmlkZXJzJztcbmltcG9ydCB7VHVpRG9jU2Nyb2xsSW50b1ZpZXdMaW5rfSBmcm9tICcuL3Njcm9sbC1pbnRvLXZpZXcuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtbmF2aWdhdGlvbicsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBQb2x5bW9ycGhldXNPdXRsZXQsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFJvdXRlckxpbmssXG4gICAgICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgICAgIFR1aUFjY29yZGlvbixcbiAgICAgICAgVHVpQXV0b0ZvY3VzLFxuICAgICAgICBUdWlEYXRhTGlzdCxcbiAgICAgICAgVHVpRG9jU2Nyb2xsSW50b1ZpZXdMaW5rLFxuICAgICAgICBUdWlFeHBhbmQsXG4gICAgICAgIFR1aUljb24sXG4gICAgICAgIFR1aUlucHV0TW9kdWxlLFxuICAgICAgICBUdWlMaW5rLFxuICAgICAgICBUdWlTY3JvbGxiYXIsXG4gICAgICAgIFR1aVRleHRmaWVsZCxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25hdmlnYXRpb24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogTkFWSUdBVElPTl9QUk9WSURFUlMsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLl9vcGVuXSc6ICdtZW51T3BlbicsXG4gICAgICAgICcod2luZG93OmtleWRvd24pJzogJ29uRm9jdXNTZWFyY2goJGV2ZW50KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jTmF2aWdhdGlvbiB7XG4gICAgQFZpZXdDaGlsZChUdWlUZXh0ZmllbGREaXJlY3RpdmUsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaElucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgcHJvdGVjdGVkIG9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCBtZW51T3BlbiA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpZGViYXIgPSBpbmplY3QoVHVpU2lkZWJhckRpcmVjdGl2ZSwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVscyA9IGluamVjdChOQVZJR0FUSU9OX0xBQkVMUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGl0ZW1zID0gaW5qZWN0KE5BVklHQVRJT05fSVRFTVMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWFyY2hUZXh0ID0gaW5qZWN0KFRVSV9ET0NfU0VBUkNIX1RFWFQpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWFyY2hFbmFibGVkID0gaW5qZWN0KFRVSV9ET0NfU0VBUkNIX0VOQUJMRUQpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkb2NJY29ucyA9IGluamVjdChUVUlfRE9DX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG5cbiAgICBwcm90ZWN0ZWQgb3BlblBhZ2VzQXJyOiBib29sZWFuW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgb3BlblBhZ2VzR3JvdXBzQXJyOiBib29sZWFuW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgYWN0aXZlID0gJyc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmaWx0ZXJlZCA9IHRvU2lnbmFsKFxuICAgICAgICB0dWlDb250cm9sVmFsdWU8c3RyaW5nPih0aGlzLnNlYXJjaCkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoc2VhcmNoKSA9PiBzZWFyY2gudHJpbSgpLmxlbmd0aCA+IDIpLFxuICAgICAgICAgICAgbWFwKChzZWFyY2gpID0+IHRoaXMuZmlsdGVySXRlbXModGhpcy5mbGF0dGVuU3ViUGFnZXModGhpcy5pdGVtcyksIHNlYXJjaCkpLFxuICAgICAgICApLFxuICAgICAgICB7aW5pdGlhbFZhbHVlOiBbXX0sXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuICAgICAgICBjb25zdCByZWFkeVRvU2Nyb2xsJCA9IGluamVjdChUVUlfRE9DX1BBR0VfTE9BREVEKTtcblxuICAgICAgICBpbmplY3QoTkFWSUdBVElPTl9USVRMRSlcbiAgICAgICAgICAgIC5waXBlKHR1aVdhdGNoKCksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodGl0bGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGUpO1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkFjdGl2ZVBhZ2VHcm91cCgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KTogZXZlbnQgaXMgU2Nyb2xsID0+IGV2ZW50IGluc3RhbmNlb2YgU2Nyb2xsKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHthbmNob3J9KSA9PlxuICAgICAgICAgICAgICAgICAgICAnb25zY3JvbGxlbmQnIGluIHRoaXMuZG9jXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGZyb21FdmVudCh0aGlzLmRvYywgJ3Njcm9sbGVuZCcpLnBpcGUobWFwKCgpID0+IGFuY2hvcikpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG9mKGFuY2hvciksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpbmplY3QoTkFWSUdBVElPTl9USVRMRSkucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gcmVhZHlUb1Njcm9sbCQucGlwZShmaWx0ZXIoQm9vbGVhbikpKSxcbiAgICAgICAgICAgICksXG4gICAgICAgIF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIG1hcCgoW2FuY2hvcl0pID0+IGFuY2hvciB8fCAnJyksXG4gICAgICAgICAgICAgICAgZmlsdGVyPHN0cmluZz4oQm9vbGVhbiksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChhbmNob3IpID0+IHRoaXMubmF2aWdhdGVUb0FuY2hvckxpbmsoYW5jaG9yKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuc2VhcmNoLnZhbHVlPy5sZW5ndGggPz8gMCkgPiAyO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXRlbXNXaXRob3V0U2VjdGlvbnMoKTogVHVpRG9jUm91dGVQYWdlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0gPz8gW107XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkICRwYWdlczxUIGV4dGVuZHMgVHVpRG9jUm91dGVQYWdlW10+KHBhZ2VzOiBUKTogcmVhZG9ubHkgVHVpRG9jUm91dGVQYWdlW10ge1xuICAgICAgICByZXR1cm4gcGFnZXMgYXMgVHVpRG9jUm91dGVQYWdlW107XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzQWN0aXZlKHJvdXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHJvdXRlID09PSB0aGlzLmFjdGl2ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Hcm91cENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdID0gIXRoaXMub3BlblBhZ2VzR3JvdXBzQXJyW2luZGV4XTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xvc2VNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VhcmNoLnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5vcGVuQWN0aXZlUGFnZUdyb3VwKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNTZWFyY2goZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuY29kZSA9PT0gJ1NsYXNoJyAmJlxuICAgICAgICAgICAgIXRoaXMuZG9jLmFjdGl2ZUVsZW1lbnQ/Lm1hdGNoZXMoJ2lucHV0LHRleHRhcmVhLFtjb250ZW50ZWRpdGFibGVdJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBmaWx0ZXJJdGVtcyhcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUm91dGVQYWdlW10+LFxuICAgICAgICBzZWFyY2g6IHN0cmluZyxcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1JvdXRlUGFnZVtdPiB7XG4gICAgICAgIHJldHVybiBpdGVtcy5tYXAoKHNlY3Rpb24pID0+XG4gICAgICAgICAgICB0dWlVbmlxQnkoXG4gICAgICAgICAgICAgICAgc2VjdGlvbi5maWx0ZXIoKHt0aXRsZSwga2V5d29yZHMgPSAnJ30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUuaW5jbHVkZXModHVpVHJhbnNsaXRlcmF0ZUtleWJvYXJkTGF5b3V0KHNlYXJjaCkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcy5pbmNsdWRlcyh0dWlUcmFuc2xpdGVyYXRlS2V5Ym9hcmRMYXlvdXQoc2VhcmNoKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC5yZXBsYWNlQWxsKCctJywgJycpLmluY2x1ZGVzKHRpdGxlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUuaW5jbHVkZXMoc2VhcmNoLnJlcGxhY2VBbGwoL1xcc3x0dWkvZywgJycpKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuaW5jbHVkZXMoc2VhcmNoLnJlcGxhY2VBbGwoL1xcc3x0dWkvZywgJycpKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLnNwbGl0KC9cXHMvKS5maW5kKCh3b3JkKSA9PiB0aXRsZS5pbmNsdWRlcyh3b3JkKSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAndGl0bGUnLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZmxhdHRlblN1YlBhZ2VzKFxuICAgICAgICBpdGVtczogcmVhZG9ubHkgVHVpRG9jUm91dGVQYWdlc1tdLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUm91dGVQYWdlW10+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLnJlZHVjZTxSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1JvdXRlUGFnZVtdPj4oXG4gICAgICAgICAgICAoYXJyYXksIGl0ZW0pID0+IFtcbiAgICAgICAgICAgICAgICAuLi5hcnJheSxcbiAgICAgICAgICAgICAgICBpdGVtLnJlZHVjZTxyZWFkb25seSBUdWlEb2NSb3V0ZVBhZ2VbXT4oXG4gICAgICAgICAgICAgICAgICAgIChwYWdlcywgcGFnZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICdzdWJQYWdlcycgaW4gcGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gWy4uLnBhZ2VzLCAuLi5wYWdlLnN1YlBhZ2VzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogWy4uLnBhZ2VzLCBwYWdlXSxcbiAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWN0aXZlUm91dGUocm91dGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUocm91dGUsIHtcbiAgICAgICAgICAgIHBhdGhzOiAnc3Vic2V0JyxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiAnc3Vic2V0JyxcbiAgICAgICAgICAgIGZyYWdtZW50OiAnaWdub3JlZCcsXG4gICAgICAgICAgICBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuQWN0aXZlUGFnZUdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKHBhZ2VzLCBwYWdlc0luZGV4KSA9PiB7XG4gICAgICAgICAgICBwYWdlcy5mb3JFYWNoKChwYWdlLCBwYWdlSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoJ3JvdXRlJyBpbiBwYWdlICYmIHRoaXMuaXNBY3RpdmVSb3V0ZShwYWdlLnJvdXRlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0FycltwYWdlc0luZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gcGFnZS5yb3V0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoJ3N1YlBhZ2VzJyBpbiBwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2Uuc3ViUGFnZXMuZm9yRWFjaCgoc3ViUGFnZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVSb3V0ZShzdWJQYWdlLnJvdXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblBhZ2VzQXJyW3BhZ2VzSW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0dyb3Vwc0FycltwYWdlc0luZGV4ICogMTAwICsgcGFnZUluZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBzdWJQYWdlLnJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuYXZpZ2F0ZVRvQW5jaG9yTGluayhmcmFnbWVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gZnJhZ21lbnQgPyB0aGlzLmRvYy5xdWVyeVNlbGVjdG9yQWxsKGAjJHtmcmFnbWVudH1gKSA6IFtdO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbm9kZXMubGVuZ3RoICYmIG5vZGVzW25vZGVzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW11bGF0ZSA6dGFyZ2V0IGV2ZW50XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgICAgICB0YXJnZXQuaHJlZiA9IGAke3RoaXMuZG9jLmxvY2F0aW9uLnBhdGhuYW1lfSMke2ZyYWdtZW50fWA7XG4gICAgICAgIHRhcmdldC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB0YXJnZXQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICB0aGlzLmRvYy5ib2R5LmFwcGVuZENoaWxkKHRhcmdldCk7XG4gICAgICAgIHRhcmdldC5jbGljaygpO1xuICAgICAgICB0YXJnZXQucmVtb3ZlKCk7XG4gICAgfVxufVxuIiwiPHR1aS10ZXh0ZmllbGRcbiAgICAqbmdJZj1cInNlYXJjaEVuYWJsZWQoKVwiXG4gICAgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIlxuICAgIGNsYXNzPVwidC1pbnB1dFwiXG4gICAgW2ljb25TdGFydF09XCJkb2NJY29ucy5zZWFyY2hcIlxuICAgIFtvcGVuXT1cIm9wZW4oKSAmJiBjYW5PcGVuXCJcbiAgICAoa2V5dXApPVwib3Blbi5zZXQoY2FuT3BlbiAmJiAkZXZlbnQuY29kZSAhPT0gJ0VzY2FwZScpXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvcGVuLnNldCgkZXZlbnQpXCJcbj5cbiAgICA8Y29kZVxuICAgICAgICAqbmdJZj1cIiFzZWFyY2gudmFsdWVcIlxuICAgICAgICBjbGFzcz1cInQtc2xhc2hcIlxuICAgID5cbiAgICAgICAgL1xuICAgIDwvY29kZT5cbiAgICA8aW5wdXRcbiAgICAgICAgdHVpVGV4dGZpZWxkXG4gICAgICAgIGNsYXNzPVwidC1wcmV2ZW50LWlvcy1zY3JvbGxcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFRleHRcIlxuICAgICAgICBbdHVpQXV0b0ZvY3VzXT1cIiEhc2lkZWJhclwiXG4gICAgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuT3BlblwiPlxuICAgICAgICA8dHVpLWRhdGEtbGlzdCAqdHVpVGV4dGZpZWxkRHJvcGRvd24+XG4gICAgICAgICAgICA8dHVpLW9wdC1ncm91cFxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBmaWx0ZXJlZCgpOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsc1tpbmRleF0gfHwgJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5yb3V0ZS5pbmNsdWRlcygnOi8vJyk7IGVsc2UgaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yZWxdPVwiaXRlbS5yZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0IHx8ICdfc2VsZidcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaXRlbS5pY29uIGFzIGljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ludGVybmFsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yZWxdPVwiaXRlbS5yZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJpdGVtLmZyYWdtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0IHx8ICdfc2VsZidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIml0ZW0uaWNvbiBhcyBpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90dWktb3B0LWdyb3VwPlxuICAgICAgICA8L3R1aS1kYXRhLWxpc3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3R1aS10ZXh0ZmllbGQ+XG5cbjxuYXYgY2xhc3M9XCJ0LW5hdmlnYXRpb25cIj5cbiAgICA8dHVpLXNjcm9sbGJhciBjbGFzcz1cInQtc2Nyb2xsYmFyXCI+XG4gICAgICAgIDx0dWktYWNjb3JkaW9uXG4gICAgICAgICAgICBbY2xhc3MudC1hY2NvcmRpb24tc3RhbmRhbG9uZV09XCIhc2VhcmNoRW5hYmxlZCgpXCJcbiAgICAgICAgICAgIFtjbG9zZU90aGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbcm91bmRlZF09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0dWktYWNjb3JkaW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgbGFiZWxzOyBpbmRleCBhcyBpbmRleFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIFtib3JkZXJzXT1cIm51bGxcIlxuICAgICAgICAgICAgICAgIFtvcGVuXT1cIiEhb3BlblBhZ2VzQXJyW2luZGV4XVwiXG4gICAgICAgICAgICAgICAgKG9wZW5DaGFuZ2UpPVwib3BlblBhZ2VzQXJyW2luZGV4XSA9ICRldmVudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgbGFiZWwgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHR1aUFjY29yZGlvbkl0ZW1Db250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidC1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNbaW5kZXhdOyBpbmRleCBhcyBzdWJJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicGFnZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgaW5kZXg6IGluZGV4ICogMTAwICsgc3ViSW5kZXh9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3R1aS1hY2NvcmRpb24taXRlbT5cbiAgICAgICAgPC90dWktYWNjb3JkaW9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidC1pdGVtcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1dpdGhvdXRTZWN0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBhZ2VzXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGluZGV4OiBpdGVtcy5sZW5ndGggLSAxICsgaW5kZXh9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI3BhZ2VzXG4gICAgICAgICAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgICAgICAgICBsZXQtaXRlbT1cIml0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uc3ViUGFnZXM7IGVsc2Ugc3ViUGFnZXNUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5yb3V0ZS5pbmNsdWRlcygnOi8vJyk7IGVsc2UgaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1zdWJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucmVsXT1cIml0ZW0ucmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiaXRlbS50YXJnZXQgfHwgJ19zZWxmJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIml0ZW0uaWNvbiBhcyBpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW50ZXJuYWw+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwidC1zdWJsaW5rX2FjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtc3VibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yZWxdPVwiaXRlbS5yZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0IHx8ICdfc2VsZidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3R1aURvY1Njcm9sbEludG9WaWV3TGlua109XCJpc0FjdGl2ZShpdGVtLnJvdXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VNZW51KClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaXRlbS5pY29uIGFzIGljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3ViUGFnZXNUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXN1YnNlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwie2V4YWN0OiBmYWxzZX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnN1YlBhZ2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXN1YmxpbmsgdC1zdWJsaW5rX3N1YnNlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uR3JvdXBDbGljayhpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY2hldnJvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnQtY2hldnJvbl9hY3RpdmVdPVwiISFvcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29ucy5tb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaXRlbS5pY29uIGFzIGljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8dHVpLWV4cGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwiISFvcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInQtc2VjdGlvbiB0LXNlY3Rpb25fYm9yZGVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJQYWdlIG9mICRwYWdlcyhpdGVtLnN1YlBhZ2VzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJQYWdlLnJvdXRlLmluY2x1ZGVzKCc6Ly8nKTsgZWxzZSBpbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtc3VibGluayB0LXN1Ymxpbmtfc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIucmVsXT1cInN1YlBhZ2UucmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInN1YlBhZ2Uucm91dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhcmdldF09XCJzdWJQYWdlLnRhcmdldCB8fCAnX3NlbGYnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViUGFnZS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cInN1YlBhZ2UuaWNvbiBhcyBpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbnRlcm5hbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cInQtc3VibGlua19hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtc3VibGluayB0LXN1Ymxpbmtfc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJlbF09XCJzdWJQYWdlLnJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cInN1YlBhZ2UuZnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInN1YlBhZ2Uucm91dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwic3ViUGFnZS50YXJnZXQgfHwgJ19zZWxmJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aURvY1Njcm9sbEludG9WaWV3TGlua109XCJpc0FjdGl2ZShzdWJQYWdlLnJvdXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlTWVudSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdWJQYWdlLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJzdWJQYWdlLmljb24gYXMgaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3R1aS1leHBhbmQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdHVpLXNjcm9sbGJhcj5cbjwvbmF2PlxuXG48bmctY29udGVudCAvPlxuIl19
@@ -1,59 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { ActivatedRoute, NavigationEnd, Router, Scroll } from '@angular/router';
4
- import { TUI_DOC_PAGES, TUI_DOC_TITLE } from '@taiga-ui/addon-doc/tokens';
5
- import { tuiAutoFocusOptionsProvider } from '@taiga-ui/cdk/directives/auto-focus';
6
- import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
7
- import { tuiLinkOptionsProvider } from '@taiga-ui/core/components/link';
8
- import { tuiScrollbarOptionsProvider } from '@taiga-ui/core/components/scrollbar';
9
- import { filter, map, mergeMap } from 'rxjs';
10
- function labelsProviderFactory(pages) {
11
- return pages
12
- .map(({ section }) => section)
13
- .filter(tuiIsPresent)
14
- .filter((item, index, array) => array.indexOf(item) === index);
15
- }
16
- /**
17
- * Page title
18
- */
19
- export const NAVIGATION_TITLE = new InjectionToken(ngDevMode ? 'NAVIGATION_TITLE' : '');
20
- /**
21
- * Navigation sections labels for search
22
- */
23
- export const NAVIGATION_LABELS = new InjectionToken(ngDevMode ? 'NAVIGATION_LABELS' : '');
24
- /**
25
- * Navigation pages
26
- */
27
- export const NAVIGATION_ITEMS = new InjectionToken(ngDevMode ? 'NAVIGATION_ITEMS' : '');
28
- export const NAVIGATION_PROVIDERS = [
29
- tuiAutoFocusOptionsProvider({ preventScroll: true }),
30
- tuiLinkOptionsProvider({ appearance: 'action-grayscale' }),
31
- {
32
- provide: NAVIGATION_TITLE,
33
- deps: [Router, ActivatedRoute, TUI_DOC_TITLE],
34
- useFactory: (router, activatedRoute, titlePrefix) => router.events.pipe(filter((event) => event instanceof NavigationEnd ||
35
- (event instanceof Scroll
36
- ? event.routerEvent instanceof NavigationEnd
37
- : false)), map(() => activatedRoute.firstChild), filter(tuiIsPresent), mergeMap(({ data }) => data), map(({ title }) => `${titlePrefix}${title}`), takeUntilDestroyed()),
38
- },
39
- {
40
- provide: NAVIGATION_LABELS,
41
- deps: [TUI_DOC_PAGES],
42
- useFactory: labelsProviderFactory,
43
- },
44
- {
45
- provide: NAVIGATION_ITEMS,
46
- deps: [TUI_DOC_PAGES],
47
- useFactory: (pages) => {
48
- const labels = labelsProviderFactory(pages);
49
- return [
50
- ...labels.map((label) => pages.filter(({ section }) => section === label)),
51
- pages.filter((page) => !page.section),
52
- ];
53
- },
54
- },
55
- tuiScrollbarOptionsProvider({
56
- mode: 'hover',
57
- }),
58
- ];
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24ucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxjQUFjLEVBQWMsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRixPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXhFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWtCLE1BQU0sTUFBTSxDQUFDO0FBRTVELFNBQVMscUJBQXFCLENBQUMsS0FBdUI7SUFDbEQsT0FBTyxLQUFLO1NBQ1AsR0FBRyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQzNCLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDcEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQzlDLFNBQVMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDdEMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQy9DLFNBQVMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDdkMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQzlDLFNBQVMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFlO0lBQzVDLDJCQUEyQixDQUFDLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ2xELHNCQUFzQixDQUFDLEVBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFDLENBQUM7SUFDeEQ7UUFDSSxPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDO1FBQzdDLFVBQVUsRUFBRSxDQUNSLE1BQWMsRUFDZCxjQUE4QixFQUM5QixXQUFtQixFQUNELEVBQUUsQ0FDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsTUFBTSxDQUNGLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FDYixLQUFLLFlBQVksYUFBYTtZQUM5QixDQUFDLEtBQUssWUFBWSxNQUFNO2dCQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsWUFBWSxhQUFhO2dCQUM1QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ25CLEVBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUNwQixRQUFRLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDMUIsR0FBRyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxXQUFXLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFDMUMsa0JBQWtCLEVBQUUsQ0FDdkI7S0FDUjtJQUNEO1FBQ0ksT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDckIsVUFBVSxFQUFFLHFCQUFxQjtLQUNwQztJQUNEO1FBQ0ksT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDckIsVUFBVSxFQUFFLENBQUMsS0FBdUIsRUFBK0IsRUFBRTtZQUNqRSxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1QyxPQUFPO2dCQUNILEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQztnQkFDeEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3hDLENBQUM7UUFDTixDQUFDO0tBQ0o7SUFDRCwyQkFBMkIsQ0FBQztRQUN4QixJQUFJLEVBQUUsT0FBTztLQUNoQixDQUFDO0NBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW4sIHR5cGUgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIHR5cGUgRXZlbnQsIE5hdmlnYXRpb25FbmQsIFJvdXRlciwgU2Nyb2xsfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUVUlfRE9DX1BBR0VTLCBUVUlfRE9DX1RJVExFfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3Rva2Vucyc7XG5pbXBvcnQge3R5cGUgVHVpRG9jUm91dGVQYWdlc30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy90eXBlcyc7XG5pbXBvcnQge3R1aUF1dG9Gb2N1c09wdGlvbnNQcm92aWRlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2F1dG8tZm9jdXMnO1xuaW1wb3J0IHt0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R1aUxpbmtPcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbGluayc7XG5pbXBvcnQge3R1aVNjcm9sbGJhck9wdGlvbnNQcm92aWRlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHR5cGUgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmZ1bmN0aW9uIGxhYmVsc1Byb3ZpZGVyRmFjdG9yeShwYWdlczogVHVpRG9jUm91dGVQYWdlcyk6IHJlYWRvbmx5IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gcGFnZXNcbiAgICAgICAgLm1hcCgoe3NlY3Rpb259KSA9PiBzZWN0aW9uKVxuICAgICAgICAuZmlsdGVyKHR1aUlzUHJlc2VudClcbiAgICAgICAgLmZpbHRlcigoaXRlbSwgaW5kZXgsIGFycmF5KSA9PiBhcnJheS5pbmRleE9mKGl0ZW0pID09PSBpbmRleCk7XG59XG5cbi8qKlxuICogUGFnZSB0aXRsZVxuICovXG5leHBvcnQgY29uc3QgTkFWSUdBVElPTl9USVRMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPHN0cmluZz4+KFxuICAgIG5nRGV2TW9kZSA/ICdOQVZJR0FUSU9OX1RJVExFJyA6ICcnLFxuKTtcblxuLyoqXG4gKiBOYXZpZ2F0aW9uIHNlY3Rpb25zIGxhYmVscyBmb3Igc2VhcmNoXG4gKi9cbmV4cG9ydCBjb25zdCBOQVZJR0FUSU9OX0xBQkVMUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxyZWFkb25seSBzdHJpbmdbXT4oXG4gICAgbmdEZXZNb2RlID8gJ05BVklHQVRJT05fTEFCRUxTJyA6ICcnLFxuKTtcblxuLyoqXG4gKiBOYXZpZ2F0aW9uIHBhZ2VzXG4gKi9cbmV4cG9ydCBjb25zdCBOQVZJR0FUSU9OX0lURU1TID0gbmV3IEluamVjdGlvblRva2VuPHJlYWRvbmx5IFR1aURvY1JvdXRlUGFnZXNbXT4oXG4gICAgbmdEZXZNb2RlID8gJ05BVklHQVRJT05fSVRFTVMnIDogJycsXG4pO1xuXG5leHBvcnQgY29uc3QgTkFWSUdBVElPTl9QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAgdHVpQXV0b0ZvY3VzT3B0aW9uc1Byb3ZpZGVyKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSksXG4gICAgdHVpTGlua09wdGlvbnNQcm92aWRlcih7YXBwZWFyYW5jZTogJ2FjdGlvbi1ncmF5c2NhbGUnfSksXG4gICAge1xuICAgICAgICBwcm92aWRlOiBOQVZJR0FUSU9OX1RJVExFLFxuICAgICAgICBkZXBzOiBbUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSwgVFVJX0RPQ19USVRMRV0sXG4gICAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgICAgIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgdGl0bGVQcmVmaXg6IHN0cmluZyxcbiAgICAgICAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+XG4gICAgICAgICAgICByb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoZXZlbnQ6IEV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQgaW5zdGFuY2VvZiBTY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGV2ZW50LnJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmFsc2UpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IGFjdGl2YXRlZFJvdXRlLmZpcnN0Q2hpbGQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKCh7ZGF0YX0pID0+IGRhdGEpLFxuICAgICAgICAgICAgICAgIG1hcCgoe3RpdGxlfSkgPT4gYCR7dGl0bGVQcmVmaXh9JHt0aXRsZX1gKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICAgICksXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHByb3ZpZGU6IE5BVklHQVRJT05fTEFCRUxTLFxuICAgICAgICBkZXBzOiBbVFVJX0RPQ19QQUdFU10sXG4gICAgICAgIHVzZUZhY3Rvcnk6IGxhYmVsc1Byb3ZpZGVyRmFjdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcHJvdmlkZTogTkFWSUdBVElPTl9JVEVNUyxcbiAgICAgICAgZGVwczogW1RVSV9ET0NfUEFHRVNdLFxuICAgICAgICB1c2VGYWN0b3J5OiAocGFnZXM6IFR1aURvY1JvdXRlUGFnZXMpOiByZWFkb25seSBUdWlEb2NSb3V0ZVBhZ2VzW10gPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFiZWxzID0gbGFiZWxzUHJvdmlkZXJGYWN0b3J5KHBhZ2VzKTtcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAuLi5sYWJlbHMubWFwKChsYWJlbCkgPT4gcGFnZXMuZmlsdGVyKCh7c2VjdGlvbn0pID0+IHNlY3Rpb24gPT09IGxhYmVsKSksXG4gICAgICAgICAgICAgICAgcGFnZXMuZmlsdGVyKChwYWdlKSA9PiAhcGFnZS5zZWN0aW9uKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0sXG4gICAgfSxcbiAgICB0dWlTY3JvbGxiYXJPcHRpb25zUHJvdmlkZXIoe1xuICAgICAgICBtb2RlOiAnaG92ZXInLFxuICAgIH0pLFxuXTtcbiJdfQ==
@@ -1,32 +0,0 @@
1
- import { Directive, inject, Input } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { TUI_DOC_PAGE_LOADED } from '@taiga-ui/addon-doc/tokens';
4
- import { tuiZonefreeScheduler } from '@taiga-ui/cdk/observables';
5
- import { tuiGetElementObscures, tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
6
- import { debounceTime, filter, ReplaySubject, switchMap, take } from 'rxjs';
7
- import * as i0 from "@angular/core";
8
- class TuiDocScrollIntoViewLink {
9
- constructor() {
10
- this.scroll$ = new ReplaySubject(1);
11
- this.el = tuiInjectElement();
12
- this.sub = inject(TUI_DOC_PAGE_LOADED)
13
- .pipe(filter(Boolean), take(1), switchMap(() => this.scroll$), debounceTime(750, tuiZonefreeScheduler()), filter((shallWe) => shallWe && !!tuiGetElementObscures(this.el)), takeUntilDestroyed())
14
- .subscribe(() => this.el.scrollIntoView());
15
- }
16
- set tuiDocScrollIntoViewLink(shallWe) {
17
- this.scroll$.next(shallWe);
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocScrollIntoViewLink, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocScrollIntoViewLink, isStandalone: true, selector: "[tuiDocScrollIntoViewLink]", inputs: { tuiDocScrollIntoViewLink: "tuiDocScrollIntoViewLink" }, ngImport: i0 }); }
21
- }
22
- export { TuiDocScrollIntoViewLink };
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocScrollIntoViewLink, decorators: [{
24
- type: Directive,
25
- args: [{
26
- standalone: true,
27
- selector: '[tuiDocScrollIntoViewLink]',
28
- }]
29
- }], propDecorators: { tuiDocScrollIntoViewLink: [{
30
- type: Input
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9uYXZpZ2F0aW9uL3Njcm9sbC1pbnRvLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFMUUsTUFJYSx3QkFBd0I7SUFKckM7UUFLcUIsWUFBTyxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXRCLFFBQUcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7YUFDL0MsSUFBSSxDQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDZixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDN0IsWUFBWSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLEVBQ3pDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDaEUsa0JBQWtCLEVBQUUsQ0FDdkI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0tBTWxEO0lBSkcsSUFDVyx3QkFBd0IsQ0FBQyxPQUFnQjtRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDOytHQWxCUSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7U0FBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw0QkFBNEI7aUJBQ3pDOzhCQWlCYyx3QkFBd0I7c0JBRGxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtUVUlfRE9DX1BBR0VfTE9BREVEfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3Rva2Vucyc7XG5pbXBvcnQge3R1aVpvbmVmcmVlU2NoZWR1bGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpR2V0RWxlbWVudE9ic2N1cmVzLCB0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBSZXBsYXlTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2V9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aURvY1Njcm9sbEludG9WaWV3TGlua10nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NTY3JvbGxJbnRvVmlld0xpbmsge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3ViID0gaW5qZWN0KFRVSV9ET0NfUEFHRV9MT0FERUQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNjcm9sbCQpLFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDc1MCwgdHVpWm9uZWZyZWVTY2hlZHVsZXIoKSksXG4gICAgICAgICAgICBmaWx0ZXIoKHNoYWxsV2UpID0+IHNoYWxsV2UgJiYgISF0dWlHZXRFbGVtZW50T2JzY3VyZXModGhpcy5lbCkpLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmVsLnNjcm9sbEludG9WaWV3KCkpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aURvY1Njcm9sbEludG9WaWV3TGluayhzaGFsbFdlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsJC5uZXh0KHNoYWxsV2UpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { Directive, inject, Input, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- class TuiDocPageTabConnector {
4
- constructor() {
5
- this.template = inject((TemplateRef));
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocPageTabConnector, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocPageTabConnector, isStandalone: true, selector: "ng-template[pageTab]", inputs: { pageTab: "pageTab" }, ngImport: i0 }); }
9
- }
10
- export { TuiDocPageTabConnector };
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocPageTabConnector, decorators: [{
12
- type: Directive,
13
- args: [{
14
- standalone: true,
15
- selector: 'ng-template[pageTab]',
16
- }]
17
- }], propDecorators: { pageTab: [{
18
- type: Input
19
- }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10YWIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvcGFnZS9wYWdlLXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFcEUsTUFJYSxzQkFBc0I7SUFKbkM7UUFRb0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFdBQW9DLENBQUEsQ0FBQyxDQUFDO0tBQzNFOytHQUxZLHNCQUFzQjttR0FBdEIsc0JBQXNCOztTQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtpQkFDbkM7OEJBR1UsT0FBTztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3BhZ2VUYWJdJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jUGFnZVRhYkNvbm5lY3RvciB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFnZVRhYj86IHN0cmluZztcblxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4pO1xufVxuIl19