@taiga-ui/addon-doc 2.55.0 → 2.58.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 +288 -230
- 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/language-switcher/language-switcher.component.d.ts +13 -0
- package/components/language-switcher/language-switcher.module.d.ts +2 -0
- package/esm2015/components/code/code.component.js +5 -5
- package/esm2015/components/code/parse-code-block.js +3 -3
- package/esm2015/components/copy/copy.component.js +2 -2
- package/esm2015/components/demo/demo.component.js +12 -12
- package/esm2015/components/documentation/documentation-property-connector.directive.js +11 -11
- package/esm2015/components/documentation/documentation.component.js +30 -30
- package/esm2015/components/example/example-capitalize.pipe.js +3 -3
- package/esm2015/components/example/example-get-tabs.pipe.js +2 -2
- package/esm2015/components/example/example.component.js +9 -9
- package/esm2015/components/language-switcher/language-switcher.component.js +48 -0
- package/esm2015/components/language-switcher/language-switcher.module.js +18 -0
- package/esm2015/components/main/main.component.js +9 -9
- package/esm2015/components/navigation/navigation.component.js +16 -16
- package/esm2015/components/navigation/navigation.providers.js +4 -4
- package/esm2015/components/page/page-tab.directive.js +2 -2
- package/esm2015/components/page/page.component.js +10 -10
- package/esm2015/components/page/page.providers.js +4 -4
- package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +3 -3
- package/esm2015/interfaces/page.js +4 -4
- package/esm2015/internal/header/header.component.js +3 -3
- package/esm2015/internal/input-opacity/input-opacity.directive.js +3 -3
- package/esm2015/internal/see-also/see-also.component.js +6 -6
- package/esm2015/internal/source-code/source-code.component.js +6 -6
- package/esm2015/languages/russian.js +12 -12
- package/esm2015/public-api.js +3 -1
- package/esm2015/tokens/code-actions.js +3 -3
- package/esm2015/tokens/code-editor.js +2 -2
- package/esm2015/tokens/default-tabs.js +2 -2
- package/esm2015/tokens/example-content-processor.js +2 -2
- package/esm2015/tokens/i18n.js +19 -19
- package/esm2015/tokens/logo.js +3 -3
- package/esm2015/tokens/page-loaded.js +2 -2
- package/esm2015/tokens/pages.js +2 -2
- package/esm2015/tokens/scroll-behavior.js +2 -2
- package/esm2015/tokens/see-also.js +2 -2
- package/esm2015/tokens/source-code.js +3 -3
- package/esm2015/tokens/title.js +3 -3
- package/esm2015/utils/coerce-value.js +6 -6
- package/esm2015/utils/color-conversion.js +5 -5
- package/esm2015/utils/generate-routes.js +3 -3
- package/esm2015/utils/inspect.js +13 -13
- package/esm2015/utils/transliterate-keyboard-layout.js +34 -34
- package/esm5/components/code/code.component.js +5 -5
- package/esm5/components/code/parse-code-block.js +3 -3
- package/esm5/components/copy/copy.component.js +2 -2
- package/esm5/components/demo/demo.component.js +12 -12
- package/esm5/components/documentation/documentation-property-connector.directive.js +11 -11
- package/esm5/components/documentation/documentation.component.js +30 -30
- package/esm5/components/example/example-capitalize.pipe.js +3 -3
- package/esm5/components/example/example-get-tabs.pipe.js +2 -2
- package/esm5/components/example/example.component.js +9 -9
- package/esm5/components/language-switcher/language-switcher.component.js +49 -0
- package/esm5/components/language-switcher/language-switcher.module.js +21 -0
- package/esm5/components/main/main.component.js +9 -9
- package/esm5/components/navigation/navigation.component.js +16 -16
- package/esm5/components/navigation/navigation.providers.js +4 -4
- package/esm5/components/page/page-tab.directive.js +2 -2
- package/esm5/components/page/page.component.js +10 -10
- package/esm5/components/page/page.providers.js +4 -4
- package/esm5/directives/scroll-into-view/scroll-into-view.directive.js +3 -3
- package/esm5/interfaces/page.js +4 -4
- package/esm5/internal/header/header.component.js +3 -3
- package/esm5/internal/input-opacity/input-opacity.directive.js +3 -3
- package/esm5/internal/see-also/see-also.component.js +6 -6
- package/esm5/internal/source-code/source-code.component.js +6 -6
- package/esm5/languages/russian.js +12 -12
- package/esm5/public-api.js +3 -1
- package/esm5/tokens/code-actions.js +3 -3
- package/esm5/tokens/code-editor.js +2 -2
- package/esm5/tokens/default-tabs.js +2 -2
- package/esm5/tokens/example-content-processor.js +2 -2
- package/esm5/tokens/i18n.js +19 -19
- package/esm5/tokens/logo.js +3 -3
- package/esm5/tokens/page-loaded.js +2 -2
- package/esm5/tokens/pages.js +2 -2
- package/esm5/tokens/scroll-behavior.js +2 -2
- package/esm5/tokens/see-also.js +2 -2
- package/esm5/tokens/source-code.js +3 -3
- package/esm5/tokens/title.js +3 -3
- package/esm5/utils/coerce-value.js +6 -6
- package/esm5/utils/color-conversion.js +5 -5
- package/esm5/utils/generate-routes.js +3 -3
- package/esm5/utils/inspect.js +13 -13
- package/esm5/utils/transliterate-keyboard-layout.js +34 -34
- package/fesm2015/taiga-ui-addon-doc.js +281 -228
- package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
- package/fesm5/taiga-ui-addon-doc.js +285 -228
- 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
|
@@ -7,13 +7,14 @@ import { CommonModule, isPlatformBrowser, Location as Location$1, DOCUMENT } fro
|
|
|
7
7
|
import { HighlightModule } from 'ngx-highlightjs';
|
|
8
8
|
import { tuiPure, TuiDestroyService, px, TUI_IS_MOBILE, TuiDragModule, EMPTY_QUERY, itemsQueryListObservable, watch, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_CYPRESS, TuiSwipeService, getElementObscurers, isPresent, uniqBy, TuiActiveZoneModule, TuiLetModule, TuiAutoFocusModule, tuiDefaultProp } from '@taiga-ui/cdk';
|
|
9
9
|
import { TUI_COPY_TEXTS, TuiSelectModule, TuiRadioBlockModule, TuiCheckboxLabeledModule, TuiDataListWrapperModule, TuiBadgeModule, TuiToggleModule, TuiInputCountModule, TuiTabsModule, TuiAccordionModule, TuiTagModule } from '@taiga-ui/kit';
|
|
10
|
-
import { TuiButtonModule, TuiModeDirective, TuiLinkModule, TuiExpandModule, TuiGroupModule, TuiTooltipModule, TuiModeModule, TuiSvgModule, TuiDataListModule, TuiTextfieldControllerModule, TuiHintControllerModule, TuiPrimitiveTextfieldModule, TuiDropdownControllerModule, TuiNotificationModule, TuiNotificationsService, capitalizeFirstLetter, TuiHostedDropdownModule, TuiScrollbarModule, TuiThemeNightModule, TuiRootModule, TuiDialogModule, TuiAlertModule } from '@taiga-ui/core';
|
|
10
|
+
import { TuiButtonModule, TuiModeDirective, TuiLinkModule, TuiExpandModule, TuiGroupModule, TuiTooltipModule, TuiModeModule, TuiSvgModule, TuiDataListModule, TuiTextfieldControllerModule, TuiHintControllerModule, TuiPrimitiveTextfieldModule, TuiDropdownControllerModule, TuiNotificationModule, TuiNotificationsService, capitalizeFirstLetter, tuiCapitalizeFirstLetter, TUI_ICONS_PATH, TuiHostedDropdownModule, TuiScrollbarModule, TuiThemeNightModule, TuiRootModule, TuiDialogModule, TuiAlertModule } from '@taiga-ui/core';
|
|
11
11
|
import { FormControl, FormGroup, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
12
12
|
import { UrlSerializer, RouterModule, ActivatedRoute, Router, NavigationEnd } from '@angular/router';
|
|
13
13
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
14
14
|
import { Clipboard, ClipboardModule } from '@angular/cdk/clipboard';
|
|
15
15
|
import { LOCATION, LOCAL_STORAGE, WINDOW } from '@ng-web-apis/common';
|
|
16
16
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
17
|
+
import { TuiCountryIsoCode, TuiLanguageSwitcher } from '@taiga-ui/i18n';
|
|
17
18
|
import { TuiSidebarDirective, TuiSidebarModule } from '@taiga-ui/addon-mobile';
|
|
18
19
|
import { Title } from '@angular/platform-browser';
|
|
19
20
|
|
|
@@ -32,10 +33,10 @@ const tuiRawLoad = rawLoad;
|
|
|
32
33
|
* @deprecated: use {@link tuiTryParseMarkdownCodeBlock} instead
|
|
33
34
|
*/
|
|
34
35
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
35
|
-
function tryParseMarkdownCodeBlock(text =
|
|
36
|
+
function tryParseMarkdownCodeBlock(text = ``) {
|
|
36
37
|
const tokens = new MarkdownIt().parse(text, {});
|
|
37
38
|
const result = tokens
|
|
38
|
-
.filter(({ tag, type }) => tag ===
|
|
39
|
+
.filter(({ tag, type }) => tag === `code` && type === `fence`)
|
|
39
40
|
.map(({ content }) => content);
|
|
40
41
|
return result.length ? result : [text];
|
|
41
42
|
}
|
|
@@ -43,8 +44,8 @@ const tuiTryParseMarkdownCodeBlock = tryParseMarkdownCodeBlock;
|
|
|
43
44
|
|
|
44
45
|
let TuiDocCodeComponent = class TuiDocCodeComponent {
|
|
45
46
|
constructor() {
|
|
46
|
-
this.rawLoader$$ = new BehaviorSubject(
|
|
47
|
-
this.filename =
|
|
47
|
+
this.rawLoader$$ = new BehaviorSubject(``);
|
|
48
|
+
this.filename = ``;
|
|
48
49
|
this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad), map(tryParseMarkdownCodeBlock));
|
|
49
50
|
}
|
|
50
51
|
set code(code) {
|
|
@@ -61,11 +62,11 @@ __decorate([
|
|
|
61
62
|
Input()
|
|
62
63
|
], TuiDocCodeComponent.prototype, "code", null);
|
|
63
64
|
__decorate([
|
|
64
|
-
HostBinding(
|
|
65
|
+
HostBinding(`class._has-filename`)
|
|
65
66
|
], TuiDocCodeComponent.prototype, "hasFilename", null);
|
|
66
67
|
TuiDocCodeComponent = __decorate([
|
|
67
68
|
Component({
|
|
68
|
-
selector:
|
|
69
|
+
selector: `tui-doc-code`,
|
|
69
70
|
template: "<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{ filename }}\n</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n",
|
|
70
71
|
styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-code{margin:0}.t-code+.t-code{margin-top:1rem}.hljs:not(:empty){font:var(--tui-font-text-m);padding:1.5rem 2rem;font-family:monospace;background:var(--tui-clear-disabled);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){.hljs:not(:empty)::-webkit-scrollbar,.hljs:not(:empty)::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:2.667rem solid transparent}.hljs:not(:empty)::-webkit-scrollbar{background-color:transparent}.hljs:not(:empty)::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.hljs:not(:empty)::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.hljs:not(:empty)::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host._has-filename .hljs:not(:empty){border-radius:.75rem}:host-context(tui-root._mobile) .hljs:not(:empty){padding:1rem}"]
|
|
71
72
|
})
|
|
@@ -103,7 +104,7 @@ __decorate([
|
|
|
103
104
|
], TuiDocCopyComponent.prototype, "copied$", null);
|
|
104
105
|
TuiDocCopyComponent = __decorate([
|
|
105
106
|
Component({
|
|
106
|
-
selector:
|
|
107
|
+
selector: `tui-doc-copy`,
|
|
107
108
|
template: "<button\n *ngIf=\"texts$ | async as texts\"\n tuiButton\n type=\"button\"\n appearance=\"\"\n size=\"s\"\n class=\"t-copy\"\n [title]=\"texts[0]\"\n (click)=\"onClick()\"\n>\n <span\n class=\"t-content\"\n [class.t-content_moved]=\"copied$ | async\"\n >\n <span\n class=\"t-initial\"\n [attr.data-text]=\"texts[0]\"\n >\n <ng-content></ng-content>\n </span>\n {{ texts[1] }}\n </span>\n</button>\n",
|
|
108
109
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
109
110
|
providers: [TuiDestroyService],
|
|
@@ -129,8 +130,8 @@ TuiDocCopyModule = __decorate([
|
|
|
129
130
|
* Works with a tuple
|
|
130
131
|
* [@string tuiMode tooltip content, @string word 'background', @string 'form value']
|
|
131
132
|
*/
|
|
132
|
-
const TUI_DOC_DEMO_TEXTS = new InjectionToken(
|
|
133
|
-
factory: () => [
|
|
133
|
+
const TUI_DOC_DEMO_TEXTS = new InjectionToken(`tui-doc-demo i18n texts`, {
|
|
134
|
+
factory: () => [`Read more more about modes: `, `Background`, `Form value`],
|
|
134
135
|
});
|
|
135
136
|
/**
|
|
136
137
|
* Works with a tuple
|
|
@@ -142,13 +143,13 @@ const TUI_DOC_DEMO_TEXTS = new InjectionToken('tui-doc-demo i18n texts', {
|
|
|
142
143
|
* @string message for tooltip about ng-polymorpheus
|
|
143
144
|
* ]
|
|
144
145
|
*/
|
|
145
|
-
const TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken(
|
|
146
|
+
const TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken(`tui-doc-documentation i18n texts`, {
|
|
146
147
|
factory: () => [
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
148
|
+
`Argument`,
|
|
149
|
+
`Type`,
|
|
150
|
+
`Name and description`,
|
|
151
|
+
`Value`,
|
|
152
|
+
`Learn about our dynamic templates from `,
|
|
152
153
|
],
|
|
153
154
|
});
|
|
154
155
|
/**
|
|
@@ -159,20 +160,20 @@ const TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken('tui-doc-documentation i1
|
|
|
159
160
|
* @string link to a sample copied message label
|
|
160
161
|
* ]
|
|
161
162
|
*/
|
|
162
|
-
const TUI_DOC_EXAMPLE_TEXTS = new InjectionToken(
|
|
163
|
-
factory: () => [
|
|
163
|
+
const TUI_DOC_EXAMPLE_TEXTS = new InjectionToken(`tui-doc-example i18n texts`, {
|
|
164
|
+
factory: () => [`Preview`, `Link to a sample was successfully copied`, `Done`],
|
|
164
165
|
});
|
|
165
|
-
const TUI_DOC_MENU_TEXT = new InjectionToken(
|
|
166
|
-
factory: () =>
|
|
166
|
+
const TUI_DOC_MENU_TEXT = new InjectionToken(`menu i18n text`, {
|
|
167
|
+
factory: () => `Menu`,
|
|
167
168
|
});
|
|
168
|
-
const TUI_DOC_SEARCH_TEXT = new InjectionToken(
|
|
169
|
-
factory: () =>
|
|
169
|
+
const TUI_DOC_SEARCH_TEXT = new InjectionToken(`search i18n text`, {
|
|
170
|
+
factory: () => `Search`,
|
|
170
171
|
});
|
|
171
|
-
const TUI_DOC_SEE_ALSO_TEXT = new InjectionToken(
|
|
172
|
-
factory: () =>
|
|
172
|
+
const TUI_DOC_SEE_ALSO_TEXT = new InjectionToken(`tui-doc-see-also i18n text`, {
|
|
173
|
+
factory: () => `See also`,
|
|
173
174
|
});
|
|
174
|
-
const TUI_DOC_SOURCE_CODE_TEXT = new InjectionToken(
|
|
175
|
-
factory: () =>
|
|
175
|
+
const TUI_DOC_SOURCE_CODE_TEXT = new InjectionToken(`tui-doc-source-code i18n text`, {
|
|
176
|
+
factory: () => `Source code`,
|
|
176
177
|
});
|
|
177
178
|
|
|
178
179
|
var TuiDocDemoComponent_1;
|
|
@@ -188,14 +189,14 @@ let TuiDocDemoComponent = TuiDocDemoComponent_1 = class TuiDocDemoComponent {
|
|
|
188
189
|
this.wrapperWidth = 0;
|
|
189
190
|
this.control = null;
|
|
190
191
|
this.template = null;
|
|
191
|
-
this.updateOnVariants = [
|
|
192
|
-
this.updateOn =
|
|
192
|
+
this.updateOnVariants = [`change`, `blur`, `submit`];
|
|
193
|
+
this.updateOn = `change`;
|
|
193
194
|
this.expanded = false;
|
|
194
195
|
this.opaque = true;
|
|
195
196
|
this.modeControl = new FormControl();
|
|
196
197
|
this.mode = null;
|
|
197
198
|
this.change$ = new Subject();
|
|
198
|
-
this.items = [
|
|
199
|
+
this.items = [`onLight`, `onDark`];
|
|
199
200
|
this.isBrowser = isPlatformBrowser(platformId);
|
|
200
201
|
const parsedMode = locationRef.path().match(/tuiMode=(onDark|onLight)/);
|
|
201
202
|
if (parsedMode !== null && parsedMode.length > 0) {
|
|
@@ -226,9 +227,9 @@ let TuiDocDemoComponent = TuiDocDemoComponent_1 = class TuiDocDemoComponent {
|
|
|
226
227
|
}
|
|
227
228
|
const paddingLeft = this.isBrowser
|
|
228
229
|
? getComputedStyle(this.content.nativeElement).paddingLeft
|
|
229
|
-
:
|
|
230
|
+
: `0`;
|
|
230
231
|
const { offsetWidth } = this.content.nativeElement;
|
|
231
|
-
this.resizerText.nativeElement.textContent = String(offsetWidth - parseInt(paddingLeft ||
|
|
232
|
+
this.resizerText.nativeElement.textContent = String(offsetWidth - parseInt(paddingLeft || `0`, 10) * 2);
|
|
232
233
|
}
|
|
233
234
|
onDragStart(event) {
|
|
234
235
|
event.preventDefault();
|
|
@@ -261,7 +262,7 @@ let TuiDocDemoComponent = TuiDocDemoComponent_1 = class TuiDocDemoComponent {
|
|
|
261
262
|
if (!this.wrapper) {
|
|
262
263
|
return;
|
|
263
264
|
}
|
|
264
|
-
this.renderer.setStyle(this.wrapper.nativeElement,
|
|
265
|
+
this.renderer.setStyle(this.wrapper.nativeElement, `width`, px(Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)));
|
|
265
266
|
}
|
|
266
267
|
};
|
|
267
268
|
TuiDocDemoComponent.ctorParameters = () => [
|
|
@@ -274,13 +275,13 @@ TuiDocDemoComponent.ctorParameters = () => [
|
|
|
274
275
|
{ type: Array, decorators: [{ type: Inject, args: [TUI_DOC_DEMO_TEXTS,] }] }
|
|
275
276
|
];
|
|
276
277
|
__decorate([
|
|
277
|
-
ViewChild(
|
|
278
|
+
ViewChild(`content`)
|
|
278
279
|
], TuiDocDemoComponent.prototype, "content", void 0);
|
|
279
280
|
__decorate([
|
|
280
|
-
ViewChild(
|
|
281
|
+
ViewChild(`wrapper`)
|
|
281
282
|
], TuiDocDemoComponent.prototype, "wrapper", void 0);
|
|
282
283
|
__decorate([
|
|
283
|
-
ViewChild(
|
|
284
|
+
ViewChild(`resizerText`)
|
|
284
285
|
], TuiDocDemoComponent.prototype, "resizerText", void 0);
|
|
285
286
|
__decorate([
|
|
286
287
|
Input()
|
|
@@ -289,11 +290,11 @@ __decorate([
|
|
|
289
290
|
ContentChild(TemplateRef)
|
|
290
291
|
], TuiDocDemoComponent.prototype, "template", void 0);
|
|
291
292
|
__decorate([
|
|
292
|
-
HostListener(
|
|
293
|
+
HostListener(`window:resize`)
|
|
293
294
|
], TuiDocDemoComponent.prototype, "onResize", null);
|
|
294
295
|
TuiDocDemoComponent = TuiDocDemoComponent_1 = __decorate([
|
|
295
296
|
Component({
|
|
296
|
-
selector:
|
|
297
|
+
selector: `tui-doc-demo`,
|
|
297
298
|
template: "<div\n class=\"t-bg-toggle\"\n [tuiMode]=\"null\"\n>\n <ng-template #tooltip>\n {{ texts[0] }}\n <a\n tuiLink\n tuiMode=\"onDark\"\n routerLink=\"/directives/mode\"\n >\n <code>tuiMode</code>\n </a>\n </ng-template>\n <ng-container *ngIf=\"isMobile; else desktop\">\n <tui-select\n tuiTextfieldSize=\"s\"\n class=\"t-mode\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHintContent]=\"tooltip\"\n [formControl]=\"modeControl\"\n >\n tuiMode\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n ></tui-data-list-wrapper>\n </tui-select>\n </ng-container>\n <ng-template #desktop>\n tuiMode:\n <tui-tooltip\n describeId=\"form\"\n [content]=\"tooltip\"\n ></tui-tooltip>\n <div\n tuiGroup\n class=\"t-group\"\n [collapsed]=\"true\"\n >\n <tui-radio-block\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [item]=\"null\"\n [hideRadio]=\"true\"\n [formControl]=\"modeControl\"\n >\n null\n </tui-radio-block>\n <tui-radio-block\n item=\"onDark\"\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [formControl]=\"modeControl\"\n >\n onDark\n </tui-radio-block>\n <tui-radio-block\n item=\"onLight\"\n size=\"s\"\n nativeId=\"form\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [formControl]=\"modeControl\"\n >\n onLight\n </tui-radio-block>\n </div>\n </ng-template>\n <tui-checkbox-labeled\n size=\"m\"\n class=\"t-checkbox\"\n [(ngModel)]=\"opaque\"\n >\n {{ texts[1] }}\n </tui-checkbox-labeled>\n</div>\n<div\n #wrapper\n class=\"t-wrapper\"\n [class.t-wrapper_dark]=\"modeControl.value === 'onDark'\"\n [class.t-wrapper_gray]=\"modeControl.value === 'onLight'\"\n [class.t-wrapper_transparent]=\"!opaque\"\n>\n <div\n #content\n id=\"demoContent\"\n class=\"t-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\"></ng-container>\n </div>\n <button\n tuiButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [iconRight]=\"icon\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\n <ng-template #icon>\n <tui-svg\n src=\"tuiIconChevronDown\"\n class=\"t-icon\"\n [class.t-icon_rotated]=\"expanded\"\n ></tui-svg>\n </ng-template>\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 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 ></tui-data-list-wrapper>\n </tui-select>\n <button\n tuiButton\n type=\"reset\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n >\n Reset\n </button>\n <button\n tuiButton\n type=\"submit\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content></ng-content>\n </div>\n <button\n tabindex=\"-1\"\n class=\"t-resizer\"\n (tuiDragStart)=\"onDragStart($event)\"\n (tuiDragContinues)=\"onDragContinues($event)\"\n (tuiDragEnd)=\"onDragEnd()\"\n >\n <span\n #resizerText\n class=\"t-resizer-text\"\n ></span>\n </button>\n</div>\n",
|
|
298
299
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
299
300
|
providers: [
|
|
@@ -351,7 +352,7 @@ TuiDocDemoModule = __decorate([
|
|
|
351
352
|
*/
|
|
352
353
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
353
354
|
function rgbToHex(r, g, b) {
|
|
354
|
-
return `#${[r, g, b].map(x => x.toString(16).padStart(2,
|
|
355
|
+
return `#${[r, g, b].map(x => x.toString(16).padStart(2, `0`)).join(``)}`;
|
|
355
356
|
}
|
|
356
357
|
const tuiRgbToHex = rgbToHex;
|
|
357
358
|
/**
|
|
@@ -360,10 +361,10 @@ const tuiRgbToHex = rgbToHex;
|
|
|
360
361
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
361
362
|
function hexToRgb(hex) {
|
|
362
363
|
const matches = hex
|
|
363
|
-
.replace(
|
|
364
|
-
.split(
|
|
364
|
+
.replace(`#`, ``)
|
|
365
|
+
.split(``)
|
|
365
366
|
.map((char, _, array) => (array.length === 3 ? char + char : char))
|
|
366
|
-
.join(
|
|
367
|
+
.join(``)
|
|
367
368
|
.match(/.{2}/g);
|
|
368
369
|
return matches
|
|
369
370
|
? matches.map(x => Number.parseInt(x, 16))
|
|
@@ -373,18 +374,18 @@ const tuiHexToRgb = hexToRgb;
|
|
|
373
374
|
|
|
374
375
|
function inspectArray(array, depth) {
|
|
375
376
|
if (depth === 0) {
|
|
376
|
-
return
|
|
377
|
+
return `[…]`;
|
|
377
378
|
}
|
|
378
|
-
let result =
|
|
379
|
+
let result = ``;
|
|
379
380
|
let first = true;
|
|
380
381
|
for (let index = 0; index < array.length; index++) {
|
|
381
382
|
if (first) {
|
|
382
383
|
first = false;
|
|
383
384
|
}
|
|
384
385
|
else {
|
|
385
|
-
result +=
|
|
386
|
+
result += `, `;
|
|
386
387
|
}
|
|
387
|
-
result += index in array ? inspectAny(array[index], depth - 1) :
|
|
388
|
+
result += index in array ? inspectAny(array[index], depth - 1) : `empty`;
|
|
388
389
|
}
|
|
389
390
|
return `[${result}]`;
|
|
390
391
|
}
|
|
@@ -392,7 +393,7 @@ function inspectObject(object, depth) {
|
|
|
392
393
|
if (depth === 0) {
|
|
393
394
|
return `{…}`;
|
|
394
395
|
}
|
|
395
|
-
let result =
|
|
396
|
+
let result = ``;
|
|
396
397
|
let first = true;
|
|
397
398
|
for (const key in object) {
|
|
398
399
|
if (!object.hasOwnProperty(key)) {
|
|
@@ -402,7 +403,7 @@ function inspectObject(object, depth) {
|
|
|
402
403
|
first = false;
|
|
403
404
|
}
|
|
404
405
|
else {
|
|
405
|
-
result +=
|
|
406
|
+
result += `, `;
|
|
406
407
|
}
|
|
407
408
|
result += `${key}: ${inspectAny(object[key], depth - 1)}`;
|
|
408
409
|
}
|
|
@@ -418,15 +419,15 @@ function inspectObject(object, depth) {
|
|
|
418
419
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
419
420
|
function inspectAny(data, depth) {
|
|
420
421
|
if (data === null) {
|
|
421
|
-
return
|
|
422
|
+
return `null`;
|
|
422
423
|
}
|
|
423
424
|
switch (typeof data) {
|
|
424
|
-
case
|
|
425
|
+
case `string`:
|
|
425
426
|
return `'${data}'`;
|
|
426
|
-
case
|
|
427
|
-
case
|
|
428
|
-
case
|
|
429
|
-
case
|
|
427
|
+
case `undefined`:
|
|
428
|
+
case `number`:
|
|
429
|
+
case `boolean`:
|
|
430
|
+
case `function`:
|
|
430
431
|
return String(data);
|
|
431
432
|
}
|
|
432
433
|
if (data instanceof RegExp) {
|
|
@@ -449,7 +450,7 @@ function coerceValue(value) {
|
|
|
449
450
|
return null;
|
|
450
451
|
}
|
|
451
452
|
else if (isBooleanParamValue(prepared)) {
|
|
452
|
-
return String(prepared) ===
|
|
453
|
+
return String(prepared) === `true`;
|
|
453
454
|
}
|
|
454
455
|
else if (isNumberParamValue(prepared)) {
|
|
455
456
|
return Number(prepared);
|
|
@@ -466,10 +467,10 @@ function coerceValue(value) {
|
|
|
466
467
|
}
|
|
467
468
|
const tuiCoerceValue = coerceValue;
|
|
468
469
|
function isEmptyParamValue(value) {
|
|
469
|
-
return [
|
|
470
|
+
return [`undefined`, `null`, `NaN`, `Infinity`].includes(value);
|
|
470
471
|
}
|
|
471
472
|
function isBooleanParamValue(value) {
|
|
472
|
-
return value ===
|
|
473
|
+
return value === `true` || value === `false`;
|
|
473
474
|
}
|
|
474
475
|
function isNumberParamValue(value) {
|
|
475
476
|
// TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.
|
|
@@ -477,13 +478,13 @@ function isNumberParamValue(value) {
|
|
|
477
478
|
return /^-?[\d.]+(?:e-?\d+)?$/.test(value);
|
|
478
479
|
}
|
|
479
480
|
function isPossibleArray(value) {
|
|
480
|
-
return value.startsWith(
|
|
481
|
+
return value.startsWith(`[`) && value.endsWith(`]`);
|
|
481
482
|
}
|
|
482
483
|
function isPossibleObject(value) {
|
|
483
|
-
return value.startsWith(
|
|
484
|
+
return value.startsWith(`{`) && value.endsWith(`}`);
|
|
484
485
|
}
|
|
485
486
|
|
|
486
|
-
const SERIALIZED_SUFFIX =
|
|
487
|
+
const SERIALIZED_SUFFIX = `$`;
|
|
487
488
|
// @bad TODO: refactor output and value sync
|
|
488
489
|
let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPropertyConnectorDirective {
|
|
489
490
|
constructor(template, locationRef, activatedRoute, urlSerializer) {
|
|
@@ -491,9 +492,9 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
|
|
|
491
492
|
this.locationRef = locationRef;
|
|
492
493
|
this.activatedRoute = activatedRoute;
|
|
493
494
|
this.urlSerializer = urlSerializer;
|
|
494
|
-
this.documentationPropertyName =
|
|
495
|
+
this.documentationPropertyName = ``;
|
|
495
496
|
this.documentationPropertyMode = null;
|
|
496
|
-
this.documentationPropertyType =
|
|
497
|
+
this.documentationPropertyType = ``;
|
|
497
498
|
this.documentationPropertyDeprecated = false;
|
|
498
499
|
this.documentationPropertyValues = null;
|
|
499
500
|
this.documentationPropertyValueChange = new EventEmitter();
|
|
@@ -505,11 +506,11 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
|
|
|
505
506
|
}
|
|
506
507
|
get attrName() {
|
|
507
508
|
switch (this.documentationPropertyMode) {
|
|
508
|
-
case
|
|
509
|
+
case `input`:
|
|
509
510
|
return `[${this.documentationPropertyName}]`;
|
|
510
|
-
case
|
|
511
|
+
case `output`:
|
|
511
512
|
return `(${this.documentationPropertyName})`;
|
|
512
|
-
case
|
|
513
|
+
case `input-output`:
|
|
513
514
|
return `[(${this.documentationPropertyName})]`;
|
|
514
515
|
default:
|
|
515
516
|
return this.documentationPropertyName;
|
|
@@ -519,7 +520,7 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
|
|
|
519
520
|
return !!this.documentationPropertyValues;
|
|
520
521
|
}
|
|
521
522
|
get shouldShowValues() {
|
|
522
|
-
return this.documentationPropertyMode !==
|
|
523
|
+
return this.documentationPropertyMode !== `output`;
|
|
523
524
|
}
|
|
524
525
|
ngOnChanges() {
|
|
525
526
|
this.changed$.next();
|
|
@@ -551,7 +552,7 @@ let TuiDocDocumentationPropertyConnectorDirective = class TuiDocDocumentationPro
|
|
|
551
552
|
const computedValue = isValueAvailableByKey && this.documentationPropertyValues
|
|
552
553
|
? this.documentationPropertyValues.indexOf(value)
|
|
553
554
|
: value;
|
|
554
|
-
const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX :
|
|
555
|
+
const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : ``;
|
|
555
556
|
const propName = this.documentationPropertyName + suffix;
|
|
556
557
|
tree.queryParams = Object.assign(Object.assign({}, tree.queryParams), { [propName]: computedValue });
|
|
557
558
|
this.locationRef.go(String(tree));
|
|
@@ -586,8 +587,8 @@ __decorate([
|
|
|
586
587
|
], TuiDocDocumentationPropertyConnectorDirective.prototype, "documentationPropertyValueChange", void 0);
|
|
587
588
|
TuiDocDocumentationPropertyConnectorDirective = __decorate([
|
|
588
589
|
Directive({
|
|
589
|
-
selector:
|
|
590
|
-
exportAs:
|
|
590
|
+
selector: `ng-template[documentationPropertyName]`,
|
|
591
|
+
exportAs: `documentationProperty`,
|
|
591
592
|
}),
|
|
592
593
|
__param(0, Inject(TemplateRef)),
|
|
593
594
|
__param(1, Inject(Location$1)),
|
|
@@ -602,7 +603,7 @@ let TuiDocDocumentationComponent = class TuiDocDocumentationComponent {
|
|
|
602
603
|
constructor(changeDetectorRef, texts) {
|
|
603
604
|
this.changeDetectorRef = changeDetectorRef;
|
|
604
605
|
this.texts = texts;
|
|
605
|
-
this.heading =
|
|
606
|
+
this.heading = ``;
|
|
606
607
|
this.showValues = true;
|
|
607
608
|
this.isAPI = false;
|
|
608
609
|
this.propertiesConnectors = EMPTY_QUERY;
|
|
@@ -619,71 +620,71 @@ let TuiDocDocumentationComponent = class TuiDocDocumentationComponent {
|
|
|
619
620
|
getColor(color) {
|
|
620
621
|
if (color.length === 4) {
|
|
621
622
|
return color
|
|
622
|
-
.split(
|
|
623
|
+
.split(``)
|
|
623
624
|
.reduce((result, current) => [...result, current, current], [])
|
|
624
|
-
.join(
|
|
625
|
-
.replace(
|
|
625
|
+
.join(``)
|
|
626
|
+
.replace(`#`, ``);
|
|
626
627
|
}
|
|
627
|
-
if (color.startsWith(
|
|
628
|
+
if (color.startsWith(`#`)) {
|
|
628
629
|
return color;
|
|
629
630
|
}
|
|
630
|
-
if (color ===
|
|
631
|
-
return
|
|
631
|
+
if (color === `transparent`) {
|
|
632
|
+
return `#000000`;
|
|
632
633
|
}
|
|
633
634
|
const parsed = color
|
|
634
|
-
.replace(
|
|
635
|
-
.replace(
|
|
636
|
-
.replace(
|
|
637
|
-
.replace(
|
|
638
|
-
.split(
|
|
635
|
+
.replace(`rgb(`, ``)
|
|
636
|
+
.replace(`rgba(`, ``)
|
|
637
|
+
.replace(`)`, ``)
|
|
638
|
+
.replace(` `, ``)
|
|
639
|
+
.split(`,`)
|
|
639
640
|
.map(v => Number.parseInt(v, 10));
|
|
640
641
|
return rgbToHex(...parsed);
|
|
641
642
|
}
|
|
642
643
|
getOpacity(color) {
|
|
643
|
-
if (color.startsWith(
|
|
644
|
+
if (color.startsWith(`#`) || color.startsWith(`rgb(`)) {
|
|
644
645
|
return 100;
|
|
645
646
|
}
|
|
646
|
-
if (color ===
|
|
647
|
+
if (color === `transparent`) {
|
|
647
648
|
return 0;
|
|
648
649
|
}
|
|
649
|
-
const lastComma = color.lastIndexOf(
|
|
650
|
+
const lastComma = color.lastIndexOf(`,`);
|
|
650
651
|
const parsed = color
|
|
651
652
|
.slice(lastComma)
|
|
652
|
-
.replace(
|
|
653
|
-
.replace(
|
|
654
|
-
.replace(
|
|
653
|
+
.replace(`)`, ``)
|
|
654
|
+
.replace(` `, ``)
|
|
655
|
+
.replace(`,`, ``);
|
|
655
656
|
return Math.round(Number.parseFloat(parsed) * 100);
|
|
656
657
|
}
|
|
657
658
|
onColorChange(connector, color) {
|
|
658
|
-
const opacity = this.getOpacity(connector.documentationPropertyValue ||
|
|
659
|
+
const opacity = this.getOpacity(connector.documentationPropertyValue || ``);
|
|
659
660
|
if (opacity === 100) {
|
|
660
661
|
connector.onValueChange(color);
|
|
661
662
|
return;
|
|
662
663
|
}
|
|
663
|
-
const rgb = hexToRgb(color).join(
|
|
664
|
+
const rgb = hexToRgb(color).join(`, `);
|
|
664
665
|
const result = `rgba(${rgb}, ${opacity / 100})`;
|
|
665
666
|
connector.onValueChange(result);
|
|
666
667
|
}
|
|
667
668
|
onOpacityChange(connector, opacity) {
|
|
668
|
-
const hex = this.getColor(connector.documentationPropertyValue ||
|
|
669
|
+
const hex = this.getColor(connector.documentationPropertyValue || ``);
|
|
669
670
|
const rgb = hexToRgb(hex);
|
|
670
671
|
const result = `rgba(${rgb}, ${opacity / 100})`;
|
|
671
672
|
connector.onValueChange(result);
|
|
672
673
|
}
|
|
673
674
|
stripOptional(name) {
|
|
674
|
-
return name.replace(
|
|
675
|
+
return name.replace(`?`, ``);
|
|
675
676
|
}
|
|
676
677
|
isOptional(name) {
|
|
677
|
-
return name.includes(
|
|
678
|
+
return name.includes(`?`);
|
|
678
679
|
}
|
|
679
680
|
isPrimitivePolymorpheusContent(value) {
|
|
680
|
-
return typeof value ===
|
|
681
|
+
return typeof value === `string` || typeof value === `number`;
|
|
681
682
|
}
|
|
682
683
|
showCleaner(type) {
|
|
683
|
-
return type.includes(
|
|
684
|
+
return type.includes(`null`);
|
|
684
685
|
}
|
|
685
686
|
showContentTooltip(type) {
|
|
686
|
-
return type.includes(
|
|
687
|
+
return type.includes(`PolymorpheusContent`);
|
|
687
688
|
}
|
|
688
689
|
inspectAny(data) {
|
|
689
690
|
return inspectAny(data, 2);
|
|
@@ -707,12 +708,12 @@ __decorate([
|
|
|
707
708
|
], TuiDocDocumentationComponent.prototype, "propertiesConnectors", void 0);
|
|
708
709
|
TuiDocDocumentationComponent = __decorate([
|
|
709
710
|
Component({
|
|
710
|
-
selector:
|
|
711
|
+
selector: `tui-doc-documentation`,
|
|
711
712
|
template: "<h1\n *ngIf=\"heading\"\n class=\"t-heading\"\n>\n {{ heading }}\n</h1>\n<ng-content></ng-content>\n<table class=\"t-table\">\n <tr class=\"t-row t-row_header\">\n <th class=\"t-th t-cell t-cell_prop\">{{ texts[2] }}</th>\n <th class=\"t-th\">{{ type }}</th>\n <th\n *ngIf=\"showValues && !isAPI\"\n class=\"t-th t-cell t-cell_value\"\n >\n {{ texts[3] }}\n </th>\n </tr>\n <tr\n *ngFor=\"let propertyConnector of propertiesConnectors\"\n class=\"t-row\"\n [class.t-deprecated]=\"propertyConnector.documentationPropertyDeprecated\"\n >\n <td class=\"t-cell\">\n <div\n automation-id=\"tui-documentation__property-name\"\n class=\"t-property\"\n >\n {{ stripOptional(propertyConnector.attrName) }}\n <tui-badge\n *ngIf=\"isOptional(propertyConnector.attrName)\"\n size=\"s\"\n value=\"Optional\"\n ></tui-badge>\n </div>\n <span\n *ngIf=\"propertyConnector.documentationPropertyDeprecated\"\n class=\"t-deprecated-label\"\n >\n deprecated\n </span>\n <ng-container [ngTemplateOutlet]=\"propertyConnector.template\"></ng-container>\n </td>\n <td class=\"t-cell\">\n <span class=\"type\">\n {{ propertyConnector.documentationPropertyType }}\n <tui-tooltip\n *ngIf=\"showContentTooltip(propertyConnector.documentationPropertyType)\"\n [describeId]=\"propertyConnector.attrName\"\n [content]=\"content\"\n >\n <ng-template #content>\n {{ texts[4] }}\n <a\n tuiLink\n tuiMode=\"onDark\"\n target=\"_blank\"\n href=\"https://github.com/tinkoff/ng-polymorpheus\"\n >\n <code>ng-polymorpheus</code>\n </a>\n </ng-template>\n </tui-tooltip>\n </span>\n </td>\n <td\n *ngIf=\"showValues\"\n class=\"t-cell\"\n >\n <ng-container *ngIf=\"propertyConnector.shouldShowValues; else elseEmitter\">\n <tui-select\n *ngIf=\"propertyConnector.hasItems; else noItems\"\n tuiTextfieldSize=\"m\"\n tuiDropdownLimitWidth=\"min\"\n [tuiTextfieldCleaner]=\"showCleaner(propertyConnector.documentationPropertyType)\"\n [tuiTextfieldLabelOutside]=\"true\"\n [nativeId]=\"propertyConnector.attrName\"\n [valueContent]=\"selectContent\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n >\n <code class=\"t-exception\">null</code>\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"propertyConnector.documentationPropertyValues\"\n [itemContent]=\"selectContent\"\n ></tui-data-list-wrapper>\n </tui-select>\n <ng-template\n #selectContent\n let-data\n >\n <code>{{ inspectAny(data) }}</code>\n </ng-template>\n\n <ng-template #noItems>\n <ng-container [ngSwitch]=\"propertyConnector.documentationPropertyType\">\n <tui-toggle\n *ngSwitchCase=\"'boolean'\"\n size=\"l\"\n [nativeId]=\"propertyConnector.attrName\"\n [showIcons]=\"true\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-toggle>\n\n <tui-primitive-textfield\n *ngSwitchCase=\"'string'\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [value]=\"propertyConnector.documentationPropertyValue || ''\"\n (valueChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-primitive-textfield>\n\n <div\n *ngSwitchCase=\"'color'\"\n tuiGroup\n >\n <tui-primitive-textfield\n tuiTextfieldType=\"text\"\n tuiTextfieldSize=\"m\"\n [attr.id]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiInputOpacity]=\"getOpacity(propertyConnector.documentationPropertyValue)\"\n [value]=\"getColor(propertyConnector.documentationPropertyValue)\"\n (valueChange)=\"onColorChange(propertyConnector, $event)\"\n ></tui-primitive-textfield>\n <tui-input-count\n tuiTextfieldSize=\"m\"\n [max]=\"100\"\n [ngModel]=\"getOpacity(propertyConnector.documentationPropertyValue)\"\n (ngModelChange)=\"onOpacityChange(propertyConnector, $event)\"\n >\n Opacity\n </tui-input-count>\n </div>\n\n <tui-input-count\n *ngSwitchCase=\"'number'\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-input-count>\n\n <ng-container *ngSwitchCase=\"'PolymorpheusContent'\">\n <tui-primitive-textfield\n *ngIf=\"isPrimitivePolymorpheusContent(propertyConnector.documentationPropertyValue)\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [value]=\"propertyConnector.documentationPropertyValue.toString()\"\n (valueChange)=\"propertyConnector.onValueChange($event)\"\n >\n Default content\n </tui-primitive-textfield>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-template #elseEmitter>\n <tui-notification\n class=\"t-output\"\n [@emitEvent]=\"propertyConnector.emits$ | async\"\n >\n Emit!\n </tui-notification>\n </ng-template>\n </td>\n </tr>\n</table>\n",
|
|
712
713
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
713
714
|
animations: [
|
|
714
|
-
trigger(
|
|
715
|
-
transition(
|
|
715
|
+
trigger(`emitEvent`, [
|
|
716
|
+
transition(`:increment`, [style({ opacity: 1 }), animate(`500ms ease-in`)]),
|
|
716
717
|
]),
|
|
717
718
|
],
|
|
718
719
|
styles: [":host{display:block;min-width:100%}.t-table{width:100%;table-layout:fixed}.t-row:not(:last-child){border-bottom:1px solid var(--tui-base-03)}:host-context(tui-root._mobile) .t-row{display:flex;flex-wrap:wrap}:host-context(tui-root._mobile) .t-row_header{display:none}.t-cell{padding:1rem 1rem .875rem}.t-cell:first-child{padding-left:0}.t-cell:last-child{padding-right:0;text-align:right}.t-cell_prop{width:40%}.t-cell_value{max-width:20rem}:host-context(tui-root._mobile) .t-cell_value{width:9.375rem}:host-context(tui-root._mobile) .t-cell{width:100%;height:auto;padding:.5rem 0;text-align:left}.t-th{padding:.5rem 1rem;color:var(--tui-text-02);font-weight:400;text-align:left}.t-property{font:var(--tui-font-text-m);margin-bottom:.25rem;font-family:monospace;color:#8f75d1}:host-context(tui-root._mobile) .t-property{padding:.5rem 0}.t-type{font-family:monospace}.t-deprecated{background-color:var(--tui-error-bg);box-shadow:-1rem 0 var(--tui-error-bg),1rem 0 var(--tui-error-bg)}.t-deprecated-label{margin-right:.125rem;color:var(--tui-error-fill)}.t-exception{display:block;width:-webkit-max-content;width:-moz-max-content;width:max-content}.t-output{text-align:left;opacity:0}.t-heading{font:var(--tui-font-heading-4)}"]
|
|
@@ -729,7 +730,7 @@ let TuiInputOpacityDirective = class TuiInputOpacityDirective {
|
|
|
729
730
|
set tuiInputOpacity(opacity) {
|
|
730
731
|
const { nativeFocusableElement } = this.tuiFocusableComponent;
|
|
731
732
|
if (nativeFocusableElement) {
|
|
732
|
-
this.renderer.setStyle(nativeFocusableElement,
|
|
733
|
+
this.renderer.setStyle(nativeFocusableElement, `opacity`, opacity / 100);
|
|
733
734
|
}
|
|
734
735
|
}
|
|
735
736
|
};
|
|
@@ -742,7 +743,7 @@ __decorate([
|
|
|
742
743
|
], TuiInputOpacityDirective.prototype, "tuiInputOpacity", null);
|
|
743
744
|
TuiInputOpacityDirective = __decorate([
|
|
744
745
|
Directive({
|
|
745
|
-
selector:
|
|
746
|
+
selector: `[tuiInputOpacity]`,
|
|
746
747
|
}),
|
|
747
748
|
__param(0, Inject(Renderer2)),
|
|
748
749
|
__param(1, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR))
|
|
@@ -793,13 +794,13 @@ TuiDocDocumentationModule = __decorate([
|
|
|
793
794
|
})
|
|
794
795
|
], TuiDocDocumentationModule);
|
|
795
796
|
|
|
796
|
-
const TUI_DOC_CODE_ACTIONS = new InjectionToken(
|
|
797
|
-
factory: () =>
|
|
797
|
+
const TUI_DOC_CODE_ACTIONS = new InjectionToken(`Code actions for the opened tab with code example`, {
|
|
798
|
+
factory: () => ``,
|
|
798
799
|
});
|
|
799
800
|
|
|
800
|
-
const TUI_DOC_CODE_EDITOR = new InjectionToken(
|
|
801
|
+
const TUI_DOC_CODE_EDITOR = new InjectionToken(`Contains service for opening online IDE e.g. Stackblitz`);
|
|
801
802
|
|
|
802
|
-
const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken(
|
|
803
|
+
const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken(`Processes content in example`, { factory: () => identity });
|
|
803
804
|
|
|
804
805
|
/**
|
|
805
806
|
* @deprecated: use {@link tuiRawLoadRecord} instead
|
|
@@ -836,8 +837,8 @@ let TuiDocExampleComponent = class TuiDocExampleComponent {
|
|
|
836
837
|
this.route = route;
|
|
837
838
|
this.ngLocation = ngLocation;
|
|
838
839
|
this.rawLoader$$ = new BehaviorSubject({});
|
|
839
|
-
this.heading =
|
|
840
|
-
this.description =
|
|
840
|
+
this.heading = ``;
|
|
841
|
+
this.description = ``;
|
|
841
842
|
this.componentName = this.location.pathname.slice(1);
|
|
842
843
|
this.defaultTabIndex = 0;
|
|
843
844
|
this.defaultTab = this.texts[this.defaultTabIndex];
|
|
@@ -850,7 +851,7 @@ let TuiDocExampleComponent = class TuiDocExampleComponent {
|
|
|
850
851
|
this.rawLoader$$.next(content);
|
|
851
852
|
}
|
|
852
853
|
copyExampleLink() {
|
|
853
|
-
const hashPosition = this.location.href.indexOf(
|
|
854
|
+
const hashPosition = this.location.href.indexOf(`#`);
|
|
854
855
|
const currentUrl = hashPosition > -1
|
|
855
856
|
? this.location.href.slice(0, Math.max(0, hashPosition))
|
|
856
857
|
: this.location.href;
|
|
@@ -867,17 +868,17 @@ let TuiDocExampleComponent = class TuiDocExampleComponent {
|
|
|
867
868
|
edit(files) {
|
|
868
869
|
var _a, _b;
|
|
869
870
|
this.loading$.next(true);
|
|
870
|
-
(_a = this.codeEditor) === null || _a === void 0 ? void 0 : _a.edit(this.componentName, (_b = this.id) !== null && _b !== void 0 ? _b :
|
|
871
|
+
(_a = this.codeEditor) === null || _a === void 0 ? void 0 : _a.edit(this.componentName, (_b = this.id) !== null && _b !== void 0 ? _b : ``, files).finally(() => this.loading$.next(false));
|
|
871
872
|
}
|
|
872
873
|
setFragmentWithoutRedirect(id) {
|
|
873
874
|
const url = this.router
|
|
874
|
-
.createUrlTree([], { relativeTo: this.route, fragment: id ||
|
|
875
|
+
.createUrlTree([], { relativeTo: this.route, fragment: id || `` })
|
|
875
876
|
.toString();
|
|
876
877
|
this.ngLocation.go(url);
|
|
877
878
|
}
|
|
878
879
|
};
|
|
879
880
|
TuiDocExampleComponent.ctorParameters = () => [
|
|
880
|
-
{ type: String, decorators: [{ type: Attribute, args: [
|
|
881
|
+
{ type: String, decorators: [{ type: Attribute, args: [`id`,] }] },
|
|
881
882
|
{ type: Clipboard, decorators: [{ type: Inject, args: [Clipboard,] }] },
|
|
882
883
|
{ type: TuiNotificationsService, decorators: [{ type: Inject, args: [TuiNotificationsService,] }] },
|
|
883
884
|
{ type: Location, decorators: [{ type: Inject, args: [LOCATION,] }] },
|
|
@@ -905,12 +906,12 @@ __decorate([
|
|
|
905
906
|
], TuiDocExampleComponent.prototype, "componentName", void 0);
|
|
906
907
|
TuiDocExampleComponent = __decorate([
|
|
907
908
|
Component({
|
|
908
|
-
selector:
|
|
909
|
+
selector: `tui-doc-example`,
|
|
909
910
|
template: "<h3\n *ngIf=\"heading\"\n class=\"t-title\"\n>\n <span\n polymorpheus-outlet\n [content]=\"heading | tuiDocExampleCapitalize\"\n ></span>\n <button\n *ngIf=\"id\"\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n icon=\"tuiIconLinkLarge\"\n appearance=\"icon\"\n class=\"t-link-icon\"\n [title]=\"copy$ | async\"\n (click)=\"copyExampleLink()\"\n ></button>\n</h3>\n<h4\n *ngIf=\"description\"\n polymorpheus-outlet\n class=\"t-description\"\n [content]=\"description | tuiDocExampleCapitalize\"\n></h4>\n\n<div\n *ngIf=\"processor$ | async as files\"\n class=\"t-example\"\n>\n <ng-container *ngIf=\"files | tuiDocExampleGetTabs: defaultTab as tabs\">\n <div class=\"t-tabs-wrapper\">\n <tui-tabs-with-more\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n *tuiTab\n tuiTab\n >\n {{ tab }}\n </button>\n </ng-container>\n </tui-tabs-with-more>\n\n <button\n *ngIf=\"codeEditor\"\n tuiButton\n appearance=\"flat\"\n size=\"s\"\n [showLoader]=\"!!(loading$ | async)\"\n (click)=\"edit(files)\"\n >\n Edit on {{ codeEditor.name }}\n </button>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n [class.t-content_animated]=\"!isCypress\"\n [class.t-content_visible]=\"activeItemIndex === index\"\n >\n <ng-container\n *ngIf=\"index === defaultTabIndex; else anotherTab\"\n [ngTemplateOutlet]=\"preview\"\n ></ng-container>\n <ng-template #anotherTab>\n <ng-container\n [ngTemplateOutlet]=\"codeSection\"\n [ngTemplateOutletContext]=\"{$implicit: files[tabs[activeItemIndex]] || ''}\"\n ></ng-container>\n </ng-template>\n </div>\n </ng-container>\n</div>\n\n<ng-template #preview>\n <div\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template\n #codeSection\n let-code\n>\n <section class=\"t-code-actions\">\n <ng-container *ngFor=\"let action of codeActions\">\n <div\n polymorpheus-outlet\n [content]=\"action\"\n [context]=\"{$implicit: code}\"\n ></div>\n </ng-container>\n <tui-doc-copy [cdkCopyToClipboard]=\"code\"></tui-doc-copy>\n </section>\n <tui-doc-code [code]=\"code\"></tui-doc-code>\n</ng-template>\n",
|
|
910
911
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
911
912
|
styles: [":host{position:relative;display:block;padding-top:3.5rem;clear:right}:host :host-context(tui-root._mobile){padding-top:2rem}.t-title{font:var(--tui-font-heading-5);margin:0 0 .5rem}:host-context(tui-root._mobile) .t-title{font:var(--tui-font-heading-6)}.t-description{font:var(--tui-font-text-m);font-weight:400;margin:0}.t-example{position:relative;margin-top:1.5rem;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);box-shadow:0 .125rem .1875rem rgba(0,0,0,.1)}:host-context(tui-root._mobile) .t-example{margin-top:.75rem}.t-tabs-wrapper{display:flex;padding:0 2rem;box-shadow:inset 0 -1px var(--tui-base-03);justify-content:space-between;align-items:center}:host-context(tui-root._mobile) .t-tabs-wrapper{padding:0 1rem}.t-tabs{flex-grow:1}.t-demo{padding:2rem;overflow-x:auto}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){.t-demo::-webkit-scrollbar,.t-demo::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:2.667rem solid transparent}.t-demo::-webkit-scrollbar{background-color:transparent}.t-demo::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.t-demo::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.t-demo::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host-context(tui-root._mobile) .t-demo{padding:1rem}.t-code-actions{position:absolute;top:4.375rem;right:1rem;display:flex;justify-content:flex-end;align-items:center}.t-code-actions>*{margin-left:.5rem}.t-link-icon{margin-left:.3rem;vertical-align:baseline}.t-content{will-change:opacity;height:0;visibility:hidden;opacity:0}.t-content_animated{transition:opacity .3s ease-in-out}.t-content_visible{height:auto;visibility:visible;opacity:1}"]
|
|
912
913
|
}),
|
|
913
|
-
__param(0, Attribute(
|
|
914
|
+
__param(0, Attribute(`id`)),
|
|
914
915
|
__param(1, Inject(Clipboard)),
|
|
915
916
|
__param(2, Inject(TuiNotificationsService)),
|
|
916
917
|
__param(3, Inject(LOCATION)),
|
|
@@ -928,11 +929,11 @@ TuiDocExampleComponent = __decorate([
|
|
|
928
929
|
|
|
929
930
|
let TuiDocExampleCapitalizePipe = class TuiDocExampleCapitalizePipe {
|
|
930
931
|
transform(content) {
|
|
931
|
-
return typeof content ===
|
|
932
|
+
return typeof content === `string` ? capitalizeFirstLetter(content) : content;
|
|
932
933
|
}
|
|
933
934
|
};
|
|
934
935
|
TuiDocExampleCapitalizePipe = __decorate([
|
|
935
|
-
Pipe({ name:
|
|
936
|
+
Pipe({ name: `tuiDocExampleCapitalize` })
|
|
936
937
|
], TuiDocExampleCapitalizePipe);
|
|
937
938
|
|
|
938
939
|
let TuiDocExampleGetTabsPipe = class TuiDocExampleGetTabsPipe {
|
|
@@ -941,7 +942,7 @@ let TuiDocExampleGetTabsPipe = class TuiDocExampleGetTabsPipe {
|
|
|
941
942
|
}
|
|
942
943
|
};
|
|
943
944
|
TuiDocExampleGetTabsPipe = __decorate([
|
|
944
|
-
Pipe({ name:
|
|
945
|
+
Pipe({ name: `tuiDocExampleGetTabs` })
|
|
945
946
|
], TuiDocExampleGetTabsPipe);
|
|
946
947
|
|
|
947
948
|
let TuiDocExampleModule = class TuiDocExampleModule {
|
|
@@ -970,24 +971,76 @@ TuiDocExampleModule = __decorate([
|
|
|
970
971
|
})
|
|
971
972
|
], TuiDocExampleModule);
|
|
972
973
|
|
|
974
|
+
let TuiLanguageSwitcherComponent = class TuiLanguageSwitcherComponent {
|
|
975
|
+
constructor(switcher, iconsPath) {
|
|
976
|
+
this.switcher = switcher;
|
|
977
|
+
this.iconsPath = iconsPath;
|
|
978
|
+
this.path = this.iconsPath(`tuiIcon`).replace(`tuiIcon.svg#tuiIcon`, ``);
|
|
979
|
+
this.language = new FormControl(tuiCapitalizeFirstLetter(this.switcher.language));
|
|
980
|
+
this.flags = new Map([
|
|
981
|
+
[`chinese`, TuiCountryIsoCode.CN],
|
|
982
|
+
[`dutch`, TuiCountryIsoCode.NL],
|
|
983
|
+
[`english`, TuiCountryIsoCode.GB],
|
|
984
|
+
[`french`, TuiCountryIsoCode.FR],
|
|
985
|
+
[`german`, TuiCountryIsoCode.DE],
|
|
986
|
+
[`italian`, TuiCountryIsoCode.IT],
|
|
987
|
+
[`polish`, TuiCountryIsoCode.PL],
|
|
988
|
+
[`portuguese`, TuiCountryIsoCode.PT],
|
|
989
|
+
[`russian`, TuiCountryIsoCode.RU],
|
|
990
|
+
[`spanish`, TuiCountryIsoCode.ES],
|
|
991
|
+
[`turkish`, TuiCountryIsoCode.TR],
|
|
992
|
+
[`ukrainian`, TuiCountryIsoCode.UA],
|
|
993
|
+
[`vietnamese`, TuiCountryIsoCode.VN],
|
|
994
|
+
]);
|
|
995
|
+
this.names = Array.from(this.flags.keys());
|
|
996
|
+
}
|
|
997
|
+
getFlagPath(code) {
|
|
998
|
+
return code ? `${this.path}${code}.png` : null;
|
|
999
|
+
}
|
|
1000
|
+
};
|
|
1001
|
+
TuiLanguageSwitcherComponent.ctorParameters = () => [
|
|
1002
|
+
{ type: TuiLanguageSwitcher, decorators: [{ type: Inject, args: [TuiLanguageSwitcher,] }] },
|
|
1003
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TUI_ICONS_PATH,] }] }
|
|
1004
|
+
];
|
|
1005
|
+
TuiLanguageSwitcherComponent = __decorate([
|
|
1006
|
+
Component({
|
|
1007
|
+
selector: `tui-language-switcher`,
|
|
1008
|
+
template: "<tui-select [formControl]=\"language\">\n <ng-content></ng-content>\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let name of names\"\n tuiOption\n [value]=\"name | titlecase\"\n (click)=\"switcher.setLanguage(name)\"\n >\n <img\n alt=\"\"\n class=\"t-flag\"\n [src]=\"getFlagPath(flags.get(name))\"\n />\n {{ name | titlecase }}\n </button>\n </tui-data-list>\n</tui-select>\n",
|
|
1009
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1010
|
+
styles: [".t-flag{width:1.75rem;height:1.25rem;margin-right:.5rem}"]
|
|
1011
|
+
}),
|
|
1012
|
+
__param(0, Inject(TuiLanguageSwitcher)),
|
|
1013
|
+
__param(1, Inject(TUI_ICONS_PATH))
|
|
1014
|
+
], TuiLanguageSwitcherComponent);
|
|
1015
|
+
|
|
1016
|
+
let TuiLanguageSwitcherModule = class TuiLanguageSwitcherModule {
|
|
1017
|
+
};
|
|
1018
|
+
TuiLanguageSwitcherModule = __decorate([
|
|
1019
|
+
NgModule({
|
|
1020
|
+
exports: [TuiLanguageSwitcherComponent],
|
|
1021
|
+
declarations: [TuiLanguageSwitcherComponent],
|
|
1022
|
+
imports: [CommonModule, TuiSelectModule, TuiDataListModule, ReactiveFormsModule],
|
|
1023
|
+
})
|
|
1024
|
+
], TuiLanguageSwitcherModule);
|
|
1025
|
+
|
|
973
1026
|
var TuiDocMainComponent_1;
|
|
974
1027
|
// @dynamic
|
|
975
1028
|
let TuiDocMainComponent = TuiDocMainComponent_1 = class TuiDocMainComponent {
|
|
976
1029
|
constructor(storage, windowRef) {
|
|
977
1030
|
this.storage = storage;
|
|
978
1031
|
this.windowRef = windowRef;
|
|
979
|
-
this.night = this.storage.getItem(
|
|
980
|
-
(this.storage.getItem(
|
|
981
|
-
this.windowRef.matchMedia(
|
|
1032
|
+
this.night = this.storage.getItem(`night`) === `true` ||
|
|
1033
|
+
(this.storage.getItem(`night`) === null &&
|
|
1034
|
+
this.windowRef.matchMedia(`(prefers-color-scheme: dark)`).matches);
|
|
982
1035
|
this.change$ = new Subject();
|
|
983
1036
|
}
|
|
984
1037
|
get mode() {
|
|
985
|
-
return this.night ?
|
|
1038
|
+
return this.night ? `onDark` : null;
|
|
986
1039
|
}
|
|
987
1040
|
onMode(night) {
|
|
988
1041
|
this.night = night;
|
|
989
1042
|
this.change$.next();
|
|
990
|
-
this.storage.setItem(
|
|
1043
|
+
this.storage.setItem(`night`, String(night));
|
|
991
1044
|
}
|
|
992
1045
|
};
|
|
993
1046
|
TuiDocMainComponent.ctorParameters = () => [
|
|
@@ -995,11 +1048,11 @@ TuiDocMainComponent.ctorParameters = () => [
|
|
|
995
1048
|
{ type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] }
|
|
996
1049
|
];
|
|
997
1050
|
__decorate([
|
|
998
|
-
HostBinding(
|
|
1051
|
+
HostBinding(`attr.data-mode`)
|
|
999
1052
|
], TuiDocMainComponent.prototype, "mode", null);
|
|
1000
1053
|
TuiDocMainComponent = TuiDocMainComponent_1 = __decorate([
|
|
1001
1054
|
Component({
|
|
1002
|
-
selector:
|
|
1055
|
+
selector: `tui-doc-main`,
|
|
1003
1056
|
template: "<tui-theme-night *ngIf=\"night\"></tui-theme-night>\n<tui-root>\n <div class=\"tui-doc-page\">\n <tui-doc-navigation class=\"tui-doc-navigation\">\n <ng-content select=\"tuiDocNavigation\"></ng-content>\n </tui-doc-navigation>\n <div class=\"tui-doc-content\">\n <router-outlet class=\"tui-doc-outlet\"></router-outlet>\n </div>\n </div>\n <header tuiDocHeader>\n <label class=\"night-mode\">\n Night mode\n <tui-toggle\n class=\"tui-toggle\"\n [ngModel]=\"night\"\n (ngModelChange)=\"onMode($event)\"\n ></tui-toggle>\n </label>\n <ng-content select=\"tuiDocHeader\"></ng-content>\n </header>\n <ng-container ngProjectAs=\"tuiOverContent\">\n <ng-content select=\"tuiOverContent\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverDialogs\">\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverAlerts\">\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n </ng-container>\n <!-- TODO: 3.0 Remove-->\n <ng-container ngProjectAs=\"tuiOverNotifications\">\n <ng-content select=\"tuiOverNotifications\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverPortals\">\n <ng-content select=\"tuiOverPortals\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverHints\">\n <ng-content select=\"tuiOverHints\"></ng-content>\n </ng-container>\n</tui-root>\n",
|
|
1004
1057
|
encapsulation: ViewEncapsulation.None,
|
|
1005
1058
|
providers: [
|
|
@@ -1009,13 +1062,13 @@ TuiDocMainComponent = TuiDocMainComponent_1 = __decorate([
|
|
|
1009
1062
|
},
|
|
1010
1063
|
TuiSwipeService,
|
|
1011
1064
|
],
|
|
1012
|
-
styles: ["html{scroll-padding-top:4rem;height:auto}tui-root>tui-scroll-controls>.bar_vertical{top:4rem!important}@-webkit-keyframes tuiShaking{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-.3125rem,0,0)}20%,40%,60%,80%{transform:translate3d(.3125rem,0,0)}}@keyframes tuiShaking{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-.3125rem,0,0)}20%,40%,60%,80%{transform:translate3d(.3125rem,0,0)}}body{background:var(--tui-base-01);height:auto}tui-doc-main{display:block}code:not(.hljs):not([class*=language-]):not(.exception){transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;background:var(--tui-base-02);color:var(--tui-text-02);vertical-align:middle;box-shadow:inset 0 -2px var(--tui-secondary);padding:.375rem .5rem;font-size:.875rem;border-radius:.5rem}a:focus code,button:focus code{background:var(--tui-base-01)}.tui-doc-page{position:relative;z-index:0;padding-top:4rem}tui-doc-navigation.tui-doc-navigation{position:fixed;top:4rem;bottom:0;width:16.25rem;border-right:1px solid var(--tui-base-03)}.tui-doc-content{margin-left:16.25rem}@media screen and (max-width:47.9375em){tui-doc-navigation.tui-doc-navigation{display:none}.tui-doc-content{margin-left:0}}.tui-doc-outlet+*{display:block}.tui-doc-animated-example{-webkit-animation:1s .3s tuiShaking;animation:1s .3s tuiShaking}label.night-mode{cursor:pointer}label.night-mode .tui-toggle{margin-left:.5rem}.hljs-tag{background:0 0}.hljs{display:block;overflow-x:auto;padding:.5em;color:var(--tui-text-01);background-color:var(--tui-clear-disabled)}.hljs.hljs-line-numbers{background:0 0}.hljs-subst,.hljs-title{font-weight:400;color:var(--tui-text-01)}.hljs-comment,.hljs-quote{color:var(--tui-text-03);font-style:italic}.hljs-meta{color:#e38162}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-type{font-weight:700;color:var(--tui-link)}.hljs-attribute,.hljs-link,.hljs-number,.hljs-regexp{font-weight:700;color:var(--tui-support-06)}.hljs-link,.hljs-number,.hljs-regexp{font-weight:400}.hljs-string{color:var(--tui-positive);font-weight:700}.hljs-bullet,.hljs-formula,.hljs-symbol{color:var(--tui-text-01);background:var(--tui-base-02);font-style:italic}.hljs-doctag{text-decoration:underline}.hljs-template-variable,.hljs-variable{color:var(--tui-link-hover)}[data-mode=onDark] .hljs-template-variable,[data-mode=onDark] .hljs-variable{color:var(--tui-warning-fill)}.hljs-addition{background:var(--tui-success-bg)}.hljs-deletion{background:var(--tui-error-bg)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs .hljs-line-numbers{padding:0}.hljs-ln-numbers{vertical-align:top;opacity:.3;text-align:right;padding-right:1em!important}"]
|
|
1065
|
+
styles: ["html{scroll-padding-top:4rem;height:auto}tui-root>tui-scroll-controls>.t-bar_vertical{top:4rem!important}@-webkit-keyframes tuiShaking{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-.3125rem,0,0)}20%,40%,60%,80%{transform:translate3d(.3125rem,0,0)}}@keyframes tuiShaking{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-.3125rem,0,0)}20%,40%,60%,80%{transform:translate3d(.3125rem,0,0)}}body{background:var(--tui-base-01);height:auto}tui-doc-main{display:block}code:not(.hljs):not([class*=language-]):not(.exception){transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;background:var(--tui-base-02);color:var(--tui-text-02);vertical-align:middle;box-shadow:inset 0 -2px var(--tui-secondary);padding:.375rem .5rem;font-size:.875rem;border-radius:.5rem}a:focus code,button:focus code{background:var(--tui-base-01)}.tui-doc-page{position:relative;z-index:0;padding-top:4rem}tui-doc-navigation.tui-doc-navigation{position:fixed;top:4rem;bottom:0;width:16.25rem;border-right:1px solid var(--tui-base-03)}.tui-doc-content{margin-left:16.25rem}@media screen and (max-width:47.9375em){tui-doc-navigation.tui-doc-navigation{display:none}.tui-doc-content{margin-left:0}}.tui-doc-outlet+*{display:block}.tui-doc-animated-example{-webkit-animation:1s .3s tuiShaking;animation:1s .3s tuiShaking}label.night-mode{cursor:pointer}label.night-mode .tui-toggle{margin-left:.5rem}.hljs-tag{background:0 0}.hljs{display:block;overflow-x:auto;padding:.5em;color:var(--tui-text-01);background-color:var(--tui-clear-disabled)}.hljs.hljs-line-numbers{background:0 0}.hljs-subst,.hljs-title{font-weight:400;color:var(--tui-text-01)}.hljs-comment,.hljs-quote{color:var(--tui-text-03);font-style:italic}.hljs-meta{color:#e38162}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-type{font-weight:700;color:var(--tui-link)}.hljs-attribute,.hljs-link,.hljs-number,.hljs-regexp{font-weight:700;color:var(--tui-support-06)}.hljs-link,.hljs-number,.hljs-regexp{font-weight:400}.hljs-string{color:var(--tui-positive);font-weight:700}.hljs-bullet,.hljs-formula,.hljs-symbol{color:var(--tui-text-01);background:var(--tui-base-02);font-style:italic}.hljs-doctag{text-decoration:underline}.hljs-template-variable,.hljs-variable{color:var(--tui-link-hover)}[data-mode=onDark] .hljs-template-variable,[data-mode=onDark] .hljs-variable{color:var(--tui-warning-fill)}.hljs-addition{background:var(--tui-success-bg)}.hljs-deletion{background:var(--tui-error-bg)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs .hljs-line-numbers{padding:0}.hljs-ln-numbers{vertical-align:top;opacity:.3;text-align:right;padding-right:1em!important}"]
|
|
1013
1066
|
}),
|
|
1014
1067
|
__param(0, Inject(LOCAL_STORAGE)),
|
|
1015
1068
|
__param(1, Inject(WINDOW))
|
|
1016
1069
|
], TuiDocMainComponent);
|
|
1017
1070
|
|
|
1018
|
-
const TUI_DOC_PAGE_LOADED = new InjectionToken(
|
|
1071
|
+
const 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: () => defer(() => timer(200).pipe(switchMapTo(of(true)))) });
|
|
1019
1072
|
|
|
1020
1073
|
/**
|
|
1021
1074
|
* @deprecated: use {@link TuiScrollIntoViewLinkDirective}
|
|
@@ -1047,7 +1100,7 @@ __decorate([
|
|
|
1047
1100
|
], ScrollIntoViewDirective.prototype, "scrollIntoView", null);
|
|
1048
1101
|
ScrollIntoViewDirective = __decorate([
|
|
1049
1102
|
Directive({
|
|
1050
|
-
selector:
|
|
1103
|
+
selector: `[scrollIntoView]`,
|
|
1051
1104
|
providers: [TuiDestroyService],
|
|
1052
1105
|
})
|
|
1053
1106
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -1060,7 +1113,7 @@ let TuiScrollIntoViewLinkDirective = class TuiScrollIntoViewLinkDirective extend
|
|
|
1060
1113
|
};
|
|
1061
1114
|
TuiScrollIntoViewLinkDirective = __decorate([
|
|
1062
1115
|
Directive({
|
|
1063
|
-
selector:
|
|
1116
|
+
selector: `[tuiScrollIntoViewLink]`,
|
|
1064
1117
|
providers: [TuiDestroyService],
|
|
1065
1118
|
})
|
|
1066
1119
|
], TuiScrollIntoViewLinkDirective);
|
|
@@ -1089,41 +1142,41 @@ TuiScrollIntoViewLinkModule = __decorate([
|
|
|
1089
1142
|
})
|
|
1090
1143
|
], TuiScrollIntoViewLinkModule);
|
|
1091
1144
|
|
|
1092
|
-
const TUI_DOC_SCROLL_BEHAVIOR = new InjectionToken(
|
|
1145
|
+
const TUI_DOC_SCROLL_BEHAVIOR = new InjectionToken(`[TUI_DOC_SCROLL_BEHAVIOR] Defines the transition animation for scroll`, { factory: () => `smooth` });
|
|
1093
1146
|
|
|
1094
1147
|
const MAP = {
|
|
1095
|
-
а:
|
|
1096
|
-
б:
|
|
1097
|
-
в:
|
|
1098
|
-
г:
|
|
1099
|
-
д:
|
|
1100
|
-
е:
|
|
1101
|
-
ё:
|
|
1102
|
-
ж:
|
|
1103
|
-
з:
|
|
1104
|
-
и:
|
|
1105
|
-
й:
|
|
1106
|
-
к:
|
|
1107
|
-
л:
|
|
1108
|
-
м:
|
|
1109
|
-
н:
|
|
1110
|
-
о:
|
|
1111
|
-
п:
|
|
1112
|
-
р:
|
|
1113
|
-
с:
|
|
1114
|
-
т:
|
|
1115
|
-
у:
|
|
1116
|
-
ф:
|
|
1117
|
-
х:
|
|
1118
|
-
ц:
|
|
1119
|
-
ч:
|
|
1120
|
-
ш:
|
|
1121
|
-
щ:
|
|
1122
|
-
ъ:
|
|
1123
|
-
ы:
|
|
1124
|
-
ь:
|
|
1125
|
-
ю:
|
|
1126
|
-
я:
|
|
1148
|
+
а: `f`,
|
|
1149
|
+
б: `,`,
|
|
1150
|
+
в: `d`,
|
|
1151
|
+
г: `u`,
|
|
1152
|
+
д: `l`,
|
|
1153
|
+
е: `t`,
|
|
1154
|
+
ё: `\``,
|
|
1155
|
+
ж: `;`,
|
|
1156
|
+
з: `p`,
|
|
1157
|
+
и: `b`,
|
|
1158
|
+
й: `q`,
|
|
1159
|
+
к: `r`,
|
|
1160
|
+
л: `k`,
|
|
1161
|
+
м: `v`,
|
|
1162
|
+
н: `y`,
|
|
1163
|
+
о: `j`,
|
|
1164
|
+
п: `g`,
|
|
1165
|
+
р: `h`,
|
|
1166
|
+
с: `c`,
|
|
1167
|
+
т: `n`,
|
|
1168
|
+
у: `e`,
|
|
1169
|
+
ф: `a`,
|
|
1170
|
+
х: `[`,
|
|
1171
|
+
ц: `w`,
|
|
1172
|
+
ч: `x`,
|
|
1173
|
+
ш: `i`,
|
|
1174
|
+
щ: `o`,
|
|
1175
|
+
ъ: `]`,
|
|
1176
|
+
ы: `s`,
|
|
1177
|
+
ь: `m`,
|
|
1178
|
+
ю: `.`,
|
|
1179
|
+
я: `z`,
|
|
1127
1180
|
};
|
|
1128
1181
|
/**
|
|
1129
1182
|
* @deprecated: use {@link tuiTransliterateKeyboardLayout} instead
|
|
@@ -1133,7 +1186,7 @@ const MAP = {
|
|
|
1133
1186
|
*/
|
|
1134
1187
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1135
1188
|
function transliterateKeyboardLayout(string) {
|
|
1136
|
-
let newStr =
|
|
1189
|
+
let newStr = ``;
|
|
1137
1190
|
for (let i = 0; i < string.length; i++) {
|
|
1138
1191
|
newStr += string.charAt(i) in MAP ? MAP[string.charAt(i)] : string.charAt(i);
|
|
1139
1192
|
}
|
|
@@ -1141,17 +1194,17 @@ function transliterateKeyboardLayout(string) {
|
|
|
1141
1194
|
}
|
|
1142
1195
|
const tuiTransliterateKeyboardLayout = transliterateKeyboardLayout;
|
|
1143
1196
|
|
|
1144
|
-
const TUI_DOC_PAGES = new InjectionToken(
|
|
1197
|
+
const TUI_DOC_PAGES = new InjectionToken(`Documentation pages`, {
|
|
1145
1198
|
factory: () => [],
|
|
1146
1199
|
});
|
|
1147
1200
|
|
|
1148
|
-
const TUI_DOC_TITLE = new InjectionToken(
|
|
1149
|
-
factory: () =>
|
|
1201
|
+
const TUI_DOC_TITLE = new InjectionToken(`Page title`, {
|
|
1202
|
+
factory: () => ``,
|
|
1150
1203
|
});
|
|
1151
1204
|
|
|
1152
|
-
const NAVIGATION_TITLE = new InjectionToken(
|
|
1153
|
-
const NAVIGATION_LABELS = new InjectionToken(
|
|
1154
|
-
const NAVIGATION_ITEMS = new InjectionToken(
|
|
1205
|
+
const NAVIGATION_TITLE = new InjectionToken(`Page title`);
|
|
1206
|
+
const NAVIGATION_LABELS = new InjectionToken(`Navigation sections labels for search`);
|
|
1207
|
+
const NAVIGATION_ITEMS = new InjectionToken(`Navigation pages`);
|
|
1155
1208
|
const NAVIGATION_PROVIDERS = [
|
|
1156
1209
|
TuiDestroyService,
|
|
1157
1210
|
{
|
|
@@ -1205,12 +1258,12 @@ let TuiDocNavigationComponent = class TuiDocNavigationComponent {
|
|
|
1205
1258
|
this.readyToScroll$ = readyToScroll$;
|
|
1206
1259
|
this.scrollBehavior = scrollBehavior;
|
|
1207
1260
|
this.menuOpen = false;
|
|
1208
|
-
this.search =
|
|
1261
|
+
this.search = ``;
|
|
1209
1262
|
this.open = false;
|
|
1210
1263
|
this.openPagesArr = [];
|
|
1211
1264
|
this.openPagesGroupsArr = [];
|
|
1212
|
-
this.active =
|
|
1213
|
-
this.mode$ = this.mode.change$.pipe(startWith(null), map(() => this.mode.mode ||
|
|
1265
|
+
this.active = ``;
|
|
1266
|
+
this.mode$ = this.mode.change$.pipe(startWith(null), map(() => this.mode.mode || `onLight`));
|
|
1214
1267
|
// Angular can't navigate no anchor links
|
|
1215
1268
|
// https://stackoverflow.com/questions/36101756/angular2-routing-with-hashtag-to-page-anchor
|
|
1216
1269
|
title$.subscribe(title => {
|
|
@@ -1245,11 +1298,11 @@ let TuiDocNavigationComponent = class TuiDocNavigationComponent {
|
|
|
1245
1298
|
onClick() {
|
|
1246
1299
|
this.open = false;
|
|
1247
1300
|
this.menuOpen = false;
|
|
1248
|
-
this.search =
|
|
1301
|
+
this.search = ``;
|
|
1249
1302
|
this.openActivePageGroup();
|
|
1250
1303
|
}
|
|
1251
1304
|
filterItems(items, search) {
|
|
1252
|
-
return items.map(section => uniqBy(section.filter(({ title, keywords =
|
|
1305
|
+
return items.map(section => uniqBy(section.filter(({ title, keywords = `` }) => {
|
|
1253
1306
|
title = title.toLowerCase();
|
|
1254
1307
|
search = search.toLowerCase();
|
|
1255
1308
|
keywords = keywords.toLowerCase();
|
|
@@ -1257,13 +1310,13 @@ let TuiDocNavigationComponent = class TuiDocNavigationComponent {
|
|
|
1257
1310
|
keywords.includes(search) ||
|
|
1258
1311
|
title.includes(transliterateKeyboardLayout(search)) ||
|
|
1259
1312
|
keywords.includes(transliterateKeyboardLayout(search)) ||
|
|
1260
|
-
search.replace(/-/gi,
|
|
1261
|
-
}),
|
|
1313
|
+
search.replace(/-/gi, ``).includes(title));
|
|
1314
|
+
}), `title`));
|
|
1262
1315
|
}
|
|
1263
1316
|
flattenSubPages(items) {
|
|
1264
1317
|
return items.reduce((array, item) => [
|
|
1265
1318
|
...array,
|
|
1266
|
-
item.reduce((pages, page) =>
|
|
1319
|
+
item.reduce((pages, page) => `subPages` in page
|
|
1267
1320
|
? [...pages, ...page.subPages]
|
|
1268
1321
|
: [...pages, page], []),
|
|
1269
1322
|
], []);
|
|
@@ -1279,11 +1332,11 @@ let TuiDocNavigationComponent = class TuiDocNavigationComponent {
|
|
|
1279
1332
|
openActivePageGroup() {
|
|
1280
1333
|
this.items.forEach((pages, pagesIndex) => {
|
|
1281
1334
|
pages.forEach((page, pageIndex) => {
|
|
1282
|
-
if (
|
|
1335
|
+
if (`route` in page && this.isActiveRoute(page.route)) {
|
|
1283
1336
|
this.openPagesArr[pagesIndex] = true;
|
|
1284
1337
|
this.active = page.route;
|
|
1285
1338
|
}
|
|
1286
|
-
if (
|
|
1339
|
+
if (`subPages` in page) {
|
|
1287
1340
|
page.subPages.forEach(subPage => {
|
|
1288
1341
|
if (this.isActiveRoute(subPage.route)) {
|
|
1289
1342
|
this.openPagesArr[pagesIndex] = true;
|
|
@@ -1300,10 +1353,10 @@ let TuiDocNavigationComponent = class TuiDocNavigationComponent {
|
|
|
1300
1353
|
if (!element) {
|
|
1301
1354
|
return;
|
|
1302
1355
|
}
|
|
1303
|
-
element.classList.add(
|
|
1356
|
+
element.classList.add(`tui-doc-animated-example`);
|
|
1304
1357
|
element.scrollIntoView({
|
|
1305
|
-
block:
|
|
1306
|
-
inline:
|
|
1358
|
+
block: `start`,
|
|
1359
|
+
inline: `nearest`,
|
|
1307
1360
|
behavior: this.scrollBehavior,
|
|
1308
1361
|
});
|
|
1309
1362
|
}
|
|
@@ -1325,7 +1378,7 @@ TuiDocNavigationComponent.ctorParameters = () => [
|
|
|
1325
1378
|
{ type: undefined, decorators: [{ type: Inject, args: [TUI_DOC_SCROLL_BEHAVIOR,] }] }
|
|
1326
1379
|
];
|
|
1327
1380
|
__decorate([
|
|
1328
|
-
HostBinding(
|
|
1381
|
+
HostBinding(`class._open`)
|
|
1329
1382
|
], TuiDocNavigationComponent.prototype, "menuOpen", void 0);
|
|
1330
1383
|
__decorate([
|
|
1331
1384
|
tuiPure
|
|
@@ -1335,7 +1388,7 @@ __decorate([
|
|
|
1335
1388
|
], TuiDocNavigationComponent.prototype, "flattenSubPages", null);
|
|
1336
1389
|
TuiDocNavigationComponent = __decorate([
|
|
1337
1390
|
Component({
|
|
1338
|
-
selector:
|
|
1391
|
+
selector: `tui-doc-navigation`,
|
|
1339
1392
|
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 [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: index * 100 + subIndex}\"\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 [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: items.length - 1 + index}\"\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",
|
|
1340
1393
|
providers: NAVIGATION_PROVIDERS,
|
|
1341
1394
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -1389,8 +1442,8 @@ TuiDocNavigationModule = __decorate([
|
|
|
1389
1442
|
})
|
|
1390
1443
|
], TuiDocNavigationModule);
|
|
1391
1444
|
|
|
1392
|
-
const TUI_DOC_LOGO = new InjectionToken(
|
|
1393
|
-
factory: () =>
|
|
1445
|
+
const TUI_DOC_LOGO = new InjectionToken(`Main logo`, {
|
|
1446
|
+
factory: () => ``,
|
|
1394
1447
|
});
|
|
1395
1448
|
|
|
1396
1449
|
let TuiDocHeaderComponent = class TuiDocHeaderComponent {
|
|
@@ -1400,7 +1453,7 @@ let TuiDocHeaderComponent = class TuiDocHeaderComponent {
|
|
|
1400
1453
|
this.router = router;
|
|
1401
1454
|
this.swipes$ = swipes$;
|
|
1402
1455
|
this.stream$ = new Subject();
|
|
1403
|
-
this.open$ = merge(this.router.events.pipe(mapTo(false)), this.stream$, this.swipes$.pipe(filter(swipe => swipe.direction ===
|
|
1456
|
+
this.open$ = merge(this.router.events.pipe(mapTo(false)), this.stream$, this.swipes$.pipe(filter(swipe => swipe.direction === `left` || swipe.direction === `right`), map(swipe => swipe.direction === `right`))).pipe(startWith(false), distinctUntilChanged());
|
|
1404
1457
|
}
|
|
1405
1458
|
onClick() {
|
|
1406
1459
|
this.stream$.next(true);
|
|
@@ -1419,7 +1472,7 @@ TuiDocHeaderComponent.ctorParameters = () => [
|
|
|
1419
1472
|
];
|
|
1420
1473
|
TuiDocHeaderComponent = __decorate([
|
|
1421
1474
|
Component({
|
|
1422
|
-
selector:
|
|
1475
|
+
selector: `header[tuiDocHeader]`,
|
|
1423
1476
|
template: "<button\n tuiIconButton\n icon=\"tuiIconMenuLarge\"\n appearance=\"icon\"\n class=\"t-menu\"\n [title]=\"menu\"\n (click)=\"onClick()\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-doc-navigation\n *tuiSidebar=\"!!(open$ | async)\"\n class=\"t-navigation\"\n ></tui-doc-navigation>\n</button>\n<div\n polymorpheus-outlet\n class=\"t-logo\"\n [content]=\"logo\"\n>\n <ng-template let-src>\n <img\n alt=\"Logo\"\n class=\"t-img\"\n [src]=\"src\"\n />\n </ng-template>\n</div>\n<ng-content></ng-content>\n",
|
|
1424
1477
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1425
1478
|
styles: [":host{box-shadow:0 .125rem 1rem rgba(0,0,0,.08);position:fixed;top:0;left:0;right:0;z-index:1;display:flex;height:3.9375rem;align-items:center;padding:0 1.25rem;background:var(--tui-base-01);border-bottom:1px solid var(--tui-base-03)}.t-logo{margin-right:auto;font:var(--tui-font-heading-5)}.t-img{display:block}.t-menu{margin-left:-1.25rem}@media screen and (min-width:48em){.t-menu{display:none}}.t-navigation{min-height:100%}"]
|
|
@@ -1468,15 +1521,15 @@ TuiDocMainModule = __decorate([
|
|
|
1468
1521
|
})
|
|
1469
1522
|
], TuiDocMainModule);
|
|
1470
1523
|
|
|
1471
|
-
const TUI_DOC_DEFAULT_TABS = new InjectionToken(
|
|
1524
|
+
const TUI_DOC_DEFAULT_TABS = new InjectionToken(`Array of default tab names`, {
|
|
1472
1525
|
factory: () => [],
|
|
1473
1526
|
});
|
|
1474
1527
|
|
|
1475
|
-
const TUI_DOC_SEE_ALSO = new InjectionToken(
|
|
1528
|
+
const TUI_DOC_SEE_ALSO = new InjectionToken(`Array of arrays of related pages`, {
|
|
1476
1529
|
factory: () => [],
|
|
1477
1530
|
});
|
|
1478
1531
|
|
|
1479
|
-
const PAGE_SEE_ALSO = new InjectionToken(
|
|
1532
|
+
const PAGE_SEE_ALSO = new InjectionToken(`Page see also`);
|
|
1480
1533
|
const PAGE_PROVIDERS = [
|
|
1481
1534
|
{
|
|
1482
1535
|
provide: PAGE_SEE_ALSO,
|
|
@@ -1486,11 +1539,11 @@ const PAGE_PROVIDERS = [
|
|
|
1486
1539
|
];
|
|
1487
1540
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1488
1541
|
function seeAlsoProviderFactory({ nativeElement }, seeAlsoGroups) {
|
|
1489
|
-
const currentHeader = nativeElement.getAttribute(
|
|
1542
|
+
const currentHeader = nativeElement.getAttribute(`header`);
|
|
1490
1543
|
const groups = seeAlsoGroups.filter(group => group.includes(currentHeader)) || [];
|
|
1491
1544
|
const seeAlsoSet = new Set(groups
|
|
1492
1545
|
.join()
|
|
1493
|
-
.split(
|
|
1546
|
+
.split(`,`)
|
|
1494
1547
|
.filter(component => component && component !== currentHeader));
|
|
1495
1548
|
return Array.from(seeAlsoSet);
|
|
1496
1549
|
}
|
|
@@ -1509,7 +1562,7 @@ __decorate([
|
|
|
1509
1562
|
], TuiDocPageTabConnectorDirective.prototype, "pageTab", void 0);
|
|
1510
1563
|
TuiDocPageTabConnectorDirective = __decorate([
|
|
1511
1564
|
Directive({
|
|
1512
|
-
selector:
|
|
1565
|
+
selector: `[pageTab]`,
|
|
1513
1566
|
}),
|
|
1514
1567
|
__param(0, Inject(TemplateRef))
|
|
1515
1568
|
], TuiDocPageTabConnectorDirective);
|
|
@@ -1521,22 +1574,22 @@ let TuiDocPageComponent = class TuiDocPageComponent {
|
|
|
1521
1574
|
this.deprecated = deprecated;
|
|
1522
1575
|
this.defaultTabs = defaultTabs;
|
|
1523
1576
|
this.seeAlso = seeAlso;
|
|
1524
|
-
this.header =
|
|
1525
|
-
this.package =
|
|
1526
|
-
this.type =
|
|
1527
|
-
this.path =
|
|
1577
|
+
this.header = ``;
|
|
1578
|
+
this.package = ``;
|
|
1579
|
+
this.type = ``;
|
|
1580
|
+
this.path = ``;
|
|
1528
1581
|
this.tabConnectors = EMPTY_QUERY;
|
|
1529
1582
|
this.activeItemIndex = NaN;
|
|
1530
1583
|
}
|
|
1531
1584
|
get showSeeAlso() {
|
|
1532
1585
|
return !!this.seeAlso.length && this.activeItemIndex === 0;
|
|
1533
1586
|
}
|
|
1534
|
-
getRouterLink(tab =
|
|
1535
|
-
return `./${tab.replace(/ /g,
|
|
1587
|
+
getRouterLink(tab = ``) {
|
|
1588
|
+
return `./${tab.replace(/ /g, `_`)}`;
|
|
1536
1589
|
}
|
|
1537
1590
|
};
|
|
1538
1591
|
TuiDocPageComponent.ctorParameters = () => [
|
|
1539
|
-
{ type: String, decorators: [{ type: Attribute, args: [
|
|
1592
|
+
{ type: String, decorators: [{ type: Attribute, args: [`deprecated`,] }] },
|
|
1540
1593
|
{ type: undefined, decorators: [{ type: Inject, args: [TUI_DOC_DEFAULT_TABS,] }] },
|
|
1541
1594
|
{ type: undefined, decorators: [{ type: Inject, args: [PAGE_SEE_ALSO,] }] }
|
|
1542
1595
|
];
|
|
@@ -1557,13 +1610,13 @@ __decorate([
|
|
|
1557
1610
|
], TuiDocPageComponent.prototype, "tabConnectors", void 0);
|
|
1558
1611
|
TuiDocPageComponent = __decorate([
|
|
1559
1612
|
Component({
|
|
1560
|
-
selector:
|
|
1613
|
+
selector: `tui-doc-page`,
|
|
1561
1614
|
template: "<header class=\"t-header\">\n <h1 class=\"t-title\">\n {{ header }}\n <tui-tag\n *ngIf=\"deprecated !== null\"\n value=\"deprecated\"\n status=\"custom\"\n class=\"t-tag t-tag_deprecated\"\n ></tui-tag>\n <tui-tag\n *ngIf=\"package\"\n status=\"custom\"\n class=\"t-tag t-tag_package\"\n [value]=\"package\"\n [autoColor]=\"true\"\n ></tui-tag>\n </h1>\n <tui-tabs-with-more\n *ngIf=\"tabConnectors.length\"\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabConnectors; first as first; index as index\">\n <ng-container *ngIf=\"first; else dynamicTab\">\n <a\n *tuiTab\n tuiTab\n routerLink=\"./\"\n routerLinkActive\n [routerLinkActiveOptions]=\"{exact: true}\"\n >\n {{ tab.pageTab || defaultTabs[index] }}\n </a>\n </ng-container>\n <ng-template #dynamicTab>\n <a\n *tuiTab\n tuiTab\n routerLinkActive\n [routerLink]=\"getRouterLink(tab.pageTab || defaultTabs[index])\"\n >\n {{ tab.pageTab || defaultTabs[index] }}\n </a>\n </ng-template>\n </ng-container>\n </tui-tabs-with-more>\n <tui-doc-source-code\n class=\"t-source-code\"\n [header]=\"header\"\n [package]=\"package\"\n [type]=\"type\"\n [path]=\"path\"\n ></tui-doc-source-code>\n</header>\n<div class=\"t-content\">\n <ng-content></ng-content>\n <tui-doc-see-also\n *ngIf=\"showSeeAlso\"\n class=\"t-see-also\"\n [seeAlso]=\"seeAlso\"\n ></tui-doc-see-also>\n <ng-container *ngFor=\"let tab of tabConnectors; index as index\">\n <ng-container\n *ngIf=\"index === activeItemIndex\"\n [ngTemplateOutlet]=\"tab.template\"\n ></ng-container>\n </ng-container>\n</div>\n",
|
|
1562
1615
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1563
1616
|
providers: PAGE_PROVIDERS,
|
|
1564
1617
|
styles: [":host{display:flex;flex-direction:column;min-height:0;flex-basis:0;flex-grow:1}.t-header{display:flex;font:var(--tui-font-heading-3);flex-wrap:wrap;min-height:7.25rem;color:var(--tui-text-01);box-shadow:inset 0 -1px 0 0 var(--tui-base-03);padding:3.75rem 0 0;box-sizing:border-box;flex-shrink:0;margin:0 min(10vw,8.75rem)}:host-context(tui-root._mobile) .t-header{font:var(--tui-font-heading-4);min-height:4.5rem;padding:1.25rem 1.25rem 0;margin:0}.t-title{min-width:100%;font-size:inherit;margin:0}.t-tag{vertical-align:middle;text-transform:uppercase;margin-right:.5rem}.t-tag_deprecated{background-color:var(--tui-error-fill)}.t-tag.t-tag_package{color:#000}.t-tabs{flex:1;margin:1.125rem .3125rem 0 0}:host-context(tui-root._mobile) .t-tabs{margin-top:.25rem}.t-content{padding:2rem 0;margin:0 min(10vw,8.75rem)}:host-context(tui-root._mobile) .t-content{padding:2rem 1.25rem;margin:0}.t-see-also{min-width:18.75rem;width:30%;float:right;margin-left:1.5rem}:host-context(tui-root._mobile) .t-see-also{float:none;width:100%;margin:0 0 1.5rem}.t-source-code{align-self:flex-end;line-height:2.75rem}"]
|
|
1565
1618
|
}),
|
|
1566
|
-
__param(0, Attribute(
|
|
1619
|
+
__param(0, Attribute(`deprecated`)),
|
|
1567
1620
|
__param(1, Inject(TUI_DOC_DEFAULT_TABS)),
|
|
1568
1621
|
__param(2, Inject(PAGE_SEE_ALSO))
|
|
1569
1622
|
], TuiDocPageComponent);
|
|
@@ -1578,14 +1631,14 @@ let TuiDocSeeAlsoComponent = class TuiDocSeeAlsoComponent {
|
|
|
1578
1631
|
getRouterLink(pageTitle) {
|
|
1579
1632
|
for (let i = 0; i < this.pages.length; i++) {
|
|
1580
1633
|
const page = this.pages
|
|
1581
|
-
.map(page => (
|
|
1634
|
+
.map(page => (`subPages` in page ? page.subPages : [page]))
|
|
1582
1635
|
.reduce((pages, subPages) => [...pages, ...subPages], [])
|
|
1583
1636
|
.find((page) => page.title === pageTitle);
|
|
1584
1637
|
if (page === null || page === void 0 ? void 0 : page.route) {
|
|
1585
1638
|
return page.route;
|
|
1586
1639
|
}
|
|
1587
1640
|
}
|
|
1588
|
-
return
|
|
1641
|
+
return ``;
|
|
1589
1642
|
}
|
|
1590
1643
|
};
|
|
1591
1644
|
TuiDocSeeAlsoComponent.ctorParameters = () => [
|
|
@@ -1597,10 +1650,10 @@ __decorate([
|
|
|
1597
1650
|
], TuiDocSeeAlsoComponent.prototype, "seeAlso", void 0);
|
|
1598
1651
|
TuiDocSeeAlsoComponent = __decorate([
|
|
1599
1652
|
Component({
|
|
1600
|
-
selector:
|
|
1601
|
-
template: "<h5 class=\"header\">{{ text }}</h5>\n<ng-container *ngFor=\"let item of seeAlso; last as last\">\n <a\n tuiLink\n [routerLink]=\"getRouterLink(item)\"\n >\n {{ item }}\n </a>\n <ng-container *ngIf=\"!last\">{{ ', ' }}</ng-container>\n</ng-container>\n",
|
|
1653
|
+
selector: `tui-doc-see-also`,
|
|
1654
|
+
template: "<h5 class=\"t-header\">{{ text }}</h5>\n<ng-container *ngFor=\"let item of seeAlso; last as last\">\n <a\n tuiLink\n [routerLink]=\"getRouterLink(item)\"\n >\n {{ item }}\n </a>\n <ng-container *ngIf=\"!last\">{{ ', ' }}</ng-container>\n</ng-container>\n",
|
|
1602
1655
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1603
|
-
styles: [":host{display:block}.header{font-size:.6875rem;line-height:1rem;text-transform:uppercase;letter-spacing:.075em;color:var(--tui-text-02);margin:0 0 .5rem;white-space:nowrap}"]
|
|
1656
|
+
styles: [":host{display:block}.t-header{font-size:.6875rem;line-height:1rem;text-transform:uppercase;letter-spacing:.075em;color:var(--tui-text-02);margin:0 0 .5rem;white-space:nowrap}"]
|
|
1604
1657
|
}),
|
|
1605
1658
|
__param(0, Inject(TUI_DOC_SEE_ALSO_TEXT)),
|
|
1606
1659
|
__param(1, Inject(TUI_DOC_PAGES))
|
|
@@ -1616,18 +1669,18 @@ TuiDocSeeAlsoModule = __decorate([
|
|
|
1616
1669
|
})
|
|
1617
1670
|
], TuiDocSeeAlsoModule);
|
|
1618
1671
|
|
|
1619
|
-
const TUI_DOC_SOURCE_CODE = new InjectionToken(
|
|
1620
|
-
factory: () =>
|
|
1672
|
+
const TUI_DOC_SOURCE_CODE = new InjectionToken(`Source code link`, {
|
|
1673
|
+
factory: () => ``,
|
|
1621
1674
|
});
|
|
1622
1675
|
|
|
1623
1676
|
let TuiDocSourceCodeComponent = class TuiDocSourceCodeComponent {
|
|
1624
1677
|
constructor(sourceCode, text) {
|
|
1625
1678
|
this.sourceCode = sourceCode;
|
|
1626
1679
|
this.text = text;
|
|
1627
|
-
this.header =
|
|
1628
|
-
this.package =
|
|
1629
|
-
this.type =
|
|
1630
|
-
this.path =
|
|
1680
|
+
this.header = ``;
|
|
1681
|
+
this.package = ``;
|
|
1682
|
+
this.type = ``;
|
|
1683
|
+
this.path = ``;
|
|
1631
1684
|
}
|
|
1632
1685
|
get pathOptions() {
|
|
1633
1686
|
return this.getPathOptions(this.header, this.package, this.type, this.path);
|
|
@@ -1662,7 +1715,7 @@ __decorate([
|
|
|
1662
1715
|
], TuiDocSourceCodeComponent.prototype, "getPathOptions", null);
|
|
1663
1716
|
TuiDocSourceCodeComponent = __decorate([
|
|
1664
1717
|
Component({
|
|
1665
|
-
selector:
|
|
1718
|
+
selector: `tui-doc-source-code`,
|
|
1666
1719
|
template: "<div\n *ngIf=\"!!sourceCode\"\n polymorpheus-outlet\n [content]=\"sourceCode\"\n [context]=\"pathOptions\"\n>\n <ng-template let-link>\n <a\n *ngIf=\"link\"\n tuiIconButton\n type=\"button\"\n icon=\"tuiIconCodeLarge\"\n appearance=\"icon\"\n target=\"_blank\"\n size=\"s\"\n [title]=\"text\"\n [href]=\"link\"\n ></a>\n </ng-template>\n</div>\n",
|
|
1667
1720
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
1668
1721
|
}),
|
|
@@ -1698,21 +1751,21 @@ TuiDocPageModule = __decorate([
|
|
|
1698
1751
|
], TuiDocPageModule);
|
|
1699
1752
|
|
|
1700
1753
|
const TUI_EXAMPLE_PRIMARY_FILE_NAME = {
|
|
1701
|
-
TS:
|
|
1702
|
-
LESS:
|
|
1703
|
-
HTML:
|
|
1754
|
+
TS: `TypeScript`,
|
|
1755
|
+
LESS: `LESS`,
|
|
1756
|
+
HTML: `HTML`,
|
|
1704
1757
|
};
|
|
1705
1758
|
|
|
1706
1759
|
// TODO: 3.0 remove in ivy compilation
|
|
1707
|
-
const DEMO_TEXTS = [
|
|
1760
|
+
const DEMO_TEXTS = [`Сделано с помощью директивы: `, `Фон`, `Детали формы`];
|
|
1708
1761
|
const DOC_TEXTS = [
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1762
|
+
`Аргумент`,
|
|
1763
|
+
`Тип`,
|
|
1764
|
+
`Имя и описание`,
|
|
1765
|
+
`Значение`,
|
|
1766
|
+
`Для работы с динамическими шаблонами используется`,
|
|
1714
1767
|
];
|
|
1715
|
-
const EXAMPLE_TEXTS = [
|
|
1768
|
+
const EXAMPLE_TEXTS = [`Превью`, `Ссылка на пример скопирована`, `Готово`];
|
|
1716
1769
|
const TUI_DOC_RUSSIAN = [
|
|
1717
1770
|
{
|
|
1718
1771
|
provide: TUI_DOC_DEMO_TEXTS,
|
|
@@ -1728,19 +1781,19 @@ const TUI_DOC_RUSSIAN = [
|
|
|
1728
1781
|
},
|
|
1729
1782
|
{
|
|
1730
1783
|
provide: TUI_DOC_MENU_TEXT,
|
|
1731
|
-
useValue:
|
|
1784
|
+
useValue: `Меню`,
|
|
1732
1785
|
},
|
|
1733
1786
|
{
|
|
1734
1787
|
provide: TUI_DOC_SEARCH_TEXT,
|
|
1735
|
-
useValue:
|
|
1788
|
+
useValue: `Поиск`,
|
|
1736
1789
|
},
|
|
1737
1790
|
{
|
|
1738
1791
|
provide: TUI_DOC_SEE_ALSO_TEXT,
|
|
1739
|
-
useValue:
|
|
1792
|
+
useValue: `Смотрите также`,
|
|
1740
1793
|
},
|
|
1741
1794
|
{
|
|
1742
1795
|
provide: TUI_DOC_SOURCE_CODE_TEXT,
|
|
1743
|
-
useValue:
|
|
1796
|
+
useValue: `Исходный код`,
|
|
1744
1797
|
},
|
|
1745
1798
|
];
|
|
1746
1799
|
|
|
@@ -1766,11 +1819,11 @@ TuiAddonDocModule = __decorate([
|
|
|
1766
1819
|
function generateRoutes(type) {
|
|
1767
1820
|
return [
|
|
1768
1821
|
{
|
|
1769
|
-
path:
|
|
1822
|
+
path: ``,
|
|
1770
1823
|
component: type,
|
|
1771
1824
|
children: [
|
|
1772
1825
|
{
|
|
1773
|
-
path:
|
|
1826
|
+
path: `:tab`,
|
|
1774
1827
|
component: type,
|
|
1775
1828
|
},
|
|
1776
1829
|
],
|
|
@@ -1787,5 +1840,5 @@ const tuiGenerateRoutes = generateRoutes;
|
|
|
1787
1840
|
* Generated bundle index. Do not edit.
|
|
1788
1841
|
*/
|
|
1789
1842
|
|
|
1790
|
-
export { DEMO_TEXTS, DOC_TEXTS, EXAMPLE_TEXTS, ScrollIntoViewDirective, ScrollIntoViewModule, TUI_DOC_CODE_ACTIONS, TUI_DOC_CODE_EDITOR, TUI_DOC_DEFAULT_TABS, TUI_DOC_DEMO_TEXTS, TUI_DOC_DOCUMENTATION_TEXTS, TUI_DOC_EXAMPLE_CONTENT_PROCESSOR, TUI_DOC_EXAMPLE_TEXTS, TUI_DOC_LOGO, TUI_DOC_MENU_TEXT, TUI_DOC_PAGES, TUI_DOC_PAGE_LOADED, TUI_DOC_RUSSIAN, TUI_DOC_SCROLL_BEHAVIOR, TUI_DOC_SEARCH_TEXT, TUI_DOC_SEE_ALSO, TUI_DOC_SEE_ALSO_TEXT, TUI_DOC_SOURCE_CODE, TUI_DOC_SOURCE_CODE_TEXT, TUI_DOC_TITLE, TUI_EXAMPLE_PRIMARY_FILE_NAME, TuiAddonDocModule, TuiDocCodeComponent, TuiDocCodeModule, TuiDocCopyComponent, TuiDocCopyModule, TuiDocDemoComponent, TuiDocDemoModule, TuiDocDocumentationComponent, TuiDocDocumentationModule, TuiDocDocumentationPropertyConnectorDirective, TuiDocExampleComponent, TuiDocExampleModule, TuiDocMainComponent, TuiDocMainModule, TuiDocNavigationComponent, TuiDocNavigationModule, TuiDocPageComponent, TuiDocPageModule, TuiDocPageTabConnectorDirective, TuiScrollIntoViewLinkDirective, TuiScrollIntoViewLinkModule, coerceValue, generateRoutes, rawLoad, rawLoadRecord, tryParseMarkdownCodeBlock, tuiCoerceValue, tuiGenerateRoutes, tuiRawLoad, tuiRawLoadRecord, tuiTryParseMarkdownCodeBlock, TuiInputOpacityModule as ɵa, TuiInputOpacityDirective as ɵb, TuiDocExampleGetTabsPipe as ɵc, TuiDocExampleCapitalizePipe as ɵd, TuiDocHeaderModule as ɵe, NAVIGATION_TITLE as ɵf, NAVIGATION_LABELS as ɵg, NAVIGATION_ITEMS as ɵh, NAVIGATION_PROVIDERS as ɵi, titleProviderFactory as ɵj, labelsProviderFactory as ɵk, itemsProviderFactory as ɵl, TuiDocHeaderComponent as ɵm, PAGE_SEE_ALSO as ɵn, PAGE_PROVIDERS as ɵo, seeAlsoProviderFactory as ɵp, TuiDocSeeAlsoModule as ɵq, TuiDocSeeAlsoComponent as ɵr, TuiDocSourceCodeModule as ɵs, TuiDocSourceCodeComponent as ɵt };
|
|
1843
|
+
export { DEMO_TEXTS, DOC_TEXTS, EXAMPLE_TEXTS, ScrollIntoViewDirective, ScrollIntoViewModule, TUI_DOC_CODE_ACTIONS, TUI_DOC_CODE_EDITOR, TUI_DOC_DEFAULT_TABS, TUI_DOC_DEMO_TEXTS, TUI_DOC_DOCUMENTATION_TEXTS, TUI_DOC_EXAMPLE_CONTENT_PROCESSOR, TUI_DOC_EXAMPLE_TEXTS, TUI_DOC_LOGO, TUI_DOC_MENU_TEXT, TUI_DOC_PAGES, TUI_DOC_PAGE_LOADED, TUI_DOC_RUSSIAN, TUI_DOC_SCROLL_BEHAVIOR, TUI_DOC_SEARCH_TEXT, TUI_DOC_SEE_ALSO, TUI_DOC_SEE_ALSO_TEXT, TUI_DOC_SOURCE_CODE, TUI_DOC_SOURCE_CODE_TEXT, TUI_DOC_TITLE, TUI_EXAMPLE_PRIMARY_FILE_NAME, TuiAddonDocModule, TuiDocCodeComponent, TuiDocCodeModule, TuiDocCopyComponent, TuiDocCopyModule, TuiDocDemoComponent, TuiDocDemoModule, TuiDocDocumentationComponent, TuiDocDocumentationModule, TuiDocDocumentationPropertyConnectorDirective, TuiDocExampleComponent, TuiDocExampleModule, TuiDocMainComponent, TuiDocMainModule, TuiDocNavigationComponent, TuiDocNavigationModule, TuiDocPageComponent, TuiDocPageModule, TuiDocPageTabConnectorDirective, TuiLanguageSwitcherComponent, TuiLanguageSwitcherModule, TuiScrollIntoViewLinkDirective, TuiScrollIntoViewLinkModule, coerceValue, generateRoutes, rawLoad, rawLoadRecord, tryParseMarkdownCodeBlock, tuiCoerceValue, tuiGenerateRoutes, tuiRawLoad, tuiRawLoadRecord, tuiTryParseMarkdownCodeBlock, TuiInputOpacityModule as ɵa, TuiInputOpacityDirective as ɵb, TuiDocExampleGetTabsPipe as ɵc, TuiDocExampleCapitalizePipe as ɵd, TuiDocHeaderModule as ɵe, NAVIGATION_TITLE as ɵf, NAVIGATION_LABELS as ɵg, NAVIGATION_ITEMS as ɵh, NAVIGATION_PROVIDERS as ɵi, titleProviderFactory as ɵj, labelsProviderFactory as ɵk, itemsProviderFactory as ɵl, TuiDocHeaderComponent as ɵm, PAGE_SEE_ALSO as ɵn, PAGE_PROVIDERS as ɵo, seeAlsoProviderFactory as ɵp, TuiDocSeeAlsoModule as ɵq, TuiDocSeeAlsoComponent as ɵr, TuiDocSourceCodeModule as ɵs, TuiDocSourceCodeComponent as ɵt };
|
|
1791
1844
|
//# sourceMappingURL=taiga-ui-addon-doc.js.map
|