@taiga-ui/addon-doc 2.55.0 → 2.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/bundles/taiga-ui-addon-doc.umd.js +223 -223
  2. package/bundles/taiga-ui-addon-doc.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-doc.umd.min.js.map +1 -1
  4. package/esm2015/components/code/code.component.js +5 -5
  5. package/esm2015/components/code/parse-code-block.js +3 -3
  6. package/esm2015/components/copy/copy.component.js +2 -2
  7. package/esm2015/components/demo/demo.component.js +12 -12
  8. package/esm2015/components/documentation/documentation-property-connector.directive.js +11 -11
  9. package/esm2015/components/documentation/documentation.component.js +30 -30
  10. package/esm2015/components/example/example-capitalize.pipe.js +3 -3
  11. package/esm2015/components/example/example-get-tabs.pipe.js +2 -2
  12. package/esm2015/components/example/example.component.js +9 -9
  13. package/esm2015/components/main/main.component.js +8 -8
  14. package/esm2015/components/navigation/navigation.component.js +16 -16
  15. package/esm2015/components/navigation/navigation.providers.js +4 -4
  16. package/esm2015/components/page/page-tab.directive.js +2 -2
  17. package/esm2015/components/page/page.component.js +10 -10
  18. package/esm2015/components/page/page.providers.js +4 -4
  19. package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +3 -3
  20. package/esm2015/interfaces/page.js +4 -4
  21. package/esm2015/internal/header/header.component.js +3 -3
  22. package/esm2015/internal/input-opacity/input-opacity.directive.js +3 -3
  23. package/esm2015/internal/see-also/see-also.component.js +4 -4
  24. package/esm2015/internal/source-code/source-code.component.js +6 -6
  25. package/esm2015/languages/russian.js +12 -12
  26. package/esm2015/tokens/code-actions.js +3 -3
  27. package/esm2015/tokens/code-editor.js +2 -2
  28. package/esm2015/tokens/default-tabs.js +2 -2
  29. package/esm2015/tokens/example-content-processor.js +2 -2
  30. package/esm2015/tokens/i18n.js +19 -19
  31. package/esm2015/tokens/logo.js +3 -3
  32. package/esm2015/tokens/page-loaded.js +2 -2
  33. package/esm2015/tokens/pages.js +2 -2
  34. package/esm2015/tokens/scroll-behavior.js +2 -2
  35. package/esm2015/tokens/see-also.js +2 -2
  36. package/esm2015/tokens/source-code.js +3 -3
  37. package/esm2015/tokens/title.js +3 -3
  38. package/esm2015/utils/coerce-value.js +6 -6
  39. package/esm2015/utils/color-conversion.js +5 -5
  40. package/esm2015/utils/generate-routes.js +3 -3
  41. package/esm2015/utils/inspect.js +13 -13
  42. package/esm2015/utils/transliterate-keyboard-layout.js +34 -34
  43. package/esm5/components/code/code.component.js +5 -5
  44. package/esm5/components/code/parse-code-block.js +3 -3
  45. package/esm5/components/copy/copy.component.js +2 -2
  46. package/esm5/components/demo/demo.component.js +12 -12
  47. package/esm5/components/documentation/documentation-property-connector.directive.js +11 -11
  48. package/esm5/components/documentation/documentation.component.js +30 -30
  49. package/esm5/components/example/example-capitalize.pipe.js +3 -3
  50. package/esm5/components/example/example-get-tabs.pipe.js +2 -2
  51. package/esm5/components/example/example.component.js +9 -9
  52. package/esm5/components/main/main.component.js +8 -8
  53. package/esm5/components/navigation/navigation.component.js +16 -16
  54. package/esm5/components/navigation/navigation.providers.js +4 -4
  55. package/esm5/components/page/page-tab.directive.js +2 -2
  56. package/esm5/components/page/page.component.js +10 -10
  57. package/esm5/components/page/page.providers.js +4 -4
  58. package/esm5/directives/scroll-into-view/scroll-into-view.directive.js +3 -3
  59. package/esm5/interfaces/page.js +4 -4
  60. package/esm5/internal/header/header.component.js +3 -3
  61. package/esm5/internal/input-opacity/input-opacity.directive.js +3 -3
  62. package/esm5/internal/see-also/see-also.component.js +4 -4
  63. package/esm5/internal/source-code/source-code.component.js +6 -6
  64. package/esm5/languages/russian.js +12 -12
  65. package/esm5/tokens/code-actions.js +3 -3
  66. package/esm5/tokens/code-editor.js +2 -2
  67. package/esm5/tokens/default-tabs.js +2 -2
  68. package/esm5/tokens/example-content-processor.js +2 -2
  69. package/esm5/tokens/i18n.js +19 -19
  70. package/esm5/tokens/logo.js +3 -3
  71. package/esm5/tokens/page-loaded.js +2 -2
  72. package/esm5/tokens/pages.js +2 -2
  73. package/esm5/tokens/scroll-behavior.js +2 -2
  74. package/esm5/tokens/see-also.js +2 -2
  75. package/esm5/tokens/source-code.js +3 -3
  76. package/esm5/tokens/title.js +3 -3
  77. package/esm5/utils/coerce-value.js +6 -6
  78. package/esm5/utils/color-conversion.js +5 -5
  79. package/esm5/utils/generate-routes.js +3 -3
  80. package/esm5/utils/inspect.js +13 -13
  81. package/esm5/utils/transliterate-keyboard-layout.js +34 -34
  82. package/fesm2015/taiga-ui-addon-doc.js +223 -223
  83. package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
  84. package/fesm5/taiga-ui-addon-doc.js +223 -223
  85. package/fesm5/taiga-ui-addon-doc.js.map +1 -1
  86. package/package.json +5 -5
@@ -47,12 +47,12 @@ var tuiRawLoad = rawLoad;
47
47
  */
48
48
  // eslint-disable-next-line @typescript-eslint/naming-convention
49
49
  function tryParseMarkdownCodeBlock(text) {
50
- if (text === void 0) { text = ''; }
50
+ if (text === void 0) { text = ""; }
51
51
  var tokens = new MarkdownIt().parse(text, {});
52
52
  var result = tokens
53
53
  .filter(function (_a) {
54
54
  var tag = _a.tag, type = _a.type;
55
- return tag === 'code' && type === 'fence';
55
+ return tag === "code" && type === "fence";
56
56
  })
57
57
  .map(function (_a) {
58
58
  var content = _a.content;
@@ -64,8 +64,8 @@ var tuiTryParseMarkdownCodeBlock = tryParseMarkdownCodeBlock;
64
64
 
65
65
  var TuiDocCodeComponent = /** @class */ (function () {
66
66
  function TuiDocCodeComponent() {
67
- this.rawLoader$$ = new BehaviorSubject('');
68
- this.filename = '';
67
+ this.rawLoader$$ = new BehaviorSubject("");
68
+ this.filename = "";
69
69
  this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad), map(tryParseMarkdownCodeBlock));
70
70
  }
71
71
  Object.defineProperty(TuiDocCodeComponent.prototype, "code", {
@@ -89,11 +89,11 @@ var TuiDocCodeComponent = /** @class */ (function () {
89
89
  Input()
90
90
  ], TuiDocCodeComponent.prototype, "code", null);
91
91
  __decorate([
92
- HostBinding('class._has-filename')
92
+ HostBinding("class._has-filename")
93
93
  ], TuiDocCodeComponent.prototype, "hasFilename", null);
94
94
  TuiDocCodeComponent = __decorate([
95
95
  Component({
96
- selector: 'tui-doc-code',
96
+ selector: "tui-doc-code",
97
97
  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",
98
98
  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}"]
99
99
  })
@@ -139,7 +139,7 @@ var TuiDocCopyComponent = /** @class */ (function () {
139
139
  ], TuiDocCopyComponent.prototype, "copied$", null);
140
140
  TuiDocCopyComponent = __decorate([
141
141
  Component({
142
- selector: 'tui-doc-copy',
142
+ selector: "tui-doc-copy",
143
143
  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",
144
144
  changeDetection: ChangeDetectionStrategy.OnPush,
145
145
  providers: [TuiDestroyService],
@@ -170,8 +170,8 @@ var TuiDocCopyModule = /** @class */ (function () {
170
170
  * Works with a tuple
171
171
  * [@string tuiMode tooltip content, @string word 'background', @string 'form value']
172
172
  */
173
- var TUI_DOC_DEMO_TEXTS = new InjectionToken('tui-doc-demo i18n texts', {
174
- factory: function () { return ['Read more more about modes: ', 'Background', 'Form value']; },
173
+ var TUI_DOC_DEMO_TEXTS = new InjectionToken("tui-doc-demo i18n texts", {
174
+ factory: function () { return ["Read more more about modes: ", "Background", "Form value"]; },
175
175
  });
176
176
  /**
177
177
  * Works with a tuple
@@ -183,13 +183,13 @@ var TUI_DOC_DEMO_TEXTS = new InjectionToken('tui-doc-demo i18n texts', {
183
183
  * @string message for tooltip about ng-polymorpheus
184
184
  * ]
185
185
  */
186
- var TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken('tui-doc-documentation i18n texts', {
186
+ var TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken("tui-doc-documentation i18n texts", {
187
187
  factory: function () { return [
188
- 'Argument',
189
- 'Type',
190
- 'Name and description',
191
- 'Value',
192
- 'Learn about our dynamic templates from ',
188
+ "Argument",
189
+ "Type",
190
+ "Name and description",
191
+ "Value",
192
+ "Learn about our dynamic templates from ",
193
193
  ]; },
194
194
  });
195
195
  /**
@@ -200,20 +200,20 @@ var TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken('tui-doc-documentation i18n
200
200
  * @string link to a sample copied message label
201
201
  * ]
202
202
  */
203
- var TUI_DOC_EXAMPLE_TEXTS = new InjectionToken('tui-doc-example i18n texts', {
204
- factory: function () { return ['Preview', 'Link to a sample was successfully copied', 'Done']; },
203
+ var TUI_DOC_EXAMPLE_TEXTS = new InjectionToken("tui-doc-example i18n texts", {
204
+ factory: function () { return ["Preview", "Link to a sample was successfully copied", "Done"]; },
205
205
  });
206
- var TUI_DOC_MENU_TEXT = new InjectionToken('menu i18n text', {
207
- factory: function () { return 'Menu'; },
206
+ var TUI_DOC_MENU_TEXT = new InjectionToken("menu i18n text", {
207
+ factory: function () { return "Menu"; },
208
208
  });
209
- var TUI_DOC_SEARCH_TEXT = new InjectionToken('search i18n text', {
210
- factory: function () { return 'Search'; },
209
+ var TUI_DOC_SEARCH_TEXT = new InjectionToken("search i18n text", {
210
+ factory: function () { return "Search"; },
211
211
  });
212
- var TUI_DOC_SEE_ALSO_TEXT = new InjectionToken('tui-doc-see-also i18n text', {
213
- factory: function () { return 'See also'; },
212
+ var TUI_DOC_SEE_ALSO_TEXT = new InjectionToken("tui-doc-see-also i18n text", {
213
+ factory: function () { return "See also"; },
214
214
  });
215
- var TUI_DOC_SOURCE_CODE_TEXT = new InjectionToken('tui-doc-source-code i18n text', {
216
- factory: function () { return 'Source code'; },
215
+ var TUI_DOC_SOURCE_CODE_TEXT = new InjectionToken("tui-doc-source-code i18n text", {
216
+ factory: function () { return "Source code"; },
217
217
  });
218
218
 
219
219
  var MIN_COMPONENT_WIDTH = 104;
@@ -229,14 +229,14 @@ var TuiDocDemoComponent = /** @class */ (function () {
229
229
  this.wrapperWidth = 0;
230
230
  this.control = null;
231
231
  this.template = null;
232
- this.updateOnVariants = ['change', 'blur', 'submit'];
233
- this.updateOn = 'change';
232
+ this.updateOnVariants = ["change", "blur", "submit"];
233
+ this.updateOn = "change";
234
234
  this.expanded = false;
235
235
  this.opaque = true;
236
236
  this.modeControl = new FormControl();
237
237
  this.mode = null;
238
238
  this.change$ = new Subject();
239
- this.items = ['onLight', 'onDark'];
239
+ this.items = ["onLight", "onDark"];
240
240
  this.isBrowser = isPlatformBrowser(platformId);
241
241
  var parsedMode = locationRef.path().match(/tuiMode=(onDark|onLight)/);
242
242
  if (parsedMode !== null && parsedMode.length > 0) {
@@ -268,9 +268,9 @@ var TuiDocDemoComponent = /** @class */ (function () {
268
268
  }
269
269
  var paddingLeft = this.isBrowser
270
270
  ? getComputedStyle(this.content.nativeElement).paddingLeft
271
- : '0';
271
+ : "0";
272
272
  var offsetWidth = this.content.nativeElement.offsetWidth;
273
- this.resizerText.nativeElement.textContent = String(offsetWidth - parseInt(paddingLeft || '0', 10) * 2);
273
+ this.resizerText.nativeElement.textContent = String(offsetWidth - parseInt(paddingLeft || "0", 10) * 2);
274
274
  };
275
275
  TuiDocDemoComponent.prototype.onDragStart = function (event) {
276
276
  event.preventDefault();
@@ -303,7 +303,7 @@ var TuiDocDemoComponent = /** @class */ (function () {
303
303
  if (!this.wrapper) {
304
304
  return;
305
305
  }
306
- this.renderer.setStyle(this.wrapper.nativeElement, 'width', px(Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)));
306
+ this.renderer.setStyle(this.wrapper.nativeElement, "width", px(Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)));
307
307
  };
308
308
  var TuiDocDemoComponent_1;
309
309
  TuiDocDemoComponent.ctorParameters = function () { return [
@@ -316,13 +316,13 @@ var TuiDocDemoComponent = /** @class */ (function () {
316
316
  { type: Array, decorators: [{ type: Inject, args: [TUI_DOC_DEMO_TEXTS,] }] }
317
317
  ]; };
318
318
  __decorate([
319
- ViewChild('content')
319
+ ViewChild("content")
320
320
  ], TuiDocDemoComponent.prototype, "content", void 0);
321
321
  __decorate([
322
- ViewChild('wrapper')
322
+ ViewChild("wrapper")
323
323
  ], TuiDocDemoComponent.prototype, "wrapper", void 0);
324
324
  __decorate([
325
- ViewChild('resizerText')
325
+ ViewChild("resizerText")
326
326
  ], TuiDocDemoComponent.prototype, "resizerText", void 0);
327
327
  __decorate([
328
328
  Input()
@@ -331,11 +331,11 @@ var TuiDocDemoComponent = /** @class */ (function () {
331
331
  ContentChild(TemplateRef)
332
332
  ], TuiDocDemoComponent.prototype, "template", void 0);
333
333
  __decorate([
334
- HostListener('window:resize')
334
+ HostListener("window:resize")
335
335
  ], TuiDocDemoComponent.prototype, "onResize", null);
336
336
  TuiDocDemoComponent = TuiDocDemoComponent_1 = __decorate([
337
337
  Component({
338
- selector: 'tui-doc-demo',
338
+ selector: "tui-doc-demo",
339
339
  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",
340
340
  changeDetection: ChangeDetectionStrategy.OnPush,
341
341
  providers: [
@@ -398,7 +398,7 @@ var TuiDocDemoModule = /** @class */ (function () {
398
398
  */
399
399
  // eslint-disable-next-line @typescript-eslint/naming-convention
400
400
  function rgbToHex(r, g, b) {
401
- return "#" + [r, g, b].map(function (x) { return x.toString(16).padStart(2, '0'); }).join('');
401
+ return "#" + [r, g, b].map(function (x) { return x.toString(16).padStart(2, "0"); }).join("");
402
402
  }
403
403
  var tuiRgbToHex = rgbToHex;
404
404
  /**
@@ -407,10 +407,10 @@ var tuiRgbToHex = rgbToHex;
407
407
  // eslint-disable-next-line @typescript-eslint/naming-convention
408
408
  function hexToRgb(hex) {
409
409
  var matches = hex
410
- .replace('#', '')
411
- .split('')
410
+ .replace("#", "")
411
+ .split("")
412
412
  .map(function (char, _, array) { return (array.length === 3 ? char + char : char); })
413
- .join('')
413
+ .join("")
414
414
  .match(/.{2}/g);
415
415
  return matches
416
416
  ? matches.map(function (x) { return Number.parseInt(x, 16); })
@@ -420,18 +420,18 @@ var tuiHexToRgb = hexToRgb;
420
420
 
421
421
  function inspectArray(array, depth) {
422
422
  if (depth === 0) {
423
- return '[]';
423
+ return "[\u2026]";
424
424
  }
425
- var result = '';
425
+ var result = "";
426
426
  var first = true;
427
427
  for (var index = 0; index < array.length; index++) {
428
428
  if (first) {
429
429
  first = false;
430
430
  }
431
431
  else {
432
- result += ', ';
432
+ result += ", ";
433
433
  }
434
- result += index in array ? inspectAny(array[index], depth - 1) : 'empty';
434
+ result += index in array ? inspectAny(array[index], depth - 1) : "empty";
435
435
  }
436
436
  return "[" + result + "]";
437
437
  }
@@ -439,7 +439,7 @@ function inspectObject(object, depth) {
439
439
  if (depth === 0) {
440
440
  return "{\u2026}";
441
441
  }
442
- var result = '';
442
+ var result = "";
443
443
  var first = true;
444
444
  for (var key in object) {
445
445
  if (!object.hasOwnProperty(key)) {
@@ -449,7 +449,7 @@ function inspectObject(object, depth) {
449
449
  first = false;
450
450
  }
451
451
  else {
452
- result += ', ';
452
+ result += ", ";
453
453
  }
454
454
  result += key + ": " + inspectAny(object[key], depth - 1);
455
455
  }
@@ -465,15 +465,15 @@ function inspectObject(object, depth) {
465
465
  // eslint-disable-next-line @typescript-eslint/naming-convention
466
466
  function inspectAny(data, depth) {
467
467
  if (data === null) {
468
- return 'null';
468
+ return "null";
469
469
  }
470
470
  switch (typeof data) {
471
- case 'string':
471
+ case "string":
472
472
  return "'" + data + "'";
473
- case 'undefined':
474
- case 'number':
475
- case 'boolean':
476
- case 'function':
473
+ case "undefined":
474
+ case "number":
475
+ case "boolean":
476
+ case "function":
477
477
  return String(data);
478
478
  }
479
479
  if (data instanceof RegExp) {
@@ -496,7 +496,7 @@ function coerceValue(value) {
496
496
  return null;
497
497
  }
498
498
  else if (isBooleanParamValue(prepared)) {
499
- return String(prepared) === 'true';
499
+ return String(prepared) === "true";
500
500
  }
501
501
  else if (isNumberParamValue(prepared)) {
502
502
  return Number(prepared);
@@ -513,10 +513,10 @@ function coerceValue(value) {
513
513
  }
514
514
  var tuiCoerceValue = coerceValue;
515
515
  function isEmptyParamValue(value) {
516
- return ['undefined', 'null', 'NaN', 'Infinity'].includes(value);
516
+ return ["undefined", "null", "NaN", "Infinity"].includes(value);
517
517
  }
518
518
  function isBooleanParamValue(value) {
519
- return value === 'true' || value === 'false';
519
+ return value === "true" || value === "false";
520
520
  }
521
521
  function isNumberParamValue(value) {
522
522
  // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.
@@ -524,13 +524,13 @@ function isNumberParamValue(value) {
524
524
  return /^-?[\d.]+(?:e-?\d+)?$/.test(value);
525
525
  }
526
526
  function isPossibleArray(value) {
527
- return value.startsWith('[') && value.endsWith(']');
527
+ return value.startsWith("[") && value.endsWith("]");
528
528
  }
529
529
  function isPossibleObject(value) {
530
- return value.startsWith('{') && value.endsWith('}');
530
+ return value.startsWith("{") && value.endsWith("}");
531
531
  }
532
532
 
533
- var SERIALIZED_SUFFIX = '$';
533
+ var SERIALIZED_SUFFIX = "$";
534
534
  // @bad TODO: refactor output and value sync
535
535
  var TuiDocDocumentationPropertyConnectorDirective = /** @class */ (function () {
536
536
  function TuiDocDocumentationPropertyConnectorDirective(template, locationRef, activatedRoute, urlSerializer) {
@@ -538,9 +538,9 @@ var TuiDocDocumentationPropertyConnectorDirective = /** @class */ (function () {
538
538
  this.locationRef = locationRef;
539
539
  this.activatedRoute = activatedRoute;
540
540
  this.urlSerializer = urlSerializer;
541
- this.documentationPropertyName = '';
541
+ this.documentationPropertyName = "";
542
542
  this.documentationPropertyMode = null;
543
- this.documentationPropertyType = '';
543
+ this.documentationPropertyType = "";
544
544
  this.documentationPropertyDeprecated = false;
545
545
  this.documentationPropertyValues = null;
546
546
  this.documentationPropertyValueChange = new EventEmitter();
@@ -553,11 +553,11 @@ var TuiDocDocumentationPropertyConnectorDirective = /** @class */ (function () {
553
553
  Object.defineProperty(TuiDocDocumentationPropertyConnectorDirective.prototype, "attrName", {
554
554
  get: function () {
555
555
  switch (this.documentationPropertyMode) {
556
- case 'input':
556
+ case "input":
557
557
  return "[" + this.documentationPropertyName + "]";
558
- case 'output':
558
+ case "output":
559
559
  return "(" + this.documentationPropertyName + ")";
560
- case 'input-output':
560
+ case "input-output":
561
561
  return "[(" + this.documentationPropertyName + ")]";
562
562
  default:
563
563
  return this.documentationPropertyName;
@@ -575,7 +575,7 @@ var TuiDocDocumentationPropertyConnectorDirective = /** @class */ (function () {
575
575
  });
576
576
  Object.defineProperty(TuiDocDocumentationPropertyConnectorDirective.prototype, "shouldShowValues", {
577
577
  get: function () {
578
- return this.documentationPropertyMode !== 'output';
578
+ return this.documentationPropertyMode !== "output";
579
579
  },
580
580
  enumerable: true,
581
581
  configurable: true
@@ -611,7 +611,7 @@ var TuiDocDocumentationPropertyConnectorDirective = /** @class */ (function () {
611
611
  var computedValue = isValueAvailableByKey && this.documentationPropertyValues
612
612
  ? this.documentationPropertyValues.indexOf(value)
613
613
  : value;
614
- var suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';
614
+ var suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : "";
615
615
  var propName = this.documentationPropertyName + suffix;
616
616
  tree.queryParams = __assign(__assign({}, tree.queryParams), (_a = {}, _a[propName] = computedValue, _a));
617
617
  this.locationRef.go(String(tree));
@@ -645,8 +645,8 @@ var TuiDocDocumentationPropertyConnectorDirective = /** @class */ (function () {
645
645
  ], TuiDocDocumentationPropertyConnectorDirective.prototype, "documentationPropertyValueChange", void 0);
646
646
  TuiDocDocumentationPropertyConnectorDirective = __decorate([
647
647
  Directive({
648
- selector: 'ng-template[documentationPropertyName]',
649
- exportAs: 'documentationProperty',
648
+ selector: "ng-template[documentationPropertyName]",
649
+ exportAs: "documentationProperty",
650
650
  }),
651
651
  __param(0, Inject(TemplateRef)),
652
652
  __param(1, Inject(Location$1)),
@@ -663,7 +663,7 @@ var TuiDocDocumentationComponent = /** @class */ (function () {
663
663
  function TuiDocDocumentationComponent(changeDetectorRef, texts) {
664
664
  this.changeDetectorRef = changeDetectorRef;
665
665
  this.texts = texts;
666
- this.heading = '';
666
+ this.heading = "";
667
667
  this.showValues = true;
668
668
  this.isAPI = false;
669
669
  this.propertiesConnectors = EMPTY_QUERY;
@@ -687,71 +687,71 @@ var TuiDocDocumentationComponent = /** @class */ (function () {
687
687
  TuiDocDocumentationComponent.prototype.getColor = function (color) {
688
688
  if (color.length === 4) {
689
689
  return color
690
- .split('')
690
+ .split("")
691
691
  .reduce(function (result, current) { return __spread(result, [current, current]); }, [])
692
- .join('')
693
- .replace('#', '');
692
+ .join("")
693
+ .replace("#", "");
694
694
  }
695
- if (color.startsWith('#')) {
695
+ if (color.startsWith("#")) {
696
696
  return color;
697
697
  }
698
- if (color === 'transparent') {
699
- return '#000000';
698
+ if (color === "transparent") {
699
+ return "#000000";
700
700
  }
701
701
  var parsed = color
702
- .replace('rgb(', '')
703
- .replace('rgba(', '')
704
- .replace(')', '')
705
- .replace(' ', '')
706
- .split(',')
702
+ .replace("rgb(", "")
703
+ .replace("rgba(", "")
704
+ .replace(")", "")
705
+ .replace(" ", "")
706
+ .split(",")
707
707
  .map(function (v) { return Number.parseInt(v, 10); });
708
708
  return rgbToHex.apply(void 0, __spread(parsed));
709
709
  };
710
710
  TuiDocDocumentationComponent.prototype.getOpacity = function (color) {
711
- if (color.startsWith('#') || color.startsWith('rgb(')) {
711
+ if (color.startsWith("#") || color.startsWith("rgb(")) {
712
712
  return 100;
713
713
  }
714
- if (color === 'transparent') {
714
+ if (color === "transparent") {
715
715
  return 0;
716
716
  }
717
- var lastComma = color.lastIndexOf(',');
717
+ var lastComma = color.lastIndexOf(",");
718
718
  var parsed = color
719
719
  .slice(lastComma)
720
- .replace(')', '')
721
- .replace(' ', '')
722
- .replace(',', '');
720
+ .replace(")", "")
721
+ .replace(" ", "")
722
+ .replace(",", "");
723
723
  return Math.round(Number.parseFloat(parsed) * 100);
724
724
  };
725
725
  TuiDocDocumentationComponent.prototype.onColorChange = function (connector, color) {
726
- var opacity = this.getOpacity(connector.documentationPropertyValue || '');
726
+ var opacity = this.getOpacity(connector.documentationPropertyValue || "");
727
727
  if (opacity === 100) {
728
728
  connector.onValueChange(color);
729
729
  return;
730
730
  }
731
- var rgb = hexToRgb(color).join(', ');
731
+ var rgb = hexToRgb(color).join(", ");
732
732
  var result = "rgba(" + rgb + ", " + opacity / 100 + ")";
733
733
  connector.onValueChange(result);
734
734
  };
735
735
  TuiDocDocumentationComponent.prototype.onOpacityChange = function (connector, opacity) {
736
- var hex = this.getColor(connector.documentationPropertyValue || '');
736
+ var hex = this.getColor(connector.documentationPropertyValue || "");
737
737
  var rgb = hexToRgb(hex);
738
738
  var result = "rgba(" + rgb + ", " + opacity / 100 + ")";
739
739
  connector.onValueChange(result);
740
740
  };
741
741
  TuiDocDocumentationComponent.prototype.stripOptional = function (name) {
742
- return name.replace('?', '');
742
+ return name.replace("?", "");
743
743
  };
744
744
  TuiDocDocumentationComponent.prototype.isOptional = function (name) {
745
- return name.includes('?');
745
+ return name.includes("?");
746
746
  };
747
747
  TuiDocDocumentationComponent.prototype.isPrimitivePolymorpheusContent = function (value) {
748
- return typeof value === 'string' || typeof value === 'number';
748
+ return typeof value === "string" || typeof value === "number";
749
749
  };
750
750
  TuiDocDocumentationComponent.prototype.showCleaner = function (type) {
751
- return type.includes('null');
751
+ return type.includes("null");
752
752
  };
753
753
  TuiDocDocumentationComponent.prototype.showContentTooltip = function (type) {
754
- return type.includes('PolymorpheusContent');
754
+ return type.includes("PolymorpheusContent");
755
755
  };
756
756
  TuiDocDocumentationComponent.prototype.inspectAny = function (data) {
757
757
  return inspectAny(data, 2);
@@ -774,12 +774,12 @@ var TuiDocDocumentationComponent = /** @class */ (function () {
774
774
  ], TuiDocDocumentationComponent.prototype, "propertiesConnectors", void 0);
775
775
  TuiDocDocumentationComponent = __decorate([
776
776
  Component({
777
- selector: 'tui-doc-documentation',
777
+ selector: "tui-doc-documentation",
778
778
  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",
779
779
  changeDetection: ChangeDetectionStrategy.OnPush,
780
780
  animations: [
781
- trigger('emitEvent', [
782
- transition(':increment', [style({ opacity: 1 }), animate('500ms ease-in')]),
781
+ trigger("emitEvent", [
782
+ transition(":increment", [style({ opacity: 1 }), animate("500ms ease-in")]),
783
783
  ]),
784
784
  ],
785
785
  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)}"]
@@ -799,7 +799,7 @@ var TuiInputOpacityDirective = /** @class */ (function () {
799
799
  set: function (opacity) {
800
800
  var nativeFocusableElement = this.tuiFocusableComponent.nativeFocusableElement;
801
801
  if (nativeFocusableElement) {
802
- this.renderer.setStyle(nativeFocusableElement, 'opacity', opacity / 100);
802
+ this.renderer.setStyle(nativeFocusableElement, "opacity", opacity / 100);
803
803
  }
804
804
  },
805
805
  enumerable: true,
@@ -814,7 +814,7 @@ var TuiInputOpacityDirective = /** @class */ (function () {
814
814
  ], TuiInputOpacityDirective.prototype, "tuiInputOpacity", null);
815
815
  TuiInputOpacityDirective = __decorate([
816
816
  Directive({
817
- selector: '[tuiInputOpacity]',
817
+ selector: "[tuiInputOpacity]",
818
818
  }),
819
819
  __param(0, Inject(Renderer2)),
820
820
  __param(1, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR))
@@ -873,13 +873,13 @@ var TuiDocDocumentationModule = /** @class */ (function () {
873
873
  return TuiDocDocumentationModule;
874
874
  }());
875
875
 
876
- var TUI_DOC_CODE_ACTIONS = new InjectionToken('Code actions for the opened tab with code example', {
877
- factory: function () { return ''; },
876
+ var TUI_DOC_CODE_ACTIONS = new InjectionToken("Code actions for the opened tab with code example", {
877
+ factory: function () { return ""; },
878
878
  });
879
879
 
880
- var TUI_DOC_CODE_EDITOR = new InjectionToken('Contains service for opening online IDE e.g. Stackblitz');
880
+ var TUI_DOC_CODE_EDITOR = new InjectionToken("Contains service for opening online IDE e.g. Stackblitz");
881
881
 
882
- var TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken('Processes content in example', { factory: function () { return identity; } });
882
+ var TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken("Processes content in example", { factory: function () { return identity; } });
883
883
 
884
884
  /**
885
885
  * @deprecated: use {@link tuiRawLoadRecord} instead
@@ -948,8 +948,8 @@ var TuiDocExampleComponent = /** @class */ (function () {
948
948
  this.route = route;
949
949
  this.ngLocation = ngLocation;
950
950
  this.rawLoader$$ = new BehaviorSubject({});
951
- this.heading = '';
952
- this.description = '';
951
+ this.heading = "";
952
+ this.description = "";
953
953
  this.componentName = this.location.pathname.slice(1);
954
954
  this.defaultTabIndex = 0;
955
955
  this.defaultTab = this.texts[this.defaultTabIndex];
@@ -969,7 +969,7 @@ var TuiDocExampleComponent = /** @class */ (function () {
969
969
  configurable: true
970
970
  });
971
971
  TuiDocExampleComponent.prototype.copyExampleLink = function () {
972
- var hashPosition = this.location.href.indexOf('#');
972
+ var hashPosition = this.location.href.indexOf("#");
973
973
  var currentUrl = hashPosition > -1
974
974
  ? this.location.href.slice(0, Math.max(0, hashPosition))
975
975
  : this.location.href;
@@ -987,16 +987,16 @@ var TuiDocExampleComponent = /** @class */ (function () {
987
987
  var _this = this;
988
988
  var _a, _b;
989
989
  this.loading$.next(true);
990
- (_a = this.codeEditor) === null || _a === void 0 ? void 0 : _a.edit(this.componentName, (_b = this.id) !== null && _b !== void 0 ? _b : '', files).finally(function () { return _this.loading$.next(false); });
990
+ (_a = this.codeEditor) === null || _a === void 0 ? void 0 : _a.edit(this.componentName, (_b = this.id) !== null && _b !== void 0 ? _b : "", files).finally(function () { return _this.loading$.next(false); });
991
991
  };
992
992
  TuiDocExampleComponent.prototype.setFragmentWithoutRedirect = function (id) {
993
993
  var url = this.router
994
- .createUrlTree([], { relativeTo: this.route, fragment: id || '' })
994
+ .createUrlTree([], { relativeTo: this.route, fragment: id || "" })
995
995
  .toString();
996
996
  this.ngLocation.go(url);
997
997
  };
998
998
  TuiDocExampleComponent.ctorParameters = function () { return [
999
- { type: String, decorators: [{ type: Attribute, args: ['id',] }] },
999
+ { type: String, decorators: [{ type: Attribute, args: ["id",] }] },
1000
1000
  { type: Clipboard, decorators: [{ type: Inject, args: [Clipboard,] }] },
1001
1001
  { type: TuiNotificationsService, decorators: [{ type: Inject, args: [TuiNotificationsService,] }] },
1002
1002
  { type: Location, decorators: [{ type: Inject, args: [LOCATION,] }] },
@@ -1024,12 +1024,12 @@ var TuiDocExampleComponent = /** @class */ (function () {
1024
1024
  ], TuiDocExampleComponent.prototype, "componentName", void 0);
1025
1025
  TuiDocExampleComponent = __decorate([
1026
1026
  Component({
1027
- selector: 'tui-doc-example',
1027
+ selector: "tui-doc-example",
1028
1028
  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",
1029
1029
  changeDetection: ChangeDetectionStrategy.OnPush,
1030
1030
  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}"]
1031
1031
  }),
1032
- __param(0, Attribute('id')),
1032
+ __param(0, Attribute("id")),
1033
1033
  __param(1, Inject(Clipboard)),
1034
1034
  __param(2, Inject(TuiNotificationsService)),
1035
1035
  __param(3, Inject(LOCATION)),
@@ -1051,10 +1051,10 @@ var TuiDocExampleCapitalizePipe = /** @class */ (function () {
1051
1051
  function TuiDocExampleCapitalizePipe() {
1052
1052
  }
1053
1053
  TuiDocExampleCapitalizePipe.prototype.transform = function (content) {
1054
- return typeof content === 'string' ? capitalizeFirstLetter(content) : content;
1054
+ return typeof content === "string" ? capitalizeFirstLetter(content) : content;
1055
1055
  };
1056
1056
  TuiDocExampleCapitalizePipe = __decorate([
1057
- Pipe({ name: 'tuiDocExampleCapitalize' })
1057
+ Pipe({ name: "tuiDocExampleCapitalize" })
1058
1058
  ], TuiDocExampleCapitalizePipe);
1059
1059
  return TuiDocExampleCapitalizePipe;
1060
1060
  }());
@@ -1066,7 +1066,7 @@ var TuiDocExampleGetTabsPipe = /** @class */ (function () {
1066
1066
  return __spread([defaultTab], Object.keys(content));
1067
1067
  };
1068
1068
  TuiDocExampleGetTabsPipe = __decorate([
1069
- Pipe({ name: 'tuiDocExampleGetTabs' })
1069
+ Pipe({ name: "tuiDocExampleGetTabs" })
1070
1070
  ], TuiDocExampleGetTabsPipe);
1071
1071
  return TuiDocExampleGetTabsPipe;
1072
1072
  }());
@@ -1105,15 +1105,15 @@ var TuiDocMainComponent = /** @class */ (function () {
1105
1105
  function TuiDocMainComponent(storage, windowRef) {
1106
1106
  this.storage = storage;
1107
1107
  this.windowRef = windowRef;
1108
- this.night = this.storage.getItem('night') === 'true' ||
1109
- (this.storage.getItem('night') === null &&
1110
- this.windowRef.matchMedia('(prefers-color-scheme: dark)').matches);
1108
+ this.night = this.storage.getItem("night") === "true" ||
1109
+ (this.storage.getItem("night") === null &&
1110
+ this.windowRef.matchMedia("(prefers-color-scheme: dark)").matches);
1111
1111
  this.change$ = new Subject();
1112
1112
  }
1113
1113
  TuiDocMainComponent_1 = TuiDocMainComponent;
1114
1114
  Object.defineProperty(TuiDocMainComponent.prototype, "mode", {
1115
1115
  get: function () {
1116
- return this.night ? 'onDark' : null;
1116
+ return this.night ? "onDark" : null;
1117
1117
  },
1118
1118
  enumerable: true,
1119
1119
  configurable: true
@@ -1121,7 +1121,7 @@ var TuiDocMainComponent = /** @class */ (function () {
1121
1121
  TuiDocMainComponent.prototype.onMode = function (night) {
1122
1122
  this.night = night;
1123
1123
  this.change$.next();
1124
- this.storage.setItem('night', String(night));
1124
+ this.storage.setItem("night", String(night));
1125
1125
  };
1126
1126
  var TuiDocMainComponent_1;
1127
1127
  TuiDocMainComponent.ctorParameters = function () { return [
@@ -1129,11 +1129,11 @@ var TuiDocMainComponent = /** @class */ (function () {
1129
1129
  { type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] }
1130
1130
  ]; };
1131
1131
  __decorate([
1132
- HostBinding('attr.data-mode')
1132
+ HostBinding("attr.data-mode")
1133
1133
  ], TuiDocMainComponent.prototype, "mode", null);
1134
1134
  TuiDocMainComponent = TuiDocMainComponent_1 = __decorate([
1135
1135
  Component({
1136
- selector: 'tui-doc-main',
1136
+ selector: "tui-doc-main",
1137
1137
  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",
1138
1138
  encapsulation: ViewEncapsulation.None,
1139
1139
  providers: [
@@ -1151,7 +1151,7 @@ var TuiDocMainComponent = /** @class */ (function () {
1151
1151
  return TuiDocMainComponent;
1152
1152
  }());
1153
1153
 
1154
- var TUI_DOC_PAGE_LOADED = new InjectionToken('[TUI_DOC_PAGE_LOADED] Stream that emits if loading of page is over (for example, to begin scrollIntoView)', { factory: function () { return defer(function () { return timer(200).pipe(switchMapTo(of(true))); }); } });
1154
+ var TUI_DOC_PAGE_LOADED = new InjectionToken("[TUI_DOC_PAGE_LOADED] Stream that emits if loading of page is over (for example, to begin scrollIntoView)", { factory: function () { return defer(function () { return timer(200).pipe(switchMapTo(of(true))); }); } });
1155
1155
 
1156
1156
  /**
1157
1157
  * @deprecated: use {@link TuiScrollIntoViewLinkDirective}
@@ -1185,7 +1185,7 @@ var ScrollIntoViewDirective = /** @class */ (function () {
1185
1185
  ], ScrollIntoViewDirective.prototype, "scrollIntoView", null);
1186
1186
  ScrollIntoViewDirective = __decorate([
1187
1187
  Directive({
1188
- selector: '[scrollIntoView]',
1188
+ selector: "[scrollIntoView]",
1189
1189
  providers: [TuiDestroyService],
1190
1190
  })
1191
1191
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -1203,7 +1203,7 @@ var TuiScrollIntoViewLinkDirective = /** @class */ (function (_super) {
1203
1203
  }
1204
1204
  TuiScrollIntoViewLinkDirective = __decorate([
1205
1205
  Directive({
1206
- selector: '[tuiScrollIntoViewLink]',
1206
+ selector: "[tuiScrollIntoViewLink]",
1207
1207
  providers: [TuiDestroyService],
1208
1208
  })
1209
1209
  ], TuiScrollIntoViewLinkDirective);
@@ -1239,41 +1239,41 @@ var TuiScrollIntoViewLinkModule = /** @class */ (function () {
1239
1239
  return TuiScrollIntoViewLinkModule;
1240
1240
  }());
1241
1241
 
1242
- var TUI_DOC_SCROLL_BEHAVIOR = new InjectionToken('[TUI_DOC_SCROLL_BEHAVIOR] Defines the transition animation for scroll', { factory: function () { return 'smooth'; } });
1242
+ var TUI_DOC_SCROLL_BEHAVIOR = new InjectionToken("[TUI_DOC_SCROLL_BEHAVIOR] Defines the transition animation for scroll", { factory: function () { return "smooth"; } });
1243
1243
 
1244
1244
  var MAP = {
1245
- а: 'f',
1246
- б: ',',
1247
- в: 'd',
1248
- г: 'u',
1249
- д: 'l',
1250
- е: 't',
1251
- ё: '`',
1252
- ж: ';',
1253
- з: 'p',
1254
- и: 'b',
1255
- й: 'q',
1256
- к: 'r',
1257
- л: 'k',
1258
- м: 'v',
1259
- н: 'y',
1260
- о: 'j',
1261
- п: 'g',
1262
- р: 'h',
1263
- с: 'c',
1264
- т: 'n',
1265
- у: 'e',
1266
- ф: 'a',
1267
- х: '[',
1268
- ц: 'w',
1269
- ч: 'x',
1270
- ш: 'i',
1271
- щ: 'o',
1272
- ъ: ']',
1273
- ы: 's',
1274
- ь: 'm',
1275
- ю: '.',
1276
- я: 'z',
1245
+ а: "f",
1246
+ б: ",",
1247
+ в: "d",
1248
+ г: "u",
1249
+ д: "l",
1250
+ е: "t",
1251
+ ё: "`",
1252
+ ж: ";",
1253
+ з: "p",
1254
+ и: "b",
1255
+ й: "q",
1256
+ к: "r",
1257
+ л: "k",
1258
+ м: "v",
1259
+ н: "y",
1260
+ о: "j",
1261
+ п: "g",
1262
+ р: "h",
1263
+ с: "c",
1264
+ т: "n",
1265
+ у: "e",
1266
+ ф: "a",
1267
+ х: "[",
1268
+ ц: "w",
1269
+ ч: "x",
1270
+ ш: "i",
1271
+ щ: "o",
1272
+ ъ: "]",
1273
+ ы: "s",
1274
+ ь: "m",
1275
+ ю: ".",
1276
+ я: "z",
1277
1277
  };
1278
1278
  /**
1279
1279
  * @deprecated: use {@link tuiTransliterateKeyboardLayout} instead
@@ -1283,7 +1283,7 @@ var MAP = {
1283
1283
  */
1284
1284
  // eslint-disable-next-line @typescript-eslint/naming-convention
1285
1285
  function transliterateKeyboardLayout(string) {
1286
- var newStr = '';
1286
+ var newStr = "";
1287
1287
  for (var i = 0; i < string.length; i++) {
1288
1288
  newStr += string.charAt(i) in MAP ? MAP[string.charAt(i)] : string.charAt(i);
1289
1289
  }
@@ -1291,17 +1291,17 @@ function transliterateKeyboardLayout(string) {
1291
1291
  }
1292
1292
  var tuiTransliterateKeyboardLayout = transliterateKeyboardLayout;
1293
1293
 
1294
- var TUI_DOC_PAGES = new InjectionToken('Documentation pages', {
1294
+ var TUI_DOC_PAGES = new InjectionToken("Documentation pages", {
1295
1295
  factory: function () { return []; },
1296
1296
  });
1297
1297
 
1298
- var TUI_DOC_TITLE = new InjectionToken('Page title', {
1299
- factory: function () { return ''; },
1298
+ var TUI_DOC_TITLE = new InjectionToken("Page title", {
1299
+ factory: function () { return ""; },
1300
1300
  });
1301
1301
 
1302
- var NAVIGATION_TITLE = new InjectionToken('Page title');
1303
- var NAVIGATION_LABELS = new InjectionToken('Navigation sections labels for search');
1304
- var NAVIGATION_ITEMS = new InjectionToken('Navigation pages');
1302
+ var NAVIGATION_TITLE = new InjectionToken("Page title");
1303
+ var NAVIGATION_LABELS = new InjectionToken("Navigation sections labels for search");
1304
+ var NAVIGATION_ITEMS = new InjectionToken("Navigation pages");
1305
1305
  var NAVIGATION_PROVIDERS = [
1306
1306
  TuiDestroyService,
1307
1307
  {
@@ -1367,12 +1367,12 @@ var TuiDocNavigationComponent = /** @class */ (function () {
1367
1367
  this.readyToScroll$ = readyToScroll$;
1368
1368
  this.scrollBehavior = scrollBehavior;
1369
1369
  this.menuOpen = false;
1370
- this.search = '';
1370
+ this.search = "";
1371
1371
  this.open = false;
1372
1372
  this.openPagesArr = [];
1373
1373
  this.openPagesGroupsArr = [];
1374
- this.active = '';
1375
- this.mode$ = this.mode.change$.pipe(startWith(null), map(function () { return _this.mode.mode || 'onLight'; }));
1374
+ this.active = "";
1375
+ this.mode$ = this.mode.change$.pipe(startWith(null), map(function () { return _this.mode.mode || "onLight"; }));
1376
1376
  // Angular can't navigate no anchor links
1377
1377
  // https://stackoverflow.com/questions/36101756/angular2-routing-with-hashtag-to-page-anchor
1378
1378
  title$.subscribe(function (title) {
@@ -1419,13 +1419,13 @@ var TuiDocNavigationComponent = /** @class */ (function () {
1419
1419
  TuiDocNavigationComponent.prototype.onClick = function () {
1420
1420
  this.open = false;
1421
1421
  this.menuOpen = false;
1422
- this.search = '';
1422
+ this.search = "";
1423
1423
  this.openActivePageGroup();
1424
1424
  };
1425
1425
  TuiDocNavigationComponent.prototype.filterItems = function (items, search) {
1426
1426
  return items.map(function (section) {
1427
1427
  return uniqBy(section.filter(function (_a) {
1428
- var title = _a.title, _b = _a.keywords, keywords = _b === void 0 ? '' : _b;
1428
+ var title = _a.title, _b = _a.keywords, keywords = _b === void 0 ? "" : _b;
1429
1429
  title = title.toLowerCase();
1430
1430
  search = search.toLowerCase();
1431
1431
  keywords = keywords.toLowerCase();
@@ -1433,14 +1433,14 @@ var TuiDocNavigationComponent = /** @class */ (function () {
1433
1433
  keywords.includes(search) ||
1434
1434
  title.includes(transliterateKeyboardLayout(search)) ||
1435
1435
  keywords.includes(transliterateKeyboardLayout(search)) ||
1436
- search.replace(/-/gi, '').includes(title));
1437
- }), 'title');
1436
+ search.replace(/-/gi, "").includes(title));
1437
+ }), "title");
1438
1438
  });
1439
1439
  };
1440
1440
  TuiDocNavigationComponent.prototype.flattenSubPages = function (items) {
1441
1441
  return items.reduce(function (array, item) { return __spread(array, [
1442
1442
  item.reduce(function (pages, page) {
1443
- return 'subPages' in page
1443
+ return "subPages" in page
1444
1444
  ? __spread(pages, page.subPages) : __spread(pages, [page]);
1445
1445
  }, []),
1446
1446
  ]); }, []);
@@ -1458,11 +1458,11 @@ var TuiDocNavigationComponent = /** @class */ (function () {
1458
1458
  var _this = this;
1459
1459
  this.items.forEach(function (pages, pagesIndex) {
1460
1460
  pages.forEach(function (page, pageIndex) {
1461
- if ('route' in page && _this.isActiveRoute(page.route)) {
1461
+ if ("route" in page && _this.isActiveRoute(page.route)) {
1462
1462
  _this.openPagesArr[pagesIndex] = true;
1463
1463
  _this.active = page.route;
1464
1464
  }
1465
- if ('subPages' in page) {
1465
+ if ("subPages" in page) {
1466
1466
  page.subPages.forEach(function (subPage) {
1467
1467
  if (_this.isActiveRoute(subPage.route)) {
1468
1468
  _this.openPagesArr[pagesIndex] = true;
@@ -1479,10 +1479,10 @@ var TuiDocNavigationComponent = /** @class */ (function () {
1479
1479
  if (!element) {
1480
1480
  return;
1481
1481
  }
1482
- element.classList.add('tui-doc-animated-example');
1482
+ element.classList.add("tui-doc-animated-example");
1483
1483
  element.scrollIntoView({
1484
- block: 'start',
1485
- inline: 'nearest',
1484
+ block: "start",
1485
+ inline: "nearest",
1486
1486
  behavior: this.scrollBehavior,
1487
1487
  });
1488
1488
  };
@@ -1503,7 +1503,7 @@ var TuiDocNavigationComponent = /** @class */ (function () {
1503
1503
  { type: undefined, decorators: [{ type: Inject, args: [TUI_DOC_SCROLL_BEHAVIOR,] }] }
1504
1504
  ]; };
1505
1505
  __decorate([
1506
- HostBinding('class._open')
1506
+ HostBinding("class._open")
1507
1507
  ], TuiDocNavigationComponent.prototype, "menuOpen", void 0);
1508
1508
  __decorate([
1509
1509
  tuiPure
@@ -1513,7 +1513,7 @@ var TuiDocNavigationComponent = /** @class */ (function () {
1513
1513
  ], TuiDocNavigationComponent.prototype, "flattenSubPages", null);
1514
1514
  TuiDocNavigationComponent = __decorate([
1515
1515
  Component({
1516
- selector: 'tui-doc-navigation',
1516
+ selector: "tui-doc-navigation",
1517
1517
  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",
1518
1518
  providers: NAVIGATION_PROVIDERS,
1519
1519
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -1572,8 +1572,8 @@ var TuiDocNavigationModule = /** @class */ (function () {
1572
1572
  return TuiDocNavigationModule;
1573
1573
  }());
1574
1574
 
1575
- var TUI_DOC_LOGO = new InjectionToken('Main logo', {
1576
- factory: function () { return ''; },
1575
+ var TUI_DOC_LOGO = new InjectionToken("Main logo", {
1576
+ factory: function () { return ""; },
1577
1577
  });
1578
1578
 
1579
1579
  var TuiDocHeaderComponent = /** @class */ (function () {
@@ -1583,7 +1583,7 @@ var TuiDocHeaderComponent = /** @class */ (function () {
1583
1583
  this.router = router;
1584
1584
  this.swipes$ = swipes$;
1585
1585
  this.stream$ = new Subject();
1586
- this.open$ = merge(this.router.events.pipe(mapTo(false)), this.stream$, this.swipes$.pipe(filter(function (swipe) { return swipe.direction === 'left' || swipe.direction === 'right'; }), map(function (swipe) { return swipe.direction === 'right'; }))).pipe(startWith(false), distinctUntilChanged());
1586
+ this.open$ = merge(this.router.events.pipe(mapTo(false)), this.stream$, this.swipes$.pipe(filter(function (swipe) { return swipe.direction === "left" || swipe.direction === "right"; }), map(function (swipe) { return swipe.direction === "right"; }))).pipe(startWith(false), distinctUntilChanged());
1587
1587
  }
1588
1588
  TuiDocHeaderComponent.prototype.onClick = function () {
1589
1589
  this.stream$.next(true);
@@ -1601,7 +1601,7 @@ var TuiDocHeaderComponent = /** @class */ (function () {
1601
1601
  ]; };
1602
1602
  TuiDocHeaderComponent = __decorate([
1603
1603
  Component({
1604
- selector: 'header[tuiDocHeader]',
1604
+ selector: "header[tuiDocHeader]",
1605
1605
  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",
1606
1606
  changeDetection: ChangeDetectionStrategy.OnPush,
1607
1607
  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%}"]
@@ -1658,15 +1658,15 @@ var TuiDocMainModule = /** @class */ (function () {
1658
1658
  return TuiDocMainModule;
1659
1659
  }());
1660
1660
 
1661
- var TUI_DOC_DEFAULT_TABS = new InjectionToken('Array of default tab names', {
1661
+ var TUI_DOC_DEFAULT_TABS = new InjectionToken("Array of default tab names", {
1662
1662
  factory: function () { return []; },
1663
1663
  });
1664
1664
 
1665
- var TUI_DOC_SEE_ALSO = new InjectionToken('Array of arrays of related pages', {
1665
+ var TUI_DOC_SEE_ALSO = new InjectionToken("Array of arrays of related pages", {
1666
1666
  factory: function () { return []; },
1667
1667
  });
1668
1668
 
1669
- var PAGE_SEE_ALSO = new InjectionToken('Page see also');
1669
+ var PAGE_SEE_ALSO = new InjectionToken("Page see also");
1670
1670
  var PAGE_PROVIDERS = [
1671
1671
  {
1672
1672
  provide: PAGE_SEE_ALSO,
@@ -1677,11 +1677,11 @@ var PAGE_PROVIDERS = [
1677
1677
  // eslint-disable-next-line @typescript-eslint/naming-convention
1678
1678
  function seeAlsoProviderFactory(_a, seeAlsoGroups) {
1679
1679
  var nativeElement = _a.nativeElement;
1680
- var currentHeader = nativeElement.getAttribute('header');
1680
+ var currentHeader = nativeElement.getAttribute("header");
1681
1681
  var groups = seeAlsoGroups.filter(function (group) { return group.includes(currentHeader); }) || [];
1682
1682
  var seeAlsoSet = new Set(groups
1683
1683
  .join()
1684
- .split(',')
1684
+ .split(",")
1685
1685
  .filter(function (component) { return component && component !== currentHeader; }));
1686
1686
  return Array.from(seeAlsoSet);
1687
1687
  }
@@ -1699,7 +1699,7 @@ var TuiDocPageTabConnectorDirective = /** @class */ (function () {
1699
1699
  ], TuiDocPageTabConnectorDirective.prototype, "pageTab", void 0);
1700
1700
  TuiDocPageTabConnectorDirective = __decorate([
1701
1701
  Directive({
1702
- selector: '[pageTab]',
1702
+ selector: "[pageTab]",
1703
1703
  }),
1704
1704
  __param(0, Inject(TemplateRef))
1705
1705
  ], TuiDocPageTabConnectorDirective);
@@ -1713,10 +1713,10 @@ var TuiDocPageComponent = /** @class */ (function () {
1713
1713
  this.deprecated = deprecated;
1714
1714
  this.defaultTabs = defaultTabs;
1715
1715
  this.seeAlso = seeAlso;
1716
- this.header = '';
1717
- this.package = '';
1718
- this.type = '';
1719
- this.path = '';
1716
+ this.header = "";
1717
+ this.package = "";
1718
+ this.type = "";
1719
+ this.path = "";
1720
1720
  this.tabConnectors = EMPTY_QUERY;
1721
1721
  this.activeItemIndex = NaN;
1722
1722
  }
@@ -1728,11 +1728,11 @@ var TuiDocPageComponent = /** @class */ (function () {
1728
1728
  configurable: true
1729
1729
  });
1730
1730
  TuiDocPageComponent.prototype.getRouterLink = function (tab) {
1731
- if (tab === void 0) { tab = ''; }
1732
- return "./" + tab.replace(/ /g, '_');
1731
+ if (tab === void 0) { tab = ""; }
1732
+ return "./" + tab.replace(/ /g, "_");
1733
1733
  };
1734
1734
  TuiDocPageComponent.ctorParameters = function () { return [
1735
- { type: String, decorators: [{ type: Attribute, args: ['deprecated',] }] },
1735
+ { type: String, decorators: [{ type: Attribute, args: ["deprecated",] }] },
1736
1736
  { type: undefined, decorators: [{ type: Inject, args: [TUI_DOC_DEFAULT_TABS,] }] },
1737
1737
  { type: undefined, decorators: [{ type: Inject, args: [PAGE_SEE_ALSO,] }] }
1738
1738
  ]; };
@@ -1753,13 +1753,13 @@ var TuiDocPageComponent = /** @class */ (function () {
1753
1753
  ], TuiDocPageComponent.prototype, "tabConnectors", void 0);
1754
1754
  TuiDocPageComponent = __decorate([
1755
1755
  Component({
1756
- selector: 'tui-doc-page',
1756
+ selector: "tui-doc-page",
1757
1757
  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",
1758
1758
  changeDetection: ChangeDetectionStrategy.OnPush,
1759
1759
  providers: PAGE_PROVIDERS,
1760
1760
  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}"]
1761
1761
  }),
1762
- __param(0, Attribute('deprecated')),
1762
+ __param(0, Attribute("deprecated")),
1763
1763
  __param(1, Inject(TUI_DOC_DEFAULT_TABS)),
1764
1764
  __param(2, Inject(PAGE_SEE_ALSO))
1765
1765
  ], TuiDocPageComponent);
@@ -1776,14 +1776,14 @@ var TuiDocSeeAlsoComponent = /** @class */ (function () {
1776
1776
  TuiDocSeeAlsoComponent.prototype.getRouterLink = function (pageTitle) {
1777
1777
  for (var i = 0; i < this.pages.length; i++) {
1778
1778
  var page = this.pages
1779
- .map(function (page) { return ('subPages' in page ? page.subPages : [page]); })
1779
+ .map(function (page) { return ("subPages" in page ? page.subPages : [page]); })
1780
1780
  .reduce(function (pages, subPages) { return __spread(pages, subPages); }, [])
1781
1781
  .find(function (page) { return page.title === pageTitle; });
1782
1782
  if (page === null || page === void 0 ? void 0 : page.route) {
1783
1783
  return page.route;
1784
1784
  }
1785
1785
  }
1786
- return '';
1786
+ return "";
1787
1787
  };
1788
1788
  TuiDocSeeAlsoComponent.ctorParameters = function () { return [
1789
1789
  { type: String, decorators: [{ type: Inject, args: [TUI_DOC_SEE_ALSO_TEXT,] }] },
@@ -1794,7 +1794,7 @@ var TuiDocSeeAlsoComponent = /** @class */ (function () {
1794
1794
  ], TuiDocSeeAlsoComponent.prototype, "seeAlso", void 0);
1795
1795
  TuiDocSeeAlsoComponent = __decorate([
1796
1796
  Component({
1797
- selector: 'tui-doc-see-also',
1797
+ selector: "tui-doc-see-also",
1798
1798
  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",
1799
1799
  changeDetection: ChangeDetectionStrategy.OnPush,
1800
1800
  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}"]
@@ -1818,18 +1818,18 @@ var TuiDocSeeAlsoModule = /** @class */ (function () {
1818
1818
  return TuiDocSeeAlsoModule;
1819
1819
  }());
1820
1820
 
1821
- var TUI_DOC_SOURCE_CODE = new InjectionToken('Source code link', {
1822
- factory: function () { return ''; },
1821
+ var TUI_DOC_SOURCE_CODE = new InjectionToken("Source code link", {
1822
+ factory: function () { return ""; },
1823
1823
  });
1824
1824
 
1825
1825
  var TuiDocSourceCodeComponent = /** @class */ (function () {
1826
1826
  function TuiDocSourceCodeComponent(sourceCode, text) {
1827
1827
  this.sourceCode = sourceCode;
1828
1828
  this.text = text;
1829
- this.header = '';
1830
- this.package = '';
1831
- this.type = '';
1832
- this.path = '';
1829
+ this.header = "";
1830
+ this.package = "";
1831
+ this.type = "";
1832
+ this.path = "";
1833
1833
  }
1834
1834
  Object.defineProperty(TuiDocSourceCodeComponent.prototype, "pathOptions", {
1835
1835
  get: function () {
@@ -1867,7 +1867,7 @@ var TuiDocSourceCodeComponent = /** @class */ (function () {
1867
1867
  ], TuiDocSourceCodeComponent.prototype, "getPathOptions", null);
1868
1868
  TuiDocSourceCodeComponent = __decorate([
1869
1869
  Component({
1870
- selector: 'tui-doc-source-code',
1870
+ selector: "tui-doc-source-code",
1871
1871
  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",
1872
1872
  changeDetection: ChangeDetectionStrategy.OnPush
1873
1873
  }),
@@ -1911,21 +1911,21 @@ var TuiDocPageModule = /** @class */ (function () {
1911
1911
  }());
1912
1912
 
1913
1913
  var TUI_EXAMPLE_PRIMARY_FILE_NAME = {
1914
- TS: 'TypeScript',
1915
- LESS: 'LESS',
1916
- HTML: 'HTML',
1914
+ TS: "TypeScript",
1915
+ LESS: "LESS",
1916
+ HTML: "HTML",
1917
1917
  };
1918
1918
 
1919
1919
  // TODO: 3.0 remove in ivy compilation
1920
- var DEMO_TEXTS = ['Сделано с помощью директивы: ', 'Фон', 'Детали формы'];
1920
+ var DEMO_TEXTS = ["\u0421\u0434\u0435\u043B\u0430\u043D\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0434\u0438\u0440\u0435\u043A\u0442\u0438\u0432\u044B: ", "\u0424\u043E\u043D", "\u0414\u0435\u0442\u0430\u043B\u0438 \u0444\u043E\u0440\u043C\u044B"];
1921
1921
  var DOC_TEXTS = [
1922
- 'Аргумент',
1923
- 'Тип',
1924
- 'Имя и описание',
1925
- 'Значение',
1926
- 'Для работы с динамическими шаблонами используется',
1922
+ "\u0410\u0440\u0433\u0443\u043C\u0435\u043D\u0442",
1923
+ "\u0422\u0438\u043F",
1924
+ "\u0418\u043C\u044F \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",
1925
+ "\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435",
1926
+ "\u0414\u043B\u044F \u0440\u0430\u0431\u043E\u0442\u044B \u0441 \u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u043C\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0430\u043C\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F",
1927
1927
  ];
1928
- var EXAMPLE_TEXTS = ['Превью', 'Ссылка на пример скопирована', 'Готово'];
1928
+ var EXAMPLE_TEXTS = ["\u041F\u0440\u0435\u0432\u044C\u044E", "\u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u043F\u0440\u0438\u043C\u0435\u0440 \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0430", "\u0413\u043E\u0442\u043E\u0432\u043E"];
1929
1929
  var TUI_DOC_RUSSIAN = [
1930
1930
  {
1931
1931
  provide: TUI_DOC_DEMO_TEXTS,
@@ -1941,19 +1941,19 @@ var TUI_DOC_RUSSIAN = [
1941
1941
  },
1942
1942
  {
1943
1943
  provide: TUI_DOC_MENU_TEXT,
1944
- useValue: 'Меню',
1944
+ useValue: "\u041C\u0435\u043D\u044E",
1945
1945
  },
1946
1946
  {
1947
1947
  provide: TUI_DOC_SEARCH_TEXT,
1948
- useValue: 'Поиск',
1948
+ useValue: "\u041F\u043E\u0438\u0441\u043A",
1949
1949
  },
1950
1950
  {
1951
1951
  provide: TUI_DOC_SEE_ALSO_TEXT,
1952
- useValue: 'Смотрите также',
1952
+ useValue: "\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0442\u0430\u043A\u0436\u0435",
1953
1953
  },
1954
1954
  {
1955
1955
  provide: TUI_DOC_SOURCE_CODE_TEXT,
1956
- useValue: 'Исходный код',
1956
+ useValue: "\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434",
1957
1957
  },
1958
1958
  ];
1959
1959
 
@@ -1982,11 +1982,11 @@ var TuiAddonDocModule = /** @class */ (function () {
1982
1982
  function generateRoutes(type) {
1983
1983
  return [
1984
1984
  {
1985
- path: '',
1985
+ path: "",
1986
1986
  component: type,
1987
1987
  children: [
1988
1988
  {
1989
- path: ':tab',
1989
+ path: ":tab",
1990
1990
  component: type,
1991
1991
  },
1992
1992
  ],