@covalent/flavored-markdown 10.4.0-beta.2 → 11.0.0-beta.1

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, ViewChild, EventEmitter, HostBinding, Output, Directive, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { Component, Input, ViewChild, EventEmitter, Output, HostBinding, Directive, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
3
  import { MatCheckbox } from '@angular/material/checkbox';
4
4
  import { MatSort } from '@angular/material/sort';
5
5
  import * as i2$1 from '@angular/material/table';
@@ -8,14 +8,13 @@ import { Subject } from 'rxjs';
8
8
  import { takeUntil } from 'rxjs/operators';
9
9
  import * as i1 from '@angular/common';
10
10
  import { CommonModule } from '@angular/common';
11
- import * as i3 from '@angular/material/divider';
12
11
  import { MatDividerModule } from '@angular/material/divider';
13
12
  import * as i2 from '@angular/material/list';
14
13
  import { MatListModule } from '@angular/material/list';
15
14
  import { TdHighlightComponent } from '@covalent/highlight';
16
15
  import * as i1$1 from '@covalent/markdown';
17
16
  import { TdMarkdownComponent, scrollToAnchor } from '@covalent/markdown';
18
- import * as i3$1 from '@angular/material/button';
17
+ import * as i3 from '@angular/material/button';
19
18
  import { MatButtonModule } from '@angular/material/button';
20
19
  import { MatProgressBar } from '@angular/material/progress-bar';
21
20
 
@@ -60,7 +59,7 @@ class TdFlavoredListComponent {
60
59
  i0.ɵɵattribute("dense", ctx.dense ? true : null);
61
60
  i0.ɵɵadvance();
62
61
  i0.ɵɵproperty("ngForOf", ctx.lines);
63
- } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, MatListModule, i2.MatList, i2.MatListItem, i3.MatDivider, i2.MatListItemLine, i2.MatListItemTitle, MatDividerModule], encapsulation: 2 });
62
+ } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, MatListModule, i2.MatList, i2.MatListItem, i2.MatDivider, i2.MatListItemLine, i2.MatListItemTitle, MatDividerModule], encapsulation: 2 });
64
63
  }
65
64
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredListComponent, [{
66
65
  type: Component,
@@ -212,7 +211,7 @@ class TdFlavoredMarkdownButtonComponent {
212
211
  } if (rf & 2) {
213
212
  i0.ɵɵadvance();
214
213
  i0.ɵɵtextInterpolate1(" ", ctx.text, " ");
215
- } }, dependencies: [MatButtonModule, i3$1.MatButton], encapsulation: 2 });
214
+ } }, dependencies: [MatButtonModule, i3.MatButton], encapsulation: 2 });
216
215
  }
217
216
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownButtonComponent, [{
218
217
  type: Component,
@@ -668,10 +667,8 @@ function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template(rf, c
668
667
  i0.ɵɵlistener("contentReady", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_contentReady_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.contentReady.emit()); })("buttonClicked", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.buttonClicked.emit($event)); });
669
668
  i0.ɵɵelementEnd();
670
669
  } if (rf & 2) {
671
- let tmp_2_0;
672
- let tmp_3_0;
673
670
  const ctx_r1 = i0.ɵɵnextContext();
674
- i0.ɵɵproperty("content", ctx_r1.content)("hostedUrl", (tmp_2_0 = ctx_r1.url) !== null && tmp_2_0 !== undefined ? tmp_2_0 : "")("anchor", (tmp_3_0 = ctx_r1.anchor) !== null && tmp_3_0 !== undefined ? tmp_3_0 : "")("copyCodeToClipboard", ctx_r1.copyCodeToClipboard)("copyCodeTooltips", ctx_r1.copyCodeTooltips)("useCfmList", ctx_r1.useCfmList);
671
+ i0.ɵɵproperty("content", ctx_r1.content)("hostedUrl", ctx_r1.url ?? "")("anchor", ctx_r1.anchor ?? "")("copyCodeToClipboard", ctx_r1.copyCodeToClipboard)("copyCodeTooltips", ctx_r1.copyCodeTooltips)("useCfmList", ctx_r1.useCfmList);
675
672
  } }
676
673
  // TODO: make a td-markdown-loader component
677
674
  class TdFlavoredMarkdownLoaderComponent {
@@ -1 +1 @@
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 matListItemTitle>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matListItemLine>\n {{ subline }}\n </p>\n </mat-list-item>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </ng-template>\n</mat-list>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatListModule } from '@angular/material/list';\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 imports: [CommonModule, MatListModule, MatDividerModule],\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 OnDestroy,\n} from '@angular/core';\n\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n TdFlavoredListComponent,\n IFlavoredListItem,\n} from './cfm-list/cfm-list.component';\nimport {\n TdHighlightComponent,\n ICopyCodeTooltips,\n IRawToggleLabels,\n} from '@covalent/highlight';\n\nimport { TdMarkdownComponent, scrollToAnchor } from '@covalent/markdown';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\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 centered: 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\n [ngClass]=\"{\n 'align-right': column.numeric,\n 'align-center': column.centered\n }\"\n *matHeaderCellDef\n mat-sort-header\n >{{ column.label }}</mat-header-cell\n >\n <mat-cell\n *matCellDef=\"let row\"\n [ngClass]=\"{\n 'align-right': column.numeric,\n 'align-center': column.centered\n }\"\n ><td-markdown>{{ row[column.name] }}</td-markdown></mat-cell\n >\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 imports: [CommonModule, MatTableModule, TdMarkdownComponent],\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 // Check if the first column is empty\n const isFirstColumnEmpty =\n this.columnDefs.length > 0 &&\n this.columnDefs[0].label.trim() === '' && // Check if the header cell is empty\n this.data.every((row: any) => !row[this.columnDefs[0].name]); // Check if all cells in the first column are empty\n\n // If the first column is empty, remove it\n if (isFirstColumnEmpty) {\n this.columnDefs.shift(); // Remove the first column definition\n }\n\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 imports: [MatButtonModule],\n})\nexport class TdFlavoredMarkdownButtonComponent {\n @HostBinding('style.display') display = 'inline-block';\n @Input() text = '';\n @Input() data = '';\n @Output()\n clicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent> =\n 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 imports: [TdFlavoredMarkdownContainerDirective],\n})\nexport class TdFlavoredMarkdownComponent\n implements AfterViewInit, OnChanges, OnDestroy\n{\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 /**\n * toggleRawCode?: boolean\n *\n * Display button to toggle raw code view\n */\n @Input() toggleRawCode = false;\n\n /**\n * rawToggleLabels?: IRawToggleLabels\n *\n * Labels for raw code toggle button\n */\n @Input() rawToggleLabels?: IRawToggleLabels = {};\n\n /**\n * useCfmList?: boolean = false;\n * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.\n */\n @Input() useCfmList? = false;\n\n /**\n * The file extensions to monitor for in anchor tags. If an anchor's `href` ends\n * with this extension, an event will be triggered insetad of performing the default action.\n * Example values: \".ipynb\", \".zip\", \".docx\"\n */\n @Input()\n fileLinkExtensions?: string[];\n\n /**\n * Event emitted when an anchor tag with an `href` matching the specified\n * file link extension is clicked. The emitted value is the `href` of the clicked anchor.\n */\n @Output() fileLinkClicked = new EventEmitter<URL>();\n\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> =\n new EventEmitter<ITdFlavoredMarkdownButtonClickEvent>();\n\n @ViewChild(TdFlavoredMarkdownContainerDirective, { static: true })\n container!: TdFlavoredMarkdownContainerDirective;\n\n private _destroy$ = new Subject<void>();\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 ngOnDestroy(): void {\n this._destroy$.next();\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 // Remove all \\r characters\n const startingWhitespaceRegex = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line.replace(startingWhitespaceRegex, '').replaceAll('\\r', '');\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._replaceButtons(markdown);\n\n if (this.useCfmList) {\n markdown = this._replaceLists(markdown);\n }\n\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.fileLinkExtensions = this.fileLinkExtensions;\n contentRef.instance.fileLinkClicked\n .pipe(takeUntil(this._destroy$))\n .subscribe((url: URL) => {\n this.fileLinkClicked.emit(url);\n });\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.ariaLabel = label;\n componentRef.instance.labelPosition = 'after';\n this._renderer.setProperty(\n (<HTMLElement>(\n componentRef.instance._elementRef.nativeElement\n )).getElementsByTagName('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\n .pipe(takeUntil(this._destroy$))\n .subscribe((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.toggleRawButton = this.toggleRawCode;\n componentRef.instance.rawToggleLabels = this.rawToggleLabels;\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 centered: /^:--*[ \\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 start = /(\\+|\\*|-)/.exec(match);\n const matchIndex = start !== null ? start.index : 1;\n\n const lineTexts: string[] = match.split(\n new RegExp(\n '\\\\n {' + (matchIndex - 1).toString() + '}(\\\\+|\\\\*|\\\\-)[ |\\\\t]'\n )\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\n .map((subline: string) => {\n if (listCharRegExp.test(subline)) {\n return '';\n }\n return subline.trim();\n })\n .filter((line) => !!line),\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 [useCfmList]=\"useCfmList\"\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, TdFlavoredMarkdownComponent } from '../flavored-markdown.component';\nimport { ICopyCodeTooltips } from '@covalent/highlight';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { CommonModule } from '@angular/common';\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 imports: [CommonModule, MatProgressBar, TdFlavoredMarkdownComponent]\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 * useCfmList?: boolean = false;\n * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.\n */\n @Input() useCfmList? = false;\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 { 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/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n imports: [\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":["i2","i3","i1"],"mappings":"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"}
1
+ {"version":3,"file":"covalent-flavored-markdown.mjs","sources":["../tmp-esm2022/lib/cfm-list/cfm-list.component.js","../tmp-esm2022/lib/flavored-markdown.component.js","../tmp-esm2022/lib/flavored-markdown-loader/flavored-markdown-loader.component.js","../tmp-esm2022/lib/flavored-markdown.module.js","../tmp-esm2022/covalent-flavored-markdown.js"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatListModule } from '@angular/material/list';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/list\";\nfunction TdFlavoredListComponent_ng_template_1_p_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"p\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const subline_r1 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", subline_r1, \" \");\n} }\nfunction TdFlavoredListComponent_ng_template_1_mat_divider_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"mat-divider\");\n} }\nfunction TdFlavoredListComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-list-item\")(1, \"h4\", 1);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, TdFlavoredListComponent_ng_template_1_p_3_Template, 2, 1, \"p\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, TdFlavoredListComponent_ng_template_1_mat_divider_4_Template, 1, 0, \"mat-divider\", 3);\n} if (rf & 2) {\n const line_r2 = ctx.$implicit;\n const last_r3 = ctx.last;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", line_r2.line, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", line_r2.sublines);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !last_r3);\n} }\nexport class TdFlavoredListComponent {\n lines;\n dense = false;\n static ɵfac = function TdFlavoredListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFlavoredListComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredListComponent, selectors: [[\"td-cfm-list\"]], inputs: { lines: \"lines\", dense: \"dense\" }, decls: 2, vars: 2, consts: [[\"ngFor\", \"\", 3, \"ngForOf\"], [\"matListItemTitle\", \"\"], [\"matListItemLine\", \"\", 4, \"ngFor\", \"ngForOf\"], [4, \"ngIf\"], [\"matListItemLine\", \"\"]], template: function TdFlavoredListComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-list\");\n i0.ɵɵtemplate(1, TdFlavoredListComponent_ng_template_1_Template, 5, 3, \"ng-template\", 0);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵattribute(\"dense\", ctx.dense ? true : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.lines);\n } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, MatListModule, i2.MatList, i2.MatListItem, i2.MatDivider, i2.MatListItemLine, i2.MatListItemTitle, MatDividerModule], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredListComponent, [{\n type: Component,\n args: [{ selector: 'td-cfm-list', imports: [CommonModule, MatListModule, MatDividerModule], 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 matListItemTitle>\\n {{ line.line }}\\n </h4>\\n <p *ngFor=\\\"let subline of line.sublines\\\" matListItemLine>\\n {{ subline }}\\n </p>\\n </mat-list-item>\\n <mat-divider *ngIf=\\\"!last\\\"></mat-divider>\\n </ng-template>\\n</mat-list>\\n\" }]\n }], null, { lines: [{\n type: Input\n }], dense: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdFlavoredListComponent, { className: \"TdFlavoredListComponent\", filePath: \"lib/cfm-list/cfm-list.component.ts\", lineNumber: 17 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2NmbS1saXN0L2NmbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9jZm0tbGlzdC9jZm0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztJQ0dqRCw0QkFBeUQ7SUFDdkQsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUsMkNBQ0Y7OztJQUVGLDhCQUF5Qzs7O0lBUHZDLEFBREYscUNBQWUsWUFDUTtJQUNuQixZQUNGO0lBQUEsaUJBQUs7SUFDTCxrRkFBeUQ7SUFHM0QsaUJBQWdCO0lBQ2hCLHNHQUEyQjs7OztJQU52QixlQUNGO0lBREUsNkNBQ0Y7SUFDdUIsY0FBZ0I7SUFBaEIsMENBQWdCO0lBSTNCLGNBQVc7SUFBWCwrQkFBVzs7QURNN0IsTUFBTSxPQUFPLHVCQUF1QjtJQUN6QixLQUFLLENBQXVCO0lBQzVCLEtBQUssR0FBRyxLQUFLLENBQUM7aUhBRlosdUJBQXVCOzZEQUF2Qix1QkFBdUI7WUNoQnBDLGdDQUE2QztZQUMzQyx3RkFBOEQ7WUFXaEUsaUJBQVc7OztZQVhtQyxjQUFpQjtZQUFqQixtQ0FBaUI7NEJEYW5ELFlBQVksdUJBQUUsYUFBYSxzRkFBRSxnQkFBZ0I7O2lGQUU1Qyx1QkFBdUI7Y0FObkMsU0FBUzsyQkFDRSxhQUFhLFdBR2QsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDO2dCQUcvQyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7O2tGQUZLLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZsYXZvcmVkTGlzdEl0ZW0ge1xuICBsaW5lOiBzdHJpbmc7XG4gIHN1YmxpbmVzPzogc3RyaW5nW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWNmbS1saXN0JyxcbiAgc3R5bGVVcmxzOiBbJy4vY2ZtLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NmbS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0TGlzdE1vZHVsZSwgTWF0RGl2aWRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbGluZXMhOiBJRmxhdm9yZWRMaXN0SXRlbVtdO1xuICBASW5wdXQoKSBkZW5zZSA9IGZhbHNlO1xufVxuIiwiPG1hdC1saXN0IFthdHRyLmRlbnNlXT1cImRlbnNlID8gdHJ1ZSA6IG51bGxcIj5cbiAgPG5nLXRlbXBsYXRlIGxldC1saW5lIGxldC1sYXN0PVwibGFzdFwiIG5nRm9yIFtuZ0Zvck9mXT1cImxpbmVzXCI+XG4gICAgPG1hdC1saXN0LWl0ZW0+XG4gICAgICA8aDQgbWF0TGlzdEl0ZW1UaXRsZT5cbiAgICAgICAge3sgbGluZS5saW5lIH19XG4gICAgICA8L2g0PlxuICAgICAgPHAgKm5nRm9yPVwibGV0IHN1YmxpbmUgb2YgbGluZS5zdWJsaW5lc1wiIG1hdExpc3RJdGVtTGluZT5cbiAgICAgICAge3sgc3VibGluZSB9fVxuICAgICAgPC9wPlxuICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCIhbGFzdFwiPjwvbWF0LWRpdmlkZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1saXN0PlxuIl19","import { Component, Directive, Input, Renderer2, ChangeDetectorRef, EventEmitter, Output, ViewContainerRef, ComponentFactoryResolver, Injector, ViewChild, ChangeDetectionStrategy, ElementRef, HostBinding, } from '@angular/core';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { TdFlavoredListComponent, } from './cfm-list/cfm-list.component';\nimport { TdHighlightComponent, } from '@covalent/highlight';\nimport { TdMarkdownComponent, scrollToAnchor } from '@covalent/markdown';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/table\";\nimport * as i3 from \"@angular/material/button\";\nconst _c0 = (a0, a1) => ({ \"align-right\": a0, \"align-center\": a1 });\nfunction TdFlavoredMarkdownTableComponent_ng_template_1_mat_header_cell_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-header-cell\", 7);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(2, _c0, column_r1.numeric, column_r1.centered));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(column_r1.label);\n} }\nfunction TdFlavoredMarkdownTableComponent_ng_template_1_mat_cell_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-cell\", 8)(1, \"td-markdown\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const row_r2 = ctx.$implicit;\n const column_r1 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(2, _c0, column_r1.numeric, column_r1.centered));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(row_r2[column_r1.name]);\n} }\nfunction TdFlavoredMarkdownTableComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 4);\n i0.ɵɵtemplate(1, TdFlavoredMarkdownTableComponent_ng_template_1_mat_header_cell_1_Template, 2, 5, \"mat-header-cell\", 5)(2, TdFlavoredMarkdownTableComponent_ng_template_1_mat_cell_2_Template, 3, 5, \"mat-cell\", 6);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const column_r1 = ctx.$implicit;\n i0.ɵɵproperty(\"matColumnDef\", column_r1.name);\n} }\nfunction TdFlavoredMarkdownTableComponent_mat_header_row_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"mat-header-row\");\n} }\nfunction TdFlavoredMarkdownTableComponent_mat_row_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"mat-row\");\n} }\nconst _c1 = [\"*\"];\nexport class TdFlavoredMarkdownTableComponent {\n columnDefs = [];\n data;\n sort;\n displayedColumns;\n dataSource;\n ngOnInit() {\n // Check if the first column is empty\n const isFirstColumnEmpty = this.columnDefs.length > 0 &&\n this.columnDefs[0].label.trim() === '' && // Check if the header cell is empty\n this.data.every((row) => !row[this.columnDefs[0].name]); // Check if all cells in the first column are empty\n // If the first column is empty, remove it\n if (isFirstColumnEmpty) {\n this.columnDefs.shift(); // Remove the first column definition\n }\n this.displayedColumns = this.columnDefs.map((c) => c.name);\n this.dataSource = new MatTableDataSource(this.data);\n }\n ngAfterViewInit() {\n this.dataSource.sort = this.sort;\n }\n static ɵfac = function TdFlavoredMarkdownTableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFlavoredMarkdownTableComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownTableComponent, selectors: [[\"ng-component\"]], viewQuery: function TdFlavoredMarkdownTableComponent_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(MatSort, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);\n } }, inputs: { columnDefs: \"columnDefs\", data: \"data\" }, decls: 4, vars: 4, consts: [[\"matSort\", \"\", 3, \"dataSource\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [4, \"matHeaderRowDef\"], [4, \"matRowDef\", \"matRowDefColumns\"], [3, \"matColumnDef\"], [\"mat-sort-header\", \"\", 3, \"ngClass\", 4, \"matHeaderCellDef\"], [3, \"ngClass\", 4, \"matCellDef\"], [\"mat-sort-header\", \"\", 3, \"ngClass\"], [3, \"ngClass\"]], template: function TdFlavoredMarkdownTableComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-table\", 0);\n i0.ɵɵtemplate(1, TdFlavoredMarkdownTableComponent_ng_template_1_Template, 3, 1, \"ng-template\", 1)(2, TdFlavoredMarkdownTableComponent_mat_header_row_2_Template, 1, 0, \"mat-header-row\", 2)(3, TdFlavoredMarkdownTableComponent_mat_row_3_Template, 1, 0, \"mat-row\", 3);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵproperty(\"dataSource\", ctx.dataSource);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.columnDefs);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matHeaderRowDef\", ctx.displayedColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matRowDefColumns\", ctx.displayedColumns);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, MatTableModule, i2.MatTable, i2.MatHeaderCellDef, i2.MatHeaderRowDef, i2.MatColumnDef, i2.MatCellDef, i2.MatRowDef, i2.MatHeaderCell, i2.MatCell, i2.MatHeaderRow, i2.MatRow, TdMarkdownComponent], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownTableComponent, [{\n type: Component,\n args: [{\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\n [ngClass]=\"{\n 'align-right': column.numeric,\n 'align-center': column.centered\n }\"\n *matHeaderCellDef\n mat-sort-header\n >{{ column.label }}</mat-header-cell\n >\n <mat-cell\n *matCellDef=\"let row\"\n [ngClass]=\"{\n 'align-right': column.numeric,\n 'align-center': column.centered\n }\"\n ><td-markdown>{{ row[column.name] }}</td-markdown></mat-cell\n >\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 imports: [CommonModule, MatTableModule, TdMarkdownComponent],\n }]\n }], null, { columnDefs: [{\n type: Input\n }], data: [{\n type: Input\n }], sort: [{\n type: ViewChild,\n args: [MatSort]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdFlavoredMarkdownTableComponent, { className: \"TdFlavoredMarkdownTableComponent\", filePath: \"lib/flavored-markdown.component.ts\", lineNumber: 90 }); })();\nexport class TdFlavoredMarkdownButtonComponent {\n display = 'inline-block';\n text = '';\n data = '';\n clicked = new EventEmitter();\n emitClick() {\n this.clicked.emit({ text: this.text, data: this.data });\n }\n static ɵfac = function TdFlavoredMarkdownButtonComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFlavoredMarkdownButtonComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownButtonComponent, selectors: [[\"ng-component\"]], hostVars: 2, hostBindings: function TdFlavoredMarkdownButtonComponent_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵstyleProp(\"display\", ctx.display);\n } }, inputs: { text: \"text\", data: \"data\" }, outputs: { clicked: \"clicked\" }, decls: 2, vars: 1, consts: [[\"mat-raised-button\", \"\", 3, \"click\"]], template: function TdFlavoredMarkdownButtonComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function TdFlavoredMarkdownButtonComponent_Template_button_click_0_listener() { return ctx.emitClick(); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.text, \" \");\n } }, dependencies: [MatButtonModule, i3.MatButton], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownButtonComponent, [{\n type: Component,\n args: [{\n template: `\n <button mat-raised-button (click)=\"emitClick()\">\n {{ text }}\n </button>\n `,\n imports: [MatButtonModule],\n }]\n }], null, { display: [{\n type: HostBinding,\n args: ['style.display']\n }], text: [{\n type: Input\n }], data: [{\n type: Input\n }], clicked: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdFlavoredMarkdownButtonComponent, { className: \"TdFlavoredMarkdownButtonComponent\", filePath: \"lib/flavored-markdown.component.ts\", lineNumber: 129 }); })();\nexport class TdFlavoredMarkdownContainerDirective {\n viewContainerRef;\n _renderer;\n constructor(viewContainerRef, _renderer) {\n this.viewContainerRef = viewContainerRef;\n this._renderer = _renderer;\n }\n clear() {\n this._renderer.setProperty(this.viewContainerRef.element.nativeElement, 'innerHTML', '');\n this.viewContainerRef.clear();\n }\n static ɵfac = function TdFlavoredMarkdownContainerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFlavoredMarkdownContainerDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Renderer2)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdFlavoredMarkdownContainerDirective, selectors: [[\"\", \"tdFlavoredMarkdownContainer\", \"\"]] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownContainerDirective, [{\n type: Directive,\n args: [{\n selector: '[tdFlavoredMarkdownContainer]',\n }]\n }], () => [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }], null); })();\nexport class TdFlavoredMarkdownComponent {\n _componentFactoryResolver;\n _renderer;\n _changeDetectorRef;\n _injector;\n _elementRef;\n _content;\n _simpleLineBreaks = false;\n _hostedUrl;\n _anchor;\n _components = {};\n _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 set content(content) {\n this._content = content;\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 set simpleLineBreaks(simpleLineBreaks) {\n this._simpleLineBreaks = simpleLineBreaks;\n }\n /**\n * hostedUrl?: string\n *\n * If markdown contains relative paths, this is required to generate correct urls\n *\n */\n set hostedUrl(hostedUrl) {\n this._hostedUrl = hostedUrl;\n }\n /**\n * anchor?: string\n *\n * Anchor to jump to\n *\n */\n set anchor(anchor) {\n this._anchor = anchor;\n }\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n copyCodeToClipboard = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n copyCodeTooltips = {};\n /**\n * toggleRawCode?: boolean\n *\n * Display button to toggle raw code view\n */\n toggleRawCode = false;\n /**\n * rawToggleLabels?: IRawToggleLabels\n *\n * Labels for raw code toggle button\n */\n rawToggleLabels = {};\n /**\n * useCfmList?: boolean = false;\n * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.\n */\n useCfmList = false;\n /**\n * The file extensions to monitor for in anchor tags. If an anchor's `href` ends\n * with this extension, an event will be triggered insetad of performing the default action.\n * Example values: \".ipynb\", \".zip\", \".docx\"\n */\n fileLinkExtensions;\n /**\n * Event emitted when an anchor tag with an `href` matching the specified\n * file link extension is clicked. The emitted value is the `href` of the clicked anchor.\n */\n fileLinkClicked = new EventEmitter();\n /**\n * contentReady?: function\n * Event emitted after the markdown content rendering is finished.\n */\n contentReady = new EventEmitter();\n /**\n * buttonClicked?: ITdFlavoredMarkdownButtonClickEvent\n * Event emitted when a button is clicked\n * Is an object containing text and data of button\n */\n buttonClicked = new EventEmitter();\n container;\n _destroy$ = new Subject();\n constructor(_componentFactoryResolver, _renderer, _changeDetectorRef, _injector, _elementRef) {\n this._componentFactoryResolver = _componentFactoryResolver;\n this._renderer = _renderer;\n this._changeDetectorRef = _changeDetectorRef;\n this._injector = _injector;\n this._elementRef = _elementRef;\n }\n ngOnChanges(changes) {\n // only anchor changed\n if (changes['anchor'] &&\n !changes['content'] &&\n !changes['simpleLineBreaks'] &&\n !changes['hostedUrl']) {\n scrollToAnchor(this._elementRef.nativeElement, this._anchor, false);\n }\n else {\n this.refresh();\n }\n }\n ngAfterViewInit() {\n if (!this._content) {\n this._loadContent(this.container.viewContainerRef.element.nativeElement\n .textContent ?? '');\n Promise.resolve().then(() => {\n this._viewInit = true;\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n }\n refresh() {\n if (this._content) {\n this._loadContent(this._content);\n }\n else if (this._viewInit) {\n this._loadContent(this.container.viewContainerRef.element.nativeElement\n .textContent ?? '');\n }\n this._changeDetectorRef.markForCheck();\n }\n _loadContent(markdown) {\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 = markdown.split('\\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 // Remove all indentation spaces so markdown can be parsed correctly\n // Remove all \\r characters\n const startingWhitespaceRegex = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line) {\n return line.replace(startingWhitespaceRegex, '').replaceAll('\\r', '');\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._replaceButtons(markdown);\n if (this.useCfmList) {\n markdown = this._replaceLists(markdown);\n }\n const keys = Object.keys(this._components);\n // need to sort the placeholders in order of encounter in markdown content\n keys.sort((compA, compB) => {\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 _render(markdown, key, keys) {\n if (!markdown) {\n return;\n }\n if (key && markdown.indexOf(key) > -1) {\n const markdownParts = markdown.split(key);\n keys.shift();\n this._render(markdownParts[0], '', []);\n this.container.viewContainerRef.insert(this._components[key].hostView, this.container.viewContainerRef.length);\n delete this._components[key];\n this._render(markdownParts[1], keys[0], keys);\n }\n else {\n const contentRef = 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.fileLinkExtensions = this.fileLinkExtensions;\n contentRef.instance.fileLinkClicked\n .pipe(takeUntil(this._destroy$))\n .subscribe((url) => {\n this.fileLinkClicked.emit(url);\n });\n contentRef.instance.refresh();\n this.container.viewContainerRef.insert(contentRef.hostView, this.container.viewContainerRef.length);\n }\n }\n _replaceComponent(markdown, type, regExp, replacerFunc) {\n let componentIndex = 0;\n return markdown.replace(regExp, (...args) => {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = componentFactory.create(this._injector);\n replacerFunc(componentRef, ...args);\n const key = '[' +\n componentFactory.selector +\n '-placeholder-' +\n componentIndex++ +\n ']';\n this._components[key] = componentRef;\n return key;\n });\n }\n _replaceCheckbox(markdown) {\n const checkboxRegExp = /(?:^|\\n)- \\[(x| )\\](.*)/gi;\n return this._replaceComponent(markdown, MatCheckbox, checkboxRegExp, (componentRef, match, checked, label) => {\n componentRef.instance.checked = !!checked.trim();\n componentRef.instance.ariaLabel = label;\n componentRef.instance.labelPosition = 'after';\n this._renderer.setProperty((componentRef.instance._elementRef.nativeElement).getElementsByTagName('label')[0], 'innerHTML', label);\n });\n }\n _replaceButtons(markdown) {\n const buttonRegExp = /\\[([^[]+)\\](\\(#data=(.*?)\\))/i;\n const globalButtonRegExp = new RegExp(buttonRegExp.source, buttonRegExp.flags + 'g');\n return this._replaceComponent(markdown, TdFlavoredMarkdownButtonComponent, globalButtonRegExp, (componentRef, match) => {\n const matches = buttonRegExp.exec(match);\n if (!matches) {\n return;\n }\n const text = matches[1];\n const data = matches[3];\n componentRef.instance.text = text;\n componentRef.instance.data = data;\n componentRef.instance.clicked\n .pipe(takeUntil(this._destroy$))\n .subscribe((clickEvent) => this.buttonClicked.emit(clickEvent));\n });\n }\n _replaceCodeBlocks(markdown) {\n const codeBlockRegExp = /(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g;\n return this._replaceComponent(markdown, TdHighlightComponent, codeBlockRegExp, (componentRef, match, language, codeblock) => {\n if (language) {\n componentRef.instance.codeLang = language;\n }\n componentRef.instance.copyCodeToClipboard = this.copyCodeToClipboard;\n componentRef.instance.copyCodeTooltips = this.copyCodeTooltips;\n componentRef.instance.toggleRawButton = this.toggleRawCode;\n componentRef.instance.rawToggleLabels = this.rawToggleLabels;\n componentRef.instance.content = codeblock;\n });\n }\n _replaceTables(markdown) {\n const tableRgx = /^ {0,3}\\|?.+\\|.+\\n[ \\t]{0,3}\\|?[ \\t]*:?[ \\t]*(?:-|=){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*:?[ \\t]*(?:-|=){2,}[\\s\\S]+?(?:\\n\\n|~0)/gm;\n return this._replaceComponent(markdown, TdFlavoredMarkdownTableComponent, tableRgx, (componentRef, match) => {\n const dataTableLines = match\n .replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '')\n .split('\\n');\n const columns = dataTableLines[0]\n .split('|')\n .filter((col) => {\n return col;\n })\n .map((s) => {\n return s.trim();\n });\n const alignment = dataTableLines[1]\n .split('|')\n .filter((v) => {\n return v;\n })\n .map((s) => {\n return s.trim();\n });\n const data = [];\n for (let i = 2; i < dataTableLines.length; i++) {\n const rowSplit = dataTableLines[i]\n .split('|')\n .filter((cell) => {\n return cell;\n })\n .map((s) => {\n return s.trim();\n });\n const row = {};\n columns.forEach((col, index) => {\n const rowSplitCell = rowSplit[index];\n if (rowSplitCell) {\n row[col.toLowerCase().trim()] = rowSplitCell.replace(/`(.*)`/, (m, value) => {\n return value;\n });\n }\n });\n data.push(row);\n }\n componentRef.instance.columnDefs = columns.map((col, index) => {\n return {\n label: col,\n name: col ? col.toLowerCase().trim() : `column ${index}`,\n numeric: /^--*[ \\t]*:[ \\t]*$/.test(alignment[index]),\n centered: /^:--*[ \\t]*:[ \\t]*$/.test(alignment[index]),\n };\n });\n componentRef.instance.data = data;\n });\n }\n _replaceLists(markdown) {\n const listRegExp = /(?:^|\\n)(( *(\\+|\\*|-))[ |\\t](.*)\\n)+/g;\n const listCharRegExp = new RegExp(/^(\\+|\\*|-)/);\n return this._replaceComponent(markdown, TdFlavoredListComponent, listRegExp, (componentRef, match) => {\n const start = /(\\+|\\*|-)/.exec(match);\n const matchIndex = start !== null ? start.index : 1;\n const lineTexts = match.split(new RegExp('\\\\n {' + (matchIndex - 1).toString() + '}(\\\\+|\\\\*|\\\\-)[ |\\\\t]'));\n lineTexts.shift();\n const lines = [];\n lineTexts.forEach((text) => {\n const sublineTexts = text.split(/\\n *(\\+|\\*|-) /);\n const lineText = sublineTexts.shift() ?? '';\n if (listCharRegExp.test(lineText)) {\n return;\n }\n lines.push({\n line: lineText,\n sublines: sublineTexts\n .map((subline) => {\n if (listCharRegExp.test(subline)) {\n return '';\n }\n return subline.trim();\n })\n .filter((line) => !!line),\n });\n });\n componentRef.instance.lines = lines;\n });\n }\n static ɵfac = function TdFlavoredMarkdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFlavoredMarkdownComponent)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownComponent, selectors: [[\"td-flavored-markdown\"]], viewQuery: function TdFlavoredMarkdownComponent_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(TdFlavoredMarkdownContainerDirective, 7);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);\n } }, inputs: { content: \"content\", simpleLineBreaks: \"simpleLineBreaks\", hostedUrl: \"hostedUrl\", anchor: \"anchor\", copyCodeToClipboard: \"copyCodeToClipboard\", copyCodeTooltips: \"copyCodeTooltips\", toggleRawCode: \"toggleRawCode\", rawToggleLabels: \"rawToggleLabels\", useCfmList: \"useCfmList\", fileLinkExtensions: \"fileLinkExtensions\" }, outputs: { fileLinkClicked: \"fileLinkClicked\", contentReady: \"contentReady\", buttonClicked: \"buttonClicked\" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1, decls: 2, vars: 0, consts: [[\"tdFlavoredMarkdownContainer\", \"\"]], template: function TdFlavoredMarkdownComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n } }, dependencies: [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}[_nghost-%COMP%] mat-table .align-right{justify-content:flex-end}[_nghost-%COMP%] mat-table .align-center{justify-content:center}\"], changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownComponent, [{\n type: Component,\n args: [{ selector: 'td-flavored-markdown', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TdFlavoredMarkdownContainerDirective], 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}:host ::ng-deep mat-table .align-right{justify-content:flex-end}:host ::ng-deep mat-table .align-center{justify-content:center}\\n\"] }]\n }], () => [{ type: i0.ComponentFactoryResolver }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i0.ElementRef }], { content: [{\n type: Input\n }], simpleLineBreaks: [{\n type: Input\n }], hostedUrl: [{\n type: Input\n }], anchor: [{\n type: Input\n }], copyCodeToClipboard: [{\n type: Input\n }], copyCodeTooltips: [{\n type: Input\n }], toggleRawCode: [{\n type: Input\n }], rawToggleLabels: [{\n type: Input\n }], useCfmList: [{\n type: Input\n }], fileLinkExtensions: [{\n type: Input\n }], fileLinkClicked: [{\n type: Output\n }], contentReady: [{\n type: Output\n }], buttonClicked: [{\n type: Output\n }], container: [{\n type: ViewChild,\n args: [TdFlavoredMarkdownContainerDirective, { static: true }]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdFlavoredMarkdownComponent, { className: \"TdFlavoredMarkdownComponent\", filePath: \"lib/flavored-markdown.component.ts\", lineNumber: 172 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxFQUdULGlCQUFpQixFQUNqQixZQUFZLEVBQ1osTUFBTSxFQUNOLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsUUFBUSxFQUVSLFNBQVMsRUFDVCx1QkFBdUIsRUFHdkIsVUFBVSxFQUNWLFdBQVcsR0FHWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUNMLG9CQUFvQixHQUdyQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixD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QyxTQUFTOzJCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsb0NBQW9DLENBQUM7aUtBb0IzQyxPQUFPO2tCQURWLEtBQUs7WUFZRixnQkFBZ0I7a0JBRG5CLEtBQUs7WUFZRixTQUFTO2tCQURaLEtBQUs7WUFZRixNQUFNO2tCQURULEtBQUs7WUFXRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFPRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFPRyxhQUFhO2tCQUFyQixLQUFLO1lBT0csZUFBZTtrQkFBdkIsS0FBSztZQU1HLFVBQVU7a0JBQWxCLEtBQUs7WUFRTixrQkFBa0I7a0JBRGpCLEtBQUs7WUFPSSxlQUFlO2tCQUF4QixNQUFNO1lBTUcsWUFBWTtrQkFBckIsTUFBTTtZQVNQLGFBQWE7a0JBRFosTUFBTTtZQUtQLFNBQVM7a0JBRFIsU0FBUzttQkFBQyxvQ0FBb0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O2tGQXhIdEQsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEFmdGVyVmlld0luaXQsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIFR5cGUsXG4gIENvbXBvbmVudEZhY3RvcnksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBJbmplY3RvcixcbiAgQ29tcG9uZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgVGRGbGF2b3JlZExpc3RDb21wb25lbnQsXG4gIElGbGF2b3JlZExpc3RJdGVtLFxufSBmcm9tICcuL2NmbS1saXN0L2NmbS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBUZEhpZ2hsaWdodENvbXBvbmVudCxcbiAgSUNvcHlDb2RlVG9vbHRpcHMsXG4gIElSYXdUb2dnbGVMYWJlbHMsXG59IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuXG5pbXBvcnQgeyBUZE1hcmtkb3duQ29tcG9uZW50LCBzY3JvbGxUb0FuY2hvciB9IGZyb20gJ0Bjb3ZhbGVudC9tYXJrZG93bic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuZXhwb3J0IGludGVyZmFjZSBJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudCB7XG4gIHRleHQ6IHN0cmluZztcbiAgZGF0YTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUZEZsYXZvcmVkTWFya0Rvd25UYWJsZUNvbHVtbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtZXJpYzogYm9vbGVhbjtcbiAgY2VudGVyZWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQ+XG4gICAgICA8IS0tIENvbHVtbiBEZWZpbml0aW9uIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jb2x1bW4gW25nRm9yT2ZdPVwiY29sdW1uRGVmc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLm5hbWVcIj5cbiAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdhbGlnbi1yaWdodCc6IGNvbHVtbi5udW1lcmljLFxuICAgICAgICAgICAgICAnYWxpZ24tY2VudGVyJzogY29sdW1uLmNlbnRlcmVkXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgICBtYXQtc29ydC1oZWFkZXJcbiAgICAgICAgICAgID57eyBjb2x1bW4ubGFiZWwgfX08L21hdC1oZWFkZXItY2VsbFxuICAgICAgICAgID5cbiAgICAgICAgICA8bWF0LWNlbGxcbiAgICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdhbGlnbi1yaWdodCc6IGNvbHVtbi5udW1lcmljLFxuICAgICAgICAgICAgICAnYWxpZ24tY2VudGVyJzogY29sdW1uLmNlbnRlcmVkXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID48dGQtbWFya2Rvd24+e3sgcm93W2NvbHVtbi5uYW1lXSB9fTwvdGQtbWFya2Rvd24+PC9tYXQtY2VsbFxuICAgICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPCEtLSBIZWFkZXIgYW5kIFJvdyBEZWNsYXJhdGlvbnMgLS0+XG4gICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L21hdC1oZWFkZXItcm93PlxuICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIj48L21hdC1yb3c+XG4gICAgPC9tYXQtdGFibGU+XG4gIGAsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBUZE1hcmtkb3duQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGRGbGF2b3JlZE1hcmtkb3duVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb2x1bW5EZWZzOiBJVGRGbGF2b3JlZE1hcmtEb3duVGFibGVDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoKSBkYXRhITogdW5rbm93bltdO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQhOiBNYXRTb3J0O1xuXG4gIGRpc3BsYXllZENvbHVtbnMhOiBzdHJpbmdbXTtcbiAgZGF0YVNvdXJjZSE6IE1hdFRhYmxlRGF0YVNvdXJjZTx1bmtub3duPjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3QgY29sdW1uIGlzIGVtcHR5XG4gICAgY29uc3QgaXNGaXJzdENvbHVtbkVtcHR5ID1cbiAgICAgIHRoaXMuY29sdW1uRGVmcy5sZW5ndGggPiAwICYmXG4gICAgICB0aGlzLmNvbHVtbkRlZnNbMF0ubGFiZWwudHJpbSgpID09PSAnJyAmJiAvLyBDaGVjayBpZiB0aGUgaGVhZGVyIGNlbGwgaXMgZW1wdHlcbiAgICAgIHRoaXMuZGF0YS5ldmVyeSgocm93OiBhbnkpID0+ICFyb3dbdGhpcy5jb2x1bW5EZWZzWzBdLm5hbWVdKTsgLy8gQ2hlY2sgaWYgYWxsIGNlbGxzIGluIHRoZSBmaXJzdCBjb2x1bW4gYXJlIGVtcHR5XG5cbiAgICAvLyBJZiB0aGUgZmlyc3QgY29sdW1uIGlzIGVtcHR5LCByZW1vdmUgaXRcbiAgICBpZiAoaXNGaXJzdENvbHVtbkVtcHR5KSB7XG4gICAgICB0aGlzLmNvbHVtbkRlZnMuc2hpZnQoKTsgLy8gUmVtb3ZlIHRoZSBmaXJzdCBjb2x1bW4gZGVmaW5pdGlvblxuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1uRGVmcy5tYXAoXG4gICAgICAoYzogSVRkRmxhdm9yZWRNYXJrRG93blRhYmxlQ29sdW1uKSA9PiBjLm5hbWVcbiAgICApO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJlbWl0Q2xpY2soKVwiPlxuICAgICAge3sgdGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JykgZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snO1xuICBASW5wdXQoKSB0ZXh0ID0gJyc7XG4gIEBJbnB1dCgpIGRhdGEgPSAnJztcbiAgQE91dHB1dCgpXG4gIGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+KCk7XG4gIGVtaXRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrZWQuZW1pdCh7IHRleHQ6IHRoaXMudGV4dCwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRGbGF2b3JlZE1hcmtkb3duQ29udGFpbmVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAnJ1xuICAgICk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgSVJlcGxhY2VyRnVuYzxUPiA9IChcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4sXG4gIC4uLmFyZ3M6IGFueVtdXG4pID0+IHZvaWQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWZsYXZvcmVkLW1hcmtkb3duJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZsYXZvcmVkTWFya2Rvd25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIF9jb250ZW50ITogc3RyaW5nO1xuICBwcml2YXRlIF9zaW1wbGVMaW5lQnJlYWtzID0gZmFsc2U7XG4gIHByaXZhdGUgX2hvc3RlZFVybCE6IHN0cmluZztcbiAgcHJpdmF0ZSBfYW5jaG9yITogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2NvbXBvbmVudHM6IHsgW2tleTogc3RyaW5nXTogQ29tcG9uZW50UmVmPHVua25vd24+IH0gPSB7fTtcbiAgcHJpdmF0ZSBfdmlld0luaXQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIGNvbnRlbnQ/OiBzdHJpbmdcbiAgICpcbiAgICogTWFya2Rvd24gZm9ybWF0IGNvbnRlbnQgdG8gYmUgcGFyc2VkIGFzIG1hdGVyaWFsL2NvdmFsZW50IG1hcmt1cC5cbiAgICpcbiAgICogZS5nLiBSRUFETUUubWQgY29udGVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIHNpbXBsZUxpbmVCcmVha3M/OiBzdHJpbmdcbiAgICpcbiAgICogU2V0cyB3aGV0aGVyIG5ld2xpbmUgY2hhcmFjdGVycyBpbnNpZGUgcGFyYWdyYXBocyBhbmQgc3BhbnMgYXJlIHBhcnNlZCBhcyA8YnIvPi5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc2ltcGxlTGluZUJyZWFrcyhzaW1wbGVMaW5lQnJlYWtzOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2ltcGxlTGluZUJyZWFrcyA9IHNpbXBsZUxpbmVCcmVha3M7XG4gIH1cblxuICAvKipcbiAgICogaG9zdGVkVXJsPzogc3RyaW5nXG4gICAqXG4gICAqIElmIG1hcmtkb3duIGNvbnRhaW5zIHJlbGF0aXZlIHBhdGhzLCB0aGlzIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIGNvcnJlY3QgdXJsc1xuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGhvc3RlZFVybChob3N0ZWRVcmw6IHN0cmluZykge1xuICAgIHRoaXMuX2hvc3RlZFVybCA9IGhvc3RlZFVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBhbmNob3I/OiBzdHJpbmdcbiAgICpcbiAgICogQW5jaG9yIHRvIGp1bXAgdG9cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBhbmNob3IoYW5jaG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG4gIH1cblxuICAvKipcbiAgICogY29weUNvZGVUb0NsaXBib2FyZD86IGJvb2xlYW5cbiAgICpcbiAgICogRGlzcGxheSBjb3B5IGJ1dHRvbiBvbiBjb2RlIHNuaXBwZXRzIHRvIGNvcHkgY29kZSB0byBjbGlwYm9hcmQuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkPyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHNcbiAgICpcbiAgICogVG9vbHRpcHMgZm9yIGNvcHkgYnV0dG9uIHRvIGNvcHkgYW5kIHVwb24gY29weWluZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwcyA9IHt9O1xuXG4gIC8qKlxuICAgKiB0b2dnbGVSYXdDb2RlPzogYm9vbGVhblxuICAgKlxuICAgKiBEaXNwbGF5IGJ1dHRvbiB0byB0b2dnbGUgcmF3IGNvZGUgdmlld1xuICAgKi9cbiAgQElucHV0KCkgdG9nZ2xlUmF3Q29kZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiByYXdUb2dnbGVMYWJlbHM/OiBJUmF3VG9nZ2xlTGFiZWxzXG4gICAqXG4gICAqIExhYmVscyBmb3IgcmF3IGNvZGUgdG9nZ2xlIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgcmF3VG9nZ2xlTGFiZWxzPzogSVJhd1RvZ2dsZUxhYmVscyA9IHt9O1xuXG4gIC8qKlxuICAgKiB1c2VDZm1MaXN0PzogYm9vbGVhbiA9IGZhbHNlO1xuICAgKiBVc2UgQ0ZNIGxpc3QgY29tcG9uZW50IGluc3RlYWQgb2YgdmFuaWxsYSBtYXJrZG93biBsaXN0LiBVc2VkIGluIGNvdmFsZW50IGRvY3VtZW50YXRpb24gYXBwLlxuICAgKi9cbiAgQElucHV0KCkgdXNlQ2ZtTGlzdD8gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGZpbGUgZXh0ZW5zaW9ucyB0byBtb25pdG9yIGZvciBpbiBhbmNob3IgdGFncy4gSWYgYW4gYW5jaG9yJ3MgYGhyZWZgIGVuZHNcbiAgICogd2l0aCB0aGlzIGV4dGVuc2lvbiwgYW4gZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQgaW5zZXRhZCBvZiBwZXJmb3JtaW5nIHRoZSBkZWZhdWx0IGFjdGlvbi5cbiAgICogRXhhbXBsZSB2YWx1ZXM6IFwiLmlweW5iXCIsIFwiLnppcFwiLCBcIi5kb2N4XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZpbGVMaW5rRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYW4gYW5jaG9yIHRhZyB3aXRoIGFuIGBocmVmYCBtYXRjaGluZyB0aGUgc3BlY2lmaWVkXG4gICAqIGZpbGUgbGluayBleHRlbnNpb24gaXMgY2xpY2tlZC4gVGhlIGVtaXR0ZWQgdmFsdWUgaXMgdGhlIGBocmVmYCBvZiB0aGUgY2xpY2tlZCBhbmNob3IuXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsZUxpbmtDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxVUkw+KCk7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnRSZWFkeT86IGZ1bmN0aW9uXG4gICAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIG1hcmtkb3duIGNvbnRlbnQgcmVuZGVyaW5nIGlzIGZpbmlzaGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIGNvbnRlbnRSZWFkeTogRXZlbnRFbWl0dGVyPHVuZGVmaW5lZD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8dW5kZWZpbmVkPigpO1xuXG4gIC8qKlxuICAgKiBidXR0b25DbGlja2VkPzogSVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnRcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgYnV0dG9uIGlzIGNsaWNrZWRcbiAgICogSXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGV4dCBhbmQgZGF0YSBvZiBidXR0b25cbiAgICovXG4gIEBPdXRwdXQoKVxuICBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoVGRGbGF2b3JlZE1hcmtkb3duQ29udGFpbmVyRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBjb250YWluZXIhOiBUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmU7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gb25seSBhbmNob3IgY2hhbmdlZFxuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbJ2FuY2hvciddICYmXG4gICAgICAhY2hhbmdlc1snY29udGVudCddICYmXG4gICAgICAhY2hhbmdlc1snc2ltcGxlTGluZUJyZWFrcyddICYmXG4gICAgICAhY2hhbmdlc1snaG9zdGVkVXJsJ11cbiAgICApIHtcbiAgICAgIHNjcm9sbFRvQW5jaG9yKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fYW5jaG9yLCBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2xvYWRDb250ZW50KFxuICAgICAgICAoPEhUTUxFbGVtZW50PnRoaXMuY29udGFpbmVyLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgIC50ZXh0Q29udGVudCA/PyAnJ1xuICAgICAgKTtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLl92aWV3SW5pdCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQodGhpcy5fY29udGVudCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl92aWV3SW5pdCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQoXG4gICAgICAgICg8SFRNTEVsZW1lbnQ+dGhpcy5jb250YWluZXIudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgLnRleHRDb250ZW50ID8/ICcnXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRDb250ZW50KG1hcmtkb3duOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAobWFya2Rvd24gJiYgbWFya2Rvd24udHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY29udGFpbmVyLmNsZWFyKCk7XG4gICAgICBtYXJrZG93biA9IG1hcmtkb3duXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcc3xcXHQpKlxcbisvZywgJycpXG4gICAgICAgIC5yZXBsYWNlKC8oXFxzfFxcdCkqXFxuKyhcXHN8XFx0KSokL2csICcnKTtcbiAgICAgIC8vIFNwbGl0IG1hcmtkb3duIGJ5IGxpbmUgY2hhcmFjdGVyc1xuICAgICAgbGV0IGxpbmVzOiBzdHJpbmdbXSA9IG1hcmtkb3duLnNwbGl0KCdcXG4nKTtcblxuICAgICAgLy8gY2hlY2sgaG93IG11Y2ggaW5kZW50YXRpb24gaXMgdXNlZCBieSB0aGUgZmlyc3QgYWN0dWFsIG1hcmtkb3duIGxpbmVcbiAgICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaCA9IGxpbmVzWzBdLm1hdGNoKC9eKFxcc3xcXHQpKi8pO1xuICAgICAgY29uc3QgZmlyc3RMaW5lV2hpdGVzcGFjZSA9IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaFxuICAgICAgICA/IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaFswXVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlbW92ZSBhbGwgaW5kZW50YXRpb24gc3BhY2VzIHNvIG1hcmtkb3duIGNhbiBiZSBwYXJzZWQgY29ycmVjdGx5XG4gICAgICAvLyBSZW1vdmUgYWxsIFxcciBjaGFyYWN0ZXJzXG4gICAgICBjb25zdCBzdGFydGluZ1doaXRlc3BhY2VSZWdleCA9IG5ldyBSZWdFeHAoJ14nICsgZmlyc3RMaW5lV2hpdGVzcGFjZSk7XG4gICAgICBsaW5lcyA9IGxpbmVzLm1hcChmdW5jdGlvbiAobGluZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxpbmUucmVwbGFjZShzdGFydGluZ1doaXRlc3BhY2VSZWdleCwgJycpLnJlcGxhY2VBbGwoJ1xccicsICcnKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBKb2luIGxpbmVzIGFnYWluIHdpdGggbGluZSBjaGFyYWN0ZXJzXG4gICAgICBtYXJrZG93biA9IFsuLi5saW5lcywgJycsICcnXS5qb2luKCdcXG4nKTtcbiAgICAgIG1hcmtkb3duID0gdGhpcy5fcmVwbGFjZUNvZGVCbG9ja3MobWFya2Rvd24pO1xuICAgICAgbWFya2Rvd24gPSB0aGlzLl9yZXBsYWNlQ2hlY2tib3gobWFya2Rvd24pO1xuICAgICAgbWFya2Rvd24gPSB0aGlzLl9yZXBsYWNlVGFibGVzKG1hcmtkb3duKTtcbiAgICAgIG1hcmtkb3duID0gdGhpcy5fcmVwbGFjZUJ1dHRvbnMobWFya2Rvd24pO1xuXG4gICAgICBpZiAodGhpcy51c2VDZm1MaXN0KSB7XG4gICAgICAgIG1hcmtkb3duID0gdGhpcy5fcmVwbGFjZUxpc3RzKG1hcmtkb3duKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyh0aGlzLl9jb21wb25lbnRzKTtcbiAgICAgIC8vIG5lZWQgdG8gc29ydCB0aGUgcGxhY2Vob2xkZXJzIGluIG9yZGVyIG9mIGVuY291bnRlciBpbiBtYXJrZG93biBjb250ZW50XG4gICAgICBrZXlzLnNvcnQoKGNvbXBBOiBzdHJpbmcsIGNvbXBCOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIG1hcmtkb3duLmluZGV4T2YoY29tcEEpID4gbWFya2Rvd24uaW5kZXhPZihjb21wQikgPyAxIDogLTE7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3JlbmRlcihtYXJrZG93biwga2V5c1swXSwga2V5cyk7XG4gICAgICAvLyBUT0RPOiB0aW1lb3V0IHJlcXVpcmVkIHNpbmNlIHJlc2l6aW5nIG9mIGh0bWwgZWxlbWVudHMgb2NjdXJzIHdoaWNoIGNhdXNlcyBhIGNoYW5nZSBpbiB0aGUgc2Nyb2xsIHBvc2l0aW9uXG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIHNjcm9sbFRvQW5jaG9yKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fYW5jaG9yLCBmYWxzZSksXG4gICAgICAgIDI1MFxuICAgICAgKTtcbiAgICAgIHRoaXMuY29udGVudFJlYWR5LmVtaXQoKTtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlcihtYXJrZG93bjogc3RyaW5nLCBrZXk6IHN0cmluZywga2V5czogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoIW1hcmtkb3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChrZXkgJiYgbWFya2Rvd24uaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgIGNvbnN0IG1hcmtkb3duUGFydHM6IHN0cmluZ1tdID0gbWFya2Rvd24uc3BsaXQoa2V5KTtcbiAgICAgIGtleXMuc2hpZnQoKTtcbiAgICAgIHRoaXMuX3JlbmRlcihtYXJrZG93blBhcnRzWzBdLCAnJywgW10pO1xuICAgICAgdGhpcy5jb250YWluZXIudmlld0NvbnRhaW5lclJlZi5pbnNlcnQoXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudHNba2V5XS5ob3N0VmlldyxcbiAgICAgICAgdGhpcy5jb250YWluZXIudmlld0NvbnRhaW5lclJlZi5sZW5ndGhcbiAgICAgICk7XG4gICAgICBkZWxldGUgdGhpcy5fY29tcG9uZW50c1trZXldO1xuICAgICAgdGhpcy5fcmVuZGVyKG1hcmtkb3duUGFydHNbMV0sIGtleXNbMF0sIGtleXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250ZW50UmVmOiBDb21wb25lbnRSZWY8VGRNYXJrZG93bkNvbXBvbmVudD4gPVxuICAgICAgICB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoVGRNYXJrZG93bkNvbXBvbmVudClcbiAgICAgICAgICAuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcbiAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IG1hcmtkb3duO1xuICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5ob3N0ZWRVcmwgPSB0aGlzLl9ob3N0ZWRVcmw7XG4gICAgICBjb250ZW50UmVmLmluc3RhbmNlLnNpbXBsZUxpbmVCcmVha3MgPSB0aGlzLl9zaW1wbGVMaW5lQnJlYWtzO1xuICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5maWxlTGlua0V4dGVuc2lvbnMgPSB0aGlzLmZpbGVMaW5rRXh0ZW5zaW9ucztcbiAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuZmlsZUxpbmtDbGlja2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHVybDogVVJMKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWxlTGlua0NsaWNrZWQuZW1pdCh1cmwpO1xuICAgICAgICB9KTtcbiAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UucmVmcmVzaCgpO1xuICAgICAgdGhpcy5jb250YWluZXIudmlld0NvbnRhaW5lclJlZi5pbnNlcnQoXG4gICAgICAgIGNvbnRlbnRSZWYuaG9zdFZpZXcsXG4gICAgICAgIHRoaXMuY29udGFpbmVyLnZpZXdDb250YWluZXJSZWYubGVuZ3RoXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VDb21wb25lbnQ8VD4oXG4gICAgbWFya2Rvd246IHN0cmluZyxcbiAgICB0eXBlOiBUeXBlPFQ+LFxuICAgIHJlZ0V4cDogUmVnRXhwLFxuICAgIHJlcGxhY2VyRnVuYzogSVJlcGxhY2VyRnVuYzxUPlxuICApOiBzdHJpbmcge1xuICAgIGxldCBjb21wb25lbnRJbmRleCA9IDA7XG4gICAgcmV0dXJuIG1hcmtkb3duLnJlcGxhY2UocmVnRXhwLCAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8VD4gPVxuICAgICAgICB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodHlwZSk7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKFxuICAgICAgICB0aGlzLl9pbmplY3RvclxuICAgICAgKTtcbiAgICAgIHJlcGxhY2VyRnVuYyhjb21wb25lbnRSZWYsIC4uLmFyZ3MpO1xuICAgICAgY29uc3Qga2V5OiBzdHJpbmcgPVxuICAgICAgICAnWycgK1xuICAgICAgICBjb21wb25lbnRGYWN0b3J5LnNlbGVjdG9yICtcbiAgICAgICAgJy1wbGFjZWhvbGRlci0nICtcbiAgICAgICAgY29tcG9uZW50SW5kZXgrKyArXG4gICAgICAgICddJztcbiAgICAgIHRoaXMuX2NvbXBvbmVudHNba2V5XSA9IGNvbXBvbmVudFJlZjtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlQ2hlY2tib3gobWFya2Rvd246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2hlY2tib3hSZWdFeHAgPSAvKD86XnxcXG4pLSBcXFsoeHwgKVxcXSguKikvZ2k7XG4gICAgcmV0dXJuIHRoaXMuX3JlcGxhY2VDb21wb25lbnQoXG4gICAgICBtYXJrZG93bixcbiAgICAgIE1hdENoZWNrYm94LFxuICAgICAgY2hlY2tib3hSZWdFeHAsXG4gICAgICAoXG4gICAgICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE1hdENoZWNrYm94PixcbiAgICAgICAgbWF0Y2g6IHN0cmluZyxcbiAgICAgICAgY2hlY2tlZDogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nXG4gICAgICApID0+IHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNoZWNrZWQgPSAhIWNoZWNrZWQudHJpbSgpO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuYXJpYUxhYmVsID0gbGFiZWw7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5sYWJlbFBvc2l0aW9uID0gJ2FmdGVyJztcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgICAgKDxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICkpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsYWJlbCcpWzBdLFxuICAgICAgICAgICdpbm5lckhUTUwnLFxuICAgICAgICAgIGxhYmVsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VCdXR0b25zKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJ1dHRvblJlZ0V4cCA9IC9cXFsoW15bXSspXFxdKFxcKCNkYXRhPSguKj8pXFwpKS9pO1xuICAgIGNvbnN0IGdsb2JhbEJ1dHRvblJlZ0V4cCA9IG5ldyBSZWdFeHAoXG4gICAgICBidXR0b25SZWdFeHAuc291cmNlLFxuICAgICAgYnV0dG9uUmVnRXhwLmZsYWdzICsgJ2cnXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5fcmVwbGFjZUNvbXBvbmVudChcbiAgICAgIG1hcmtkb3duLFxuICAgICAgVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ29tcG9uZW50LFxuICAgICAgZ2xvYmFsQnV0dG9uUmVnRXhwLFxuICAgICAgKFxuICAgICAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25Db21wb25lbnQ+LFxuICAgICAgICBtYXRjaDogc3RyaW5nXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGJ1dHRvblJlZ0V4cC5leGVjKG1hdGNoKTtcbiAgICAgICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHQ6IHN0cmluZyA9IG1hdGNoZXNbMV07XG4gICAgICAgIGNvbnN0IGRhdGE6IHN0cmluZyA9IG1hdGNoZXNbM107XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS50ZXh0ID0gdGV4dDtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGEgPSBkYXRhO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY2xpY2tlZFxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoY2xpY2tFdmVudDogSVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQpID0+XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrZWQuZW1pdChjbGlja0V2ZW50KVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VDb2RlQmxvY2tzKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvZGVCbG9ja1JlZ0V4cCA9IC8oPzpefFxcbilgYGAoLiopXFxuKFtcXHNcXFNdKj8pXFxuYGBgL2c7XG4gICAgcmV0dXJuIHRoaXMuX3JlcGxhY2VDb21wb25lbnQoXG4gICAgICBtYXJrZG93bixcbiAgICAgIFRkSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgICAgY29kZUJsb2NrUmVnRXhwLFxuICAgICAgKFxuICAgICAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUZEhpZ2hsaWdodENvbXBvbmVudD4sXG4gICAgICAgIG1hdGNoOiBzdHJpbmcsXG4gICAgICAgIGxhbmd1YWdlOiBzdHJpbmcsXG4gICAgICAgIGNvZGVibG9jazogc3RyaW5nXG4gICAgICApID0+IHtcbiAgICAgICAgaWYgKGxhbmd1YWdlKSB7XG4gICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvZGVMYW5nID0gbGFuZ3VhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvcHlDb2RlVG9DbGlwYm9hcmQgPSB0aGlzLmNvcHlDb2RlVG9DbGlwYm9hcmQ7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb3B5Q29kZVRvb2x0aXBzID0gdGhpcy5jb3B5Q29kZVRvb2x0aXBzO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudG9nZ2xlUmF3QnV0dG9uID0gdGhpcy50b2dnbGVSYXdDb2RlO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmF3VG9nZ2xlTGFiZWxzID0gdGhpcy5yYXdUb2dnbGVMYWJlbHM7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZW50ID0gY29kZWJsb2NrO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlVGFibGVzKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRhYmxlUmd4ID1cbiAgICAgIC9eIHswLDN9XFx8Py4rXFx8LitcXG5bIFxcdF17MCwzfVxcfD9bIFxcdF0qOj9bIFxcdF0qKD86LXw9KXsyLH1bIFxcdF0qOj9bIFxcdF0qXFx8WyBcXHRdKjo/WyBcXHRdKig/Oi18PSl7Mix9W1xcc1xcU10rPyg/Olxcblxcbnx+MCkvZ207XG4gICAgcmV0dXJuIHRoaXMuX3JlcGxhY2VDb21wb25lbnQoXG4gICAgICBtYXJrZG93bixcbiAgICAgIFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50LFxuICAgICAgdGFibGVSZ3gsXG4gICAgICAoXG4gICAgICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50PixcbiAgICAgICAgbWF0Y2g6IHN0cmluZ1xuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUxpbmVzOiBzdHJpbmdbXSA9IG1hdGNoXG4gICAgICAgICAgLnJlcGxhY2UoLyhcXHN8XFx0KSpcXG4rKFxcc3xcXHQpKiQvZywgJycpXG4gICAgICAgICAgLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgY29uc3QgY29sdW1uczogc3RyaW5nW10gPSBkYXRhVGFibGVMaW5lc1swXVxuICAgICAgICAgIC5zcGxpdCgnfCcpXG4gICAgICAgICAgLmZpbHRlcigoY29sOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjb2w7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAubWFwKChzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzLnRyaW0oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgYWxpZ25tZW50OiBzdHJpbmdbXSA9IGRhdGFUYWJsZUxpbmVzWzFdXG4gICAgICAgICAgLnNwbGl0KCd8JylcbiAgICAgICAgICAuZmlsdGVyKCh2OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm1hcCgoczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcy50cmltKCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGF0YTogYW55W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPCBkYXRhVGFibGVMaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHJvd1NwbGl0OiBzdHJpbmdbXSA9IGRhdGFUYWJsZUxpbmVzW2ldXG4gICAgICAgICAgICAuc3BsaXQoJ3wnKVxuICAgICAgICAgICAgLmZpbHRlcigoY2VsbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjZWxsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKHM6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gcy50cmltKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCByb3c6IGFueSA9IHt9O1xuICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvd1NwbGl0Q2VsbDogc3RyaW5nID0gcm93U3BsaXRbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHJvd1NwbGl0Q2VsbCkge1xuICAgICAgICAgICAgICByb3dbY29sLnRvTG93ZXJDYXNlKCkudHJpbSgpXSA9IHJvd1NwbGl0Q2VsbC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgIC9gKC4qKWAvLFxuICAgICAgICAgICAgICAgIChtOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZGF0YS5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbHVtbkRlZnMgPSBjb2x1bW5zLm1hcChcbiAgICAgICAgICAoY29sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBjb2wsXG4gICAgICAgICAgICAgIG5hbWU6IGNvbCA/IGNvbC50b0xvd2VyQ2FzZSgpLnRyaW0oKSA6IGBjb2x1bW4gJHtpbmRleH1gLFxuICAgICAgICAgICAgICBudW1lcmljOiAvXi0tKlsgXFx0XSo6WyBcXHRdKiQvLnRlc3QoYWxpZ25tZW50W2luZGV4XSksXG4gICAgICAgICAgICAgIGNlbnRlcmVkOiAvXjotLSpbIFxcdF0qOlsgXFx0XSokLy50ZXN0KGFsaWdubWVudFtpbmRleF0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kYXRhID0gZGF0YTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwbGFjZUxpc3RzKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxpc3RSZWdFeHAgPSAvKD86XnxcXG4pKCggKihcXCt8XFwqfC0pKVsgfFxcdF0oLiopXFxuKSsvZztcbiAgICBjb25zdCBsaXN0Q2hhclJlZ0V4cCA9IG5ldyBSZWdFeHAoL14oXFwrfFxcKnwtKS8pO1xuICAgIHJldHVybiB0aGlzLl9yZXBsYWNlQ29tcG9uZW50KFxuICAgICAgbWFya2Rvd24sXG4gICAgICBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCxcbiAgICAgIGxpc3RSZWdFeHAsXG4gICAgICAoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VGRGbGF2b3JlZExpc3RDb21wb25lbnQ+LCBtYXRjaDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gLyhcXCt8XFwqfC0pLy5leGVjKG1hdGNoKTtcbiAgICAgICAgY29uc3QgbWF0Y2hJbmRleCA9IHN0YXJ0ICE9PSBudWxsID8gc3RhcnQuaW5kZXggOiAxO1xuXG4gICAgICAgIGNvbnN0IGxpbmVUZXh0czogc3RyaW5nW10gPSBtYXRjaC5zcGxpdChcbiAgICAgICAgICBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ1xcXFxuIHsnICsgKG1hdGNoSW5kZXggLSAxKS50b1N0cmluZygpICsgJ30oXFxcXCt8XFxcXCp8XFxcXC0pWyB8XFxcXHRdJ1xuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgbGluZVRleHRzLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IGxpbmVzOiBJRmxhdm9yZWRMaXN0SXRlbVtdID0gW107XG4gICAgICAgIGxpbmVUZXh0cy5mb3JFYWNoKCh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBzdWJsaW5lVGV4dHM6IHN0cmluZ1tdID0gdGV4dC5zcGxpdCgvXFxuICooXFwrfFxcKnwtKSAvKTtcbiAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IHN1YmxpbmVUZXh0cy5zaGlmdCgpID8/ICcnO1xuXG4gICAgICAgICAgaWYgKGxpc3RDaGFyUmVnRXhwLnRlc3QobGluZVRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGluZXMucHVzaCh7XG4gICAgICAgICAgICBsaW5lOiBsaW5lVGV4dCxcbiAgICAgICAgICAgIHN1YmxpbmVzOiBzdWJsaW5lVGV4dHNcbiAgICAgICAgICAgICAgLm1hcCgoc3VibGluZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGxpc3RDaGFyUmVnRXhwLnRlc3Qoc3VibGluZSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YmxpbmUudHJpbSgpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuZmlsdGVyKChsaW5lKSA9PiAhIWxpbmUpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmxpbmVzID0gbGluZXM7XG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiB0ZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19","import { Component, Input, ChangeDetectorRef, Output, EventEmitter, ChangeDetectionStrategy, } from '@angular/core';\nimport { TdMarkdownLoaderService } from '@covalent/markdown';\nimport { TdFlavoredMarkdownComponent } from '../flavored-markdown.component';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@covalent/markdown\";\nimport * as i2 from \"@angular/common\";\nfunction TdFlavoredMarkdownLoaderComponent_mat_progress_bar_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"mat-progress-bar\", 2);\n} if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", \"delay\");\n} }\nfunction TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td-flavored-markdown\", 3);\n i0.ɵɵlistener(\"contentReady\", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_contentReady_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.contentReady.emit()); })(\"buttonClicked\", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.buttonClicked.emit($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"content\", ctx_r1.content)(\"hostedUrl\", ctx_r1.url ?? \"\")(\"anchor\", ctx_r1.anchor ?? \"\")(\"copyCodeToClipboard\", ctx_r1.copyCodeToClipboard)(\"copyCodeTooltips\", ctx_r1.copyCodeTooltips)(\"useCfmList\", ctx_r1.useCfmList);\n} }\n// TODO: make a td-markdown-loader component\nexport class TdFlavoredMarkdownLoaderComponent {\n _changeDetectorRef;\n _markdownUrlLoaderService;\n /**\n * url: string\n * The url of the markdown file.\n */\n url;\n /**\n * httpOptions: object\n * HTTP options that can be part of the request.\n */\n httpOptions;\n /**\n * anchor: string\n * Anchor to jump to.\n */\n anchor;\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n copyCodeToClipboard = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n copyCodeTooltips = {};\n /**\n * useCfmList?: boolean = false;\n * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.\n */\n useCfmList = false;\n /**\n * contentReady: void\n * Emitted when markdown rendering is finished.\n */\n contentReady = new EventEmitter();\n /**\n * loadFailed: Error\n * Emitted when loading of markdown file fails.\n */\n loadFailed = new EventEmitter();\n buttonClicked = new EventEmitter();\n content;\n loading = true;\n constructor(_changeDetectorRef, _markdownUrlLoaderService) {\n this._changeDetectorRef = _changeDetectorRef;\n this._markdownUrlLoaderService = _markdownUrlLoaderService;\n }\n ngOnChanges(changes) {\n if (changes['url'] || changes['httpOptions']) {\n this.loadMarkdown();\n }\n }\n async loadMarkdown() {\n this.loading = true;\n this._changeDetectorRef.markForCheck();\n try {\n this.content = await this._markdownUrlLoaderService.load(this.url ?? '', this.httpOptions);\n }\n catch (error) {\n this.loadFailed.emit(error);\n }\n finally {\n this.loading = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n static ɵfac = function TdFlavoredMarkdownLoaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFlavoredMarkdownLoaderComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.TdMarkdownLoaderService)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownLoaderComponent, selectors: [[\"td-flavored-markdown-loader\"]], inputs: { url: \"url\", httpOptions: \"httpOptions\", anchor: \"anchor\", copyCodeToClipboard: \"copyCodeToClipboard\", copyCodeTooltips: \"copyCodeTooltips\", useCfmList: \"useCfmList\" }, 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\", \"useCfmList\", \"contentReady\", \"buttonClicked\", 4, \"ngIf\"], [\"mode\", \"indeterminate\", \"color\", \"accent\", 1, \"sticky\", 3, \"ngClass\"], [3, \"contentReady\", \"buttonClicked\", \"content\", \"hostedUrl\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\", \"useCfmList\"]], template: function TdFlavoredMarkdownLoaderComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TdFlavoredMarkdownLoaderComponent_mat_progress_bar_0_Template, 1, 1, \"mat-progress-bar\", 0)(1, TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template, 1, 6, \"td-flavored-markdown\", 1);\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.loading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.loading);\n } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, MatProgressBar, TdFlavoredMarkdownComponent], styles: [\"[_nghost-%COMP%]{display:block}.sticky[_ngcontent-%COMP%]{position:absolute;top:0}.delay[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_delay-animation;animation-duration:.6s}@keyframes _ngcontent-%COMP%_delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}\"], changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownLoaderComponent, [{\n type: Component,\n args: [{ selector: 'td-flavored-markdown-loader', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, MatProgressBar, TdFlavoredMarkdownComponent], 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 [useCfmList]=\\\"useCfmList\\\"\\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\"] }]\n }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.TdMarkdownLoaderService }], { url: [{\n type: Input\n }], httpOptions: [{\n type: Input\n }], anchor: [{\n type: Input\n }], copyCodeToClipboard: [{\n type: Input\n }], copyCodeTooltips: [{\n type: Input\n }], useCfmList: [{\n type: Input\n }], contentReady: [{\n type: Output\n }], loadFailed: [{\n type: Output\n }], buttonClicked: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdFlavoredMarkdownLoaderComponent, { className: \"TdFlavoredMarkdownLoaderComponent\", filePath: \"lib/flavored-markdown-loader/flavored-markdown-loader.component.ts\", lineNumber: 26 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixFQUdqQixNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQXVDLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7SUNkL0Msc0NBTW9COztJQUxsQixpQ0FBbUI7Ozs7SUFNckIsK0NBVUM7SUFEQyxBQURBLDBPQUFnQiwwQkFBbUIsS0FBQyxxT0FDbkIsaUNBQTBCLEtBQUM7SUFDN0MsaUJBQXVCOzs7SUFIdEIsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLHdDQUFtQiwrQkFDSSwrQkFDQSxtREFDb0IsNkNBQ04saUNBQ1o7O0FERTNCLDRDQUE0QztBQVM1QyxNQUFNLE9BQU8saUNBQWlDO0lBMkRsQztJQUNBO0lBM0RWOzs7T0FHRztJQUNNLEdBQUcsQ0FBVTtJQUV0Qjs7O09BR0c7SUFDTSxXQUFXLENBQVU7SUFFOUI7OztPQUdHO0lBQ00sTUFBTSxDQUFVO0lBRXpCOzs7OztPQUtHO0lBQ00sbUJBQW1CLEdBQUksS0FBSyxDQUFDO0lBRXRDOzs7O09BSUc7SUFDTSxnQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO0lBRW5EOzs7T0FHRztJQUNNLFVBQVUsR0FBSSxLQUFLLENBQUM7SUFFN0I7OztPQUdHO0lBQ08sWUFBWSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhFOzs7T0FHRztJQUNPLFVBQVUsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVyRCxhQUFhLEdBQ3JCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFckIsT0FBTyxDQUFVO0lBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFFZixZQUNVLGtCQUFxQyxFQUNyQyx5QkFBa0Q7UUFEbEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQXlCO0lBQ3pELENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUN0RCxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFDZCxJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFjLENBQUMsQ0FBQztRQUN2QyxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7MkhBbkZVLGlDQUFpQzs2REFBakMsaUNBQWlDO1lDbEI5QyxBQVBBLDRHQU1DLHVHQVdBOztZQWZFLGtDQUFhO1lBTWIsY0FBYztZQUFkLG1DQUFjOzRCRGVMLFlBQVksdUJBQUUsY0FBYyxFQUFFLDJCQUEyQjs7aUZBRXhELGlDQUFpQztjQVA3QyxTQUFTOzJCQUNFLDZCQUE2QixtQkFHdEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsMkJBQTJCLENBQUM7d0ZBTzNELEdBQUc7a0JBQVgsS0FBSztZQU1HLFdBQVc7a0JBQW5CLEtBQUs7WUFNRyxNQUFNO2tCQUFkLEtBQUs7WUFRRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFPRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFNRyxVQUFVO2tCQUFsQixLQUFLO1lBTUksWUFBWTtrQkFBckIsTUFBTTtZQU1HLFVBQVU7a0JBQW5CLE1BQU07WUFFRyxhQUFhO2tCQUF0QixNQUFNOztrRkFwREksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRkTWFya2Rvd25Mb2FkZXJTZXJ2aWNlIH0gZnJvbSAnQGNvdmFsZW50L21hcmtkb3duJztcbmltcG9ydCB7IElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50LCBUZEZsYXZvcmVkTWFya2Rvd25Db21wb25lbnQgfSBmcm9tICcuLi9mbGF2b3JlZC1tYXJrZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUNvcHlDb2RlVG9vbHRpcHMgfSBmcm9tICdAY292YWxlbnQvaGlnaGxpZ2h0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIFRPRE86IG1ha2UgYSB0ZC1tYXJrZG93bi1sb2FkZXIgY29tcG9uZW50XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWZsYXZvcmVkLW1hcmtkb3duLWxvYWRlcicsXG4gIHN0eWxlVXJsczogWycuL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFByb2dyZXNzQmFyLCBUZEZsYXZvcmVkTWFya2Rvd25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRNYXJrZG93bkxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiB1cmw6IHN0cmluZ1xuICAgKiBUaGUgdXJsIG9mIHRoZSBtYXJrZG93biBmaWxlLlxuICAgKi9cbiAgQElucHV0KCkgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBodHRwT3B0aW9uczogb2JqZWN0XG4gICAqIEhUVFAgb3B0aW9ucyB0aGF0IGNhbiBiZSBwYXJ0IG9mIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgQElucHV0KCkgaHR0cE9wdGlvbnM/OiBvYmplY3Q7XG5cbiAgLyoqXG4gICAqIGFuY2hvcjogc3RyaW5nXG4gICAqIEFuY2hvciB0byBqdW1wIHRvLlxuICAgKi9cbiAgQElucHV0KCkgYW5jaG9yPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvQ2xpcGJvYXJkPzogYm9vbGVhblxuICAgKlxuICAgKiBEaXNwbGF5IGNvcHkgYnV0dG9uIG9uIGNvZGUgc25pcHBldHMgdG8gY29weSBjb2RlIHRvIGNsaXBib2FyZC5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9DbGlwYm9hcmQ/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwc1xuICAgKlxuICAgKiBUb29sdGlwcyBmb3IgY29weSBidXR0b24gdG8gY29weSBhbmQgdXBvbiBjb3B5aW5nLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb29sdGlwcz86IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG5cbiAgLyoqXG4gICAqIHVzZUNmbUxpc3Q/OiBib29sZWFuID0gZmFsc2U7XG4gICAqIFVzZSBDRk0gbGlzdCBjb21wb25lbnQgaW5zdGVhZCBvZiB2YW5pbGxhIG1hcmtkb3duIGxpc3QuIFVzZWQgaW4gY292YWxlbnQgZG9jdW1lbnRhdGlvbiBhcHAuXG4gICAqL1xuICBASW5wdXQoKSB1c2VDZm1MaXN0PyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk6IHZvaWRcbiAgICogRW1pdHRlZCB3aGVuIG1hcmtkb3duIHJlbmRlcmluZyBpcyBmaW5pc2hlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBjb250ZW50UmVhZHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogbG9hZEZhaWxlZDogRXJyb3JcbiAgICogRW1pdHRlZCB3aGVuIGxvYWRpbmcgb2YgbWFya2Rvd24gZmlsZSBmYWlscy5cbiAgICovXG4gIEBPdXRwdXQoKSBsb2FkRmFpbGVkOiBFdmVudEVtaXR0ZXI8RXJyb3I+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29udGVudCE6IHN0cmluZztcbiAgbG9hZGluZyA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX21hcmtkb3duVXJsTG9hZGVyU2VydmljZTogVGRNYXJrZG93bkxvYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndXJsJ10gfHwgY2hhbmdlc1snaHR0cE9wdGlvbnMnXSkge1xuICAgICAgdGhpcy5sb2FkTWFya2Rvd24oKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkTWFya2Rvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb250ZW50ID0gYXdhaXQgdGhpcy5fbWFya2Rvd25VcmxMb2FkZXJTZXJ2aWNlLmxvYWQoXG4gICAgICAgIHRoaXMudXJsID8/ICcnLFxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmxvYWRGYWlsZWQuZW1pdChlcnJvciBhcyBFcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LXByb2dyZXNzLWJhclxuICBbbmdDbGFzc109XCInZGVsYXknXCJcbiAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxuICBjb2xvcj1cImFjY2VudFwiXG4gIGNsYXNzPVwic3RpY2t5XCJcbj48L21hdC1wcm9ncmVzcy1iYXI+XG48dGQtZmxhdm9yZWQtbWFya2Rvd25cbiAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gIFtjb250ZW50XT1cImNvbnRlbnRcIlxuICBbaG9zdGVkVXJsXT1cInVybCA/PyAnJ1wiXG4gIFthbmNob3JdPVwiYW5jaG9yID8/ICcnXCJcbiAgW2NvcHlDb2RlVG9DbGlwYm9hcmRdPVwiY29weUNvZGVUb0NsaXBib2FyZFwiXG4gIFtjb3B5Q29kZVRvb2x0aXBzXT1cImNvcHlDb2RlVG9vbHRpcHNcIlxuICBbdXNlQ2ZtTGlzdF09XCJ1c2VDZm1MaXN0XCJcbiAgKGNvbnRlbnRSZWFkeSk9XCJjb250ZW50UmVhZHkuZW1pdCgpXCJcbiAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuPjwvdGQtZmxhdm9yZWQtbWFya2Rvd24+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { TdFlavoredListComponent } from './cfm-list/cfm-list.component';\nimport { TdFlavoredMarkdownComponent, TdFlavoredMarkdownContainerDirective, TdFlavoredMarkdownButtonComponent, TdFlavoredMarkdownTableComponent, } from './flavored-markdown.component';\nimport { TdFlavoredMarkdownLoaderComponent } from './flavored-markdown-loader/flavored-markdown-loader.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\nexport class CovalentFlavoredMarkdownModule {\n static ɵfac = function CovalentFlavoredMarkdownModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentFlavoredMarkdownModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentFlavoredMarkdownModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [TdFlavoredListComponent,\n TdFlavoredMarkdownLoaderComponent,\n TdFlavoredMarkdownButtonComponent,\n TdFlavoredMarkdownTableComponent] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentFlavoredMarkdownModule, [{\n type: NgModule,\n args: [{\n imports: [\n TdFlavoredListComponent,\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownContainerDirective,\n TdFlavoredMarkdownLoaderComponent,\n TdFlavoredMarkdownButtonComponent,\n TdFlavoredMarkdownTableComponent,\n ],\n exports: [TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent],\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentFlavoredMarkdownModule, { imports: [TdFlavoredListComponent,\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownContainerDirective,\n TdFlavoredMarkdownLoaderComponent,\n TdFlavoredMarkdownButtonComponent,\n TdFlavoredMarkdownTableComponent], exports: [TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2ZsYXZvcmVkLW1hcmtkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0Isb0NBQW9DLEVBQ3BDLGlDQUFpQyxFQUNqQyxnQ0FBZ0MsR0FDakMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFFbEg7OztHQUdHO0FBWUgsTUFBTSxPQUFPLDhCQUE4Qjt3SEFBOUIsOEJBQThCOzREQUE5Qiw4QkFBOEI7Z0VBVHZDLHVCQUF1QjtZQUd2QixpQ0FBaUM7WUFDakMsaUNBQWlDO1lBQ2pDLGdDQUFnQzs7aUZBSXZCLDhCQUE4QjtjQVgxQyxRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLHVCQUF1QjtvQkFDdkIsMkJBQTJCO29CQUMzQixvQ0FBb0M7b0JBQ3BDLGlDQUFpQztvQkFDakMsaUNBQWlDO29CQUNqQyxnQ0FBZ0M7aUJBQ2pDO2dCQUNELE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLGlDQUFpQyxDQUFDO2FBQzFFOzt3RkFDWSw4QkFBOEIsY0FUdkMsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQixvQ0FBb0M7UUFDcEMsaUNBQWlDO1FBQ2pDLGlDQUFpQztRQUNqQyxnQ0FBZ0MsYUFFeEIsMkJBQTJCLEVBQUUsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jZm0tbGlzdC9jZm0tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgVGRGbGF2b3JlZE1hcmtkb3duQ29tcG9uZW50LFxuICBUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmUsXG4gIFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudCxcbiAgVGRGbGF2b3JlZE1hcmtkb3duVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4vZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFRkRmxhdm9yZWRNYXJrZG93bkxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFRoaXMgbW9kdWxlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuXG4gKiBQbGVhc2UgbWlncmF0ZSB0byB1c2luZyBzdGFuZGFsb25lIGNvbXBvbmVudHMgYXMgc29vbiBhcyBwb3NzaWJsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmUsXG4gICAgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudCxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25UYWJsZUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1RkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCwgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRGbGF2b3JlZE1hcmtkb3duTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtZmxhdm9yZWQtbWFya2Rvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21hcmtkb3duLWZsYXZvcmVkL3NyYy9jb3ZhbGVudC1mbGF2b3JlZC1tYXJrZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":["i2","i1"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,237 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, AfterViewInit, EventEmitter, ViewContainerRef, Renderer2, ComponentRef, OnChanges, OnDestroy, ComponentFactoryResolver, ChangeDetectorRef, Injector, ElementRef, SimpleChanges } from '@angular/core';
3
+ import { MatSort } from '@angular/material/sort';
4
+ import { MatTableDataSource } from '@angular/material/table';
5
+ import { ICopyCodeTooltips, IRawToggleLabels } from '@covalent/highlight';
6
+ import { TdMarkdownLoaderService } from '@covalent/markdown';
7
+
8
+ interface ITdFlavoredMarkdownButtonClickEvent {
9
+ text: string;
10
+ data: string;
11
+ }
12
+ interface ITdFlavoredMarkDownTableColumn {
13
+ label: string;
14
+ name: string;
15
+ numeric: boolean;
16
+ centered: boolean;
17
+ }
18
+ declare class TdFlavoredMarkdownTableComponent implements OnInit, AfterViewInit {
19
+ columnDefs: ITdFlavoredMarkDownTableColumn[];
20
+ data: unknown[];
21
+ sort: MatSort;
22
+ displayedColumns: string[];
23
+ dataSource: MatTableDataSource<unknown>;
24
+ ngOnInit(): void;
25
+ ngAfterViewInit(): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownTableComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownTableComponent, "ng-component", never, { "columnDefs": { "alias": "columnDefs"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
28
+ }
29
+ declare class TdFlavoredMarkdownButtonComponent {
30
+ display: string;
31
+ text: string;
32
+ data: string;
33
+ clicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent>;
34
+ emitClick(): void;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownButtonComponent, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownButtonComponent, "ng-component", never, { "text": { "alias": "text"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
37
+ }
38
+ declare class TdFlavoredMarkdownContainerDirective {
39
+ viewContainerRef: ViewContainerRef;
40
+ private _renderer;
41
+ constructor(viewContainerRef: ViewContainerRef, _renderer: Renderer2);
42
+ clear(): void;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownContainerDirective, never>;
44
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TdFlavoredMarkdownContainerDirective, "[tdFlavoredMarkdownContainer]", never, {}, {}, never, never, true, never>;
45
+ }
46
+ type IReplacerFunc<T> = (componentRef: ComponentRef<T>, ...args: any[]) => void;
47
+ declare class TdFlavoredMarkdownComponent implements AfterViewInit, OnChanges, OnDestroy {
48
+ private _componentFactoryResolver;
49
+ private _renderer;
50
+ private _changeDetectorRef;
51
+ private _injector;
52
+ private _elementRef;
53
+ private _content;
54
+ private _simpleLineBreaks;
55
+ private _hostedUrl;
56
+ private _anchor;
57
+ private _components;
58
+ private _viewInit;
59
+ /**
60
+ * content?: string
61
+ *
62
+ * Markdown format content to be parsed as material/covalent markup.
63
+ *
64
+ * e.g. README.md content.
65
+ */
66
+ set content(content: string);
67
+ /**
68
+ * simpleLineBreaks?: string
69
+ *
70
+ * Sets whether newline characters inside paragraphs and spans are parsed as <br/>.
71
+ * Defaults to false.
72
+ */
73
+ set simpleLineBreaks(simpleLineBreaks: boolean);
74
+ /**
75
+ * hostedUrl?: string
76
+ *
77
+ * If markdown contains relative paths, this is required to generate correct urls
78
+ *
79
+ */
80
+ set hostedUrl(hostedUrl: string);
81
+ /**
82
+ * anchor?: string
83
+ *
84
+ * Anchor to jump to
85
+ *
86
+ */
87
+ set anchor(anchor: string);
88
+ /**
89
+ * copyCodeToClipboard?: boolean
90
+ *
91
+ * Display copy button on code snippets to copy code to clipboard.
92
+ *
93
+ */
94
+ copyCodeToClipboard?: boolean | undefined;
95
+ /**
96
+ * copyCodeTooltips?: ICopyCodeTooltips
97
+ *
98
+ * Tooltips for copy button to copy and upon copying.
99
+ */
100
+ copyCodeTooltips?: ICopyCodeTooltips;
101
+ /**
102
+ * toggleRawCode?: boolean
103
+ *
104
+ * Display button to toggle raw code view
105
+ */
106
+ toggleRawCode: boolean;
107
+ /**
108
+ * rawToggleLabels?: IRawToggleLabels
109
+ *
110
+ * Labels for raw code toggle button
111
+ */
112
+ rawToggleLabels?: IRawToggleLabels;
113
+ /**
114
+ * useCfmList?: boolean = false;
115
+ * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.
116
+ */
117
+ useCfmList?: boolean | undefined;
118
+ /**
119
+ * The file extensions to monitor for in anchor tags. If an anchor's `href` ends
120
+ * with this extension, an event will be triggered insetad of performing the default action.
121
+ * Example values: ".ipynb", ".zip", ".docx"
122
+ */
123
+ fileLinkExtensions?: string[];
124
+ /**
125
+ * Event emitted when an anchor tag with an `href` matching the specified
126
+ * file link extension is clicked. The emitted value is the `href` of the clicked anchor.
127
+ */
128
+ fileLinkClicked: EventEmitter<URL>;
129
+ /**
130
+ * contentReady?: function
131
+ * Event emitted after the markdown content rendering is finished.
132
+ */
133
+ contentReady: EventEmitter<undefined>;
134
+ /**
135
+ * buttonClicked?: ITdFlavoredMarkdownButtonClickEvent
136
+ * Event emitted when a button is clicked
137
+ * Is an object containing text and data of button
138
+ */
139
+ buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent>;
140
+ container: TdFlavoredMarkdownContainerDirective;
141
+ private _destroy$;
142
+ constructor(_componentFactoryResolver: ComponentFactoryResolver, _renderer: Renderer2, _changeDetectorRef: ChangeDetectorRef, _injector: Injector, _elementRef: ElementRef);
143
+ ngOnChanges(changes: SimpleChanges): void;
144
+ ngAfterViewInit(): void;
145
+ ngOnDestroy(): void;
146
+ refresh(): void;
147
+ private _loadContent;
148
+ private _render;
149
+ private _replaceComponent;
150
+ private _replaceCheckbox;
151
+ private _replaceButtons;
152
+ private _replaceCodeBlocks;
153
+ private _replaceTables;
154
+ private _replaceLists;
155
+ static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownComponent, never>;
156
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownComponent, "td-flavored-markdown", never, { "content": { "alias": "content"; "required": false; }; "simpleLineBreaks": { "alias": "simpleLineBreaks"; "required": false; }; "hostedUrl": { "alias": "hostedUrl"; "required": false; }; "anchor": { "alias": "anchor"; "required": false; }; "copyCodeToClipboard": { "alias": "copyCodeToClipboard"; "required": false; }; "copyCodeTooltips": { "alias": "copyCodeTooltips"; "required": false; }; "toggleRawCode": { "alias": "toggleRawCode"; "required": false; }; "rawToggleLabels": { "alias": "rawToggleLabels"; "required": false; }; "useCfmList": { "alias": "useCfmList"; "required": false; }; "fileLinkExtensions": { "alias": "fileLinkExtensions"; "required": false; }; }, { "fileLinkClicked": "fileLinkClicked"; "contentReady": "contentReady"; "buttonClicked": "buttonClicked"; }, never, ["*"], true, never>;
157
+ }
158
+
159
+ interface IFlavoredListItem {
160
+ line: string;
161
+ sublines?: string[];
162
+ }
163
+ declare class TdFlavoredListComponent {
164
+ lines: IFlavoredListItem[];
165
+ dense: boolean;
166
+ static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredListComponent, never>;
167
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredListComponent, "td-cfm-list", never, { "lines": { "alias": "lines"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, {}, never, never, true, never>;
168
+ }
169
+
170
+ declare class TdFlavoredMarkdownLoaderComponent implements OnChanges {
171
+ private _changeDetectorRef;
172
+ private _markdownUrlLoaderService;
173
+ /**
174
+ * url: string
175
+ * The url of the markdown file.
176
+ */
177
+ url?: string;
178
+ /**
179
+ * httpOptions: object
180
+ * HTTP options that can be part of the request.
181
+ */
182
+ httpOptions?: object;
183
+ /**
184
+ * anchor: string
185
+ * Anchor to jump to.
186
+ */
187
+ anchor?: string;
188
+ /**
189
+ * copyCodeToClipboard?: boolean
190
+ *
191
+ * Display copy button on code snippets to copy code to clipboard.
192
+ *
193
+ */
194
+ copyCodeToClipboard?: boolean | undefined;
195
+ /**
196
+ * copyCodeTooltips?: ICopyCodeTooltips
197
+ *
198
+ * Tooltips for copy button to copy and upon copying.
199
+ */
200
+ copyCodeTooltips?: ICopyCodeTooltips;
201
+ /**
202
+ * useCfmList?: boolean = false;
203
+ * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.
204
+ */
205
+ useCfmList?: boolean | undefined;
206
+ /**
207
+ * contentReady: void
208
+ * Emitted when markdown rendering is finished.
209
+ */
210
+ contentReady: EventEmitter<void>;
211
+ /**
212
+ * loadFailed: Error
213
+ * Emitted when loading of markdown file fails.
214
+ */
215
+ loadFailed: EventEmitter<Error>;
216
+ buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent>;
217
+ content: string;
218
+ loading: boolean;
219
+ constructor(_changeDetectorRef: ChangeDetectorRef, _markdownUrlLoaderService: TdMarkdownLoaderService);
220
+ ngOnChanges(changes: SimpleChanges): void;
221
+ loadMarkdown(): Promise<void>;
222
+ static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownLoaderComponent, never>;
223
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownLoaderComponent, "td-flavored-markdown-loader", never, { "url": { "alias": "url"; "required": false; }; "httpOptions": { "alias": "httpOptions"; "required": false; }; "anchor": { "alias": "anchor"; "required": false; }; "copyCodeToClipboard": { "alias": "copyCodeToClipboard"; "required": false; }; "copyCodeTooltips": { "alias": "copyCodeTooltips"; "required": false; }; "useCfmList": { "alias": "useCfmList"; "required": false; }; }, { "contentReady": "contentReady"; "loadFailed": "loadFailed"; "buttonClicked": "buttonClicked"; }, never, never, true, never>;
224
+ }
225
+
1
226
  /**
2
- * Generated bundle index. Do not edit.
227
+ * @deprecated This module is deprecated and will be removed in future versions.
228
+ * Please migrate to using standalone components as soon as possible.
3
229
  */
4
- /// <amd-module name="@covalent/flavored-markdown" />
5
- export * from './public_api';
230
+ declare class CovalentFlavoredMarkdownModule {
231
+ static ɵfac: i0.ɵɵFactoryDeclaration<CovalentFlavoredMarkdownModule, never>;
232
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentFlavoredMarkdownModule, never, [typeof TdFlavoredListComponent, typeof TdFlavoredMarkdownComponent, typeof TdFlavoredMarkdownContainerDirective, typeof TdFlavoredMarkdownLoaderComponent, typeof TdFlavoredMarkdownButtonComponent, typeof TdFlavoredMarkdownTableComponent], [typeof TdFlavoredMarkdownComponent, typeof TdFlavoredMarkdownLoaderComponent]>;
233
+ static ɵinj: i0.ɵɵInjectorDeclaration<CovalentFlavoredMarkdownModule>;
234
+ }
235
+
236
+ export { CovalentFlavoredMarkdownModule, TdFlavoredMarkdownButtonComponent, TdFlavoredMarkdownComponent, TdFlavoredMarkdownContainerDirective, TdFlavoredMarkdownLoaderComponent, TdFlavoredMarkdownTableComponent };
237
+ export type { IReplacerFunc, ITdFlavoredMarkDownTableColumn, ITdFlavoredMarkdownButtonClickEvent };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@covalent/flavored-markdown",
3
- "version": "10.4.0-beta.2",
3
+ "version": "11.0.0-beta.1",
4
4
  "description": "Teradata UI Platform Flavored Markdown Module",
5
5
  "keywords": [
6
6
  "angular",
@@ -21,13 +21,13 @@
21
21
  "license": "MIT",
22
22
  "author": "Teradata UX",
23
23
  "peerDependencies": {
24
- "@angular/common": "19.x.x",
25
- "@angular/core": "19.x.x",
26
- "@angular/cdk": "19.x.x",
27
- "@angular/material": "19.x.x",
28
- "@covalent/core": "10.4.0-beta.2",
29
- "@covalent/highlight": "10.4.0-beta.2",
30
- "@covalent/markdown": "10.4.0-beta.2"
24
+ "@angular/common": "20.x.x",
25
+ "@angular/core": "20.x.x",
26
+ "@angular/cdk": "20.x.x",
27
+ "@angular/material": "20.x.x",
28
+ "@covalent/core": "11.0.0-beta.1",
29
+ "@covalent/highlight": "11.0.0-beta.1",
30
+ "@covalent/markdown": "11.0.0-beta.1"
31
31
  },
32
32
  "dependencies": {
33
33
  "tslib": "^2.8.1"
@@ -48,6 +48,6 @@
48
48
  "typings": "index.d.ts",
49
49
  "sideEffects": false,
50
50
  "scripts": {
51
- "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\n')\" && exit 1"
51
+ "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with partial compilation mode, before attempting to publish.\\n')\" && exit 1"
52
52
  }
53
53
  }
@@ -1,11 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export interface IFlavoredListItem {
3
- line: string;
4
- sublines?: string[];
5
- }
6
- export declare class TdFlavoredListComponent {
7
- lines: IFlavoredListItem[];
8
- dense: boolean;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredListComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredListComponent, "td-cfm-list", never, { "lines": { "alias": "lines"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, {}, never, never, true, never>;
11
- }
@@ -1,60 +0,0 @@
1
- import { ChangeDetectorRef, SimpleChanges, OnChanges, EventEmitter } from '@angular/core';
2
- import { TdMarkdownLoaderService } from '@covalent/markdown';
3
- import { ITdFlavoredMarkdownButtonClickEvent } from '../flavored-markdown.component';
4
- import { ICopyCodeTooltips } from '@covalent/highlight';
5
- import * as i0 from "@angular/core";
6
- export declare class TdFlavoredMarkdownLoaderComponent implements OnChanges {
7
- private _changeDetectorRef;
8
- private _markdownUrlLoaderService;
9
- /**
10
- * url: string
11
- * The url of the markdown file.
12
- */
13
- url?: string;
14
- /**
15
- * httpOptions: object
16
- * HTTP options that can be part of the request.
17
- */
18
- httpOptions?: object;
19
- /**
20
- * anchor: string
21
- * Anchor to jump to.
22
- */
23
- anchor?: string;
24
- /**
25
- * copyCodeToClipboard?: boolean
26
- *
27
- * Display copy button on code snippets to copy code to clipboard.
28
- *
29
- */
30
- copyCodeToClipboard?: boolean | undefined;
31
- /**
32
- * copyCodeTooltips?: ICopyCodeTooltips
33
- *
34
- * Tooltips for copy button to copy and upon copying.
35
- */
36
- copyCodeTooltips?: ICopyCodeTooltips;
37
- /**
38
- * useCfmList?: boolean = false;
39
- * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.
40
- */
41
- useCfmList?: boolean | undefined;
42
- /**
43
- * contentReady: void
44
- * Emitted when markdown rendering is finished.
45
- */
46
- contentReady: EventEmitter<void>;
47
- /**
48
- * loadFailed: Error
49
- * Emitted when loading of markdown file fails.
50
- */
51
- loadFailed: EventEmitter<Error>;
52
- buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent>;
53
- content: string;
54
- loading: boolean;
55
- constructor(_changeDetectorRef: ChangeDetectorRef, _markdownUrlLoaderService: TdMarkdownLoaderService);
56
- ngOnChanges(changes: SimpleChanges): void;
57
- loadMarkdown(): Promise<void>;
58
- static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownLoaderComponent, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownLoaderComponent, "td-flavored-markdown-loader", never, { "url": { "alias": "url"; "required": false; }; "httpOptions": { "alias": "httpOptions"; "required": false; }; "anchor": { "alias": "anchor"; "required": false; }; "copyCodeToClipboard": { "alias": "copyCodeToClipboard"; "required": false; }; "copyCodeTooltips": { "alias": "copyCodeTooltips"; "required": false; }; "useCfmList": { "alias": "useCfmList"; "required": false; }; }, { "contentReady": "contentReady"; "loadFailed": "loadFailed"; "buttonClicked": "buttonClicked"; }, never, never, true, never>;
60
- }
@@ -1,155 +0,0 @@
1
- import { AfterViewInit, Renderer2, ChangeDetectorRef, EventEmitter, ViewContainerRef, ComponentFactoryResolver, Injector, ComponentRef, OnChanges, SimpleChanges, ElementRef, OnInit, OnDestroy } from '@angular/core';
2
- import { MatSort } from '@angular/material/sort';
3
- import { MatTableDataSource } from '@angular/material/table';
4
- import { ICopyCodeTooltips, IRawToggleLabels } from '@covalent/highlight';
5
- import * as i0 from "@angular/core";
6
- export interface ITdFlavoredMarkdownButtonClickEvent {
7
- text: string;
8
- data: string;
9
- }
10
- export interface ITdFlavoredMarkDownTableColumn {
11
- label: string;
12
- name: string;
13
- numeric: boolean;
14
- centered: boolean;
15
- }
16
- export declare class TdFlavoredMarkdownTableComponent implements OnInit, AfterViewInit {
17
- columnDefs: ITdFlavoredMarkDownTableColumn[];
18
- data: unknown[];
19
- sort: MatSort;
20
- displayedColumns: string[];
21
- dataSource: MatTableDataSource<unknown>;
22
- ngOnInit(): void;
23
- ngAfterViewInit(): void;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownTableComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownTableComponent, "ng-component", never, { "columnDefs": { "alias": "columnDefs"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
26
- }
27
- export declare class TdFlavoredMarkdownButtonComponent {
28
- display: string;
29
- text: string;
30
- data: string;
31
- clicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent>;
32
- emitClick(): void;
33
- static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownButtonComponent, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownButtonComponent, "ng-component", never, { "text": { "alias": "text"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
35
- }
36
- export declare class TdFlavoredMarkdownContainerDirective {
37
- viewContainerRef: ViewContainerRef;
38
- private _renderer;
39
- constructor(viewContainerRef: ViewContainerRef, _renderer: Renderer2);
40
- clear(): void;
41
- static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownContainerDirective, never>;
42
- static ɵdir: i0.ɵɵDirectiveDeclaration<TdFlavoredMarkdownContainerDirective, "[tdFlavoredMarkdownContainer]", never, {}, {}, never, never, true, never>;
43
- }
44
- export type IReplacerFunc<T> = (componentRef: ComponentRef<T>, ...args: any[]) => void;
45
- export declare class TdFlavoredMarkdownComponent implements AfterViewInit, OnChanges, OnDestroy {
46
- private _componentFactoryResolver;
47
- private _renderer;
48
- private _changeDetectorRef;
49
- private _injector;
50
- private _elementRef;
51
- private _content;
52
- private _simpleLineBreaks;
53
- private _hostedUrl;
54
- private _anchor;
55
- private _components;
56
- private _viewInit;
57
- /**
58
- * content?: string
59
- *
60
- * Markdown format content to be parsed as material/covalent markup.
61
- *
62
- * e.g. README.md content.
63
- */
64
- set content(content: string);
65
- /**
66
- * simpleLineBreaks?: string
67
- *
68
- * Sets whether newline characters inside paragraphs and spans are parsed as <br/>.
69
- * Defaults to false.
70
- */
71
- set simpleLineBreaks(simpleLineBreaks: boolean);
72
- /**
73
- * hostedUrl?: string
74
- *
75
- * If markdown contains relative paths, this is required to generate correct urls
76
- *
77
- */
78
- set hostedUrl(hostedUrl: string);
79
- /**
80
- * anchor?: string
81
- *
82
- * Anchor to jump to
83
- *
84
- */
85
- set anchor(anchor: string);
86
- /**
87
- * copyCodeToClipboard?: boolean
88
- *
89
- * Display copy button on code snippets to copy code to clipboard.
90
- *
91
- */
92
- copyCodeToClipboard?: boolean | undefined;
93
- /**
94
- * copyCodeTooltips?: ICopyCodeTooltips
95
- *
96
- * Tooltips for copy button to copy and upon copying.
97
- */
98
- copyCodeTooltips?: ICopyCodeTooltips;
99
- /**
100
- * toggleRawCode?: boolean
101
- *
102
- * Display button to toggle raw code view
103
- */
104
- toggleRawCode: boolean;
105
- /**
106
- * rawToggleLabels?: IRawToggleLabels
107
- *
108
- * Labels for raw code toggle button
109
- */
110
- rawToggleLabels?: IRawToggleLabels;
111
- /**
112
- * useCfmList?: boolean = false;
113
- * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.
114
- */
115
- useCfmList?: boolean | undefined;
116
- /**
117
- * The file extensions to monitor for in anchor tags. If an anchor's `href` ends
118
- * with this extension, an event will be triggered insetad of performing the default action.
119
- * Example values: ".ipynb", ".zip", ".docx"
120
- */
121
- fileLinkExtensions?: string[];
122
- /**
123
- * Event emitted when an anchor tag with an `href` matching the specified
124
- * file link extension is clicked. The emitted value is the `href` of the clicked anchor.
125
- */
126
- fileLinkClicked: EventEmitter<URL>;
127
- /**
128
- * contentReady?: function
129
- * Event emitted after the markdown content rendering is finished.
130
- */
131
- contentReady: EventEmitter<undefined>;
132
- /**
133
- * buttonClicked?: ITdFlavoredMarkdownButtonClickEvent
134
- * Event emitted when a button is clicked
135
- * Is an object containing text and data of button
136
- */
137
- buttonClicked: EventEmitter<ITdFlavoredMarkdownButtonClickEvent>;
138
- container: TdFlavoredMarkdownContainerDirective;
139
- private _destroy$;
140
- constructor(_componentFactoryResolver: ComponentFactoryResolver, _renderer: Renderer2, _changeDetectorRef: ChangeDetectorRef, _injector: Injector, _elementRef: ElementRef);
141
- ngOnChanges(changes: SimpleChanges): void;
142
- ngAfterViewInit(): void;
143
- ngOnDestroy(): void;
144
- refresh(): void;
145
- private _loadContent;
146
- private _render;
147
- private _replaceComponent;
148
- private _replaceCheckbox;
149
- private _replaceButtons;
150
- private _replaceCodeBlocks;
151
- private _replaceTables;
152
- private _replaceLists;
153
- static ɵfac: i0.ɵɵFactoryDeclaration<TdFlavoredMarkdownComponent, never>;
154
- static ɵcmp: i0.ɵɵComponentDeclaration<TdFlavoredMarkdownComponent, "td-flavored-markdown", never, { "content": { "alias": "content"; "required": false; }; "simpleLineBreaks": { "alias": "simpleLineBreaks"; "required": false; }; "hostedUrl": { "alias": "hostedUrl"; "required": false; }; "anchor": { "alias": "anchor"; "required": false; }; "copyCodeToClipboard": { "alias": "copyCodeToClipboard"; "required": false; }; "copyCodeTooltips": { "alias": "copyCodeTooltips"; "required": false; }; "toggleRawCode": { "alias": "toggleRawCode"; "required": false; }; "rawToggleLabels": { "alias": "rawToggleLabels"; "required": false; }; "useCfmList": { "alias": "useCfmList"; "required": false; }; "fileLinkExtensions": { "alias": "fileLinkExtensions"; "required": false; }; }, { "fileLinkClicked": "fileLinkClicked"; "contentReady": "contentReady"; "buttonClicked": "buttonClicked"; }, never, ["*"], true, never>;
155
- }
@@ -1,13 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./cfm-list/cfm-list.component";
3
- import * as i2 from "./flavored-markdown.component";
4
- import * as i3 from "./flavored-markdown-loader/flavored-markdown-loader.component";
5
- /**
6
- * @deprecated This module is deprecated and will be removed in future versions.
7
- * Please migrate to using standalone components as soon as possible.
8
- */
9
- export declare class CovalentFlavoredMarkdownModule {
10
- static ɵfac: i0.ɵɵFactoryDeclaration<CovalentFlavoredMarkdownModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentFlavoredMarkdownModule, never, [typeof i1.TdFlavoredListComponent, typeof i2.TdFlavoredMarkdownComponent, typeof i2.TdFlavoredMarkdownContainerDirective, typeof i3.TdFlavoredMarkdownLoaderComponent, typeof i2.TdFlavoredMarkdownButtonComponent, typeof i2.TdFlavoredMarkdownTableComponent], [typeof i2.TdFlavoredMarkdownComponent, typeof i3.TdFlavoredMarkdownLoaderComponent]>;
12
- static ɵinj: i0.ɵɵInjectorDeclaration<CovalentFlavoredMarkdownModule>;
13
- }
package/public_api.d.ts DELETED
@@ -1,3 +0,0 @@
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';