@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.
Files changed (39) hide show
  1. package/_theming.scss +7407 -90
  2. package/_visual.scss +3032 -6
  3. package/design-tokens/legacy-2017/tokens/components/markdown.json5 +294 -0
  4. package/design-tokens/legacy-2017/tokens/properties/md-typography.json5 +103 -0
  5. package/design-tokens/legacy-2017/tokens.d.ts +204 -0
  6. package/design-tokens/pt-2022/tokens/components/markdown.json5 +294 -0
  7. package/design-tokens/pt-2022/tokens/properties/md-typography.json5 +103 -0
  8. package/design-tokens/pt-2022/tokens.d.ts +204 -0
  9. package/design-tokens/style-dictionary/build.js +2 -0
  10. package/design-tokens/style-dictionary/configs/scss.js +6 -0
  11. package/design-tokens/style-dictionary/filters/color.js +3 -1
  12. package/design-tokens/style-dictionary/filters/md-typography.js +7 -0
  13. package/design-tokens/style-dictionary/transformGroups/scss.js +1 -0
  14. package/design-tokens/style-dictionary/transforms/attribute/md-typography.js +9 -0
  15. package/esm2020/design-tokens/legacy-2017/tokens.mjs +205 -1
  16. package/esm2020/design-tokens/pt-2022/tokens.mjs +205 -1
  17. package/esm2020/markdown/index.mjs +2 -0
  18. package/esm2020/markdown/markdown.component.mjs +45 -0
  19. package/esm2020/markdown/markdown.module.mjs +23 -0
  20. package/esm2020/markdown/markdown.service.mjs +52 -0
  21. package/esm2020/markdown/ptsecurity-mosaic-markdown.mjs +5 -0
  22. package/esm2020/markdown/public-api.mjs +4 -0
  23. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +613 -1
  24. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  25. package/fesm2015/ptsecurity-mosaic-markdown.mjs +120 -0
  26. package/fesm2015/ptsecurity-mosaic-markdown.mjs.map +1 -0
  27. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +613 -1
  28. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  29. package/fesm2020/ptsecurity-mosaic-markdown.mjs +119 -0
  30. package/fesm2020/ptsecurity-mosaic-markdown.mjs.map +1 -0
  31. package/markdown/README.md +0 -0
  32. package/markdown/index.d.ts +1 -0
  33. package/markdown/markdown.component.d.ts +16 -0
  34. package/markdown/markdown.module.d.ts +11 -0
  35. package/markdown/markdown.service.d.ts +7 -0
  36. package/markdown/public-api.d.ts +3 -0
  37. package/package.json +12 -4
  38. package/prebuilt-themes/dark-theme.css +1 -1
  39. 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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"}