@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.
- package/bundles/taiga-ui-addon-doc.umd.js +21 -7
- package/bundles/taiga-ui-addon-doc.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-doc.umd.min.js +1 -15
- package/bundles/taiga-ui-addon-doc.umd.min.js.map +1 -1
- package/components/code/code.component.d.ts +1 -1
- package/components/code/parse-code-block.d.ts +1 -0
- package/esm2015/components/code/code.component.js +6 -5
- package/esm2015/components/code/parse-code-block.js +7 -0
- package/esm5/components/code/code.component.js +6 -5
- package/esm5/components/code/parse-code-block.js +13 -0
- package/fesm2015/taiga-ui-addon-doc.js +11 -4
- package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
- package/fesm5/taiga-ui-addon-doc.js +17 -4
- package/fesm5/taiga-ui-addon-doc.js.map +1 -1
- package/package.json +5 -5
- package/taiga-ui-addon-doc.metadata.json +1 -1
|
@@ -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]=\"
|
|
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,
|
|
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]=\"
|
|
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,
|
|
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,
|
|
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]=\"
|
|
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
|
|