@covalent/markdown 11.0.0-beta.1 → 11.0.0-beta.3
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,8 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, SecurityContext, Component, Output, Input, HostBinding, Injectable, NgModule } from '@angular/core';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import * as i1 from '@angular/platform-browser';
|
|
2
|
+
import { inject, Renderer2, ElementRef, NgZone, EventEmitter, SecurityContext, Component, Output, Input, HostBinding, Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import { HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
4
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
5
|
import * as showdown from 'showdown';
|
|
7
6
|
|
|
8
7
|
function removeLeadingHash(str) {
|
|
@@ -283,10 +282,10 @@ function stripAllHtmlTags(input) {
|
|
|
283
282
|
return sanitized;
|
|
284
283
|
}
|
|
285
284
|
class TdMarkdownComponent {
|
|
286
|
-
_renderer;
|
|
287
|
-
_elementRef;
|
|
288
|
-
_domSanitizer;
|
|
289
|
-
_ngZone;
|
|
285
|
+
_renderer = inject(Renderer2);
|
|
286
|
+
_elementRef = inject(ElementRef);
|
|
287
|
+
_domSanitizer = inject(DomSanitizer);
|
|
288
|
+
_ngZone = inject(NgZone);
|
|
290
289
|
_content;
|
|
291
290
|
_simpleLineBreaks = false;
|
|
292
291
|
_hostedUrl;
|
|
@@ -353,12 +352,6 @@ class TdMarkdownComponent {
|
|
|
353
352
|
* Event emitted after the markdown content rendering is finished.
|
|
354
353
|
*/
|
|
355
354
|
contentReady = new EventEmitter();
|
|
356
|
-
constructor(_renderer, _elementRef, _domSanitizer, _ngZone) {
|
|
357
|
-
this._renderer = _renderer;
|
|
358
|
-
this._elementRef = _elementRef;
|
|
359
|
-
this._domSanitizer = _domSanitizer;
|
|
360
|
-
this._ngZone = _ngZone;
|
|
361
|
-
}
|
|
362
355
|
ngOnChanges(changes) {
|
|
363
356
|
// only anchor changed
|
|
364
357
|
if (changes['anchor'] &&
|
|
@@ -472,7 +465,7 @@ class TdMarkdownComponent {
|
|
|
472
465
|
converter.setOption('emoji', true);
|
|
473
466
|
return converter.makeHtml(markdownToParse);
|
|
474
467
|
}
|
|
475
|
-
static ɵfac = function TdMarkdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownComponent)(
|
|
468
|
+
static ɵfac = function TdMarkdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownComponent)(); };
|
|
476
469
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownComponent, selectors: [["td-markdown"]], hostVars: 2, hostBindings: function TdMarkdownComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
477
470
|
i0.ɵɵclassMap(ctx.class);
|
|
478
471
|
} }, inputs: { content: "content", simpleLineBreaks: "simpleLineBreaks", hostedUrl: "hostedUrl", anchor: "anchor", fileLinkExtensions: "fileLinkExtensions" }, outputs: { fileLinkClicked: "fileLinkClicked", contentReady: "contentReady" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function TdMarkdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -483,7 +476,7 @@ class TdMarkdownComponent {
|
|
|
483
476
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownComponent, [{
|
|
484
477
|
type: Component,
|
|
485
478
|
args: [{ selector: 'td-markdown', template: "<ng-content></ng-content>\n", styles: [":host.td-markdown::ng-deep a{background-color:transparent}:host.td-markdown::ng-deep a[target=_blank]{display:inline-flex;align-items:center;position:relative;padding-right:16px}:host.td-markdown::ng-deep a[target=_blank]:after{content:\"open_in_new\";font-family:var(--mdc-icon-font, \"Material Symbols Outlined\");padding-left:2px;text-decoration:none;position:absolute;right:0;top:1px}:host.td-markdown::ng-deep a:active,:host.td-markdown::ng-deep a:hover{outline-width:0}:host.td-markdown::ng-deep strong{font-weight:inherit;font-weight:bolder}:host.td-markdown::ng-deep h1{font-size:2em;margin:.67em 0}:host.td-markdown::ng-deep img{border-style:none}:host.td-markdown::ng-deep svg:not(:root){overflow:hidden}:host.td-markdown::ng-deep code,:host.td-markdown::ng-deep kbd,:host.td-markdown::ng-deep pre{font-family:monospace;font-size:1em}:host.td-markdown::ng-deep hr{box-sizing:content-box;height:0;overflow:visible}:host.td-markdown::ng-deep input{font:inherit;margin:0}:host.td-markdown::ng-deep input{overflow:visible}:host.td-markdown::ng-deep button:-moz-focusring,:host.td-markdown::ng-deep [type=button]:-moz-focusring,:host.td-markdown::ng-deep [type=reset]:-moz-focusring,:host.td-markdown::ng-deep [type=submit]:-moz-focusring{outline:1px dotted ButtonText}:host.td-markdown::ng-deep [type=checkbox]{box-sizing:border-box;padding:0}:host.td-markdown::ng-deep table{border-spacing:0;border-collapse:collapse}:host.td-markdown::ng-deep td,:host.td-markdown::ng-deep th{padding:0}:host.td-markdown::ng-deep *{box-sizing:border-box}:host.td-markdown::ng-deep input{font:13px/1.4 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol}:host.td-markdown::ng-deep a{text-decoration:none}:host.td-markdown::ng-deep a:hover,:host.td-markdown::ng-deep a:active{text-decoration:underline}:host.td-markdown::ng-deep hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep hr:before{display:table;content:\"\"}:host.td-markdown::ng-deep hr:after{display:table;clear:both;content:\"\"}:host.td-markdown::ng-deep h1,:host.td-markdown::ng-deep h2,:host.td-markdown::ng-deep h3,:host.td-markdown::ng-deep h4,:host.td-markdown::ng-deep h5,:host.td-markdown::ng-deep h6{margin-top:0;margin-bottom:0;line-height:1.5}:host.td-markdown::ng-deep h1{font-size:30px}:host.td-markdown::ng-deep h2{font-size:21px}:host.td-markdown::ng-deep h3{font-size:16px}:host.td-markdown::ng-deep h4{font-size:14px}:host.td-markdown::ng-deep h5{font-size:12px}:host.td-markdown::ng-deep h6{font-size:11px}:host.td-markdown::ng-deep p{margin-top:0;margin-bottom:10px}:host.td-markdown::ng-deep blockquote{margin:0}:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol{padding-left:0;margin-top:0;margin-bottom:0}:host.td-markdown::ng-deep ol ol,:host.td-markdown::ng-deep ul ol{list-style-type:lower-roman}:host.td-markdown::ng-deep ul ul ol,:host.td-markdown::ng-deep ul ol ol,:host.td-markdown::ng-deep ol ul ol,:host.td-markdown::ng-deep ol ol ol{list-style-type:lower-alpha}:host.td-markdown::ng-deep dd{margin-left:0}:host.td-markdown::ng-deep code{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}:host.td-markdown::ng-deep pre{margin-top:0;margin-bottom:0;font:12px Consolas,Liberation Mono,Menlo,Courier,monospace}:host.td-markdown::ng-deep .pl-0{padding-left:0!important}:host.td-markdown::ng-deep .pl-1{padding-left:3px!important}:host.td-markdown::ng-deep .pl-2{padding-left:6px!important}:host.td-markdown::ng-deep .pl-3{padding-left:12px!important}:host.td-markdown::ng-deep .pl-4{padding-left:24px!important}:host.td-markdown::ng-deep .pl-5{padding-left:36px!important}:host.td-markdown::ng-deep .pl-6{padding-left:48px!important}:host.td-markdown::ng-deep .form-select::-ms-expand{opacity:0}:host.td-markdown::ng-deep a:not([href]){color:inherit;text-decoration:none}:host.td-markdown::ng-deep h1,:host.td-markdown::ng-deep h2,:host.td-markdown::ng-deep h3,:host.td-markdown::ng-deep h4,:host.td-markdown::ng-deep h5,:host.td-markdown::ng-deep h6{margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}:host.td-markdown::ng-deep h1 .octicon-link,:host.td-markdown::ng-deep h2 .octicon-link,:host.td-markdown::ng-deep h3 .octicon-link,:host.td-markdown::ng-deep h4 .octicon-link,:host.td-markdown::ng-deep h5 .octicon-link,:host.td-markdown::ng-deep h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}:host.td-markdown::ng-deep h1:hover .anchor,:host.td-markdown::ng-deep h2:hover .anchor,:host.td-markdown::ng-deep h3:hover .anchor,:host.td-markdown::ng-deep h4:hover .anchor,:host.td-markdown::ng-deep h5:hover .anchor,:host.td-markdown::ng-deep h6:hover .anchor{text-decoration:none}:host.td-markdown::ng-deep h1:hover .anchor .octicon-link,:host.td-markdown::ng-deep h2:hover .anchor .octicon-link,:host.td-markdown::ng-deep h3:hover .anchor .octicon-link,:host.td-markdown::ng-deep h4:hover .anchor .octicon-link,:host.td-markdown::ng-deep h5:hover .anchor .octicon-link,:host.td-markdown::ng-deep h6:hover .anchor .octicon-link{visibility:visible}:host.td-markdown::ng-deep h1{padding-bottom:.3em;font-size:2.25em;line-height:1.2;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep h1 .anchor{line-height:1}:host.td-markdown::ng-deep h2{padding-bottom:.3em;font-size:1.75em;line-height:1.225;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep h2 .anchor{line-height:1}:host.td-markdown::ng-deep h3{font-size:1.5em;line-height:1.43}:host.td-markdown::ng-deep h3 .anchor{line-height:1.2}:host.td-markdown::ng-deep h4{font-size:1.25em}:host.td-markdown::ng-deep h4 .anchor{line-height:1.2}:host.td-markdown::ng-deep h5{font-size:1em}:host.td-markdown::ng-deep h5 .anchor{line-height:1.1}:host.td-markdown::ng-deep h6{font-size:1em}:host.td-markdown::ng-deep h6 .anchor{line-height:1.1}:host.td-markdown::ng-deep p,:host.td-markdown::ng-deep blockquote,:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol,:host.td-markdown::ng-deep dl,:host.td-markdown::ng-deep table,:host.td-markdown::ng-deep pre{margin-top:0;margin-bottom:16px}:host.td-markdown::ng-deep hr{margin:16px 0}:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol{padding-left:2em}:host.td-markdown::ng-deep ul ul,:host.td-markdown::ng-deep ul ol,:host.td-markdown::ng-deep ol ol,:host.td-markdown::ng-deep ol ul{margin-top:0;margin-bottom:0}:host.td-markdown::ng-deep li>p{margin-top:16px}:host.td-markdown::ng-deep dl{padding:0}:host.td-markdown::ng-deep dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}:host.td-markdown::ng-deep dl dd{padding:0 16px;margin-bottom:16px}:host.td-markdown::ng-deep blockquote{padding:0 15px;border-left-width:4px;border-left-style:solid}:host.td-markdown::ng-deep blockquote>:first-child{margin-top:0}:host.td-markdown::ng-deep blockquote>:last-child{margin-bottom:0}:host.td-markdown::ng-deep table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}:host.td-markdown::ng-deep table th{font-weight:700}:host.td-markdown::ng-deep table th,:host.td-markdown::ng-deep table td{padding:6px 13px;border-width:1px;border-style:solid}:host.td-markdown::ng-deep table tr{border-top-width:1px;border-top-style:solid}:host.td-markdown::ng-deep img{max-width:100%;box-sizing:content-box}:host.td-markdown::ng-deep code{padding:.2em 0;margin:0;font-size:85%;border-radius:3px}:host.td-markdown::ng-deep code:before,:host.td-markdown::ng-deep code:after{letter-spacing:-.2em}:host.td-markdown::ng-deep pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}:host.td-markdown::ng-deep .highlight{margin-bottom:16px}:host.td-markdown::ng-deep .highlight pre,:host.td-markdown::ng-deep pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;border-radius:3px}:host.td-markdown::ng-deep .highlight pre{margin-bottom:0;word-break:normal}:host.td-markdown::ng-deep pre{word-wrap:normal}:host.td-markdown::ng-deep pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}:host.td-markdown::ng-deep pre code:before,:host.td-markdown::ng-deep pre code:after{content:normal}:host.td-markdown::ng-deep kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;vertical-align:middle;border-style:solid;border-width:1px;border-radius:3px}:host.td-markdown::ng-deep .pl-c{color:#969896}:host.td-markdown::ng-deep .pl-c1,:host.td-markdown::ng-deep .pl-s .pl-v{color:#0086b3}:host.td-markdown::ng-deep .pl-e,:host.td-markdown::ng-deep .pl-en{color:#795da3}:host.td-markdown::ng-deep .pl-s .pl-s1,:host.td-markdown::ng-deep .pl-smi{color:#333}:host.td-markdown::ng-deep .pl-ent{color:#63a35c}:host.td-markdown::ng-deep .pl-k{color:#a71d5d}:host.td-markdown::ng-deep .pl-pds,:host.td-markdown::ng-deep .pl-s,:host.td-markdown::ng-deep .pl-s .pl-pse .pl-s1,:host.td-markdown::ng-deep .pl-sr,:host.td-markdown::ng-deep .pl-sr .pl-cce,:host.td-markdown::ng-deep .pl-sr .pl-sra,:host.td-markdown::ng-deep .pl-sr .pl-sre{color:#183691}:host.td-markdown::ng-deep .pl-v{color:#ed6a43}:host.td-markdown::ng-deep .pl-id{color:#b52a1d}:host.td-markdown::ng-deep .pl-ii{background-color:#b52a1d;color:#f8f8f8}:host.td-markdown::ng-deep .pl-sr .pl-cce{color:#63a35c;font-weight:700}:host.td-markdown::ng-deep .pl-ml{color:#693a17}:host.td-markdown::ng-deep .pl-mh,:host.td-markdown::ng-deep .pl-mh .pl-en,:host.td-markdown::ng-deep .pl-ms{color:#1d3e81;font-weight:700}:host.td-markdown::ng-deep .pl-mq{color:teal}:host.td-markdown::ng-deep .pl-mi{color:#333;font-style:italic}:host.td-markdown::ng-deep .pl-mb{color:#333;font-weight:700}:host.td-markdown::ng-deep .pl-md{background-color:#ffecec;color:#bd2c00}:host.td-markdown::ng-deep .pl-mi1{background-color:#eaffea;color:#55a532}:host.td-markdown::ng-deep .pl-mdr{color:#795da3;font-weight:700}:host.td-markdown::ng-deep .pl-mo{color:#1d3e81}:host.td-markdown::ng-deep kbd{display:inline-block;padding:3px 5px;font:11px Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #cccccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px #bbb}:host.td-markdown::ng-deep .full-commit .btn-outline:not(:disabled):hover{color:#4078c0;border:1px solid #4078c0}:host.td-markdown::ng-deep :checked+.radio-label{position:relative;z-index:1;border-color:#4078c0}:host.td-markdown::ng-deep .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}:host.td-markdown::ng-deep .task-list-item{list-style-type:none}:host.td-markdown::ng-deep .task-list-item+.task-list-item{margin-top:3px}:host.td-markdown::ng-deep .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}:host.td-markdown::ng-deep td.markdown-align-center{text-align:center}:host.td-markdown::ng-deep td.markdown-align-left{text-align:left}:host.td-markdown::ng-deep td.markdown-align-right{text-align:right}\n"] }]
|
|
486
|
-
}],
|
|
479
|
+
}], null, { class: [{
|
|
487
480
|
type: HostBinding,
|
|
488
481
|
args: ['class']
|
|
489
482
|
}], content: [{
|
|
@@ -501,15 +494,11 @@ class TdMarkdownComponent {
|
|
|
501
494
|
}], contentReady: [{
|
|
502
495
|
type: Output
|
|
503
496
|
}] }); })();
|
|
504
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownComponent, { className: "TdMarkdownComponent", filePath: "lib/markdown.component.ts", lineNumber:
|
|
497
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownComponent, { className: "TdMarkdownComponent", filePath: "lib/markdown.component.ts", lineNumber: 222 }); })();
|
|
505
498
|
|
|
506
499
|
class TdMarkdownLoaderService {
|
|
507
|
-
_http;
|
|
508
|
-
_sanitizer;
|
|
509
|
-
constructor(_http, _sanitizer) {
|
|
510
|
-
this._http = _http;
|
|
511
|
-
this._sanitizer = _sanitizer;
|
|
512
|
-
}
|
|
500
|
+
_http = inject(HttpClient);
|
|
501
|
+
_sanitizer = inject(DomSanitizer);
|
|
513
502
|
async load(url, httpOptions = {}) {
|
|
514
503
|
const sanitizedUrl = this._sanitizer.sanitize(SecurityContext.URL, url) ?? '';
|
|
515
504
|
let urlToGet = sanitizedUrl;
|
|
@@ -532,12 +521,12 @@ class TdMarkdownLoaderService {
|
|
|
532
521
|
throw Error(`${contentType} is not a handled content type`);
|
|
533
522
|
}
|
|
534
523
|
}
|
|
535
|
-
static ɵfac = function TdMarkdownLoaderService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownLoaderService)(
|
|
524
|
+
static ɵfac = function TdMarkdownLoaderService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownLoaderService)(); };
|
|
536
525
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TdMarkdownLoaderService, factory: TdMarkdownLoaderService.ɵfac });
|
|
537
526
|
}
|
|
538
527
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownLoaderService, [{
|
|
539
528
|
type: Injectable
|
|
540
|
-
}],
|
|
529
|
+
}], null, null); })();
|
|
541
530
|
|
|
542
531
|
/**
|
|
543
532
|
* @deprecated This module is deprecated and will be removed in future versions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"covalent-markdown.mjs","sources":["../tmp-esm2022/lib/markdown-utils/markdown-utils.js","../tmp-esm2022/lib/markdown.component.js","../tmp-esm2022/lib/markdown-loader/markdown-loader.service.js","../tmp-esm2022/lib/markdown.module.js","../tmp-esm2022/covalent-markdown.js"],"sourcesContent":["export function removeLeadingHash(str) {\n if (str) {\n return str.replace(/^#+/, '');\n }\n return '';\n}\nexport function removeTrailingHash(str) {\n if (str) {\n return str.replace(/#.*/, '');\n }\n return '';\n}\nexport function genHeadingId(str) {\n if (str) {\n return removeLeadingHash(str\n .replace(/(_|-|\\s)+/g, '')\n // Remove certain special chars to create heading ids similar to those in github\n // borrowed from showdown\n // https://github.com/showdownjs/showdown/blob/main/src/subParsers/makehtml/headers.js#L94\n .replace(/[&+$,/:;=?@\"#{}|^¨~[\\]`\\\\*)(%.!'<>]/g, '')).toLowerCase();\n }\n return '';\n}\nexport function scrollToAnchor(scope, anchor, tryParent) {\n if (scope && anchor) {\n const normalizedAnchor = genHeadingId(anchor);\n let headingToJumpTo = null;\n const headingWithinComponent = scope.querySelector(`[id=\"${normalizedAnchor}\"]`);\n if (headingWithinComponent) {\n headingToJumpTo = headingWithinComponent;\n }\n else if (tryParent) {\n const parent = scope.parentElement;\n if (parent) {\n headingToJumpTo = parent.querySelector(`[id=\"${normalizedAnchor}\"]`);\n }\n }\n if (headingToJumpTo) {\n headingToJumpTo.scrollIntoView({ behavior: 'auto' });\n return true;\n }\n }\n return false;\n}\nexport function isAnchorLink(anchor) {\n if (anchor) {\n const href = anchor.getAttribute('href');\n if (href) {\n return href.startsWith('#');\n }\n }\n return false;\n}\nexport function isFileLink(anchor, fileExtensions) {\n if (fileExtensions && fileExtensions.length) {\n const href = anchor.getAttribute('href');\n if (href) {\n return fileExtensions.some((fileExtension) => href.endsWith(fileExtension));\n }\n }\n return false;\n}\nconst RAW_GITHUB_HOSTNAME = 'raw.githubusercontent.com';\nexport function rawGithubHref(githubHref) {\n if (githubHref) {\n try {\n const url = new URL(githubHref);\n if (url.hostname === RAW_GITHUB_HOSTNAME) {\n return url.href;\n }\n else if (isGithubHref(githubHref)) {\n url.hostname = RAW_GITHUB_HOSTNAME;\n url.pathname = url.pathname.split('/blob', 2).join('');\n return url.href;\n }\n }\n catch {\n return '';\n }\n }\n return '';\n}\nexport function isGithubHref(href) {\n try {\n const temp = new URL(href ?? '');\n return temp.hostname === 'github.com';\n }\n catch {\n return false;\n }\n}\nexport function isRawGithubHref(href = '') {\n try {\n const temp = new URL(href);\n return temp.hostname === RAW_GITHUB_HOSTNAME;\n }\n catch {\n return false;\n }\n}\nexport function renderVideoElements(html) {\n const ytLongEmbed = /!\\[(?:(?:https?:)?(?:\\/\\/)?)(?:(?:www)?.)?youtube.(?:.+?)\\/(?:(?:embed\\/)([\\w-]{11})(\\?[\\w%;-]+(?:=[\\w%;-]+)?(?:&[\\w%;-]+(?:=[\\w%;-]+)?)*)?)]/gi;\n const ytLongWatch = /!\\[(?:(?:https?:)?(?:\\/\\/)?)(?:(?:www)?.)?youtube.(?:.+?)\\/(?:(?:watch\\?v=)([\\w-]{11})(&[\\w%;-]+(?:=[\\w%;-]+)?)*)]/gi;\n const ytShort = /!\\[(?:(?:https?:)?(?:\\/\\/)?)?youtu.be\\/([\\w-]{11})\\??([\\w%;-]+(?:=[\\w%;-]+)?(?:&[\\w%;-]+(?:=[\\w%;-]+)?)*)?]/gi;\n const ytPlaylist = /!\\[(?:(?:https?:)?(?:\\/\\/)?)(?:(?:www)?.)?youtube.(?:.+?)\\/(?:(?:playlist\\?list=)([\\w-]{34})(&[\\w%;-]+(?:=[\\w%;-]+)?)*)]/gi;\n function convert(match, id, flags) {\n if (flags) {\n id += '?' + flags.replace(/&/gi, '&');\n }\n return `<iframe allow=\"fullscreen\" frameborder=\"0\" src=\"https://www.youtube.com/embed/${id}\"></iframe>`;\n }\n function convertPL(match, id, flags) {\n if (flags) {\n id += flags.replace(/&/gi, '&');\n }\n return `<iframe allow=\"fullscreen\" frameborder=\"0\" src=\"https://www.youtube.com/embed/videoseries?list=${id}\"></iframe>`;\n }\n return html\n .replace(ytLongWatch, convert)\n .replace(ytLongEmbed, convert)\n .replace(ytShort, convert)\n .replace(ytPlaylist, convertPL);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duL3NyYy9saWIvbWFya2Rvd24tdXRpbHMvbWFya2Rvd24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVc7SUFDM0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFrQjtJQUNuRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLGlCQUFpQixDQUN0QixHQUFHO2FBQ0EsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDMUIsZ0ZBQWdGO1lBQ2hGLHlCQUF5QjtZQUN6QiwwRkFBMEY7YUFDekYsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEVBQUUsQ0FBQyxDQUN2RCxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixLQUFrQixFQUNsQixNQUFjLEVBQ2QsU0FBa0I7SUFFbEIsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDcEIsTUFBTSxnQkFBZ0IsR0FBVyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxlQUFlLEdBQW1CLElB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U0FDekIsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUxlYWRpbmdIYXNoKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvXiMrLywgJycpO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nSGFzaChzdHI6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICBpZiAoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8jLiovLCAnJyk7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuSGVhZGluZ0lkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN0cikge1xuICAgIHJldHVybiByZW1vdmVMZWFkaW5nSGFzaChcbiAgICAgIHN0clxuICAgICAgICAucmVwbGFjZSgvKF98LXxcXHMpKy9nLCAnJylcbiAgICAgICAgLy8gUmVtb3ZlIGNlcnRhaW4gc3BlY2lhbCBjaGFycyB0byBjcmVhdGUgaGVhZGluZyBpZHMgc2ltaWxhciB0byB0aG9zZSBpbiBnaXRodWJcbiAgICAgICAgLy8gYm9ycm93ZWQgZnJvbSBzaG93ZG93blxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2hvd2Rvd25qcy9zaG93ZG93bi9ibG9iL21haW4vc3JjL3N1YlBhcnNlcnMvbWFrZWh0bWwvaGVhZGVycy5qcyNMOTRcbiAgICAgICAgLnJlcGxhY2UoL1smKyQsLzo7PT9AXCIje318XsKofltcXF1gXFxcXCopKCUuISc8Pl0vZywgJycpXG4gICAgKS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbFRvQW5jaG9yKFxuICBzY29wZTogSFRNTEVsZW1lbnQsXG4gIGFuY2hvcjogc3RyaW5nLFxuICB0cnlQYXJlbnQ6IGJvb2xlYW5cbik6IGJvb2xlYW4ge1xuICBpZiAoc2NvcGUgJiYgYW5jaG9yKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFuY2hvcjogc3RyaW5nID0gZ2VuSGVhZGluZ0lkKGFuY2hvcik7XG4gICAgbGV0IGhlYWRpbmdUb0p1bXBUbzogRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGhlYWRpbmdXaXRoaW5Db21wb25lbnQgPSBzY29wZS5xdWVyeVNlbGVjdG9yKFxuICAgICAgYFtpZD1cIiR7bm9ybWFsaXplZEFuY2hvcn1cIl1gXG4gICAgKTtcblxuICAgIGlmIChoZWFkaW5nV2l0aGluQ29tcG9uZW50KSB7XG4gICAgICBoZWFkaW5nVG9KdW1wVG8gPSBoZWFkaW5nV2l0aGluQ29tcG9uZW50O1xuICAgIH0gZWxzZSBpZiAodHJ5UGFyZW50KSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBzY29wZS5wYXJlbnRFbGVtZW50O1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBoZWFkaW5nVG9KdW1wVG8gPSBwYXJlbnQucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtub3JtYWxpemVkQW5jaG9yfVwiXWApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaGVhZGluZ1RvSnVtcFRvKSB7XG4gICAgICBoZWFkaW5nVG9KdW1wVG8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ2F1dG8nIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQW5jaG9yTGluayhhbmNob3I/OiBIVE1MQW5jaG9yRWxlbWVudCk6IGJvb2xlYW4ge1xuICBpZiAoYW5jaG9yKSB7XG4gICAgY29uc3QgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBpZiAoaHJlZikge1xuICAgICAgcmV0dXJuIGhyZWYuc3RhcnRzV2l0aCgnIycpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpbGVMaW5rKFxuICBhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50LFxuICBmaWxlRXh0ZW5zaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWRcbik6IGJvb2xlYW4ge1xuICBpZiAoZmlsZUV4dGVuc2lvbnMgJiYgZmlsZUV4dGVuc2lvbnMubGVuZ3RoKSB7XG4gICAgY29uc3QgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBpZiAoaHJlZikge1xuICAgICAgcmV0dXJuIGZpbGVFeHRlbnNpb25zLnNvbWUoKGZpbGVFeHRlbnNpb24pID0+XG4gICAgICAgIGhyZWYuZW5kc1dpdGgoZmlsZUV4dGVuc2lvbilcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuY29uc3QgUkFXX0dJVEhVQl9IT1NUTkFNRSA9ICdyYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJhd0dpdGh1YkhyZWYoZ2l0aHViSHJlZj86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChnaXRodWJIcmVmKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTChnaXRodWJIcmVmKTtcbiAgICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IFJBV19HSVRIVUJfSE9TVE5BTUUpIHtcbiAgICAgICAgcmV0dXJuIHVybC5ocmVmO1xuICAgICAgfSBlbHNlIGlmIChpc0dpdGh1YkhyZWYoZ2l0aHViSHJlZikpIHtcbiAgICAgICAgdXJsLmhvc3RuYW1lID0gUkFXX0dJVEhVQl9IT1NUTkFNRTtcbiAgICAgICAgdXJsLnBhdGhuYW1lID0gdXJsLnBhdGhuYW1lLnNwbGl0KCcvYmxvYicsIDIpLmpvaW4oJycpO1xuICAgICAgICByZXR1cm4gdXJsLmhyZWY7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2l0aHViSHJlZihocmVmPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGVtcDogVVJMID0gbmV3IFVSTChocmVmID8/ICcnKTtcbiAgICByZXR1cm4gdGVtcC5ob3N0bmFtZSA9PT0gJ2dpdGh1Yi5jb20nO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmF3R2l0aHViSHJlZihocmVmID0gJycpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB0ZW1wOiBVUkwgPSBuZXcgVVJMKGhyZWYpO1xuICAgIHJldHVybiB0ZW1wLmhvc3RuYW1lID09PSBSQVdfR0lUSFVCX0hPU1ROQU1FO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclZpZGVvRWxlbWVudHMoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgeXRMb25nRW1iZWQgPVxuICAgIC8hXFxbKD86KD86aHR0cHM/Oik/KD86XFwvXFwvKT8pKD86KD86d3d3KT8uKT95b3V0dWJlLig/Oi4rPylcXC8oPzooPzplbWJlZFxcLykoW1xcdy1dezExfSkoXFw/W1xcdyU7LV0rKD86PVtcXHclOy1dKyk/KD86JltcXHclOy1dKyg/Oj1bXFx3JTstXSspPykqKT8pXS9naTtcbiAgY29uc3QgeXRMb25nV2F0Y2ggPVxuICAgIC8hXFxbKD86KD86aHR0cHM/Oik/KD86XFwvXFwvKT8pKD86KD86d3d3KT8uKT95b3V0dWJlLig/Oi4rPylcXC8oPzooPzp3YXRjaFxcP3Y9KShbXFx3LV17MTF9KSgmW1xcdyU7LV0rKD86PVtcXHclOy1dKyk/KSopXS9naTtcbiAgY29uc3QgeXRTaG9ydCA9XG4gICAgLyFcXFsoPzooPzpodHRwcz86KT8oPzpcXC9cXC8pPyk/eW91dHUuYmVcXC8oW1xcdy1dezExfSlcXD8/KFtcXHclOy1dKyg/Oj1bXFx3JTstXSspPyg/OiZbXFx3JTstXSsoPzo9W1xcdyU7LV0rKT8pKik/XS9naTtcbiAgY29uc3QgeXRQbGF5bGlzdCA9XG4gICAgLyFcXFsoPzooPzpodHRwcz86KT8oPzpcXC9cXC8pPykoPzooPzp3d3cpPy4pP3lvdXR1YmUuKD86Lis/KVxcLyg/Oig/OnBsYXlsaXN0XFw/bGlzdD0pKFtcXHctXXszNH0pKCZbXFx3JTstXSsoPzo9W1xcdyU7LV0rKT8pKildL2dpO1xuXG4gIGZ1bmN0aW9uIGNvbnZlcnQobWF0Y2g6IHN0cmluZywgaWQ6IHN0cmluZywgZmxhZ3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdzKSB7XG4gICAgICBpZCArPSAnPycgKyBmbGFncy5yZXBsYWNlKC8mYW1wOy9naSwgJyYnKTtcbiAgICB9XG4gICAgcmV0dXJuIGA8aWZyYW1lIGFsbG93PVwiZnVsbHNjcmVlblwiIGZyYW1lYm9yZGVyPVwiMFwiIHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7aWR9XCI+PC9pZnJhbWU+YDtcbiAgfVxuICBmdW5jdGlvbiBjb252ZXJ0UEwobWF0Y2g6IHN0cmluZywgaWQ6IHN0cmluZywgZmxhZ3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdzKSB7XG4gICAgICBpZCArPSBmbGFncy5yZXBsYWNlKC8mYW1wOy9naSwgJyYnKTtcbiAgICB9XG4gICAgcmV0dXJuIGA8aWZyYW1lIGFsbG93PVwiZnVsbHNjcmVlblwiIGZyYW1lYm9yZGVyPVwiMFwiIHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL3ZpZGVvc2VyaWVzP2xpc3Q9JHtpZH1cIj48L2lmcmFtZT5gO1xuICB9XG5cbiAgcmV0dXJuIGh0bWxcbiAgICAucmVwbGFjZSh5dExvbmdXYXRjaCwgY29udmVydClcbiAgICAucmVwbGFjZSh5dExvbmdFbWJlZCwgY29udmVydClcbiAgICAucmVwbGFjZSh5dFNob3J0LCBjb252ZXJ0KVxuICAgIC5yZXBsYWNlKHl0UGxheWxpc3QsIGNvbnZlcnRQTCk7XG59XG4iXX0=","import { Component, ElementRef, Input, Output, EventEmitter, Renderer2, SecurityContext, HostBinding, NgZone, } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { scrollToAnchor, genHeadingId, isAnchorLink, removeTrailingHash, rawGithubHref, isGithubHref, isRawGithubHref, renderVideoElements, isFileLink, } from './markdown-utils/markdown-utils';\nimport * as showdown from 'showdown';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/platform-browser\";\nconst _c0 = [\"*\"];\nfunction isAbsoluteUrl(currentHref) {\n // Regular Expression to check url\n const RgExp = new RegExp('^(?:[a-z]+:)?//', 'i');\n return RgExp.test(currentHref);\n}\n// TODO: assumes it is a github url\n// allow override somehow\nfunction generateHref(currentHref, relativeHref) {\n if (currentHref && relativeHref) {\n if (isAbsoluteUrl(currentHref)) {\n const currentUrl = new URL(currentHref);\n const path = currentUrl.pathname\n .split('/')\n .slice(1, -1)\n .join('/');\n const correctUrl = new URL(currentHref);\n if (relativeHref.startsWith('/')) {\n // url is relative to top level\n const orgAndRepo = path.split('/').slice(0, 3).join('/');\n correctUrl.pathname = `${orgAndRepo}${relativeHref}`;\n }\n else {\n correctUrl.pathname = `${path}/${relativeHref}`;\n }\n return correctUrl.href;\n }\n else {\n const path = currentHref.split('/').slice(0, -1).join('/');\n if (relativeHref.startsWith('/')) {\n return `${path}${relativeHref}`;\n }\n else {\n return `${path}/${relativeHref}`;\n }\n }\n }\n return '';\n}\nfunction normalizeHtmlHrefs(html, currentHref, fileLinkExtensions) {\n if (currentHref) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n document\n .querySelectorAll('a[href]')\n .forEach((link) => {\n const url = new URL(link.href);\n const originalHash = url.hash;\n const isFileAnchorLink = isFileLink(link, fileLinkExtensions);\n if (isAnchorLink(link)) {\n if (originalHash) {\n url.hash = genHeadingId(originalHash);\n link.href = url.hash;\n }\n }\n else if (url.host === window.location.host) {\n // hosts match, meaning URL MIGHT have been malformed by showdown\n // url is a relative url or just a link to a part of the application\n if (url.pathname.endsWith('.md') || isFileAnchorLink) {\n // only check .md urls or urls ending with the fileLinkExtensions\n const hrefWithoutHash = removeTrailingHash(link.getAttribute('href'));\n url.href = generateHref(currentHref, hrefWithoutHash);\n if (originalHash) {\n url.hash = genHeadingId(originalHash);\n }\n link.href = url.href;\n }\n link.target = isFileAnchorLink ? '_self' : '_blank';\n }\n else {\n // url is absolute\n if (url.pathname.endsWith('.md')) {\n if (originalHash) {\n url.hash = genHeadingId(originalHash);\n }\n link.href = url.href;\n }\n link.target = '_blank';\n }\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\nfunction normalizeImageSrcs(html, currentHref) {\n if (currentHref) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n document\n .querySelectorAll('img[src]')\n .forEach((image) => {\n const src = image.getAttribute('src') ?? '';\n try {\n /* tslint:disable-next-line:no-unused-expression */\n new URL(src);\n if (isGithubHref(src)) {\n image.src = rawGithubHref(src);\n }\n }\n catch {\n image.src = generateHref(isGithubHref(currentHref)\n ? rawGithubHref(currentHref)\n : currentHref, src);\n }\n // gh svgs need to have ?sanitize=true\n if (isRawGithubHref(image.src)) {\n const url = new URL(image.src);\n if (url.pathname.endsWith('.svg')) {\n url.searchParams.set('sanitize', 'true');\n image.src = url.href;\n }\n }\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\nfunction addIdsToHeadings(html) {\n if (html) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n document\n .querySelectorAll('h1, h2, h3, h4, h5, h6')\n .forEach((heading) => {\n const strippedInnerHTML = stripAllHtmlTags(heading.innerHTML);\n const id = genHeadingId(strippedInnerHTML);\n heading.setAttribute('id', id);\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\nfunction changeStyleAlignmentToClass(html) {\n if (html) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n ['right', 'center', 'left'].forEach((alignment) => {\n document\n .querySelectorAll(`[style*='text-align:${alignment}']`)\n .forEach((style) => {\n style.setAttribute('class', `markdown-align-${alignment}`);\n });\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\n// Strips all the html tags in the html sand returns the text\nfunction stripAllHtmlTags(input) {\n let sanitized = input;\n let previous;\n do {\n previous = sanitized;\n sanitized = sanitized.replace(/<[^>]+>/g, '');\n } while (previous !== sanitized);\n return sanitized;\n}\nexport class TdMarkdownComponent {\n _renderer;\n _elementRef;\n _domSanitizer;\n _ngZone;\n _content;\n _simpleLineBreaks = false;\n _hostedUrl;\n _anchor;\n _viewInit = false;\n _fileLinkExtensions;\n _anchorListener;\n /**\n * .td-markdown class added to host so ::ng-deep gets scoped.\n */\n class = 'td-markdown';\n /**\n * content?: string\n *\n * Markdown format content to be parsed as html 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 * The file extensions to monitor for in anchor tags. If an anchor's `href` ends\n * with these extensions, an event will be emitted instead of performing the default click action.\n * Example values: [\".ipynb\", \".zip\", \".docx\"]\n */\n set fileLinkExtensions(extensions) {\n this._fileLinkExtensions = extensions;\n }\n /**\n * Event emitted when an anchor tag with an `href` matching the specified\n * fileLinkExtensions is clicked. The emitted value is the URL 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 constructor(_renderer, _elementRef, _domSanitizer, _ngZone) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._domSanitizer = _domSanitizer;\n this._ngZone = _ngZone;\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, true);\n }\n else {\n this.refresh();\n }\n }\n ngAfterViewInit() {\n if (!this._content) {\n this._loadContent(this._elementRef.nativeElement.textContent);\n }\n this._viewInit = true;\n // Caretaker note: the `scrollToAnchor` calls `element.scrollIntoView`, a native synchronous DOM\n // API and it doesn't require Angular running `ApplicationRef.tick()` each time the markdown component is clicked.\n // Host listener (added through `@HostListener`) cause Angular to add an event listener within the Angular zone.\n // It also calls `markViewDirty()` before calling the actual listener (the decorated class method).\n this._ngZone.runOutsideAngular(() => {\n this._anchorListener = this._renderer.listen(this._elementRef.nativeElement, 'click', (event) => {\n const element = event.srcElement;\n if (element.matches('a[href]') &&\n isAnchorLink(element)) {\n this.handleAnchorClicks(event);\n }\n else if (element.matches('a[href]') &&\n isFileLink(element, this._fileLinkExtensions)) {\n this.handleFileAnchorClicks(event);\n }\n });\n });\n }\n ngOnDestroy() {\n this._anchorListener?.();\n }\n refresh() {\n if (this._content) {\n this._loadContent(this._content);\n }\n else if (this._viewInit) {\n this._loadContent(this._elementRef.nativeElement.textContent);\n }\n }\n /**\n * General method to parse a string markdown into HTML Elements and load them into the container\n */\n _loadContent(markdown) {\n if (markdown && markdown.trim().length > 0) {\n // Clean container\n this._renderer.setProperty(this._elementRef.nativeElement, 'innerHTML', '');\n // Parse html string into actual HTML elements.\n this._elementFromString(this._render(markdown));\n }\n // TODO: timeout required since resizing of html elements occurs which causes a change in the scroll position\n this._ngZone.runOutsideAngular(() => setTimeout(() => scrollToAnchor(this._elementRef.nativeElement, this._anchor, true), 250));\n this.contentReady.emit();\n }\n handleAnchorClicks(event) {\n event.preventDefault();\n const url = new URL(event.target.href);\n const hash = decodeURI(url.hash);\n scrollToAnchor(this._elementRef.nativeElement, hash, true);\n }\n handleFileAnchorClicks(event) {\n event.preventDefault();\n const url = new URL(event.target.href);\n this.fileLinkClicked.emit(url);\n }\n _elementFromString(markupStr) {\n // Renderer2 doesnt have a parsing method, so we have to sanitize and use [innerHTML]\n // to parse the string into DOM element for now.\n const div = this._renderer.createElement('div');\n this._renderer.appendChild(this._elementRef.nativeElement, div);\n const html = this._domSanitizer.sanitize(SecurityContext.HTML, changeStyleAlignmentToClass(markupStr)) ?? '';\n const htmlWithAbsoluteHrefs = normalizeHtmlHrefs(html, this._hostedUrl, this._fileLinkExtensions);\n const htmlWithAbsoluteImgSrcs = normalizeImageSrcs(htmlWithAbsoluteHrefs, this._hostedUrl);\n const htmlWithHeadingIds = addIdsToHeadings(htmlWithAbsoluteImgSrcs);\n const htmlWithVideos = renderVideoElements(htmlWithHeadingIds);\n this._renderer.setProperty(div, 'innerHTML', htmlWithVideos);\n return div;\n }\n _render(markdown) {\n // Trim leading and trailing newlines\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 : '';\n // Remove all indentation spaces so markdown can be parsed correctly\n const startingWhitespaceRegex = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line) {\n return line.replace(startingWhitespaceRegex, '');\n });\n // Join lines again with line characters\n const markdownToParse = lines.join('\\n');\n // Convert markdown into html\n const converter = new showdown.Converter();\n converter.setOption('ghCodeBlocks', true);\n converter.setOption('tasklists', true);\n converter.setOption('tables', true);\n converter.setOption('literalMidWordUnderscores', true);\n converter.setOption('simpleLineBreaks', this._simpleLineBreaks);\n converter.setOption('emoji', true);\n return converter.makeHtml(markdownToParse);\n }\n static ɵfac = function TdMarkdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownComponent, selectors: [[\"td-markdown\"]], hostVars: 2, hostBindings: function TdMarkdownComponent_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassMap(ctx.class);\n } }, inputs: { content: \"content\", simpleLineBreaks: \"simpleLineBreaks\", hostedUrl: \"hostedUrl\", anchor: \"anchor\", fileLinkExtensions: \"fileLinkExtensions\" }, outputs: { fileLinkClicked: \"fileLinkClicked\", contentReady: \"contentReady\" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function TdMarkdownComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n } }, styles: [\".td-markdown[_nghost-%COMP%] a{background-color:transparent}.td-markdown[_nghost-%COMP%] a[target=_blank]{display:inline-flex;align-items:center;position:relative;padding-right:16px}.td-markdown[_nghost-%COMP%] a[target=_blank]:after{content:\\\"open_in_new\\\";font-family:var(--mdc-icon-font, \\\"Material Symbols Outlined\\\");padding-left:2px;text-decoration:none;position:absolute;right:0;top:1px}.td-markdown[_nghost-%COMP%] a:active, .td-markdown[_nghost-%COMP%] a:hover{outline-width:0}.td-markdown[_nghost-%COMP%] strong{font-weight:inherit;font-weight:bolder}.td-markdown[_nghost-%COMP%] h1{font-size:2em;margin:.67em 0}.td-markdown[_nghost-%COMP%] img{border-style:none}.td-markdown[_nghost-%COMP%] svg:not(:root){overflow:hidden}.td-markdown[_nghost-%COMP%] code, .td-markdown[_nghost-%COMP%] kbd, .td-markdown[_nghost-%COMP%] pre{font-family:monospace;font-size:1em}.td-markdown[_nghost-%COMP%] hr{box-sizing:content-box;height:0;overflow:visible}.td-markdown[_nghost-%COMP%] input{font:inherit;margin:0}.td-markdown[_nghost-%COMP%] input{overflow:visible}.td-markdown[_nghost-%COMP%] button:-moz-focusring, .td-markdown[_nghost-%COMP%] [type=button]:-moz-focusring, .td-markdown[_nghost-%COMP%] [type=reset]:-moz-focusring, .td-markdown[_nghost-%COMP%] [type=submit]:-moz-focusring{outline:1px dotted ButtonText}.td-markdown[_nghost-%COMP%] [type=checkbox]{box-sizing:border-box;padding:0}.td-markdown[_nghost-%COMP%] table{border-spacing:0;border-collapse:collapse}.td-markdown[_nghost-%COMP%] td, .td-markdown[_nghost-%COMP%] th{padding:0}.td-markdown[_nghost-%COMP%] *{box-sizing:border-box}.td-markdown[_nghost-%COMP%] input{font:13px/1.4 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",Segoe UI Symbol}.td-markdown[_nghost-%COMP%] a{text-decoration:none}.td-markdown[_nghost-%COMP%] a:hover, .td-markdown[_nghost-%COMP%] a:active{text-decoration:underline}.td-markdown[_nghost-%COMP%] hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom-width:1px;border-bottom-style:solid}.td-markdown[_nghost-%COMP%] hr:before{display:table;content:\\\"\\\"}.td-markdown[_nghost-%COMP%] hr:after{display:table;clear:both;content:\\\"\\\"}.td-markdown[_nghost-%COMP%] h1, .td-markdown[_nghost-%COMP%] h2, .td-markdown[_nghost-%COMP%] h3, .td-markdown[_nghost-%COMP%] h4, .td-markdown[_nghost-%COMP%] h5, .td-markdown[_nghost-%COMP%] h6{margin-top:0;margin-bottom:0;line-height:1.5}.td-markdown[_nghost-%COMP%] h1{font-size:30px}.td-markdown[_nghost-%COMP%] h2{font-size:21px}.td-markdown[_nghost-%COMP%] h3{font-size:16px}.td-markdown[_nghost-%COMP%] h4{font-size:14px}.td-markdown[_nghost-%COMP%] h5{font-size:12px}.td-markdown[_nghost-%COMP%] h6{font-size:11px}.td-markdown[_nghost-%COMP%] p{margin-top:0;margin-bottom:10px}.td-markdown[_nghost-%COMP%] blockquote{margin:0}.td-markdown[_nghost-%COMP%] ul, .td-markdown[_nghost-%COMP%] ol{padding-left:0;margin-top:0;margin-bottom:0}.td-markdown[_nghost-%COMP%] ol ol, .td-markdown[_nghost-%COMP%] ul ol{list-style-type:lower-roman}.td-markdown[_nghost-%COMP%] ul ul ol, .td-markdown[_nghost-%COMP%] ul ol ol, .td-markdown[_nghost-%COMP%] ol ul ol, .td-markdown[_nghost-%COMP%] ol ol ol{list-style-type:lower-alpha}.td-markdown[_nghost-%COMP%] dd{margin-left:0}.td-markdown[_nghost-%COMP%] code{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}.td-markdown[_nghost-%COMP%] pre{margin-top:0;margin-bottom:0;font:12px Consolas,Liberation Mono,Menlo,Courier,monospace}.td-markdown[_nghost-%COMP%] .pl-0{padding-left:0!important}.td-markdown[_nghost-%COMP%] .pl-1{padding-left:3px!important}.td-markdown[_nghost-%COMP%] .pl-2{padding-left:6px!important}.td-markdown[_nghost-%COMP%] .pl-3{padding-left:12px!important}.td-markdown[_nghost-%COMP%] .pl-4{padding-left:24px!important}.td-markdown[_nghost-%COMP%] .pl-5{padding-left:36px!important}.td-markdown[_nghost-%COMP%] .pl-6{padding-left:48px!important}.td-markdown[_nghost-%COMP%] .form-select::-ms-expand{opacity:0}.td-markdown[_nghost-%COMP%] a:not([href]){color:inherit;text-decoration:none}.td-markdown[_nghost-%COMP%] h1, .td-markdown[_nghost-%COMP%] h2, .td-markdown[_nghost-%COMP%] h3, .td-markdown[_nghost-%COMP%] h4, .td-markdown[_nghost-%COMP%] h5, .td-markdown[_nghost-%COMP%] h6{margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}.td-markdown[_nghost-%COMP%] h1 .octicon-link, .td-markdown[_nghost-%COMP%] h2 .octicon-link, .td-markdown[_nghost-%COMP%] h3 .octicon-link, .td-markdown[_nghost-%COMP%] h4 .octicon-link, .td-markdown[_nghost-%COMP%] h5 .octicon-link, .td-markdown[_nghost-%COMP%] h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}.td-markdown[_nghost-%COMP%] h1:hover .anchor, .td-markdown[_nghost-%COMP%] h2:hover .anchor, .td-markdown[_nghost-%COMP%] h3:hover .anchor, .td-markdown[_nghost-%COMP%] h4:hover .anchor, .td-markdown[_nghost-%COMP%] h5:hover .anchor, .td-markdown[_nghost-%COMP%] h6:hover .anchor{text-decoration:none}.td-markdown[_nghost-%COMP%] h1:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h2:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h3:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h4:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h5:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h6:hover .anchor .octicon-link{visibility:visible}.td-markdown[_nghost-%COMP%] h1{padding-bottom:.3em;font-size:2.25em;line-height:1.2;border-bottom-width:1px;border-bottom-style:solid}.td-markdown[_nghost-%COMP%] h1 .anchor{line-height:1}.td-markdown[_nghost-%COMP%] h2{padding-bottom:.3em;font-size:1.75em;line-height:1.225;border-bottom-width:1px;border-bottom-style:solid}.td-markdown[_nghost-%COMP%] h2 .anchor{line-height:1}.td-markdown[_nghost-%COMP%] h3{font-size:1.5em;line-height:1.43}.td-markdown[_nghost-%COMP%] h3 .anchor{line-height:1.2}.td-markdown[_nghost-%COMP%] h4{font-size:1.25em}.td-markdown[_nghost-%COMP%] h4 .anchor{line-height:1.2}.td-markdown[_nghost-%COMP%] h5{font-size:1em}.td-markdown[_nghost-%COMP%] h5 .anchor{line-height:1.1}.td-markdown[_nghost-%COMP%] h6{font-size:1em}.td-markdown[_nghost-%COMP%] h6 .anchor{line-height:1.1}.td-markdown[_nghost-%COMP%] p, .td-markdown[_nghost-%COMP%] blockquote, .td-markdown[_nghost-%COMP%] ul, .td-markdown[_nghost-%COMP%] ol, .td-markdown[_nghost-%COMP%] dl, .td-markdown[_nghost-%COMP%] table, .td-markdown[_nghost-%COMP%] pre{margin-top:0;margin-bottom:16px}.td-markdown[_nghost-%COMP%] hr{margin:16px 0}.td-markdown[_nghost-%COMP%] ul, .td-markdown[_nghost-%COMP%] ol{padding-left:2em}.td-markdown[_nghost-%COMP%] ul ul, .td-markdown[_nghost-%COMP%] ul ol, .td-markdown[_nghost-%COMP%] ol ol, .td-markdown[_nghost-%COMP%] ol ul{margin-top:0;margin-bottom:0}.td-markdown[_nghost-%COMP%] li>p{margin-top:16px}.td-markdown[_nghost-%COMP%] dl{padding:0}.td-markdown[_nghost-%COMP%] dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.td-markdown[_nghost-%COMP%] dl dd{padding:0 16px;margin-bottom:16px}.td-markdown[_nghost-%COMP%] blockquote{padding:0 15px;border-left-width:4px;border-left-style:solid}.td-markdown[_nghost-%COMP%] blockquote>:first-child{margin-top:0}.td-markdown[_nghost-%COMP%] blockquote>:last-child{margin-bottom:0}.td-markdown[_nghost-%COMP%] table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.td-markdown[_nghost-%COMP%] table th{font-weight:700}.td-markdown[_nghost-%COMP%] table th, .td-markdown[_nghost-%COMP%] table td{padding:6px 13px;border-width:1px;border-style:solid}.td-markdown[_nghost-%COMP%] table tr{border-top-width:1px;border-top-style:solid}.td-markdown[_nghost-%COMP%] img{max-width:100%;box-sizing:content-box}.td-markdown[_nghost-%COMP%] code{padding:.2em 0;margin:0;font-size:85%;border-radius:3px}.td-markdown[_nghost-%COMP%] code:before, .td-markdown[_nghost-%COMP%] code:after{letter-spacing:-.2em}.td-markdown[_nghost-%COMP%] pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.td-markdown[_nghost-%COMP%] .highlight{margin-bottom:16px}.td-markdown[_nghost-%COMP%] .highlight pre, .td-markdown[_nghost-%COMP%] pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;border-radius:3px}.td-markdown[_nghost-%COMP%] .highlight pre{margin-bottom:0;word-break:normal}.td-markdown[_nghost-%COMP%] pre{word-wrap:normal}.td-markdown[_nghost-%COMP%] pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.td-markdown[_nghost-%COMP%] pre code:before, .td-markdown[_nghost-%COMP%] pre code:after{content:normal}.td-markdown[_nghost-%COMP%] kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;vertical-align:middle;border-style:solid;border-width:1px;border-radius:3px}.td-markdown[_nghost-%COMP%] .pl-c{color:#969896}.td-markdown[_nghost-%COMP%] .pl-c1, .td-markdown[_nghost-%COMP%] .pl-s .pl-v{color:#0086b3}.td-markdown[_nghost-%COMP%] .pl-e, .td-markdown[_nghost-%COMP%] .pl-en{color:#795da3}.td-markdown[_nghost-%COMP%] .pl-s .pl-s1, .td-markdown[_nghost-%COMP%] .pl-smi{color:#333}.td-markdown[_nghost-%COMP%] .pl-ent{color:#63a35c}.td-markdown[_nghost-%COMP%] .pl-k{color:#a71d5d}.td-markdown[_nghost-%COMP%] .pl-pds, .td-markdown[_nghost-%COMP%] .pl-s, .td-markdown[_nghost-%COMP%] .pl-s .pl-pse .pl-s1, .td-markdown[_nghost-%COMP%] .pl-sr, .td-markdown[_nghost-%COMP%] .pl-sr .pl-cce, .td-markdown[_nghost-%COMP%] .pl-sr .pl-sra, .td-markdown[_nghost-%COMP%] .pl-sr .pl-sre{color:#183691}.td-markdown[_nghost-%COMP%] .pl-v{color:#ed6a43}.td-markdown[_nghost-%COMP%] .pl-id{color:#b52a1d}.td-markdown[_nghost-%COMP%] .pl-ii{background-color:#b52a1d;color:#f8f8f8}.td-markdown[_nghost-%COMP%] .pl-sr .pl-cce{color:#63a35c;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-ml{color:#693a17}.td-markdown[_nghost-%COMP%] .pl-mh, .td-markdown[_nghost-%COMP%] .pl-mh .pl-en, .td-markdown[_nghost-%COMP%] .pl-ms{color:#1d3e81;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-mq{color:teal}.td-markdown[_nghost-%COMP%] .pl-mi{color:#333;font-style:italic}.td-markdown[_nghost-%COMP%] .pl-mb{color:#333;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-md{background-color:#ffecec;color:#bd2c00}.td-markdown[_nghost-%COMP%] .pl-mi1{background-color:#eaffea;color:#55a532}.td-markdown[_nghost-%COMP%] .pl-mdr{color:#795da3;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-mo{color:#1d3e81}.td-markdown[_nghost-%COMP%] kbd{display:inline-block;padding:3px 5px;font:11px Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #cccccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px #bbb}.td-markdown[_nghost-%COMP%] .full-commit .btn-outline:not(:disabled):hover{color:#4078c0;border:1px solid #4078c0}.td-markdown[_nghost-%COMP%] :checked+.radio-label{position:relative;z-index:1;border-color:#4078c0}.td-markdown[_nghost-%COMP%] .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.td-markdown[_nghost-%COMP%] .task-list-item{list-style-type:none}.td-markdown[_nghost-%COMP%] .task-list-item+.task-list-item{margin-top:3px}.td-markdown[_nghost-%COMP%] .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.td-markdown[_nghost-%COMP%] td.markdown-align-center{text-align:center}.td-markdown[_nghost-%COMP%] td.markdown-align-left{text-align:left}.td-markdown[_nghost-%COMP%] td.markdown-align-right{text-align:right}\"] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownComponent, [{\n type: Component,\n args: [{ selector: 'td-markdown', template: \"<ng-content></ng-content>\\n\", styles: [\":host.td-markdown::ng-deep a{background-color:transparent}:host.td-markdown::ng-deep a[target=_blank]{display:inline-flex;align-items:center;position:relative;padding-right:16px}:host.td-markdown::ng-deep a[target=_blank]:after{content:\\\"open_in_new\\\";font-family:var(--mdc-icon-font, \\\"Material Symbols Outlined\\\");padding-left:2px;text-decoration:none;position:absolute;right:0;top:1px}:host.td-markdown::ng-deep a:active,:host.td-markdown::ng-deep a:hover{outline-width:0}:host.td-markdown::ng-deep strong{font-weight:inherit;font-weight:bolder}:host.td-markdown::ng-deep h1{font-size:2em;margin:.67em 0}:host.td-markdown::ng-deep img{border-style:none}:host.td-markdown::ng-deep svg:not(:root){overflow:hidden}:host.td-markdown::ng-deep code,:host.td-markdown::ng-deep kbd,:host.td-markdown::ng-deep pre{font-family:monospace;font-size:1em}:host.td-markdown::ng-deep hr{box-sizing:content-box;height:0;overflow:visible}:host.td-markdown::ng-deep input{font:inherit;margin:0}:host.td-markdown::ng-deep input{overflow:visible}:host.td-markdown::ng-deep button:-moz-focusring,:host.td-markdown::ng-deep [type=button]:-moz-focusring,:host.td-markdown::ng-deep [type=reset]:-moz-focusring,:host.td-markdown::ng-deep [type=submit]:-moz-focusring{outline:1px dotted ButtonText}:host.td-markdown::ng-deep [type=checkbox]{box-sizing:border-box;padding:0}:host.td-markdown::ng-deep table{border-spacing:0;border-collapse:collapse}:host.td-markdown::ng-deep td,:host.td-markdown::ng-deep th{padding:0}:host.td-markdown::ng-deep *{box-sizing:border-box}:host.td-markdown::ng-deep input{font:13px/1.4 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",Segoe UI Symbol}:host.td-markdown::ng-deep a{text-decoration:none}:host.td-markdown::ng-deep a:hover,:host.td-markdown::ng-deep a:active{text-decoration:underline}:host.td-markdown::ng-deep hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep hr:before{display:table;content:\\\"\\\"}:host.td-markdown::ng-deep hr:after{display:table;clear:both;content:\\\"\\\"}:host.td-markdown::ng-deep h1,:host.td-markdown::ng-deep h2,:host.td-markdown::ng-deep h3,:host.td-markdown::ng-deep h4,:host.td-markdown::ng-deep h5,:host.td-markdown::ng-deep h6{margin-top:0;margin-bottom:0;line-height:1.5}:host.td-markdown::ng-deep h1{font-size:30px}:host.td-markdown::ng-deep h2{font-size:21px}:host.td-markdown::ng-deep h3{font-size:16px}:host.td-markdown::ng-deep h4{font-size:14px}:host.td-markdown::ng-deep h5{font-size:12px}:host.td-markdown::ng-deep h6{font-size:11px}:host.td-markdown::ng-deep p{margin-top:0;margin-bottom:10px}:host.td-markdown::ng-deep blockquote{margin:0}:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol{padding-left:0;margin-top:0;margin-bottom:0}:host.td-markdown::ng-deep ol ol,:host.td-markdown::ng-deep ul ol{list-style-type:lower-roman}:host.td-markdown::ng-deep ul ul ol,:host.td-markdown::ng-deep ul ol ol,:host.td-markdown::ng-deep ol ul ol,:host.td-markdown::ng-deep ol ol ol{list-style-type:lower-alpha}:host.td-markdown::ng-deep dd{margin-left:0}:host.td-markdown::ng-deep code{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}:host.td-markdown::ng-deep pre{margin-top:0;margin-bottom:0;font:12px Consolas,Liberation Mono,Menlo,Courier,monospace}:host.td-markdown::ng-deep .pl-0{padding-left:0!important}:host.td-markdown::ng-deep .pl-1{padding-left:3px!important}:host.td-markdown::ng-deep .pl-2{padding-left:6px!important}:host.td-markdown::ng-deep .pl-3{padding-left:12px!important}:host.td-markdown::ng-deep .pl-4{padding-left:24px!important}:host.td-markdown::ng-deep .pl-5{padding-left:36px!important}:host.td-markdown::ng-deep .pl-6{padding-left:48px!important}:host.td-markdown::ng-deep .form-select::-ms-expand{opacity:0}:host.td-markdown::ng-deep a:not([href]){color:inherit;text-decoration:none}:host.td-markdown::ng-deep h1,:host.td-markdown::ng-deep h2,:host.td-markdown::ng-deep h3,:host.td-markdown::ng-deep h4,:host.td-markdown::ng-deep h5,:host.td-markdown::ng-deep h6{margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}:host.td-markdown::ng-deep h1 .octicon-link,:host.td-markdown::ng-deep h2 .octicon-link,:host.td-markdown::ng-deep h3 .octicon-link,:host.td-markdown::ng-deep h4 .octicon-link,:host.td-markdown::ng-deep h5 .octicon-link,:host.td-markdown::ng-deep h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}:host.td-markdown::ng-deep h1:hover .anchor,:host.td-markdown::ng-deep h2:hover .anchor,:host.td-markdown::ng-deep h3:hover .anchor,:host.td-markdown::ng-deep h4:hover .anchor,:host.td-markdown::ng-deep h5:hover .anchor,:host.td-markdown::ng-deep h6:hover .anchor{text-decoration:none}:host.td-markdown::ng-deep h1:hover .anchor .octicon-link,:host.td-markdown::ng-deep h2:hover .anchor .octicon-link,:host.td-markdown::ng-deep h3:hover .anchor .octicon-link,:host.td-markdown::ng-deep h4:hover .anchor .octicon-link,:host.td-markdown::ng-deep h5:hover .anchor .octicon-link,:host.td-markdown::ng-deep h6:hover .anchor .octicon-link{visibility:visible}:host.td-markdown::ng-deep h1{padding-bottom:.3em;font-size:2.25em;line-height:1.2;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep h1 .anchor{line-height:1}:host.td-markdown::ng-deep h2{padding-bottom:.3em;font-size:1.75em;line-height:1.225;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep h2 .anchor{line-height:1}:host.td-markdown::ng-deep h3{font-size:1.5em;line-height:1.43}:host.td-markdown::ng-deep h3 .anchor{line-height:1.2}:host.td-markdown::ng-deep h4{font-size:1.25em}:host.td-markdown::ng-deep h4 .anchor{line-height:1.2}:host.td-markdown::ng-deep h5{font-size:1em}:host.td-markdown::ng-deep h5 .anchor{line-height:1.1}:host.td-markdown::ng-deep h6{font-size:1em}:host.td-markdown::ng-deep h6 .anchor{line-height:1.1}:host.td-markdown::ng-deep p,:host.td-markdown::ng-deep blockquote,:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol,:host.td-markdown::ng-deep dl,:host.td-markdown::ng-deep table,:host.td-markdown::ng-deep pre{margin-top:0;margin-bottom:16px}:host.td-markdown::ng-deep hr{margin:16px 0}:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol{padding-left:2em}:host.td-markdown::ng-deep ul ul,:host.td-markdown::ng-deep ul ol,:host.td-markdown::ng-deep ol ol,:host.td-markdown::ng-deep ol ul{margin-top:0;margin-bottom:0}:host.td-markdown::ng-deep li>p{margin-top:16px}:host.td-markdown::ng-deep dl{padding:0}:host.td-markdown::ng-deep dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}:host.td-markdown::ng-deep dl dd{padding:0 16px;margin-bottom:16px}:host.td-markdown::ng-deep blockquote{padding:0 15px;border-left-width:4px;border-left-style:solid}:host.td-markdown::ng-deep blockquote>:first-child{margin-top:0}:host.td-markdown::ng-deep blockquote>:last-child{margin-bottom:0}:host.td-markdown::ng-deep table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}:host.td-markdown::ng-deep table th{font-weight:700}:host.td-markdown::ng-deep table th,:host.td-markdown::ng-deep table td{padding:6px 13px;border-width:1px;border-style:solid}:host.td-markdown::ng-deep table tr{border-top-width:1px;border-top-style:solid}:host.td-markdown::ng-deep img{max-width:100%;box-sizing:content-box}:host.td-markdown::ng-deep code{padding:.2em 0;margin:0;font-size:85%;border-radius:3px}:host.td-markdown::ng-deep code:before,:host.td-markdown::ng-deep code:after{letter-spacing:-.2em}:host.td-markdown::ng-deep pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}:host.td-markdown::ng-deep .highlight{margin-bottom:16px}:host.td-markdown::ng-deep .highlight pre,:host.td-markdown::ng-deep pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;border-radius:3px}:host.td-markdown::ng-deep .highlight pre{margin-bottom:0;word-break:normal}:host.td-markdown::ng-deep pre{word-wrap:normal}:host.td-markdown::ng-deep pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}:host.td-markdown::ng-deep pre code:before,:host.td-markdown::ng-deep pre code:after{content:normal}:host.td-markdown::ng-deep kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;vertical-align:middle;border-style:solid;border-width:1px;border-radius:3px}:host.td-markdown::ng-deep .pl-c{color:#969896}:host.td-markdown::ng-deep .pl-c1,:host.td-markdown::ng-deep .pl-s .pl-v{color:#0086b3}:host.td-markdown::ng-deep .pl-e,:host.td-markdown::ng-deep .pl-en{color:#795da3}:host.td-markdown::ng-deep .pl-s .pl-s1,:host.td-markdown::ng-deep .pl-smi{color:#333}:host.td-markdown::ng-deep .pl-ent{color:#63a35c}:host.td-markdown::ng-deep .pl-k{color:#a71d5d}:host.td-markdown::ng-deep .pl-pds,:host.td-markdown::ng-deep .pl-s,:host.td-markdown::ng-deep .pl-s .pl-pse .pl-s1,:host.td-markdown::ng-deep .pl-sr,:host.td-markdown::ng-deep .pl-sr .pl-cce,:host.td-markdown::ng-deep .pl-sr .pl-sra,:host.td-markdown::ng-deep .pl-sr .pl-sre{color:#183691}:host.td-markdown::ng-deep .pl-v{color:#ed6a43}:host.td-markdown::ng-deep .pl-id{color:#b52a1d}:host.td-markdown::ng-deep .pl-ii{background-color:#b52a1d;color:#f8f8f8}:host.td-markdown::ng-deep .pl-sr .pl-cce{color:#63a35c;font-weight:700}:host.td-markdown::ng-deep .pl-ml{color:#693a17}:host.td-markdown::ng-deep .pl-mh,:host.td-markdown::ng-deep .pl-mh .pl-en,:host.td-markdown::ng-deep .pl-ms{color:#1d3e81;font-weight:700}:host.td-markdown::ng-deep .pl-mq{color:teal}:host.td-markdown::ng-deep .pl-mi{color:#333;font-style:italic}:host.td-markdown::ng-deep .pl-mb{color:#333;font-weight:700}:host.td-markdown::ng-deep .pl-md{background-color:#ffecec;color:#bd2c00}:host.td-markdown::ng-deep .pl-mi1{background-color:#eaffea;color:#55a532}:host.td-markdown::ng-deep .pl-mdr{color:#795da3;font-weight:700}:host.td-markdown::ng-deep .pl-mo{color:#1d3e81}:host.td-markdown::ng-deep kbd{display:inline-block;padding:3px 5px;font:11px Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #cccccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px #bbb}:host.td-markdown::ng-deep .full-commit .btn-outline:not(:disabled):hover{color:#4078c0;border:1px solid #4078c0}:host.td-markdown::ng-deep :checked+.radio-label{position:relative;z-index:1;border-color:#4078c0}:host.td-markdown::ng-deep .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}:host.td-markdown::ng-deep .task-list-item{list-style-type:none}:host.td-markdown::ng-deep .task-list-item+.task-list-item{margin-top:3px}:host.td-markdown::ng-deep .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}:host.td-markdown::ng-deep td.markdown-align-center{text-align:center}:host.td-markdown::ng-deep td.markdown-align-left{text-align:left}:host.td-markdown::ng-deep td.markdown-align-right{text-align:right}\\n\"] }]\n }], () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: i0.NgZone }], { class: [{\n type: HostBinding,\n args: ['class']\n }], content: [{\n type: Input\n }], simpleLineBreaks: [{\n type: Input\n }], hostedUrl: [{\n type: Input\n }], anchor: [{\n type: Input\n }], fileLinkExtensions: [{\n type: Input\n }], fileLinkClicked: [{\n type: Output\n }], contentReady: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownComponent, { className: \"TdMarkdownComponent\", filePath: \"lib/markdown.component.ts\", lineNumber: 221 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi9zcmMvbGliL21hcmtkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24vc3JjL2xpYi9tYXJrZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsZUFBZSxFQUdmLFdBQVcsRUFDWCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFDTCxjQUFjLEVBQ2QsWUFBWSxFQUNaLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFlBQVksRUFDWixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sS0FBSyxRQUFRLE1BQU0sVUFBVSxDQUFDOzs7O0FBRXJDLFNBQVMsYUFBYSxDQUFDLFdBQW1CO0lBQ3hDLGtDQUFrQztJQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELG1DQUFtQztBQUNuQyx5QkFBeUI7QUFDekIsU0FBUyxZQUFZLENBQUMsV0FBbUIsRUFBRSxZQUFvQjtJQUM3RCxJQUFJLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sVUFBVSxHQUFRLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFD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QixTQUFTOzJCQUNFLGFBQWE7bUhBaUJELEtBQUs7a0JBQTFCLFdBQVc7bUJBQUMsT0FBTztZQVVoQixPQUFPO2tCQURWLEtBQUs7WUFZRixnQkFBZ0I7a0JBRG5CLEtBQUs7WUFZRixTQUFTO2tCQURaLEtBQUs7WUFZRixNQUFNO2tCQURULEtBQUs7WUFXRixrQkFBa0I7a0JBRHJCLEtBQUs7WUFTSSxlQUFlO2tCQUF4QixNQUFNO1lBTUcsWUFBWTtrQkFBckIsTUFBTTs7a0ZBaEZJLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBSZW5kZXJlcjIsXG4gIFNlY3VyaXR5Q29udGV4dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBIb3N0QmluZGluZyxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtcbiAgc2Nyb2xsVG9BbmNob3IsXG4gIGdlbkhlYWRpbmdJZCxcbiAgaXNBbmNob3JMaW5rLFxuICByZW1vdmVUcmFpbGluZ0hhc2gsXG4gIHJhd0dpdGh1YkhyZWYsXG4gIGlzR2l0aHViSHJlZixcbiAgaXNSYXdHaXRodWJIcmVmLFxuICByZW5kZXJWaWRlb0VsZW1lbnRzLFxuICBpc0ZpbGVMaW5rLFxufSBmcm9tICcuL21hcmtkb3duLXV0aWxzL21hcmtkb3duLXV0aWxzJztcblxuaW1wb3J0ICogYXMgc2hvd2Rvd24gZnJvbSAnc2hvd2Rvd24nO1xuXG5mdW5jdGlvbiBpc0Fic29sdXRlVXJsKGN1cnJlbnRIcmVmOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gUmVndWxhciBFeHByZXNzaW9uIHRvIGNoZWNrIHVybFxuICBjb25zdCBSZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPzpbYS16XSs6KT8vLycsICdpJyk7XG4gIHJldHVybiBSZ0V4cC50ZXN0KGN1cnJlbnRIcmVmKTtcbn1cblxuLy8gVE9ETzogYXNzdW1lcyBpdCBpcyBhIGdpdGh1YiB1cmxcbi8vIGFsbG93IG92ZXJyaWRlIHNvbWVob3dcbmZ1bmN0aW9uIGdlbmVyYXRlSHJlZihjdXJyZW50SHJlZjogc3RyaW5nLCByZWxhdGl2ZUhyZWY6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChjdXJyZW50SHJlZiAmJiByZWxhdGl2ZUhyZWYpIHtcbiAgICBpZiAoaXNBYnNvbHV0ZVVybChjdXJyZW50SHJlZikpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRVcmw6IFVSTCA9IG5ldyBVUkwoY3VycmVudEhyZWYpO1xuICAgICAgY29uc3QgcGF0aDogc3RyaW5nID0gY3VycmVudFVybC5wYXRobmFtZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMSwgLTEpXG4gICAgICAgIC5qb2luKCcvJyk7XG4gICAgICBjb25zdCBjb3JyZWN0VXJsOiBVUkwgPSBuZXcgVVJMKGN1cnJlbnRIcmVmKTtcblxuICAgICAgaWYgKHJlbGF0aXZlSHJlZi5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgLy8gdXJsIGlzIHJlbGF0aXZlIHRvIHRvcCBsZXZlbFxuICAgICAgICBjb25zdCBvcmdBbmRSZXBvOiBzdHJpbmcgPSBwYXRoLnNwbGl0KCcvJykuc2xpY2UoMCwgMykuam9pbignLycpO1xuICAgICAgICBjb3JyZWN0VXJsLnBhdGhuYW1lID0gYCR7b3JnQW5kUmVwb30ke3JlbGF0aXZlSHJlZn1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29ycmVjdFVybC5wYXRobmFtZSA9IGAke3BhdGh9LyR7cmVsYXRpdmVIcmVmfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29ycmVjdFVybC5ocmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXRoOiBzdHJpbmcgPSBjdXJyZW50SHJlZi5zcGxpdCgnLycpLnNsaWNlKDAsIC0xKS5qb2luKCcvJyk7XG5cbiAgICAgIGlmIChyZWxhdGl2ZUhyZWYuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJldHVybiBgJHtwYXRofSR7cmVsYXRpdmVIcmVmfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYCR7cGF0aH0vJHtyZWxhdGl2ZUhyZWZ9YDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVIdG1sSHJlZnMoXG4gIGh0bWw6IHN0cmluZyxcbiAgY3VycmVudEhyZWY6IHN0cmluZyxcbiAgZmlsZUxpbmtFeHRlbnNpb25zPzogc3RyaW5nW11cbik6IHN0cmluZyB7XG4gIGlmIChjdXJyZW50SHJlZikge1xuICAgIGNvbnN0IGRvY3VtZW50OiBEb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoXG4gICAgICBodG1sLFxuICAgICAgJ3RleHQvaHRtbCdcbiAgICApO1xuICAgIGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MQW5jaG9yRWxlbWVudD4oJ2FbaHJlZl0nKVxuICAgICAgLmZvckVhY2goKGxpbms6IEhUTUxBbmNob3JFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTChsaW5rLmhyZWYpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbEhhc2g6IHN0cmluZyA9IHVybC5oYXNoO1xuICAgICAgICBjb25zdCBpc0ZpbGVBbmNob3JMaW5rID0gaXNGaWxlTGluayhsaW5rLCBmaWxlTGlua0V4dGVuc2lvbnMpO1xuICAgICAgICBpZiAoaXNBbmNob3JMaW5rKGxpbmspKSB7XG4gICAgICAgICAgaWYgKG9yaWdpbmFsSGFzaCkge1xuICAgICAgICAgICAgdXJsLmhhc2ggPSBnZW5IZWFkaW5nSWQob3JpZ2luYWxIYXNoKTtcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHVybC5oYXNoO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh1cmwuaG9zdCA9PT0gd2luZG93LmxvY2F0aW9uLmhvc3QpIHtcbiAgICAgICAgICAvLyBob3N0cyBtYXRjaCwgbWVhbmluZyBVUkwgTUlHSFQgaGF2ZSBiZWVuIG1hbGZvcm1lZCBieSBzaG93ZG93blxuICAgICAgICAgIC8vIHVybCBpcyBhIHJlbGF0aXZlIHVybCBvciBqdXN0IGEgbGluayB0byBhIHBhcnQgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgaWYgKHVybC5wYXRobmFtZS5lbmRzV2l0aCgnLm1kJykgfHwgaXNGaWxlQW5jaG9yTGluaykge1xuICAgICAgICAgICAgLy8gb25seSBjaGVjayAubWQgdXJscyBvciB1cmxzIGVuZGluZyB3aXRoIHRoZSBmaWxlTGlua0V4dGVuc2lvbnNcblxuICAgICAgICAgICAgY29uc3QgaHJlZldpdGhvdXRIYXNoOiBzdHJpbmcgPSByZW1vdmVUcmFpbGluZ0hhc2goXG4gICAgICAgICAgICAgIGxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHVybC5ocmVmID0gZ2VuZXJhdGVIcmVmKGN1cnJlbnRIcmVmLCBocmVmV2l0aG91dEhhc2gpO1xuXG4gICAgICAgICAgICBpZiAob3JpZ2luYWxIYXNoKSB7XG4gICAgICAgICAgICAgIHVybC5oYXNoID0gZ2VuSGVhZGluZ0lkKG9yaWdpbmFsSGFzaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSB1cmwuaHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluay50YXJnZXQgPSBpc0ZpbGVBbmNob3JMaW5rID8gJ19zZWxmJyA6ICdfYmxhbmsnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHVybCBpcyBhYnNvbHV0ZVxuICAgICAgICAgIGlmICh1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy5tZCcpKSB7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWxIYXNoKSB7XG4gICAgICAgICAgICAgIHVybC5oYXNoID0gZ2VuSGVhZGluZ0lkKG9yaWdpbmFsSGFzaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSB1cmwuaHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluay50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhkb2N1bWVudCk7XG4gIH1cbiAgcmV0dXJuIGh0bWw7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUltYWdlU3JjcyhodG1sOiBzdHJpbmcsIGN1cnJlbnRIcmVmOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoY3VycmVudEhyZWYpIHtcbiAgICBjb25zdCBkb2N1bWVudDogRG9jdW1lbnQgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgaHRtbCxcbiAgICAgICd0ZXh0L2h0bWwnXG4gICAgKTtcbiAgICBkb2N1bWVudFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEltYWdlRWxlbWVudD4oJ2ltZ1tzcmNdJylcbiAgICAgIC5mb3JFYWNoKChpbWFnZTogSFRNTEltYWdlRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBzcmMgPSBpbWFnZS5nZXRBdHRyaWJ1dGUoJ3NyYycpID8/ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11bnVzZWQtZXhwcmVzc2lvbiAqL1xuICAgICAgICAgIG5ldyBVUkwoc3JjKTtcbiAgICAgICAgICBpZiAoaXNHaXRodWJIcmVmKHNyYykpIHtcbiAgICAgICAgICAgIGltYWdlLnNyYyA9IHJhd0dpdGh1YkhyZWYoc3JjKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIGltYWdlLnNyYyA9IGdlbmVyYXRlSHJlZihcbiAgICAgICAgICAgIGlzR2l0aHViSHJlZihjdXJyZW50SHJlZilcbiAgICAgICAgICAgICAgPyByYXdHaXRodWJIcmVmKGN1cnJlbnRIcmVmKVxuICAgICAgICAgICAgICA6IGN1cnJlbnRIcmVmLFxuICAgICAgICAgICAgc3JjXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBnaCBzdmdzIG5lZWQgdG8gaGF2ZSA/c2FuaXRpemU9dHJ1ZVxuICAgICAgICBpZiAoaXNSYXdHaXRodWJIcmVmKGltYWdlLnNyYykpIHtcbiAgICAgICAgICBjb25zdCB1cmw6IFVSTCA9IG5ldyBVUkwoaW1hZ2Uuc3JjKTtcbiAgICAgICAgICBpZiAodXJsLnBhdGhuYW1lLmVuZHNXaXRoKCcuc3ZnJykpIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdzYW5pdGl6ZScsICd0cnVlJyk7XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSB1cmwuaHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiBhZGRJZHNUb0hlYWRpbmdzKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChodG1sKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJ1xuICAgICk7XG4gICAgZG9jdW1lbnRcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCdoMSwgaDIsIGgzLCBoNCwgaDUsIGg2JylcbiAgICAgIC5mb3JFYWNoKChoZWFkaW5nOiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmlwcGVkSW5uZXJIVE1MID0gc3RyaXBBbGxIdG1sVGFncyhoZWFkaW5nLmlubmVySFRNTCk7XG4gICAgICAgIGNvbnN0IGlkOiBzdHJpbmcgPSBnZW5IZWFkaW5nSWQoc3RyaXBwZWRJbm5lckhUTUwpO1xuICAgICAgICBoZWFkaW5nLnNldEF0dHJpYnV0ZSgnaWQnLCBpZCk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhkb2N1bWVudCk7XG4gIH1cbiAgcmV0dXJuIGh0bWw7XG59XG5cbmZ1bmN0aW9uIGNoYW5nZVN0eWxlQWxpZ25tZW50VG9DbGFzcyhodG1sOiBzdHJpbmcpIHtcbiAgaWYgKGh0bWwpIHtcbiAgICBjb25zdCBkb2N1bWVudDogRG9jdW1lbnQgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgaHRtbCxcbiAgICAgICd0ZXh0L2h0bWwnXG4gICAgKTtcbiAgICBbJ3JpZ2h0JywgJ2NlbnRlcicsICdsZWZ0J10uZm9yRWFjaCgoYWxpZ25tZW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGRvY3VtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKGBbc3R5bGUqPSd0ZXh0LWFsaWduOiR7YWxpZ25tZW50fSddYClcbiAgICAgICAgLmZvckVhY2goKHN0eWxlOiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdjbGFzcycsIGBtYXJrZG93bi1hbGlnbi0ke2FsaWdubWVudH1gKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhkb2N1bWVudCk7XG4gIH1cblxuICByZXR1cm4gaHRtbDtcbn1cblxuLy8gU3RyaXBzIGFsbCB0aGUgaHRtbCB0YWdzIGluIHRoZSBodG1sIHNhbmQgcmV0dXJucyB0aGUgdGV4dFxuZnVuY3Rpb24gc3RyaXBBbGxIdG1sVGFncyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHNhbml0aXplZCA9IGlucHV0O1xuICBsZXQgcHJldmlvdXM7XG5cbiAgZG8ge1xuICAgIHByZXZpb3VzID0gc2FuaXRpemVkO1xuICAgIHNhbml0aXplZCA9IHNhbml0aXplZC5yZXBsYWNlKC88W14+XSs+L2csICcnKTtcbiAgfSB3aGlsZSAocHJldmlvdXMgIT09IHNhbml0aXplZCk7XG5cbiAgcmV0dXJuIHNhbml0aXplZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtbWFya2Rvd24nLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfY29udGVudCE6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2ltcGxlTGluZUJyZWFrcyA9IGZhbHNlO1xuICBwcml2YXRlIF9ob3N0ZWRVcmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2FuY2hvciE6IHN0cmluZztcbiAgcHJpdmF0ZSBfdmlld0luaXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZmlsZUxpbmtFeHRlbnNpb25zITogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2FuY2hvckxpc3RlbmVyPzogVm9pZEZ1bmN0aW9uO1xuICAvKipcbiAgICogLnRkLW1hcmtkb3duIGNsYXNzIGFkZGVkIHRvIGhvc3Qgc28gOjpuZy1kZWVwIGdldHMgc2NvcGVkLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ3RkLW1hcmtkb3duJztcblxuICAvKipcbiAgICogY29udGVudD86IHN0cmluZ1xuICAgKlxuICAgKiBNYXJrZG93biBmb3JtYXQgY29udGVudCB0byBiZSBwYXJzZWQgYXMgaHRtbCBtYXJrdXAuXG4gICAqXG4gICAqIGUuZy4gUkVBRE1FLm1kIGNvbnRlbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBzaW1wbGVMaW5lQnJlYWtzPzogc3RyaW5nXG4gICAqXG4gICAqIFNldHMgd2hldGhlciBuZXdsaW5lIGNoYXJhY3RlcnMgaW5zaWRlIHBhcmFncmFwaHMgYW5kIHNwYW5zIGFyZSBwYXJzZWQgYXMgPGJyLz4uXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNpbXBsZUxpbmVCcmVha3Moc2ltcGxlTGluZUJyZWFrczogYm9vbGVhbikge1xuICAgIHRoaXMuX3NpbXBsZUxpbmVCcmVha3MgPSBzaW1wbGVMaW5lQnJlYWtzO1xuICB9XG5cbiAgLyoqXG4gICAqIGhvc3RlZFVybD86IHN0cmluZ1xuICAgKlxuICAgKiBJZiBtYXJrZG93biBjb250YWlucyByZWxhdGl2ZSBwYXRocywgdGhpcyBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSBjb3JyZWN0IHVybHMuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaG9zdGVkVXJsKGhvc3RlZFVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5faG9zdGVkVXJsID0gaG9zdGVkVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIGFuY2hvcj86IHN0cmluZ1xuICAgKlxuICAgKiBBbmNob3IgdG8ganVtcCB0by5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBhbmNob3IoYW5jaG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZpbGUgZXh0ZW5zaW9ucyB0byBtb25pdG9yIGZvciBpbiBhbmNob3IgdGFncy4gSWYgYW4gYW5jaG9yJ3MgYGhyZWZgIGVuZHNcbiAgICogd2l0aCB0aGVzZSBleHRlbnNpb25zLCBhbiBldmVudCB3aWxsIGJlIGVtaXR0ZWQgaW5zdGVhZCBvZiBwZXJmb3JtaW5nIHRoZSBkZWZhdWx0IGNsaWNrIGFjdGlvbi5cbiAgICogRXhhbXBsZSB2YWx1ZXM6IFtcIi5pcHluYlwiLCBcIi56aXBcIiwgXCIuZG9jeFwiXVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGZpbGVMaW5rRXh0ZW5zaW9ucyhleHRlbnNpb25zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2ZpbGVMaW5rRXh0ZW5zaW9ucyA9IGV4dGVuc2lvbnM7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGFuY2hvciB0YWcgd2l0aCBhbiBgaHJlZmAgbWF0Y2hpbmcgdGhlIHNwZWNpZmllZFxuICAgKiBmaWxlTGlua0V4dGVuc2lvbnMgaXMgY2xpY2tlZC4gVGhlIGVtaXR0ZWQgdmFsdWUgaXMgdGhlIFVSTCBvZiB0aGUgY2xpY2tlZCBhbmNob3IuXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsZUxpbmtDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxVUkw+KCk7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnRSZWFkeT86IGZ1bmN0aW9uXG4gICAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIG1hcmtkb3duIGNvbnRlbnQgcmVuZGVyaW5nIGlzIGZpbmlzaGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIGNvbnRlbnRSZWFkeTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIG9ubHkgYW5jaG9yIGNoYW5nZWRcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydhbmNob3InXSAmJlxuICAgICAgIWNoYW5nZXNbJ2NvbnRlbnQnXSAmJlxuICAgICAgIWNoYW5nZXNbJ3NpbXBsZUxpbmVCcmVha3MnXSAmJlxuICAgICAgIWNoYW5nZXNbJ2hvc3RlZFVybCddXG4gICAgKSB7XG4gICAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2FuY2hvciwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2xvYWRDb250ZW50KFxuICAgICAgICAoPEhUTUxFbGVtZW50PnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkudGV4dENvbnRlbnRcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3ZpZXdJbml0ID0gdHJ1ZTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB0aGUgYHNjcm9sbFRvQW5jaG9yYCBjYWxscyBgZWxlbWVudC5zY3JvbGxJbnRvVmlld2AsIGEgbmF0aXZlIHN5bmNocm9ub3VzIERPTVxuICAgIC8vIEFQSSBhbmQgaXQgZG9lc24ndCByZXF1aXJlIEFuZ3VsYXIgcnVubmluZyBgQXBwbGljYXRpb25SZWYudGljaygpYCBlYWNoIHRpbWUgdGhlIG1hcmtkb3duIGNvbXBvbmVudCBpcyBjbGlja2VkLlxuICAgIC8vIEhvc3QgbGlzdGVuZXIgKGFkZGVkIHRocm91Z2ggYEBIb3N0TGlzdGVuZXJgKSBjYXVzZSBBbmd1bGFyIHRvIGFkZCBhbiBldmVudCBsaXN0ZW5lciB3aXRoaW4gdGhlIEFuZ3VsYXIgem9uZS5cbiAgICAvLyBJdCBhbHNvIGNhbGxzIGBtYXJrVmlld0RpcnR5KClgIGJlZm9yZSBjYWxsaW5nIHRoZSBhY3R1YWwgbGlzdGVuZXIgKHRoZSBkZWNvcmF0ZWQgY2xhc3MgbWV0aG9kKS5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fYW5jaG9yTGlzdGVuZXIgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+ZXZlbnQuc3JjRWxlbWVudDtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlbGVtZW50Lm1hdGNoZXMoJ2FbaHJlZl0nKSAmJlxuICAgICAgICAgICAgaXNBbmNob3JMaW5rKDxIVE1MQW5jaG9yRWxlbWVudD5lbGVtZW50KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbmNob3JDbGlja3MoZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBlbGVtZW50Lm1hdGNoZXMoJ2FbaHJlZl0nKSAmJlxuICAgICAgICAgICAgaXNGaWxlTGluayg8SFRNTEFuY2hvckVsZW1lbnQ+ZWxlbWVudCwgdGhpcy5fZmlsZUxpbmtFeHRlbnNpb25zKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWxlQW5jaG9yQ2xpY2tzKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbmNob3JMaXN0ZW5lcj8uKCk7XG4gIH1cblxuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudCh0aGlzLl9jb250ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3ZpZXdJbml0KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudChcbiAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnRleHRDb250ZW50XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmFsIG1ldGhvZCB0byBwYXJzZSBhIHN0cmluZyBtYXJrZG93biBpbnRvIEhUTUwgRWxlbWVudHMgYW5kIGxvYWQgdGhlbSBpbnRvIHRoZSBjb250YWluZXJcbiAgICovXG4gIHByaXZhdGUgX2xvYWRDb250ZW50KG1hcmtkb3duOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG1hcmtkb3duICYmIG1hcmtkb3duLnRyaW0oKS5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBDbGVhbiBjb250YWluZXJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdpbm5lckhUTUwnLFxuICAgICAgICAnJ1xuICAgICAgKTtcbiAgICAgIC8vIFBhcnNlIGh0bWwgc3RyaW5nIGludG8gYWN0dWFsIEhUTUwgZWxlbWVudHMuXG4gICAgICB0aGlzLl9lbGVtZW50RnJvbVN0cmluZyh0aGlzLl9yZW5kZXIobWFya2Rvd24pKTtcbiAgICB9XG4gICAgLy8gVE9ETzogdGltZW91dCByZXF1aXJlZCBzaW5jZSByZXNpemluZyBvZiBodG1sIGVsZW1lbnRzIG9jY3VycyB3aGljaCBjYXVzZXMgYSBjaGFuZ2UgaW4gdGhlIHNjcm9sbCBwb3NpdGlvblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2FuY2hvciwgdHJ1ZSksXG4gICAgICAgIDI1MFxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5jb250ZW50UmVhZHkuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBbmNob3JDbGlja3MoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB1cmw6IFVSTCA9IG5ldyBVUkwoKDxIVE1MQW5jaG9yRWxlbWVudD5ldmVudC50YXJnZXQpLmhyZWYpO1xuICAgIGNvbnN0IGhhc2g6IHN0cmluZyA9IGRlY29kZVVSSSh1cmwuaGFzaCk7XG4gICAgc2Nyb2xsVG9BbmNob3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBoYXNoLCB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRmlsZUFuY2hvckNsaWNrcyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTCgoPEhUTUxBbmNob3JFbGVtZW50PmV2ZW50LnRhcmdldCkuaHJlZik7XG4gICAgdGhpcy5maWxlTGlua0NsaWNrZWQuZW1pdCh1cmwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWxlbWVudEZyb21TdHJpbmcobWFya3VwU3RyOiBzdHJpbmcpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgLy8gUmVuZGVyZXIyIGRvZXNudCBoYXZlIGEgcGFyc2luZyBtZXRob2QsIHNvIHdlIGhhdmUgdG8gc2FuaXRpemUgYW5kIHVzZSBbaW5uZXJIVE1MXVxuICAgIC8vIHRvIHBhcnNlIHRoZSBzdHJpbmcgaW50byBET00gZWxlbWVudCBmb3Igbm93LlxuICAgIGNvbnN0IGRpdjogSFRNTERpdkVsZW1lbnQgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGRpdik7XG5cbiAgICBjb25zdCBodG1sOiBzdHJpbmcgPVxuICAgICAgdGhpcy5fZG9tU2FuaXRpemVyLnNhbml0aXplKFxuICAgICAgICBTZWN1cml0eUNvbnRleHQuSFRNTCxcbiAgICAgICAgY2hhbmdlU3R5bGVBbGlnbm1lbnRUb0NsYXNzKG1hcmt1cFN0cilcbiAgICAgICkgPz8gJyc7XG4gICAgY29uc3QgaHRtbFdpdGhBYnNvbHV0ZUhyZWZzOiBzdHJpbmcgPSBub3JtYWxpemVIdG1sSHJlZnMoXG4gICAgICBodG1sLFxuICAgICAgdGhpcy5faG9zdGVkVXJsLFxuICAgICAgdGhpcy5fZmlsZUxpbmtFeHRlbnNpb25zXG4gICAgKTtcbiAgICBjb25zdCBodG1sV2l0aEFic29sdXRlSW1nU3Jjczogc3RyaW5nID0gbm9ybWFsaXplSW1hZ2VTcmNzKFxuICAgICAgaHRtbFdpdGhBYnNvbHV0ZUhyZWZzLFxuICAgICAgdGhpcy5faG9zdGVkVXJsXG4gICAgKTtcbiAgICBjb25zdCBodG1sV2l0aEhlYWRpbmdJZHM6IHN0cmluZyA9IGFkZElkc1RvSGVhZGluZ3MoXG4gICAgICBodG1sV2l0aEFic29sdXRlSW1nU3Jjc1xuICAgICk7XG4gICAgY29uc3QgaHRtbFdpdGhWaWRlb3M6IFNhZmVIdG1sID0gcmVuZGVyVmlkZW9FbGVtZW50cyhodG1sV2l0aEhlYWRpbmdJZHMpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGRpdiwgJ2lubmVySFRNTCcsIGh0bWxXaXRoVmlkZW9zKTtcbiAgICByZXR1cm4gZGl2O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRyaW0gbGVhZGluZyBhbmQgdHJhaWxpbmcgbmV3bGluZXNcbiAgICBtYXJrZG93biA9IG1hcmtkb3duXG4gICAgICAucmVwbGFjZSgvXihcXHN8XFx0KSpcXG4rL2csICcnKVxuICAgICAgLnJlcGxhY2UoLyhcXHN8XFx0KSpcXG4rKFxcc3xcXHQpKiQvZywgJycpO1xuICAgIC8vIFNwbGl0IG1hcmtkb3duIGJ5IGxpbmUgY2hhcmFjdGVyc1xuICAgIGxldCBsaW5lczogc3RyaW5nW10gPSBtYXJrZG93bi5zcGxpdCgnXFxuJyk7XG5cbiAgICAvLyBjaGVjayBob3cgbXVjaCBpbmRlbnRhdGlvbiBpcyB1c2VkIGJ5IHRoZSBmaXJzdCBhY3R1YWwgbWFya2Rvd24gbGluZVxuICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaCA9IGxpbmVzWzBdLm1hdGNoKC9eKFxcc3xcXHQpKi8pO1xuICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2U6IHN0cmluZyA9IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaFxuICAgICAgPyBmaXJzdExpbmVXaGl0ZXNwYWNlTWF0Y2hbMF1cbiAgICAgIDogJyc7XG5cbiAgICAvLyBSZW1vdmUgYWxsIGluZGVudGF0aW9uIHNwYWNlcyBzbyBtYXJrZG93biBjYW4gYmUgcGFyc2VkIGNvcnJlY3RseVxuICAgIGNvbnN0IHN0YXJ0aW5nV2hpdGVzcGFjZVJlZ2V4ID0gbmV3IFJlZ0V4cCgnXicgKyBmaXJzdExpbmVXaGl0ZXNwYWNlKTtcbiAgICBsaW5lcyA9IGxpbmVzLm1hcChmdW5jdGlvbiAobGluZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBsaW5lLnJlcGxhY2Uoc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXgsICcnKTtcbiAgICB9KTtcblxuICAgIC8vIEpvaW4gbGluZXMgYWdhaW4gd2l0aCBsaW5lIGNoYXJhY3RlcnNcbiAgICBjb25zdCBtYXJrZG93blRvUGFyc2U6IHN0cmluZyA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuXG4gICAgLy8gQ29udmVydCBtYXJrZG93biBpbnRvIGh0bWxcbiAgICBjb25zdCBjb252ZXJ0ZXI6IHNob3dkb3duLkNvbnZlcnRlciA9IG5ldyBzaG93ZG93bi5Db252ZXJ0ZXIoKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdnaENvZGVCbG9ja3MnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCd0YXNrbGlzdHMnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCd0YWJsZXMnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdsaXRlcmFsTWlkV29yZFVuZGVyc2NvcmVzJywgdHJ1ZSk7XG4gICAgY29udmVydGVyLnNldE9wdGlvbignc2ltcGxlTGluZUJyZWFrcycsIHRoaXMuX3NpbXBsZUxpbmVCcmVha3MpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ2Vtb2ppJywgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbnZlcnRlci5tYWtlSHRtbChtYXJrZG93blRvUGFyc2UpO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=","import { Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { HttpClient } from '@angular/common/http';\nimport { isGithubHref, rawGithubHref } from '../markdown-utils/markdown-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"@angular/platform-browser\";\nexport class TdMarkdownLoaderService {\n _http;\n _sanitizer;\n constructor(_http, _sanitizer) {\n this._http = _http;\n this._sanitizer = _sanitizer;\n }\n async load(url, httpOptions = {}) {\n const sanitizedUrl = this._sanitizer.sanitize(SecurityContext.URL, url) ?? '';\n let urlToGet = sanitizedUrl;\n if (isGithubHref(sanitizedUrl)) {\n urlToGet = rawGithubHref(sanitizedUrl);\n }\n const response = await this._http\n .get(urlToGet, {\n ...httpOptions,\n responseType: 'text',\n observe: 'response',\n })\n .toPromise();\n const contentType = response?.headers.get('Content-Type') ?? '';\n if (contentType.includes('text/plain') ||\n contentType.includes('text/markdown')) {\n return response?.body ?? '';\n }\n else {\n throw Error(`${contentType} is not a handled content type`);\n }\n }\n static ɵfac = function TdMarkdownLoaderService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownLoaderService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.DomSanitizer)); };\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TdMarkdownLoaderService, factory: TdMarkdownLoaderService.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownLoaderService, [{\n type: Injectable\n }], () => [{ type: i1.HttpClient }, { type: i2.DomSanitizer }], null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duL3NyYy9saWIvbWFya2Rvd24tbG9hZGVyL21hcmtkb3duLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFHL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUNkO0lBQTJCO0lBQS9DLFlBQW9CLEtBQWlCLEVBQVUsVUFBd0I7UUFBbkQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQWM7SUFBRyxDQUFDO0lBRTNFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBVyxFQUFFLGNBQXNCLEVBQUU7UUFDOUMsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELElBQUksUUFBUSxHQUFXLFlBQVksQ0FBQztRQUNwQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQy9CLFFBQVEsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFxQyxNQUFNLElBQUksQ0FBQyxLQUFLO2FBQ2hFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDYixHQUFHLFdBQVc7WUFDZCxZQUFZLEVBQUUsTUFBTTtZQUNwQixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDO2FBQ0QsU0FBUyxFQUFFLENBQUM7UUFDZixNQUFNLFdBQVcsR0FBVyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEUsSUFDRSxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUNsQyxXQUFXLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUNyQyxDQUFDO1lBQ0QsT0FBTyxRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxDQUFDLEdBQUcsV0FBVyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO2lIQTNCVSx1QkFBdUI7Z0VBQXZCLHVCQUF1QixXQUF2Qix1QkFBdUI7O2lGQUF2Qix1QkFBdUI7Y0FEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFNlY3VyaXR5Q29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpc0dpdGh1YkhyZWYsIHJhd0dpdGh1YkhyZWYgfSBmcm9tICcuLi9tYXJrZG93bi11dGlscy9tYXJrZG93bi11dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTG9hZGVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIGFzeW5jIGxvYWQodXJsOiBzdHJpbmcsIGh0dHBPcHRpb25zOiBvYmplY3QgPSB7fSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2FuaXRpemVkVXJsOiBzdHJpbmcgPVxuICAgICAgdGhpcy5fc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5VUkwsIHVybCkgPz8gJyc7XG4gICAgbGV0IHVybFRvR2V0OiBzdHJpbmcgPSBzYW5pdGl6ZWRVcmw7XG4gICAgaWYgKGlzR2l0aHViSHJlZihzYW5pdGl6ZWRVcmwpKSB7XG4gICAgICB1cmxUb0dldCA9IHJhd0dpdGh1YkhyZWYoc2FuaXRpemVkVXJsKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4gfCB1bmRlZmluZWQgPSBhd2FpdCB0aGlzLl9odHRwXG4gICAgICAuZ2V0KHVybFRvR2V0LCB7XG4gICAgICAgIC4uLmh0dHBPcHRpb25zLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG4gICAgY29uc3QgY29udGVudFR5cGU6IHN0cmluZyA9IHJlc3BvbnNlPy5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJykgPz8gJyc7XG4gICAgaWYgKFxuICAgICAgY29udGVudFR5cGUuaW5jbHVkZXMoJ3RleHQvcGxhaW4nKSB8fFxuICAgICAgY29udGVudFR5cGUuaW5jbHVkZXMoJ3RleHQvbWFya2Rvd24nKVxuICAgICkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlPy5ib2R5ID8/ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcihgJHtjb250ZW50VHlwZX0gaXMgbm90IGEgaGFuZGxlZCBjb250ZW50IHR5cGVgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { provideHttpClient, withInterceptorsFromDi, } from '@angular/common/http';\nimport { TdMarkdownComponent } from './markdown.component';\nimport { TdMarkdownLoaderService } from './markdown-loader/markdown-loader.service';\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 CovalentMarkdownModule {\n static ɵfac = function CovalentMarkdownModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentMarkdownModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentMarkdownModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [\n TdMarkdownLoaderService,\n provideHttpClient(withInterceptorsFromDi()),\n ] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentMarkdownModule, [{\n type: NgModule,\n args: [{\n exports: [TdMarkdownComponent],\n imports: [TdMarkdownComponent],\n providers: [\n TdMarkdownLoaderService,\n provideHttpClient(withInterceptorsFromDi()),\n ],\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentMarkdownModule, { imports: [TdMarkdownComponent], exports: [TdMarkdownComponent] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi9zcmMvbGliL21hcmtkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsc0JBQXNCLEdBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBRXBGOzs7R0FHRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7Z0hBQXRCLHNCQUFzQjs0REFBdEIsc0JBQXNCO2lFQUx0QjtZQUNULHVCQUF1QjtZQUN2QixpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzVDOztpRkFFVSxzQkFBc0I7Y0FSbEMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDOUIsU0FBUyxFQUFFO29CQUNULHVCQUF1QjtvQkFDdkIsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztpQkFDNUM7YUFDRjs7d0ZBQ1ksc0JBQXNCLGNBTnZCLG1CQUFtQixhQURuQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBwcm92aWRlSHR0cENsaWVudCxcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBUZE1hcmtkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGRNYXJrZG93bkxvYWRlclNlcnZpY2UgfSBmcm9tICcuL21hcmtkb3duLWxvYWRlci9tYXJrZG93bi1sb2FkZXIuc2VydmljZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBtb2R1bGUgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy5cbiAqIFBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nIHN0YW5kYWxvbmUgY29tcG9uZW50cyBhcyBzb29uIGFzIHBvc3NpYmxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbVGRNYXJrZG93bkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtUZE1hcmtkb3duQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVGRNYXJrZG93bkxvYWRlclNlcnZpY2UsXG4gICAgcHJvdmlkZUh0dHBDbGllbnQod2l0aEludGVyY2VwdG9yc0Zyb21EaSgpKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRNYXJrZG93bk1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtbWFya2Rvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21hcmtkb3duL3NyYy9jb3ZhbGVudC1tYXJrZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":["i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"covalent-markdown.mjs","sources":["../tmp-esm2022/lib/markdown-utils/markdown-utils.js","../tmp-esm2022/lib/markdown.component.js","../tmp-esm2022/lib/markdown-loader/markdown-loader.service.js","../tmp-esm2022/lib/markdown.module.js","../tmp-esm2022/covalent-markdown.js"],"sourcesContent":["export function removeLeadingHash(str) {\n if (str) {\n return str.replace(/^#+/, '');\n }\n return '';\n}\nexport function removeTrailingHash(str) {\n if (str) {\n return str.replace(/#.*/, '');\n }\n return '';\n}\nexport function genHeadingId(str) {\n if (str) {\n return removeLeadingHash(str\n .replace(/(_|-|\\s)+/g, '')\n // Remove certain special chars to create heading ids similar to those in github\n // borrowed from showdown\n // https://github.com/showdownjs/showdown/blob/main/src/subParsers/makehtml/headers.js#L94\n .replace(/[&+$,/:;=?@\"#{}|^¨~[\\]`\\\\*)(%.!'<>]/g, '')).toLowerCase();\n }\n return '';\n}\nexport function scrollToAnchor(scope, anchor, tryParent) {\n if (scope && anchor) {\n const normalizedAnchor = genHeadingId(anchor);\n let headingToJumpTo = null;\n const headingWithinComponent = scope.querySelector(`[id=\"${normalizedAnchor}\"]`);\n if (headingWithinComponent) {\n headingToJumpTo = headingWithinComponent;\n }\n else if (tryParent) {\n const parent = scope.parentElement;\n if (parent) {\n headingToJumpTo = parent.querySelector(`[id=\"${normalizedAnchor}\"]`);\n }\n }\n if (headingToJumpTo) {\n headingToJumpTo.scrollIntoView({ behavior: 'auto' });\n return true;\n }\n }\n return false;\n}\nexport function isAnchorLink(anchor) {\n if (anchor) {\n const href = anchor.getAttribute('href');\n if (href) {\n return href.startsWith('#');\n }\n }\n return false;\n}\nexport function isFileLink(anchor, fileExtensions) {\n if (fileExtensions && fileExtensions.length) {\n const href = anchor.getAttribute('href');\n if (href) {\n return fileExtensions.some((fileExtension) => href.endsWith(fileExtension));\n }\n }\n return false;\n}\nconst RAW_GITHUB_HOSTNAME = 'raw.githubusercontent.com';\nexport function rawGithubHref(githubHref) {\n if (githubHref) {\n try {\n const url = new URL(githubHref);\n if (url.hostname === RAW_GITHUB_HOSTNAME) {\n return url.href;\n }\n else if (isGithubHref(githubHref)) {\n url.hostname = RAW_GITHUB_HOSTNAME;\n url.pathname = url.pathname.split('/blob', 2).join('');\n return url.href;\n }\n }\n catch {\n return '';\n }\n }\n return '';\n}\nexport function isGithubHref(href) {\n try {\n const temp = new URL(href ?? '');\n return temp.hostname === 'github.com';\n }\n catch {\n return false;\n }\n}\nexport function isRawGithubHref(href = '') {\n try {\n const temp = new URL(href);\n return temp.hostname === RAW_GITHUB_HOSTNAME;\n }\n catch {\n return false;\n }\n}\nexport function renderVideoElements(html) {\n const ytLongEmbed = /!\\[(?:(?:https?:)?(?:\\/\\/)?)(?:(?:www)?.)?youtube.(?:.+?)\\/(?:(?:embed\\/)([\\w-]{11})(\\?[\\w%;-]+(?:=[\\w%;-]+)?(?:&[\\w%;-]+(?:=[\\w%;-]+)?)*)?)]/gi;\n const ytLongWatch = /!\\[(?:(?:https?:)?(?:\\/\\/)?)(?:(?:www)?.)?youtube.(?:.+?)\\/(?:(?:watch\\?v=)([\\w-]{11})(&[\\w%;-]+(?:=[\\w%;-]+)?)*)]/gi;\n const ytShort = /!\\[(?:(?:https?:)?(?:\\/\\/)?)?youtu.be\\/([\\w-]{11})\\??([\\w%;-]+(?:=[\\w%;-]+)?(?:&[\\w%;-]+(?:=[\\w%;-]+)?)*)?]/gi;\n const ytPlaylist = /!\\[(?:(?:https?:)?(?:\\/\\/)?)(?:(?:www)?.)?youtube.(?:.+?)\\/(?:(?:playlist\\?list=)([\\w-]{34})(&[\\w%;-]+(?:=[\\w%;-]+)?)*)]/gi;\n function convert(match, id, flags) {\n if (flags) {\n id += '?' + flags.replace(/&/gi, '&');\n }\n return `<iframe allow=\"fullscreen\" frameborder=\"0\" src=\"https://www.youtube.com/embed/${id}\"></iframe>`;\n }\n function convertPL(match, id, flags) {\n if (flags) {\n id += flags.replace(/&/gi, '&');\n }\n return `<iframe allow=\"fullscreen\" frameborder=\"0\" src=\"https://www.youtube.com/embed/videoseries?list=${id}\"></iframe>`;\n }\n return html\n .replace(ytLongWatch, convert)\n .replace(ytLongEmbed, convert)\n .replace(ytShort, convert)\n .replace(ytPlaylist, convertPL);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duL3NyYy9saWIvbWFya2Rvd24tdXRpbHMvbWFya2Rvd24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVc7SUFDM0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFrQjtJQUNuRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLGlCQUFpQixDQUN0QixHQUFHO2FBQ0EsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDMUIsZ0ZBQWdGO1lBQ2hGLHlCQUF5QjtZQUN6QiwwRkFBMEY7YUFDekYsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEVBQUUsQ0FBQyxDQUN2RCxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixLQUFrQixFQUNsQixNQUFjLEVBQ2QsU0FBa0I7SUFFbEIsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDcEIsTUFBTSxnQkFBZ0IsR0FBVyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxlQUFlLEdBQW1CLElBQUksQ0FBQztRQUMzQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxhQUFhLENBQ2hELFFBQVEsZ0JBQWdCLElBQUksQ0FDN0IsQ0FBQztRQUVGLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUMzQixlQUFlLEdBQUcsc0JBQXNCLENBQUM7UUFDM0MsQ0FBQzthQUFNLElBQUksU0FBUyxFQUFFLENBQUM7WUFDckIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUNuQyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLGVBQWUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixlQUFlLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBMEI7SUFDckQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3hCLE1BQXlCLEVBQ3pCLGNBQW9DO0lBRXBDLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUM3QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDO0FBRXhELE1BQU0sVUFBVSxhQUFhLENBQUMsVUFBbUI7SUFDL0MsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN6QyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDbEIsQ0FBQztpQkFBTSxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxHQUFHLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDO2dCQUNuQyxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQWE7SUFDeEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUM7SUFDeEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQUksR0FBRyxFQUFFO0lBQ3ZDLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFRLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQztJQUMvQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sV0FBVyxHQUNmLGlKQUFpSixDQUFDO0lBQ3BKLE1BQU0sV0FBVyxHQUNmLHNIQUFzSCxDQUFDO0lBQ3pILE1BQU0sT0FBTyxHQUNYLCtHQUErRyxDQUFDO0lBQ2xILE1BQU0sVUFBVSxHQUNkLDRIQUE0SCxDQUFDO0lBRS9ILFNBQVMsT0FBTyxDQUFDLEtBQWEsRUFBRSxFQUFVLEVBQUUsS0FBYTtRQUN2RCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsRUFBRSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxpRkFBaUYsRUFBRSxhQUFhLENBQUM7SUFDMUcsQ0FBQztJQUNELFNBQVMsU0FBUyxDQUFDLEtBQWEsRUFBRSxFQUFVLEVBQUUsS0FBYTtRQUN6RCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLGtHQUFrRyxFQUFFLGFBQWEsQ0FBQztJQUMzSCxDQUFDO0lBRUQsT0FBTyxJQUFJO1NBQ1IsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7U0FDN0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7U0FDN0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7U0FDekIsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUxlYWRpbmdIYXNoKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvXiMrLywgJycpO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nSGFzaChzdHI6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICBpZiAoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8jLiovLCAnJyk7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuSGVhZGluZ0lkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN0cikge1xuICAgIHJldHVybiByZW1vdmVMZWFkaW5nSGFzaChcbiAgICAgIHN0clxuICAgICAgICAucmVwbGFjZSgvKF98LXxcXHMpKy9nLCAnJylcbiAgICAgICAgLy8gUmVtb3ZlIGNlcnRhaW4gc3BlY2lhbCBjaGFycyB0byBjcmVhdGUgaGVhZGluZyBpZHMgc2ltaWxhciB0byB0aG9zZSBpbiBnaXRodWJcbiAgICAgICAgLy8gYm9ycm93ZWQgZnJvbSBzaG93ZG93blxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2hvd2Rvd25qcy9zaG93ZG93bi9ibG9iL21haW4vc3JjL3N1YlBhcnNlcnMvbWFrZWh0bWwvaGVhZGVycy5qcyNMOTRcbiAgICAgICAgLnJlcGxhY2UoL1smKyQsLzo7PT9AXCIje318XsKofltcXF1gXFxcXCopKCUuISc8Pl0vZywgJycpXG4gICAgKS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbFRvQW5jaG9yKFxuICBzY29wZTogSFRNTEVsZW1lbnQsXG4gIGFuY2hvcjogc3RyaW5nLFxuICB0cnlQYXJlbnQ6IGJvb2xlYW5cbik6IGJvb2xlYW4ge1xuICBpZiAoc2NvcGUgJiYgYW5jaG9yKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFuY2hvcjogc3RyaW5nID0gZ2VuSGVhZGluZ0lkKGFuY2hvcik7XG4gICAgbGV0IGhlYWRpbmdUb0p1bXBUbzogRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGhlYWRpbmdXaXRoaW5Db21wb25lbnQgPSBzY29wZS5xdWVyeVNlbGVjdG9yKFxuICAgICAgYFtpZD1cIiR7bm9ybWFsaXplZEFuY2hvcn1cIl1gXG4gICAgKTtcblxuICAgIGlmIChoZWFkaW5nV2l0aGluQ29tcG9uZW50KSB7XG4gICAgICBoZWFkaW5nVG9KdW1wVG8gPSBoZWFkaW5nV2l0aGluQ29tcG9uZW50O1xuICAgIH0gZWxzZSBpZiAodHJ5UGFyZW50KSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBzY29wZS5wYXJlbnRFbGVtZW50O1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBoZWFkaW5nVG9KdW1wVG8gPSBwYXJlbnQucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtub3JtYWxpemVkQW5jaG9yfVwiXWApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaGVhZGluZ1RvSnVtcFRvKSB7XG4gICAgICBoZWFkaW5nVG9KdW1wVG8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ2F1dG8nIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQW5jaG9yTGluayhhbmNob3I/OiBIVE1MQW5jaG9yRWxlbWVudCk6IGJvb2xlYW4ge1xuICBpZiAoYW5jaG9yKSB7XG4gICAgY29uc3QgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBpZiAoaHJlZikge1xuICAgICAgcmV0dXJuIGhyZWYuc3RhcnRzV2l0aCgnIycpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpbGVMaW5rKFxuICBhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50LFxuICBmaWxlRXh0ZW5zaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWRcbik6IGJvb2xlYW4ge1xuICBpZiAoZmlsZUV4dGVuc2lvbnMgJiYgZmlsZUV4dGVuc2lvbnMubGVuZ3RoKSB7XG4gICAgY29uc3QgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBpZiAoaHJlZikge1xuICAgICAgcmV0dXJuIGZpbGVFeHRlbnNpb25zLnNvbWUoKGZpbGVFeHRlbnNpb24pID0+XG4gICAgICAgIGhyZWYuZW5kc1dpdGgoZmlsZUV4dGVuc2lvbilcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuY29uc3QgUkFXX0dJVEhVQl9IT1NUTkFNRSA9ICdyYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJhd0dpdGh1YkhyZWYoZ2l0aHViSHJlZj86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChnaXRodWJIcmVmKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTChnaXRodWJIcmVmKTtcbiAgICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IFJBV19HSVRIVUJfSE9TVE5BTUUpIHtcbiAgICAgICAgcmV0dXJuIHVybC5ocmVmO1xuICAgICAgfSBlbHNlIGlmIChpc0dpdGh1YkhyZWYoZ2l0aHViSHJlZikpIHtcbiAgICAgICAgdXJsLmhvc3RuYW1lID0gUkFXX0dJVEhVQl9IT1NUTkFNRTtcbiAgICAgICAgdXJsLnBhdGhuYW1lID0gdXJsLnBhdGhuYW1lLnNwbGl0KCcvYmxvYicsIDIpLmpvaW4oJycpO1xuICAgICAgICByZXR1cm4gdXJsLmhyZWY7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2l0aHViSHJlZihocmVmPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGVtcDogVVJMID0gbmV3IFVSTChocmVmID8/ICcnKTtcbiAgICByZXR1cm4gdGVtcC5ob3N0bmFtZSA9PT0gJ2dpdGh1Yi5jb20nO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmF3R2l0aHViSHJlZihocmVmID0gJycpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB0ZW1wOiBVUkwgPSBuZXcgVVJMKGhyZWYpO1xuICAgIHJldHVybiB0ZW1wLmhvc3RuYW1lID09PSBSQVdfR0lUSFVCX0hPU1ROQU1FO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclZpZGVvRWxlbWVudHMoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgeXRMb25nRW1iZWQgPVxuICAgIC8hXFxbKD86KD86aHR0cHM/Oik/KD86XFwvXFwvKT8pKD86KD86d3d3KT8uKT95b3V0dWJlLig/Oi4rPylcXC8oPzooPzplbWJlZFxcLykoW1xcdy1dezExfSkoXFw/W1xcdyU7LV0rKD86PVtcXHclOy1dKyk/KD86JltcXHclOy1dKyg/Oj1bXFx3JTstXSspPykqKT8pXS9naTtcbiAgY29uc3QgeXRMb25nV2F0Y2ggPVxuICAgIC8hXFxbKD86KD86aHR0cHM/Oik/KD86XFwvXFwvKT8pKD86KD86d3d3KT8uKT95b3V0dWJlLig/Oi4rPylcXC8oPzooPzp3YXRjaFxcP3Y9KShbXFx3LV17MTF9KSgmW1xcdyU7LV0rKD86PVtcXHclOy1dKyk/KSopXS9naTtcbiAgY29uc3QgeXRTaG9ydCA9XG4gICAgLyFcXFsoPzooPzpodHRwcz86KT8oPzpcXC9cXC8pPyk/eW91dHUuYmVcXC8oW1xcdy1dezExfSlcXD8/KFtcXHclOy1dKyg/Oj1bXFx3JTstXSspPyg/OiZbXFx3JTstXSsoPzo9W1xcdyU7LV0rKT8pKik/XS9naTtcbiAgY29uc3QgeXRQbGF5bGlzdCA9XG4gICAgLyFcXFsoPzooPzpodHRwcz86KT8oPzpcXC9cXC8pPykoPzooPzp3d3cpPy4pP3lvdXR1YmUuKD86Lis/KVxcLyg/Oig/OnBsYXlsaXN0XFw/bGlzdD0pKFtcXHctXXszNH0pKCZbXFx3JTstXSsoPzo9W1xcdyU7LV0rKT8pKildL2dpO1xuXG4gIGZ1bmN0aW9uIGNvbnZlcnQobWF0Y2g6IHN0cmluZywgaWQ6IHN0cmluZywgZmxhZ3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdzKSB7XG4gICAgICBpZCArPSAnPycgKyBmbGFncy5yZXBsYWNlKC8mYW1wOy9naSwgJyYnKTtcbiAgICB9XG4gICAgcmV0dXJuIGA8aWZyYW1lIGFsbG93PVwiZnVsbHNjcmVlblwiIGZyYW1lYm9yZGVyPVwiMFwiIHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7aWR9XCI+PC9pZnJhbWU+YDtcbiAgfVxuICBmdW5jdGlvbiBjb252ZXJ0UEwobWF0Y2g6IHN0cmluZywgaWQ6IHN0cmluZywgZmxhZ3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdzKSB7XG4gICAgICBpZCArPSBmbGFncy5yZXBsYWNlKC8mYW1wOy9naSwgJyYnKTtcbiAgICB9XG4gICAgcmV0dXJuIGA8aWZyYW1lIGFsbG93PVwiZnVsbHNjcmVlblwiIGZyYW1lYm9yZGVyPVwiMFwiIHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL3ZpZGVvc2VyaWVzP2xpc3Q9JHtpZH1cIj48L2lmcmFtZT5gO1xuICB9XG5cbiAgcmV0dXJuIGh0bWxcbiAgICAucmVwbGFjZSh5dExvbmdXYXRjaCwgY29udmVydClcbiAgICAucmVwbGFjZSh5dExvbmdFbWJlZCwgY29udmVydClcbiAgICAucmVwbGFjZSh5dFNob3J0LCBjb252ZXJ0KVxuICAgIC5yZXBsYWNlKHl0UGxheWxpc3QsIGNvbnZlcnRQTCk7XG59XG4iXX0=","import { Component, ElementRef, Input, Output, EventEmitter, Renderer2, SecurityContext, HostBinding, NgZone, inject, } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { scrollToAnchor, genHeadingId, isAnchorLink, removeTrailingHash, rawGithubHref, isGithubHref, isRawGithubHref, renderVideoElements, isFileLink, } from './markdown-utils/markdown-utils';\nimport * as showdown from 'showdown';\nimport * as i0 from \"@angular/core\";\nconst _c0 = [\"*\"];\nfunction isAbsoluteUrl(currentHref) {\n // Regular Expression to check url\n const RgExp = new RegExp('^(?:[a-z]+:)?//', 'i');\n return RgExp.test(currentHref);\n}\n// TODO: assumes it is a github url\n// allow override somehow\nfunction generateHref(currentHref, relativeHref) {\n if (currentHref && relativeHref) {\n if (isAbsoluteUrl(currentHref)) {\n const currentUrl = new URL(currentHref);\n const path = currentUrl.pathname\n .split('/')\n .slice(1, -1)\n .join('/');\n const correctUrl = new URL(currentHref);\n if (relativeHref.startsWith('/')) {\n // url is relative to top level\n const orgAndRepo = path.split('/').slice(0, 3).join('/');\n correctUrl.pathname = `${orgAndRepo}${relativeHref}`;\n }\n else {\n correctUrl.pathname = `${path}/${relativeHref}`;\n }\n return correctUrl.href;\n }\n else {\n const path = currentHref.split('/').slice(0, -1).join('/');\n if (relativeHref.startsWith('/')) {\n return `${path}${relativeHref}`;\n }\n else {\n return `${path}/${relativeHref}`;\n }\n }\n }\n return '';\n}\nfunction normalizeHtmlHrefs(html, currentHref, fileLinkExtensions) {\n if (currentHref) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n document\n .querySelectorAll('a[href]')\n .forEach((link) => {\n const url = new URL(link.href);\n const originalHash = url.hash;\n const isFileAnchorLink = isFileLink(link, fileLinkExtensions);\n if (isAnchorLink(link)) {\n if (originalHash) {\n url.hash = genHeadingId(originalHash);\n link.href = url.hash;\n }\n }\n else if (url.host === window.location.host) {\n // hosts match, meaning URL MIGHT have been malformed by showdown\n // url is a relative url or just a link to a part of the application\n if (url.pathname.endsWith('.md') || isFileAnchorLink) {\n // only check .md urls or urls ending with the fileLinkExtensions\n const hrefWithoutHash = removeTrailingHash(link.getAttribute('href'));\n url.href = generateHref(currentHref, hrefWithoutHash);\n if (originalHash) {\n url.hash = genHeadingId(originalHash);\n }\n link.href = url.href;\n }\n link.target = isFileAnchorLink ? '_self' : '_blank';\n }\n else {\n // url is absolute\n if (url.pathname.endsWith('.md')) {\n if (originalHash) {\n url.hash = genHeadingId(originalHash);\n }\n link.href = url.href;\n }\n link.target = '_blank';\n }\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\nfunction normalizeImageSrcs(html, currentHref) {\n if (currentHref) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n document\n .querySelectorAll('img[src]')\n .forEach((image) => {\n const src = image.getAttribute('src') ?? '';\n try {\n /* tslint:disable-next-line:no-unused-expression */\n new URL(src);\n if (isGithubHref(src)) {\n image.src = rawGithubHref(src);\n }\n }\n catch {\n image.src = generateHref(isGithubHref(currentHref)\n ? rawGithubHref(currentHref)\n : currentHref, src);\n }\n // gh svgs need to have ?sanitize=true\n if (isRawGithubHref(image.src)) {\n const url = new URL(image.src);\n if (url.pathname.endsWith('.svg')) {\n url.searchParams.set('sanitize', 'true');\n image.src = url.href;\n }\n }\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\nfunction addIdsToHeadings(html) {\n if (html) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n document\n .querySelectorAll('h1, h2, h3, h4, h5, h6')\n .forEach((heading) => {\n const strippedInnerHTML = stripAllHtmlTags(heading.innerHTML);\n const id = genHeadingId(strippedInnerHTML);\n heading.setAttribute('id', id);\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\nfunction changeStyleAlignmentToClass(html) {\n if (html) {\n const document = new DOMParser().parseFromString(html, 'text/html');\n ['right', 'center', 'left'].forEach((alignment) => {\n document\n .querySelectorAll(`[style*='text-align:${alignment}']`)\n .forEach((style) => {\n style.setAttribute('class', `markdown-align-${alignment}`);\n });\n });\n return new XMLSerializer().serializeToString(document);\n }\n return html;\n}\n// Strips all the html tags in the html sand returns the text\nfunction stripAllHtmlTags(input) {\n let sanitized = input;\n let previous;\n do {\n previous = sanitized;\n sanitized = sanitized.replace(/<[^>]+>/g, '');\n } while (previous !== sanitized);\n return sanitized;\n}\nexport class TdMarkdownComponent {\n _renderer = inject(Renderer2);\n _elementRef = inject(ElementRef);\n _domSanitizer = inject(DomSanitizer);\n _ngZone = inject(NgZone);\n _content;\n _simpleLineBreaks = false;\n _hostedUrl;\n _anchor;\n _viewInit = false;\n _fileLinkExtensions;\n _anchorListener;\n /**\n * .td-markdown class added to host so ::ng-deep gets scoped.\n */\n class = 'td-markdown';\n /**\n * content?: string\n *\n * Markdown format content to be parsed as html 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 * The file extensions to monitor for in anchor tags. If an anchor's `href` ends\n * with these extensions, an event will be emitted instead of performing the default click action.\n * Example values: [\".ipynb\", \".zip\", \".docx\"]\n */\n set fileLinkExtensions(extensions) {\n this._fileLinkExtensions = extensions;\n }\n /**\n * Event emitted when an anchor tag with an `href` matching the specified\n * fileLinkExtensions is clicked. The emitted value is the URL 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 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, true);\n }\n else {\n this.refresh();\n }\n }\n ngAfterViewInit() {\n if (!this._content) {\n this._loadContent(this._elementRef.nativeElement.textContent);\n }\n this._viewInit = true;\n // Caretaker note: the `scrollToAnchor` calls `element.scrollIntoView`, a native synchronous DOM\n // API and it doesn't require Angular running `ApplicationRef.tick()` each time the markdown component is clicked.\n // Host listener (added through `@HostListener`) cause Angular to add an event listener within the Angular zone.\n // It also calls `markViewDirty()` before calling the actual listener (the decorated class method).\n this._ngZone.runOutsideAngular(() => {\n this._anchorListener = this._renderer.listen(this._elementRef.nativeElement, 'click', (event) => {\n const element = event.srcElement;\n if (element.matches('a[href]') &&\n isAnchorLink(element)) {\n this.handleAnchorClicks(event);\n }\n else if (element.matches('a[href]') &&\n isFileLink(element, this._fileLinkExtensions)) {\n this.handleFileAnchorClicks(event);\n }\n });\n });\n }\n ngOnDestroy() {\n this._anchorListener?.();\n }\n refresh() {\n if (this._content) {\n this._loadContent(this._content);\n }\n else if (this._viewInit) {\n this._loadContent(this._elementRef.nativeElement.textContent);\n }\n }\n /**\n * General method to parse a string markdown into HTML Elements and load them into the container\n */\n _loadContent(markdown) {\n if (markdown && markdown.trim().length > 0) {\n // Clean container\n this._renderer.setProperty(this._elementRef.nativeElement, 'innerHTML', '');\n // Parse html string into actual HTML elements.\n this._elementFromString(this._render(markdown));\n }\n // TODO: timeout required since resizing of html elements occurs which causes a change in the scroll position\n this._ngZone.runOutsideAngular(() => setTimeout(() => scrollToAnchor(this._elementRef.nativeElement, this._anchor, true), 250));\n this.contentReady.emit();\n }\n handleAnchorClicks(event) {\n event.preventDefault();\n const url = new URL(event.target.href);\n const hash = decodeURI(url.hash);\n scrollToAnchor(this._elementRef.nativeElement, hash, true);\n }\n handleFileAnchorClicks(event) {\n event.preventDefault();\n const url = new URL(event.target.href);\n this.fileLinkClicked.emit(url);\n }\n _elementFromString(markupStr) {\n // Renderer2 doesnt have a parsing method, so we have to sanitize and use [innerHTML]\n // to parse the string into DOM element for now.\n const div = this._renderer.createElement('div');\n this._renderer.appendChild(this._elementRef.nativeElement, div);\n const html = this._domSanitizer.sanitize(SecurityContext.HTML, changeStyleAlignmentToClass(markupStr)) ?? '';\n const htmlWithAbsoluteHrefs = normalizeHtmlHrefs(html, this._hostedUrl, this._fileLinkExtensions);\n const htmlWithAbsoluteImgSrcs = normalizeImageSrcs(htmlWithAbsoluteHrefs, this._hostedUrl);\n const htmlWithHeadingIds = addIdsToHeadings(htmlWithAbsoluteImgSrcs);\n const htmlWithVideos = renderVideoElements(htmlWithHeadingIds);\n this._renderer.setProperty(div, 'innerHTML', htmlWithVideos);\n return div;\n }\n _render(markdown) {\n // Trim leading and trailing newlines\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 : '';\n // Remove all indentation spaces so markdown can be parsed correctly\n const startingWhitespaceRegex = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line) {\n return line.replace(startingWhitespaceRegex, '');\n });\n // Join lines again with line characters\n const markdownToParse = lines.join('\\n');\n // Convert markdown into html\n const converter = new showdown.Converter();\n converter.setOption('ghCodeBlocks', true);\n converter.setOption('tasklists', true);\n converter.setOption('tables', true);\n converter.setOption('literalMidWordUnderscores', true);\n converter.setOption('simpleLineBreaks', this._simpleLineBreaks);\n converter.setOption('emoji', true);\n return converter.makeHtml(markdownToParse);\n }\n static ɵfac = function TdMarkdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownComponent, selectors: [[\"td-markdown\"]], hostVars: 2, hostBindings: function TdMarkdownComponent_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassMap(ctx.class);\n } }, inputs: { content: \"content\", simpleLineBreaks: \"simpleLineBreaks\", hostedUrl: \"hostedUrl\", anchor: \"anchor\", fileLinkExtensions: \"fileLinkExtensions\" }, outputs: { fileLinkClicked: \"fileLinkClicked\", contentReady: \"contentReady\" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function TdMarkdownComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n } }, styles: [\".td-markdown[_nghost-%COMP%] a{background-color:transparent}.td-markdown[_nghost-%COMP%] a[target=_blank]{display:inline-flex;align-items:center;position:relative;padding-right:16px}.td-markdown[_nghost-%COMP%] a[target=_blank]:after{content:\\\"open_in_new\\\";font-family:var(--mdc-icon-font, \\\"Material Symbols Outlined\\\");padding-left:2px;text-decoration:none;position:absolute;right:0;top:1px}.td-markdown[_nghost-%COMP%] a:active, .td-markdown[_nghost-%COMP%] a:hover{outline-width:0}.td-markdown[_nghost-%COMP%] strong{font-weight:inherit;font-weight:bolder}.td-markdown[_nghost-%COMP%] h1{font-size:2em;margin:.67em 0}.td-markdown[_nghost-%COMP%] img{border-style:none}.td-markdown[_nghost-%COMP%] svg:not(:root){overflow:hidden}.td-markdown[_nghost-%COMP%] code, .td-markdown[_nghost-%COMP%] kbd, .td-markdown[_nghost-%COMP%] pre{font-family:monospace;font-size:1em}.td-markdown[_nghost-%COMP%] hr{box-sizing:content-box;height:0;overflow:visible}.td-markdown[_nghost-%COMP%] input{font:inherit;margin:0}.td-markdown[_nghost-%COMP%] input{overflow:visible}.td-markdown[_nghost-%COMP%] button:-moz-focusring, .td-markdown[_nghost-%COMP%] [type=button]:-moz-focusring, .td-markdown[_nghost-%COMP%] [type=reset]:-moz-focusring, .td-markdown[_nghost-%COMP%] [type=submit]:-moz-focusring{outline:1px dotted ButtonText}.td-markdown[_nghost-%COMP%] [type=checkbox]{box-sizing:border-box;padding:0}.td-markdown[_nghost-%COMP%] table{border-spacing:0;border-collapse:collapse}.td-markdown[_nghost-%COMP%] td, .td-markdown[_nghost-%COMP%] th{padding:0}.td-markdown[_nghost-%COMP%] *{box-sizing:border-box}.td-markdown[_nghost-%COMP%] input{font:13px/1.4 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",Segoe UI Symbol}.td-markdown[_nghost-%COMP%] a{text-decoration:none}.td-markdown[_nghost-%COMP%] a:hover, .td-markdown[_nghost-%COMP%] a:active{text-decoration:underline}.td-markdown[_nghost-%COMP%] hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom-width:1px;border-bottom-style:solid}.td-markdown[_nghost-%COMP%] hr:before{display:table;content:\\\"\\\"}.td-markdown[_nghost-%COMP%] hr:after{display:table;clear:both;content:\\\"\\\"}.td-markdown[_nghost-%COMP%] h1, .td-markdown[_nghost-%COMP%] h2, .td-markdown[_nghost-%COMP%] h3, .td-markdown[_nghost-%COMP%] h4, .td-markdown[_nghost-%COMP%] h5, .td-markdown[_nghost-%COMP%] h6{margin-top:0;margin-bottom:0;line-height:1.5}.td-markdown[_nghost-%COMP%] h1{font-size:30px}.td-markdown[_nghost-%COMP%] h2{font-size:21px}.td-markdown[_nghost-%COMP%] h3{font-size:16px}.td-markdown[_nghost-%COMP%] h4{font-size:14px}.td-markdown[_nghost-%COMP%] h5{font-size:12px}.td-markdown[_nghost-%COMP%] h6{font-size:11px}.td-markdown[_nghost-%COMP%] p{margin-top:0;margin-bottom:10px}.td-markdown[_nghost-%COMP%] blockquote{margin:0}.td-markdown[_nghost-%COMP%] ul, .td-markdown[_nghost-%COMP%] ol{padding-left:0;margin-top:0;margin-bottom:0}.td-markdown[_nghost-%COMP%] ol ol, .td-markdown[_nghost-%COMP%] ul ol{list-style-type:lower-roman}.td-markdown[_nghost-%COMP%] ul ul ol, .td-markdown[_nghost-%COMP%] ul ol ol, .td-markdown[_nghost-%COMP%] ol ul ol, .td-markdown[_nghost-%COMP%] ol ol ol{list-style-type:lower-alpha}.td-markdown[_nghost-%COMP%] dd{margin-left:0}.td-markdown[_nghost-%COMP%] code{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}.td-markdown[_nghost-%COMP%] pre{margin-top:0;margin-bottom:0;font:12px Consolas,Liberation Mono,Menlo,Courier,monospace}.td-markdown[_nghost-%COMP%] .pl-0{padding-left:0!important}.td-markdown[_nghost-%COMP%] .pl-1{padding-left:3px!important}.td-markdown[_nghost-%COMP%] .pl-2{padding-left:6px!important}.td-markdown[_nghost-%COMP%] .pl-3{padding-left:12px!important}.td-markdown[_nghost-%COMP%] .pl-4{padding-left:24px!important}.td-markdown[_nghost-%COMP%] .pl-5{padding-left:36px!important}.td-markdown[_nghost-%COMP%] .pl-6{padding-left:48px!important}.td-markdown[_nghost-%COMP%] .form-select::-ms-expand{opacity:0}.td-markdown[_nghost-%COMP%] a:not([href]){color:inherit;text-decoration:none}.td-markdown[_nghost-%COMP%] h1, .td-markdown[_nghost-%COMP%] h2, .td-markdown[_nghost-%COMP%] h3, .td-markdown[_nghost-%COMP%] h4, .td-markdown[_nghost-%COMP%] h5, .td-markdown[_nghost-%COMP%] h6{margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}.td-markdown[_nghost-%COMP%] h1 .octicon-link, .td-markdown[_nghost-%COMP%] h2 .octicon-link, .td-markdown[_nghost-%COMP%] h3 .octicon-link, .td-markdown[_nghost-%COMP%] h4 .octicon-link, .td-markdown[_nghost-%COMP%] h5 .octicon-link, .td-markdown[_nghost-%COMP%] h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}.td-markdown[_nghost-%COMP%] h1:hover .anchor, .td-markdown[_nghost-%COMP%] h2:hover .anchor, .td-markdown[_nghost-%COMP%] h3:hover .anchor, .td-markdown[_nghost-%COMP%] h4:hover .anchor, .td-markdown[_nghost-%COMP%] h5:hover .anchor, .td-markdown[_nghost-%COMP%] h6:hover .anchor{text-decoration:none}.td-markdown[_nghost-%COMP%] h1:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h2:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h3:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h4:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h5:hover .anchor .octicon-link, .td-markdown[_nghost-%COMP%] h6:hover .anchor .octicon-link{visibility:visible}.td-markdown[_nghost-%COMP%] h1{padding-bottom:.3em;font-size:2.25em;line-height:1.2;border-bottom-width:1px;border-bottom-style:solid}.td-markdown[_nghost-%COMP%] h1 .anchor{line-height:1}.td-markdown[_nghost-%COMP%] h2{padding-bottom:.3em;font-size:1.75em;line-height:1.225;border-bottom-width:1px;border-bottom-style:solid}.td-markdown[_nghost-%COMP%] h2 .anchor{line-height:1}.td-markdown[_nghost-%COMP%] h3{font-size:1.5em;line-height:1.43}.td-markdown[_nghost-%COMP%] h3 .anchor{line-height:1.2}.td-markdown[_nghost-%COMP%] h4{font-size:1.25em}.td-markdown[_nghost-%COMP%] h4 .anchor{line-height:1.2}.td-markdown[_nghost-%COMP%] h5{font-size:1em}.td-markdown[_nghost-%COMP%] h5 .anchor{line-height:1.1}.td-markdown[_nghost-%COMP%] h6{font-size:1em}.td-markdown[_nghost-%COMP%] h6 .anchor{line-height:1.1}.td-markdown[_nghost-%COMP%] p, .td-markdown[_nghost-%COMP%] blockquote, .td-markdown[_nghost-%COMP%] ul, .td-markdown[_nghost-%COMP%] ol, .td-markdown[_nghost-%COMP%] dl, .td-markdown[_nghost-%COMP%] table, .td-markdown[_nghost-%COMP%] pre{margin-top:0;margin-bottom:16px}.td-markdown[_nghost-%COMP%] hr{margin:16px 0}.td-markdown[_nghost-%COMP%] ul, .td-markdown[_nghost-%COMP%] ol{padding-left:2em}.td-markdown[_nghost-%COMP%] ul ul, .td-markdown[_nghost-%COMP%] ul ol, .td-markdown[_nghost-%COMP%] ol ol, .td-markdown[_nghost-%COMP%] ol ul{margin-top:0;margin-bottom:0}.td-markdown[_nghost-%COMP%] li>p{margin-top:16px}.td-markdown[_nghost-%COMP%] dl{padding:0}.td-markdown[_nghost-%COMP%] dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.td-markdown[_nghost-%COMP%] dl dd{padding:0 16px;margin-bottom:16px}.td-markdown[_nghost-%COMP%] blockquote{padding:0 15px;border-left-width:4px;border-left-style:solid}.td-markdown[_nghost-%COMP%] blockquote>:first-child{margin-top:0}.td-markdown[_nghost-%COMP%] blockquote>:last-child{margin-bottom:0}.td-markdown[_nghost-%COMP%] table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.td-markdown[_nghost-%COMP%] table th{font-weight:700}.td-markdown[_nghost-%COMP%] table th, .td-markdown[_nghost-%COMP%] table td{padding:6px 13px;border-width:1px;border-style:solid}.td-markdown[_nghost-%COMP%] table tr{border-top-width:1px;border-top-style:solid}.td-markdown[_nghost-%COMP%] img{max-width:100%;box-sizing:content-box}.td-markdown[_nghost-%COMP%] code{padding:.2em 0;margin:0;font-size:85%;border-radius:3px}.td-markdown[_nghost-%COMP%] code:before, .td-markdown[_nghost-%COMP%] code:after{letter-spacing:-.2em}.td-markdown[_nghost-%COMP%] pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.td-markdown[_nghost-%COMP%] .highlight{margin-bottom:16px}.td-markdown[_nghost-%COMP%] .highlight pre, .td-markdown[_nghost-%COMP%] pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;border-radius:3px}.td-markdown[_nghost-%COMP%] .highlight pre{margin-bottom:0;word-break:normal}.td-markdown[_nghost-%COMP%] pre{word-wrap:normal}.td-markdown[_nghost-%COMP%] pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.td-markdown[_nghost-%COMP%] pre code:before, .td-markdown[_nghost-%COMP%] pre code:after{content:normal}.td-markdown[_nghost-%COMP%] kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;vertical-align:middle;border-style:solid;border-width:1px;border-radius:3px}.td-markdown[_nghost-%COMP%] .pl-c{color:#969896}.td-markdown[_nghost-%COMP%] .pl-c1, .td-markdown[_nghost-%COMP%] .pl-s .pl-v{color:#0086b3}.td-markdown[_nghost-%COMP%] .pl-e, .td-markdown[_nghost-%COMP%] .pl-en{color:#795da3}.td-markdown[_nghost-%COMP%] .pl-s .pl-s1, .td-markdown[_nghost-%COMP%] .pl-smi{color:#333}.td-markdown[_nghost-%COMP%] .pl-ent{color:#63a35c}.td-markdown[_nghost-%COMP%] .pl-k{color:#a71d5d}.td-markdown[_nghost-%COMP%] .pl-pds, .td-markdown[_nghost-%COMP%] .pl-s, .td-markdown[_nghost-%COMP%] .pl-s .pl-pse .pl-s1, .td-markdown[_nghost-%COMP%] .pl-sr, .td-markdown[_nghost-%COMP%] .pl-sr .pl-cce, .td-markdown[_nghost-%COMP%] .pl-sr .pl-sra, .td-markdown[_nghost-%COMP%] .pl-sr .pl-sre{color:#183691}.td-markdown[_nghost-%COMP%] .pl-v{color:#ed6a43}.td-markdown[_nghost-%COMP%] .pl-id{color:#b52a1d}.td-markdown[_nghost-%COMP%] .pl-ii{background-color:#b52a1d;color:#f8f8f8}.td-markdown[_nghost-%COMP%] .pl-sr .pl-cce{color:#63a35c;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-ml{color:#693a17}.td-markdown[_nghost-%COMP%] .pl-mh, .td-markdown[_nghost-%COMP%] .pl-mh .pl-en, .td-markdown[_nghost-%COMP%] .pl-ms{color:#1d3e81;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-mq{color:teal}.td-markdown[_nghost-%COMP%] .pl-mi{color:#333;font-style:italic}.td-markdown[_nghost-%COMP%] .pl-mb{color:#333;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-md{background-color:#ffecec;color:#bd2c00}.td-markdown[_nghost-%COMP%] .pl-mi1{background-color:#eaffea;color:#55a532}.td-markdown[_nghost-%COMP%] .pl-mdr{color:#795da3;font-weight:700}.td-markdown[_nghost-%COMP%] .pl-mo{color:#1d3e81}.td-markdown[_nghost-%COMP%] kbd{display:inline-block;padding:3px 5px;font:11px Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #cccccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px #bbb}.td-markdown[_nghost-%COMP%] .full-commit .btn-outline:not(:disabled):hover{color:#4078c0;border:1px solid #4078c0}.td-markdown[_nghost-%COMP%] :checked+.radio-label{position:relative;z-index:1;border-color:#4078c0}.td-markdown[_nghost-%COMP%] .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.td-markdown[_nghost-%COMP%] .task-list-item{list-style-type:none}.td-markdown[_nghost-%COMP%] .task-list-item+.task-list-item{margin-top:3px}.td-markdown[_nghost-%COMP%] .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.td-markdown[_nghost-%COMP%] td.markdown-align-center{text-align:center}.td-markdown[_nghost-%COMP%] td.markdown-align-left{text-align:left}.td-markdown[_nghost-%COMP%] td.markdown-align-right{text-align:right}\"] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownComponent, [{\n type: Component,\n args: [{ selector: 'td-markdown', template: \"<ng-content></ng-content>\\n\", styles: [\":host.td-markdown::ng-deep a{background-color:transparent}:host.td-markdown::ng-deep a[target=_blank]{display:inline-flex;align-items:center;position:relative;padding-right:16px}:host.td-markdown::ng-deep a[target=_blank]:after{content:\\\"open_in_new\\\";font-family:var(--mdc-icon-font, \\\"Material Symbols Outlined\\\");padding-left:2px;text-decoration:none;position:absolute;right:0;top:1px}:host.td-markdown::ng-deep a:active,:host.td-markdown::ng-deep a:hover{outline-width:0}:host.td-markdown::ng-deep strong{font-weight:inherit;font-weight:bolder}:host.td-markdown::ng-deep h1{font-size:2em;margin:.67em 0}:host.td-markdown::ng-deep img{border-style:none}:host.td-markdown::ng-deep svg:not(:root){overflow:hidden}:host.td-markdown::ng-deep code,:host.td-markdown::ng-deep kbd,:host.td-markdown::ng-deep pre{font-family:monospace;font-size:1em}:host.td-markdown::ng-deep hr{box-sizing:content-box;height:0;overflow:visible}:host.td-markdown::ng-deep input{font:inherit;margin:0}:host.td-markdown::ng-deep input{overflow:visible}:host.td-markdown::ng-deep button:-moz-focusring,:host.td-markdown::ng-deep [type=button]:-moz-focusring,:host.td-markdown::ng-deep [type=reset]:-moz-focusring,:host.td-markdown::ng-deep [type=submit]:-moz-focusring{outline:1px dotted ButtonText}:host.td-markdown::ng-deep [type=checkbox]{box-sizing:border-box;padding:0}:host.td-markdown::ng-deep table{border-spacing:0;border-collapse:collapse}:host.td-markdown::ng-deep td,:host.td-markdown::ng-deep th{padding:0}:host.td-markdown::ng-deep *{box-sizing:border-box}:host.td-markdown::ng-deep input{font:13px/1.4 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",Segoe UI Symbol}:host.td-markdown::ng-deep a{text-decoration:none}:host.td-markdown::ng-deep a:hover,:host.td-markdown::ng-deep a:active{text-decoration:underline}:host.td-markdown::ng-deep hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep hr:before{display:table;content:\\\"\\\"}:host.td-markdown::ng-deep hr:after{display:table;clear:both;content:\\\"\\\"}:host.td-markdown::ng-deep h1,:host.td-markdown::ng-deep h2,:host.td-markdown::ng-deep h3,:host.td-markdown::ng-deep h4,:host.td-markdown::ng-deep h5,:host.td-markdown::ng-deep h6{margin-top:0;margin-bottom:0;line-height:1.5}:host.td-markdown::ng-deep h1{font-size:30px}:host.td-markdown::ng-deep h2{font-size:21px}:host.td-markdown::ng-deep h3{font-size:16px}:host.td-markdown::ng-deep h4{font-size:14px}:host.td-markdown::ng-deep h5{font-size:12px}:host.td-markdown::ng-deep h6{font-size:11px}:host.td-markdown::ng-deep p{margin-top:0;margin-bottom:10px}:host.td-markdown::ng-deep blockquote{margin:0}:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol{padding-left:0;margin-top:0;margin-bottom:0}:host.td-markdown::ng-deep ol ol,:host.td-markdown::ng-deep ul ol{list-style-type:lower-roman}:host.td-markdown::ng-deep ul ul ol,:host.td-markdown::ng-deep ul ol ol,:host.td-markdown::ng-deep ol ul ol,:host.td-markdown::ng-deep ol ol ol{list-style-type:lower-alpha}:host.td-markdown::ng-deep dd{margin-left:0}:host.td-markdown::ng-deep code{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}:host.td-markdown::ng-deep pre{margin-top:0;margin-bottom:0;font:12px Consolas,Liberation Mono,Menlo,Courier,monospace}:host.td-markdown::ng-deep .pl-0{padding-left:0!important}:host.td-markdown::ng-deep .pl-1{padding-left:3px!important}:host.td-markdown::ng-deep .pl-2{padding-left:6px!important}:host.td-markdown::ng-deep .pl-3{padding-left:12px!important}:host.td-markdown::ng-deep .pl-4{padding-left:24px!important}:host.td-markdown::ng-deep .pl-5{padding-left:36px!important}:host.td-markdown::ng-deep .pl-6{padding-left:48px!important}:host.td-markdown::ng-deep .form-select::-ms-expand{opacity:0}:host.td-markdown::ng-deep a:not([href]){color:inherit;text-decoration:none}:host.td-markdown::ng-deep h1,:host.td-markdown::ng-deep h2,:host.td-markdown::ng-deep h3,:host.td-markdown::ng-deep h4,:host.td-markdown::ng-deep h5,:host.td-markdown::ng-deep h6{margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}:host.td-markdown::ng-deep h1 .octicon-link,:host.td-markdown::ng-deep h2 .octicon-link,:host.td-markdown::ng-deep h3 .octicon-link,:host.td-markdown::ng-deep h4 .octicon-link,:host.td-markdown::ng-deep h5 .octicon-link,:host.td-markdown::ng-deep h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}:host.td-markdown::ng-deep h1:hover .anchor,:host.td-markdown::ng-deep h2:hover .anchor,:host.td-markdown::ng-deep h3:hover .anchor,:host.td-markdown::ng-deep h4:hover .anchor,:host.td-markdown::ng-deep h5:hover .anchor,:host.td-markdown::ng-deep h6:hover .anchor{text-decoration:none}:host.td-markdown::ng-deep h1:hover .anchor .octicon-link,:host.td-markdown::ng-deep h2:hover .anchor .octicon-link,:host.td-markdown::ng-deep h3:hover .anchor .octicon-link,:host.td-markdown::ng-deep h4:hover .anchor .octicon-link,:host.td-markdown::ng-deep h5:hover .anchor .octicon-link,:host.td-markdown::ng-deep h6:hover .anchor .octicon-link{visibility:visible}:host.td-markdown::ng-deep h1{padding-bottom:.3em;font-size:2.25em;line-height:1.2;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep h1 .anchor{line-height:1}:host.td-markdown::ng-deep h2{padding-bottom:.3em;font-size:1.75em;line-height:1.225;border-bottom-width:1px;border-bottom-style:solid}:host.td-markdown::ng-deep h2 .anchor{line-height:1}:host.td-markdown::ng-deep h3{font-size:1.5em;line-height:1.43}:host.td-markdown::ng-deep h3 .anchor{line-height:1.2}:host.td-markdown::ng-deep h4{font-size:1.25em}:host.td-markdown::ng-deep h4 .anchor{line-height:1.2}:host.td-markdown::ng-deep h5{font-size:1em}:host.td-markdown::ng-deep h5 .anchor{line-height:1.1}:host.td-markdown::ng-deep h6{font-size:1em}:host.td-markdown::ng-deep h6 .anchor{line-height:1.1}:host.td-markdown::ng-deep p,:host.td-markdown::ng-deep blockquote,:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol,:host.td-markdown::ng-deep dl,:host.td-markdown::ng-deep table,:host.td-markdown::ng-deep pre{margin-top:0;margin-bottom:16px}:host.td-markdown::ng-deep hr{margin:16px 0}:host.td-markdown::ng-deep ul,:host.td-markdown::ng-deep ol{padding-left:2em}:host.td-markdown::ng-deep ul ul,:host.td-markdown::ng-deep ul ol,:host.td-markdown::ng-deep ol ol,:host.td-markdown::ng-deep ol ul{margin-top:0;margin-bottom:0}:host.td-markdown::ng-deep li>p{margin-top:16px}:host.td-markdown::ng-deep dl{padding:0}:host.td-markdown::ng-deep dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}:host.td-markdown::ng-deep dl dd{padding:0 16px;margin-bottom:16px}:host.td-markdown::ng-deep blockquote{padding:0 15px;border-left-width:4px;border-left-style:solid}:host.td-markdown::ng-deep blockquote>:first-child{margin-top:0}:host.td-markdown::ng-deep blockquote>:last-child{margin-bottom:0}:host.td-markdown::ng-deep table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}:host.td-markdown::ng-deep table th{font-weight:700}:host.td-markdown::ng-deep table th,:host.td-markdown::ng-deep table td{padding:6px 13px;border-width:1px;border-style:solid}:host.td-markdown::ng-deep table tr{border-top-width:1px;border-top-style:solid}:host.td-markdown::ng-deep img{max-width:100%;box-sizing:content-box}:host.td-markdown::ng-deep code{padding:.2em 0;margin:0;font-size:85%;border-radius:3px}:host.td-markdown::ng-deep code:before,:host.td-markdown::ng-deep code:after{letter-spacing:-.2em}:host.td-markdown::ng-deep pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}:host.td-markdown::ng-deep .highlight{margin-bottom:16px}:host.td-markdown::ng-deep .highlight pre,:host.td-markdown::ng-deep pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;border-radius:3px}:host.td-markdown::ng-deep .highlight pre{margin-bottom:0;word-break:normal}:host.td-markdown::ng-deep pre{word-wrap:normal}:host.td-markdown::ng-deep pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}:host.td-markdown::ng-deep pre code:before,:host.td-markdown::ng-deep pre code:after{content:normal}:host.td-markdown::ng-deep kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;vertical-align:middle;border-style:solid;border-width:1px;border-radius:3px}:host.td-markdown::ng-deep .pl-c{color:#969896}:host.td-markdown::ng-deep .pl-c1,:host.td-markdown::ng-deep .pl-s .pl-v{color:#0086b3}:host.td-markdown::ng-deep .pl-e,:host.td-markdown::ng-deep .pl-en{color:#795da3}:host.td-markdown::ng-deep .pl-s .pl-s1,:host.td-markdown::ng-deep .pl-smi{color:#333}:host.td-markdown::ng-deep .pl-ent{color:#63a35c}:host.td-markdown::ng-deep .pl-k{color:#a71d5d}:host.td-markdown::ng-deep .pl-pds,:host.td-markdown::ng-deep .pl-s,:host.td-markdown::ng-deep .pl-s .pl-pse .pl-s1,:host.td-markdown::ng-deep .pl-sr,:host.td-markdown::ng-deep .pl-sr .pl-cce,:host.td-markdown::ng-deep .pl-sr .pl-sra,:host.td-markdown::ng-deep .pl-sr .pl-sre{color:#183691}:host.td-markdown::ng-deep .pl-v{color:#ed6a43}:host.td-markdown::ng-deep .pl-id{color:#b52a1d}:host.td-markdown::ng-deep .pl-ii{background-color:#b52a1d;color:#f8f8f8}:host.td-markdown::ng-deep .pl-sr .pl-cce{color:#63a35c;font-weight:700}:host.td-markdown::ng-deep .pl-ml{color:#693a17}:host.td-markdown::ng-deep .pl-mh,:host.td-markdown::ng-deep .pl-mh .pl-en,:host.td-markdown::ng-deep .pl-ms{color:#1d3e81;font-weight:700}:host.td-markdown::ng-deep .pl-mq{color:teal}:host.td-markdown::ng-deep .pl-mi{color:#333;font-style:italic}:host.td-markdown::ng-deep .pl-mb{color:#333;font-weight:700}:host.td-markdown::ng-deep .pl-md{background-color:#ffecec;color:#bd2c00}:host.td-markdown::ng-deep .pl-mi1{background-color:#eaffea;color:#55a532}:host.td-markdown::ng-deep .pl-mdr{color:#795da3;font-weight:700}:host.td-markdown::ng-deep .pl-mo{color:#1d3e81}:host.td-markdown::ng-deep kbd{display:inline-block;padding:3px 5px;font:11px Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #cccccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px #bbb}:host.td-markdown::ng-deep .full-commit .btn-outline:not(:disabled):hover{color:#4078c0;border:1px solid #4078c0}:host.td-markdown::ng-deep :checked+.radio-label{position:relative;z-index:1;border-color:#4078c0}:host.td-markdown::ng-deep .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}:host.td-markdown::ng-deep .task-list-item{list-style-type:none}:host.td-markdown::ng-deep .task-list-item+.task-list-item{margin-top:3px}:host.td-markdown::ng-deep .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}:host.td-markdown::ng-deep td.markdown-align-center{text-align:center}:host.td-markdown::ng-deep td.markdown-align-left{text-align:left}:host.td-markdown::ng-deep td.markdown-align-right{text-align:right}\\n\"] }]\n }], null, { class: [{\n type: HostBinding,\n args: ['class']\n }], content: [{\n type: Input\n }], simpleLineBreaks: [{\n type: Input\n }], hostedUrl: [{\n type: Input\n }], anchor: [{\n type: Input\n }], fileLinkExtensions: [{\n type: Input\n }], fileLinkClicked: [{\n type: Output\n }], contentReady: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownComponent, { className: \"TdMarkdownComponent\", filePath: \"lib/markdown.component.ts\", lineNumber: 222 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi9zcmMvbGliL21hcmtkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24vc3JjL2xpYi9tYXJrZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsZUFBZSxFQUdmLFdBQVcsRUFDWCxNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFlBQVksRUFDWixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixZQUFZLEVBQ1osZUFBZSxFQUNmLG1CQUFtQixFQUNuQixVQUFVLEdBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEtBQUssUUFBUSxNQUFNLFVBQVUsQ0FBQzs7O0FBRXJDLFNBQVMsYUFBYSxDQUFDLFdBQW1CO0lBQ3hDLGtDQUFrQztJQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELG1DQUFtQztBQUNuQyx5QkFBeUI7QUFDekIsU0FBUyxZQUFZLENBQUMsV0FBbUIsRUFBRSxZQUFvQjtJQUM3RCxJQUFJLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sVUFBVSxHQUFRLElBQUksR0FBRyxDQUFDLFdBQVcs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YTtnQkFzQkQsS0FBSztrQkFBMUIsV0FBVzttQkFBQyxPQUFPO1lBVWhCLE9BQU87a0JBRFYsS0FBSztZQVlGLGdCQUFnQjtrQkFEbkIsS0FBSztZQVlGLFNBQVM7a0JBRFosS0FBSztZQVlGLE1BQU07a0JBRFQsS0FBSztZQVdGLGtCQUFrQjtrQkFEckIsS0FBSztZQVNJLGVBQWU7a0JBQXhCLE1BQU07WUFNRyxZQUFZO2tCQUFyQixNQUFNOztrRkFyRkksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMixcbiAgU2VjdXJpdHlDb250ZXh0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEhvc3RCaW5kaW5nLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIHNjcm9sbFRvQW5jaG9yLFxuICBnZW5IZWFkaW5nSWQsXG4gIGlzQW5jaG9yTGluayxcbiAgcmVtb3ZlVHJhaWxpbmdIYXNoLFxuICByYXdHaXRodWJIcmVmLFxuICBpc0dpdGh1YkhyZWYsXG4gIGlzUmF3R2l0aHViSHJlZixcbiAgcmVuZGVyVmlkZW9FbGVtZW50cyxcbiAgaXNGaWxlTGluayxcbn0gZnJvbSAnLi9tYXJrZG93bi11dGlscy9tYXJrZG93bi11dGlscyc7XG5cbmltcG9ydCAqIGFzIHNob3dkb3duIGZyb20gJ3Nob3dkb3duJztcblxuZnVuY3Rpb24gaXNBYnNvbHV0ZVVybChjdXJyZW50SHJlZjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byBjaGVjayB1cmxcbiAgY29uc3QgUmdFeHAgPSBuZXcgUmVnRXhwKCdeKD86W2Etel0rOik/Ly8nLCAnaScpO1xuICByZXR1cm4gUmdFeHAudGVzdChjdXJyZW50SHJlZik7XG59XG5cbi8vIFRPRE86IGFzc3VtZXMgaXQgaXMgYSBnaXRodWIgdXJsXG4vLyBhbGxvdyBvdmVycmlkZSBzb21laG93XG5mdW5jdGlvbiBnZW5lcmF0ZUhyZWYoY3VycmVudEhyZWY6IHN0cmluZywgcmVsYXRpdmVIcmVmOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoY3VycmVudEhyZWYgJiYgcmVsYXRpdmVIcmVmKSB7XG4gICAgaWYgKGlzQWJzb2x1dGVVcmwoY3VycmVudEhyZWYpKSB7XG4gICAgICBjb25zdCBjdXJyZW50VXJsOiBVUkwgPSBuZXcgVVJMKGN1cnJlbnRIcmVmKTtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IGN1cnJlbnRVcmwucGF0aG5hbWVcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLnNsaWNlKDEsIC0xKVxuICAgICAgICAuam9pbignLycpO1xuICAgICAgY29uc3QgY29ycmVjdFVybDogVVJMID0gbmV3IFVSTChjdXJyZW50SHJlZik7XG5cbiAgICAgIGlmIChyZWxhdGl2ZUhyZWYuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIC8vIHVybCBpcyByZWxhdGl2ZSB0byB0b3AgbGV2ZWxcbiAgICAgICAgY29uc3Qgb3JnQW5kUmVwbzogc3RyaW5nID0gcGF0aC5zcGxpdCgnLycpLnNsaWNlKDAsIDMpLmpvaW4oJy8nKTtcbiAgICAgICAgY29ycmVjdFVybC5wYXRobmFtZSA9IGAke29yZ0FuZFJlcG99JHtyZWxhdGl2ZUhyZWZ9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvcnJlY3RVcmwucGF0aG5hbWUgPSBgJHtwYXRofS8ke3JlbGF0aXZlSHJlZn1gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvcnJlY3RVcmwuaHJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aDogc3RyaW5nID0gY3VycmVudEhyZWYuc3BsaXQoJy8nKS5zbGljZSgwLCAtMSkuam9pbignLycpO1xuXG4gICAgICBpZiAocmVsYXRpdmVIcmVmLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICByZXR1cm4gYCR7cGF0aH0ke3JlbGF0aXZlSHJlZn1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGAke3BhdGh9LyR7cmVsYXRpdmVIcmVmfWA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSHRtbEhyZWZzKFxuICBodG1sOiBzdHJpbmcsXG4gIGN1cnJlbnRIcmVmOiBzdHJpbmcsXG4gIGZpbGVMaW5rRXh0ZW5zaW9ucz86IHN0cmluZ1tdLFxuKTogc3RyaW5nIHtcbiAgaWYgKGN1cnJlbnRIcmVmKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MQW5jaG9yRWxlbWVudD4oJ2FbaHJlZl0nKVxuICAgICAgLmZvckVhY2goKGxpbms6IEhUTUxBbmNob3JFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTChsaW5rLmhyZWYpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbEhhc2g6IHN0cmluZyA9IHVybC5oYXNoO1xuICAgICAgICBjb25zdCBpc0ZpbGVBbmNob3JMaW5rID0gaXNGaWxlTGluayhsaW5rLCBmaWxlTGlua0V4dGVuc2lvbnMpO1xuICAgICAgICBpZiAoaXNBbmNob3JMaW5rKGxpbmspKSB7XG4gICAgICAgICAgaWYgKG9yaWdpbmFsSGFzaCkge1xuICAgICAgICAgICAgdXJsLmhhc2ggPSBnZW5IZWFkaW5nSWQob3JpZ2luYWxIYXNoKTtcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHVybC5oYXNoO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh1cmwuaG9zdCA9PT0gd2luZG93LmxvY2F0aW9uLmhvc3QpIHtcbiAgICAgICAgICAvLyBob3N0cyBtYXRjaCwgbWVhbmluZyBVUkwgTUlHSFQgaGF2ZSBiZWVuIG1hbGZvcm1lZCBieSBzaG93ZG93blxuICAgICAgICAgIC8vIHVybCBpcyBhIHJlbGF0aXZlIHVybCBvciBqdXN0IGEgbGluayB0byBhIHBhcnQgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgaWYgKHVybC5wYXRobmFtZS5lbmRzV2l0aCgnLm1kJykgfHwgaXNGaWxlQW5jaG9yTGluaykge1xuICAgICAgICAgICAgLy8gb25seSBjaGVjayAubWQgdXJscyBvciB1cmxzIGVuZGluZyB3aXRoIHRoZSBmaWxlTGlua0V4dGVuc2lvbnNcblxuICAgICAgICAgICAgY29uc3QgaHJlZldpdGhvdXRIYXNoOiBzdHJpbmcgPSByZW1vdmVUcmFpbGluZ0hhc2goXG4gICAgICAgICAgICAgIGxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJyksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB1cmwuaHJlZiA9IGdlbmVyYXRlSHJlZihjdXJyZW50SHJlZiwgaHJlZldpdGhvdXRIYXNoKTtcblxuICAgICAgICAgICAgaWYgKG9yaWdpbmFsSGFzaCkge1xuICAgICAgICAgICAgICB1cmwuaGFzaCA9IGdlbkhlYWRpbmdJZChvcmlnaW5hbEhhc2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluay5ocmVmID0gdXJsLmhyZWY7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmsudGFyZ2V0ID0gaXNGaWxlQW5jaG9yTGluayA/ICdfc2VsZicgOiAnX2JsYW5rJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB1cmwgaXMgYWJzb2x1dGVcbiAgICAgICAgICBpZiAodXJsLnBhdGhuYW1lLmVuZHNXaXRoKCcubWQnKSkge1xuICAgICAgICAgICAgaWYgKG9yaWdpbmFsSGFzaCkge1xuICAgICAgICAgICAgICB1cmwuaGFzaCA9IGdlbkhlYWRpbmdJZChvcmlnaW5hbEhhc2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluay5ocmVmID0gdXJsLmhyZWY7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmsudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVJbWFnZVNyY3MoaHRtbDogc3RyaW5nLCBjdXJyZW50SHJlZjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGN1cnJlbnRIcmVmKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MSW1hZ2VFbGVtZW50PignaW1nW3NyY10nKVxuICAgICAgLmZvckVhY2goKGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHNyYyA9IGltYWdlLmdldEF0dHJpYnV0ZSgnc3JjJykgPz8gJyc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC1leHByZXNzaW9uICovXG4gICAgICAgICAgbmV3IFVSTChzcmMpO1xuICAgICAgICAgIGlmIChpc0dpdGh1YkhyZWYoc3JjKSkge1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gcmF3R2l0aHViSHJlZihzcmMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgaW1hZ2Uuc3JjID0gZ2VuZXJhdGVIcmVmKFxuICAgICAgICAgICAgaXNHaXRodWJIcmVmKGN1cnJlbnRIcmVmKVxuICAgICAgICAgICAgICA/IHJhd0dpdGh1YkhyZWYoY3VycmVudEhyZWYpXG4gICAgICAgICAgICAgIDogY3VycmVudEhyZWYsXG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBnaCBzdmdzIG5lZWQgdG8gaGF2ZSA/c2FuaXRpemU9dHJ1ZVxuICAgICAgICBpZiAoaXNSYXdHaXRodWJIcmVmKGltYWdlLnNyYykpIHtcbiAgICAgICAgICBjb25zdCB1cmw6IFVSTCA9IG5ldyBVUkwoaW1hZ2Uuc3JjKTtcbiAgICAgICAgICBpZiAodXJsLnBhdGhuYW1lLmVuZHNXaXRoKCcuc3ZnJykpIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdzYW5pdGl6ZScsICd0cnVlJyk7XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSB1cmwuaHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiBhZGRJZHNUb0hlYWRpbmdzKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChodG1sKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvckFsbCgnaDEsIGgyLCBoMywgaDQsIGg1LCBoNicpXG4gICAgICAuZm9yRWFjaCgoaGVhZGluZzogRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpcHBlZElubmVySFRNTCA9IHN0cmlwQWxsSHRtbFRhZ3MoaGVhZGluZy5pbm5lckhUTUwpO1xuICAgICAgICBjb25zdCBpZDogc3RyaW5nID0gZ2VuSGVhZGluZ0lkKHN0cmlwcGVkSW5uZXJIVE1MKTtcbiAgICAgICAgaGVhZGluZy5zZXRBdHRyaWJ1dGUoJ2lkJywgaWQpO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiBjaGFuZ2VTdHlsZUFsaWdubWVudFRvQ2xhc3MoaHRtbDogc3RyaW5nKSB7XG4gIGlmIChodG1sKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIFsncmlnaHQnLCAnY2VudGVyJywgJ2xlZnQnXS5mb3JFYWNoKChhbGlnbm1lbnQ6IHN0cmluZykgPT4ge1xuICAgICAgZG9jdW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoYFtzdHlsZSo9J3RleHQtYWxpZ246JHthbGlnbm1lbnR9J11gKVxuICAgICAgICAuZm9yRWFjaCgoc3R5bGU6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgYG1hcmtkb3duLWFsaWduLSR7YWxpZ25tZW50fWApO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY3VtZW50KTtcbiAgfVxuXG4gIHJldHVybiBodG1sO1xufVxuXG4vLyBTdHJpcHMgYWxsIHRoZSBodG1sIHRhZ3MgaW4gdGhlIGh0bWwgc2FuZCByZXR1cm5zIHRoZSB0ZXh0XG5mdW5jdGlvbiBzdHJpcEFsbEh0bWxUYWdzKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgc2FuaXRpemVkID0gaW5wdXQ7XG4gIGxldCBwcmV2aW91cztcblxuICBkbyB7XG4gICAgcHJldmlvdXMgPSBzYW5pdGl6ZWQ7XG4gICAgc2FuaXRpemVkID0gc2FuaXRpemVkLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpO1xuICB9IHdoaWxlIChwcmV2aW91cyAhPT0gc2FuaXRpemVkKTtcblxuICByZXR1cm4gc2FuaXRpemVkO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1tYXJrZG93bicsXG4gIHN0eWxlVXJsczogWycuL21hcmtkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrZG93bi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkTWFya2Rvd25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIF9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIF9lbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIF9kb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBfbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgcHJpdmF0ZSBfY29udGVudCE6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2ltcGxlTGluZUJyZWFrcyA9IGZhbHNlO1xuICBwcml2YXRlIF9ob3N0ZWRVcmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2FuY2hvciE6IHN0cmluZztcbiAgcHJpdmF0ZSBfdmlld0luaXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZmlsZUxpbmtFeHRlbnNpb25zITogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2FuY2hvckxpc3RlbmVyPzogVm9pZEZ1bmN0aW9uO1xuICAvKipcbiAgICogLnRkLW1hcmtkb3duIGNsYXNzIGFkZGVkIHRvIGhvc3Qgc28gOjpuZy1kZWVwIGdldHMgc2NvcGVkLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ3RkLW1hcmtkb3duJztcblxuICAvKipcbiAgICogY29udGVudD86IHN0cmluZ1xuICAgKlxuICAgKiBNYXJrZG93biBmb3JtYXQgY29udGVudCB0byBiZSBwYXJzZWQgYXMgaHRtbCBtYXJrdXAuXG4gICAqXG4gICAqIGUuZy4gUkVBRE1FLm1kIGNvbnRlbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBzaW1wbGVMaW5lQnJlYWtzPzogc3RyaW5nXG4gICAqXG4gICAqIFNldHMgd2hldGhlciBuZXdsaW5lIGNoYXJhY3RlcnMgaW5zaWRlIHBhcmFncmFwaHMgYW5kIHNwYW5zIGFyZSBwYXJzZWQgYXMgPGJyLz4uXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNpbXBsZUxpbmVCcmVha3Moc2ltcGxlTGluZUJyZWFrczogYm9vbGVhbikge1xuICAgIHRoaXMuX3NpbXBsZUxpbmVCcmVha3MgPSBzaW1wbGVMaW5lQnJlYWtzO1xuICB9XG5cbiAgLyoqXG4gICAqIGhvc3RlZFVybD86IHN0cmluZ1xuICAgKlxuICAgKiBJZiBtYXJrZG93biBjb250YWlucyByZWxhdGl2ZSBwYXRocywgdGhpcyBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSBjb3JyZWN0IHVybHMuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaG9zdGVkVXJsKGhvc3RlZFVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5faG9zdGVkVXJsID0gaG9zdGVkVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIGFuY2hvcj86IHN0cmluZ1xuICAgKlxuICAgKiBBbmNob3IgdG8ganVtcCB0by5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBhbmNob3IoYW5jaG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZpbGUgZXh0ZW5zaW9ucyB0byBtb25pdG9yIGZvciBpbiBhbmNob3IgdGFncy4gSWYgYW4gYW5jaG9yJ3MgYGhyZWZgIGVuZHNcbiAgICogd2l0aCB0aGVzZSBleHRlbnNpb25zLCBhbiBldmVudCB3aWxsIGJlIGVtaXR0ZWQgaW5zdGVhZCBvZiBwZXJmb3JtaW5nIHRoZSBkZWZhdWx0IGNsaWNrIGFjdGlvbi5cbiAgICogRXhhbXBsZSB2YWx1ZXM6IFtcIi5pcHluYlwiLCBcIi56aXBcIiwgXCIuZG9jeFwiXVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGZpbGVMaW5rRXh0ZW5zaW9ucyhleHRlbnNpb25zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2ZpbGVMaW5rRXh0ZW5zaW9ucyA9IGV4dGVuc2lvbnM7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGFuY2hvciB0YWcgd2l0aCBhbiBgaHJlZmAgbWF0Y2hpbmcgdGhlIHNwZWNpZmllZFxuICAgKiBmaWxlTGlua0V4dGVuc2lvbnMgaXMgY2xpY2tlZC4gVGhlIGVtaXR0ZWQgdmFsdWUgaXMgdGhlIFVSTCBvZiB0aGUgY2xpY2tlZCBhbmNob3IuXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsZUxpbmtDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxVUkw+KCk7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnRSZWFkeT86IGZ1bmN0aW9uXG4gICAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIG1hcmtkb3duIGNvbnRlbnQgcmVuZGVyaW5nIGlzIGZpbmlzaGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIGNvbnRlbnRSZWFkeTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBvbmx5IGFuY2hvciBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1snYW5jaG9yJ10gJiZcbiAgICAgICFjaGFuZ2VzWydjb250ZW50J10gJiZcbiAgICAgICFjaGFuZ2VzWydzaW1wbGVMaW5lQnJlYWtzJ10gJiZcbiAgICAgICFjaGFuZ2VzWydob3N0ZWRVcmwnXVxuICAgICkge1xuICAgICAgc2Nyb2xsVG9BbmNob3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLl9hbmNob3IsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudChcbiAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnRleHRDb250ZW50LFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fdmlld0luaXQgPSB0cnVlO1xuXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoZSBgc2Nyb2xsVG9BbmNob3JgIGNhbGxzIGBlbGVtZW50LnNjcm9sbEludG9WaWV3YCwgYSBuYXRpdmUgc3luY2hyb25vdXMgRE9NXG4gICAgLy8gQVBJIGFuZCBpdCBkb2Vzbid0IHJlcXVpcmUgQW5ndWxhciBydW5uaW5nIGBBcHBsaWNhdGlvblJlZi50aWNrKClgIGVhY2ggdGltZSB0aGUgbWFya2Rvd24gY29tcG9uZW50IGlzIGNsaWNrZWQuXG4gICAgLy8gSG9zdCBsaXN0ZW5lciAoYWRkZWQgdGhyb3VnaCBgQEhvc3RMaXN0ZW5lcmApIGNhdXNlIEFuZ3VsYXIgdG8gYWRkIGFuIGV2ZW50IGxpc3RlbmVyIHdpdGhpbiB0aGUgQW5ndWxhciB6b25lLlxuICAgIC8vIEl0IGFsc28gY2FsbHMgYG1hcmtWaWV3RGlydHkoKWAgYmVmb3JlIGNhbGxpbmcgdGhlIGFjdHVhbCBsaXN0ZW5lciAodGhlIGRlY29yYXRlZCBjbGFzcyBtZXRob2QpLlxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9hbmNob3JMaXN0ZW5lciA9IHRoaXMuX3JlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnY2xpY2snLFxuICAgICAgICAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD5ldmVudC5zcmNFbGVtZW50O1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsZW1lbnQubWF0Y2hlcygnYVtocmVmXScpICYmXG4gICAgICAgICAgICBpc0FuY2hvckxpbmsoPEhUTUxBbmNob3JFbGVtZW50PmVsZW1lbnQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFuY2hvckNsaWNrcyhldmVudCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGVsZW1lbnQubWF0Y2hlcygnYVtocmVmXScpICYmXG4gICAgICAgICAgICBpc0ZpbGVMaW5rKDxIVE1MQW5jaG9yRWxlbWVudD5lbGVtZW50LCB0aGlzLl9maWxlTGlua0V4dGVuc2lvbnMpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpbGVBbmNob3JDbGlja3MoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbmNob3JMaXN0ZW5lcj8uKCk7XG4gIH1cblxuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudCh0aGlzLl9jb250ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3ZpZXdJbml0KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudChcbiAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnRleHRDb250ZW50LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhbCBtZXRob2QgdG8gcGFyc2UgYSBzdHJpbmcgbWFya2Rvd24gaW50byBIVE1MIEVsZW1lbnRzIGFuZCBsb2FkIHRoZW0gaW50byB0aGUgY29udGFpbmVyXG4gICAqL1xuICBwcml2YXRlIF9sb2FkQ29udGVudChtYXJrZG93bjogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChtYXJrZG93biAmJiBtYXJrZG93bi50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgLy8gQ2xlYW4gY29udGFpbmVyXG4gICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnaW5uZXJIVE1MJyxcbiAgICAgICAgJycsXG4gICAgICApO1xuICAgICAgLy8gUGFyc2UgaHRtbCBzdHJpbmcgaW50byBhY3R1YWwgSFRNTCBlbGVtZW50cy5cbiAgICAgIHRoaXMuX2VsZW1lbnRGcm9tU3RyaW5nKHRoaXMuX3JlbmRlcihtYXJrZG93bikpO1xuICAgIH1cbiAgICAvLyBUT0RPOiB0aW1lb3V0IHJlcXVpcmVkIHNpbmNlIHJlc2l6aW5nIG9mIGh0bWwgZWxlbWVudHMgb2NjdXJzIHdoaWNoIGNhdXNlcyBhIGNoYW5nZSBpbiB0aGUgc2Nyb2xsIHBvc2l0aW9uXG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIHNjcm9sbFRvQW5jaG9yKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fYW5jaG9yLCB0cnVlKSxcbiAgICAgICAgMjUwLFxuICAgICAgKSxcbiAgICApO1xuICAgIHRoaXMuY29udGVudFJlYWR5LmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQW5jaG9yQ2xpY2tzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdXJsOiBVUkwgPSBuZXcgVVJMKCg8SFRNTEFuY2hvckVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5ocmVmKTtcbiAgICBjb25zdCBoYXNoOiBzdHJpbmcgPSBkZWNvZGVVUkkodXJsLmhhc2gpO1xuICAgIHNjcm9sbFRvQW5jaG9yKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgaGFzaCwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZpbGVBbmNob3JDbGlja3MoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB1cmw6IFVSTCA9IG5ldyBVUkwoKDxIVE1MQW5jaG9yRWxlbWVudD5ldmVudC50YXJnZXQpLmhyZWYpO1xuICAgIHRoaXMuZmlsZUxpbmtDbGlja2VkLmVtaXQodXJsKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VsZW1lbnRGcm9tU3RyaW5nKG1hcmt1cFN0cjogc3RyaW5nKTogSFRNTERpdkVsZW1lbnQge1xuICAgIC8vIFJlbmRlcmVyMiBkb2VzbnQgaGF2ZSBhIHBhcnNpbmcgbWV0aG9kLCBzbyB3ZSBoYXZlIHRvIHNhbml0aXplIGFuZCB1c2UgW2lubmVySFRNTF1cbiAgICAvLyB0byBwYXJzZSB0aGUgc3RyaW5nIGludG8gRE9NIGVsZW1lbnQgZm9yIG5vdy5cbiAgICBjb25zdCBkaXY6IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBkaXYpO1xuXG4gICAgY29uc3QgaHRtbDogc3RyaW5nID1cbiAgICAgIHRoaXMuX2RvbVNhbml0aXplci5zYW5pdGl6ZShcbiAgICAgICAgU2VjdXJpdHlDb250ZXh0LkhUTUwsXG4gICAgICAgIGNoYW5nZVN0eWxlQWxpZ25tZW50VG9DbGFzcyhtYXJrdXBTdHIpLFxuICAgICAgKSA/PyAnJztcbiAgICBjb25zdCBodG1sV2l0aEFic29sdXRlSHJlZnM6IHN0cmluZyA9IG5vcm1hbGl6ZUh0bWxIcmVmcyhcbiAgICAgIGh0bWwsXG4gICAgICB0aGlzLl9ob3N0ZWRVcmwsXG4gICAgICB0aGlzLl9maWxlTGlua0V4dGVuc2lvbnMsXG4gICAgKTtcbiAgICBjb25zdCBodG1sV2l0aEFic29sdXRlSW1nU3Jjczogc3RyaW5nID0gbm9ybWFsaXplSW1hZ2VTcmNzKFxuICAgICAgaHRtbFdpdGhBYnNvbHV0ZUhyZWZzLFxuICAgICAgdGhpcy5faG9zdGVkVXJsLFxuICAgICk7XG4gICAgY29uc3QgaHRtbFdpdGhIZWFkaW5nSWRzOiBzdHJpbmcgPSBhZGRJZHNUb0hlYWRpbmdzKFxuICAgICAgaHRtbFdpdGhBYnNvbHV0ZUltZ1NyY3MsXG4gICAgKTtcbiAgICBjb25zdCBodG1sV2l0aFZpZGVvczogU2FmZUh0bWwgPSByZW5kZXJWaWRlb0VsZW1lbnRzKGh0bWxXaXRoSGVhZGluZ0lkcyk7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoZGl2LCAnaW5uZXJIVE1MJywgaHRtbFdpdGhWaWRlb3MpO1xuICAgIHJldHVybiBkaXY7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXIobWFya2Rvd246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gVHJpbSBsZWFkaW5nIGFuZCB0cmFpbGluZyBuZXdsaW5lc1xuICAgIG1hcmtkb3duID0gbWFya2Rvd25cbiAgICAgIC5yZXBsYWNlKC9eKFxcc3xcXHQpKlxcbisvZywgJycpXG4gICAgICAucmVwbGFjZSgvKFxcc3xcXHQpKlxcbisoXFxzfFxcdCkqJC9nLCAnJyk7XG4gICAgLy8gU3BsaXQgbWFya2Rvd24gYnkgbGluZSBjaGFyYWN0ZXJzXG4gICAgbGV0IGxpbmVzOiBzdHJpbmdbXSA9IG1hcmtkb3duLnNwbGl0KCdcXG4nKTtcblxuICAgIC8vIGNoZWNrIGhvdyBtdWNoIGluZGVudGF0aW9uIGlzIHVzZWQgYnkgdGhlIGZpcnN0IGFjdHVhbCBtYXJrZG93biBsaW5lXG4gICAgY29uc3QgZmlyc3RMaW5lV2hpdGVzcGFjZU1hdGNoID0gbGluZXNbMF0ubWF0Y2goL14oXFxzfFxcdCkqLyk7XG4gICAgY29uc3QgZmlyc3RMaW5lV2hpdGVzcGFjZTogc3RyaW5nID0gZmlyc3RMaW5lV2hpdGVzcGFjZU1hdGNoXG4gICAgICA/IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaFswXVxuICAgICAgOiAnJztcblxuICAgIC8vIFJlbW92ZSBhbGwgaW5kZW50YXRpb24gc3BhY2VzIHNvIG1hcmtkb3duIGNhbiBiZSBwYXJzZWQgY29ycmVjdGx5XG4gICAgY29uc3Qgc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXggPSBuZXcgUmVnRXhwKCdeJyArIGZpcnN0TGluZVdoaXRlc3BhY2UpO1xuICAgIGxpbmVzID0gbGluZXMubWFwKGZ1bmN0aW9uIChsaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIGxpbmUucmVwbGFjZShzdGFydGluZ1doaXRlc3BhY2VSZWdleCwgJycpO1xuICAgIH0pO1xuXG4gICAgLy8gSm9pbiBsaW5lcyBhZ2FpbiB3aXRoIGxpbmUgY2hhcmFjdGVyc1xuICAgIGNvbnN0IG1hcmtkb3duVG9QYXJzZTogc3RyaW5nID0gbGluZXMuam9pbignXFxuJyk7XG5cbiAgICAvLyBDb252ZXJ0IG1hcmtkb3duIGludG8gaHRtbFxuICAgIGNvbnN0IGNvbnZlcnRlcjogc2hvd2Rvd24uQ29udmVydGVyID0gbmV3IHNob3dkb3duLkNvbnZlcnRlcigpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ2doQ29kZUJsb2NrcycsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ3Rhc2tsaXN0cycsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ3RhYmxlcycsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ2xpdGVyYWxNaWRXb3JkVW5kZXJzY29yZXMnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdzaW1wbGVMaW5lQnJlYWtzJywgdGhpcy5fc2ltcGxlTGluZUJyZWFrcyk7XG4gICAgY29udmVydGVyLnNldE9wdGlvbignZW1vamknLCB0cnVlKTtcbiAgICByZXR1cm4gY29udmVydGVyLm1ha2VIdG1sKG1hcmtkb3duVG9QYXJzZSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==","import { Injectable, SecurityContext, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { HttpClient } from '@angular/common/http';\nimport { isGithubHref, rawGithubHref } from '../markdown-utils/markdown-utils';\nimport * as i0 from \"@angular/core\";\nexport class TdMarkdownLoaderService {\n _http = inject(HttpClient);\n _sanitizer = inject(DomSanitizer);\n async load(url, httpOptions = {}) {\n const sanitizedUrl = this._sanitizer.sanitize(SecurityContext.URL, url) ?? '';\n let urlToGet = sanitizedUrl;\n if (isGithubHref(sanitizedUrl)) {\n urlToGet = rawGithubHref(sanitizedUrl);\n }\n const response = await this._http\n .get(urlToGet, {\n ...httpOptions,\n responseType: 'text',\n observe: 'response',\n })\n .toPromise();\n const contentType = response?.headers.get('Content-Type') ?? '';\n if (contentType.includes('text/plain') ||\n contentType.includes('text/markdown')) {\n return response?.body ?? '';\n }\n else {\n throw Error(`${contentType} is not a handled content type`);\n }\n }\n static ɵfac = function TdMarkdownLoaderService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownLoaderService)(); };\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TdMarkdownLoaderService, factory: TdMarkdownLoaderService.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownLoaderService, [{\n type: Injectable\n }], null, null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duL3NyYy9saWIvbWFya2Rvd24tbG9hZGVyL21hcmtkb3duLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUcvRSxNQUFNLE9BQU8sdUJBQXVCO0lBQzFCLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUxQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVcsRUFBRSxjQUFzQixFQUFFO1FBQzlDLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzRCxJQUFJLFFBQVEsR0FBVyxZQUFZLENBQUM7UUFDcEMsSUFBSSxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMvQixRQUFRLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBcUMsTUFBTSxJQUFJLENBQUMsS0FBSzthQUNoRSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2IsR0FBRyxXQUFXO1lBQ2QsWUFBWSxFQUFFLE1BQU07WUFDcEIsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQzthQUNELFNBQVMsRUFBRSxDQUFDO1FBQ2YsTUFBTSxXQUFXLEdBQVcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hFLElBQ0UsV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDbEMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFDckMsQ0FBQztZQUNELE9BQU8sUUFBUSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEtBQUssQ0FBQyxHQUFHLFdBQVcsZ0NBQWdDLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztpSEE1QlUsdUJBQXVCO2dFQUF2Qix1QkFBdUIsV0FBdkIsdUJBQXVCOztpRkFBdkIsdUJBQXVCO2NBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTZWN1cml0eUNvbnRleHQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpc0dpdGh1YkhyZWYsIHJhd0dpdGh1YkhyZWYgfSBmcm9tICcuLi9tYXJrZG93bi11dGlscy9tYXJrZG93bi11dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTG9hZGVyU2VydmljZSB7XG4gIHByaXZhdGUgX2h0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgX3Nhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gIGFzeW5jIGxvYWQodXJsOiBzdHJpbmcsIGh0dHBPcHRpb25zOiBvYmplY3QgPSB7fSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2FuaXRpemVkVXJsOiBzdHJpbmcgPVxuICAgICAgdGhpcy5fc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5VUkwsIHVybCkgPz8gJyc7XG4gICAgbGV0IHVybFRvR2V0OiBzdHJpbmcgPSBzYW5pdGl6ZWRVcmw7XG4gICAgaWYgKGlzR2l0aHViSHJlZihzYW5pdGl6ZWRVcmwpKSB7XG4gICAgICB1cmxUb0dldCA9IHJhd0dpdGh1YkhyZWYoc2FuaXRpemVkVXJsKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4gfCB1bmRlZmluZWQgPSBhd2FpdCB0aGlzLl9odHRwXG4gICAgICAuZ2V0KHVybFRvR2V0LCB7XG4gICAgICAgIC4uLmh0dHBPcHRpb25zLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG4gICAgY29uc3QgY29udGVudFR5cGU6IHN0cmluZyA9IHJlc3BvbnNlPy5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJykgPz8gJyc7XG4gICAgaWYgKFxuICAgICAgY29udGVudFR5cGUuaW5jbHVkZXMoJ3RleHQvcGxhaW4nKSB8fFxuICAgICAgY29udGVudFR5cGUuaW5jbHVkZXMoJ3RleHQvbWFya2Rvd24nKVxuICAgICkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlPy5ib2R5ID8/ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcihgJHtjb250ZW50VHlwZX0gaXMgbm90IGEgaGFuZGxlZCBjb250ZW50IHR5cGVgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { provideHttpClient, withInterceptorsFromDi, } from '@angular/common/http';\nimport { TdMarkdownComponent } from './markdown.component';\nimport { TdMarkdownLoaderService } from './markdown-loader/markdown-loader.service';\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 CovalentMarkdownModule {\n static ɵfac = function CovalentMarkdownModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentMarkdownModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentMarkdownModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [\n TdMarkdownLoaderService,\n provideHttpClient(withInterceptorsFromDi()),\n ] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentMarkdownModule, [{\n type: NgModule,\n args: [{\n exports: [TdMarkdownComponent],\n imports: [TdMarkdownComponent],\n providers: [\n TdMarkdownLoaderService,\n provideHttpClient(withInterceptorsFromDi()),\n ],\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentMarkdownModule, { imports: [TdMarkdownComponent], exports: [TdMarkdownComponent] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi9zcmMvbGliL21hcmtkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsc0JBQXNCLEdBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBRXBGOzs7R0FHRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7Z0hBQXRCLHNCQUFzQjs0REFBdEIsc0JBQXNCO2lFQUx0QjtZQUNULHVCQUF1QjtZQUN2QixpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzVDOztpRkFFVSxzQkFBc0I7Y0FSbEMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDOUIsU0FBUyxFQUFFO29CQUNULHVCQUF1QjtvQkFDdkIsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztpQkFDNUM7YUFDRjs7d0ZBQ1ksc0JBQXNCLGNBTnZCLG1CQUFtQixhQURuQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBwcm92aWRlSHR0cENsaWVudCxcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBUZE1hcmtkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGRNYXJrZG93bkxvYWRlclNlcnZpY2UgfSBmcm9tICcuL21hcmtkb3duLWxvYWRlci9tYXJrZG93bi1sb2FkZXIuc2VydmljZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBtb2R1bGUgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy5cbiAqIFBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nIHN0YW5kYWxvbmUgY29tcG9uZW50cyBhcyBzb29uIGFzIHBvc3NpYmxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbVGRNYXJrZG93bkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtUZE1hcmtkb3duQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVGRNYXJrZG93bkxvYWRlclNlcnZpY2UsXG4gICAgcHJvdmlkZUh0dHBDbGllbnQod2l0aEludGVyY2VwdG9yc0Zyb21EaSgpKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRNYXJrZG93bk1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtbWFya2Rvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21hcmtkb3duL3NyYy9jb3ZhbGVudC1tYXJrZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnChanges, AfterViewInit, OnDestroy, EventEmitter,
|
|
3
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { OnChanges, AfterViewInit, OnDestroy, EventEmitter, SimpleChanges } from '@angular/core';
|
|
5
3
|
|
|
6
4
|
declare class TdMarkdownComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
7
5
|
private _renderer;
|
|
@@ -64,7 +62,6 @@ declare class TdMarkdownComponent implements OnChanges, AfterViewInit, OnDestroy
|
|
|
64
62
|
* Event emitted after the markdown content rendering is finished.
|
|
65
63
|
*/
|
|
66
64
|
contentReady: EventEmitter<void>;
|
|
67
|
-
constructor(_renderer: Renderer2, _elementRef: ElementRef, _domSanitizer: DomSanitizer, _ngZone: NgZone);
|
|
68
65
|
ngOnChanges(changes: SimpleChanges): void;
|
|
69
66
|
ngAfterViewInit(): void;
|
|
70
67
|
ngOnDestroy(): void;
|
|
@@ -105,7 +102,6 @@ declare function renderVideoElements(html: string): string;
|
|
|
105
102
|
declare class TdMarkdownLoaderService {
|
|
106
103
|
private _http;
|
|
107
104
|
private _sanitizer;
|
|
108
|
-
constructor(_http: HttpClient, _sanitizer: DomSanitizer);
|
|
109
105
|
load(url: string, httpOptions?: object): Promise<string>;
|
|
110
106
|
static ɵfac: i0.ɵɵFactoryDeclaration<TdMarkdownLoaderService, never>;
|
|
111
107
|
static ɵprov: i0.ɵɵInjectableDeclaration<TdMarkdownLoaderService>;
|