@taiga-ui/addon-doc 4.66.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.
- package/README.md +33 -43
- package/components/api/api-item-number.directive.d.ts +3 -3
- package/components/api/api-item.component.d.ts +12 -9
- package/components/{documentation/pipes → api}/inspect.pipe.d.ts +1 -1
- package/components/{documentation/pipes → api}/type-reference.pipe.d.ts +3 -3
- package/components/code/index.d.ts +9 -6
- package/components/copy/index.d.ts +1 -1
- package/components/demo/index.d.ts +14 -9
- package/components/doc-tab/index.d.ts +2 -2
- package/components/example/example.component.d.ts +13 -16
- package/components/example/example.options.d.ts +1 -3
- package/components/index.d.ts +0 -10
- package/components/internal/header/index.d.ts +3 -4
- package/components/internal/see-also/index.d.ts +2 -2
- package/components/internal/source-code/source-code.component.d.ts +7 -8
- package/components/language-switcher/index.d.ts +1 -1
- package/components/main/main.component.d.ts +1 -2
- package/components/navigation/navigation.component.d.ts +6 -5
- package/components/navigation/scroll-into-view.directive.d.ts +5 -3
- package/components/page/page-tab.directive.d.ts +2 -2
- package/components/page/page.component.d.ts +12 -15
- package/components/page/page.providers.d.ts +2 -11
- package/fesm2022/taiga-ui-addon-doc-components.mjs +282 -740
- package/fesm2022/taiga-ui-addon-doc-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-doc-services.mjs +4 -4
- package/fesm2022/taiga-ui-addon-doc-services.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-doc-tokens.mjs +2 -7
- package/fesm2022/taiga-ui-addon-doc-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-doc-types.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-doc-utils.mjs +7 -8
- package/fesm2022/taiga-ui-addon-doc-utils.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-doc.mjs +1 -7
- package/fesm2022/taiga-ui-addon-doc.mjs.map +1 -1
- package/index.d.ts +2 -4
- package/package.json +21 -36
- package/tokens/doc-icons.d.ts +2 -3
- package/types/page.d.ts +1 -1
- package/utils/inspect.d.ts +1 -1
- package/utils/provide-route-page-tab.d.ts +3 -4
- package/components/documentation/documentation-property-connector.directive.d.ts +0 -32
- package/components/documentation/documentation.component.d.ts +0 -23
- package/components/documentation/pipes/cleaner.pipe.d.ts +0 -7
- package/components/documentation/pipes/color.pipe.d.ts +0 -7
- package/components/documentation/pipes/opacity.pipe.d.ts +0 -7
- package/components/documentation/pipes/optional.pipe.d.ts +0 -7
- package/components/documentation/pipes/primitive-polymorpheus-content.pipe.d.ts +0 -7
- package/components/documentation/pipes/strip-optional.pipe.d.ts +0 -7
- package/directives/index.d.ts +0 -1
- package/directives/text-code/text-code.directive.d.ts +0 -9
- package/esm2022/components/api/api-item-number.directive.mjs +0 -23
- package/esm2022/components/api/api-item.component.mjs +0 -118
- package/esm2022/components/api/api.component.mjs +0 -16
- package/esm2022/components/code/index.mjs +0 -46
- package/esm2022/components/copy/index.mjs +0 -29
- package/esm2022/components/demo/index.mjs +0 -170
- package/esm2022/components/doc-tab/index.mjs +0 -17
- package/esm2022/components/documentation/documentation-property-connector.directive.mjs +0 -134
- package/esm2022/components/documentation/documentation.component.mjs +0 -108
- package/esm2022/components/documentation/pipes/cleaner.pipe.mjs +0 -18
- package/esm2022/components/documentation/pipes/color.pipe.mjs +0 -39
- package/esm2022/components/documentation/pipes/inspect.pipe.mjs +0 -33
- package/esm2022/components/documentation/pipes/opacity.pipe.mjs +0 -30
- package/esm2022/components/documentation/pipes/optional.pipe.mjs +0 -18
- package/esm2022/components/documentation/pipes/primitive-polymorpheus-content.pipe.mjs +0 -19
- package/esm2022/components/documentation/pipes/strip-optional.pipe.mjs +0 -18
- package/esm2022/components/documentation/pipes/type-reference.pipe.mjs +0 -29
- package/esm2022/components/example/example-get-tabs.pipe.mjs +0 -18
- package/esm2022/components/example/example.component.mjs +0 -118
- package/esm2022/components/example/example.options.mjs +0 -19
- package/esm2022/components/index.mjs +0 -33
- package/esm2022/components/internal/header/index.mjs +0 -39
- package/esm2022/components/internal/see-also/index.mjs +0 -26
- package/esm2022/components/internal/source-code/source-code.component.mjs +0 -54
- package/esm2022/components/language-switcher/index.mjs +0 -77
- package/esm2022/components/main/main.component.mjs +0 -41
- package/esm2022/components/navigation/navigation.component.mjs +0 -205
- package/esm2022/components/navigation/navigation.providers.mjs +0 -59
- package/esm2022/components/navigation/scroll-into-view.directive.mjs +0 -32
- package/esm2022/components/page/page-tab.directive.mjs +0 -20
- package/esm2022/components/page/page.component.mjs +0 -78
- package/esm2022/components/page/page.providers.mjs +0 -34
- package/esm2022/components/taiga-ui-addon-doc-components.mjs +0 -5
- package/esm2022/components/theme-switcher/theme-switcher.component.mjs +0 -45
- package/esm2022/directives/index.mjs +0 -2
- package/esm2022/directives/taiga-ui-addon-doc-directives.mjs +0 -5
- package/esm2022/directives/text-code/text-code.directive.mjs +0 -27
- package/esm2022/index.mjs +0 -28
- package/esm2022/services/index.mjs +0 -2
- package/esm2022/services/taiga-ui-addon-doc-services.mjs +0 -5
- package/esm2022/services/theme-dark.service.mjs +0 -52
- package/esm2022/taiga-ui-addon-doc.mjs +0 -5
- package/esm2022/tokens/code-actions.mjs +0 -8
- package/esm2022/tokens/code-editor.mjs +0 -6
- package/esm2022/tokens/default-tabs.mjs +0 -8
- package/esm2022/tokens/doc-icons.mjs +0 -29
- package/esm2022/tokens/example-content-processor.mjs +0 -16
- package/esm2022/tokens/excluded-properties.mjs +0 -11
- package/esm2022/tokens/i18n.mjs +0 -62
- package/esm2022/tokens/index.mjs +0 -17
- package/esm2022/tokens/logo.mjs +0 -8
- package/esm2022/tokens/page-loaded.mjs +0 -9
- package/esm2022/tokens/pages.mjs +0 -12
- package/esm2022/tokens/see-also.mjs +0 -8
- package/esm2022/tokens/source-code.mjs +0 -8
- package/esm2022/tokens/support-language.mjs +0 -5
- package/esm2022/tokens/taiga-ui-addon-doc-tokens.mjs +0 -5
- package/esm2022/tokens/title.mjs +0 -8
- package/esm2022/tokens/type-reference-handler.mjs +0 -9
- package/esm2022/tokens/url-state-handler.mjs +0 -27
- package/esm2022/types/code-editor.mjs +0 -2
- package/esm2022/types/demo-params.mjs +0 -2
- package/esm2022/types/index.mjs +0 -2
- package/esm2022/types/page.mjs +0 -6
- package/esm2022/types/source-code-path-options.mjs +0 -2
- package/esm2022/types/taiga-ui-addon-doc-types.mjs +0 -5
- package/esm2022/utils/clean-object.mjs +0 -10
- package/esm2022/utils/coerce-boolean.mjs +0 -4
- package/esm2022/utils/coerce-value.mjs +0 -43
- package/esm2022/utils/index.mjs +0 -14
- package/esm2022/utils/inspect.mjs +0 -67
- package/esm2022/utils/is-page-group.mjs +0 -4
- package/esm2022/utils/parse-code-block.mjs +0 -9
- package/esm2022/utils/provide-route-page-tab.mjs +0 -13
- package/esm2022/utils/raw-load-record.mjs +0 -11
- package/esm2022/utils/raw-load.mjs +0 -4
- package/esm2022/utils/sort-pages.mjs +0 -26
- package/esm2022/utils/taiga-ui-addon-doc-utils.mjs +0 -5
- package/esm2022/utils/to-flat-map-pages.mjs +0 -22
- package/esm2022/utils/transliterate-keyboard-layout.mjs +0 -47
- package/esm2022/utils/type-reference-parser.mjs +0 -21
- package/fesm2022/taiga-ui-addon-doc-directives.mjs +0 -33
- package/fesm2022/taiga-ui-addon-doc-directives.mjs.map +0 -1
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { JsonPipe, Location, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, computed, ContentChild, inject, Input, signal, TemplateRef, ViewChild, } from '@angular/core';
|
|
4
|
-
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { FormGroup, FormsModule, ReactiveFormsModule, } from '@angular/forms';
|
|
6
|
-
import { UrlSerializer } from '@angular/router';
|
|
7
|
-
import { TUI_DOC_DEMO_TEXTS, TUI_DOC_URL_STATE_HANDLER } from '@taiga-ui/addon-doc/tokens';
|
|
8
|
-
import { tuiCleanObject, tuiCoerceValueIsTrue } from '@taiga-ui/addon-doc/utils';
|
|
9
|
-
import { TuiResizable, TuiResizer } from '@taiga-ui/cdk/directives/resizer';
|
|
10
|
-
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
11
|
-
import { tuiClamp, tuiToInteger } from '@taiga-ui/cdk/utils/math';
|
|
12
|
-
import { tuiPure, tuiPx } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
13
|
-
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
14
|
-
import { TuiExpand } from '@taiga-ui/core/components/expand';
|
|
15
|
-
import { TuiGroup } from '@taiga-ui/core/directives/group';
|
|
16
|
-
import { TUI_DARK_MODE } from '@taiga-ui/core/tokens';
|
|
17
|
-
import { TuiDataListWrapper } from '@taiga-ui/kit/components/data-list-wrapper';
|
|
18
|
-
import { TuiSwitch } from '@taiga-ui/kit/components/switch';
|
|
19
|
-
import { TuiChevron } from '@taiga-ui/kit/directives/chevron';
|
|
20
|
-
import { TuiSelectModule } from '@taiga-ui/legacy/components/select';
|
|
21
|
-
import { TuiTextfieldControllerModule } from '@taiga-ui/legacy/directives/textfield-controller';
|
|
22
|
-
import { skip } from 'rxjs';
|
|
23
|
-
import * as i0 from "@angular/core";
|
|
24
|
-
import * as i1 from "@angular/forms";
|
|
25
|
-
import * as i2 from "@taiga-ui/kit/components/data-list-wrapper";
|
|
26
|
-
import * as i3 from "@taiga-ui/core/components/data-list";
|
|
27
|
-
import * as i4 from "@taiga-ui/core/components/expand";
|
|
28
|
-
import * as i5 from "@taiga-ui/legacy/components/select";
|
|
29
|
-
import * as i6 from "@taiga-ui/legacy/directives/textfield-controller";
|
|
30
|
-
const MIN_WIDTH = 160;
|
|
31
|
-
class TuiDocDemo {
|
|
32
|
-
constructor() {
|
|
33
|
-
this.el = tuiInjectElement();
|
|
34
|
-
this.locationRef = inject(Location);
|
|
35
|
-
this.urlSerializer = inject(UrlSerializer);
|
|
36
|
-
this.urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);
|
|
37
|
-
this.darkMode = inject(TUI_DARK_MODE);
|
|
38
|
-
this.template = null;
|
|
39
|
-
this.rendered = signal(false);
|
|
40
|
-
this.theme = computed(() => (this.dark() ? 'dark' : 'light'));
|
|
41
|
-
this.dark = signal(tuiCoerceValueIsTrue(this.params.darkMode ?? this.darkMode()));
|
|
42
|
-
this.$ = toObservable(this.darkMode)
|
|
43
|
-
.pipe(skip(1), takeUntilDestroyed())
|
|
44
|
-
.subscribe((mode) => this.onModeChange(mode));
|
|
45
|
-
this.updateOnVariants = ['change', 'blur', 'submit'];
|
|
46
|
-
this.updateOn = this.params.updateOn || this.updateOnVariants[0];
|
|
47
|
-
this.opaque = tuiCoerceValueIsTrue(this.params.sandboxOpaque ?? true);
|
|
48
|
-
this.expanded = tuiCoerceValueIsTrue(this.params.sandboxExpanded ?? false);
|
|
49
|
-
this.sandboxWidth = tuiToInteger(this.params.sandboxWidth);
|
|
50
|
-
this.texts = inject(TUI_DOC_DEMO_TEXTS);
|
|
51
|
-
this.control = null;
|
|
52
|
-
this.sticky = true;
|
|
53
|
-
}
|
|
54
|
-
ngAfterViewInit() {
|
|
55
|
-
this.createForm();
|
|
56
|
-
this.updateWidth(this.sandboxWidth + this.delta);
|
|
57
|
-
this.rendered.set(true);
|
|
58
|
-
}
|
|
59
|
-
onResize() {
|
|
60
|
-
this.updateWidth();
|
|
61
|
-
this.onMouseUp();
|
|
62
|
-
}
|
|
63
|
-
onMouseUp() {
|
|
64
|
-
this.updateUrl({ sandboxWidth: this.sandboxWidth });
|
|
65
|
-
}
|
|
66
|
-
onModeChange(darkMode) {
|
|
67
|
-
this.dark.set(darkMode);
|
|
68
|
-
this.updateUrl({ sandboxWidth: this.sandboxWidth, darkMode });
|
|
69
|
-
}
|
|
70
|
-
toggleDetails() {
|
|
71
|
-
this.expanded = !this.expanded;
|
|
72
|
-
this.updateUrl({ sandboxExpanded: this.expanded });
|
|
73
|
-
}
|
|
74
|
-
changeOpaque(opaque) {
|
|
75
|
-
this.opaque = opaque;
|
|
76
|
-
this.updateUrl({ sandboxOpaque: this.opaque });
|
|
77
|
-
}
|
|
78
|
-
updateOnChange(updateOn) {
|
|
79
|
-
this.updateOn = updateOn;
|
|
80
|
-
this.updateUrl({ updateOn });
|
|
81
|
-
this.createForm();
|
|
82
|
-
}
|
|
83
|
-
updateWidth(width = NaN) {
|
|
84
|
-
if (!this.resizer || !this.resizable || !this.content) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const safe = width || this.resizable.nativeElement.clientWidth;
|
|
88
|
-
const total = this.el.clientWidth;
|
|
89
|
-
const clamped = Math.round(tuiClamp(safe, MIN_WIDTH, total)) - this.delta;
|
|
90
|
-
const validated = safe < total ? clamped : NaN;
|
|
91
|
-
this.resizer.nativeElement.textContent = String(clamped || '-');
|
|
92
|
-
this.resizable.nativeElement.style.width = validated ? tuiPx(safe) : '';
|
|
93
|
-
this.sandboxWidth = validated;
|
|
94
|
-
}
|
|
95
|
-
get delta() {
|
|
96
|
-
return this.resizable && this.content
|
|
97
|
-
? this.resizable.nativeElement.clientWidth -
|
|
98
|
-
this.content.nativeElement.clientWidth
|
|
99
|
-
: 0;
|
|
100
|
-
}
|
|
101
|
-
get params() {
|
|
102
|
-
return this.getUrlTree().queryParams;
|
|
103
|
-
}
|
|
104
|
-
updateUrl(params) {
|
|
105
|
-
const tree = this.getUrlTree();
|
|
106
|
-
const { queryParams } = tree;
|
|
107
|
-
delete queryParams.sandboxWidth;
|
|
108
|
-
tree.queryParams = {
|
|
109
|
-
...queryParams,
|
|
110
|
-
...tuiCleanObject({ ...params }),
|
|
111
|
-
};
|
|
112
|
-
this.locationRef.go(this.urlStateHandler(tree));
|
|
113
|
-
}
|
|
114
|
-
createForm() {
|
|
115
|
-
const { control, updateOn } = this;
|
|
116
|
-
if (control) {
|
|
117
|
-
this.testForm = new FormGroup({ testValue: control }, { updateOn });
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
getUrlTree() {
|
|
121
|
-
return this.urlSerializer.parse(this.locationRef.path());
|
|
122
|
-
}
|
|
123
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocDemo, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocDemo, isStandalone: true, selector: "tui-doc-demo", inputs: { control: "control", sticky: "sticky" }, host: { listeners: { "window:resize": "onResize()", "document:mouseup.zoneless": "onMouseUp()" }, properties: { "class._sticky": "sticky" } }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "resizable", first: true, predicate: TuiResizable, descendants: true, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "resizer", first: true, predicate: ["resizer"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"t-settings\">\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"dark()\"\n (ngModelChange)=\"onModeChange($event)\"\n />\n {{ texts[0] }}\n </label>\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"opaque\"\n (ngModelChange)=\"changeOpaque($event)\"\n />\n {{ texts[1] }}\n </label>\n</div>\n<div\n tuiResizable\n class=\"t-wrapper\"\n [attr.tuiTheme]=\"theme()\"\n [class.t-wrapper_transparent]=\"!opaque\"\n [style.visibility]=\"rendered() ? 'visible' : 'hidden'\"\n>\n <div class=\"t-content\">\n <div\n #content\n id=\"demo-content\"\n >\n <form\n *ngIf=\"testForm\"\n class=\"t-form\"\n [formGroup]=\"testForm\"\n >\n <div class=\"t-input-wrapper\">\n <ng-container [ngTemplateOutlet]=\"template\" />\n </div>\n <button\n automation-id=\"tui-demo-button__toggle-details\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiChevron]=\"expanded\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"expanded\"\n >\n <ng-template tuiExpandContent>\n <pre class=\"t-value\">Form data: {{ testForm.value | json }}</pre>\n <div\n tuiGroup\n class=\"t-form-controls\"\n >\n <tui-select\n automation-id=\"tui-demo-select__expand-update-on\"\n tuiTextfieldSize=\"s\"\n class=\"t-select\"\n [ngModel]=\"updateOn\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"updateOnChange($event)\"\n >\n updateOn\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"updateOnVariants\"\n />\n </tui-select>\n <button\n automation-id=\"tui-demo-button__reset-state\"\n size=\"s\"\n tuiButton\n type=\"reset\"\n [style.flex]=\"'0 0 auto'\"\n >\n Reset\n </button>\n <button\n automation-id=\"tui-demo-button__submit-state\"\n size=\"s\"\n tuiButton\n type=\"submit\"\n [style.flex]=\"'0 0 auto'\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content />\n </div>\n </div>\n <div\n #resizer\n class=\"t-resizer\"\n [tuiResizer]=\"[1, 0]\"\n (tuiSizeChange)=\"updateWidth($event[0])\"\n ></div>\n</div>\n", styles: [":host{position:relative;display:block;min-inline-size:100%;margin:1.5rem 0;pointer-events:none;font:var(--tui-font-text-s)}.t-settings{position:absolute;bottom:calc(100% + .75rem);display:flex;gap:1rem;align-items:center;justify-content:flex-end;pointer-events:none;inline-size:100%}.t-settings>*{pointer-events:auto}.t-label{display:flex;align-items:center;gap:.5rem}.t-wrapper{display:flex;box-shadow:var(--tui-shadow-medium);border:1px solid var(--tui-border-normal);border-radius:var(--tui-radius-m);max-inline-size:100%;min-block-size:6rem;inline-size:100%;min-inline-size:10rem;color:var(--tui-text-primary);background-color:var(--tui-background-base);overflow:hidden;pointer-events:auto}.t-wrapper.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-background-base-alt) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-background-base-alt) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-background-base-alt) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-background-base-alt) 75%);background-size:1.25rem 1.25rem;background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0}@media screen and (max-width: 47.9625em){.t-wrapper{min-block-size:auto}}.t-content{flex:1 1 0;min-inline-size:0;padding:1.5rem;box-sizing:border-box;overflow:hidden}@media screen and (max-width: 47.9625em){.t-content{padding:1rem}}.t-form{display:flex;flex-wrap:wrap;align-items:flex-start}.t-input-wrapper{inline-size:100%;margin-block-end:.5rem}.t-expand{inline-size:100%}.t-value{flex:1;background:var(--tui-background-neutral-1);padding:.75rem;border-radius:.25rem}.t-mode{inline-size:12.5rem}.t-select{max-inline-size:15rem}.t-resizer{position:relative;display:flex;box-shadow:var(--tui-shadow-medium);inline-size:3.5rem;min-block-size:inherit;align-items:center;justify-content:center;flex-shrink:0;border-inline-start:1px solid var(--tui-border-normal);outline:none;background:var(--tui-background-base);color:var(--tui-text-primary)}.t-resizer:before,.t-resizer:after{content:\"\";position:absolute;top:.75rem;left:50%;bottom:calc(50% + 1rem);inline-size:1px;background:var(--tui-border-normal);box-shadow:-.25rem 0 var(--tui-border-normal);transform:translateZ(0)}.t-resizer:after{bottom:.75rem;top:calc(50% + 1rem)}@media screen and (max-width: 47.9625em){.t-resizer{display:none}}.t-resizer-text{position:relative;z-index:1;font:var(--tui-font-text-s);padding:.75rem;background:var(--tui-background-base)}.wrapper_light .t-resizer-text{background:#3e464e}.t-group,.t-checkbox{display:flex;align-items:center;margin-inline-start:.75rem}.t-button,.t-form-controls{margin-block-start:.75rem}@supports (position: sticky){@media screen and (min-height: 37.5rem){:host._sticky{position:sticky;top:4.625rem;z-index:2}}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "component", type: i2.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "directive", type: i3.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i4.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }, { kind: "directive", type: i4.TuiExpandContent, selector: "[tuiExpandContent]" }, { kind: "directive", type: TuiGroup, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "collapsed", "rounded", "size"] }, { kind: "directive", type: TuiResizable, selector: "[tuiResizable]" }, { kind: "directive", type: TuiResizer, selector: "[tuiResizer]", inputs: ["tuiResizer"], outputs: ["tuiSizeChange"] }, { kind: "ngmodule", type: TuiSelectModule }, { kind: "component", type: i5.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i5.TuiSelectDirective, selector: "tui-select" }, { kind: "component", type: TuiSwitch, selector: "input[type=\"checkbox\"][tuiSwitch]", inputs: ["size", "showIcons"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i6.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
125
|
-
}
|
|
126
|
-
__decorate([
|
|
127
|
-
tuiPure
|
|
128
|
-
], TuiDocDemo.prototype, "updateUrl", null);
|
|
129
|
-
export { TuiDocDemo };
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocDemo, decorators: [{
|
|
131
|
-
type: Component,
|
|
132
|
-
args: [{ standalone: true, selector: 'tui-doc-demo', imports: [
|
|
133
|
-
FormsModule,
|
|
134
|
-
JsonPipe,
|
|
135
|
-
NgIf,
|
|
136
|
-
NgTemplateOutlet,
|
|
137
|
-
ReactiveFormsModule,
|
|
138
|
-
TuiButton,
|
|
139
|
-
TuiChevron,
|
|
140
|
-
TuiDataListWrapper,
|
|
141
|
-
TuiExpand,
|
|
142
|
-
TuiGroup,
|
|
143
|
-
TuiResizable,
|
|
144
|
-
TuiResizer,
|
|
145
|
-
TuiSelectModule,
|
|
146
|
-
TuiSwitch,
|
|
147
|
-
TuiTextfieldControllerModule,
|
|
148
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
149
|
-
'[class._sticky]': 'sticky',
|
|
150
|
-
'(window:resize)': 'onResize()',
|
|
151
|
-
'(document:mouseup.zoneless)': 'onMouseUp()',
|
|
152
|
-
}, template: "<div class=\"t-settings\">\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"dark()\"\n (ngModelChange)=\"onModeChange($event)\"\n />\n {{ texts[0] }}\n </label>\n <label class=\"t-label\">\n <input\n size=\"s\"\n tuiSwitch\n type=\"checkbox\"\n [ngModel]=\"opaque\"\n (ngModelChange)=\"changeOpaque($event)\"\n />\n {{ texts[1] }}\n </label>\n</div>\n<div\n tuiResizable\n class=\"t-wrapper\"\n [attr.tuiTheme]=\"theme()\"\n [class.t-wrapper_transparent]=\"!opaque\"\n [style.visibility]=\"rendered() ? 'visible' : 'hidden'\"\n>\n <div class=\"t-content\">\n <div\n #content\n id=\"demo-content\"\n >\n <form\n *ngIf=\"testForm\"\n class=\"t-form\"\n [formGroup]=\"testForm\"\n >\n <div class=\"t-input-wrapper\">\n <ng-container [ngTemplateOutlet]=\"template\" />\n </div>\n <button\n automation-id=\"tui-demo-button__toggle-details\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiChevron]=\"expanded\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"expanded\"\n >\n <ng-template tuiExpandContent>\n <pre class=\"t-value\">Form data: {{ testForm.value | json }}</pre>\n <div\n tuiGroup\n class=\"t-form-controls\"\n >\n <tui-select\n automation-id=\"tui-demo-select__expand-update-on\"\n tuiTextfieldSize=\"s\"\n class=\"t-select\"\n [ngModel]=\"updateOn\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"updateOnChange($event)\"\n >\n updateOn\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"updateOnVariants\"\n />\n </tui-select>\n <button\n automation-id=\"tui-demo-button__reset-state\"\n size=\"s\"\n tuiButton\n type=\"reset\"\n [style.flex]=\"'0 0 auto'\"\n >\n Reset\n </button>\n <button\n automation-id=\"tui-demo-button__submit-state\"\n size=\"s\"\n tuiButton\n type=\"submit\"\n [style.flex]=\"'0 0 auto'\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content />\n </div>\n </div>\n <div\n #resizer\n class=\"t-resizer\"\n [tuiResizer]=\"[1, 0]\"\n (tuiSizeChange)=\"updateWidth($event[0])\"\n ></div>\n</div>\n", styles: [":host{position:relative;display:block;min-inline-size:100%;margin:1.5rem 0;pointer-events:none;font:var(--tui-font-text-s)}.t-settings{position:absolute;bottom:calc(100% + .75rem);display:flex;gap:1rem;align-items:center;justify-content:flex-end;pointer-events:none;inline-size:100%}.t-settings>*{pointer-events:auto}.t-label{display:flex;align-items:center;gap:.5rem}.t-wrapper{display:flex;box-shadow:var(--tui-shadow-medium);border:1px solid var(--tui-border-normal);border-radius:var(--tui-radius-m);max-inline-size:100%;min-block-size:6rem;inline-size:100%;min-inline-size:10rem;color:var(--tui-text-primary);background-color:var(--tui-background-base);overflow:hidden;pointer-events:auto}.t-wrapper.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-background-base-alt) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-background-base-alt) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-background-base-alt) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-background-base-alt) 75%);background-size:1.25rem 1.25rem;background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0}@media screen and (max-width: 47.9625em){.t-wrapper{min-block-size:auto}}.t-content{flex:1 1 0;min-inline-size:0;padding:1.5rem;box-sizing:border-box;overflow:hidden}@media screen and (max-width: 47.9625em){.t-content{padding:1rem}}.t-form{display:flex;flex-wrap:wrap;align-items:flex-start}.t-input-wrapper{inline-size:100%;margin-block-end:.5rem}.t-expand{inline-size:100%}.t-value{flex:1;background:var(--tui-background-neutral-1);padding:.75rem;border-radius:.25rem}.t-mode{inline-size:12.5rem}.t-select{max-inline-size:15rem}.t-resizer{position:relative;display:flex;box-shadow:var(--tui-shadow-medium);inline-size:3.5rem;min-block-size:inherit;align-items:center;justify-content:center;flex-shrink:0;border-inline-start:1px solid var(--tui-border-normal);outline:none;background:var(--tui-background-base);color:var(--tui-text-primary)}.t-resizer:before,.t-resizer:after{content:\"\";position:absolute;top:.75rem;left:50%;bottom:calc(50% + 1rem);inline-size:1px;background:var(--tui-border-normal);box-shadow:-.25rem 0 var(--tui-border-normal);transform:translateZ(0)}.t-resizer:after{bottom:.75rem;top:calc(50% + 1rem)}@media screen and (max-width: 47.9625em){.t-resizer{display:none}}.t-resizer-text{position:relative;z-index:1;font:var(--tui-font-text-s);padding:.75rem;background:var(--tui-background-base)}.wrapper_light .t-resizer-text{background:#3e464e}.t-group,.t-checkbox{display:flex;align-items:center;margin-inline-start:.75rem}.t-button,.t-form-controls{margin-block-start:.75rem}@supports (position: sticky){@media screen and (min-height: 37.5rem){:host._sticky{position:sticky;top:4.625rem;z-index:2}}}\n"] }]
|
|
153
|
-
}], propDecorators: { resizable: [{
|
|
154
|
-
type: ViewChild,
|
|
155
|
-
args: [TuiResizable, { static: true }]
|
|
156
|
-
}], content: [{
|
|
157
|
-
type: ViewChild,
|
|
158
|
-
args: ['content', { static: true }]
|
|
159
|
-
}], resizer: [{
|
|
160
|
-
type: ViewChild,
|
|
161
|
-
args: ['resizer', { static: true }]
|
|
162
|
-
}], template: [{
|
|
163
|
-
type: ContentChild,
|
|
164
|
-
args: [TemplateRef]
|
|
165
|
-
}], control: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], sticky: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], updateUrl: [] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9kZW1vL2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZGVtby9pbmRleC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUVaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFFSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLG1CQUFtQixHQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBYyxhQUFhLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RixPQUFPLEVBQUMsY0FBYyxFQUFFLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFFLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFD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QkFDVCxVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixlQUFlO3dCQUNmLFNBQVM7d0JBQ1QsNEJBQTRCO3FCQUMvQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixpQkFBaUIsRUFBRSxRQUFRO3dCQUMzQixpQkFBaUIsRUFBRSxZQUFZO3dCQUMvQiw2QkFBNkIsRUFBRSxhQUFhO3FCQUMvQzs4QkFJZ0IsU0FBUztzQkFEekIsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUl0QixPQUFPO3NCQUR2QixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSW5CLE9BQU87c0JBRHZCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFVakIsUUFBUTtzQkFEMUIsWUFBWTt1QkFBQyxXQUFXO2dCQTRCbEIsT0FBTztzQkFEYixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFrRUUsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SnNvblBpcGUsIExvY2F0aW9uLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICB0eXBlIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICB0eXBlIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgICB0eXBlIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHt0eXBlIFBhcmFtcywgVXJsU2VyaWFsaXplciwgdHlwZSBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUVUlfRE9DX0RFTU9fVEVYVFMsIFRVSV9ET0NfVVJMX1NUQVRFX0hBTkRMRVJ9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdG9rZW5zJztcbmltcG9ydCB7dHlwZSBUdWlEZW1vUGFyYW1zfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3R5cGVzJztcbmltcG9ydCB7dHVpQ2xlYW5PYmplY3QsIHR1aUNvZXJjZVZhbHVlSXNUcnVlfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3V0aWxzJztcbmltcG9ydCB7VHVpUmVzaXphYmxlLCBUdWlSZXNpemVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvcmVzaXplcic7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpQ2xhbXAsIHR1aVRvSW50ZWdlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcbmltcG9ydCB7dHVpUHVyZSwgdHVpUHh9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUdWlFeHBhbmR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZXhwYW5kJztcbmltcG9ydCB7VHVpR3JvdXB9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZ3JvdXAnO1xuaW1wb3J0IHtUVUlfREFSS19NT0RFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlEYXRhTGlzdFdyYXBwZXJ9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9kYXRhLWxpc3Qtd3JhcHBlcic7XG5pbXBvcnQge1R1aVN3aXRjaH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3N3aXRjaCc7XG5pbXBvcnQge1R1aUNoZXZyb259IGZyb20gJ0B0YWlnYS11aS9raXQvZGlyZWN0aXZlcy9jaGV2cm9uJztcbmltcG9ydCB7VHVpU2VsZWN0TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvc2VsZWN0JztcbmltcG9ydCB7VHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyJztcbmltcG9ydCB7c2tpcH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IE1JTl9XSURUSCA9IDE2MDtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtZGVtbycsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgSnNvblBpcGUsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpQ2hldnJvbixcbiAgICAgICAgVHVpRGF0YUxpc3RXcmFwcGVyLFxuICAgICAgICBUdWlFeHBhbmQsXG4gICAgICAgIFR1aUdyb3VwLFxuICAgICAgICBUdWlSZXNpemFibGUsXG4gICAgICAgIFR1aVJlc2l6ZXIsXG4gICAgICAgIFR1aVNlbGVjdE1vZHVsZSxcbiAgICAgICAgVHVpU3dpdGNoLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2luZGV4Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2luZGV4Lmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuX3N0aWNreV0nOiAnc3RpY2t5JyxcbiAgICAgICAgJyh3aW5kb3c6cmVzaXplKSc6ICdvblJlc2l6ZSgpJyxcbiAgICAgICAgJyhkb2N1bWVudDptb3VzZXVwLnpvbmVsZXNzKSc6ICdvbk1vdXNlVXAoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jRGVtbyBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoVHVpUmVzaXphYmxlLCB7c3RhdGljOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc2l6YWJsZT86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHtzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgncmVzaXplcicsIHtzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uUmVmID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybFNlcmlhbGl6ZXIgPSBpbmplY3QoVXJsU2VyaWFsaXplcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxTdGF0ZUhhbmRsZXIgPSBpbmplY3QoVFVJX0RPQ19VUkxfU1RBVEVfSEFORExFUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXJrTW9kZSA9IGluamVjdChUVUlfREFSS19NT0RFKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBwcm90ZWN0ZWQgdGhlbWUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5kYXJrKCkgPyAnZGFyaycgOiAnbGlnaHQnKSk7XG5cbiAgICBwcm90ZWN0ZWQgZGFyayA9IHNpZ25hbChcbiAgICAgICAgdHVpQ29lcmNlVmFsdWVJc1RydWUodGhpcy5wYXJhbXMuZGFya01vZGUgPz8gdGhpcy5kYXJrTW9kZSgpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICQgPSB0b09ic2VydmFibGUodGhpcy5kYXJrTW9kZSlcbiAgICAgICAgLnBpcGUoc2tpcCgxKSwgdGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKG1vZGUpID0+IHRoaXMub25Nb2RlQ2hhbmdlKG1vZGUpKTtcblxuICAgIHByb3RlY3RlZCB0ZXN0Rm9ybT86IEZvcm1Hcm91cDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB1cGRhdGVPblZhcmlhbnRzID0gWydjaGFuZ2UnLCAnYmx1cicsICdzdWJtaXQnXSBhcyBjb25zdDtcblxuICAgIHByb3RlY3RlZCB1cGRhdGVPbjogJ2JsdXInIHwgJ2NoYW5nZScgfCAnc3VibWl0JyA9XG4gICAgICAgIHRoaXMucGFyYW1zLnVwZGF0ZU9uIHx8IHRoaXMudXBkYXRlT25WYXJpYW50c1swXTtcblxuICAgIHByb3RlY3RlZCBvcGFxdWUgPSB0dWlDb2VyY2VWYWx1ZUlzVHJ1ZSh0aGlzLnBhcmFtcy5zYW5kYm94T3BhcXVlID8/IHRydWUpO1xuICAgIHByb3RlY3RlZCBleHBhbmRlZCA9IHR1aUNvZXJjZVZhbHVlSXNUcnVlKHRoaXMucGFyYW1zLnNhbmRib3hFeHBhbmRlZCA/PyBmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHNhbmRib3hXaWR0aCA9IHR1aVRvSW50ZWdlcih0aGlzLnBhcmFtcy5zYW5kYm94V2lkdGgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0cyA9IGluamVjdChUVUlfRE9DX0RFTU9fVEVYVFMpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGlja3kgPSB0cnVlO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgICAgIHRoaXMudXBkYXRlV2lkdGgodGhpcy5zYW5kYm94V2lkdGggKyB0aGlzLmRlbHRhKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlZC5zZXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVdpZHRoKCk7XG4gICAgICAgIHRoaXMub25Nb3VzZVVwKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTW91c2VVcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVVcmwoe3NhbmRib3hXaWR0aDogdGhpcy5zYW5kYm94V2lkdGh9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Nb2RlQ2hhbmdlKGRhcmtNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGFyay5zZXQoZGFya01vZGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVVybCh7c2FuZGJveFdpZHRoOiB0aGlzLnNhbmRib3hXaWR0aCwgZGFya01vZGV9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdG9nZ2xlRGV0YWlscygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICAgICAgICB0aGlzLnVwZGF0ZVVybCh7c2FuZGJveEV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNoYW5nZU9wYXF1ZShvcGFxdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGFxdWUgPSBvcGFxdWU7XG4gICAgICAgIHRoaXMudXBkYXRlVXJsKHtzYW5kYm94T3BhcXVlOiB0aGlzLm9wYXF1ZX0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVPbkNoYW5nZSh1cGRhdGVPbjogJ2JsdXInIHwgJ2NoYW5nZScgfCAnc3VibWl0Jyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU9uID0gdXBkYXRlT247XG4gICAgICAgIHRoaXMudXBkYXRlVXJsKHt1cGRhdGVPbn0pO1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlV2lkdGgod2lkdGggPSBOYU4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlc2l6ZXIgfHwgIXRoaXMucmVzaXphYmxlIHx8ICF0aGlzLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNhZmUgPSB3aWR0aCB8fCB0aGlzLnJlc2l6YWJsZS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB0b3RhbCA9IHRoaXMuZWwuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IGNsYW1wZWQgPSBNYXRoLnJvdW5kKHR1aUNsYW1wKHNhZmUsIE1JTl9XSURUSCwgdG90YWwpKSAtIHRoaXMuZGVsdGE7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZCA9IHNhZmUgPCB0b3RhbCA/IGNsYW1wZWQgOiBOYU47XG5cbiAgICAgICAgdGhpcy5yZXNpemVyLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBTdHJpbmcoY2xhbXBlZCB8fCAnLScpO1xuICAgICAgICB0aGlzLnJlc2l6YWJsZS5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gdmFsaWRhdGVkID8gdHVpUHgoc2FmZSkgOiAnJztcbiAgICAgICAgdGhpcy5zYW5kYm94V2lkdGggPSB2YWxpZGF0ZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZGVsdGEoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzaXphYmxlICYmIHRoaXMuY29udGVudFxuICAgICAgICAgICAgPyB0aGlzLnJlc2l6YWJsZS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC1cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgICAgICAgICA6IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGFyYW1zKCk6IFBhcmFtcyB8IFR1aURlbW9QYXJhbXMge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRVcmxUcmVlKCkucXVlcnlQYXJhbXM7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIHVwZGF0ZVVybChwYXJhbXM6IFR1aURlbW9QYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdHJlZSA9IHRoaXMuZ2V0VXJsVHJlZSgpO1xuICAgICAgICBjb25zdCB7cXVlcnlQYXJhbXN9ID0gdHJlZTtcblxuICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXMuc2FuZGJveFdpZHRoO1xuXG4gICAgICAgIHRyZWUucXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgICAuLi5xdWVyeVBhcmFtcyxcbiAgICAgICAgICAgIC4uLnR1aUNsZWFuT2JqZWN0KHsuLi5wYXJhbXN9KSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmxvY2F0aW9uUmVmLmdvKHRoaXMudXJsU3RhdGVIYW5kbGVyKHRyZWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjb250cm9sLCB1cGRhdGVPbn0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLnRlc3RGb3JtID0gbmV3IEZvcm1Hcm91cCh7dGVzdFZhbHVlOiBjb250cm9sfSwge3VwZGF0ZU9ufSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVybFRyZWUoKTogVXJsVHJlZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy5sb2NhdGlvblJlZi5wYXRoKCkpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LXNldHRpbmdzXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwidC1sYWJlbFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIHR1aVN3aXRjaFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImRhcmsoKVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIHt7IHRleHRzWzBdIH19XG4gICAgPC9sYWJlbD5cbiAgICA8bGFiZWwgY2xhc3M9XCJ0LWxhYmVsXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgdHVpU3dpdGNoXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwib3BhcXVlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZU9wYXF1ZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAge3sgdGV4dHNbMV0gfX1cbiAgICA8L2xhYmVsPlxuPC9kaXY+XG48ZGl2XG4gICAgdHVpUmVzaXphYmxlXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFthdHRyLnR1aVRoZW1lXT1cInRoZW1lKClcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfdHJhbnNwYXJlbnRdPVwiIW9wYXF1ZVwiXG4gICAgW3N0eWxlLnZpc2liaWxpdHldPVwicmVuZGVyZWQoKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwidC1jb250ZW50XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNjb250ZW50XG4gICAgICAgICAgICBpZD1cImRlbW8tY29udGVudFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0ZXN0Rm9ybVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWZvcm1cIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwidGVzdEZvcm1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRlbW8tYnV0dG9uX190b2dnbGUtZGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3R1aUNoZXZyb25dPVwiZXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlscygpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHRleHRzWzJdIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPHR1aS1leHBhbmRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdHVpRXhwYW5kQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJ0LXZhbHVlXCI+Rm9ybSBkYXRhOiB7eyB0ZXN0Rm9ybS52YWx1ZSB8IGpzb24gfX08L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1mb3JtLWNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHVpLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRlbW8tc2VsZWN0X19leHBhbmQtdXBkYXRlLW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidXBkYXRlT25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVPblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWRhdGEtbGlzdC13cmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJ1cGRhdGVPblZhcmlhbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3R1aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRlbW8tYnV0dG9uX19yZXNldC1zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5mbGV4XT1cIicwIDAgYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktZGVtby1idXR0b25fX3N1Ym1pdC1zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZmxleF09XCInMCAwIGF1dG8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90dWktZXhwYW5kPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAjcmVzaXplclxuICAgICAgICBjbGFzcz1cInQtcmVzaXplclwiXG4gICAgICAgIFt0dWlSZXNpemVyXT1cIlsxLCAwXVwiXG4gICAgICAgICh0dWlTaXplQ2hhbmdlKT1cInVwZGF0ZVdpZHRoKCRldmVudFswXSlcIlxuICAgID48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
class TuiDocTab {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.src = '';
|
|
6
|
-
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocTab, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocTab, isStandalone: true, selector: "tui-doc-tab", inputs: { src: "src" }, ngImport: i0, template: "<div class=\"t-tab\">\n <img\n alt=\"Documentation tab icon\"\n class=\"t-icon\"\n [src]=\"src\"\n />\n <ng-content />\n</div>\n", styles: [".t-tab{display:flex;align-items:center;justify-content:center;padding:0 .5rem;gap:.5rem;color:var(--tui-text-primary)}.t-tab .t-icon{inline-size:1rem;block-size:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
|
-
}
|
|
10
|
-
export { TuiDocTab };
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocTab, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{ standalone: true, selector: 'tui-doc-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"t-tab\">\n <img\n alt=\"Documentation tab icon\"\n class=\"t-icon\"\n [src]=\"src\"\n />\n <ng-content />\n</div>\n", styles: [".t-tab{display:flex;align-items:center;justify-content:center;padding:0 .5rem;gap:.5rem;color:var(--tui-text-primary)}.t-tab .t-icon{inline-size:1rem;block-size:1rem}\n"] }]
|
|
14
|
-
}], propDecorators: { src: [{
|
|
15
|
-
type: Input
|
|
16
|
-
}] } });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9kb2MtdGFiL2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZG9jLXRhYi9pbmRleC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUV4RSxNQU9hLFNBQVM7SUFQdEI7UUFTVyxRQUFHLEdBQUcsRUFBRSxDQUFDO0tBQ25COytHQUhZLFNBQVM7bUdBQVQsU0FBUywrRkNUdEIsZ0tBUUE7O1NEQ2EsU0FBUzs0RkFBVCxTQUFTO2tCQVByQixTQUFTO2lDQUNNLElBQUksWUFDTixhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OEJBSXhDLEdBQUc7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWRvYy10YWInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmRleC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbmRleC5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY1RhYiB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3JjID0gJyc7XG59XG4iLCI8ZGl2IGNsYXNzPVwidC10YWJcIj5cbiAgICA8aW1nXG4gICAgICAgIGFsdD1cIkRvY3VtZW50YXRpb24gdGFiIGljb25cIlxuICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAvPlxuICAgIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Location } from '@angular/common';
|
|
2
|
-
import { Directive, EventEmitter, inject, Input, Output, signal, TemplateRef, } from '@angular/core';
|
|
3
|
-
import { ActivatedRoute, UrlSerializer } from '@angular/router';
|
|
4
|
-
import { TUI_DOC_URL_STATE_HANDLER } from '@taiga-ui/addon-doc/tokens';
|
|
5
|
-
import { tuiCleanObject, tuiCoerceValue, tuiInspectAny } from '@taiga-ui/addon-doc/utils';
|
|
6
|
-
import { tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
7
|
-
import { TuiAlertService } from '@taiga-ui/core/components/alert';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
const SERIALIZED_SUFFIX = '$';
|
|
11
|
-
// @bad TODO: refactor output and value sync
|
|
12
|
-
class TuiDocDocumentationPropertyConnector {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.locationRef = inject(Location);
|
|
15
|
-
this.activatedRoute = inject(ActivatedRoute);
|
|
16
|
-
this.urlSerializer = inject(UrlSerializer);
|
|
17
|
-
this.urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);
|
|
18
|
-
this.alerts = inject(TuiAlertService);
|
|
19
|
-
this.documentationPropertyName = '';
|
|
20
|
-
this.documentationPropertyMode = null;
|
|
21
|
-
this.documentationPropertyType = '';
|
|
22
|
-
this.documentationPropertyDeprecated = false;
|
|
23
|
-
this.documentationPropertyValues = null;
|
|
24
|
-
this.documentationPropertyValueChange = new EventEmitter();
|
|
25
|
-
this.changed$ = new Subject();
|
|
26
|
-
this.emits = signal(1);
|
|
27
|
-
this.template = inject(TemplateRef);
|
|
28
|
-
}
|
|
29
|
-
get attrName() {
|
|
30
|
-
switch (this.documentationPropertyMode) {
|
|
31
|
-
case 'input':
|
|
32
|
-
return `[${this.documentationPropertyName}]`;
|
|
33
|
-
case 'input-output':
|
|
34
|
-
return `[(${this.documentationPropertyName})]`;
|
|
35
|
-
case 'output':
|
|
36
|
-
return `(${this.documentationPropertyName})`;
|
|
37
|
-
default:
|
|
38
|
-
return this.documentationPropertyName;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
get shouldShowValues() {
|
|
42
|
-
return this.documentationPropertyMode !== 'output';
|
|
43
|
-
}
|
|
44
|
-
get hasItems() {
|
|
45
|
-
return !!this.documentationPropertyValues;
|
|
46
|
-
}
|
|
47
|
-
ngOnInit() {
|
|
48
|
-
this.parseParams(this.activatedRoute.snapshot.queryParams);
|
|
49
|
-
}
|
|
50
|
-
ngOnChanges() {
|
|
51
|
-
this.changed$.next();
|
|
52
|
-
}
|
|
53
|
-
onValueChange(value) {
|
|
54
|
-
this.documentationPropertyValue = value;
|
|
55
|
-
this.documentationPropertyValueChange.emit(value);
|
|
56
|
-
this.setQueryParam(value);
|
|
57
|
-
}
|
|
58
|
-
emitEvent(event) {
|
|
59
|
-
// For more convenient debugging
|
|
60
|
-
console.info(this.attrName, event);
|
|
61
|
-
this.emits.update((x) => ++x);
|
|
62
|
-
let content;
|
|
63
|
-
if (event !== undefined) {
|
|
64
|
-
content = tuiInspectAny(event, 2);
|
|
65
|
-
}
|
|
66
|
-
this.alerts.open(content, { label: this.attrName }).subscribe();
|
|
67
|
-
}
|
|
68
|
-
parseParams(params) {
|
|
69
|
-
const propertyValue = params[this.documentationPropertyName];
|
|
70
|
-
const propertyValueWithSuffix = params[`${this.documentationPropertyName}${SERIALIZED_SUFFIX}`];
|
|
71
|
-
if (!propertyValue && !propertyValueWithSuffix) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
let value = !!propertyValueWithSuffix && this.documentationPropertyValues
|
|
75
|
-
? this.documentationPropertyValues[propertyValueWithSuffix]
|
|
76
|
-
: tuiCoerceValue(propertyValue);
|
|
77
|
-
if (this.documentationPropertyType === 'string' && tuiIsNumber(value)) {
|
|
78
|
-
value = value.toString();
|
|
79
|
-
}
|
|
80
|
-
this.onValueChange(value);
|
|
81
|
-
}
|
|
82
|
-
setQueryParam(value) {
|
|
83
|
-
const tree = this.urlSerializer.parse(this.locationRef.path());
|
|
84
|
-
const isValueAvailableByKey = value instanceof Object;
|
|
85
|
-
const name = this.documentationPropertyName;
|
|
86
|
-
const nameWithSuffix = `${name}${SERIALIZED_SUFFIX}`;
|
|
87
|
-
const computedValue = isValueAvailableByKey && this.documentationPropertyValues
|
|
88
|
-
? this.documentationPropertyValues.indexOf(value)
|
|
89
|
-
: value;
|
|
90
|
-
tree.queryParams = tuiCleanObject({
|
|
91
|
-
...tree.queryParams,
|
|
92
|
-
/**
|
|
93
|
-
* Caretaker note: reset previous conflicted param in route
|
|
94
|
-
* issue: https://github.com/taiga-family/taiga-ui/issues/9764
|
|
95
|
-
*/
|
|
96
|
-
...(isValueAvailableByKey
|
|
97
|
-
? {
|
|
98
|
-
[nameWithSuffix]: computedValue,
|
|
99
|
-
[name]: undefined,
|
|
100
|
-
}
|
|
101
|
-
: {
|
|
102
|
-
[nameWithSuffix]: undefined,
|
|
103
|
-
[name]: computedValue,
|
|
104
|
-
}),
|
|
105
|
-
});
|
|
106
|
-
this.locationRef.go(this.urlStateHandler(tree));
|
|
107
|
-
}
|
|
108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocDocumentationPropertyConnector, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
109
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocDocumentationPropertyConnector, isStandalone: true, selector: "ng-template[documentationPropertyName]", inputs: { documentationPropertyName: "documentationPropertyName", documentationPropertyMode: "documentationPropertyMode", documentationPropertyType: "documentationPropertyType", documentationPropertyValue: "documentationPropertyValue", documentationPropertyDeprecated: "documentationPropertyDeprecated", documentationPropertyValues: "documentationPropertyValues" }, outputs: { documentationPropertyValueChange: "documentationPropertyValueChange" }, exportAs: ["documentationProperty"], usesOnChanges: true, ngImport: i0 }); }
|
|
110
|
-
}
|
|
111
|
-
export { TuiDocDocumentationPropertyConnector };
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocDocumentationPropertyConnector, decorators: [{
|
|
113
|
-
type: Directive,
|
|
114
|
-
args: [{
|
|
115
|
-
standalone: true,
|
|
116
|
-
selector: 'ng-template[documentationPropertyName]',
|
|
117
|
-
exportAs: 'documentationProperty',
|
|
118
|
-
}]
|
|
119
|
-
}], propDecorators: { documentationPropertyName: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], documentationPropertyMode: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], documentationPropertyType: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], documentationPropertyValue: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], documentationPropertyDeprecated: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], documentationPropertyValues: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], documentationPropertyValueChange: [{
|
|
132
|
-
type: Output
|
|
133
|
-
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi1wcm9wZXJ0eS1jb25uZWN0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZG9jdW1lbnRhdGlvbi9kb2N1bWVudGF0aW9uLXByb3BlcnR5LWNvbm5lY3Rvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGNBQWMsRUFBZSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBRTdCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBSTlCLDRDQUE0QztBQUM1QyxNQUthLG9DQUFvQztJQUxqRDtRQU1xQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FB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Q0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQXRJUSxvQ0FBb0M7bUdBQXBDLG9DQUFvQzs7U0FBcEMsb0NBQW9DOzRGQUFwQyxvQ0FBb0M7a0JBTGhELFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRSx1QkFBdUI7aUJBQ3BDOzhCQVNVLHlCQUF5QjtzQkFEL0IsS0FBSztnQkFJQyx5QkFBeUI7c0JBRC9CLEtBQUs7Z0JBSUMseUJBQXlCO3NCQUQvQixLQUFLO2dCQUlDLDBCQUEwQjtzQkFEaEMsS0FBSztnQkFJQywrQkFBK0I7c0JBRHJDLEtBQUs7Z0JBSUMsMkJBQTJCO3NCQURqQyxLQUFLO2dCQUlVLGdDQUFnQztzQkFEL0MsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHR5cGUgT25DaGFuZ2VzLFxuICAgIHR5cGUgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgdHlwZSBQYXJhbXMsIFVybFNlcmlhbGl6ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RVSV9ET0NfVVJMX1NUQVRFX0hBTkRMRVJ9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdG9rZW5zJztcbmltcG9ydCB7dHVpQ2xlYW5PYmplY3QsIHR1aUNvZXJjZVZhbHVlLCB0dWlJbnNwZWN0QW55fSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL3V0aWxzJztcbmltcG9ydCB7dHVpSXNOdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aUFsZXJ0U2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9hbGVydCc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBTRVJJQUxJWkVEX1NVRkZJWCA9ICckJztcblxuZXhwb3J0IHR5cGUgVHVpRG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSA9ICdpbnB1dC1vdXRwdXQnIHwgJ2lucHV0JyB8ICdvdXRwdXQnIHwgbnVsbDtcblxuLy8gQGJhZCBUT0RPOiByZWZhY3RvciBvdXRwdXQgYW5kIHZhbHVlIHN5bmNcbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtkb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lXScsXG4gICAgZXhwb3J0QXM6ICdkb2N1bWVudGF0aW9uUHJvcGVydHknLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NEb2N1bWVudGF0aW9uUHJvcGVydHlDb25uZWN0b3I8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZiA9IGluamVjdChMb2NhdGlvbik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxTZXJpYWxpemVyID0gaW5qZWN0KFVybFNlcmlhbGl6ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsU3RhdGVIYW5kbGVyID0gaW5qZWN0KFRVSV9ET0NfVVJMX1NUQVRFX0hBTkRMRVIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzID0gaW5qZWN0KFR1aUFsZXJ0U2VydmljZSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkb2N1bWVudGF0aW9uUHJvcGVydHlNb2RlOiBUdWlEb2N1bWVudGF0aW9uUHJvcGVydHlUeXBlID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRvY3VtZW50YXRpb25Qcm9wZXJ0eVR5cGUgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlITogVDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRvY3VtZW50YXRpb25Qcm9wZXJ0eURlcHJlY2F0ZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlczogcmVhZG9ubHkgVFtdIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGVtaXRzID0gc2lnbmFsKDEpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblxuICAgIHB1YmxpYyBnZXQgYXR0ck5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYFske3RoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZX1dYDtcbiAgICAgICAgICAgIGNhc2UgJ2lucHV0LW91dHB1dCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBbKCR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfSldYDtcbiAgICAgICAgICAgIGNhc2UgJ291dHB1dCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAoJHt0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWV9KWA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNob3VsZFNob3dWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU1vZGUgIT09ICdvdXRwdXQnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzSXRlbXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJzZVBhcmFtcyh0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlZCQubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRRdWVyeVBhcmFtKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdEV2ZW50KGV2ZW50OiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIC8vIEZvciBtb3JlIGNvbnZlbmllbnQgZGVidWdnaW5nXG4gICAgICAgIGNvbnNvbGUuaW5mbyh0aGlzLmF0dHJOYW1lLCBldmVudCk7XG5cbiAgICAgICAgdGhpcy5lbWl0cy51cGRhdGUoKHgpID0+ICsreCk7XG5cbiAgICAgICAgbGV0IGNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoZXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29udGVudCA9IHR1aUluc3BlY3RBbnkoZXZlbnQsIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbGVydHMub3Blbihjb250ZW50LCB7bGFiZWw6IHRoaXMuYXR0ck5hbWV9KS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlUGFyYW1zKHBhcmFtczogUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5VmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHBhcmFtc1t0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWVdO1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeDogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIHBhcmFtc1tgJHt0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWV9JHtTRVJJQUxJWkVEX1NVRkZJWH1gXTtcblxuICAgICAgICBpZiAoIXByb3BlcnR5VmFsdWUgJiYgIXByb3BlcnR5VmFsdWVXaXRoU3VmZml4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPVxuICAgICAgICAgICAgISFwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeCAmJiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlc1xuICAgICAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXNbcHJvcGVydHlWYWx1ZVdpdGhTdWZmaXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgICAgIDogdHVpQ29lcmNlVmFsdWUocHJvcGVydHlWYWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSA9PT0gJ3N0cmluZycgJiYgdHVpSXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UodmFsdWUgYXMgVCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRRdWVyeVBhcmFtKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy5sb2NhdGlvblJlZi5wYXRoKCkpO1xuICAgICAgICBjb25zdCBpc1ZhbHVlQXZhaWxhYmxlQnlLZXkgPSB2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdDtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZTtcbiAgICAgICAgY29uc3QgbmFtZVdpdGhTdWZmaXggPSBgJHtuYW1lfSR7U0VSSUFMSVpFRF9TVUZGSVh9YDtcblxuICAgICAgICBjb25zdCBjb21wdXRlZFZhbHVlID1cbiAgICAgICAgICAgIGlzVmFsdWVBdmFpbGFibGVCeUtleSAmJiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlc1xuICAgICAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXMuaW5kZXhPZih2YWx1ZSBhcyBUKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG5cbiAgICAgICAgdHJlZS5xdWVyeVBhcmFtcyA9IHR1aUNsZWFuT2JqZWN0KHtcbiAgICAgICAgICAgIC4uLnRyZWUucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENhcmV0YWtlciBub3RlOiByZXNldCBwcmV2aW91cyBjb25mbGljdGVkIHBhcmFtIGluIHJvdXRlXG4gICAgICAgICAgICAgKiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3RhaWdhLWZhbWlseS90YWlnYS11aS9pc3N1ZXMvOTc2NFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAuLi4oaXNWYWx1ZUF2YWlsYWJsZUJ5S2V5XG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgW25hbWVXaXRoU3VmZml4XTogY29tcHV0ZWRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV06IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZVdpdGhTdWZmaXhdOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgW25hbWVdOiBjb21wdXRlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubG9jYXRpb25SZWYuZ28odGhpcy51cmxTdGF0ZUhhbmRsZXIodHJlZSkpO1xuICAgIH1cbn1cbiJdfQ==
|