@covalent/flavored-markdown 4.0.0-beta.4 → 4.1.0-develop.11

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 (27) hide show
  1. package/README.md +36 -43
  2. package/covalent-flavored-markdown.d.ts +1 -1
  3. package/esm2020/covalent-flavored-markdown.mjs +2 -2
  4. package/esm2020/lib/cfm-list/cfm-list.component.mjs +60 -0
  5. package/esm2020/lib/flavored-markdown-loader/flavored-markdown-loader.component.mjs +104 -0
  6. package/esm2020/lib/flavored-markdown.component.mjs +501 -0
  7. package/esm2020/lib/flavored-markdown.module.mjs +69 -0
  8. package/esm2020/public_api.mjs +4 -4
  9. package/fesm2015/covalent-flavored-markdown.mjs +80 -49
  10. package/fesm2015/covalent-flavored-markdown.mjs.map +1 -1
  11. package/fesm2020/covalent-flavored-markdown.mjs +76 -49
  12. package/fesm2020/covalent-flavored-markdown.mjs.map +1 -1
  13. package/{cfm-list → lib/cfm-list}/cfm-list.component.d.ts +1 -1
  14. package/{flavored-markdown-loader → lib/flavored-markdown-loader}/flavored-markdown-loader.component.d.ts +5 -5
  15. package/{flavored-markdown.component.d.ts → lib/flavored-markdown.component.d.ts} +2 -2
  16. package/{flavored-markdown.module.d.ts → lib/flavored-markdown.module.d.ts} +0 -0
  17. package/package.json +20 -23
  18. package/public_api.d.ts +3 -3
  19. package/cfm-list/cfm-list.component.scss +0 -0
  20. package/esm2020/cfm-list/cfm-list.component.mjs +0 -60
  21. package/esm2020/flavored-markdown-loader/flavored-markdown-loader.component.mjs +0 -102
  22. package/esm2020/flavored-markdown.component.mjs +0 -476
  23. package/esm2020/flavored-markdown.module.mjs +0 -69
  24. package/esm2020/index.mjs +0 -2
  25. package/flavored-markdown-loader/flavored-markdown-loader.component.scss +0 -28
  26. package/flavored-markdown.component.scss +0 -33
  27. package/index.d.ts +0 -1
@@ -0,0 +1,69 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatTableModule } from '@angular/material/table';
6
+ import { MatSortModule } from '@angular/material/sort';
7
+ import { MatCheckboxModule } from '@angular/material/checkbox';
8
+ import { MatListModule } from '@angular/material/list';
9
+ import { CovalentHighlightModule } from '@covalent/highlight';
10
+ import { CovalentMarkdownModule } from '@covalent/markdown';
11
+ import { TdFlavoredListComponent } from './cfm-list/cfm-list.component';
12
+ import { TdFlavoredMarkdownComponent, TdFlavoredMarkdownContainerDirective, TdFlavoredMarkdownButtonComponent, TdFlavoredMarkdownTableComponent, } from './flavored-markdown.component';
13
+ import { TdFlavoredMarkdownLoaderComponent } from './flavored-markdown-loader/flavored-markdown-loader.component';
14
+ import * as i0 from "@angular/core";
15
+ export class CovalentFlavoredMarkdownModule {
16
+ }
17
+ CovalentFlavoredMarkdownModule.ɵfac = function CovalentFlavoredMarkdownModule_Factory(t) { return new (t || CovalentFlavoredMarkdownModule)(); };
18
+ CovalentFlavoredMarkdownModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentFlavoredMarkdownModule });
19
+ CovalentFlavoredMarkdownModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
20
+ CommonModule,
21
+ MatCheckboxModule,
22
+ MatListModule,
23
+ MatProgressBarModule,
24
+ CovalentHighlightModule,
25
+ CovalentMarkdownModule,
26
+ MatButtonModule,
27
+ MatTableModule,
28
+ MatSortModule,
29
+ ]] });
30
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentFlavoredMarkdownModule, [{
31
+ type: NgModule,
32
+ args: [{
33
+ imports: [
34
+ CommonModule,
35
+ MatCheckboxModule,
36
+ MatListModule,
37
+ MatProgressBarModule,
38
+ CovalentHighlightModule,
39
+ CovalentMarkdownModule,
40
+ MatButtonModule,
41
+ MatTableModule,
42
+ MatSortModule,
43
+ ],
44
+ declarations: [
45
+ TdFlavoredListComponent,
46
+ TdFlavoredMarkdownComponent,
47
+ TdFlavoredMarkdownContainerDirective,
48
+ TdFlavoredMarkdownLoaderComponent,
49
+ TdFlavoredMarkdownButtonComponent,
50
+ TdFlavoredMarkdownTableComponent,
51
+ ],
52
+ exports: [TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent],
53
+ }]
54
+ }], null, null); })();
55
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentFlavoredMarkdownModule, { declarations: [TdFlavoredListComponent,
56
+ TdFlavoredMarkdownComponent,
57
+ TdFlavoredMarkdownContainerDirective,
58
+ TdFlavoredMarkdownLoaderComponent,
59
+ TdFlavoredMarkdownButtonComponent,
60
+ TdFlavoredMarkdownTableComponent], imports: [CommonModule,
61
+ MatCheckboxModule,
62
+ MatListModule,
63
+ MatProgressBarModule,
64
+ CovalentHighlightModule,
65
+ CovalentMarkdownModule,
66
+ MatButtonModule,
67
+ MatTableModule,
68
+ MatSortModule], exports: [TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent] }); })();
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2ZsYXZvcmVkLW1hcmtkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixvQ0FBb0MsRUFDcEMsaUNBQWlDLEVBQ2pDLGdDQUFnQyxHQUNqQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtEQUErRCxDQUFDOztBQXdCbEgsTUFBTSxPQUFPLDhCQUE4Qjs7NEdBQTlCLDhCQUE4QjtnRkFBOUIsOEJBQThCO29GQXJCaEM7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtZQUN0QixlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7U0FDZDt1RkFXVSw4QkFBOEI7Y0F0QjFDLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLGFBQWE7b0JBQ2Isb0JBQW9CO29CQUNwQix1QkFBdUI7b0JBQ3ZCLHNCQUFzQjtvQkFDdEIsZUFBZTtvQkFDZixjQUFjO29CQUNkLGFBQWE7aUJBQ2Q7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHVCQUF1QjtvQkFDdkIsMkJBQTJCO29CQUMzQixvQ0FBb0M7b0JBQ3BDLGlDQUFpQztvQkFDakMsaUNBQWlDO29CQUNqQyxnQ0FBZ0M7aUJBQ2pDO2dCQUNELE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLGlDQUFpQyxDQUFDO2FBQzFFOzt3RkFDWSw4QkFBOEIsbUJBVHZDLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0Isb0NBQW9DO1FBQ3BDLGlDQUFpQztRQUNqQyxpQ0FBaUM7UUFDakMsZ0NBQWdDLGFBaEJoQyxZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QixlQUFlO1FBQ2YsY0FBYztRQUNkLGFBQWEsYUFVTCwyQkFBMkIsRUFBRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgQ292YWxlbnRIaWdobGlnaHRNb2R1bGUgfSBmcm9tICdAY292YWxlbnQvaGlnaGxpZ2h0JztcblxuaW1wb3J0IHsgQ292YWxlbnRNYXJrZG93bk1vZHVsZSB9IGZyb20gJ0Bjb3ZhbGVudC9tYXJrZG93bic7XG5pbXBvcnQgeyBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY2ZtLWxpc3QvY2ZtLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCxcbiAgVGRGbGF2b3JlZE1hcmtkb3duQ29udGFpbmVyRGlyZWN0aXZlLFxuICBUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25Db21wb25lbnQsXG4gIFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50LFxufSBmcm9tICcuL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZEZsYXZvcmVkTWFya2Rvd25Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIENvdmFsZW50SGlnaGxpZ2h0TW9kdWxlLFxuICAgIENvdmFsZW50TWFya2Rvd25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFNvcnRNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmUsXG4gICAgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudCxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25UYWJsZUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1RkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCwgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRGbGF2b3JlZE1hcmtkb3duTW9kdWxlIHt9XG4iXX0=
@@ -1,4 +1,4 @@
1
- export * from './flavored-markdown.component';
2
- export * from './flavored-markdown.module';
3
- export * from './flavored-markdown-loader/flavored-markdown-loader.component';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9mbGF2b3JlZC1tYXJrZG93bi9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtEQUErRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mbGF2b3JlZC1tYXJrZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mbGF2b3JlZC1tYXJrZG93bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudCc7XG4iXX0=
1
+ export * from './lib/flavored-markdown.component';
2
+ export * from './lib/flavored-markdown.module';
3
+ export * from './lib/flavored-markdown-loader/flavored-markdown-loader.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUVBQW1FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mbGF2b3JlZC1tYXJrZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmxhdm9yZWQtbWFya2Rvd24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -63,8 +63,8 @@ class TdFlavoredListComponent {
63
63
  this.dense = false;
64
64
  }
65
65
  }
66
- /** @nocollapse */ /** @nocollapse */ TdFlavoredListComponent.ɵfac = function TdFlavoredListComponent_Factory(t) { return new (t || TdFlavoredListComponent)(); };
67
- /** @nocollapse */ /** @nocollapse */ TdFlavoredListComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdFlavoredListComponent, selectors: [["cfm-list"]], inputs: { lines: "lines", dense: "dense" }, decls: 2, vars: 2, consts: [["ngFor", "", 3, "ngForOf"], ["matLine", ""], ["matLine", "", 4, "ngFor", "ngForOf"], [4, "ngIf"]], template: function TdFlavoredListComponent_Template(rf, ctx) {
66
+ TdFlavoredListComponent.ɵfac = function TdFlavoredListComponent_Factory(t) { return new (t || TdFlavoredListComponent)(); };
67
+ TdFlavoredListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredListComponent, selectors: [["td-cfm-list"]], inputs: { lines: "lines", dense: "dense" }, decls: 2, vars: 2, consts: [["ngFor", "", 3, "ngForOf"], ["matLine", ""], ["matLine", "", 4, "ngFor", "ngForOf"], [4, "ngIf"]], template: function TdFlavoredListComponent_Template(rf, ctx) {
68
68
  if (rf & 1) {
69
69
  i0.ɵɵelementStart(0, "mat-list");
70
70
  i0.ɵɵtemplate(1, TdFlavoredListComponent_ng_template_1_Template, 5, 3, "ng-template", 0);
@@ -79,7 +79,7 @@ class TdFlavoredListComponent {
79
79
  (function () {
80
80
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredListComponent, [{
81
81
  type: Component,
82
- args: [{ selector: 'cfm-list', template: "<mat-list [attr.dense]=\"dense ? true : null\">\n <ng-template let-line let-last=\"last\" ngFor [ngForOf]=\"lines\">\n <mat-list-item>\n <h4 matLine>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matLine>\n {{ subline }}\n </p>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </mat-list-item>\n </ng-template>\n</mat-list>\n", styles: [""] }]
82
+ args: [{ selector: 'td-cfm-list', template: "<mat-list [attr.dense]=\"dense ? true : null\">\n <ng-template let-line let-last=\"last\" ngFor [ngForOf]=\"lines\">\n <mat-list-item>\n <h4 matLine>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matLine>\n {{ subline }}\n </p>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </mat-list-item>\n </ng-template>\n</mat-list>\n", styles: [""] }]
83
83
  }], null, { lines: [{
84
84
  type: Input
85
85
  }], dense: [{
@@ -147,8 +147,8 @@ class TdFlavoredMarkdownTableComponent {
147
147
  this.dataSource.sort = this.sort;
148
148
  }
149
149
  }
150
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownTableComponent.ɵfac = function TdFlavoredMarkdownTableComponent_Factory(t) { return new (t || TdFlavoredMarkdownTableComponent)(); };
151
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownTableComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownTableComponent, selectors: [["ng-component"]], viewQuery: function TdFlavoredMarkdownTableComponent_Query(rf, ctx) {
150
+ TdFlavoredMarkdownTableComponent.ɵfac = function TdFlavoredMarkdownTableComponent_Factory(t) { return new (t || TdFlavoredMarkdownTableComponent)(); };
151
+ TdFlavoredMarkdownTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownTableComponent, selectors: [["ng-component"]], viewQuery: function TdFlavoredMarkdownTableComponent_Query(rf, ctx) {
152
152
  if (rf & 1) {
153
153
  i0.ɵɵviewQuery(MatSort, 5);
154
154
  }
@@ -183,7 +183,9 @@ class TdFlavoredMarkdownTableComponent {
183
183
  <!-- Column Definition -->
184
184
  <ng-template ngFor let-column [ngForOf]="columnDefs">
185
185
  <ng-container [matColumnDef]="column.name">
186
- <mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.label }}</mat-header-cell>
186
+ <mat-header-cell *matHeaderCellDef mat-sort-header>{{
187
+ column.label
188
+ }}</mat-header-cell>
187
189
  <mat-cell *matCellDef="let row">{{ row[column.name] }}</mat-cell>
188
190
  </ng-container>
189
191
  </ng-template>
@@ -213,8 +215,8 @@ class TdFlavoredMarkdownButtonComponent {
213
215
  this.clicked.emit({ text: this.text, data: this.data });
214
216
  }
215
217
  }
216
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownButtonComponent.ɵfac = function TdFlavoredMarkdownButtonComponent_Factory(t) { return new (t || TdFlavoredMarkdownButtonComponent)(); };
217
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownButtonComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownButtonComponent, selectors: [["ng-component"]], hostVars: 2, hostBindings: function TdFlavoredMarkdownButtonComponent_HostBindings(rf, ctx) {
218
+ TdFlavoredMarkdownButtonComponent.ɵfac = function TdFlavoredMarkdownButtonComponent_Factory(t) { return new (t || TdFlavoredMarkdownButtonComponent)(); };
219
+ TdFlavoredMarkdownButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownButtonComponent, selectors: [["ng-component"]], hostVars: 2, hostBindings: function TdFlavoredMarkdownButtonComponent_HostBindings(rf, ctx) {
218
220
  if (rf & 2) {
219
221
  i0.ɵɵstyleProp("display", ctx.display);
220
222
  }
@@ -261,8 +263,8 @@ class TdFlavoredMarkdownContainerDirective {
261
263
  this.viewContainerRef.clear();
262
264
  }
263
265
  }
264
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownContainerDirective.ɵfac = function TdFlavoredMarkdownContainerDirective_Factory(t) { return new (t || TdFlavoredMarkdownContainerDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Renderer2)); };
265
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownContainerDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: TdFlavoredMarkdownContainerDirective, selectors: [["", "tdFlavoredMarkdownContainer", ""]] });
266
+ TdFlavoredMarkdownContainerDirective.ɵfac = function TdFlavoredMarkdownContainerDirective_Factory(t) { return new (t || TdFlavoredMarkdownContainerDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Renderer2)); };
267
+ TdFlavoredMarkdownContainerDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdFlavoredMarkdownContainerDirective, selectors: [["", "tdFlavoredMarkdownContainer", ""]] });
266
268
  (function () {
267
269
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownContainerDirective, [{
268
270
  type: Directive,
@@ -345,7 +347,10 @@ class TdFlavoredMarkdownComponent {
345
347
  }
346
348
  ngOnChanges(changes) {
347
349
  // only anchor changed
348
- if (changes.anchor && !changes.content && !changes.simpleLineBreaks && !changes.hostedUrl) {
350
+ if (changes['anchor'] &&
351
+ !changes['content'] &&
352
+ !changes['simpleLineBreaks'] &&
353
+ !changes['hostedUrl']) {
349
354
  scrollToAnchor(this._elementRef.nativeElement, this._anchor, false);
350
355
  }
351
356
  else {
@@ -353,8 +358,10 @@ class TdFlavoredMarkdownComponent {
353
358
  }
354
359
  }
355
360
  ngAfterViewInit() {
361
+ var _a;
356
362
  if (!this._content) {
357
- this._loadContent(this.container.viewContainerRef.element.nativeElement.textContent);
363
+ this._loadContent((_a = this.container.viewContainerRef.element.nativeElement
364
+ .textContent) !== null && _a !== void 0 ? _a : '');
358
365
  Promise.resolve().then(() => {
359
366
  this._viewInit = true;
360
367
  this._changeDetectorRef.markForCheck();
@@ -362,22 +369,29 @@ class TdFlavoredMarkdownComponent {
362
369
  }
363
370
  }
364
371
  refresh() {
372
+ var _a;
365
373
  if (this._content) {
366
374
  this._loadContent(this._content);
367
375
  }
368
376
  else if (this._viewInit) {
369
- this._loadContent(this.container.viewContainerRef.element.nativeElement.textContent);
377
+ this._loadContent((_a = this.container.viewContainerRef.element.nativeElement
378
+ .textContent) !== null && _a !== void 0 ? _a : '');
370
379
  }
371
380
  this._changeDetectorRef.markForCheck();
372
381
  }
373
382
  _loadContent(markdown) {
374
383
  if (markdown && markdown.trim().length > 0) {
375
384
  this.container.clear();
376
- markdown = markdown.replace(/^(\s|\t)*\n+/g, '').replace(/(\s|\t)*\n+(\s|\t)*$/g, '');
385
+ markdown = markdown
386
+ .replace(/^(\s|\t)*\n+/g, '')
387
+ .replace(/(\s|\t)*\n+(\s|\t)*$/g, '');
377
388
  // Split markdown by line characters
378
389
  let lines = markdown.split('\n');
379
390
  // check how much indentation is used by the first actual markdown line
380
- const firstLineWhitespace = lines[0].match(/^(\s|\t)*/)[0];
391
+ const firstLineWhitespaceMatch = lines[0].match(/^(\s|\t)*/);
392
+ const firstLineWhitespace = firstLineWhitespaceMatch
393
+ ? firstLineWhitespaceMatch[0]
394
+ : null;
381
395
  // Remove all indentation spaces so markdown can be parsed correctly
382
396
  const startingWhitespaceRegex = new RegExp('^' + firstLineWhitespace);
383
397
  lines = lines.map(function (line) {
@@ -411,9 +425,8 @@ class TdFlavoredMarkdownComponent {
411
425
  if (key && markdown.indexOf(key) > -1) {
412
426
  const markdownParts = markdown.split(key);
413
427
  keys.shift();
414
- this._render(markdownParts[0], undefined, undefined);
428
+ this._render(markdownParts[0], '', []);
415
429
  this.container.viewContainerRef.insert(this._components[key].hostView, this.container.viewContainerRef.length);
416
- this._components[key] = undefined;
417
430
  delete this._components[key];
418
431
  this._render(markdownParts[1], keys[0], keys);
419
432
  }
@@ -434,7 +447,11 @@ class TdFlavoredMarkdownComponent {
434
447
  const componentFactory = this._componentFactoryResolver.resolveComponentFactory(type);
435
448
  const componentRef = componentFactory.create(this._injector);
436
449
  replacerFunc(componentRef, ...args);
437
- const key = '[' + componentFactory.selector + '-placeholder-' + componentIndex++ + ']';
450
+ const key = '[' +
451
+ componentFactory.selector +
452
+ '-placeholder-' +
453
+ componentIndex++ +
454
+ ']';
438
455
  this._components[key] = componentRef;
439
456
  return key;
440
457
  });
@@ -445,14 +462,17 @@ class TdFlavoredMarkdownComponent {
445
462
  componentRef.instance.checked = !!checked.trim();
446
463
  componentRef.instance.disabled = true;
447
464
  componentRef.instance.labelPosition = 'after';
448
- this._renderer.setProperty(componentRef.instance._elementRef.nativeElement.getElementsByClassName('mat-checkbox-label')[0], 'innerHTML', label);
465
+ this._renderer.setProperty((componentRef.instance._elementRef.nativeElement).getElementsByClassName('mat-checkbox-label')[0], 'innerHTML', label);
449
466
  });
450
467
  }
451
468
  _replaceButtons(markdown) {
452
- const buttonRegExp = /\[([^\[]+)\](\(#data=(.*)\))/i;
469
+ const buttonRegExp = /\[([^[]+)\](\(#data=(.*)\))/i;
453
470
  const globalButtonRegExp = new RegExp(buttonRegExp.source, buttonRegExp.flags + 'g');
454
471
  return this._replaceComponent(markdown, TdFlavoredMarkdownButtonComponent, globalButtonRegExp, (componentRef, match) => {
455
472
  const matches = buttonRegExp.exec(match);
473
+ if (!matches) {
474
+ return;
475
+ }
456
476
  const text = matches[1];
457
477
  const data = matches[3];
458
478
  componentRef.instance.text = text;
@@ -474,7 +494,9 @@ class TdFlavoredMarkdownComponent {
474
494
  _replaceTables(markdown) {
475
495
  const tableRgx = /^ {0,3}\|?.+\|.+\n[ \t]{0,3}\|?[ \t]*:?[ \t]*(?:-|=){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:-|=){2,}[\s\S]+?(?:\n\n|~0)/gm;
476
496
  return this._replaceComponent(markdown, TdFlavoredMarkdownTableComponent, tableRgx, (componentRef, match) => {
477
- const dataTableLines = match.replace(/(\s|\t)*\n+(\s|\t)*$/g, '').split('\n');
497
+ const dataTableLines = match
498
+ .replace(/(\s|\t)*\n+(\s|\t)*$/g, '')
499
+ .split('\n');
478
500
  const columns = dataTableLines[0]
479
501
  .split('|')
480
502
  .filter((col) => {
@@ -515,7 +537,7 @@ class TdFlavoredMarkdownComponent {
515
537
  componentRef.instance.columnDefs = columns.map((col, index) => {
516
538
  return {
517
539
  label: col,
518
- name: col.toLowerCase().trim(),
540
+ name: col ? col.toLowerCase().trim() : `column ${index}`,
519
541
  numeric: /^--*[ \t]*:[ \t]*$/.test(alignment[index]),
520
542
  };
521
543
  });
@@ -523,16 +545,26 @@ class TdFlavoredMarkdownComponent {
523
545
  });
524
546
  }
525
547
  _replaceLists(markdown) {
526
- const listRegExp = /(?:^|\n)(( *\+)[ |\t](.*)\n)+/g;
548
+ const listRegExp = /(?:^|\n)(( *(\+|-))[ |\t](.*)\n)+/g;
549
+ const listCharRegExp = new RegExp(/\+|-/);
527
550
  return this._replaceComponent(markdown, TdFlavoredListComponent, listRegExp, (componentRef, match) => {
528
- const lineTexts = match.split(new RegExp('\\n {' + (match.indexOf('+') - 1).toString() + '}\\+[ |\\t]'));
551
+ const matchIndex = match.indexOf('+') !== -1 ? match.indexOf('+') : match.indexOf('-');
552
+ const lineTexts = match.split(new RegExp('\\n {' + (matchIndex - 1).toString() + '}(\\+|-)[ |\\t]'));
529
553
  lineTexts.shift();
530
554
  const lines = [];
531
- lineTexts.forEach((text, index) => {
532
- const sublineTexts = text.split(/\n *\+ /);
555
+ lineTexts.forEach((text) => {
556
+ var _a;
557
+ const sublineTexts = text.split(/\n *(\+|-) /);
558
+ const lineText = (_a = sublineTexts.shift()) !== null && _a !== void 0 ? _a : '';
559
+ if (listCharRegExp.test(lineText)) {
560
+ return;
561
+ }
533
562
  lines.push({
534
- line: sublineTexts.shift(),
563
+ line: lineText,
535
564
  sublines: sublineTexts.map((subline) => {
565
+ if (listCharRegExp.test(subline)) {
566
+ return '';
567
+ }
536
568
  return subline.trim();
537
569
  }),
538
570
  });
@@ -541,8 +573,8 @@ class TdFlavoredMarkdownComponent {
541
573
  });
542
574
  }
543
575
  }
544
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownComponent.ɵfac = function TdFlavoredMarkdownComponent_Factory(t) { return new (t || TdFlavoredMarkdownComponent)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef)); };
545
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownComponent, selectors: [["td-flavored-markdown"]], viewQuery: function TdFlavoredMarkdownComponent_Query(rf, ctx) {
576
+ TdFlavoredMarkdownComponent.ɵfac = function TdFlavoredMarkdownComponent_Factory(t) { return new (t || TdFlavoredMarkdownComponent)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef)); };
577
+ TdFlavoredMarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownComponent, selectors: [["td-flavored-markdown"]], viewQuery: function TdFlavoredMarkdownComponent_Query(rf, ctx) {
546
578
  if (rf & 1) {
547
579
  i0.ɵɵviewQuery(TdFlavoredMarkdownContainerDirective, 7);
548
580
  }
@@ -557,23 +589,19 @@ class TdFlavoredMarkdownComponent {
557
589
  i0.ɵɵprojection(1);
558
590
  i0.ɵɵelementEnd();
559
591
  }
560
- }, directives: [TdFlavoredMarkdownContainerDirective], styles: ["[_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h1:first-of-type, [_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h2:first-of-type{margin-top:0}[_nghost-%COMP%] td-data-table, [_nghost-%COMP%] mat-checkbox{display:block}[_nghost-%COMP%] td-data-table, [_nghost-%COMP%] td-highlight, [_nghost-%COMP%] mat-checkbox:last-of-type{margin-bottom:16px}[_nghost-%COMP%] :not(pre)>code{font-family:Menlo,Monaco,Andale Mono,lucida console,Courier New,monospace;padding-left:2px;padding-right:2px}[_nghost-%COMP%] td-highlight{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}"], changeDetection: 0 });
592
+ }, directives: [TdFlavoredMarkdownContainerDirective], styles: ["[_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h1:first-of-type, [_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h2:first-of-type{margin-top:0}[_nghost-%COMP%] mat-checkbox{display:block}[_nghost-%COMP%] td-highlight, [_nghost-%COMP%] mat-table, [_nghost-%COMP%] mat-checkbox:last-of-type{margin-bottom:16px}[_nghost-%COMP%] :not(pre)>code{font-family:Menlo,Monaco,Andale Mono,lucida console,Courier New,monospace;padding-left:2px;padding-right:2px}[_nghost-%COMP%] td-highlight{display:flex;flex-direction:row;justify-content:space-between}"], changeDetection: 0 });
561
593
  (function () {
562
594
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownComponent, [{
563
595
  type: Component,
564
- args: [{ selector: 'td-flavored-markdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div tdFlavoredMarkdownContainer>\n <ng-content></ng-content>\n</div>\n", styles: [":host ::ng-deep td-markdown:first-of-type>div:first-of-type>h1:first-of-type,:host ::ng-deep td-markdown:first-of-type>div:first-of-type>h2:first-of-type{margin-top:0}:host ::ng-deep td-data-table,:host ::ng-deep mat-checkbox{display:block}:host ::ng-deep td-data-table,:host ::ng-deep td-highlight,:host ::ng-deep mat-checkbox:last-of-type{margin-bottom:16px}:host ::ng-deep :not(pre)>code{font-family:Menlo,Monaco,Andale Mono,lucida console,Courier New,monospace;padding-left:2px;padding-right:2px}:host ::ng-deep td-highlight{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}\n"] }]
596
+ args: [{ selector: 'td-flavored-markdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div tdFlavoredMarkdownContainer>\n <ng-content></ng-content>\n</div>\n", styles: [":host ::ng-deep td-markdown:first-of-type>div:first-of-type>h1:first-of-type,:host ::ng-deep td-markdown:first-of-type>div:first-of-type>h2:first-of-type{margin-top:0}:host ::ng-deep mat-checkbox{display:block}:host ::ng-deep td-highlight,:host ::ng-deep mat-table,:host ::ng-deep mat-checkbox:last-of-type{margin-bottom:16px}:host ::ng-deep :not(pre)>code{font-family:Menlo,Monaco,Andale Mono,lucida console,Courier New,monospace;padding-left:2px;padding-right:2px}:host ::ng-deep td-highlight{display:flex;flex-direction:row;justify-content:space-between}\n"] }]
565
597
  }], function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i0.ElementRef }]; }, { content: [{
566
- type: Input,
567
- args: ['content']
598
+ type: Input
568
599
  }], simpleLineBreaks: [{
569
- type: Input,
570
- args: ['simpleLineBreaks']
600
+ type: Input
571
601
  }], hostedUrl: [{
572
- type: Input,
573
- args: ['hostedUrl']
602
+ type: Input
574
603
  }], anchor: [{
575
- type: Input,
576
- args: ['anchor']
604
+ type: Input
577
605
  }], copyCodeToClipboard: [{
578
606
  type: Input
579
607
  }], copyCodeTooltips: [{
@@ -605,7 +633,9 @@ function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template(rf, c
605
633
  }
606
634
  if (rf & 2) {
607
635
  const ctx_r1 = i0.ɵɵnextContext();
608
- i0.ɵɵproperty("content", ctx_r1.content)("hostedUrl", ctx_r1.url)("anchor", ctx_r1.anchor)("copyCodeToClipboard", ctx_r1.copyCodeToClipboard)("copyCodeTooltips", ctx_r1.copyCodeTooltips);
636
+ let tmp_1_0;
637
+ let tmp_2_0;
638
+ i0.ɵɵproperty("content", ctx_r1.content)("hostedUrl", (tmp_1_0 = ctx_r1.url) !== null && tmp_1_0 !== undefined ? tmp_1_0 : "")("anchor", (tmp_2_0 = ctx_r1.anchor) !== null && tmp_2_0 !== undefined ? tmp_2_0 : "")("copyCodeToClipboard", ctx_r1.copyCodeToClipboard)("copyCodeTooltips", ctx_r1.copyCodeTooltips);
609
639
  }
610
640
  }
611
641
  // TODO: make a td-markdown-loader component
@@ -640,16 +670,17 @@ class TdFlavoredMarkdownLoaderComponent {
640
670
  this.loading = true;
641
671
  }
642
672
  ngOnChanges(changes) {
643
- if (changes.url || changes.httpOptions) {
673
+ if (changes['url'] || changes['httpOptions']) {
644
674
  this.loadMarkdown();
645
675
  }
646
676
  }
647
677
  loadMarkdown() {
678
+ var _a;
648
679
  return __awaiter(this, void 0, void 0, function* () {
649
680
  this.loading = true;
650
681
  this._changeDetectorRef.markForCheck();
651
682
  try {
652
- this.content = yield this._markdownUrlLoaderService.load(this.url, this.httpOptions);
683
+ this.content = yield this._markdownUrlLoaderService.load((_a = this.url) !== null && _a !== void 0 ? _a : '', this.httpOptions);
653
684
  }
654
685
  catch (error) {
655
686
  this.loadFailed.emit(error);
@@ -661,8 +692,8 @@ class TdFlavoredMarkdownLoaderComponent {
661
692
  });
662
693
  }
663
694
  }
664
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownLoaderComponent.ɵfac = function TdFlavoredMarkdownLoaderComponent_Factory(t) { return new (t || TdFlavoredMarkdownLoaderComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$2.TdMarkdownLoaderService)); };
665
- /** @nocollapse */ /** @nocollapse */ TdFlavoredMarkdownLoaderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownLoaderComponent, selectors: [["td-flavored-markdown-loader"]], inputs: { url: "url", httpOptions: "httpOptions", anchor: "anchor", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips" }, outputs: { contentReady: "contentReady", loadFailed: "loadFailed", buttonClicked: "buttonClicked" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [["mode", "indeterminate", "color", "accent", "class", "sticky", 3, "ngClass", 4, "ngIf"], [3, "content", "hostedUrl", "anchor", "copyCodeToClipboard", "copyCodeTooltips", "contentReady", "buttonClicked", 4, "ngIf"], ["mode", "indeterminate", "color", "accent", 1, "sticky", 3, "ngClass"], [3, "content", "hostedUrl", "anchor", "copyCodeToClipboard", "copyCodeTooltips", "contentReady", "buttonClicked"]], template: function TdFlavoredMarkdownLoaderComponent_Template(rf, ctx) {
695
+ TdFlavoredMarkdownLoaderComponent.ɵfac = function TdFlavoredMarkdownLoaderComponent_Factory(t) { return new (t || TdFlavoredMarkdownLoaderComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$2.TdMarkdownLoaderService)); };
696
+ TdFlavoredMarkdownLoaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownLoaderComponent, selectors: [["td-flavored-markdown-loader"]], inputs: { url: "url", httpOptions: "httpOptions", anchor: "anchor", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips" }, outputs: { contentReady: "contentReady", loadFailed: "loadFailed", buttonClicked: "buttonClicked" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [["mode", "indeterminate", "color", "accent", "class", "sticky", 3, "ngClass", 4, "ngIf"], [3, "content", "hostedUrl", "anchor", "copyCodeToClipboard", "copyCodeTooltips", "contentReady", "buttonClicked", 4, "ngIf"], ["mode", "indeterminate", "color", "accent", 1, "sticky", 3, "ngClass"], [3, "content", "hostedUrl", "anchor", "copyCodeToClipboard", "copyCodeTooltips", "contentReady", "buttonClicked"]], template: function TdFlavoredMarkdownLoaderComponent_Template(rf, ctx) {
666
697
  if (rf & 1) {
667
698
  i0.ɵɵtemplate(0, TdFlavoredMarkdownLoaderComponent_mat_progress_bar_0_Template, 1, 1, "mat-progress-bar", 0);
668
699
  i0.ɵɵtemplate(1, TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template, 1, 5, "td-flavored-markdown", 1);
@@ -672,11 +703,11 @@ class TdFlavoredMarkdownLoaderComponent {
672
703
  i0.ɵɵadvance(1);
673
704
  i0.ɵɵproperty("ngIf", !ctx.loading);
674
705
  }
675
- }, directives: [i2.NgIf, i3$1.MatProgressBar, i2.NgClass, TdFlavoredMarkdownComponent], styles: ["[_nghost-%COMP%]{display:block}.sticky[_ngcontent-%COMP%]{position:absolute;top:0}.delay[_ngcontent-%COMP%]{-webkit-animation:delay-animation;animation:delay-animation;-webkit-animation-duration:.6s;animation-duration:.6s}@-webkit-keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}"], changeDetection: 0 });
706
+ }, directives: [i2.NgIf, i3$1.MatProgressBar, i2.NgClass, TdFlavoredMarkdownComponent], styles: ["[_nghost-%COMP%]{display:block}.sticky[_ngcontent-%COMP%]{position:absolute;top:0}.delay[_ngcontent-%COMP%]{animation:delay-animation;animation-duration:.6s}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}"], changeDetection: 0 });
676
707
  (function () {
677
708
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownLoaderComponent, [{
678
709
  type: Component,
679
- args: [{ selector: 'td-flavored-markdown-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-progress-bar\n [ngClass]=\"'delay'\"\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n class=\"sticky\"\n></mat-progress-bar>\n<td-flavored-markdown\n *ngIf=\"!loading\"\n [content]=\"content\"\n [hostedUrl]=\"url\"\n [anchor]=\"anchor\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (contentReady)=\"contentReady.emit()\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n></td-flavored-markdown>\n", styles: [":host{display:block}.sticky{position:absolute;top:0}.delay{-webkit-animation:delay-animation;animation:delay-animation;-webkit-animation-duration:.6s;animation-duration:.6s}@-webkit-keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}\n"] }]
710
+ args: [{ selector: 'td-flavored-markdown-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-progress-bar\n [ngClass]=\"'delay'\"\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n class=\"sticky\"\n></mat-progress-bar>\n<td-flavored-markdown\n *ngIf=\"!loading\"\n [content]=\"content\"\n [hostedUrl]=\"url ?? ''\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (contentReady)=\"contentReady.emit()\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n></td-flavored-markdown>\n", styles: [":host{display:block}.sticky{position:absolute;top:0}.delay{animation:delay-animation;animation-duration:.6s}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}\n"] }]
680
711
  }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$2.TdMarkdownLoaderService }]; }, { url: [{
681
712
  type: Input
682
713
  }], httpOptions: [{
@@ -698,9 +729,9 @@ class TdFlavoredMarkdownLoaderComponent {
698
729
 
699
730
  class CovalentFlavoredMarkdownModule {
700
731
  }
701
- /** @nocollapse */ /** @nocollapse */ CovalentFlavoredMarkdownModule.ɵfac = function CovalentFlavoredMarkdownModule_Factory(t) { return new (t || CovalentFlavoredMarkdownModule)(); };
702
- /** @nocollapse */ /** @nocollapse */ CovalentFlavoredMarkdownModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: CovalentFlavoredMarkdownModule });
703
- /** @nocollapse */ /** @nocollapse */ CovalentFlavoredMarkdownModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[
732
+ CovalentFlavoredMarkdownModule.ɵfac = function CovalentFlavoredMarkdownModule_Factory(t) { return new (t || CovalentFlavoredMarkdownModule)(); };
733
+ CovalentFlavoredMarkdownModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentFlavoredMarkdownModule });
734
+ CovalentFlavoredMarkdownModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
704
735
  CommonModule,
705
736
  MatCheckboxModule,
706
737
  MatListModule,
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-flavored-markdown.mjs","sources":["../../../../src/platform/flavored-markdown/cfm-list/cfm-list.component.html","../../../../src/platform/flavored-markdown/cfm-list/cfm-list.component.ts","../../../../src/platform/flavored-markdown/flavored-markdown.component.ts","../../../../src/platform/flavored-markdown/flavored-markdown.component.html","../../../../src/platform/flavored-markdown/flavored-markdown-loader/flavored-markdown-loader.component.html","../../../../src/platform/flavored-markdown/flavored-markdown-loader/flavored-markdown-loader.component.ts","../../../../src/platform/flavored-markdown/flavored-markdown.module.ts","../../../../src/platform/flavored-markdown/covalent-flavored-markdown.ts"],"sourcesContent":["<mat-list [attr.dense]=\"dense ? true : null\">\n <ng-template let-line let-last=\"last\" ngFor [ngForOf]=\"lines\">\n <mat-list-item>\n <h4 matLine>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matLine>\n {{ subline }}\n </p>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </mat-list-item>\n </ng-template>\n</mat-list>\n","import { Component, Input } from '@angular/core';\n\nexport interface IFlavoredListItem {\n line: string;\n sublines?: string[];\n}\n\n@Component({\n selector: 'cfm-list',\n styleUrls: ['./cfm-list.component.scss'],\n templateUrl: './cfm-list.component.html',\n})\nexport class TdFlavoredListComponent {\n @Input() lines: IFlavoredListItem[];\n @Input() dense: boolean = false;\n}\n","import {\n Component,\n Directive,\n AfterViewInit,\n Input,\n Renderer2,\n Type,\n ComponentFactory,\n ChangeDetectorRef,\n EventEmitter,\n Output,\n ViewContainerRef,\n ComponentFactoryResolver,\n Injector,\n ComponentRef,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n HostBinding,\n OnInit,\n} from '@angular/core';\n\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { TdFlavoredListComponent, IFlavoredListItem } from './cfm-list/cfm-list.component';\nimport { TdHighlightComponent, ICopyCodeTooltips } from '@covalent/highlight';\nimport { TdMarkdownComponent, scrollToAnchor } from '@covalent/markdown';\n\nexport interface ITdFlavoredMarkdownButtonClickEvent {\n text: string;\n data: string;\n}\n\nexport interface ITdFlavoredMarkDownTableColumn {\n label: string;\n name: string;\n numeric: boolean;\n}\n\n@Component({\n template: `\n <mat-table [dataSource]=\"dataSource\" matSort>\n <!-- Column Definition -->\n <ng-template ngFor let-column [ngForOf]=\"columnDefs\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.label }}</mat-header-cell>\n <mat-cell *matCellDef=\"let row\">{{ row[column.name] }}</mat-cell>\n </ng-container>\n </ng-template>\n <!-- Header and Row Declarations -->\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\"></mat-row>\n </mat-table>\n `,\n})\nexport class TdFlavoredMarkdownTableComponent implements OnInit, AfterViewInit {\n @Input() columnDefs: ITdFlavoredMarkDownTableColumn[] = [];\n @Input() data: unknown[];\n @ViewChild(MatSort) sort: MatSort;\n\n displayedColumns: string[];\n dataSource: MatTableDataSource<unknown>;\n\n ngOnInit(): void {\n this.displayedColumns = this.columnDefs.map((c: ITdFlavoredMarkDownTableColumn) => c.name);\n this.dataSource = new MatTableDataSource(this.data);\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n }\n}\n\n@Component({\n template: `\n <button mat-raised-button (click)=\"emitClick()\">\n {{ text }}\n </button>\n `,\n})\nexport class TdFlavoredMarkdownButtonComponent {\n @HostBinding('style.display') display: string = 'inline-block';\n @Input() text: string = '';\n @Input() data: string = '';\n @Output()\n clicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent> = new EventEmitter<ITdFlavoredMarkdownButtonClickEvent>();\n emitClick(): void {\n this.clicked.emit({ text: this.text, data: this.data });\n }\n}\n\n@Directive({\n selector: '[tdFlavoredMarkdownContainer]',\n})\nexport class TdFlavoredMarkdownContainerDirective {\n constructor(public viewContainerRef: ViewContainerRef, private _renderer: Renderer2) {}\n\n clear(): void {\n this._renderer.setProperty(this.viewContainerRef.element.nativeElement, 'innerHTML', '');\n this.viewContainerRef.clear();\n }\n}\n\nexport type IReplacerFunc<T> = (componentRef: ComponentRef<T>, ...args: any[]) => void;\n\n@Component({\n selector: 'td-flavored-markdown',\n styleUrls: ['./flavored-markdown.component.scss'],\n templateUrl: './flavored-markdown.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdFlavoredMarkdownComponent implements AfterViewInit, OnChanges {\n private _content: string;\n private _simpleLineBreaks: boolean = false;\n private _hostedUrl: string;\n private _anchor: string;\n\n private _components: {} = {};\n private _viewInit: boolean = false;\n /**\n * content?: string\n *\n * Markdown format content to be parsed as material/covalent markup.\n *\n * e.g. README.md content.\n */\n @Input('content')\n set content(content: string) {\n this._content = content;\n }\n\n /**\n * simpleLineBreaks?: string\n *\n * Sets whether newline characters inside paragraphs and spans are parsed as <br/>.\n * Defaults to false.\n */\n @Input('simpleLineBreaks')\n set simpleLineBreaks(simpleLineBreaks: boolean) {\n this._simpleLineBreaks = simpleLineBreaks;\n }\n\n /**\n * hostedUrl?: string\n *\n * If markdown contains relative paths, this is required to generate correct urls\n *\n */\n @Input('hostedUrl')\n set hostedUrl(hostedUrl: string) {\n this._hostedUrl = hostedUrl;\n }\n\n /**\n * anchor?: string\n *\n * Anchor to jump to\n *\n */\n @Input('anchor')\n set anchor(anchor: string) {\n this._anchor = anchor;\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n /**\n * contentReady?: function\n * Event emitted after the markdown content rendering is finished.\n */\n @Output() contentReady: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /**\n * buttonClicked?: ITdFlavoredMarkdownButtonClickEvent\n * Event emitted when a button is clicked\n * Is an object containing text and data of button\n */\n @Output()\n buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent> = new EventEmitter<ITdFlavoredMarkdownButtonClickEvent>();\n\n @ViewChild(TdFlavoredMarkdownContainerDirective, { static: true }) container: TdFlavoredMarkdownContainerDirective;\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef,\n private _injector: Injector,\n private _elementRef: ElementRef,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n // only anchor changed\n if (changes.anchor && !changes.content && !changes.simpleLineBreaks && !changes.hostedUrl) {\n scrollToAnchor(this._elementRef.nativeElement, this._anchor, false);\n } else {\n this.refresh();\n }\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent((<HTMLElement>this.container.viewContainerRef.element.nativeElement).textContent);\n Promise.resolve().then(() => {\n this._viewInit = true;\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n refresh(): void {\n if (this._content) {\n this._loadContent(this._content);\n } else if (this._viewInit) {\n this._loadContent((<HTMLElement>this.container.viewContainerRef.element.nativeElement).textContent);\n }\n this._changeDetectorRef.markForCheck();\n }\n\n private _loadContent(markdown: string): void {\n if (markdown && markdown.trim().length > 0) {\n this.container.clear();\n markdown = markdown.replace(/^(\\s|\\t)*\\n+/g, '').replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markdown by line characters\n let lines: string[] = markdown.split('\\n');\n\n // check how much indentation is used by the first actual markdown line\n const firstLineWhitespace: string = lines[0].match(/^(\\s|\\t)*/)[0];\n\n // Remove all indentation spaces so markdown can be parsed correctly\n const startingWhitespaceRegex: RegExp = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line.replace(startingWhitespaceRegex, '');\n });\n\n // Join lines again with line characters\n markdown = [...lines, '', ''].join('\\n');\n markdown = this._replaceCodeBlocks(markdown);\n markdown = this._replaceCheckbox(markdown);\n markdown = this._replaceTables(markdown);\n markdown = this._replaceLists(markdown);\n markdown = this._replaceButtons(markdown);\n const keys: string[] = Object.keys(this._components);\n // need to sort the placeholders in order of encounter in markdown content\n keys.sort((compA: string, compB: string) => {\n return markdown.indexOf(compA) > markdown.indexOf(compB) ? 1 : -1;\n });\n this._render(markdown, keys[0], keys);\n // TODO: timeout required since resizing of html elements occurs which causes a change in the scroll position\n setTimeout(() => scrollToAnchor(this._elementRef.nativeElement, this._anchor, false), 250);\n this.contentReady.emit();\n Promise.resolve().then(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n private _render(markdown: string, key: string, keys: string[]): void {\n if (!markdown) {\n return;\n }\n if (key && markdown.indexOf(key) > -1) {\n const markdownParts: string[] = markdown.split(key);\n keys.shift();\n this._render(markdownParts[0], undefined, undefined);\n this.container.viewContainerRef.insert(this._components[key].hostView, this.container.viewContainerRef.length);\n this._components[key] = undefined;\n delete this._components[key];\n this._render(markdownParts[1], keys[0], keys);\n } else {\n const contentRef: ComponentRef<TdMarkdownComponent> = this._componentFactoryResolver\n .resolveComponentFactory(TdMarkdownComponent)\n .create(this._injector);\n contentRef.instance.content = markdown;\n contentRef.instance.hostedUrl = this._hostedUrl;\n contentRef.instance.simpleLineBreaks = this._simpleLineBreaks;\n contentRef.instance.refresh();\n this.container.viewContainerRef.insert(contentRef.hostView, this.container.viewContainerRef.length);\n }\n }\n\n private _replaceComponent<T>(\n markdown: string,\n type: Type<T>,\n regExp: RegExp,\n replacerFunc: IReplacerFunc<T>,\n ): string {\n let componentIndex: number = 0;\n return markdown.replace(regExp, (...args: any[]) => {\n const componentFactory: ComponentFactory<T> = this._componentFactoryResolver.resolveComponentFactory(type);\n const componentRef: ComponentRef<T> = componentFactory.create(this._injector);\n replacerFunc(componentRef, ...args);\n const key: string = '[' + componentFactory.selector + '-placeholder-' + componentIndex++ + ']';\n this._components[key] = componentRef;\n return key;\n });\n }\n\n private _replaceCheckbox(markdown: string): string {\n const checkboxRegExp: RegExp = /(?:^|\\n)- \\[(x| )\\](.*)/gi;\n return this._replaceComponent(\n markdown,\n MatCheckbox,\n checkboxRegExp,\n (componentRef: ComponentRef<MatCheckbox>, match: string, checked: string, label: string) => {\n componentRef.instance.checked = !!checked.trim();\n componentRef.instance.disabled = true;\n componentRef.instance.labelPosition = 'after';\n this._renderer.setProperty(\n (<HTMLElement>componentRef.instance._elementRef.nativeElement).getElementsByClassName(\n 'mat-checkbox-label',\n )[0],\n 'innerHTML',\n label,\n );\n },\n );\n }\n\n private _replaceButtons(markdown: string): string {\n const buttonRegExp: RegExp = /\\[([^\\[]+)\\](\\(#data=(.*)\\))/i;\n const globalButtonRegExp: RegExp = new RegExp(buttonRegExp.source, buttonRegExp.flags + 'g');\n return this._replaceComponent(\n markdown,\n TdFlavoredMarkdownButtonComponent,\n globalButtonRegExp,\n (componentRef: ComponentRef<TdFlavoredMarkdownButtonComponent>, match: string) => {\n const matches: RegExpExecArray = buttonRegExp.exec(match);\n const text: string = matches[1];\n const data: string = matches[3];\n componentRef.instance.text = text;\n componentRef.instance.data = data;\n componentRef.instance.clicked.subscribe((clickEvent: ITdFlavoredMarkdownButtonClickEvent) =>\n this.buttonClicked.emit(clickEvent),\n );\n },\n );\n }\n\n private _replaceCodeBlocks(markdown: string): string {\n const codeBlockRegExp: RegExp = /(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g;\n return this._replaceComponent(\n markdown,\n TdHighlightComponent,\n codeBlockRegExp,\n (componentRef: ComponentRef<TdHighlightComponent>, match: string, language: string, codeblock: string) => {\n if (language) {\n componentRef.instance.codeLang = language;\n }\n componentRef.instance.copyCodeToClipboard = this.copyCodeToClipboard;\n componentRef.instance.copyCodeTooltips = this.copyCodeTooltips;\n componentRef.instance.content = codeblock;\n },\n );\n }\n\n private _replaceTables(markdown: string): string {\n const tableRgx: RegExp =\n /^ {0,3}\\|?.+\\|.+\\n[ \\t]{0,3}\\|?[ \\t]*:?[ \\t]*(?:-|=){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*:?[ \\t]*(?:-|=){2,}[\\s\\S]+?(?:\\n\\n|~0)/gm;\n return this._replaceComponent(\n markdown,\n TdFlavoredMarkdownTableComponent,\n tableRgx,\n (componentRef: ComponentRef<TdFlavoredMarkdownTableComponent>, match: string) => {\n const dataTableLines: string[] = match.replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '').split('\\n');\n const columns: string[] = dataTableLines[0]\n .split('|')\n .filter((col: string) => {\n return col;\n })\n .map((s: string) => {\n return s.trim();\n });\n const alignment: string[] = dataTableLines[1]\n .split('|')\n .filter((v: string) => {\n return v;\n })\n .map((s: string) => {\n return s.trim();\n });\n\n const data: any[] = [];\n for (let i: number = 2; i < dataTableLines.length; i++) {\n const rowSplit: string[] = dataTableLines[i]\n .split('|')\n .filter((cell: string) => {\n return cell;\n })\n .map((s: string) => {\n return s.trim();\n });\n const row: any = {};\n columns.forEach((col: string, index: number) => {\n const rowSplitCell: string = rowSplit[index];\n if (rowSplitCell) {\n row[col.toLowerCase().trim()] = rowSplitCell.replace(/`(.*)`/, (m: string, value: string) => {\n return value;\n });\n }\n });\n data.push(row);\n }\n componentRef.instance.columnDefs = columns.map((col: string, index: number) => {\n return {\n label: col,\n name: col.toLowerCase().trim(),\n numeric: /^--*[ \\t]*:[ \\t]*$/.test(alignment[index]),\n };\n });\n componentRef.instance.data = data;\n },\n );\n }\n\n private _replaceLists(markdown: string): string {\n const listRegExp: RegExp = /(?:^|\\n)(( *\\+)[ |\\t](.*)\\n)+/g;\n return this._replaceComponent(\n markdown,\n TdFlavoredListComponent,\n listRegExp,\n (componentRef: ComponentRef<TdFlavoredListComponent>, match: string) => {\n const lineTexts: string[] = match.split(\n new RegExp('\\\\n {' + (match.indexOf('+') - 1).toString() + '}\\\\+[ |\\\\t]'),\n );\n lineTexts.shift();\n const lines: IFlavoredListItem[] = [];\n lineTexts.forEach((text: string, index: number) => {\n const sublineTexts: string[] = text.split(/\\n *\\+ /);\n lines.push({\n line: sublineTexts.shift(),\n sublines: sublineTexts.map((subline: string) => {\n return subline.trim();\n }),\n });\n });\n componentRef.instance.lines = lines;\n },\n );\n }\n}\n","<div tdFlavoredMarkdownContainer>\n <ng-content></ng-content>\n</div>\n","<mat-progress-bar\n [ngClass]=\"'delay'\"\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n class=\"sticky\"\n></mat-progress-bar>\n<td-flavored-markdown\n *ngIf=\"!loading\"\n [content]=\"content\"\n [hostedUrl]=\"url\"\n [anchor]=\"anchor\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (contentReady)=\"contentReady.emit()\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n></td-flavored-markdown>\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n SimpleChanges,\n OnChanges,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { TdMarkdownLoaderService } from '@covalent/markdown';\nimport { ITdFlavoredMarkdownButtonClickEvent } from '../flavored-markdown.component';\nimport { ICopyCodeTooltips } from '@covalent/highlight';\n\n// TODO: make a td-markdown-loader component\n\n@Component({\n selector: 'td-flavored-markdown-loader',\n styleUrls: ['./flavored-markdown-loader.component.scss'],\n templateUrl: './flavored-markdown-loader.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdFlavoredMarkdownLoaderComponent implements OnChanges {\n /**\n * url: string\n * The url of the markdown file.\n */\n @Input() url: string;\n\n /**\n * httpOptions: object\n * HTTP options that can be part of the request.\n */\n @Input() httpOptions: object;\n\n /**\n * anchor: string\n * Anchor to jump to.\n */\n @Input() anchor: string;\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n /**\n * contentReady: void\n * Emitted when markdown rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter();\n\n /**\n * loadFailed: Error\n * Emitted when loading of markdown file fails.\n */\n @Output() loadFailed: EventEmitter<Error> = new EventEmitter();\n\n @Output() buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent> = new EventEmitter();\n\n content: string;\n loading: boolean = true;\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _markdownUrlLoaderService: TdMarkdownLoaderService,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.url || changes.httpOptions) {\n this.loadMarkdown();\n }\n }\n\n async loadMarkdown(): Promise<void> {\n this.loading = true;\n this._changeDetectorRef.markForCheck();\n try {\n this.content = await this._markdownUrlLoaderService.load(this.url, this.httpOptions);\n } catch (error) {\n this.loadFailed.emit(error);\n } finally {\n this.loading = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatListModule } from '@angular/material/list';\nimport { CovalentHighlightModule } from '@covalent/highlight';\nimport { CovalentMarkdownModule } from '@covalent/markdown';\n\nimport { TdFlavoredListComponent } from './cfm-list/cfm-list.component';\nimport {\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownContainerDirective,\n TdFlavoredMarkdownButtonComponent,\n TdFlavoredMarkdownTableComponent,\n} from './flavored-markdown.component';\nimport { TdFlavoredMarkdownLoaderComponent } from './flavored-markdown-loader/flavored-markdown-loader.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCheckboxModule,\n MatListModule,\n MatProgressBarModule,\n CovalentHighlightModule,\n CovalentMarkdownModule,\n MatButtonModule,\n MatTableModule,\n MatSortModule,\n ],\n declarations: [\n TdFlavoredListComponent,\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownContainerDirective,\n TdFlavoredMarkdownLoaderComponent,\n TdFlavoredMarkdownButtonComponent,\n TdFlavoredMarkdownTableComponent,\n ],\n exports: [TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent],\n})\nexport class CovalentFlavoredMarkdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-flavored-markdown.mjs","sources":["../../../../libs/markdown-flavored/src/lib/cfm-list/cfm-list.component.html","../../../../libs/markdown-flavored/src/lib/cfm-list/cfm-list.component.ts","../../../../libs/markdown-flavored/src/lib/flavored-markdown.component.ts","../../../../libs/markdown-flavored/src/lib/flavored-markdown.component.html","../../../../libs/markdown-flavored/src/lib/flavored-markdown-loader/flavored-markdown-loader.component.html","../../../../libs/markdown-flavored/src/lib/flavored-markdown-loader/flavored-markdown-loader.component.ts","../../../../libs/markdown-flavored/src/lib/flavored-markdown.module.ts","../../../../libs/markdown-flavored/src/covalent-flavored-markdown.ts"],"sourcesContent":["<mat-list [attr.dense]=\"dense ? true : null\">\n <ng-template let-line let-last=\"last\" ngFor [ngForOf]=\"lines\">\n <mat-list-item>\n <h4 matLine>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matLine>\n {{ subline }}\n </p>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </mat-list-item>\n </ng-template>\n</mat-list>\n","import { Component, Input } from '@angular/core';\n\nexport interface IFlavoredListItem {\n line: string;\n sublines?: string[];\n}\n\n@Component({\n selector: 'td-cfm-list',\n styleUrls: ['./cfm-list.component.scss'],\n templateUrl: './cfm-list.component.html',\n})\nexport class TdFlavoredListComponent {\n @Input() lines!: IFlavoredListItem[];\n @Input() dense = false;\n}\n","import {\n Component,\n Directive,\n AfterViewInit,\n Input,\n Renderer2,\n Type,\n ComponentFactory,\n ChangeDetectorRef,\n EventEmitter,\n Output,\n ViewContainerRef,\n ComponentFactoryResolver,\n Injector,\n ComponentRef,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n HostBinding,\n OnInit,\n} from '@angular/core';\n\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport {\n TdFlavoredListComponent,\n IFlavoredListItem,\n} from './cfm-list/cfm-list.component';\nimport { TdHighlightComponent, ICopyCodeTooltips } from '@covalent/highlight';\n\nimport { TdMarkdownComponent, scrollToAnchor } from '@covalent/markdown';\n\nexport interface ITdFlavoredMarkdownButtonClickEvent {\n text: string;\n data: string;\n}\n\nexport interface ITdFlavoredMarkDownTableColumn {\n label: string;\n name: string;\n numeric: boolean;\n}\n\n@Component({\n template: `\n <mat-table [dataSource]=\"dataSource\" matSort>\n <!-- Column Definition -->\n <ng-template ngFor let-column [ngForOf]=\"columnDefs\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{\n column.label\n }}</mat-header-cell>\n <mat-cell *matCellDef=\"let row\">{{ row[column.name] }}</mat-cell>\n </ng-container>\n </ng-template>\n <!-- Header and Row Declarations -->\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\"></mat-row>\n </mat-table>\n `,\n})\nexport class TdFlavoredMarkdownTableComponent implements OnInit, AfterViewInit {\n @Input() columnDefs: ITdFlavoredMarkDownTableColumn[] = [];\n @Input() data!: unknown[];\n @ViewChild(MatSort) sort!: MatSort;\n\n displayedColumns!: string[];\n dataSource!: MatTableDataSource<unknown>;\n\n ngOnInit(): void {\n this.displayedColumns = this.columnDefs.map(\n (c: ITdFlavoredMarkDownTableColumn) => c.name\n );\n this.dataSource = new MatTableDataSource(this.data);\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n }\n}\n\n@Component({\n template: `\n <button mat-raised-button (click)=\"emitClick()\">\n {{ text }}\n </button>\n `,\n})\nexport class TdFlavoredMarkdownButtonComponent {\n @HostBinding('style.display') display = 'inline-block';\n @Input() text = '';\n @Input() data = '';\n @Output()\n clicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent> = new EventEmitter<ITdFlavoredMarkdownButtonClickEvent>();\n emitClick(): void {\n this.clicked.emit({ text: this.text, data: this.data });\n }\n}\n\n@Directive({\n selector: '[tdFlavoredMarkdownContainer]',\n})\nexport class TdFlavoredMarkdownContainerDirective {\n constructor(\n public viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2\n ) {}\n\n clear(): void {\n this._renderer.setProperty(\n this.viewContainerRef.element.nativeElement,\n 'innerHTML',\n ''\n );\n this.viewContainerRef.clear();\n }\n}\n\nexport type IReplacerFunc<T> = (\n componentRef: ComponentRef<T>,\n ...args: any[]\n) => void;\n\n@Component({\n selector: 'td-flavored-markdown',\n styleUrls: ['./flavored-markdown.component.scss'],\n templateUrl: './flavored-markdown.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdFlavoredMarkdownComponent implements AfterViewInit, OnChanges {\n private _content!: string;\n private _simpleLineBreaks = false;\n private _hostedUrl!: string;\n private _anchor!: string;\n\n private _components: { [key: string]: ComponentRef<unknown> } = {};\n private _viewInit = false;\n /**\n * content?: string\n *\n * Markdown format content to be parsed as material/covalent markup.\n *\n * e.g. README.md content.\n */\n @Input()\n set content(content: string) {\n this._content = content;\n }\n\n /**\n * simpleLineBreaks?: string\n *\n * Sets whether newline characters inside paragraphs and spans are parsed as <br/>.\n * Defaults to false.\n */\n @Input()\n set simpleLineBreaks(simpleLineBreaks: boolean) {\n this._simpleLineBreaks = simpleLineBreaks;\n }\n\n /**\n * hostedUrl?: string\n *\n * If markdown contains relative paths, this is required to generate correct urls\n *\n */\n @Input()\n set hostedUrl(hostedUrl: string) {\n this._hostedUrl = hostedUrl;\n }\n\n /**\n * anchor?: string\n *\n * Anchor to jump to\n *\n */\n @Input()\n set anchor(anchor: string) {\n this._anchor = anchor;\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n @Input() copyCodeToClipboard? = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips?: ICopyCodeTooltips = {};\n /**\n * contentReady?: function\n * Event emitted after the markdown content rendering is finished.\n */\n @Output() contentReady: EventEmitter<undefined> =\n new EventEmitter<undefined>();\n\n /**\n * buttonClicked?: ITdFlavoredMarkdownButtonClickEvent\n * Event emitted when a button is clicked\n * Is an object containing text and data of button\n */\n @Output()\n buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent> = new EventEmitter<ITdFlavoredMarkdownButtonClickEvent>();\n\n @ViewChild(TdFlavoredMarkdownContainerDirective, { static: true })\n container!: TdFlavoredMarkdownContainerDirective;\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef,\n private _injector: Injector,\n private _elementRef: ElementRef\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n // only anchor changed\n if (\n changes['anchor'] &&\n !changes['content'] &&\n !changes['simpleLineBreaks'] &&\n !changes['hostedUrl']\n ) {\n scrollToAnchor(this._elementRef.nativeElement, this._anchor, false);\n } else {\n this.refresh();\n }\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent(\n (<HTMLElement>this.container.viewContainerRef.element.nativeElement)\n .textContent ?? ''\n );\n Promise.resolve().then(() => {\n this._viewInit = true;\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n refresh(): void {\n if (this._content) {\n this._loadContent(this._content);\n } else if (this._viewInit) {\n this._loadContent(\n (<HTMLElement>this.container.viewContainerRef.element.nativeElement)\n .textContent ?? ''\n );\n }\n this._changeDetectorRef.markForCheck();\n }\n\n private _loadContent(markdown: string): void {\n if (markdown && markdown.trim().length > 0) {\n this.container.clear();\n markdown = markdown\n .replace(/^(\\s|\\t)*\\n+/g, '')\n .replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markdown by line characters\n let lines: string[] = markdown.split('\\n');\n\n // check how much indentation is used by the first actual markdown line\n const firstLineWhitespaceMatch = lines[0].match(/^(\\s|\\t)*/);\n const firstLineWhitespace = firstLineWhitespaceMatch\n ? firstLineWhitespaceMatch[0]\n : null;\n\n // Remove all indentation spaces so markdown can be parsed correctly\n const startingWhitespaceRegex = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line.replace(startingWhitespaceRegex, '');\n });\n\n // Join lines again with line characters\n markdown = [...lines, '', ''].join('\\n');\n markdown = this._replaceCodeBlocks(markdown);\n markdown = this._replaceCheckbox(markdown);\n markdown = this._replaceTables(markdown);\n markdown = this._replaceLists(markdown);\n markdown = this._replaceButtons(markdown);\n const keys: string[] = Object.keys(this._components);\n // need to sort the placeholders in order of encounter in markdown content\n keys.sort((compA: string, compB: string) => {\n return markdown.indexOf(compA) > markdown.indexOf(compB) ? 1 : -1;\n });\n this._render(markdown, keys[0], keys);\n // TODO: timeout required since resizing of html elements occurs which causes a change in the scroll position\n setTimeout(\n () =>\n scrollToAnchor(this._elementRef.nativeElement, this._anchor, false),\n 250\n );\n this.contentReady.emit();\n Promise.resolve().then(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n private _render(markdown: string, key: string, keys: string[]): void {\n if (!markdown) {\n return;\n }\n if (key && markdown.indexOf(key) > -1) {\n const markdownParts: string[] = markdown.split(key);\n keys.shift();\n this._render(markdownParts[0], '', []);\n this.container.viewContainerRef.insert(\n this._components[key].hostView,\n this.container.viewContainerRef.length\n );\n delete this._components[key];\n this._render(markdownParts[1], keys[0], keys);\n } else {\n const contentRef: ComponentRef<TdMarkdownComponent> =\n this._componentFactoryResolver\n .resolveComponentFactory(TdMarkdownComponent)\n .create(this._injector);\n contentRef.instance.content = markdown;\n contentRef.instance.hostedUrl = this._hostedUrl;\n contentRef.instance.simpleLineBreaks = this._simpleLineBreaks;\n contentRef.instance.refresh();\n this.container.viewContainerRef.insert(\n contentRef.hostView,\n this.container.viewContainerRef.length\n );\n }\n }\n\n private _replaceComponent<T>(\n markdown: string,\n type: Type<T>,\n regExp: RegExp,\n replacerFunc: IReplacerFunc<T>\n ): string {\n let componentIndex = 0;\n return markdown.replace(regExp, (...args: any[]) => {\n const componentFactory: ComponentFactory<T> =\n this._componentFactoryResolver.resolveComponentFactory(type);\n const componentRef: ComponentRef<T> = componentFactory.create(\n this._injector\n );\n replacerFunc(componentRef, ...args);\n const key: string =\n '[' +\n componentFactory.selector +\n '-placeholder-' +\n componentIndex++ +\n ']';\n this._components[key] = componentRef;\n return key;\n });\n }\n\n private _replaceCheckbox(markdown: string): string {\n const checkboxRegExp = /(?:^|\\n)- \\[(x| )\\](.*)/gi;\n return this._replaceComponent(\n markdown,\n MatCheckbox,\n checkboxRegExp,\n (\n componentRef: ComponentRef<MatCheckbox>,\n match: string,\n checked: string,\n label: string\n ) => {\n componentRef.instance.checked = !!checked.trim();\n componentRef.instance.disabled = true;\n componentRef.instance.labelPosition = 'after';\n this._renderer.setProperty(\n (<HTMLElement>(\n componentRef.instance._elementRef.nativeElement\n )).getElementsByClassName('mat-checkbox-label')[0],\n 'innerHTML',\n label\n );\n }\n );\n }\n\n private _replaceButtons(markdown: string): string {\n const buttonRegExp = /\\[([^[]+)\\](\\(#data=(.*)\\))/i;\n const globalButtonRegExp = new RegExp(\n buttonRegExp.source,\n buttonRegExp.flags + 'g'\n );\n return this._replaceComponent(\n markdown,\n TdFlavoredMarkdownButtonComponent,\n globalButtonRegExp,\n (\n componentRef: ComponentRef<TdFlavoredMarkdownButtonComponent>,\n match: string\n ) => {\n const matches = buttonRegExp.exec(match);\n if (!matches) {\n return;\n }\n const text: string = matches[1];\n const data: string = matches[3];\n componentRef.instance.text = text;\n componentRef.instance.data = data;\n componentRef.instance.clicked.subscribe(\n (clickEvent: ITdFlavoredMarkdownButtonClickEvent) =>\n this.buttonClicked.emit(clickEvent)\n );\n }\n );\n }\n\n private _replaceCodeBlocks(markdown: string): string {\n const codeBlockRegExp = /(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g;\n return this._replaceComponent(\n markdown,\n TdHighlightComponent,\n codeBlockRegExp,\n (\n componentRef: ComponentRef<TdHighlightComponent>,\n match: string,\n language: string,\n codeblock: string\n ) => {\n if (language) {\n componentRef.instance.codeLang = language;\n }\n componentRef.instance.copyCodeToClipboard = this.copyCodeToClipboard;\n componentRef.instance.copyCodeTooltips = this.copyCodeTooltips;\n componentRef.instance.content = codeblock;\n }\n );\n }\n\n private _replaceTables(markdown: string): string {\n const tableRgx =\n /^ {0,3}\\|?.+\\|.+\\n[ \\t]{0,3}\\|?[ \\t]*:?[ \\t]*(?:-|=){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*:?[ \\t]*(?:-|=){2,}[\\s\\S]+?(?:\\n\\n|~0)/gm;\n return this._replaceComponent(\n markdown,\n TdFlavoredMarkdownTableComponent,\n tableRgx,\n (\n componentRef: ComponentRef<TdFlavoredMarkdownTableComponent>,\n match: string\n ) => {\n const dataTableLines: string[] = match\n .replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '')\n .split('\\n');\n const columns: string[] = dataTableLines[0]\n .split('|')\n .filter((col: string) => {\n return col;\n })\n .map((s: string) => {\n return s.trim();\n });\n const alignment: string[] = dataTableLines[1]\n .split('|')\n .filter((v: string) => {\n return v;\n })\n .map((s: string) => {\n return s.trim();\n });\n\n const data: any[] = [];\n for (let i = 2; i < dataTableLines.length; i++) {\n const rowSplit: string[] = dataTableLines[i]\n .split('|')\n .filter((cell: string) => {\n return cell;\n })\n .map((s: string) => {\n return s.trim();\n });\n const row: any = {};\n columns.forEach((col: string, index: number) => {\n const rowSplitCell: string = rowSplit[index];\n if (rowSplitCell) {\n row[col.toLowerCase().trim()] = rowSplitCell.replace(\n /`(.*)`/,\n (m: string, value: string) => {\n return value;\n }\n );\n }\n });\n data.push(row);\n }\n componentRef.instance.columnDefs = columns.map(\n (col: string, index: number) => {\n return {\n label: col,\n name: col ? col.toLowerCase().trim() : `column ${index}`,\n numeric: /^--*[ \\t]*:[ \\t]*$/.test(alignment[index]),\n };\n }\n );\n componentRef.instance.data = data;\n }\n );\n }\n\n private _replaceLists(markdown: string): string {\n const listRegExp = /(?:^|\\n)(( *(\\+|-))[ |\\t](.*)\\n)+/g;\n const listCharRegExp = new RegExp(/\\+|-/);\n return this._replaceComponent(\n markdown,\n TdFlavoredListComponent,\n listRegExp,\n (componentRef: ComponentRef<TdFlavoredListComponent>, match: string) => {\n const matchIndex =\n match.indexOf('+') !== -1 ? match.indexOf('+') : match.indexOf('-');\n const lineTexts: string[] = match.split(\n new RegExp('\\\\n {' + (matchIndex - 1).toString() + '}(\\\\+|-)[ |\\\\t]')\n );\n lineTexts.shift();\n const lines: IFlavoredListItem[] = [];\n lineTexts.forEach((text: string) => {\n const sublineTexts: string[] = text.split(/\\n *(\\+|-) /);\n const lineText = sublineTexts.shift() ?? '';\n\n if (listCharRegExp.test(lineText)) {\n return;\n }\n\n lines.push({\n line: lineText,\n sublines: sublineTexts.map((subline: string) => {\n if (listCharRegExp.test(subline)) {\n return '';\n }\n return subline.trim();\n }),\n });\n });\n\n componentRef.instance.lines = lines;\n }\n );\n }\n}\n","<div tdFlavoredMarkdownContainer>\n <ng-content></ng-content>\n</div>\n","<mat-progress-bar\n [ngClass]=\"'delay'\"\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n class=\"sticky\"\n></mat-progress-bar>\n<td-flavored-markdown\n *ngIf=\"!loading\"\n [content]=\"content\"\n [hostedUrl]=\"url ?? ''\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (contentReady)=\"contentReady.emit()\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n></td-flavored-markdown>\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n SimpleChanges,\n OnChanges,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { TdMarkdownLoaderService } from '@covalent/markdown';\nimport { ITdFlavoredMarkdownButtonClickEvent } from '../flavored-markdown.component';\nimport { ICopyCodeTooltips } from '@covalent/highlight';\n\n// TODO: make a td-markdown-loader component\n\n@Component({\n selector: 'td-flavored-markdown-loader',\n styleUrls: ['./flavored-markdown-loader.component.scss'],\n templateUrl: './flavored-markdown-loader.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdFlavoredMarkdownLoaderComponent implements OnChanges {\n /**\n * url: string\n * The url of the markdown file.\n */\n @Input() url?: string;\n\n /**\n * httpOptions: object\n * HTTP options that can be part of the request.\n */\n @Input() httpOptions?: object;\n\n /**\n * anchor: string\n * Anchor to jump to.\n */\n @Input() anchor?: string;\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n @Input() copyCodeToClipboard? = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips?: ICopyCodeTooltips = {};\n\n /**\n * contentReady: void\n * Emitted when markdown rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter();\n\n /**\n * loadFailed: Error\n * Emitted when loading of markdown file fails.\n */\n @Output() loadFailed: EventEmitter<Error> = new EventEmitter();\n\n @Output() buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent> =\n new EventEmitter();\n\n content!: string;\n loading = true;\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _markdownUrlLoaderService: TdMarkdownLoaderService\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['url'] || changes['httpOptions']) {\n this.loadMarkdown();\n }\n }\n\n async loadMarkdown(): Promise<void> {\n this.loading = true;\n this._changeDetectorRef.markForCheck();\n try {\n this.content = await this._markdownUrlLoaderService.load(\n this.url ?? '',\n this.httpOptions\n );\n } catch (error) {\n this.loadFailed.emit(error as Error);\n } finally {\n this.loading = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatListModule } from '@angular/material/list';\nimport { CovalentHighlightModule } from '@covalent/highlight';\n\nimport { CovalentMarkdownModule } from '@covalent/markdown';\nimport { TdFlavoredListComponent } from './cfm-list/cfm-list.component';\nimport {\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownContainerDirective,\n TdFlavoredMarkdownButtonComponent,\n TdFlavoredMarkdownTableComponent,\n} from './flavored-markdown.component';\nimport { TdFlavoredMarkdownLoaderComponent } from './flavored-markdown-loader/flavored-markdown-loader.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCheckboxModule,\n MatListModule,\n MatProgressBarModule,\n CovalentHighlightModule,\n CovalentMarkdownModule,\n MatButtonModule,\n MatTableModule,\n MatSortModule,\n ],\n declarations: [\n TdFlavoredListComponent,\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownContainerDirective,\n TdFlavoredMarkdownLoaderComponent,\n TdFlavoredMarkdownButtonComponent,\n TdFlavoredMarkdownTableComponent,\n ],\n exports: [TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent],\n})\nexport class CovalentFlavoredMarkdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}