@taiga-ui/addon-doc 3.16.0-dev.main-be14e7c → 3.16.0-dev.main-92f5373

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.
@@ -1,9 +1,12 @@
1
+ import { TuiHandler } from '@taiga-ui/cdk';
1
2
  import { RawLoaderContent } from '../../interfaces/page';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class TuiDocCodeComponent {
5
+ readonly markdownCodeProcessor: TuiHandler<string, string[]>;
4
6
  private readonly rawLoader$$;
5
7
  filename: string;
6
8
  readonly processor$: import("rxjs").Observable<string[]>;
9
+ constructor(markdownCodeProcessor: TuiHandler<string, string[]>);
7
10
  set code(code: RawLoaderContent);
8
11
  get hasFilename(): boolean;
9
12
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocCodeComponent, never>;
@@ -1,16 +1,17 @@
1
- import { Component, HostBinding, Input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, } from '@angular/core';
2
2
  import { BehaviorSubject } from 'rxjs';
3
3
  import { map, switchMap } from 'rxjs/operators';
4
+ import { TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR } from '../../tokens/example-content-processor';
4
5
  import { tuiRawLoad } from '../../utils/raw-load';
5
- import { tuiTryParseMarkdownCodeBlock } from './parse-code-block';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
8
  import * as i2 from "ngx-highlightjs";
9
9
  export class TuiDocCodeComponent {
10
- constructor() {
10
+ constructor(markdownCodeProcessor) {
11
+ this.markdownCodeProcessor = markdownCodeProcessor;
11
12
  this.rawLoader$$ = new BehaviorSubject('');
12
13
  this.filename = '';
13
- this.processor$ = this.rawLoader$$.pipe(switchMap(tuiRawLoad), map(tuiTryParseMarkdownCodeBlock));
14
+ this.processor$ = this.rawLoader$$.pipe(switchMap(tuiRawLoad), map((value) => this.markdownCodeProcessor(value)));
14
15
  }
15
16
  set code(code) {
16
17
  this.rawLoader$$.next(code);
@@ -19,16 +20,20 @@ export class TuiDocCodeComponent {
19
20
  return !!this.filename;
20
21
  }
21
22
  }
22
- TuiDocCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- TuiDocCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: { filename: "filename", code: "code" }, host: { properties: { "class._has-filename": "this.hasFilename" } }, ngImport: i0, template: "<!-- eslint-disable @html-eslint/element-newline -->\n<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", styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:bold}.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);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .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}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }], pipes: { "async": i1.AsyncPipe } });
23
+ TuiDocCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, deps: [{ token: TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR }], target: i0.ɵɵFactoryTarget.Component });
24
+ TuiDocCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: { filename: "filename", code: "code" }, host: { properties: { "class._has-filename": "this.hasFilename" } }, ngImport: i0, template: "<!-- eslint-disable @html-eslint/element-newline -->\n<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", styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:bold}.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);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .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}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, decorators: [{
25
26
  type: Component,
26
27
  args: [{
27
28
  selector: 'tui-doc-code',
28
29
  templateUrl: './code.template.html',
29
30
  styleUrls: ['./code.style.less'],
31
+ changeDetection: ChangeDetectionStrategy.OnPush,
30
32
  }]
31
- }], propDecorators: { filename: [{
33
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
34
+ type: Inject,
35
+ args: [TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR]
36
+ }] }]; }, propDecorators: { filename: [{
32
37
  type: Input
33
38
  }], code: [{
34
39
  type: Input
@@ -36,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
36
41
  type: HostBinding,
37
42
  args: ['class._has-filename']
38
43
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2Mvc3JjL2NvbXBvbmVudHMvY29kZS9jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy9zcmMvY29tcG9uZW50cy9jb2RlL2NvZGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU9oRSxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTXFCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBR3pFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFTCxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3ZDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFDckIsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQ3BDLENBQUM7S0FXTDtJQVRHLElBQ0ksSUFBSSxDQUFDLElBQXNCO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDWCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7O2lIQW5CUSxtQkFBbUI7cUdBQW5CLG1CQUFtQix5S0NiaEMsNFJBV0E7NEZERWEsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixXQUFXLEVBQUUsc0JBQXNCO29CQUNuQyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDbkM7OEJBS0csUUFBUTtzQkFEUCxLQUFLO2dCQVNGLElBQUk7c0JBRFAsS0FBSztnQkFNRixXQUFXO3NCQURkLFdBQVc7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7UmF3TG9hZGVyQ29udGVudH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wYWdlJztcbmltcG9ydCB7dHVpUmF3TG9hZH0gZnJvbSAnLi4vLi4vdXRpbHMvcmF3LWxvYWQnO1xuaW1wb3J0IHt0dWlUcnlQYXJzZU1hcmtkb3duQ29kZUJsb2NrfSBmcm9tICcuL3BhcnNlLWNvZGUtYmxvY2snO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29kZS5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvZGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3TG9hZGVyJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJhd0xvYWRlckNvbnRlbnQ+KCcnKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZW5hbWUgPSAnJztcblxuICAgIHJlYWRvbmx5IHByb2Nlc3NvciQgPSB0aGlzLnJhd0xvYWRlciQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCh0dWlSYXdMb2FkKSxcbiAgICAgICAgbWFwKHR1aVRyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2spLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2RlKGNvZGU6IFJhd0xvYWRlckNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5yYXdMb2FkZXIkJC5uZXh0KGNvZGUpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hhcy1maWxlbmFtZScpXG4gICAgZ2V0IGhhc0ZpbGVuYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZpbGVuYW1lO1xuICAgIH1cbn1cbiIsIjwhLS0gZXNsaW50LWRpc2FibGUgQGh0bWwtZXNsaW50L2VsZW1lbnQtbmV3bGluZSAtLT5cbjxwXG4gICAgKm5nSWY9XCJmaWxlbmFtZVwiXG4gICAgY2xhc3M9XCJ0LWhlYWRlclwiXG4+XG4gICAge3sgZmlsZW5hbWUgfX1cbjwvcD5cbjxwcmVcbiAgICAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBwcm9jZXNzb3IkIHwgYXN5bmNcIlxuICAgIGNsYXNzPVwidC1jb2RlXCJcbj48Y29kZSBbbGluZU51bWJlcnNdPVwidHJ1ZVwiIFtoaWdobGlnaHRdPVwiY29udGVudFwiPjwvY29kZT48L3ByZT5cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2Mvc3JjL2NvbXBvbmVudHMvY29kZS9jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy9zcmMvY29tcG9uZW50cy9jb2RlL2NvZGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUMsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDL0YsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7O0FBUWhELE1BQU0sT0FBTyxtQkFBbUI7SUFXNUIsWUFFYSxxQkFBbUQ7UUFBbkQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtRQVovQyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUd6RSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN2QyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQ3JCLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3RFLENBQUM7SUFLQyxDQUFDO0lBRUosSUFDSSxJQUFJLENBQUMsSUFBc0I7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDM0IsQ0FBQzs7aUhBeEJRLG1CQUFtQixrQkFZaEIsdUNBQXVDO3FHQVoxQyxtQkFBbUIseUtDckJoQyw0UkFXQTs0RkRVYSxtQkFBbUI7a0JBTi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSxzQkFBc0I7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNoQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQWFRLE1BQU07MkJBQUMsdUNBQXVDOzRDQVJuRCxRQUFRO3NCQURQLEtBQUs7Z0JBY0YsSUFBSTtzQkFEUCxLQUFLO2dCQU1GLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtSYXdMb2FkZXJDb250ZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhZ2UnO1xuaW1wb3J0IHtUVUlfRE9DX0VYQU1QTEVfTUFSS0RPV05fQ09ERV9QUk9DRVNTT1J9IGZyb20gJy4uLy4uL3Rva2Vucy9leGFtcGxlLWNvbnRlbnQtcHJvY2Vzc29yJztcbmltcG9ydCB7dHVpUmF3TG9hZH0gZnJvbSAnLi4vLi4vdXRpbHMvcmF3LWxvYWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29kZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvZGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3TG9hZGVyJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJhd0xvYWRlckNvbnRlbnQ+KCcnKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZW5hbWUgPSAnJztcblxuICAgIHJlYWRvbmx5IHByb2Nlc3NvciQgPSB0aGlzLnJhd0xvYWRlciQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCh0dWlSYXdMb2FkKSxcbiAgICAgICAgbWFwKCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10gPT4gdGhpcy5tYXJrZG93bkNvZGVQcm9jZXNzb3IodmFsdWUpKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19FWEFNUExFX01BUktET1dOX0NPREVfUFJPQ0VTU09SKVxuICAgICAgICByZWFkb25seSBtYXJrZG93bkNvZGVQcm9jZXNzb3I6IFR1aUhhbmRsZXI8c3RyaW5nLCBzdHJpbmdbXT4sXG4gICAgKSB7fVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgY29kZShjb2RlOiBSYXdMb2FkZXJDb250ZW50KSB7XG4gICAgICAgIHRoaXMucmF3TG9hZGVyJCQubmV4dChjb2RlKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oYXMtZmlsZW5hbWUnKVxuICAgIGdldCBoYXNGaWxlbmFtZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWxlbmFtZTtcbiAgICB9XG59XG4iLCI8IS0tIGVzbGludC1kaXNhYmxlIEBodG1sLWVzbGludC9lbGVtZW50LW5ld2xpbmUgLS0+XG48cFxuICAgICpuZ0lmPVwiZmlsZW5hbWVcIlxuICAgIGNsYXNzPVwidC1oZWFkZXJcIlxuPlxuICAgIHt7IGZpbGVuYW1lIH19XG48L3A+XG48cHJlXG4gICAgKm5nRm9yPVwibGV0IGNvbnRlbnQgb2YgcHJvY2Vzc29yJCB8IGFzeW5jXCJcbiAgICBjbGFzcz1cInQtY29kZVwiXG4+PGNvZGUgW2xpbmVOdW1iZXJzXT1cInRydWVcIiBbaGlnaGxpZ2h0XT1cImNvbnRlbnRcIj48L2NvZGU+PC9wcmU+XG4iXX0=
@@ -1,4 +1,6 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { identity } from 'rxjs';
3
+ import { tuiTryParseMarkdownCodeBlock } from '../components/code/parse-code-block';
3
4
  export const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken(`[TUI_DOC_EXAMPLE_CONTENT_PROCESSOR]: Processes content in example`, { factory: () => identity });
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS1jb250ZW50LXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy9zcmMvdG9rZW5zL2V4YW1wbGUtY29udGVudC1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUUxQyxJQUFJLGNBQWMsQ0FDbEIsbUVBQW1FLEVBQ25FLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBQyxDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtpZGVudGl0eX0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfRE9DX0VYQU1QTEVfQ09OVEVOVF9QUk9DRVNTT1I6IEluamVjdGlvblRva2VuPFxuICAgIFR1aUhhbmRsZXI8UmVjb3JkPHN0cmluZywgc3RyaW5nPiwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj5cbj4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgYFtUVUlfRE9DX0VYQU1QTEVfQ09OVEVOVF9QUk9DRVNTT1JdOiBQcm9jZXNzZXMgY29udGVudCBpbiBleGFtcGxlYCxcbiAgICB7ZmFjdG9yeTogKCkgPT4gaWRlbnRpdHl9LFxuKTtcbiJdfQ==
5
+ export const TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR = new InjectionToken(`[TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR]: Processes markdown in code block`, { factory: () => tuiTryParseMarkdownCodeBlock });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS1jb250ZW50LXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy9zcmMvdG9rZW5zL2V4YW1wbGUtY29udGVudC1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUUxQyxJQUFJLGNBQWMsQ0FDbEIsbUVBQW1FLEVBQ25FLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBQyxDQUM1QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBRWhELElBQUksY0FBYyxDQUNsQiw2RUFBNkUsRUFDN0UsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsNEJBQTRCLEVBQUMsQ0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7aWRlbnRpdHl9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge3R1aVRyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2t9IGZyb20gJy4uL2NvbXBvbmVudHMvY29kZS9wYXJzZS1jb2RlLWJsb2NrJztcblxuZXhwb3J0IGNvbnN0IFRVSV9ET0NfRVhBTVBMRV9DT05URU5UX1BST0NFU1NPUjogSW5qZWN0aW9uVG9rZW48XG4gICAgVHVpSGFuZGxlcjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PlxuPiA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgICBgW1RVSV9ET0NfRVhBTVBMRV9DT05URU5UX1BST0NFU1NPUl06IFByb2Nlc3NlcyBjb250ZW50IGluIGV4YW1wbGVgLFxuICAgIHtmYWN0b3J5OiAoKSA9PiBpZGVudGl0eX0sXG4pO1xuXG5leHBvcnQgY29uc3QgVFVJX0RPQ19FWEFNUExFX01BUktET1dOX0NPREVfUFJPQ0VTU09SOiBJbmplY3Rpb25Ub2tlbjxcbiAgICBUdWlIYW5kbGVyPHN0cmluZywgc3RyaW5nW10+XG4+ID0gbmV3IEluamVjdGlvblRva2VuKFxuICAgIGBbVFVJX0RPQ19FWEFNUExFX01BUktET1dOX0NPREVfUFJPQ0VTU09SXTogUHJvY2Vzc2VzIG1hcmtkb3duIGluIGNvZGUgYmxvY2tgLFxuICAgIHtmYWN0b3J5OiAoKSA9PiB0dWlUcnlQYXJzZU1hcmtkb3duQ29kZUJsb2NrfSxcbik7XG4iXX0=
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, HostBinding, NgModule, ChangeDetectionStrategy, Inject, InjectionToken, ElementRef, forwardRef, TemplateRef, ViewChild, ContentChild, HostListener, EventEmitter, Directive, Output, Pipe, Renderer2, ChangeDetectorRef, Self, ContentChildren, Attribute, Optional, ViewEncapsulation } from '@angular/core';
2
+ import { InjectionToken, Component, ChangeDetectionStrategy, Inject, Input, HostBinding, NgModule, ElementRef, forwardRef, TemplateRef, ViewChild, ContentChild, HostListener, EventEmitter, Directive, Output, Pipe, Renderer2, ChangeDetectorRef, Self, ContentChildren, Attribute, Optional, ViewEncapsulation } from '@angular/core';
3
3
  import * as i9 from 'rxjs';
4
- import { BehaviorSubject, Subject, timer, merge, identity, defer, of, ReplaySubject } from 'rxjs';
4
+ import { identity, BehaviorSubject, Subject, timer, merge, defer, of, ReplaySubject } from 'rxjs';
5
5
  import { switchMap, map, startWith, takeUntil, filter, mergeMap, debounceTime, take, distinctUntilChanged } from 'rxjs/operators';
6
- import { __awaiter, __decorate } from 'tslib';
7
6
  import MarkdownIt from 'markdown-it';
7
+ import { __awaiter, __decorate } from 'tslib';
8
8
  import * as i5 from '@angular/common';
9
9
  import { CommonModule, Location as Location$1, DOCUMENT } from '@angular/common';
10
10
  import * as i2 from 'ngx-highlightjs';
@@ -32,12 +32,6 @@ import { Title } from '@angular/platform-browser';
32
32
  import * as i4 from '@taiga-ui/addon-mobile';
33
33
  import { TuiSidebarDirective, TuiSidebarModule } from '@taiga-ui/addon-mobile';
34
34
 
35
- function tuiRawLoad(content) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- return content instanceof Promise ? (yield content).default : content;
38
- });
39
- }
40
-
41
35
  function tuiTryParseMarkdownCodeBlock(text = ``) {
42
36
  const tokens = new MarkdownIt().parse(text, {});
43
37
  const result = tokens
@@ -46,11 +40,21 @@ function tuiTryParseMarkdownCodeBlock(text = ``) {
46
40
  return result.length ? result : [text];
47
41
  }
48
42
 
43
+ const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken(`[TUI_DOC_EXAMPLE_CONTENT_PROCESSOR]: Processes content in example`, { factory: () => identity });
44
+ const TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR = new InjectionToken(`[TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR]: Processes markdown in code block`, { factory: () => tuiTryParseMarkdownCodeBlock });
45
+
46
+ function tuiRawLoad(content) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ return content instanceof Promise ? (yield content).default : content;
49
+ });
50
+ }
51
+
49
52
  class TuiDocCodeComponent {
50
- constructor() {
53
+ constructor(markdownCodeProcessor) {
54
+ this.markdownCodeProcessor = markdownCodeProcessor;
51
55
  this.rawLoader$$ = new BehaviorSubject('');
52
56
  this.filename = '';
53
- this.processor$ = this.rawLoader$$.pipe(switchMap(tuiRawLoad), map(tuiTryParseMarkdownCodeBlock));
57
+ this.processor$ = this.rawLoader$$.pipe(switchMap(tuiRawLoad), map((value) => this.markdownCodeProcessor(value)));
54
58
  }
55
59
  set code(code) {
56
60
  this.rawLoader$$.next(code);
@@ -59,16 +63,20 @@ class TuiDocCodeComponent {
59
63
  return !!this.filename;
60
64
  }
61
65
  }
62
- TuiDocCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
- TuiDocCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: { filename: "filename", code: "code" }, host: { properties: { "class._has-filename": "this.hasFilename" } }, ngImport: i0, template: "<!-- eslint-disable @html-eslint/element-newline -->\n<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", styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:bold}.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);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .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}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }], pipes: { "async": i5.AsyncPipe } });
66
+ TuiDocCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, deps: [{ token: TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR }], target: i0.ɵɵFactoryTarget.Component });
67
+ TuiDocCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDocCodeComponent, selector: "tui-doc-code", inputs: { filename: "filename", code: "code" }, host: { properties: { "class._has-filename": "this.hasFilename" } }, ngImport: i0, template: "<!-- eslint-disable @html-eslint/element-newline -->\n<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", styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:bold}.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);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .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}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
64
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDocCodeComponent, decorators: [{
65
69
  type: Component,
66
70
  args: [{
67
71
  selector: 'tui-doc-code',
68
72
  templateUrl: './code.template.html',
69
73
  styleUrls: ['./code.style.less'],
74
+ changeDetection: ChangeDetectionStrategy.OnPush,
70
75
  }]
71
- }], propDecorators: { filename: [{
76
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
77
+ type: Inject,
78
+ args: [TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR]
79
+ }] }]; }, propDecorators: { filename: [{
72
80
  type: Input
73
81
  }], code: [{
74
82
  type: Input
@@ -1012,8 +1020,6 @@ const TUI_DOC_CODE_ACTIONS = new InjectionToken(`[TUI_DOC_CODE_ACTIONS]: Code ac
1012
1020
 
1013
1021
  const TUI_DOC_CODE_EDITOR = new InjectionToken(`[TUI_DOC_CODE_EDITOR]: Contains service for opening online IDE e.g. Stackblitz`);
1014
1022
 
1015
- const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken(`[TUI_DOC_EXAMPLE_CONTENT_PROCESSOR]: Processes content in example`, { factory: () => identity });
1016
-
1017
1023
  function tuiRawLoadRecord(example) {
1018
1024
  return __awaiter(this, void 0, void 0, function* () {
1019
1025
  const processedContent = {};
@@ -2199,5 +2205,5 @@ function tuiGenerateRoutes(type) {
2199
2205
  * Generated bundle index. Do not edit.
2200
2206
  */
2201
2207
 
2202
- export { 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_EXCLUDED_PROPERTIES, 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, TuiDocExampleCapitalizePipe, TuiDocExampleComponent, TuiDocExampleGetTabsPipe, TuiDocExampleModule, TuiDocMainComponent, TuiDocMainModule, TuiDocNavigationComponent, TuiDocNavigationModule, TuiDocPageComponent, TuiDocPageModule, TuiDocPageTabConnectorDirective, TuiInspectPipe, TuiLanguageSwitcherComponent, TuiLanguageSwitcherModule, TuiScrollIntoViewLinkDirective, TuiScrollIntoViewLinkModule, tuiCoerceValue, tuiDocExcludeProperties, tuiGenerateRoutes, tuiRawLoad, tuiRawLoadRecord, tuiTryParseMarkdownCodeBlock };
2208
+ export { 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_MARKDOWN_CODE_PROCESSOR, TUI_DOC_EXAMPLE_TEXTS, TUI_DOC_EXCLUDED_PROPERTIES, 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, TuiDocExampleCapitalizePipe, TuiDocExampleComponent, TuiDocExampleGetTabsPipe, TuiDocExampleModule, TuiDocMainComponent, TuiDocMainModule, TuiDocNavigationComponent, TuiDocNavigationModule, TuiDocPageComponent, TuiDocPageModule, TuiDocPageTabConnectorDirective, TuiInspectPipe, TuiLanguageSwitcherComponent, TuiLanguageSwitcherModule, TuiScrollIntoViewLinkDirective, TuiScrollIntoViewLinkModule, tuiCoerceValue, tuiDocExcludeProperties, tuiGenerateRoutes, tuiRawLoad, tuiRawLoadRecord, tuiTryParseMarkdownCodeBlock };
2203
2209
  //# sourceMappingURL=taiga-ui-addon-doc.js.map