@taiga-ui/addon-doc 2.50.2 → 2.52.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.
- package/bundles/taiga-ui-addon-doc.umd.js +82 -21
- package/bundles/taiga-ui-addon-doc.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-doc.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-doc.umd.min.js.map +1 -1
- package/components/documentation/documentation.component.d.ts +1 -0
- package/components/example/example.component.d.ts +2 -1
- package/components/navigation/navigation.component.d.ts +3 -1
- package/directives/scroll-into-view/scroll-into-view.directive.d.ts +9 -1
- package/directives/scroll-into-view/scroll-into-view.module.d.ts +6 -0
- package/esm2015/components/documentation/documentation.component.js +5 -2
- package/esm2015/components/example/example.component.js +10 -6
- package/esm2015/components/navigation/navigation.component.js +17 -11
- package/esm2015/components/navigation/navigation.module.js +3 -2
- package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +32 -11
- package/esm2015/directives/scroll-into-view/scroll-into-view.module.js +19 -3
- package/esm2015/public-api.js +3 -1
- package/esm2015/tokens/code-actions.js +5 -0
- package/esm2015/tokens/page-loaded.js +5 -0
- package/esm5/components/documentation/documentation.component.js +5 -2
- package/esm5/components/example/example.component.js +10 -6
- package/esm5/components/navigation/navigation.component.js +17 -11
- package/esm5/components/navigation/navigation.module.js +3 -2
- package/esm5/directives/scroll-into-view/scroll-into-view.directive.js +35 -11
- package/esm5/directives/scroll-into-view/scroll-into-view.module.js +20 -2
- package/esm5/public-api.js +3 -1
- package/esm5/tokens/code-actions.js +5 -0
- package/esm5/tokens/page-loaded.js +5 -0
- package/fesm2015/taiga-ui-addon-doc.js +78 -26
- package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
- package/fesm5/taiga-ui-addon-doc.js +82 -25
- package/fesm5/taiga-ui-addon-doc.js.map +1 -1
- package/package.json +5 -5
- package/public-api.d.ts +2 -0
- package/taiga-ui-addon-doc.metadata.json +1 -1
- package/tokens/code-actions.d.ts +4 -0
- package/tokens/page-loaded.d.ts +3 -0
|
@@ -4,17 +4,17 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Inj
|
|
|
4
4
|
import { Title } from '@angular/platform-browser';
|
|
5
5
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
6
6
|
import { TuiSidebarDirective } from '@taiga-ui/addon-mobile';
|
|
7
|
-
import { tuiPure, uniqBy } from '@taiga-ui/cdk';
|
|
7
|
+
import { TuiDestroyService, tuiPure, uniqBy } from '@taiga-ui/cdk';
|
|
8
8
|
import { TuiBrightness, TuiModeDirective } from '@taiga-ui/core';
|
|
9
9
|
import { Observable } from 'rxjs';
|
|
10
|
-
import { map, startWith } from 'rxjs/operators';
|
|
10
|
+
import { filter, map, startWith, take, takeUntil } from 'rxjs/operators';
|
|
11
11
|
import { TUI_DOC_SEARCH_TEXT } from '../../tokens/i18n';
|
|
12
|
+
import { TUI_DOC_PAGE_LOADED } from '../../tokens/page-loaded';
|
|
12
13
|
import { transliterateKeyboardLayout } from '../../utils/transliterate-keyboard-layout';
|
|
13
14
|
import { NAVIGATION_ITEMS, NAVIGATION_LABELS, NAVIGATION_PROVIDERS, NAVIGATION_TITLE, } from './navigation.providers';
|
|
14
|
-
var SCROLL_INTO_VIEW_DELAY = 200;
|
|
15
15
|
// @dynamic
|
|
16
16
|
var TuiDocNavigationComponent = /** @class */ (function () {
|
|
17
|
-
function TuiDocNavigationComponent(changeDetectorRef, titleService, title$, documentRef, mode, sidebar, labels, items, searchText, router, activatedRoute) {
|
|
17
|
+
function TuiDocNavigationComponent(changeDetectorRef, titleService, title$, documentRef, mode, sidebar, labels, items, searchText, router, activatedRoute, destroy$, readyToScroll$) {
|
|
18
18
|
var _this = this;
|
|
19
19
|
this.documentRef = documentRef;
|
|
20
20
|
this.mode = mode;
|
|
@@ -24,6 +24,8 @@ var TuiDocNavigationComponent = /** @class */ (function () {
|
|
|
24
24
|
this.searchText = searchText;
|
|
25
25
|
this.router = router;
|
|
26
26
|
this.activatedRoute = activatedRoute;
|
|
27
|
+
this.destroy$ = destroy$;
|
|
28
|
+
this.readyToScroll$ = readyToScroll$;
|
|
27
29
|
this.menuOpen = false;
|
|
28
30
|
this.search = '';
|
|
29
31
|
this.open = false;
|
|
@@ -108,9 +110,9 @@ var TuiDocNavigationComponent = /** @class */ (function () {
|
|
|
108
110
|
};
|
|
109
111
|
TuiDocNavigationComponent.prototype.handleAnchorLink = function (hash) {
|
|
110
112
|
var _this = this;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
this.readyToScroll$
|
|
114
|
+
.pipe(filter(Boolean), take(1), takeUntil(this.destroy$))
|
|
115
|
+
.subscribe(function () { return _this.navigateToAnchorLink(hash); });
|
|
114
116
|
};
|
|
115
117
|
TuiDocNavigationComponent.prototype.openActivePageGroup = function () {
|
|
116
118
|
var _this = this;
|
|
@@ -155,7 +157,9 @@ var TuiDocNavigationComponent = /** @class */ (function () {
|
|
|
155
157
|
{ type: undefined, decorators: [{ type: Inject, args: [NAVIGATION_ITEMS,] }] },
|
|
156
158
|
{ type: String, decorators: [{ type: Inject, args: [TUI_DOC_SEARCH_TEXT,] }] },
|
|
157
159
|
{ type: Router, decorators: [{ type: Inject, args: [Router,] }] },
|
|
158
|
-
{ type: ActivatedRoute, decorators: [{ type: Inject, args: [ActivatedRoute,] }] }
|
|
160
|
+
{ type: ActivatedRoute, decorators: [{ type: Inject, args: [ActivatedRoute,] }] },
|
|
161
|
+
{ type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
|
|
162
|
+
{ type: Observable, decorators: [{ type: Inject, args: [TUI_DOC_PAGE_LOADED,] }] }
|
|
159
163
|
]; };
|
|
160
164
|
__decorate([
|
|
161
165
|
HostBinding('class._open')
|
|
@@ -169,7 +173,7 @@ var TuiDocNavigationComponent = /** @class */ (function () {
|
|
|
169
173
|
TuiDocNavigationComponent = __decorate([
|
|
170
174
|
Component({
|
|
171
175
|
selector: 'tui-doc-navigation',
|
|
172
|
-
template: "<tui-hosted-dropdown\n *tuiLet=\"filteredItems as filtered\"\n tuiAutoFocus\n tuiDropdownLimitWidth=\"fixed\"\n class=\"t-input\"\n [autoFocus]=\"!!sidebar\"\n [content]=\"dropdown\"\n [canOpen]=\"canOpen\"\n [(open)]=\"open\"\n>\n <tui-primitive-textfield\n iconAlign=\"left\"\n tuiTextfieldSize=\"m\"\n iconContent=\"tuiIconSearch\"\n [pseudoFocused]=\"open || null\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiTextfieldLabelOutside]=\"true\"\n [value]=\"search\"\n (valueChange)=\"onSearchChange($event)\"\n >\n {{ searchText }}\n </tui-primitive-textfield>\n <ng-template\n #dropdown\n let-activeZone\n >\n <tui-data-list>\n <tui-opt-group\n *ngFor=\"let group of filtered; let index = index\"\n [label]=\"labels[index] || ''\"\n >\n <a\n *ngFor=\"let item of group\"\n tuiOption\n [routerLink]=\"item.route\"\n (click)=\"onClick()\"\n >\n {{ item.title }}\n </a>\n </tui-opt-group>\n </tui-data-list>\n </ng-template>\n</tui-hosted-dropdown>\n\n<nav class=\"t-navigation\">\n <tui-scrollbar\n class=\"t-scrollbar\"\n [tuiMode]=\"mode$ | async\"\n >\n <tui-accordion\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 >\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 >\n <ng-container\n *ngTemplateOutlet=\"pages; context: {item: item, index: index * 100 + subIndex}\"\n ></ng-container>\n </ng-container>\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 >\n <ng-container\n *ngTemplateOutlet=\"pages; context: {item: item, index: items.length - 1 + index}\"\n ></ng-container>\n </ng-container>\n </div>\n\n <ng-template\n #pages\n let-item=\"item\"\n let-index=\"index\"\n >\n <a\n *ngIf=\"!item.subPages; else subPages\"\n tuiLink\n routerLinkActive=\"sublink_active\"\n class=\"t-sublink\"\n [routerLink]=\"item.route\"\n [scrollIntoView]=\"isActive(item.route)\"\n (click)=\"closeMenu()\"\n >\n {{ item.title }}\n </a>\n <ng-template #subPages>\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-svg\n src=\"tuiIconChevronRight\"\n class=\"t-chevron\"\n [class.t-chevron_active]=\"!!openPagesGroupsArr[index]\"\n ></tui-svg>\n {{ item.title }}\n </button>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"!!openPagesGroupsArr[index]\"\n >\n <div class=\"t-section t-section_bordered\">\n <a\n *ngFor=\"let subPage of item.subPages\"\n tuiLink\n routerLinkActive=\"sublink_active\"\n class=\"t-sublink t-sublink_small\"\n [routerLink]=\"subPage.route\"\n [scrollIntoView]=\"isActive(subPage.route)\"\n (click)=\"closeMenu()\"\n >\n {{ subPage.title }}\n </a>\n </div>\n </tui-expand>\n </div>\n </ng-template>\n </ng-template>\n </tui-scrollbar>\n</nav>\n\n<ng-content></ng-content>\n",
|
|
176
|
+
template: "<tui-hosted-dropdown\n *tuiLet=\"filteredItems as filtered\"\n tuiAutoFocus\n tuiDropdownLimitWidth=\"fixed\"\n class=\"t-input\"\n [autoFocus]=\"!!sidebar\"\n [content]=\"dropdown\"\n [canOpen]=\"canOpen\"\n [(open)]=\"open\"\n>\n <tui-primitive-textfield\n iconAlign=\"left\"\n tuiTextfieldSize=\"m\"\n iconContent=\"tuiIconSearch\"\n [pseudoFocused]=\"open || null\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiTextfieldLabelOutside]=\"true\"\n [value]=\"search\"\n (valueChange)=\"onSearchChange($event)\"\n >\n {{ searchText }}\n </tui-primitive-textfield>\n <ng-template\n #dropdown\n let-activeZone\n >\n <tui-data-list>\n <tui-opt-group\n *ngFor=\"let group of filtered; let index = index\"\n [label]=\"labels[index] || ''\"\n >\n <a\n *ngFor=\"let item of group\"\n tuiOption\n [routerLink]=\"item.route\"\n (click)=\"onClick()\"\n >\n {{ item.title }}\n </a>\n </tui-opt-group>\n </tui-data-list>\n </ng-template>\n</tui-hosted-dropdown>\n\n<nav class=\"t-navigation\">\n <tui-scrollbar\n class=\"t-scrollbar\"\n [tuiMode]=\"mode$ | async\"\n >\n <tui-accordion\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 >\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 >\n <ng-container\n *ngTemplateOutlet=\"pages; context: {item: item, index: index * 100 + subIndex}\"\n ></ng-container>\n </ng-container>\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 >\n <ng-container\n *ngTemplateOutlet=\"pages; context: {item: item, index: items.length - 1 + index}\"\n ></ng-container>\n </ng-container>\n </div>\n\n <ng-template\n #pages\n let-item=\"item\"\n let-index=\"index\"\n >\n <a\n *ngIf=\"!item.subPages; else subPages\"\n tuiLink\n routerLinkActive=\"t-sublink_active\"\n class=\"t-sublink\"\n [routerLink]=\"item.route\"\n [scrollIntoView]=\"isActive(item.route)\"\n (click)=\"closeMenu()\"\n >\n {{ item.title }}\n </a>\n <ng-template #subPages>\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-svg\n src=\"tuiIconChevronRight\"\n class=\"t-chevron\"\n [class.t-chevron_active]=\"!!openPagesGroupsArr[index]\"\n ></tui-svg>\n {{ item.title }}\n </button>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"!!openPagesGroupsArr[index]\"\n >\n <div class=\"t-section t-section_bordered\">\n <a\n *ngFor=\"let subPage of item.subPages\"\n tuiLink\n routerLinkActive=\"t-sublink_active\"\n class=\"t-sublink t-sublink_small\"\n [routerLink]=\"subPage.route\"\n [scrollIntoView]=\"isActive(subPage.route)\"\n (click)=\"closeMenu()\"\n >\n {{ subPage.title }}\n </a>\n </div>\n </tui-expand>\n </div>\n </ng-template>\n </ng-template>\n </tui-scrollbar>\n</nav>\n\n<ng-content></ng-content>\n",
|
|
173
177
|
providers: NAVIGATION_PROVIDERS,
|
|
174
178
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
175
179
|
styles: [":host{z-index:1;display:flex;flex-direction:column;text-align:center;background:var(--tui-base-01)}.t-input{display:block;margin:1.25rem}.t-navigation{display:flex;max-height:100%;min-height:0;flex:1 1 0;text-align:left}.t-scrollbar{width:100%;scroll-behavior:smooth}.t-items-container{display:flex;flex-direction:column;padding:0 1rem}.t-label{margin-left:.5rem}.t-expand{margin-left:.25rem}.t-section{display:flex;flex-direction:column;align-items:flex-start;margin:-1rem 0 -.5rem}.t-section_bordered{margin:.5rem 0;border-left:1px solid var(--tui-base-03)}.t-subsection{margin-left:.5rem}.t-sublink{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:1rem 0 0;border:0;background:0 0;font-size:inherit;line-height:inherit;font:var(--tui-font-text-m);margin-left:.5rem}.t-sublink_small{margin-left:1rem;line-height:1.5rem;padding-top:.5rem}.t-sublink_subsection{margin-left:0;line-height:1.6rem}.t-sublink_active{color:var(--tui-text-01)}.t-chevron{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;width:1rem;height:1rem;margin:-.25rem .25rem 0 -.1875rem}.t-chevron_active{transform:rotate(90deg)}"]
|
|
@@ -185,9 +189,11 @@ var TuiDocNavigationComponent = /** @class */ (function () {
|
|
|
185
189
|
__param(7, Inject(NAVIGATION_ITEMS)),
|
|
186
190
|
__param(8, Inject(TUI_DOC_SEARCH_TEXT)),
|
|
187
191
|
__param(9, Inject(Router)),
|
|
188
|
-
__param(10, Inject(ActivatedRoute))
|
|
192
|
+
__param(10, Inject(ActivatedRoute)),
|
|
193
|
+
__param(11, Inject(TuiDestroyService)),
|
|
194
|
+
__param(12, Inject(TUI_DOC_PAGE_LOADED))
|
|
189
195
|
], TuiDocNavigationComponent);
|
|
190
196
|
return TuiDocNavigationComponent;
|
|
191
197
|
}());
|
|
192
198
|
export { TuiDocNavigationComponent };
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUNILGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGdCQUFnQixHQUNuQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLElBQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBRW5DLFdBQVc7QUFRWDtJQWVJLG1DQUMrQixpQkFBb0MsRUFDaEQs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QUM7WUFDUCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLHVxS0FBdUM7WUFFdkMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDbEQsQ0FBQztRQWlCTyxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2IsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN4QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBRXhCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRTNCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUV4QixXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQzNCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2QsWUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7T0E5QmxCLHlCQUF5QixDQXVLckM7SUFBRCxnQ0FBQztDQUFBLEFBdktELElBdUtDO1NBdktZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaXRsZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1R1aVNpZGViYXJEaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1tb2JpbGUnO1xuaW1wb3J0IHt0dWlQdXJlLCB1bmlxQnl9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlNb2RlRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aURvY1BhZ2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFnZSc7XG5pbXBvcnQge1RVSV9ET0NfU0VBUkNIX1RFWFR9IGZyb20gJy4uLy4uL3Rva2Vucy9pMThuJztcbmltcG9ydCB7VHVpRG9jUGFnZXN9IGZyb20gJy4uLy4uL3R5cGVzL3BhZ2VzJztcbmltcG9ydCB7dHJhbnNsaXRlcmF0ZUtleWJvYXJkTGF5b3V0fSBmcm9tICcuLi8uLi91dGlscy90cmFuc2xpdGVyYXRlLWtleWJvYXJkLWxheW91dCc7XG5pbXBvcnQge1xuICAgIE5BVklHQVRJT05fSVRFTVMsXG4gICAgTkFWSUdBVElPTl9MQUJFTFMsXG4gICAgTkFWSUdBVElPTl9QUk9WSURFUlMsXG4gICAgTkFWSUdBVElPTl9USVRMRSxcbn0gZnJvbSAnLi9uYXZpZ2F0aW9uLnByb3ZpZGVycyc7XG5cbmNvbnN0IFNDUk9MTF9JTlRPX1ZJRVdfREVMQVkgPSAyMDA7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICduYXZpZ2F0aW9uLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWyduYXZpZ2F0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICBwcm92aWRlcnM6IE5BVklHQVRJT05fUFJPVklERVJTLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NOYXZpZ2F0aW9uQ29tcG9uZW50IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9vcGVuJylcbiAgICBtZW51T3BlbiA9IGZhbHNlO1xuXG4gICAgc2VhcmNoID0gJyc7XG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIG9wZW5QYWdlc0FycjogYm9vbGVhbltdID0gW107XG4gICAgb3BlblBhZ2VzR3JvdXBzQXJyOiBib29sZWFuW10gPSBbXTtcbiAgICBhY3RpdmUgPSAnJztcblxuICAgIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3M+ID0gdGhpcy5tb2RlLmNoYW5nZSQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5tb2RlLm1vZGUgfHwgJ29uTGlnaHQnKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUaXRsZSkgdGl0bGVTZXJ2aWNlOiBUaXRsZSxcbiAgICAgICAgQEluamVjdChOQVZJR0FUSU9OX1RJVExFKSB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoVHVpTW9kZURpcmVjdGl2ZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RlOiBUdWlNb2RlRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aVNpZGViYXJEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IHNpZGViYXI6IHVua25vd24sXG4gICAgICAgIEBJbmplY3QoTkFWSUdBVElPTl9MQUJFTFMpIHJlYWRvbmx5IGxhYmVsczogc3RyaW5nW10sXG4gICAgICAgIEBJbmplY3QoTkFWSUdBVElPTl9JVEVNUylcbiAgICAgICAgcmVhZG9ubHkgaXRlbXM6IHJlYWRvbmx5IFR1aURvY1BhZ2VzW10sXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19TRUFSQ0hfVEVYVCkgcmVhZG9ubHkgc2VhcmNoVGV4dDogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFJvdXRlcikgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChBY3RpdmF0ZWRSb3V0ZSkgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgKSB7XG4gICAgICAgIC8vIEFuZ3VsYXIgY2FuJ3QgbmF2aWdhdGUgbm8gYW5jaG9yIGxpbmtzXG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM2MTAxNzU2L2FuZ3VsYXIyLXJvdXRpbmctd2l0aC1oYXNodGFnLXRvLXBhZ2UtYW5jaG9yXG4gICAgICAgIHRpdGxlJC5zdWJzY3JpYmUodGl0bGUgPT4ge1xuICAgICAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGUpO1xuICAgICAgICAgICAgdGhpcy5vcGVuQWN0aXZlUGFnZUdyb3VwKCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFuY2hvckxpbmsodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5mcmFnbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2gubGVuZ3RoID4gMjtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyZWRJdGVtcygpOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJJdGVtcyh0aGlzLmZsYXR0ZW5TdWJQYWdlcyh0aGlzLml0ZW1zKSwgdGhpcy5zZWFyY2gpO1xuICAgIH1cblxuICAgIGdldCBpdGVtc1dpdGhvdXRTZWN0aW9ucygpOiBUdWlEb2NQYWdlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgaXNBY3RpdmUocm91dGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcm91dGUgPT09IHRoaXMuYWN0aXZlO1xuICAgIH1cblxuICAgIG9uR3JvdXBDbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlblBhZ2VzR3JvdXBzQXJyW2luZGV4XSA9ICF0aGlzLm9wZW5QYWdlc0dyb3Vwc0FycltpbmRleF07XG4gICAgfVxuXG4gICAgY2xvc2VNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25TZWFyY2hDaGFuZ2Uoc2VhcmNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSBzZWFyY2g7XG4gICAgICAgIHRoaXMub3BlbiA9IHRoaXMuY2FuT3BlbjtcbiAgICB9XG5cbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tZW51T3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlYXJjaCA9ICcnO1xuICAgICAgICB0aGlzLm9wZW5BY3RpdmVQYWdlR3JvdXAoKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZmlsdGVySXRlbXMoXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4sXG4gICAgICAgIHNlYXJjaDogc3RyaW5nLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPiB7XG4gICAgICAgIHJldHVybiBpdGVtcy5tYXAoc2VjdGlvbiA9PlxuICAgICAgICAgICAgdW5pcUJ5KFxuICAgICAgICAgICAgICAgIHNlY3Rpb24uZmlsdGVyKCh7dGl0bGUsIGtleXdvcmRzID0gJyd9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0ga2V5d29yZHMudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUuaW5jbHVkZXModHJhbnNsaXRlcmF0ZUtleWJvYXJkTGF5b3V0KHNlYXJjaCkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcy5pbmNsdWRlcyh0cmFuc2xpdGVyYXRlS2V5Ym9hcmRMYXlvdXQoc2VhcmNoKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC5yZXBsYWNlKC8tL2dpLCAnJykuaW5jbHVkZXModGl0bGUpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgJ3RpdGxlJyxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGZsYXR0ZW5TdWJQYWdlcyhcbiAgICAgICAgaXRlbXM6IHJlYWRvbmx5IFR1aURvY1BhZ2VzW10sXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUdWlEb2NQYWdlW10+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLnJlZHVjZTxSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4+KFxuICAgICAgICAgICAgKGFycmF5LCBpdGVtKSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uYXJyYXksXG4gICAgICAgICAgICAgICAgaXRlbS5yZWR1Y2U8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPihcbiAgICAgICAgICAgICAgICAgICAgKHBhZ2VzLCBwYWdlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1YlBhZ2VzJyBpbiBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbLi4ucGFnZXMsIC4uLnBhZ2Uuc3ViUGFnZXNdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbLi4ucGFnZXMsIHBhZ2VdLFxuICAgICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBY3RpdmVSb3V0ZShyb3V0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5pc0FjdGl2ZShyb3V0ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQW5jaG9yTGluayhoYXNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9BbmNob3JMaW5rKGhhc2gpO1xuICAgICAgICB9LCBTQ1JPTExfSU5UT19WSUVXX0RFTEFZKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5BY3RpdmVQYWdlR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgocGFnZXMsIHBhZ2VzSW5kZXgpID0+IHtcbiAgICAgICAgICAgIHBhZ2VzLmZvckVhY2goKHBhZ2UsIHBhZ2VJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgncm91dGUnIGluIHBhZ2UgJiYgdGhpcy5pc0FjdGl2ZVJvdXRlKHBhZ2Uucm91dGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblBhZ2VzQXJyW3BhZ2VzSW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBwYWdlLnJvdXRlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgnc3ViUGFnZXMnIGluIHBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFnZS5zdWJQYWdlcy5mb3JFYWNoKHN1YlBhZ2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVSb3V0ZShzdWJQYWdlLnJvdXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblBhZ2VzQXJyW3BhZ2VzSW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0dyb3Vwc0FycltwYWdlc0luZGV4ICogMTAwICsgcGFnZUluZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBzdWJQYWdlLnJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuYXZpZ2F0ZVRvQW5jaG9yTGluayhmcmFnbWVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBmcmFnbWVudCAmJiB0aGlzLmRvY3VtZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYCMke2ZyYWdtZW50fWApO1xuXG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCd0dWktZG9jLWFuaW1hdGVkLWV4YW1wbGUnKTtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgICAgICAgIGlubGluZTogJ25lYXJlc3QnLFxuICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUNILGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGdCQUFnQixHQUNuQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLFdBQVc7QUFRWDtJQWVJLG1DQUMrQixpQkFBb0MsRUFDaEQsWUFBbUIsRUFDUixNQUEwQixFQUNqQixXQUFxQixFQUV2QyxJQUFzQixFQUc5QixPQUFnQixFQUNXLE1BQWdCLEVBRTNDLEtBQTZCLEVBQ0EsVUFBa0IsRUFDdkIsTUFBYyxFQUNOLGNBQThCLEVBQzNCLFFBQTBCLEVBRXJELGNBQW1DO1FBbEJ4RCxpQkE0QkM7UUF4QnNDLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBRXZDLFNBQUksR0FBSixJQUFJLENBQWtCO1FBRzlCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDVyxXQUFNLEdBQU4sTUFBTSxDQUFVO1FBRTNDLFVBQUssR0FBTCxLQUFLLENBQXdCO1FBQ0EsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ04sbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBRXJELG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQS9CeEQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGlCQUFZLEdBQWMsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFjLEVBQUUsQ0FBQztRQUNuQyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRUgsVUFBSyxHQUE4QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBM0IsQ0FBMkIsQ0FBQyxDQUN6QyxDQUFDO1FBc0JFLHlDQUF5QztRQUN6Qyw0RkFBNEY7UUFDNUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFBLEtBQUs7WUFDbEIsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixLQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixLQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsc0JBQUksOENBQU87YUFBWDtZQUNJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBRUQsc0JBQUksb0RBQWE7YUFBakI7WUFDSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLENBQUM7OztPQUFBO0lBRUQsc0JBQUksMkRBQW9CO2FBQXhCO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7OztPQUFBO0lBRUQsNENBQVEsR0FBUixVQUFTLEtBQWE7UUFDbEIsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsZ0RBQVksR0FBWixVQUFhLEtBQWE7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCw2Q0FBUyxHQUFUO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELGtEQUFjLEdBQWQsVUFBZSxNQUFjO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQsMkNBQU8sR0FBUDtRQUNJLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFHTywrQ0FBVyxHQUFuQixVQUNJLEtBQTJDLEVBQzNDLE1BQWM7UUFFZCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQSxPQUFPO1lBQ3BCLE9BQUEsTUFBTSxDQUNGLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBQyxFQUFzQjtvQkFBckIsZ0JBQUssRUFBRSxnQkFBYSxFQUFiLGtDQUFhO2dCQUNqQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM1QixNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QixRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVsQyxPQUFPLENBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7b0JBQ3RCLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO29CQUN6QixLQUFLLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNuRCxRQUFRLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0RCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQzVDLENBQUM7WUFDTixDQUFDLENBQUMsRUFDRixPQUFPLENBQ1Y7UUFmRCxDQWVDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFHTyxtREFBZSxHQUF2QixVQUNJLEtBQTZCO1FBRTdCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FDZixVQUFDLEtBQUssRUFBRSxJQUFJLElBQUssZ0JBQ1YsS0FBSztZQUNSLElBQUksQ0FBQyxNQUFNLENBQ1AsVUFBQyxLQUFLLEVBQUUsSUFBSTtnQkFDUixPQUFBLFVBQVUsSUFBSSxJQUFJO29CQUNkLENBQUMsVUFBSyxLQUFLLEVBQUssSUFBSSxDQUFDLFFBQVEsRUFDN0IsQ0FBQyxVQUFLLEtBQUssR0FBRSxJQUFJLEVBQUM7WUFGdEIsQ0FFc0IsRUFDMUIsRUFBRSxDQUNMO1lBUlksQ0FTaEIsRUFDRCxFQUFFLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxpREFBYSxHQUFyQixVQUFzQixLQUFhO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxvREFBZ0IsR0FBeEIsVUFBeUIsSUFBWTtRQUFyQyxpQkFJQztRQUhHLElBQUksQ0FBQyxjQUFjO2FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4RCxTQUFTLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBL0IsQ0FBK0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyx1REFBbUIsR0FBM0I7UUFBQSxpQkFtQkM7UUFsQkcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLLEVBQUUsVUFBVTtZQUNqQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQUMsSUFBSSxFQUFFLFNBQVM7Z0JBQzFCLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDbkQsS0FBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQ3JDLEtBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDNUI7Z0JBRUQsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO29CQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFBLE9BQU87d0JBQ3pCLElBQUksS0FBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7NEJBQ25DLEtBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDOzRCQUNyQyxLQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7NEJBQzdELEtBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzt5QkFDL0I7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHdEQUFvQixHQUE1QixVQUE2QixRQUFnQjtRQUN6QyxJQUFNLE9BQU8sR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBSSxRQUFVLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBRUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ25CLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLFNBQVM7WUFDakIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0JBekppRCxpQkFBaUIsdUJBQTlELE1BQU0sU0FBQyxpQkFBaUI7Z0JBQ0ksS0FBSyx1QkFBakMsTUFBTSxTQUFDLEtBQUs7Z0JBQ3FCLFVBQVUsdUJBQTNDLE1BQU0sU0FBQyxnQkFBZ0I7Z0JBQ3dCLFFBQVEsdUJBQXZELE1BQU0sU0FBQyxRQUFRO2dCQUVPLGdCQUFnQix1QkFEdEMsTUFBTSxTQUFDLGdCQUFnQjtnREFFdkIsUUFBUSxZQUNSLE1BQU0sU0FBQyxtQkFBbUI7NENBRTFCLE1BQU0sU0FBQyxpQkFBaUI7Z0RBQ3hCLE1BQU0sU0FBQyxnQkFBZ0I7NkNBRXZCLE1BQU0sU0FBQyxtQkFBbUI7Z0JBQ2MsTUFBTSx1QkFBOUMsTUFBTSxTQUFDLE1BQU07Z0JBQzJDLGNBQWMsdUJBQXRFLE1BQU0sU0FBQyxjQUFjO2dCQUNnQyxVQUFVLHVCQUEvRCxNQUFNLFNBQUMsaUJBQWlCO2dCQUVRLFVBQVUsdUJBRDFDLE1BQU0sU0FBQyxtQkFBbUI7O0lBOUIvQjtRQURDLFdBQVcsQ0FBQyxhQUFhLENBQUM7K0RBQ1Y7SUFnRmpCO1FBREMsT0FBTztnRUF1QlA7SUFHRDtRQURDLE9BQU87b0VBaUJQO0lBM0hRLHlCQUF5QjtRQVByQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLDJxS0FBdUM7WUFFdkMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDbEQsQ0FBQztRQWlCTyxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2IsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN4QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBRXhCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRTNCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUV4QixXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQzNCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2QsWUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDdEIsWUFBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixZQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO09BaEN2Qix5QkFBeUIsQ0EwS3JDO0lBQUQsZ0NBQUM7Q0FBQSxBQTFLRCxJQTBLQztTQTFLWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGl0bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUdWlTaWRlYmFyRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tbW9iaWxlJztcbmltcG9ydCB7VHVpRGVzdHJveVNlcnZpY2UsIHR1aVB1cmUsIHVuaXFCeX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUJyaWdodG5lc3MsIFR1aU1vZGVEaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2UsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aURvY1BhZ2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFnZSc7XG5pbXBvcnQge1RVSV9ET0NfU0VBUkNIX1RFWFR9IGZyb20gJy4uLy4uL3Rva2Vucy9pMThuJztcbmltcG9ydCB7VFVJX0RPQ19QQUdFX0xPQURFRH0gZnJvbSAnLi4vLi4vdG9rZW5zL3BhZ2UtbG9hZGVkJztcbmltcG9ydCB7VHVpRG9jUGFnZXN9IGZyb20gJy4uLy4uL3R5cGVzL3BhZ2VzJztcbmltcG9ydCB7dHJhbnNsaXRlcmF0ZUtleWJvYXJkTGF5b3V0fSBmcm9tICcuLi8uLi91dGlscy90cmFuc2xpdGVyYXRlLWtleWJvYXJkLWxheW91dCc7XG5pbXBvcnQge1xuICAgIE5BVklHQVRJT05fSVRFTVMsXG4gICAgTkFWSUdBVElPTl9MQUJFTFMsXG4gICAgTkFWSUdBVElPTl9QUk9WSURFUlMsXG4gICAgTkFWSUdBVElPTl9USVRMRSxcbn0gZnJvbSAnLi9uYXZpZ2F0aW9uLnByb3ZpZGVycyc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICduYXZpZ2F0aW9uLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWyduYXZpZ2F0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICBwcm92aWRlcnM6IE5BVklHQVRJT05fUFJPVklERVJTLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NOYXZpZ2F0aW9uQ29tcG9uZW50IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9vcGVuJylcbiAgICBtZW51T3BlbiA9IGZhbHNlO1xuXG4gICAgc2VhcmNoID0gJyc7XG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIG9wZW5QYWdlc0FycjogYm9vbGVhbltdID0gW107XG4gICAgb3BlblBhZ2VzR3JvdXBzQXJyOiBib29sZWFuW10gPSBbXTtcbiAgICBhY3RpdmUgPSAnJztcblxuICAgIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3M+ID0gdGhpcy5tb2RlLmNoYW5nZSQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5tb2RlLm1vZGUgfHwgJ29uTGlnaHQnKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUaXRsZSkgdGl0bGVTZXJ2aWNlOiBUaXRsZSxcbiAgICAgICAgQEluamVjdChOQVZJR0FUSU9OX1RJVExFKSB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoVHVpTW9kZURpcmVjdGl2ZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RlOiBUdWlNb2RlRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aVNpZGViYXJEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IHNpZGViYXI6IHVua25vd24sXG4gICAgICAgIEBJbmplY3QoTkFWSUdBVElPTl9MQUJFTFMpIHJlYWRvbmx5IGxhYmVsczogc3RyaW5nW10sXG4gICAgICAgIEBJbmplY3QoTkFWSUdBVElPTl9JVEVNUylcbiAgICAgICAgcmVhZG9ubHkgaXRlbXM6IHJlYWRvbmx5IFR1aURvY1BhZ2VzW10sXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19TRUFSQ0hfVEVYVCkgcmVhZG9ubHkgc2VhcmNoVGV4dDogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFJvdXRlcikgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChBY3RpdmF0ZWRSb3V0ZSkgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19QQUdFX0xPQURFRClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZWFkeVRvU2Nyb2xsJDogT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgICApIHtcbiAgICAgICAgLy8gQW5ndWxhciBjYW4ndCBuYXZpZ2F0ZSBubyBhbmNob3IgbGlua3NcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzYxMDE3NTYvYW5ndWxhcjItcm91dGluZy13aXRoLWhhc2h0YWctdG8tcGFnZS1hbmNob3JcbiAgICAgICAgdGl0bGUkLnN1YnNjcmliZSh0aXRsZSA9PiB7XG4gICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XG4gICAgICAgICAgICB0aGlzLm9wZW5BY3RpdmVQYWdlR3JvdXAoKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQW5jaG9yTGluayh0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmZyYWdtZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaC5sZW5ndGggPiAyO1xuICAgIH1cblxuICAgIGdldCBmaWx0ZXJlZEl0ZW1zKCk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckl0ZW1zKHRoaXMuZmxhdHRlblN1YlBhZ2VzKHRoaXMuaXRlbXMpLCB0aGlzLnNlYXJjaCk7XG4gICAgfVxuXG4gICAgZ2V0IGl0ZW1zV2l0aG91dFNlY3Rpb25zKCk6IFR1aURvY1BhZ2VzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBpc0FjdGl2ZShyb3V0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiByb3V0ZSA9PT0gdGhpcy5hY3RpdmU7XG4gICAgfVxuXG4gICAgb25Hcm91cENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdID0gIXRoaXMub3BlblBhZ2VzR3JvdXBzQXJyW2luZGV4XTtcbiAgICB9XG5cbiAgICBjbG9zZU1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudU9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvblNlYXJjaENoYW5nZShzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgICAgdGhpcy5vcGVuID0gdGhpcy5jYW5PcGVuO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VhcmNoID0gJyc7XG4gICAgICAgIHRoaXMub3BlbkFjdGl2ZVBhZ2VHcm91cCgpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBmaWx0ZXJJdGVtcyhcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPixcbiAgICAgICAgc2VhcmNoOiBzdHJpbmcsXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUdWlEb2NQYWdlW10+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcChzZWN0aW9uID0+XG4gICAgICAgICAgICB1bmlxQnkoXG4gICAgICAgICAgICAgICAgc2VjdGlvbi5maWx0ZXIoKHt0aXRsZSwga2V5d29yZHMgPSAnJ30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0aXRsZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAga2V5d29yZHMgPSBrZXl3b3Jkcy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcy5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZS5pbmNsdWRlcyh0cmFuc2xpdGVyYXRlS2V5Ym9hcmRMYXlvdXQoc2VhcmNoKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzLmluY2x1ZGVzKHRyYW5zbGl0ZXJhdGVLZXlib2FyZExheW91dChzZWFyY2gpKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLnJlcGxhY2UoLy0vZ2ksICcnKS5pbmNsdWRlcyh0aXRsZSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAndGl0bGUnLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZmxhdHRlblN1YlBhZ2VzKFxuICAgICAgICBpdGVtczogcmVhZG9ubHkgVHVpRG9jUGFnZXNbXSxcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMucmVkdWNlPFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPj4oXG4gICAgICAgICAgICAoYXJyYXksIGl0ZW0pID0+IFtcbiAgICAgICAgICAgICAgICAuLi5hcnJheSxcbiAgICAgICAgICAgICAgICBpdGVtLnJlZHVjZTxyZWFkb25seSBUdWlEb2NQYWdlW10+KFxuICAgICAgICAgICAgICAgICAgICAocGFnZXMsIHBhZ2UpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAnc3ViUGFnZXMnIGluIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFsuLi5wYWdlcywgLi4ucGFnZS5zdWJQYWdlc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFsuLi5wYWdlcywgcGFnZV0sXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FjdGl2ZVJvdXRlKHJvdXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmlzQWN0aXZlKHJvdXRlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBbmNob3JMaW5rKGhhc2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlYWR5VG9TY3JvbGwkXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIoQm9vbGVhbiksIHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvQW5jaG9yTGluayhoYXNoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuQWN0aXZlUGFnZUdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKHBhZ2VzLCBwYWdlc0luZGV4KSA9PiB7XG4gICAgICAgICAgICBwYWdlcy5mb3JFYWNoKChwYWdlLCBwYWdlSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoJ3JvdXRlJyBpbiBwYWdlICYmIHRoaXMuaXNBY3RpdmVSb3V0ZShwYWdlLnJvdXRlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0FycltwYWdlc0luZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gcGFnZS5yb3V0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoJ3N1YlBhZ2VzJyBpbiBwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2Uuc3ViUGFnZXMuZm9yRWFjaChzdWJQYWdlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQWN0aXZlUm91dGUoc3ViUGFnZS5yb3V0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0FycltwYWdlc0luZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuUGFnZXNHcm91cHNBcnJbcGFnZXNJbmRleCAqIDEwMCArIHBhZ2VJbmRleF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gc3ViUGFnZS5yb3V0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbmF2aWdhdGVUb0FuY2hvckxpbmsoZnJhZ21lbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZnJhZ21lbnQgJiYgdGhpcy5kb2N1bWVudFJlZi5xdWVyeVNlbGVjdG9yKGAjJHtmcmFnbWVudH1gKTtcblxuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndHVpLWRvYy1hbmltYXRlZC1leGFtcGxlJyk7XG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgYmxvY2s6ICdzdGFydCcsXG4gICAgICAgICAgICBpbmxpbmU6ICduZWFyZXN0JyxcbiAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -6,7 +6,7 @@ import { RouterModule } from '@angular/router';
|
|
|
6
6
|
import { TuiActiveZoneModule, TuiAutoFocusModule, TuiLetModule } from '@taiga-ui/cdk';
|
|
7
7
|
import { TuiButtonModule, TuiDataListModule, TuiDropdownControllerModule, TuiExpandModule, TuiHostedDropdownModule, TuiLinkModule, TuiModeModule, TuiPrimitiveTextfieldModule, TuiScrollbarModule, TuiSvgModule, TuiTextfieldControllerModule, } from '@taiga-ui/core';
|
|
8
8
|
import { TuiAccordionModule } from '@taiga-ui/kit';
|
|
9
|
-
import { ScrollIntoViewModule } from '../../directives/scroll-into-view/scroll-into-view.module';
|
|
9
|
+
import { ScrollIntoViewModule, TuiScrollIntoViewLinkModule, } from '../../directives/scroll-into-view/scroll-into-view.module';
|
|
10
10
|
import { TuiDocNavigationComponent } from './navigation.component';
|
|
11
11
|
var TuiDocNavigationModule = /** @class */ (function () {
|
|
12
12
|
function TuiDocNavigationModule() {
|
|
@@ -18,6 +18,7 @@ var TuiDocNavigationModule = /** @class */ (function () {
|
|
|
18
18
|
FormsModule,
|
|
19
19
|
RouterModule,
|
|
20
20
|
ScrollIntoViewModule,
|
|
21
|
+
TuiScrollIntoViewLinkModule,
|
|
21
22
|
TuiButtonModule,
|
|
22
23
|
TuiPrimitiveTextfieldModule,
|
|
23
24
|
TuiTextfieldControllerModule,
|
|
@@ -41,4 +42,4 @@ var TuiDocNavigationModule = /** @class */ (function () {
|
|
|
41
42
|
return TuiDocNavigationModule;
|
|
42
43
|
}());
|
|
43
44
|
export { TuiDocNavigationModule };
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUNILGVBQWUsRUFDZixpQkFBaUIsRUFDakIsMkJBQTJCLEVBQzNCLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsYUFBYSxFQUNiLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLFlBQVksRUFDWiw0QkFBNEIsR0FDL0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUNILG9CQUFvQixFQUNwQiwyQkFBMkIsR0FDOUIsTUFBTSwyREFBMkQsQ0FBQztBQUNuRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQTRCakU7SUFBQTtJQUFxQyxDQUFDO0lBQXpCLHNCQUFzQjtRQTFCbEMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLFlBQVk7Z0JBQ1osV0FBVztnQkFDWCxZQUFZO2dCQUNaLG9CQUFvQjtnQkFDcEIsMkJBQTJCO2dCQUMzQixlQUFlO2dCQUNmLDJCQUEyQjtnQkFDM0IsNEJBQTRCO2dCQUM1QixtQkFBbUI7Z0JBQ25CLFlBQVk7Z0JBQ1osYUFBYTtnQkFDYixhQUFhO2dCQUNiLGVBQWU7Z0JBQ2YsdUJBQXVCO2dCQUN2QiwyQkFBMkI7Z0JBQzNCLGtCQUFrQjtnQkFDbEIsa0JBQWtCO2dCQUNsQixZQUFZO2dCQUNaLGlCQUFpQjtnQkFDakIsa0JBQWtCO2FBQ3JCO1lBQ0QsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7WUFDekMsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7U0FDdkMsQ0FBQztPQUNXLHNCQUFzQixDQUFHO0lBQUQsNkJBQUM7Q0FBQSxBQUF0QyxJQUFzQztTQUF6QixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1R1aUFjdGl2ZVpvbmVNb2R1bGUsIFR1aUF1dG9Gb2N1c01vZHVsZSwgVHVpTGV0TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgIFR1aURhdGFMaXN0TW9kdWxlLFxuICAgIFR1aURyb3Bkb3duQ29udHJvbGxlck1vZHVsZSxcbiAgICBUdWlFeHBhbmRNb2R1bGUsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Nb2R1bGUsXG4gICAgVHVpTGlua01vZHVsZSxcbiAgICBUdWlNb2RlTW9kdWxlLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE1vZHVsZSxcbiAgICBUdWlTY3JvbGxiYXJNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpQWNjb3JkaW9uTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcblxuaW1wb3J0IHtcbiAgICBTY3JvbGxJbnRvVmlld01vZHVsZSxcbiAgICBUdWlTY3JvbGxJbnRvVmlld0xpbmtNb2R1bGUsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2Nyb2xsLWludG8tdmlldy9zY3JvbGwtaW50by12aWV3Lm1vZHVsZSc7XG5pbXBvcnQge1R1aURvY05hdmlnYXRpb25Db21wb25lbnR9IGZyb20gJy4vbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBTY3JvbGxJbnRvVmlld01vZHVsZSxcbiAgICAgICAgVHVpU2Nyb2xsSW50b1ZpZXdMaW5rTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE1vZHVsZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICAgICAgVHVpQWN0aXZlWm9uZU1vZHVsZSxcbiAgICAgICAgVHVpTGV0TW9kdWxlLFxuICAgICAgICBUdWlNb2RlTW9kdWxlLFxuICAgICAgICBUdWlMaW5rTW9kdWxlLFxuICAgICAgICBUdWlFeHBhbmRNb2R1bGUsXG4gICAgICAgIFR1aUhvc3RlZERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBUdWlEcm9wZG93bkNvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIFR1aUFjY29yZGlvbk1vZHVsZSxcbiAgICAgICAgVHVpU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgICBUdWlTdmdNb2R1bGUsXG4gICAgICAgIFR1aURhdGFMaXN0TW9kdWxlLFxuICAgICAgICBUdWlBdXRvRm9jdXNNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlEb2NOYXZpZ2F0aW9uQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpRG9jTmF2aWdhdGlvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY05hdmlnYXRpb25Nb2R1bGUge31cbiJdfQ==
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { __decorate, __param } from "tslib";
|
|
1
|
+
import { __decorate, __extends, __param } from "tslib";
|
|
2
2
|
import { Directive, ElementRef, Inject, Input } from '@angular/core';
|
|
3
3
|
import { getElementObscurers, TuiDestroyService } from '@taiga-ui/cdk';
|
|
4
|
-
import {
|
|
5
|
-
import { debounceTime, filter, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { Observable, ReplaySubject } from 'rxjs';
|
|
5
|
+
import { debounceTime, filter, switchMapTo, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { TUI_DOC_PAGE_LOADED } from '../../tokens/page-loaded';
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated: use {@link TuiScrollIntoViewLinkDirective}
|
|
9
|
+
* TODO: remove in v3.0
|
|
10
|
+
*/
|
|
6
11
|
var ScrollIntoViewDirective = /** @class */ (function () {
|
|
7
|
-
function ScrollIntoViewDirective(destroy$, _a) {
|
|
12
|
+
function ScrollIntoViewDirective(destroy$, _a, readyToScroll$) {
|
|
8
13
|
var nativeElement = _a.nativeElement;
|
|
9
|
-
this.
|
|
10
|
-
this.scroll$
|
|
11
|
-
|
|
14
|
+
this.readyToScroll$ = readyToScroll$;
|
|
15
|
+
this.scroll$ = new ReplaySubject(1);
|
|
16
|
+
this.readyToScroll$
|
|
17
|
+
.pipe(filter(Boolean), switchMapTo(this.scroll$), debounceTime(750), filter(function (shallWe) { return shallWe && !!getElementObscurers(nativeElement); }), takeUntil(destroy$))
|
|
12
18
|
.subscribe(function () {
|
|
13
19
|
nativeElement.scrollIntoView();
|
|
14
20
|
});
|
|
@@ -22,7 +28,8 @@ var ScrollIntoViewDirective = /** @class */ (function () {
|
|
|
22
28
|
});
|
|
23
29
|
ScrollIntoViewDirective.ctorParameters = function () { return [
|
|
24
30
|
{ type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
|
|
25
|
-
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
|
|
31
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
32
|
+
{ type: Observable, decorators: [{ type: Inject, args: [TUI_DOC_PAGE_LOADED,] }] }
|
|
26
33
|
]; };
|
|
27
34
|
__decorate([
|
|
28
35
|
Input()
|
|
@@ -31,11 +38,28 @@ var ScrollIntoViewDirective = /** @class */ (function () {
|
|
|
31
38
|
Directive({
|
|
32
39
|
selector: '[scrollIntoView]',
|
|
33
40
|
providers: [TuiDestroyService],
|
|
34
|
-
})
|
|
41
|
+
})
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
43
|
+
,
|
|
35
44
|
__param(0, Inject(TuiDestroyService)),
|
|
36
|
-
__param(1, Inject(ElementRef))
|
|
45
|
+
__param(1, Inject(ElementRef)),
|
|
46
|
+
__param(2, Inject(TUI_DOC_PAGE_LOADED))
|
|
37
47
|
], ScrollIntoViewDirective);
|
|
38
48
|
return ScrollIntoViewDirective;
|
|
39
49
|
}());
|
|
40
50
|
export { ScrollIntoViewDirective };
|
|
41
|
-
|
|
51
|
+
var TuiScrollIntoViewLinkDirective = /** @class */ (function (_super) {
|
|
52
|
+
__extends(TuiScrollIntoViewLinkDirective, _super);
|
|
53
|
+
function TuiScrollIntoViewLinkDirective() {
|
|
54
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
55
|
+
}
|
|
56
|
+
TuiScrollIntoViewLinkDirective = __decorate([
|
|
57
|
+
Directive({
|
|
58
|
+
selector: '[tuiScrollIntoViewLink]',
|
|
59
|
+
providers: [TuiDestroyService],
|
|
60
|
+
})
|
|
61
|
+
], TuiScrollIntoViewLinkDirective);
|
|
62
|
+
return TuiScrollIntoViewLinkDirective;
|
|
63
|
+
}(ScrollIntoViewDirective));
|
|
64
|
+
export { TuiScrollIntoViewLinkDirective };
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9zY3JvbGwtaW50by12aWV3L3Njcm9sbC1pbnRvLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7OztHQUdHO0FBTUg7SUFRSSxpQ0FDK0IsUUFBMkIsRUFDbEMsRUFBd0MsRUFFbkQsY0FBbUM7WUFGdkIsZ0NBQWE7UUFFekIsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBTi9CLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQVFyRCxJQUFJLENBQUMsY0FBYzthQUNkLElBQUksQ0FDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixNQUFNLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxFQUEvQyxDQUErQyxDQUFDLEVBQ2xFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDdEI7YUFDQSxTQUFTLENBQUM7WUFDUCxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBdkJELHNCQUFJLG1EQUFjO2FBQWxCLFVBQW1CLE9BQWdCO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLENBQUM7OztPQUFBOztnQkFLd0MsaUJBQWlCLHVCQUFyRCxNQUFNLFNBQUMsaUJBQWlCO2dCQUNZLFVBQVUsdUJBQTlDLE1BQU0sU0FBQyxVQUFVO2dCQUVPLFVBQVUsdUJBRGxDLE1BQU0sU0FBQyxtQkFBbUI7O0lBVC9CO1FBREMsS0FBSyxFQUFFO2lFQUdQO0lBSlEsdUJBQXVCO1FBTG5DLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7U0FDakMsQ0FBQztRQUNGLGdFQUFnRTs7UUFVdkQsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO09BWHZCLHVCQUF1QixDQTBCbkM7SUFBRCw4QkFBQztDQUFBLEFBMUJELElBMEJDO1NBMUJZLHVCQUF1QjtBQWdDcEM7SUFBb0Qsa0RBQXVCO0lBQTNFOztJQUE2RSxDQUFDO0lBQWpFLDhCQUE4QjtRQUoxQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQ2pDLENBQUM7T0FDVyw4QkFBOEIsQ0FBbUM7SUFBRCxxQ0FBQztDQUFBLEFBQTlFLENBQW9ELHVCQUF1QixHQUFHO1NBQWpFLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Z2V0RWxlbWVudE9ic2N1cmVycywgVHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN3aXRjaE1hcFRvLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfRE9DX1BBR0VfTE9BREVEfSBmcm9tICcuLi8uLi90b2tlbnMvcGFnZS1sb2FkZWQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiB1c2Uge0BsaW5rIFR1aVNjcm9sbEludG9WaWV3TGlua0RpcmVjdGl2ZX1cbiAqIFRPRE86IHJlbW92ZSBpbiB2My4wXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3Njcm9sbEludG9WaWV3XScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjbGFzcyBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICBzZXQgc2Nyb2xsSW50b1ZpZXcoc2hhbGxXZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNjcm9sbCQubmV4dChzaGFsbFdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbCQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfRE9DX1BBR0VfTE9BREVEKVxuICAgICAgICByZWFkb25seSByZWFkeVRvU2Nyb2xsJDogT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgICApIHtcbiAgICAgICAgdGhpcy5yZWFkeVRvU2Nyb2xsJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcFRvKHRoaXMuc2Nyb2xsJCksXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDc1MCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKHNoYWxsV2UgPT4gc2hhbGxXZSAmJiAhIWdldEVsZW1lbnRPYnNjdXJlcnMobmF0aXZlRWxlbWVudCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3R1aVNjcm9sbEludG9WaWV3TGlua10nLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2Nyb2xsSW50b1ZpZXdMaW5rRGlyZWN0aXZlIGV4dGVuZHMgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmUge31cbiJdfQ==
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
|
-
import { ScrollIntoViewDirective } from './scroll-into-view.directive';
|
|
3
|
+
import { ScrollIntoViewDirective, TuiScrollIntoViewLinkDirective, } from './scroll-into-view.directive';
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated: use {@link TuiScrollIntoViewLinkModule}
|
|
6
|
+
* TODO: remove in v3.0
|
|
7
|
+
*/
|
|
4
8
|
var ScrollIntoViewModule = /** @class */ (function () {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
10
|
function ScrollIntoViewModule() {
|
|
6
11
|
}
|
|
7
12
|
ScrollIntoViewModule = __decorate([
|
|
@@ -9,8 +14,21 @@ var ScrollIntoViewModule = /** @class */ (function () {
|
|
|
9
14
|
declarations: [ScrollIntoViewDirective],
|
|
10
15
|
exports: [ScrollIntoViewDirective],
|
|
11
16
|
})
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
12
18
|
], ScrollIntoViewModule);
|
|
13
19
|
return ScrollIntoViewModule;
|
|
14
20
|
}());
|
|
15
21
|
export { ScrollIntoViewModule };
|
|
16
|
-
|
|
22
|
+
var TuiScrollIntoViewLinkModule = /** @class */ (function () {
|
|
23
|
+
function TuiScrollIntoViewLinkModule() {
|
|
24
|
+
}
|
|
25
|
+
TuiScrollIntoViewLinkModule = __decorate([
|
|
26
|
+
NgModule({
|
|
27
|
+
declarations: [TuiScrollIntoViewLinkDirective],
|
|
28
|
+
exports: [TuiScrollIntoViewLinkDirective],
|
|
29
|
+
})
|
|
30
|
+
], TuiScrollIntoViewLinkModule);
|
|
31
|
+
return TuiScrollIntoViewLinkModule;
|
|
32
|
+
}());
|
|
33
|
+
export { TuiScrollIntoViewLinkModule };
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9zY3JvbGwtaW50by12aWV3L3Njcm9sbC1pbnRvLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsOEJBQThCLEdBQ2pDLE1BQU0sOEJBQThCLENBQUM7QUFFdEM7OztHQUdHO0FBTUg7SUFEQSxnRUFBZ0U7SUFDaEU7SUFBbUMsQ0FBQztJQUF2QixvQkFBb0I7UUFMaEMsUUFBUSxDQUFDO1lBQ04sWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFDdkMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7U0FDckMsQ0FBQztRQUNGLGdFQUFnRTtPQUNuRCxvQkFBb0IsQ0FBRztJQUFELDJCQUFDO0NBQUEsQUFBcEMsSUFBb0M7U0FBdkIsb0JBQW9CO0FBTWpDO0lBQUE7SUFBMEMsQ0FBQztJQUE5QiwyQkFBMkI7UUFKdkMsUUFBUSxDQUFDO1lBQ04sWUFBWSxFQUFFLENBQUMsOEJBQThCLENBQUM7WUFDOUMsT0FBTyxFQUFFLENBQUMsOEJBQThCLENBQUM7U0FDNUMsQ0FBQztPQUNXLDJCQUEyQixDQUFHO0lBQUQsa0NBQUM7Q0FBQSxBQUEzQyxJQUEyQztTQUE5QiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZSxcbiAgICBUdWlTY3JvbGxJbnRvVmlld0xpbmtEaXJlY3RpdmUsXG59IGZyb20gJy4vc2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiB1c2Uge0BsaW5rIFR1aVNjcm9sbEludG9WaWV3TGlua01vZHVsZX1cbiAqIFRPRE86IHJlbW92ZSBpbiB2My4wXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZV0sXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNsYXNzIFNjcm9sbEludG9WaWV3TW9kdWxlIHt9XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbVHVpU2Nyb2xsSW50b1ZpZXdMaW5rRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbVHVpU2Nyb2xsSW50b1ZpZXdMaW5rRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2Nyb2xsSW50b1ZpZXdMaW5rTW9kdWxlIHt9XG4iXX0=
|
package/esm5/public-api.js
CHANGED
|
@@ -28,11 +28,13 @@ export * from './interfaces/page';
|
|
|
28
28
|
/* Languages */
|
|
29
29
|
export * from './languages/russian';
|
|
30
30
|
/* Tokens */
|
|
31
|
+
export * from './tokens/code-actions';
|
|
31
32
|
export * from './tokens/code-editor';
|
|
32
33
|
export * from './tokens/default-tabs';
|
|
33
34
|
export * from './tokens/example-content-processor';
|
|
34
35
|
export * from './tokens/i18n';
|
|
35
36
|
export * from './tokens/logo';
|
|
37
|
+
export * from './tokens/page-loaded';
|
|
36
38
|
export * from './tokens/pages';
|
|
37
39
|
export * from './tokens/see-also';
|
|
38
40
|
export * from './tokens/source-code';
|
|
@@ -43,4 +45,4 @@ export * from './utils/coerce-value';
|
|
|
43
45
|
export * from './utils/generate-routes';
|
|
44
46
|
export * from './utils/raw-load';
|
|
45
47
|
export * from './utils/raw-load-record';
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1kb2MvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsZ0JBQWdCO0FBQ2hCLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsdUVBQXVFLENBQUM7QUFDdEYsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsZ0JBQWdCO0FBQ2hCLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx1REFBdUQsQ0FBQztBQUl0RSxjQUFjLG1CQUFtQixDQUFDO0FBR2xDLGVBQWU7QUFDZixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFlBQVk7QUFDWixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUsvQixXQUFXO0FBQ1gsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgQHRhaWdhLXVpL2FkZG9uLWRvY1xuICovXG5cbi8qIENvbXBvbmVudHMgKi9cbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2RlL2NvZGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2RlL3BhcnNlLWNvZGUtYmxvY2snO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NvcHkvY29weS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NvcHkvY29weS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RlbW8vZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RlbW8vZGVtby5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RvY3VtZW50YXRpb24vZG9jdW1lbnRhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RvY3VtZW50YXRpb24vZG9jdW1lbnRhdGlvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RvY3VtZW50YXRpb24vZG9jdW1lbnRhdGlvbi1wcm9wZXJ0eS1jb25uZWN0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9leGFtcGxlL2V4YW1wbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9leGFtcGxlL2V4YW1wbGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9tYWluL21haW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9tYWluL21haW4ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UtdGFiLmRpcmVjdGl2ZSc7XG5cbi8qIERpcmVjdGl2ZXMgKi9cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9zY3JvbGwtaW50by12aWV3L3Njcm9sbC1pbnRvLXZpZXcuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9zY3JvbGwtaW50by12aWV3L3Njcm9sbC1pbnRvLXZpZXcubW9kdWxlJztcblxuLyogSW50ZXJmYWNlcyAqL1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2NvZGUtZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9wYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9zb3VyY2UtY29kZS1wYXRoLW9wdGlvbnMnO1xuXG4vKiBMYW5ndWFnZXMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2VzL3J1c3NpYW4nO1xuXG4vKiBUb2tlbnMgKi9cbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL2NvZGUtYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9jb2RlLWVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9kZWZhdWx0LXRhYnMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvZXhhbXBsZS1jb250ZW50LXByb2Nlc3Nvcic7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9pMThuJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL2xvZ28nO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvcGFnZS1sb2FkZWQnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvcGFnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvc2VlLWFsc28nO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvc291cmNlLWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvdGl0bGUnO1xuXG4vKiBUeXBlcyAqL1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9wYWdlcyc7XG5cbi8qIFV0aWxzICovXG5leHBvcnQgKiBmcm9tICcuL2FkZG9uLWRvYy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9jb2VyY2UtdmFsdWUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9nZW5lcmF0ZS1yb3V0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9yYXctbG9hZCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL3Jhdy1sb2FkLXJlY29yZCc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export var TUI_DOC_CODE_ACTIONS = new InjectionToken('Code actions for the opened tab with code example', {
|
|
3
|
+
factory: function () { return ''; },
|
|
4
|
+
});
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2FkZG9uLWRvYy8iLCJzb3VyY2VzIjpbInRva2Vucy9jb2RlLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUk3QyxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FFcEQsbURBQW1ELEVBQUU7SUFDbkQsT0FBTyxFQUFFLGNBQU0sT0FBQSxFQUFFLEVBQUYsQ0FBRTtDQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQ29udGV4dFdpdGhJbXBsaWNpdH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfRE9DX0NPREVfQUNUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgICBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8c3RyaW5nPj5cbj4oJ0NvZGUgYWN0aW9ucyBmb3IgdGhlIG9wZW5lZCB0YWIgd2l0aCBjb2RlIGV4YW1wbGUnLCB7XG4gICAgZmFjdG9yeTogKCkgPT4gJycsXG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { defer, of, timer } from 'rxjs';
|
|
3
|
+
import { switchMapTo } from 'rxjs/operators';
|
|
4
|
+
export var TUI_DOC_PAGE_LOADED = new InjectionToken('[TUI_DOC_PAGE_LOADED] Stream that emits if loading of page is over (for example, to begin scrollIntoView)', { factory: function () { return defer(function () { return timer(200).pipe(switchMapTo(of(true))); }); } });
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sb2FkZWQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsidG9rZW5zL3BhZ2UtbG9hZGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFDLEtBQUssRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FDakQsMkdBQTJHLEVBQzNHLEVBQUMsT0FBTyxFQUFFLGNBQU0sT0FBQSxLQUFLLENBQUMsY0FBTSxPQUFBLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQXRDLENBQXNDLENBQUMsRUFBbkQsQ0FBbUQsRUFBQyxDQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2RlZmVyLCBPYnNlcnZhYmxlLCBvZiwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzd2l0Y2hNYXBUb30gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgVFVJX0RPQ19QQUdFX0xPQURFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPGJvb2xlYW4+PihcbiAgICAnW1RVSV9ET0NfUEFHRV9MT0FERURdIFN0cmVhbSB0aGF0IGVtaXRzIGlmIGxvYWRpbmcgb2YgcGFnZSBpcyBvdmVyIChmb3IgZXhhbXBsZSwgdG8gYmVnaW4gc2Nyb2xsSW50b1ZpZXcpJyxcbiAgICB7ZmFjdG9yeTogKCkgPT4gZGVmZXIoKCkgPT4gdGltZXIoMjAwKS5waXBlKHN3aXRjaE1hcFRvKG9mKHRydWUpKSkpfSxcbik7XG4iXX0=
|