@taiga-ui/addon-doc 2.29.0 → 2.30.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.
@@ -2,7 +2,7 @@ import { RawLoaderContent } from '../../interfaces/page';
2
2
  export declare class TuiDocCodeComponent {
3
3
  private readonly rawLoader$$;
4
4
  filename: string;
5
- readonly processor$: import("rxjs").Observable<string>;
5
+ readonly processor$: import("rxjs").Observable<string[]>;
6
6
  set code(code: RawLoaderContent);
7
7
  get hasFilename(): boolean;
8
8
  }
@@ -0,0 +1 @@
1
+ export declare function tryParseMarkdownCodeBlock(text: string): string[];
@@ -1,13 +1,14 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Component, HostBinding, Input } from '@angular/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
- import { switchMap } from 'rxjs/operators';
4
+ import { map, switchMap } from 'rxjs/operators';
5
5
  import { rawLoad } from '../../utils/raw-load';
6
+ import { tryParseMarkdownCodeBlock } from './parse-code-block';
6
7
  let TuiDocCodeComponent = class TuiDocCodeComponent {
7
8
  constructor() {
8
9
  this.rawLoader$$ = new BehaviorSubject('');
9
10
  this.filename = '';
10
- this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad));
11
+ this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad), map(tryParseMarkdownCodeBlock));
11
12
  }
12
13
  set code(code) {
13
14
  this.rawLoader$$.next(code);
@@ -28,9 +29,9 @@ __decorate([
28
29
  TuiDocCodeComponent = __decorate([
29
30
  Component({
30
31
  selector: 'tui-doc-code',
31
- template: "<p *ngIf=\"filename\" class=\"t-header\">{{filename}}</p>\n<pre\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"processor$ | async\"></code></pre>\n",
32
- styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-code{margin:0}.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:6px 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}@media screen and (max-width:47.9375em){.hljs:not(:empty){padding:1rem}}"]
32
+ template: "<p *ngIf=\"filename\" class=\"t-header\">{{filename}}</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n",
33
+ 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:6px 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}@media screen and (max-width:47.9375em){.hljs:not(:empty){padding:1rem}}"]
33
34
  })
34
35
  ], TuiDocCodeComponent);
35
36
  export { TuiDocCodeComponent };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBTzdDLElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBQWhDO1FBQ3FCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBR3pFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFTCxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFXcEUsQ0FBQztJQVJHLElBQUksSUFBSSxDQUFDLElBQXNCO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLFdBQVc7UUFDWCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDSixDQUFBO0FBYkc7SUFEQyxLQUFLLEVBQUU7cURBQ007QUFLZDtJQURDLEtBQUssRUFBRTsrQ0FHUDtBQUdEO0lBREMsV0FBVyxDQUFDLHFCQUFxQixDQUFDO3NEQUdsQztBQWhCUSxtQkFBbUI7SUFML0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGNBQWM7UUFDeEIsbUxBQW1DOztLQUV0QyxDQUFDO0dBQ1csbUJBQW1CLENBaUIvQjtTQWpCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7UmF3TG9hZGVyQ29udGVudH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wYWdlJztcbmltcG9ydCB7cmF3TG9hZH0gZnJvbSAnLi4vLi4vdXRpbHMvcmF3LWxvYWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29kZS5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvZGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3TG9hZGVyJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJhd0xvYWRlckNvbnRlbnQ+KCcnKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZW5hbWUgPSAnJztcblxuICAgIHJlYWRvbmx5IHByb2Nlc3NvciQgPSB0aGlzLnJhd0xvYWRlciQkLnBpcGUoc3dpdGNoTWFwKHJhd0xvYWQpKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvZGUoY29kZTogUmF3TG9hZGVyQ29udGVudCkge1xuICAgICAgICB0aGlzLnJhd0xvYWRlciQkLm5leHQoY29kZSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGFzLWZpbGVuYW1lJylcbiAgICBnZXQgaGFzRmlsZW5hbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmlsZW5hbWU7XG4gICAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQU83RCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQUFoQztRQUNxQixnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUd6RSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN2QyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQ2xCLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUNqQyxDQUFDO0lBV04sQ0FBQztJQVJHLElBQUksSUFBSSxDQUFDLElBQXNCO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLFdBQVc7UUFDWCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDSixDQUFBO0FBaEJHO0lBREMsS0FBSyxFQUFFO3FEQUNNO0FBUWQ7SUFEQyxLQUFLLEVBQUU7K0NBR1A7QUFHRDtJQURDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztzREFHbEM7QUFuQlEsbUJBQW1CO0lBTC9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLDBOQUFtQzs7S0FFdEMsQ0FBQztHQUNXLG1CQUFtQixDQW9CL0I7U0FwQlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7UmF3TG9hZGVyQ29udGVudH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wYWdlJztcbmltcG9ydCB7cmF3TG9hZH0gZnJvbSAnLi4vLi4vdXRpbHMvcmF3LWxvYWQnO1xuaW1wb3J0IHt0cnlQYXJzZU1hcmtkb3duQ29kZUJsb2NrfSBmcm9tICcuL3BhcnNlLWNvZGUtYmxvY2snO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29kZS5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvZGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3TG9hZGVyJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJhd0xvYWRlckNvbnRlbnQ+KCcnKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZW5hbWUgPSAnJztcblxuICAgIHJlYWRvbmx5IHByb2Nlc3NvciQgPSB0aGlzLnJhd0xvYWRlciQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyYXdMb2FkKSxcbiAgICAgICAgbWFwKHRyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2spLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2RlKGNvZGU6IFJhd0xvYWRlckNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5yYXdMb2FkZXIkJC5uZXh0KGNvZGUpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hhcy1maWxlbmFtZScpXG4gICAgZ2V0IGhhc0ZpbGVuYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZpbGVuYW1lO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import MarkdownIt from 'markdown-it';
2
+ export function tryParseMarkdownCodeBlock(text) {
3
+ const tokens = new MarkdownIt().parse(text, {});
4
+ const result = tokens.filter(({ tag }) => tag === 'code').map(({ content }) => content);
5
+ return result.length ? result : [text];
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtY29kZS1ibG9jay5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1kb2MvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUvcGFyc2UtY29kZS1ibG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFHckMsTUFBTSxVQUFVLHlCQUF5QixDQUFDLElBQVk7SUFDbEQsTUFBTSxNQUFNLEdBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXJrZG93bkl0IGZyb20gJ21hcmtkb3duLWl0JztcbmltcG9ydCBUb2tlbiBmcm9tICdtYXJrZG93bi1pdC9saWIvdG9rZW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJ5UGFyc2VNYXJrZG93bkNvZGVCbG9jayh0ZXh0OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdG9rZW5zOiBUb2tlbltdID0gbmV3IE1hcmtkb3duSXQoKS5wYXJzZSh0ZXh0LCB7fSk7XG4gICAgY29uc3QgcmVzdWx0ID0gdG9rZW5zLmZpbHRlcigoe3RhZ30pID0+IHRhZyA9PT0gJ2NvZGUnKS5tYXAoKHtjb250ZW50fSkgPT4gY29udGVudCk7XG5cbiAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdCA6IFt0ZXh0XTtcbn1cbiJdfQ==
@@ -1,13 +1,14 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Component, HostBinding, Input } from '@angular/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
- import { switchMap } from 'rxjs/operators';
4
+ import { map, switchMap } from 'rxjs/operators';
5
5
  import { rawLoad } from '../../utils/raw-load';
6
+ import { tryParseMarkdownCodeBlock } from './parse-code-block';
6
7
  var TuiDocCodeComponent = /** @class */ (function () {
7
8
  function TuiDocCodeComponent() {
8
9
  this.rawLoader$$ = new BehaviorSubject('');
9
10
  this.filename = '';
10
- this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad));
11
+ this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad), map(tryParseMarkdownCodeBlock));
11
12
  }
12
13
  Object.defineProperty(TuiDocCodeComponent.prototype, "code", {
13
14
  set: function (code) {
@@ -35,11 +36,11 @@ var TuiDocCodeComponent = /** @class */ (function () {
35
36
  TuiDocCodeComponent = __decorate([
36
37
  Component({
37
38
  selector: 'tui-doc-code',
38
- template: "<p *ngIf=\"filename\" class=\"t-header\">{{filename}}</p>\n<pre\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"processor$ | async\"></code></pre>\n",
39
- styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-code{margin:0}.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:6px 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}@media screen and (max-width:47.9375em){.hljs:not(:empty){padding:1rem}}"]
39
+ template: "<p *ngIf=\"filename\" class=\"t-header\">{{filename}}</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n",
40
+ 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:6px 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}@media screen and (max-width:47.9375em){.hljs:not(:empty){padding:1rem}}"]
40
41
  })
41
42
  ], TuiDocCodeComponent);
42
43
  return TuiDocCodeComponent;
43
44
  }());
44
45
  export { TuiDocCodeComponent };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBTzdDO0lBQUE7UUFDcUIsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFHekUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVMLGVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQVdwRSxDQUFDO0lBUkcsc0JBQUkscUNBQUk7YUFBUixVQUFTLElBQXNCO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBR0Qsc0JBQUksNENBQVc7YUFBZjtZQUNJLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFaRDtRQURDLEtBQUssRUFBRTt5REFDTTtJQUtkO1FBREMsS0FBSyxFQUFFO21EQUdQO0lBR0Q7UUFEQyxXQUFXLENBQUMscUJBQXFCLENBQUM7MERBR2xDO0lBaEJRLG1CQUFtQjtRQUwvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsY0FBYztZQUN4QixtTEFBbUM7O1NBRXRDLENBQUM7T0FDVyxtQkFBbUIsQ0FpQi9CO0lBQUQsMEJBQUM7Q0FBQSxBQWpCRCxJQWlCQztTQWpCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7UmF3TG9hZGVyQ29udGVudH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wYWdlJztcbmltcG9ydCB7cmF3TG9hZH0gZnJvbSAnLi4vLi4vdXRpbHMvcmF3LWxvYWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29kZS5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvZGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3TG9hZGVyJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJhd0xvYWRlckNvbnRlbnQ+KCcnKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZW5hbWUgPSAnJztcblxuICAgIHJlYWRvbmx5IHByb2Nlc3NvciQgPSB0aGlzLnJhd0xvYWRlciQkLnBpcGUoc3dpdGNoTWFwKHJhd0xvYWQpKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvZGUoY29kZTogUmF3TG9hZGVyQ29udGVudCkge1xuICAgICAgICB0aGlzLnJhd0xvYWRlciQkLm5leHQoY29kZSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGFzLWZpbGVuYW1lJylcbiAgICBnZXQgaGFzRmlsZW5hbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmlsZW5hbWU7XG4gICAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQU83RDtJQUFBO1FBQ3FCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBR3pFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFTCxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3ZDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFDbEIsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQ2pDLENBQUM7SUFXTixDQUFDO0lBUkcsc0JBQUkscUNBQUk7YUFBUixVQUFTLElBQXNCO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBR0Qsc0JBQUksNENBQVc7YUFBZjtZQUNJLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFmRDtRQURDLEtBQUssRUFBRTt5REFDTTtJQVFkO1FBREMsS0FBSyxFQUFFO21EQUdQO0lBR0Q7UUFEQyxXQUFXLENBQUMscUJBQXFCLENBQUM7MERBR2xDO0lBbkJRLG1CQUFtQjtRQUwvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsY0FBYztZQUN4QiwwTkFBbUM7O1NBRXRDLENBQUM7T0FDVyxtQkFBbUIsQ0FvQi9CO0lBQUQsMEJBQUM7Q0FBQSxBQXBCRCxJQW9CQztTQXBCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtSYXdMb2FkZXJDb250ZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhZ2UnO1xuaW1wb3J0IHtyYXdMb2FkfSBmcm9tICcuLi8uLi91dGlscy9yYXctbG9hZCc7XG5pbXBvcnQge3RyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2t9IGZyb20gJy4vcGFyc2UtY29kZS1ibG9jayc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWRvYy1jb2RlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29kZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2RlLnN0eWxlLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jQ29kZUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByYXdMb2FkZXIkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmF3TG9hZGVyQ29udGVudD4oJycpO1xuXG4gICAgQElucHV0KClcbiAgICBmaWxlbmFtZSA9ICcnO1xuXG4gICAgcmVhZG9ubHkgcHJvY2Vzc29yJCA9IHRoaXMucmF3TG9hZGVyJCQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJhd0xvYWQpLFxuICAgICAgICBtYXAodHJ5UGFyc2VNYXJrZG93bkNvZGVCbG9jayksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvZGUoY29kZTogUmF3TG9hZGVyQ29udGVudCkge1xuICAgICAgICB0aGlzLnJhd0xvYWRlciQkLm5leHQoY29kZSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGFzLWZpbGVuYW1lJylcbiAgICBnZXQgaGFzRmlsZW5hbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmlsZW5hbWU7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,13 @@
1
+ import MarkdownIt from 'markdown-it';
2
+ export function tryParseMarkdownCodeBlock(text) {
3
+ var tokens = new MarkdownIt().parse(text, {});
4
+ var result = tokens.filter(function (_a) {
5
+ var tag = _a.tag;
6
+ return tag === 'code';
7
+ }).map(function (_a) {
8
+ var content = _a.content;
9
+ return content;
10
+ });
11
+ return result.length ? result : [text];
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtY29kZS1ibG9jay5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1kb2MvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUvcGFyc2UtY29kZS1ibG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFHckMsTUFBTSxVQUFVLHlCQUF5QixDQUFDLElBQVk7SUFDbEQsSUFBTSxNQUFNLEdBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELElBQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBQyxFQUFLO1lBQUosWUFBRztRQUFNLE9BQUEsR0FBRyxLQUFLLE1BQU07SUFBZCxDQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxFQUFTO1lBQVIsb0JBQU87UUFBTSxPQUFBLE9BQU87SUFBUCxDQUFPLENBQUMsQ0FBQztJQUVwRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcmtkb3duSXQgZnJvbSAnbWFya2Rvd24taXQnO1xuaW1wb3J0IFRva2VuIGZyb20gJ21hcmtkb3duLWl0L2xpYi90b2tlbic7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cnlQYXJzZU1hcmtkb3duQ29kZUJsb2NrKHRleHQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB0b2tlbnM6IFRva2VuW10gPSBuZXcgTWFya2Rvd25JdCgpLnBhcnNlKHRleHQsIHt9KTtcbiAgICBjb25zdCByZXN1bHQgPSB0b2tlbnMuZmlsdGVyKCh7dGFnfSkgPT4gdGFnID09PSAnY29kZScpLm1hcCgoe2NvbnRlbnR9KSA9PiBjb250ZW50KTtcblxuICAgIHJldHVybiByZXN1bHQubGVuZ3RoID8gcmVzdWx0IDogW3RleHRdO1xufVxuIl19
@@ -1,7 +1,8 @@
1
1
  import { __awaiter, __decorate, __param } from 'tslib';
2
2
  import { Input, HostBinding, Component, NgModule, Inject, ChangeDetectionStrategy, InjectionToken, Renderer2, PLATFORM_ID, ViewChild, ContentChild, TemplateRef, HostListener, forwardRef, EventEmitter, Output, Directive, ChangeDetectorRef, ContentChildren, Attribute, Optional, Pipe, ViewEncapsulation, ElementRef } from '@angular/core';
3
3
  import { BehaviorSubject, Subject, timer, Observable, merge } from 'rxjs';
4
- import { switchMap, switchMapTo, mapTo, startWith, takeUntil, map, debounceTime, filter, mergeMap, distinctUntilChanged } from 'rxjs/operators';
4
+ import { switchMap, map, switchMapTo, mapTo, startWith, takeUntil, debounceTime, filter, mergeMap, distinctUntilChanged } from 'rxjs/operators';
5
+ import MarkdownIt from 'markdown-it';
5
6
  import { CommonModule, isPlatformBrowser, Location as Location$1, DOCUMENT } from '@angular/common';
6
7
  import { HighlightModule } from 'ngx-highlightjs';
7
8
  import { tuiPure, TuiDestroyService, TUI_IS_MOBILE, TuiDragModule, EMPTY_QUERY, itemsQueryListObservable, watch, TUI_FOCUSABLE_ITEM_ACCESSOR, identity, TuiSwipeService, getElementObscurers, isPresent, uniqBy, TuiActiveZoneModule, TuiLetModule, TuiAutoFocusModule, tuiDefaultProp } from '@taiga-ui/cdk';
@@ -22,11 +23,17 @@ function rawLoad(content) {
22
23
  });
23
24
  }
24
25
 
26
+ function tryParseMarkdownCodeBlock(text) {
27
+ const tokens = new MarkdownIt().parse(text, {});
28
+ const result = tokens.filter(({ tag }) => tag === 'code').map(({ content }) => content);
29
+ return result.length ? result : [text];
30
+ }
31
+
25
32
  let TuiDocCodeComponent = class TuiDocCodeComponent {
26
33
  constructor() {
27
34
  this.rawLoader$$ = new BehaviorSubject('');
28
35
  this.filename = '';
29
- this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad));
36
+ this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad), map(tryParseMarkdownCodeBlock));
30
37
  }
31
38
  set code(code) {
32
39
  this.rawLoader$$.next(code);
@@ -47,8 +54,8 @@ __decorate([
47
54
  TuiDocCodeComponent = __decorate([
48
55
  Component({
49
56
  selector: 'tui-doc-code',
50
- template: "<p *ngIf=\"filename\" class=\"t-header\">{{filename}}</p>\n<pre\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"processor$ | async\"></code></pre>\n",
51
- styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-code{margin:0}.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:6px 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}@media screen and (max-width:47.9375em){.hljs:not(:empty){padding:1rem}}"]
57
+ template: "<p *ngIf=\"filename\" class=\"t-header\">{{filename}}</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n",
58
+ 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:6px 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}@media screen and (max-width:47.9375em){.hljs:not(:empty){padding:1rem}}"]
52
59
  })
53
60
  ], TuiDocCodeComponent);
54
61