@ptsecurity/mosaic 14.1.0 → 14.2.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/_theming.scss +7407 -90
- package/_visual.scss +3032 -6
- package/design-tokens/legacy-2017/tokens/components/markdown.json5 +294 -0
- package/design-tokens/legacy-2017/tokens/properties/md-typography.json5 +103 -0
- package/design-tokens/legacy-2017/tokens.d.ts +204 -0
- package/design-tokens/pt-2022/tokens/components/markdown.json5 +294 -0
- package/design-tokens/pt-2022/tokens/properties/md-typography.json5 +103 -0
- package/design-tokens/pt-2022/tokens.d.ts +204 -0
- package/design-tokens/style-dictionary/build.js +2 -0
- package/design-tokens/style-dictionary/configs/scss.js +6 -0
- package/design-tokens/style-dictionary/filters/color.js +3 -1
- package/design-tokens/style-dictionary/filters/md-typography.js +7 -0
- package/design-tokens/style-dictionary/transformGroups/scss.js +1 -0
- package/design-tokens/style-dictionary/transforms/attribute/md-typography.js +9 -0
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +205 -1
- package/esm2020/design-tokens/pt-2022/tokens.mjs +205 -1
- package/esm2020/markdown/index.mjs +2 -0
- package/esm2020/markdown/markdown.component.mjs +45 -0
- package/esm2020/markdown/markdown.module.mjs +23 -0
- package/esm2020/markdown/markdown.service.mjs +52 -0
- package/esm2020/markdown/ptsecurity-mosaic-markdown.mjs +5 -0
- package/esm2020/markdown/public-api.mjs +4 -0
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +613 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-markdown.mjs +120 -0
- package/fesm2015/ptsecurity-mosaic-markdown.mjs.map +1 -0
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +613 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-markdown.mjs +119 -0
- package/fesm2020/ptsecurity-mosaic-markdown.mjs.map +1 -0
- package/markdown/README.md +0 -0
- package/markdown/index.d.ts +1 -0
- package/markdown/markdown.component.d.ts +16 -0
- package/markdown/markdown.module.d.ts +11 -0
- package/markdown/markdown.service.d.ts +7 -0
- package/markdown/public-api.d.ts +3 -0
- package/package.json +12 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
@@ -0,0 +1,120 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { Injectable, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Input, NgModule } from '@angular/core';
|
3
|
+
import { marked } from 'marked';
|
4
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
5
|
+
import { CommonModule } from '@angular/common';
|
6
|
+
import { FormsModule } from '@angular/forms';
|
7
|
+
import { McCommonModule } from '@ptsecurity/mosaic/core';
|
8
|
+
|
9
|
+
const MARKDOWN_TAGS_TO_CLASS_ALIAS = [
|
10
|
+
'a',
|
11
|
+
'blockquote',
|
12
|
+
'h1',
|
13
|
+
'h2',
|
14
|
+
'h3',
|
15
|
+
'h4',
|
16
|
+
'h5',
|
17
|
+
'h6',
|
18
|
+
'hr',
|
19
|
+
'li',
|
20
|
+
'ol',
|
21
|
+
'table',
|
22
|
+
'tbody',
|
23
|
+
'thead',
|
24
|
+
'td',
|
25
|
+
'tr',
|
26
|
+
'ul',
|
27
|
+
'pre',
|
28
|
+
'code',
|
29
|
+
'img'
|
30
|
+
];
|
31
|
+
// separating th and p to prevent it's conflict with thead and pre
|
32
|
+
const MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS = [
|
33
|
+
'th',
|
34
|
+
'p'
|
35
|
+
];
|
36
|
+
const CLASS_PREFIX = 'mc-markdown';
|
37
|
+
class McMarkdownService {
|
38
|
+
parseToHtml(markdown) {
|
39
|
+
return this.transform(marked.parse(markdown));
|
40
|
+
}
|
41
|
+
transform(htmlContent) {
|
42
|
+
let transformed = htmlContent;
|
43
|
+
MARKDOWN_TAGS_TO_CLASS_ALIAS.forEach((tag) => {
|
44
|
+
transformed = transformed.replace(new RegExp(`<${tag}`, 'g'), (_match) => `<${tag} class="${CLASS_PREFIX}__${tag}"`);
|
45
|
+
});
|
46
|
+
MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS.forEach((tag) => {
|
47
|
+
transformed = transformed.replace(new RegExp(`<${tag}\s*>`, 'g'), (_match) => `<${tag} class="${CLASS_PREFIX}__${tag}">`);
|
48
|
+
});
|
49
|
+
return transformed;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
/** @nocollapse */ McMarkdownService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
53
|
+
/** @nocollapse */ McMarkdownService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdownService });
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdownService, decorators: [{
|
55
|
+
type: Injectable
|
56
|
+
}] });
|
57
|
+
|
58
|
+
class McMarkdown {
|
59
|
+
constructor(markdownService, cdr) {
|
60
|
+
this.markdownService = markdownService;
|
61
|
+
this.cdr = cdr;
|
62
|
+
}
|
63
|
+
get markdownText() {
|
64
|
+
return this._markdownText;
|
65
|
+
}
|
66
|
+
set markdownText(value) {
|
67
|
+
if (value && this.markdownText !== value) {
|
68
|
+
this.resultHtml = this.markdownService.parseToHtml(value);
|
69
|
+
}
|
70
|
+
this._markdownText = value;
|
71
|
+
}
|
72
|
+
ngAfterContentChecked() {
|
73
|
+
var _a;
|
74
|
+
if ((_a = this.contentWrapper) === null || _a === void 0 ? void 0 : _a.nativeElement.textContent) {
|
75
|
+
this.resultHtml = this.markdownService.parseToHtml(this.contentWrapper.nativeElement.textContent);
|
76
|
+
this.cdr.detectChanges();
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}
|
80
|
+
/** @nocollapse */ McMarkdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdown, deps: [{ token: McMarkdownService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
81
|
+
/** @nocollapse */ McMarkdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: McMarkdown, selector: "mc-markdown", inputs: { markdownText: "markdownText" }, host: { classAttribute: "mc-markdown" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], ngImport: i0, template: `
|
82
|
+
<pre class="markdown-input" #contentWrapper ngPreserveWhitespaces><ng-content></ng-content></pre>
|
83
|
+
<div class="markdown-output" [innerHtml]="resultHtml"></div>
|
84
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";.mc-markdown{display:block}.mc-markdown .markdown-input{display:none}.mc-markdown .markdown-output{flex:1}.mc-markdown *{-webkit-font-smoothing:antialiased;-webkit-font-smoothing:subpixel-antialiased;font-smooth:never}.mc-markdown .mc-markdown__h1{max-width:650px;max-width:var(--mc-markdown-h1-size-max-width, 650px);margin-top:0;margin-top:var(--mc-markdown-h1-size-margin-top, 0);margin-bottom:16px;margin-bottom:var(--mc-markdown-h1-size-margin-bottom, 16px)}.mc-markdown .mc-markdown__h2{max-width:650px;max-width:var(--mc-markdown-h2-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h2-size-margin-top, 24px);margin-bottom:12px;margin-bottom:var(--mc-markdown-h2-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__h3{max-width:650px;max-width:var(--mc-markdown-h3-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h3-size-margin-top, 24px);margin-bottom:12px;margin-bottom:var(--mc-markdown-h3-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__h4{max-width:650px;max-width:var(--mc-markdown-h4-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h4-size-margin-top, 24px);margin-bottom:12px;margin-bottom:var(--mc-markdown-h4-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__h5{max-width:650px;max-width:var(--mc-markdown-h5-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h5-size-margin-top, 24px);margin-bottom:8px;margin-bottom:var(--mc-markdown-h5-size-margin-bottom, 8px)}.mc-markdown .mc-markdown__h6{max-width:650px;max-width:var(--mc-markdown-h6-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h6-size-margin-top, 24px);margin-bottom:8px;margin-bottom:var(--mc-markdown-h6-size-margin-bottom, 8px)}.mc-markdown .mc-markdown__p{max-width:650px;max-width:var(--mc-markdown-p-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-p-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-p-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__ul,.mc-markdown .mc-markdown__ol{max-width:650px;max-width:var(--mc-markdown-list-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-list-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-list-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__ul>li,.mc-markdown .mc-markdown__ol>li{margin-bottom:4px;margin-bottom:var(--mc-markdown-list-size-item-margin-bottom, 4px)}.mc-markdown .mc-markdown__ul{position:relative;list-style:none;padding:0 0 0 24px;padding:var(--mc-markdown-list-size-ul-padding, 0 0 0 24px)}.mc-markdown .mc-markdown__ul>li:before{content:\"\\2014\";display:block;position:absolute;width:24px;text-align:left;left:0}.mc-markdown .mc-markdown__ol{list-style:none;padding:0;counter-reset:li}.mc-markdown .mc-markdown__ol>li:before{content:counter(li) \".\";counter-increment:li;padding-right:4px;padding-right:var(--mc-markdown-list-size-ol-number-padding-right, 4px)}.mc-markdown .mc-markdown__p+.mc-markdown__ul,.mc-markdown .mc-markdown__p+.mc-markdown__ol{margin-top:-8px;margin-top:var(--mc-markdown-list-size-margin-top-after-paragraph, -8px)}.mc-markdown .mc-markdown__blockquote{max-width:650px;max-width:var(--mc-markdown-blockquote-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-blockquote-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-blockquote-size-margin-bottom, 12px);border-left-width:4px;border-left-width:var(--mc-markdown-blockquote-size-line-width, 4px);border-left-style:solid;padding:2px 12px;padding:var(--mc-markdown-blockquote-size-padding, 2px 12px);margin-left:0;margin-right:0}.mc-markdown .mc-markdown__blockquote>.mc-markdown__p{margin-top:0;margin-bottom:0}.mc-markdown .mc-markdown__pre{overflow-x:auto;margin-top:12px;margin-top:var(--mc-markdown-code-size-multiline-margin-top, 12px);margin-bottom:24px;margin-bottom:var(--mc-markdown-code-size-multiline-margin-bottom, 24px);padding:12px 16px;padding:var(--mc-markdown-code-size-multiline-padding, 12px 16px)}.mc-markdown .mc-markdown__pre,.mc-markdown .mc-markdown__p>.mc-markdown__code{border-radius:4px;border-radius:var(--mc-markdown-code-size-border-radius, 4px);border-width:1px;border-width:var(--mc-markdown-code-size-border-width, 1px);border-style:solid}.mc-markdown .mc-markdown__p>.mc-markdown__code{max-width:650px;max-width:var(--mc-markdown-code-size-max-width, 650px);padding:1px 4px;padding:var(--mc-markdown-code-size-inline-padding, 1px 4px)}.mc-markdown .mc-markdown__img{max-width:650px;max-width:var(--mc-markdown-image-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-image-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-image-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__img+em{display:block;margin-top:-8px;margin-top:var(--mc-markdown-image-size-caption-margin-top, -8px);margin-bottom:24px;margin-bottom:var(--mc-markdown-image-size-caption-margin-bottom, 24px)}.mc-markdown .mc-markdown__hr{border-top:none;border-left:none;border-right:none;border-bottom-style:solid;border-bottom-width:1px;border-bottom-width:var(--mc-markdown-hr-size-width, 1px);margin:24px 0;margin:var(--mc-markdown-hr-size-margin-vertical, 24px) 0}.mc-markdown .mc-markdown__table{max-width:100%;overflow-x:auto;display:inline-block;border-collapse:collapse;margin-bottom:12px;margin-bottom:var(--mc-markdown-table-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__table td{vertical-align:top}.mc-markdown .mc-markdown__table th,.mc-markdown .mc-markdown__table td{padding:8px;padding:var(--mc-markdown-table-size-padding, 8px);font-weight:400}.mc-markdown .mc-markdown__table>.mc-markdown__thead{border-bottom-style:solid;border-bottom-width:1px;border-bottom-width:var(--mc-markdown-table-size-border-width, 1px);text-align:left}.mc-markdown .mc-markdown__table>.mc-markdown__thead th:first-child{padding-left:0}.mc-markdown .mc-markdown__table>.mc-markdown__thead th:last-child{padding-right:0}.mc-markdown .mc-markdown__table>.mc-markdown__tbody td:first-child{padding-left:0}.mc-markdown .mc-markdown__table>.mc-markdown__tbody td:last-child{padding-right:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdown, decorators: [{
|
86
|
+
type: Component,
|
87
|
+
args: [{ selector: 'mc-markdown', template: `
|
88
|
+
<pre class="markdown-input" #contentWrapper ngPreserveWhitespaces><ng-content></ng-content></pre>
|
89
|
+
<div class="markdown-output" [innerHtml]="resultHtml"></div>
|
90
|
+
`, host: {
|
91
|
+
class: 'mc-markdown'
|
92
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["@charset \"UTF-8\";.mc-markdown{display:block}.mc-markdown .markdown-input{display:none}.mc-markdown .markdown-output{flex:1}.mc-markdown *{-webkit-font-smoothing:antialiased;-webkit-font-smoothing:subpixel-antialiased;font-smooth:never}.mc-markdown .mc-markdown__h1{max-width:650px;max-width:var(--mc-markdown-h1-size-max-width, 650px);margin-top:0;margin-top:var(--mc-markdown-h1-size-margin-top, 0);margin-bottom:16px;margin-bottom:var(--mc-markdown-h1-size-margin-bottom, 16px)}.mc-markdown .mc-markdown__h2{max-width:650px;max-width:var(--mc-markdown-h2-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h2-size-margin-top, 24px);margin-bottom:12px;margin-bottom:var(--mc-markdown-h2-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__h3{max-width:650px;max-width:var(--mc-markdown-h3-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h3-size-margin-top, 24px);margin-bottom:12px;margin-bottom:var(--mc-markdown-h3-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__h4{max-width:650px;max-width:var(--mc-markdown-h4-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h4-size-margin-top, 24px);margin-bottom:12px;margin-bottom:var(--mc-markdown-h4-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__h5{max-width:650px;max-width:var(--mc-markdown-h5-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h5-size-margin-top, 24px);margin-bottom:8px;margin-bottom:var(--mc-markdown-h5-size-margin-bottom, 8px)}.mc-markdown .mc-markdown__h6{max-width:650px;max-width:var(--mc-markdown-h6-size-max-width, 650px);margin-top:24px;margin-top:var(--mc-markdown-h6-size-margin-top, 24px);margin-bottom:8px;margin-bottom:var(--mc-markdown-h6-size-margin-bottom, 8px)}.mc-markdown .mc-markdown__p{max-width:650px;max-width:var(--mc-markdown-p-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-p-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-p-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__ul,.mc-markdown .mc-markdown__ol{max-width:650px;max-width:var(--mc-markdown-list-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-list-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-list-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__ul>li,.mc-markdown .mc-markdown__ol>li{margin-bottom:4px;margin-bottom:var(--mc-markdown-list-size-item-margin-bottom, 4px)}.mc-markdown .mc-markdown__ul{position:relative;list-style:none;padding:0 0 0 24px;padding:var(--mc-markdown-list-size-ul-padding, 0 0 0 24px)}.mc-markdown .mc-markdown__ul>li:before{content:\"\\2014\";display:block;position:absolute;width:24px;text-align:left;left:0}.mc-markdown .mc-markdown__ol{list-style:none;padding:0;counter-reset:li}.mc-markdown .mc-markdown__ol>li:before{content:counter(li) \".\";counter-increment:li;padding-right:4px;padding-right:var(--mc-markdown-list-size-ol-number-padding-right, 4px)}.mc-markdown .mc-markdown__p+.mc-markdown__ul,.mc-markdown .mc-markdown__p+.mc-markdown__ol{margin-top:-8px;margin-top:var(--mc-markdown-list-size-margin-top-after-paragraph, -8px)}.mc-markdown .mc-markdown__blockquote{max-width:650px;max-width:var(--mc-markdown-blockquote-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-blockquote-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-blockquote-size-margin-bottom, 12px);border-left-width:4px;border-left-width:var(--mc-markdown-blockquote-size-line-width, 4px);border-left-style:solid;padding:2px 12px;padding:var(--mc-markdown-blockquote-size-padding, 2px 12px);margin-left:0;margin-right:0}.mc-markdown .mc-markdown__blockquote>.mc-markdown__p{margin-top:0;margin-bottom:0}.mc-markdown .mc-markdown__pre{overflow-x:auto;margin-top:12px;margin-top:var(--mc-markdown-code-size-multiline-margin-top, 12px);margin-bottom:24px;margin-bottom:var(--mc-markdown-code-size-multiline-margin-bottom, 24px);padding:12px 16px;padding:var(--mc-markdown-code-size-multiline-padding, 12px 16px)}.mc-markdown .mc-markdown__pre,.mc-markdown .mc-markdown__p>.mc-markdown__code{border-radius:4px;border-radius:var(--mc-markdown-code-size-border-radius, 4px);border-width:1px;border-width:var(--mc-markdown-code-size-border-width, 1px);border-style:solid}.mc-markdown .mc-markdown__p>.mc-markdown__code{max-width:650px;max-width:var(--mc-markdown-code-size-max-width, 650px);padding:1px 4px;padding:var(--mc-markdown-code-size-inline-padding, 1px 4px)}.mc-markdown .mc-markdown__img{max-width:650px;max-width:var(--mc-markdown-image-size-max-width, 650px);margin-top:12px;margin-top:var(--mc-markdown-image-size-margin-top, 12px);margin-bottom:12px;margin-bottom:var(--mc-markdown-image-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__img+em{display:block;margin-top:-8px;margin-top:var(--mc-markdown-image-size-caption-margin-top, -8px);margin-bottom:24px;margin-bottom:var(--mc-markdown-image-size-caption-margin-bottom, 24px)}.mc-markdown .mc-markdown__hr{border-top:none;border-left:none;border-right:none;border-bottom-style:solid;border-bottom-width:1px;border-bottom-width:var(--mc-markdown-hr-size-width, 1px);margin:24px 0;margin:var(--mc-markdown-hr-size-margin-vertical, 24px) 0}.mc-markdown .mc-markdown__table{max-width:100%;overflow-x:auto;display:inline-block;border-collapse:collapse;margin-bottom:12px;margin-bottom:var(--mc-markdown-table-size-margin-bottom, 12px)}.mc-markdown .mc-markdown__table td{vertical-align:top}.mc-markdown .mc-markdown__table th,.mc-markdown .mc-markdown__table td{padding:8px;padding:var(--mc-markdown-table-size-padding, 8px);font-weight:400}.mc-markdown .mc-markdown__table>.mc-markdown__thead{border-bottom-style:solid;border-bottom-width:1px;border-bottom-width:var(--mc-markdown-table-size-border-width, 1px);text-align:left}.mc-markdown .mc-markdown__table>.mc-markdown__thead th:first-child{padding-left:0}.mc-markdown .mc-markdown__table>.mc-markdown__thead th:last-child{padding-right:0}.mc-markdown .mc-markdown__table>.mc-markdown__tbody td:first-child{padding-left:0}.mc-markdown .mc-markdown__table>.mc-markdown__tbody td:last-child{padding-right:0}\n"] }]
|
93
|
+
}], ctorParameters: function () { return [{ type: McMarkdownService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { contentWrapper: [{
|
94
|
+
type: ViewChild,
|
95
|
+
args: ['contentWrapper']
|
96
|
+
}], markdownText: [{
|
97
|
+
type: Input
|
98
|
+
}] } });
|
99
|
+
|
100
|
+
class McMarkdownModule {
|
101
|
+
}
|
102
|
+
/** @nocollapse */ McMarkdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
103
|
+
/** @nocollapse */ McMarkdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: McMarkdownModule, declarations: [McMarkdown], imports: [CommonModule, A11yModule, McCommonModule, FormsModule], exports: [McMarkdown] });
|
104
|
+
/** @nocollapse */ McMarkdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdownModule, providers: [McMarkdownService], imports: [CommonModule, A11yModule, McCommonModule, FormsModule] });
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McMarkdownModule, decorators: [{
|
106
|
+
type: NgModule,
|
107
|
+
args: [{
|
108
|
+
imports: [CommonModule, A11yModule, McCommonModule, FormsModule],
|
109
|
+
exports: [McMarkdown],
|
110
|
+
declarations: [McMarkdown],
|
111
|
+
providers: [McMarkdownService]
|
112
|
+
}]
|
113
|
+
}] });
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Generated bundle index. Do not edit.
|
117
|
+
*/
|
118
|
+
|
119
|
+
export { McMarkdown, McMarkdownModule, McMarkdownService };
|
120
|
+
//# sourceMappingURL=ptsecurity-mosaic-markdown.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-markdown.mjs","sources":["../../../packages/mosaic/markdown/markdown.service.ts","../../../packages/mosaic/markdown/markdown.component.ts","../../../packages/mosaic/markdown/markdown.module.ts","../../../packages/mosaic/markdown/ptsecurity-mosaic-markdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { marked } from 'marked';\n\n\nconst MARKDOWN_TAGS_TO_CLASS_ALIAS = [\n 'a',\n 'blockquote',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hr',\n 'li',\n 'ol',\n 'table',\n 'tbody',\n 'thead',\n 'td',\n 'tr',\n 'ul',\n 'pre',\n 'code',\n 'img'\n];\n\n// separating th and p to prevent it's conflict with thead and pre\nconst MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS = [\n 'th',\n 'p'\n];\nconst CLASS_PREFIX: string = 'mc-markdown';\n\n@Injectable()\nexport class McMarkdownService {\n parseToHtml(markdown: string): string {\n return this.transform(marked.parse(markdown));\n }\n\n private transform(htmlContent: string): string {\n let transformed = htmlContent;\n\n MARKDOWN_TAGS_TO_CLASS_ALIAS.forEach((tag) => {\n transformed = transformed.replace(\n new RegExp(`<${tag}`, 'g'),\n (_match: string) => `<${tag} class=\"${CLASS_PREFIX}__${tag}\"`\n );\n });\n\n MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS.forEach((tag) => {\n transformed = transformed.replace(\n new RegExp(`<${tag}\\s*>`, 'g'),\n (_match: string) => `<${tag} class=\"${CLASS_PREFIX}__${tag}\">`\n );\n });\n\n return transformed;\n }\n}\n","import {\n Input,\n Component,\n ViewChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterContentChecked,\n ChangeDetectorRef\n} from '@angular/core';\n\nimport { McMarkdownService } from './markdown.service';\n\n\n@Component({\n selector: 'mc-markdown',\n styleUrls: ['./markdown.scss'],\n template: `\n <pre class=\"markdown-input\" #contentWrapper ngPreserveWhitespaces><ng-content></ng-content></pre>\n <div class=\"markdown-output\" [innerHtml]=\"resultHtml\"></div>\n `,\n host: {\n class: 'mc-markdown'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McMarkdown implements AfterContentChecked {\n @ViewChild('contentWrapper') contentWrapper;\n\n @Input()\n get markdownText(): string | undefined {\n return this._markdownText;\n }\n\n set markdownText(value: string | undefined) {\n if (value && this.markdownText !== value) {\n this.resultHtml = this.markdownService.parseToHtml(value);\n }\n\n this._markdownText = value;\n }\n\n private _markdownText: string | undefined;\n\n resultHtml: string;\n\n constructor(\n private markdownService: McMarkdownService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngAfterContentChecked(): void {\n if (this.contentWrapper?.nativeElement.textContent) {\n this.resultHtml = this.markdownService.parseToHtml(this.contentWrapper.nativeElement.textContent);\n this.cdr.detectChanges();\n }\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McMarkdown } from './markdown.component';\nimport { McMarkdownService } from './markdown.service';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, McCommonModule, FormsModule],\n exports: [McMarkdown],\n declarations: [McMarkdown],\n providers: [McMarkdownService]\n})\nexport class McMarkdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.McMarkdownService"],"mappings":"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"}
|