@covalent/markdown 11.14.1 → 11.14.2
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.
|
@@ -127,6 +127,54 @@ function renderVideoElements(html) {
|
|
|
127
127
|
.replace(ytShort, convert)
|
|
128
128
|
.replace(ytPlaylist, convertPL);
|
|
129
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Checks whether text contains markdown syntax patterns.
|
|
132
|
+
*/
|
|
133
|
+
function containsMarkdown(text) {
|
|
134
|
+
const markdownPatterns = [
|
|
135
|
+
/(?:^|\n)\s{0,3}#{1,6}\s/, // ATX headings
|
|
136
|
+
/(?:^|\n)\s{0,3}[-*+]\s/, // unordered list items
|
|
137
|
+
/(?:^|\n)\s{0,3}\d+\.\s/, // ordered list items
|
|
138
|
+
/(?:^|\n)\s{0,3}>\s/, // blockquotes
|
|
139
|
+
/\*\*.+?\*\*/s, // bold
|
|
140
|
+
/\[.+?\]\(.+?\)/s, // links
|
|
141
|
+
/!\[.*?\]\(.+?\)/s, // images
|
|
142
|
+
/`.+?`/, // inline code
|
|
143
|
+
/(?:^|\n)\s{0,3}```/, // fenced code blocks
|
|
144
|
+
/(?:^|\n)\s{0,3}---\s*(?:$|\n)/, // horizontal rules
|
|
145
|
+
];
|
|
146
|
+
return markdownPatterns.some((pattern) => pattern.test(text));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Finds the index of the matching closing tag, handling nested same-name tags.
|
|
150
|
+
*/
|
|
151
|
+
function findClosingTagIndex(str, tagName, searchFrom) {
|
|
152
|
+
const openPattern = new RegExp(`<${tagName}(?:\\s[^>]*)?>`, 'gi');
|
|
153
|
+
const closePattern = new RegExp(`</${tagName}\\s*>`, 'gi');
|
|
154
|
+
let depth = 1;
|
|
155
|
+
let pos = searchFrom;
|
|
156
|
+
while (pos < str.length && depth > 0) {
|
|
157
|
+
openPattern.lastIndex = pos;
|
|
158
|
+
closePattern.lastIndex = pos;
|
|
159
|
+
// we look for open and close tags starting from the end of the last match
|
|
160
|
+
const nextOpen = openPattern.exec(str);
|
|
161
|
+
const nextClose = closePattern.exec(str);
|
|
162
|
+
if (!nextClose)
|
|
163
|
+
return -1;
|
|
164
|
+
// if we find an open tag before a close tag, it means we have a nested tag, so we increase the depth
|
|
165
|
+
if (nextOpen && nextOpen.index < nextClose.index) {
|
|
166
|
+
depth++;
|
|
167
|
+
pos = nextOpen.index + nextOpen[0].length;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
depth--;
|
|
171
|
+
if (depth === 0)
|
|
172
|
+
return nextClose.index;
|
|
173
|
+
pos = nextClose.index + nextClose[0].length;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return -1;
|
|
177
|
+
}
|
|
130
178
|
|
|
131
179
|
const _c0 = ["*"];
|
|
132
180
|
function isAbsoluteUrl(currentHref) {
|
|
@@ -271,6 +319,57 @@ function changeStyleAlignmentToClass(html) {
|
|
|
271
319
|
}
|
|
272
320
|
return html;
|
|
273
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Adds markdown="1" attribute to HTML block-level tags so that
|
|
324
|
+
* showdown parses any markdown nested inside them.
|
|
325
|
+
* Only adds the attribute when the tag's inner content contains markdown syntax.
|
|
326
|
+
*/
|
|
327
|
+
function addMarkdownAttrToHtmlTags(markdown) {
|
|
328
|
+
const voidElements = new Set([
|
|
329
|
+
'area',
|
|
330
|
+
'base',
|
|
331
|
+
'br',
|
|
332
|
+
'col',
|
|
333
|
+
'embed',
|
|
334
|
+
'hr',
|
|
335
|
+
'img',
|
|
336
|
+
'input',
|
|
337
|
+
'link',
|
|
338
|
+
'meta',
|
|
339
|
+
'param',
|
|
340
|
+
'source',
|
|
341
|
+
'track',
|
|
342
|
+
'wbr',
|
|
343
|
+
]);
|
|
344
|
+
const openTagRegex = /<([A-Za-z][A-Za-z0-9-]*)(\s[^>]*)?\s*>/g;
|
|
345
|
+
let result = '';
|
|
346
|
+
let lastIndex = 0;
|
|
347
|
+
let match;
|
|
348
|
+
while ((match = openTagRegex.exec(markdown)) !== null) {
|
|
349
|
+
const fullMatch = match[0];
|
|
350
|
+
const tagName = match[1];
|
|
351
|
+
const attrs = match[2] || '';
|
|
352
|
+
const tag = tagName.toLowerCase();
|
|
353
|
+
// Skip void elements, self-closing tags, or tags with existing markdown attr
|
|
354
|
+
if (voidElements.has(tag) ||
|
|
355
|
+
fullMatch.endsWith('/>') ||
|
|
356
|
+
/markdown\s*=/.test(attrs)) {
|
|
357
|
+
continue;
|
|
358
|
+
}
|
|
359
|
+
const contentStart = match.index + fullMatch.length;
|
|
360
|
+
const closingTagIndex = findClosingTagIndex(markdown, tagName, contentStart);
|
|
361
|
+
if (closingTagIndex === -1)
|
|
362
|
+
continue;
|
|
363
|
+
const innerContent = markdown.slice(contentStart, closingTagIndex);
|
|
364
|
+
if (containsMarkdown(innerContent)) {
|
|
365
|
+
result += markdown.slice(lastIndex, match.index);
|
|
366
|
+
result += fullMatch.replace(new RegExp(`<${tagName}(\\s|>)`), `<${tagName} markdown="1"$1`);
|
|
367
|
+
lastIndex = contentStart;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
result += markdown.slice(lastIndex);
|
|
371
|
+
return result;
|
|
372
|
+
}
|
|
274
373
|
// Strips all the html tags in the html sand returns the text
|
|
275
374
|
function stripAllHtmlTags(input) {
|
|
276
375
|
let sanitized = input;
|
|
@@ -465,7 +564,9 @@ class TdMarkdownComponent {
|
|
|
465
564
|
converter.setOption('simpleLineBreaks', this._simpleLineBreaks);
|
|
466
565
|
converter.setOption('emoji', true);
|
|
467
566
|
converter.setOption('disableForced4SpacesIndentedSublists', true);
|
|
468
|
-
|
|
567
|
+
const markdownWithAttr = addMarkdownAttrToHtmlTags(markdownToParse);
|
|
568
|
+
const html = converter.makeHtml(markdownWithAttr);
|
|
569
|
+
return html;
|
|
469
570
|
}
|
|
470
571
|
static ɵfac = function TdMarkdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownComponent)(); };
|
|
471
572
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownComponent, selectors: [["td-markdown"]], hostVars: 2, hostBindings: function TdMarkdownComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
@@ -496,7 +597,7 @@ class TdMarkdownComponent {
|
|
|
496
597
|
}], contentReady: [{
|
|
497
598
|
type: Output
|
|
498
599
|
}] }); })();
|
|
499
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownComponent, { className: "TdMarkdownComponent", filePath: "lib/markdown.component.ts", lineNumber:
|
|
600
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownComponent, { className: "TdMarkdownComponent", filePath: "lib/markdown.component.ts", lineNumber: 292 }); })();
|
|
500
601
|
|
|
501
602
|
class TdMarkdownLoaderService {
|
|
502
603
|
_http = inject(HttpClient);
|
|
@@ -559,5 +660,5 @@ class CovalentMarkdownModule {
|
|
|
559
660
|
* Generated bundle index. Do not edit.
|
|
560
661
|
*/
|
|
561
662
|
|
|
562
|
-
export { CovalentMarkdownModule, TdMarkdownComponent, TdMarkdownLoaderService, genHeadingId, isAnchorLink, isFileLink, isGithubHref, isRawGithubHref, rawGithubHref, removeLeadingHash, removeTrailingHash, renderVideoElements, scrollToAnchor };
|
|
663
|
+
export { CovalentMarkdownModule, TdMarkdownComponent, TdMarkdownLoaderService, containsMarkdown, findClosingTagIndex, genHeadingId, isAnchorLink, isFileLink, isGithubHref, isRawGithubHref, rawGithubHref, removeLeadingHash, removeTrailingHash, renderVideoElements, scrollToAnchor };
|
|
563
664
|
//# sourceMappingURL=covalent-markdown.mjs.map
|
|
@@ -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, 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.STYLE, 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('ghCompatibleHeaderId', 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 converter.setOption('disableForced4SpacesIndentedSublists', 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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QztJQUM3QyxDQUFDOzZHQTFQVSxtQkFBbUI7NkRBQW5CLG1CQUFtQjtZQUFuQix3QkFBbUI7OztZQzdOaEMsa0JBQXlCOzs7aUZENk5aLG1CQUFtQjtjQUwvQixTQUFTOzJCQUNFLGFBQWE7O2tCQXNCdEIsV0FBVzttQkFBQyxPQUFPOztrQkFTbkIsS0FBSzs7a0JBV0wsS0FBSzs7a0JBV0wsS0FBSzs7a0JBV0wsS0FBSzs7a0JBVUwsS0FBSzs7a0JBU0wsTUFBTTs7a0JBTU4sTUFBTTs7a0ZBckZJLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBSZW5kZXJlcjIsXG4gIFNlY3VyaXR5Q29udGV4dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBIb3N0QmluZGluZyxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1xuICBzY3JvbGxUb0FuY2hvcixcbiAgZ2VuSGVhZGluZ0lkLFxuICBpc0FuY2hvckxpbmssXG4gIHJlbW92ZVRyYWlsaW5nSGFzaCxcbiAgcmF3R2l0aHViSHJlZixcbiAgaXNHaXRodWJIcmVmLFxuICBpc1Jhd0dpdGh1YkhyZWYsXG4gIHJlbmRlclZpZGVvRWxlbWVudHMsXG4gIGlzRmlsZUxpbmssXG59IGZyb20gJy4vbWFya2Rvd24tdXRpbHMvbWFya2Rvd24tdXRpbHMnO1xuXG5pbXBvcnQgKiBhcyBzaG93ZG93biBmcm9tICdzaG93ZG93bic7XG5cbmZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwoY3VycmVudEhyZWY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBSZWd1bGFyIEV4cHJlc3Npb24gdG8gY2hlY2sgdXJsXG4gIGNvbnN0IFJnRXhwID0gbmV3IFJlZ0V4cCgnXig/OlthLXpdKzopPy8vJywgJ2knKTtcbiAgcmV0dXJuIFJnRXhwLnRlc3QoY3VycmVudEhyZWYpO1xufVxuXG4vLyBUT0RPOiBhc3N1bWVzIGl0IGlzIGEgZ2l0aHViIHVybFxuLy8gYWxsb3cgb3ZlcnJpZGUgc29tZWhvd1xuZnVuY3Rpb24gZ2VuZXJhdGVIcmVmKGN1cnJlbnRIcmVmOiBzdHJpbmcsIHJlbGF0aXZlSHJlZjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGN1cnJlbnRIcmVmICYmIHJlbGF0aXZlSHJlZikge1xuICAgIGlmIChpc0Fic29sdXRlVXJsKGN1cnJlbnRIcmVmKSkge1xuICAgICAgY29uc3QgY3VycmVudFVybDogVVJMID0gbmV3IFVSTChjdXJyZW50SHJlZik7XG4gICAgICBjb25zdCBwYXRoOiBzdHJpbmcgPSBjdXJyZW50VXJsLnBhdGhuYW1lXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC5zbGljZSgxLCAtMSlcbiAgICAgICAgLmpvaW4oJy8nKTtcbiAgICAgIGNvbnN0IGNvcnJlY3RVcmw6IFVSTCA9IG5ldyBVUkwoY3VycmVudEhyZWYpO1xuXG4gICAgICBpZiAocmVsYXRpdmVIcmVmLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAvLyB1cmwgaXMgcmVsYXRpdmUgdG8gdG9wIGxldmVsXG4gICAgICAgIGNvbnN0IG9yZ0FuZFJlcG86IHN0cmluZyA9IHBhdGguc3BsaXQoJy8nKS5zbGljZSgwLCAzKS5qb2luKCcvJyk7XG4gICAgICAgIGNvcnJlY3RVcmwucGF0aG5hbWUgPSBgJHtvcmdBbmRSZXBvfSR7cmVsYXRpdmVIcmVmfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3JyZWN0VXJsLnBhdGhuYW1lID0gYCR7cGF0aH0vJHtyZWxhdGl2ZUhyZWZ9YDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb3JyZWN0VXJsLmhyZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IGN1cnJlbnRIcmVmLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmpvaW4oJy8nKTtcblxuICAgICAgaWYgKHJlbGF0aXZlSHJlZi5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgcmV0dXJuIGAke3BhdGh9JHtyZWxhdGl2ZUhyZWZ9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgJHtwYXRofS8ke3JlbGF0aXZlSHJlZn1gO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUh0bWxIcmVmcyhcbiAgaHRtbDogc3RyaW5nLFxuICBjdXJyZW50SHJlZjogc3RyaW5nLFxuICBmaWxlTGlua0V4dGVuc2lvbnM/OiBzdHJpbmdbXSxcbik6IHN0cmluZyB7XG4gIGlmIChjdXJyZW50SHJlZikge1xuICAgIGNvbnN0IGRvY3VtZW50OiBEb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoXG4gICAgICBodG1sLFxuICAgICAgJ3RleHQvaHRtbCcsXG4gICAgKTtcbiAgICBkb2N1bWVudFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEFuY2hvckVsZW1lbnQ+KCdhW2hyZWZdJylcbiAgICAgIC5mb3JFYWNoKChsaW5rOiBIVE1MQW5jaG9yRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCB1cmw6IFVSTCA9IG5ldyBVUkwobGluay5ocmVmKTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxIYXNoOiBzdHJpbmcgPSB1cmwuaGFzaDtcbiAgICAgICAgY29uc3QgaXNGaWxlQW5jaG9yTGluayA9IGlzRmlsZUxpbmsobGluaywgZmlsZUxpbmtFeHRlbnNpb25zKTtcbiAgICAgICAgaWYgKGlzQW5jaG9yTGluayhsaW5rKSkge1xuICAgICAgICAgIGlmIChvcmlnaW5hbEhhc2gpIHtcbiAgICAgICAgICAgIHVybC5oYXNoID0gZ2VuSGVhZGluZ0lkKG9yaWdpbmFsSGFzaCk7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSB1cmwuaGFzaDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodXJsLmhvc3QgPT09IHdpbmRvdy5sb2NhdGlvbi5ob3N0KSB7XG4gICAgICAgICAgLy8gaG9zdHMgbWF0Y2gsIG1lYW5pbmcgVVJMIE1JR0hUIGhhdmUgYmVlbiBtYWxmb3JtZWQgYnkgc2hvd2Rvd25cbiAgICAgICAgICAvLyB1cmwgaXMgYSByZWxhdGl2ZSB1cmwgb3IganVzdCBhIGxpbmsgdG8gYSBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgIGlmICh1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy5tZCcpIHx8IGlzRmlsZUFuY2hvckxpbmspIHtcbiAgICAgICAgICAgIC8vIG9ubHkgY2hlY2sgLm1kIHVybHMgb3IgdXJscyBlbmRpbmcgd2l0aCB0aGUgZmlsZUxpbmtFeHRlbnNpb25zXG5cbiAgICAgICAgICAgIGNvbnN0IGhyZWZXaXRob3V0SGFzaDogc3RyaW5nID0gcmVtb3ZlVHJhaWxpbmdIYXNoKFxuICAgICAgICAgICAgICBsaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdXJsLmhyZWYgPSBnZW5lcmF0ZUhyZWYoY3VycmVudEhyZWYsIGhyZWZXaXRob3V0SGFzaCk7XG5cbiAgICAgICAgICAgIGlmIChvcmlnaW5hbEhhc2gpIHtcbiAgICAgICAgICAgICAgdXJsLmhhc2ggPSBnZW5IZWFkaW5nSWQob3JpZ2luYWxIYXNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHVybC5ocmVmO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsaW5rLnRhcmdldCA9IGlzRmlsZUFuY2hvckxpbmsgPyAnX3NlbGYnIDogJ19ibGFuayc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdXJsIGlzIGFic29sdXRlXG4gICAgICAgICAgaWYgKHVybC5wYXRobmFtZS5lbmRzV2l0aCgnLm1kJykpIHtcbiAgICAgICAgICAgIGlmIChvcmlnaW5hbEhhc2gpIHtcbiAgICAgICAgICAgICAgdXJsLmhhc2ggPSBnZW5IZWFkaW5nSWQob3JpZ2luYWxIYXNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHVybC5ocmVmO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsaW5rLnRhcmdldCA9ICdfYmxhbmsnO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY3VtZW50KTtcbiAgfVxuICByZXR1cm4gaHRtbDtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSW1hZ2VTcmNzKGh0bWw6IHN0cmluZywgY3VycmVudEhyZWY6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChjdXJyZW50SHJlZikge1xuICAgIGNvbnN0IGRvY3VtZW50OiBEb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoXG4gICAgICBodG1sLFxuICAgICAgJ3RleHQvaHRtbCcsXG4gICAgKTtcbiAgICBkb2N1bWVudFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEltYWdlRWxlbWVudD4oJ2ltZ1tzcmNdJylcbiAgICAgIC5mb3JFYWNoKChpbWFnZTogSFRNTEltYWdlRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBzcmMgPSBpbWFnZS5nZXRBdHRyaWJ1dGUoJ3NyYycpID8/ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11bnVzZWQtZXhwcmVzc2lvbiAqL1xuICAgICAgICAgIG5ldyBVUkwoc3JjKTtcbiAgICAgICAgICBpZiAoaXNHaXRodWJIcmVmKHNyYykpIHtcbiAgICAgICAgICAgIGltYWdlLnNyYyA9IHJhd0dpdGh1YkhyZWYoc3JjKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIGltYWdlLnNyYyA9IGdlbmVyYXRlSHJlZihcbiAgICAgICAgICAgIGlzR2l0aHViSHJlZihjdXJyZW50SHJlZilcbiAgICAgICAgICAgICAgPyByYXdHaXRodWJIcmVmKGN1cnJlbnRIcmVmKVxuICAgICAgICAgICAgICA6IGN1cnJlbnRIcmVmLFxuICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2ggc3ZncyBuZWVkIHRvIGhhdmUgP3Nhbml0aXplPXRydWVcbiAgICAgICAgaWYgKGlzUmF3R2l0aHViSHJlZihpbWFnZS5zcmMpKSB7XG4gICAgICAgICAgY29uc3QgdXJsOiBVUkwgPSBuZXcgVVJMKGltYWdlLnNyYyk7XG4gICAgICAgICAgaWYgKHVybC5wYXRobmFtZS5lbmRzV2l0aCgnLnN2ZycpKSB7XG4gICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnc2FuaXRpemUnLCAndHJ1ZScpO1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gdXJsLmhyZWY7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY3VtZW50KTtcbiAgfVxuICByZXR1cm4gaHRtbDtcbn1cblxuZnVuY3Rpb24gYWRkSWRzVG9IZWFkaW5ncyhodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoaHRtbCkge1xuICAgIGNvbnN0IGRvY3VtZW50OiBEb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoXG4gICAgICBodG1sLFxuICAgICAgJ3RleHQvaHRtbCcsXG4gICAgKTtcbiAgICBkb2N1bWVudFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJ2gxLCBoMiwgaDMsIGg0LCBoNSwgaDYnKVxuICAgICAgLmZvckVhY2goKGhlYWRpbmc6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaXBwZWRJbm5lckhUTUwgPSBzdHJpcEFsbEh0bWxUYWdzKGhlYWRpbmcuaW5uZXJIVE1MKTtcbiAgICAgICAgY29uc3QgaWQ6IHN0cmluZyA9IGdlbkhlYWRpbmdJZChzdHJpcHBlZElubmVySFRNTCk7XG4gICAgICAgIGhlYWRpbmcuc2V0QXR0cmlidXRlKCdpZCcsIGlkKTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY3VtZW50KTtcbiAgfVxuICByZXR1cm4gaHRtbDtcbn1cblxuZnVuY3Rpb24gY2hhbmdlU3R5bGVBbGlnbm1lbnRUb0NsYXNzKGh0bWw6IHN0cmluZykge1xuICBpZiAoaHRtbCkge1xuICAgIGNvbnN0IGRvY3VtZW50OiBEb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoXG4gICAgICBodG1sLFxuICAgICAgJ3RleHQvaHRtbCcsXG4gICAgKTtcbiAgICBbJ3JpZ2h0JywgJ2NlbnRlcicsICdsZWZ0J10uZm9yRWFjaCgoYWxpZ25tZW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGRvY3VtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKGBbc3R5bGUqPSd0ZXh0LWFsaWduOiR7YWxpZ25tZW50fSddYClcbiAgICAgICAgLmZvckVhY2goKHN0eWxlOiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdjbGFzcycsIGBtYXJrZG93bi1hbGlnbi0ke2FsaWdubWVudH1gKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhkb2N1bWVudCk7XG4gIH1cblxuICByZXR1cm4gaHRtbDtcbn1cblxuLy8gU3RyaXBzIGFsbCB0aGUgaHRtbCB0YWdzIGluIHRoZSBodG1sIHNhbmQgcmV0dXJucyB0aGUgdGV4dFxuZnVuY3Rpb24gc3RyaXBBbGxIdG1sVGFncyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHNhbml0aXplZCA9IGlucHV0O1xuICBsZXQgcHJldmlvdXM7XG5cbiAgZG8ge1xuICAgIHByZXZpb3VzID0gc2FuaXRpemVkO1xuICAgIHNhbml0aXplZCA9IHNhbml0aXplZC5yZXBsYWNlKC88W14+XSs+L2csICcnKTtcbiAgfSB3aGlsZSAocHJldmlvdXMgIT09IHNhbml0aXplZCk7XG5cbiAgcmV0dXJuIHNhbml0aXplZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtbWFya2Rvd24nLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gIHByaXZhdGUgX25nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIHByaXZhdGUgX2NvbnRlbnQhOiBzdHJpbmc7XG4gIHByaXZhdGUgX3NpbXBsZUxpbmVCcmVha3MgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaG9zdGVkVXJsITogc3RyaW5nO1xuICBwcml2YXRlIF9hbmNob3IhOiBzdHJpbmc7XG4gIHByaXZhdGUgX3ZpZXdJbml0ID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbGVMaW5rRXh0ZW5zaW9ucyE6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9hbmNob3JMaXN0ZW5lcj86IFZvaWRGdW5jdGlvbjtcbiAgLyoqXG4gICAqIC50ZC1tYXJrZG93biBjbGFzcyBhZGRlZCB0byBob3N0IHNvIDo6bmctZGVlcCBnZXRzIHNjb3BlZC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9ICd0ZC1tYXJrZG93bic7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnQ/OiBzdHJpbmdcbiAgICpcbiAgICogTWFya2Rvd24gZm9ybWF0IGNvbnRlbnQgdG8gYmUgcGFyc2VkIGFzIGh0bWwgbWFya3VwLlxuICAgKlxuICAgKiBlLmcuIFJFQURNRS5tZCBjb250ZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICAvKipcbiAgICogc2ltcGxlTGluZUJyZWFrcz86IHN0cmluZ1xuICAgKlxuICAgKiBTZXRzIHdoZXRoZXIgbmV3bGluZSBjaGFyYWN0ZXJzIGluc2lkZSBwYXJhZ3JhcGhzIGFuZCBzcGFucyBhcmUgcGFyc2VkIGFzIDxici8+LlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaW1wbGVMaW5lQnJlYWtzKHNpbXBsZUxpbmVCcmVha3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaW1wbGVMaW5lQnJlYWtzID0gc2ltcGxlTGluZUJyZWFrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBob3N0ZWRVcmw/OiBzdHJpbmdcbiAgICpcbiAgICogSWYgbWFya2Rvd24gY29udGFpbnMgcmVsYXRpdmUgcGF0aHMsIHRoaXMgaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgY29ycmVjdCB1cmxzLlxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGhvc3RlZFVybChob3N0ZWRVcmw6IHN0cmluZykge1xuICAgIHRoaXMuX2hvc3RlZFVybCA9IGhvc3RlZFVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBhbmNob3I/OiBzdHJpbmdcbiAgICpcbiAgICogQW5jaG9yIHRvIGp1bXAgdG8uXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgYW5jaG9yKGFuY2hvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5fYW5jaG9yID0gYW5jaG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIGV4dGVuc2lvbnMgdG8gbW9uaXRvciBmb3IgaW4gYW5jaG9yIHRhZ3MuIElmIGFuIGFuY2hvcidzIGBocmVmYCBlbmRzXG4gICAqIHdpdGggdGhlc2UgZXh0ZW5zaW9ucywgYW4gZXZlbnQgd2lsbCBiZSBlbWl0dGVkIGluc3RlYWQgb2YgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBjbGljayBhY3Rpb24uXG4gICAqIEV4YW1wbGUgdmFsdWVzOiBbXCIuaXB5bmJcIiwgXCIuemlwXCIsIFwiLmRvY3hcIl1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBmaWxlTGlua0V4dGVuc2lvbnMoZXh0ZW5zaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9maWxlTGlua0V4dGVuc2lvbnMgPSBleHRlbnNpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBhbmNob3IgdGFnIHdpdGggYW4gYGhyZWZgIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWRcbiAgICogZmlsZUxpbmtFeHRlbnNpb25zIGlzIGNsaWNrZWQuIFRoZSBlbWl0dGVkIHZhbHVlIGlzIHRoZSBVUkwgb2YgdGhlIGNsaWNrZWQgYW5jaG9yLlxuICAgKi9cbiAgQE91dHB1dCgpIGZpbGVMaW5rQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VVJMPigpO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBtYXJrZG93biBjb250ZW50IHJlbmRlcmluZyBpcyBmaW5pc2hlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBjb250ZW50UmVhZHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gb25seSBhbmNob3IgY2hhbmdlZFxuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbJ2FuY2hvciddICYmXG4gICAgICAhY2hhbmdlc1snY29udGVudCddICYmXG4gICAgICAhY2hhbmdlc1snc2ltcGxlTGluZUJyZWFrcyddICYmXG4gICAgICAhY2hhbmdlc1snaG9zdGVkVXJsJ11cbiAgICApIHtcbiAgICAgIHNjcm9sbFRvQW5jaG9yKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fYW5jaG9yLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQoXG4gICAgICAgICg8SFRNTEVsZW1lbnQ+dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS50ZXh0Q29udGVudCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3ZpZXdJbml0ID0gdHJ1ZTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB0aGUgYHNjcm9sbFRvQW5jaG9yYCBjYWxscyBgZWxlbWVudC5zY3JvbGxJbnRvVmlld2AsIGEgbmF0aXZlIHN5bmNocm9ub3VzIERPTVxuICAgIC8vIEFQSSBhbmQgaXQgZG9lc24ndCByZXF1aXJlIEFuZ3VsYXIgcnVubmluZyBgQXBwbGljYXRpb25SZWYudGljaygpYCBlYWNoIHRpbWUgdGhlIG1hcmtkb3duIGNvbXBvbmVudCBpcyBjbGlja2VkLlxuICAgIC8vIEhvc3QgbGlzdGVuZXIgKGFkZGVkIHRocm91Z2ggYEBIb3N0TGlzdGVuZXJgKSBjYXVzZSBBbmd1bGFyIHRvIGFkZCBhbiBldmVudCBsaXN0ZW5lciB3aXRoaW4gdGhlIEFuZ3VsYXIgem9uZS5cbiAgICAvLyBJdCBhbHNvIGNhbGxzIGBtYXJrVmlld0RpcnR5KClgIGJlZm9yZSBjYWxsaW5nIHRoZSBhY3R1YWwgbGlzdGVuZXIgKHRoZSBkZWNvcmF0ZWQgY2xhc3MgbWV0aG9kKS5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fYW5jaG9yTGlzdGVuZXIgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+ZXZlbnQuc3JjRWxlbWVudDtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlbGVtZW50Lm1hdGNoZXMoJ2FbaHJlZl0nKSAmJlxuICAgICAgICAgICAgaXNBbmNob3JMaW5rKDxIVE1MQW5jaG9yRWxlbWVudD5lbGVtZW50KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbmNob3JDbGlja3MoZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBlbGVtZW50Lm1hdGNoZXMoJ2FbaHJlZl0nKSAmJlxuICAgICAgICAgICAgaXNGaWxlTGluayg8SFRNTEFuY2hvckVsZW1lbnQ+ZWxlbWVudCwgdGhpcy5fZmlsZUxpbmtFeHRlbnNpb25zKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWxlQW5jaG9yQ2xpY2tzKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYW5jaG9yTGlzdGVuZXI/LigpO1xuICB9XG5cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQodGhpcy5fY29udGVudCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl92aWV3SW5pdCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQoXG4gICAgICAgICg8SFRNTEVsZW1lbnQ+dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS50ZXh0Q29udGVudCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYWwgbWV0aG9kIHRvIHBhcnNlIGEgc3RyaW5nIG1hcmtkb3duIGludG8gSFRNTCBFbGVtZW50cyBhbmQgbG9hZCB0aGVtIGludG8gdGhlIGNvbnRhaW5lclxuICAgKi9cbiAgcHJpdmF0ZSBfbG9hZENvbnRlbnQobWFya2Rvd246IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAobWFya2Rvd24gJiYgbWFya2Rvd24udHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIENsZWFuIGNvbnRhaW5lclxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAgICcnLFxuICAgICAgKTtcbiAgICAgIC8vIFBhcnNlIGh0bWwgc3RyaW5nIGludG8gYWN0dWFsIEhUTUwgZWxlbWVudHMuXG4gICAgICB0aGlzLl9lbGVtZW50RnJvbVN0cmluZyh0aGlzLl9yZW5kZXIobWFya2Rvd24pKTtcbiAgICB9XG4gICAgLy8gVE9ETzogdGltZW91dCByZXF1aXJlZCBzaW5jZSByZXNpemluZyBvZiBodG1sIGVsZW1lbnRzIG9jY3VycyB3aGljaCBjYXVzZXMgYSBjaGFuZ2UgaW4gdGhlIHNjcm9sbCBwb3NpdGlvblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2FuY2hvciwgdHJ1ZSksXG4gICAgICAgIDI1MCxcbiAgICAgICksXG4gICAgKTtcbiAgICB0aGlzLmNvbnRlbnRSZWFkeS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFuY2hvckNsaWNrcyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTCgoPEhUTUxBbmNob3JFbGVtZW50PmV2ZW50LnRhcmdldCkuaHJlZik7XG4gICAgY29uc3QgaGFzaDogc3RyaW5nID0gZGVjb2RlVVJJKHVybC5oYXNoKTtcbiAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGhhc2gsIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGaWxlQW5jaG9yQ2xpY2tzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdXJsOiBVUkwgPSBuZXcgVVJMKCg8SFRNTEFuY2hvckVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5ocmVmKTtcbiAgICB0aGlzLmZpbGVMaW5rQ2xpY2tlZC5lbWl0KHVybCk7XG4gIH1cblxuICBwcml2YXRlIF9lbGVtZW50RnJvbVN0cmluZyhtYXJrdXBTdHI6IHN0cmluZyk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICAvLyBSZW5kZXJlcjIgZG9lc250IGhhdmUgYSBwYXJzaW5nIG1ldGhvZCwgc28gd2UgaGF2ZSB0byBzYW5pdGl6ZSBhbmQgdXNlIFtpbm5lckhUTUxdXG4gICAgLy8gdG8gcGFyc2UgdGhlIHN0cmluZyBpbnRvIERPTSBlbGVtZW50IGZvciBub3cuXG4gICAgY29uc3QgZGl2OiBIVE1MRGl2RWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZGl2KTtcblxuICAgIGNvbnN0IGh0bWw6IHN0cmluZyA9XG4gICAgICB0aGlzLl9kb21TYW5pdGl6ZXIuc2FuaXRpemUoXG4gICAgICAgIFNlY3VyaXR5Q29udGV4dC5TVFlMRSxcbiAgICAgICAgY2hhbmdlU3R5bGVBbGlnbm1lbnRUb0NsYXNzKG1hcmt1cFN0ciksXG4gICAgICApID8/ICcnO1xuXG4gICAgY29uc3QgaHRtbFdpdGhBYnNvbHV0ZUhyZWZzOiBzdHJpbmcgPSBub3JtYWxpemVIdG1sSHJlZnMoXG4gICAgICBodG1sLFxuICAgICAgdGhpcy5faG9zdGVkVXJsLFxuICAgICAgdGhpcy5fZmlsZUxpbmtFeHRlbnNpb25zLFxuICAgICk7XG4gICAgY29uc3QgaHRtbFdpdGhBYnNvbHV0ZUltZ1NyY3M6IHN0cmluZyA9IG5vcm1hbGl6ZUltYWdlU3JjcyhcbiAgICAgIGh0bWxXaXRoQWJzb2x1dGVIcmVmcyxcbiAgICAgIHRoaXMuX2hvc3RlZFVybCxcbiAgICApO1xuICAgIGNvbnN0IGh0bWxXaXRoSGVhZGluZ0lkczogc3RyaW5nID0gYWRkSWRzVG9IZWFkaW5ncyhcbiAgICAgIGh0bWxXaXRoQWJzb2x1dGVJbWdTcmNzLFxuICAgICk7XG4gICAgY29uc3QgaHRtbFdpdGhWaWRlb3M6IFNhZmVIdG1sID0gcmVuZGVyVmlkZW9FbGVtZW50cyhodG1sV2l0aEhlYWRpbmdJZHMpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGRpdiwgJ2lubmVySFRNTCcsIGh0bWxXaXRoVmlkZW9zKTtcbiAgICByZXR1cm4gZGl2O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRyaW0gbGVhZGluZyBhbmQgdHJhaWxpbmcgbmV3bGluZXNcbiAgICBtYXJrZG93biA9IG1hcmtkb3duXG4gICAgICAucmVwbGFjZSgvXihcXHN8XFx0KSpcXG4rL2csICcnKVxuICAgICAgLnJlcGxhY2UoLyhcXHN8XFx0KSpcXG4rKFxcc3xcXHQpKiQvZywgJycpO1xuICAgIC8vIFNwbGl0IG1hcmtkb3duIGJ5IGxpbmUgY2hhcmFjdGVyc1xuICAgIGxldCBsaW5lczogc3RyaW5nW10gPSBtYXJrZG93bi5zcGxpdCgnXFxuJyk7XG5cbiAgICAvLyBjaGVjayBob3cgbXVjaCBpbmRlbnRhdGlvbiBpcyB1c2VkIGJ5IHRoZSBmaXJzdCBhY3R1YWwgbWFya2Rvd24gbGluZVxuICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaCA9IGxpbmVzWzBdLm1hdGNoKC9eKFxcc3xcXHQpKi8pO1xuICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2U6IHN0cmluZyA9IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaFxuICAgICAgPyBmaXJzdExpbmVXaGl0ZXNwYWNlTWF0Y2hbMF1cbiAgICAgIDogJyc7XG5cbiAgICAvLyBSZW1vdmUgYWxsIGluZGVudGF0aW9uIHNwYWNlcyBzbyBtYXJrZG93biBjYW4gYmUgcGFyc2VkIGNvcnJlY3RseVxuICAgIGNvbnN0IHN0YXJ0aW5nV2hpdGVzcGFjZVJlZ2V4ID0gbmV3IFJlZ0V4cCgnXicgKyBmaXJzdExpbmVXaGl0ZXNwYWNlKTtcbiAgICBsaW5lcyA9IGxpbmVzLm1hcChmdW5jdGlvbiAobGluZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBsaW5lLnJlcGxhY2Uoc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXgsICcnKTtcbiAgICB9KTtcblxuICAgIC8vIEpvaW4gbGluZXMgYWdhaW4gd2l0aCBsaW5lIGNoYXJhY3RlcnNcbiAgICBjb25zdCBtYXJrZG93blRvUGFyc2U6IHN0cmluZyA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuXG4gICAgLy8gQ29udmVydCBtYXJrZG93biBpbnRvIGh0bWxcbiAgICBjb25zdCBjb252ZXJ0ZXI6IHNob3dkb3duLkNvbnZlcnRlciA9IG5ldyBzaG93ZG93bi5Db252ZXJ0ZXIoKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdnaENvZGVCbG9ja3MnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdnaENvbXBhdGlibGVIZWFkZXJJZCcsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ3Rhc2tsaXN0cycsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ3RhYmxlcycsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ2xpdGVyYWxNaWRXb3JkVW5kZXJzY29yZXMnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdzaW1wbGVMaW5lQnJlYWtzJywgdGhpcy5fc2ltcGxlTGluZUJyZWFrcyk7XG4gICAgY29udmVydGVyLnNldE9wdGlvbignZW1vamknLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdkaXNhYmxlRm9yY2VkNFNwYWNlc0luZGVudGVkU3VibGlzdHMnLCB0cnVlKTtcbiAgICByZXR1cm4gY29udmVydGVyLm1ha2VIdG1sKG1hcmtkb3duVG9QYXJzZSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==","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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"}
|
|
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/**\n * Checks whether text contains markdown syntax patterns.\n */\nexport function containsMarkdown(text) {\n const markdownPatterns = [\n /(?:^|\\n)\\s{0,3}#{1,6}\\s/, // ATX headings\n /(?:^|\\n)\\s{0,3}[-*+]\\s/, // unordered list items\n /(?:^|\\n)\\s{0,3}\\d+\\.\\s/, // ordered list items\n /(?:^|\\n)\\s{0,3}>\\s/, // blockquotes\n /\\*\\*.+?\\*\\*/s, // bold\n /\\[.+?\\]\\(.+?\\)/s, // links\n /!\\[.*?\\]\\(.+?\\)/s, // images\n /`.+?`/, // inline code\n /(?:^|\\n)\\s{0,3}```/, // fenced code blocks\n /(?:^|\\n)\\s{0,3}---\\s*(?:$|\\n)/, // horizontal rules\n ];\n return markdownPatterns.some((pattern) => pattern.test(text));\n}\n/**\n * Finds the index of the matching closing tag, handling nested same-name tags.\n */\nexport function findClosingTagIndex(str, tagName, searchFrom) {\n const openPattern = new RegExp(`<${tagName}(?:\\\\s[^>]*)?>`, 'gi');\n const closePattern = new RegExp(`</${tagName}\\\\s*>`, 'gi');\n let depth = 1;\n let pos = searchFrom;\n while (pos < str.length && depth > 0) {\n openPattern.lastIndex = pos;\n closePattern.lastIndex = pos;\n // we look for open and close tags starting from the end of the last match\n const nextOpen = openPattern.exec(str);\n const nextClose = closePattern.exec(str);\n if (!nextClose)\n return -1;\n // if we find an open tag before a close tag, it means we have a nested tag, so we increase the depth\n if (nextOpen && nextOpen.index < nextClose.index) {\n depth++;\n pos = nextOpen.index + nextOpen[0].length;\n }\n else {\n depth--;\n if (depth === 0)\n return nextClose.index;\n pos = nextClose.index + nextClose[0].length;\n }\n }\n return -1;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duL3NyYy9saWIvbWFya2Rvd24tdXRpbHMvbWFya2Rvd24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVc7SUFDM0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFrQjtJQUNuRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLGlCQUFpQixDQUN0QixHQUFHO2FBQ0EsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDMUIsZ0ZBQWdGO1lBQ2hGLHlCQUF5QjtZQUN6QiwwRkFBMEY7YUFDekYsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEVBQUUsQ0FBQyxDQUN2RCxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixLQUFrQixFQUNsQixNQUFjLEVBQ2QsU0FBa0I7SUFFbEIsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDcEIsTUFBTSxnQkFBZ0IsR0FBVyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxlQUFlLEdBQW1CLElB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QU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFMUIscUdBQXFHO1FBQ3JHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pELEtBQUssRUFBRSxDQUFDO1lBQ1IsR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxLQUFLLEtBQUssQ0FBQztnQkFBRSxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDeEMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUxlYWRpbmdIYXNoKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvXiMrLywgJycpO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nSGFzaChzdHI6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICBpZiAoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8jLiovLCAnJyk7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuSGVhZGluZ0lkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN0cikge1xuICAgIHJldHVybiByZW1vdmVMZWFkaW5nSGFzaChcbiAgICAgIHN0clxuICAgICAgICAucmVwbGFjZSgvKF98LXxcXHMpKy9nLCAnJylcbiAgICAgICAgLy8gUmVtb3ZlIGNlcnRhaW4gc3BlY2lhbCBjaGFycyB0byBjcmVhdGUgaGVhZGluZyBpZHMgc2ltaWxhciB0byB0aG9zZSBpbiBnaXRodWJcbiAgICAgICAgLy8gYm9ycm93ZWQgZnJvbSBzaG93ZG93blxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2hvd2Rvd25qcy9zaG93ZG93bi9ibG9iL21haW4vc3JjL3N1YlBhcnNlcnMvbWFrZWh0bWwvaGVhZGVycy5qcyNMOTRcbiAgICAgICAgLnJlcGxhY2UoL1smKyQsLzo7PT9AXCIje318XsKofltcXF1gXFxcXCopKCUuISc8Pl0vZywgJycpLFxuICAgICkudG9Mb3dlckNhc2UoKTtcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY3JvbGxUb0FuY2hvcihcbiAgc2NvcGU6IEhUTUxFbGVtZW50LFxuICBhbmNob3I6IHN0cmluZyxcbiAgdHJ5UGFyZW50OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIGlmIChzY29wZSAmJiBhbmNob3IpIHtcbiAgICBjb25zdCBub3JtYWxpemVkQW5jaG9yOiBzdHJpbmcgPSBnZW5IZWFkaW5nSWQoYW5jaG9yKTtcbiAgICBsZXQgaGVhZGluZ1RvSnVtcFRvOiBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3QgaGVhZGluZ1dpdGhpbkNvbXBvbmVudCA9IHNjb3BlLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBgW2lkPVwiJHtub3JtYWxpemVkQW5jaG9yfVwiXWAsXG4gICAgKTtcblxuICAgIGlmIChoZWFkaW5nV2l0aGluQ29tcG9uZW50KSB7XG4gICAgICBoZWFkaW5nVG9KdW1wVG8gPSBoZWFkaW5nV2l0aGluQ29tcG9uZW50O1xuICAgIH0gZWxzZSBpZiAodHJ5UGFyZW50KSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBzY29wZS5wYXJlbnRFbGVtZW50O1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBoZWFkaW5nVG9KdW1wVG8gPSBwYXJlbnQucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtub3JtYWxpemVkQW5jaG9yfVwiXWApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaGVhZGluZ1RvSnVtcFRvKSB7XG4gICAgICBoZWFkaW5nVG9KdW1wVG8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ2F1dG8nIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQW5jaG9yTGluayhhbmNob3I/OiBIVE1MQW5jaG9yRWxlbWVudCk6IGJvb2xlYW4ge1xuICBpZiAoYW5jaG9yKSB7XG4gICAgY29uc3QgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBpZiAoaHJlZikge1xuICAgICAgcmV0dXJuIGhyZWYuc3RhcnRzV2l0aCgnIycpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpbGVMaW5rKFxuICBhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50LFxuICBmaWxlRXh0ZW5zaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgaWYgKGZpbGVFeHRlbnNpb25zICYmIGZpbGVFeHRlbnNpb25zLmxlbmd0aCkge1xuICAgIGNvbnN0IGhyZWYgPSBhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJyk7XG4gICAgaWYgKGhyZWYpIHtcbiAgICAgIHJldHVybiBmaWxlRXh0ZW5zaW9ucy5zb21lKChmaWxlRXh0ZW5zaW9uKSA9PlxuICAgICAgICBocmVmLmVuZHNXaXRoKGZpbGVFeHRlbnNpb24pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5jb25zdCBSQVdfR0lUSFVCX0hPU1ROQU1FID0gJ3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20nO1xuXG5leHBvcnQgZnVuY3Rpb24gcmF3R2l0aHViSHJlZihnaXRodWJIcmVmPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGdpdGh1YkhyZWYpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsOiBVUkwgPSBuZXcgVVJMKGdpdGh1YkhyZWYpO1xuICAgICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gUkFXX0dJVEhVQl9IT1NUTkFNRSkge1xuICAgICAgICByZXR1cm4gdXJsLmhyZWY7XG4gICAgICB9IGVsc2UgaWYgKGlzR2l0aHViSHJlZihnaXRodWJIcmVmKSkge1xuICAgICAgICB1cmwuaG9zdG5hbWUgPSBSQVdfR0lUSFVCX0hPU1ROQU1FO1xuICAgICAgICB1cmwucGF0aG5hbWUgPSB1cmwucGF0aG5hbWUuc3BsaXQoJy9ibG9iJywgMikuam9pbignJyk7XG4gICAgICAgIHJldHVybiB1cmwuaHJlZjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNHaXRodWJIcmVmKGhyZWY/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB0ZW1wOiBVUkwgPSBuZXcgVVJMKGhyZWYgPz8gJycpO1xuICAgIHJldHVybiB0ZW1wLmhvc3RuYW1lID09PSAnZ2l0aHViLmNvbSc7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSYXdHaXRodWJIcmVmKGhyZWYgPSAnJyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IHRlbXA6IFVSTCA9IG5ldyBVUkwoaHJlZik7XG4gICAgcmV0dXJuIHRlbXAuaG9zdG5hbWUgPT09IFJBV19HSVRIVUJfSE9TVE5BTUU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyVmlkZW9FbGVtZW50cyhodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB5dExvbmdFbWJlZCA9XG4gICAgLyFcXFsoPzooPzpodHRwcz86KT8oPzpcXC9cXC8pPykoPzooPzp3d3cpPy4pP3lvdXR1YmUuKD86Lis/KVxcLyg/Oig/OmVtYmVkXFwvKShbXFx3LV17MTF9KShcXD9bXFx3JTstXSsoPzo9W1xcdyU7LV0rKT8oPzomW1xcdyU7LV0rKD86PVtcXHclOy1dKyk/KSopPyldL2dpO1xuICBjb25zdCB5dExvbmdXYXRjaCA9XG4gICAgLyFcXFsoPzooPzpodHRwcz86KT8oPzpcXC9cXC8pPykoPzooPzp3d3cpPy4pP3lvdXR1YmUuKD86Lis/KVxcLyg/Oig/OndhdGNoXFw/dj0pKFtcXHctXXsxMX0pKCZbXFx3JTstXSsoPzo9W1xcdyU7LV0rKT8pKildL2dpO1xuICBjb25zdCB5dFNob3J0ID1cbiAgICAvIVxcWyg/Oig/Omh0dHBzPzopPyg/OlxcL1xcLyk/KT95b3V0dS5iZVxcLyhbXFx3LV17MTF9KVxcPz8oW1xcdyU7LV0rKD86PVtcXHclOy1dKyk/KD86JltcXHclOy1dKyg/Oj1bXFx3JTstXSspPykqKT9dL2dpO1xuICBjb25zdCB5dFBsYXlsaXN0ID1cbiAgICAvIVxcWyg/Oig/Omh0dHBzPzopPyg/OlxcL1xcLyk/KSg/Oig/Ond3dyk/Lik/eW91dHViZS4oPzouKz8pXFwvKD86KD86cGxheWxpc3RcXD9saXN0PSkoW1xcdy1dezM0fSkoJltcXHclOy1dKyg/Oj1bXFx3JTstXSspPykqKV0vZ2k7XG5cbiAgZnVuY3Rpb24gY29udmVydChtYXRjaDogc3RyaW5nLCBpZDogc3RyaW5nLCBmbGFnczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoZmxhZ3MpIHtcbiAgICAgIGlkICs9ICc/JyArIGZsYWdzLnJlcGxhY2UoLyZhbXA7L2dpLCAnJicpO1xuICAgIH1cbiAgICByZXR1cm4gYDxpZnJhbWUgYWxsb3c9XCJmdWxsc2NyZWVuXCIgZnJhbWVib3JkZXI9XCIwXCIgc3JjPVwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtpZH1cIj48L2lmcmFtZT5gO1xuICB9XG4gIGZ1bmN0aW9uIGNvbnZlcnRQTChtYXRjaDogc3RyaW5nLCBpZDogc3RyaW5nLCBmbGFnczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoZmxhZ3MpIHtcbiAgICAgIGlkICs9IGZsYWdzLnJlcGxhY2UoLyZhbXA7L2dpLCAnJicpO1xuICAgIH1cbiAgICByZXR1cm4gYDxpZnJhbWUgYWxsb3c9XCJmdWxsc2NyZWVuXCIgZnJhbWVib3JkZXI9XCIwXCIgc3JjPVwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvdmlkZW9zZXJpZXM/bGlzdD0ke2lkfVwiPjwvaWZyYW1lPmA7XG4gIH1cblxuICByZXR1cm4gaHRtbFxuICAgIC5yZXBsYWNlKHl0TG9uZ1dhdGNoLCBjb252ZXJ0KVxuICAgIC5yZXBsYWNlKHl0TG9uZ0VtYmVkLCBjb252ZXJ0KVxuICAgIC5yZXBsYWNlKHl0U2hvcnQsIGNvbnZlcnQpXG4gICAgLnJlcGxhY2UoeXRQbGF5bGlzdCwgY29udmVydFBMKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0ZXh0IGNvbnRhaW5zIG1hcmtkb3duIHN5bnRheCBwYXR0ZXJucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zTWFya2Rvd24odGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IG1hcmtkb3duUGF0dGVybnMgPSBbXG4gICAgLyg/Ol58XFxuKVxcc3swLDN9I3sxLDZ9XFxzLywgLy8gQVRYIGhlYWRpbmdzXG4gICAgLyg/Ol58XFxuKVxcc3swLDN9Wy0qK11cXHMvLCAvLyB1bm9yZGVyZWQgbGlzdCBpdGVtc1xuICAgIC8oPzpefFxcbilcXHN7MCwzfVxcZCtcXC5cXHMvLCAvLyBvcmRlcmVkIGxpc3QgaXRlbXNcbiAgICAvKD86XnxcXG4pXFxzezAsM30+XFxzLywgLy8gYmxvY2txdW90ZXNcbiAgICAvXFwqXFwqLis/XFwqXFwqL3MsIC8vIGJvbGRcbiAgICAvXFxbLis/XFxdXFwoLis/XFwpL3MsIC8vIGxpbmtzXG4gICAgLyFcXFsuKj9cXF1cXCguKz9cXCkvcywgLy8gaW1hZ2VzXG4gICAgL2AuKz9gLywgLy8gaW5saW5lIGNvZGVcbiAgICAvKD86XnxcXG4pXFxzezAsM31gYGAvLCAvLyBmZW5jZWQgY29kZSBibG9ja3NcbiAgICAvKD86XnxcXG4pXFxzezAsM30tLS1cXHMqKD86JHxcXG4pLywgLy8gaG9yaXpvbnRhbCBydWxlc1xuICBdO1xuICByZXR1cm4gbWFya2Rvd25QYXR0ZXJucy5zb21lKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnRlc3QodGV4dCkpO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hpbmcgY2xvc2luZyB0YWcsIGhhbmRsaW5nIG5lc3RlZCBzYW1lLW5hbWUgdGFncy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDbG9zaW5nVGFnSW5kZXgoXG4gIHN0cjogc3RyaW5nLFxuICB0YWdOYW1lOiBzdHJpbmcsXG4gIHNlYXJjaEZyb206IG51bWJlcixcbik6IG51bWJlciB7XG4gIGNvbnN0IG9wZW5QYXR0ZXJuID0gbmV3IFJlZ0V4cChgPCR7dGFnTmFtZX0oPzpcXFxcc1tePl0qKT8+YCwgJ2dpJyk7XG4gIGNvbnN0IGNsb3NlUGF0dGVybiA9IG5ldyBSZWdFeHAoYDwvJHt0YWdOYW1lfVxcXFxzKj5gLCAnZ2knKTtcbiAgbGV0IGRlcHRoID0gMTtcbiAgbGV0IHBvcyA9IHNlYXJjaEZyb207XG5cbiAgd2hpbGUgKHBvcyA8IHN0ci5sZW5ndGggJiYgZGVwdGggPiAwKSB7XG4gICAgb3BlblBhdHRlcm4ubGFzdEluZGV4ID0gcG9zO1xuICAgIGNsb3NlUGF0dGVybi5sYXN0SW5kZXggPSBwb3M7XG5cbiAgICAvLyB3ZSBsb29rIGZvciBvcGVuIGFuZCBjbG9zZSB0YWdzIHN0YXJ0aW5nIGZyb20gdGhlIGVuZCBvZiB0aGUgbGFzdCBtYXRjaFxuICAgIGNvbnN0IG5leHRPcGVuID0gb3BlblBhdHRlcm4uZXhlYyhzdHIpO1xuICAgIGNvbnN0IG5leHRDbG9zZSA9IGNsb3NlUGF0dGVybi5leGVjKHN0cik7XG5cbiAgICBpZiAoIW5leHRDbG9zZSkgcmV0dXJuIC0xO1xuXG4gICAgLy8gaWYgd2UgZmluZCBhbiBvcGVuIHRhZyBiZWZvcmUgYSBjbG9zZSB0YWcsIGl0IG1lYW5zIHdlIGhhdmUgYSBuZXN0ZWQgdGFnLCBzbyB3ZSBpbmNyZWFzZSB0aGUgZGVwdGhcbiAgICBpZiAobmV4dE9wZW4gJiYgbmV4dE9wZW4uaW5kZXggPCBuZXh0Q2xvc2UuaW5kZXgpIHtcbiAgICAgIGRlcHRoKys7XG4gICAgICBwb3MgPSBuZXh0T3Blbi5pbmRleCArIG5leHRPcGVuWzBdLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVwdGgtLTtcbiAgICAgIGlmIChkZXB0aCA9PT0gMCkgcmV0dXJuIG5leHRDbG9zZS5pbmRleDtcbiAgICAgIHBvcyA9IG5leHRDbG9zZS5pbmRleCArIG5leHRDbG9zZVswXS5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuIl19","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, findClosingTagIndex, containsMarkdown, } 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/**\n * Adds markdown=\"1\" attribute to HTML block-level tags so that\n * showdown parses any markdown nested inside them.\n * Only adds the attribute when the tag's inner content contains markdown syntax.\n */\nfunction addMarkdownAttrToHtmlTags(markdown) {\n const voidElements = new Set([\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ]);\n const openTagRegex = /<([A-Za-z][A-Za-z0-9-]*)(\\s[^>]*)?\\s*>/g;\n let result = '';\n let lastIndex = 0;\n let match;\n while ((match = openTagRegex.exec(markdown)) !== null) {\n const fullMatch = match[0];\n const tagName = match[1];\n const attrs = match[2] || '';\n const tag = tagName.toLowerCase();\n // Skip void elements, self-closing tags, or tags with existing markdown attr\n if (voidElements.has(tag) ||\n fullMatch.endsWith('/>') ||\n /markdown\\s*=/.test(attrs)) {\n continue;\n }\n const contentStart = match.index + fullMatch.length;\n const closingTagIndex = findClosingTagIndex(markdown, tagName, contentStart);\n if (closingTagIndex === -1)\n continue;\n const innerContent = markdown.slice(contentStart, closingTagIndex);\n if (containsMarkdown(innerContent)) {\n result += markdown.slice(lastIndex, match.index);\n result += fullMatch.replace(new RegExp(`<${tagName}(\\\\s|>)`), `<${tagName} markdown=\"1\"$1`);\n lastIndex = contentStart;\n }\n }\n result += markdown.slice(lastIndex);\n return result;\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.STYLE, 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('ghCompatibleHeaderId', 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 converter.setOption('disableForced4SpacesIndentedSublists', true);\n const markdownWithAttr = addMarkdownAttrToHtmlTags(markdownToParse);\n const html = converter.makeHtml(markdownWithAttr);\n return html;\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: 292 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi9zcmMvbGliL21hcmtkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24vc3JjL2xpYi9tYXJrZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsZUFBZSxFQUdmLFdBQVcsRUFDWCxNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFlBQVksRUFDWixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixZQUFZLEVBQ1osZUFBZSxFQUNmLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLGdCQUFnQixHQUNqQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sS0FBSyxRQUFRLE1BQU0sVUFBVSxDQUFDOzs7QUFFckMsU0FBUyxhQUFhLENBQUMsV0FBbUI7SUFDeEMsa0NBQWtDO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQsbUNBQW1DO0FBQ25DLHlCQUF5QjtBQUN6QixTQUFTLFlBQVksQ0FBQyxXQUFtQixFQUFFLFlBQW9CO0lBQzdELElBQUksV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLElBQUksYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxVQUFV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QUMsU0FBUyxFQUFFLENBQUM7UUFDL0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxTQUFTLENBQUMsU0FBUyxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELFNBQVMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxzQ0FBc0MsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRSxNQUFNLGdCQUFnQixHQUFXLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7NkdBN1BVLG1CQUFtQjs2REFBbkIsbUJBQW1CO1lBQW5CLHdCQUFtQjs7O1lDblNoQyxrQkFBeUI7OztpRkRtU1osbUJBQW1CO2NBTC9CLFNBQVM7MkJBQ0UsYUFBYTs7a0JBc0J0QixXQUFXO21CQUFDLE9BQU87O2tCQVNuQixLQUFLOztrQkFXTCxLQUFLOztrQkFXTCxLQUFLOztrQkFXTCxLQUFLOztrQkFVTCxLQUFLOztrQkFTTCxNQUFNOztrQkFNTixNQUFNOztrRkFyRkksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMixcbiAgU2VjdXJpdHlDb250ZXh0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEhvc3RCaW5kaW5nLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIHNjcm9sbFRvQW5jaG9yLFxuICBnZW5IZWFkaW5nSWQsXG4gIGlzQW5jaG9yTGluayxcbiAgcmVtb3ZlVHJhaWxpbmdIYXNoLFxuICByYXdHaXRodWJIcmVmLFxuICBpc0dpdGh1YkhyZWYsXG4gIGlzUmF3R2l0aHViSHJlZixcbiAgcmVuZGVyVmlkZW9FbGVtZW50cyxcbiAgaXNGaWxlTGluayxcbiAgZmluZENsb3NpbmdUYWdJbmRleCxcbiAgY29udGFpbnNNYXJrZG93bixcbn0gZnJvbSAnLi9tYXJrZG93bi11dGlscy9tYXJrZG93bi11dGlscyc7XG5cbmltcG9ydCAqIGFzIHNob3dkb3duIGZyb20gJ3Nob3dkb3duJztcblxuZnVuY3Rpb24gaXNBYnNvbHV0ZVVybChjdXJyZW50SHJlZjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byBjaGVjayB1cmxcbiAgY29uc3QgUmdFeHAgPSBuZXcgUmVnRXhwKCdeKD86W2Etel0rOik/Ly8nLCAnaScpO1xuICByZXR1cm4gUmdFeHAudGVzdChjdXJyZW50SHJlZik7XG59XG5cbi8vIFRPRE86IGFzc3VtZXMgaXQgaXMgYSBnaXRodWIgdXJsXG4vLyBhbGxvdyBvdmVycmlkZSBzb21laG93XG5mdW5jdGlvbiBnZW5lcmF0ZUhyZWYoY3VycmVudEhyZWY6IHN0cmluZywgcmVsYXRpdmVIcmVmOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoY3VycmVudEhyZWYgJiYgcmVsYXRpdmVIcmVmKSB7XG4gICAgaWYgKGlzQWJzb2x1dGVVcmwoY3VycmVudEhyZWYpKSB7XG4gICAgICBjb25zdCBjdXJyZW50VXJsOiBVUkwgPSBuZXcgVVJMKGN1cnJlbnRIcmVmKTtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IGN1cnJlbnRVcmwucGF0aG5hbWVcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLnNsaWNlKDEsIC0xKVxuICAgICAgICAuam9pbignLycpO1xuICAgICAgY29uc3QgY29ycmVjdFVybDogVVJMID0gbmV3IFVSTChjdXJyZW50SHJlZik7XG5cbiAgICAgIGlmIChyZWxhdGl2ZUhyZWYuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIC8vIHVybCBpcyByZWxhdGl2ZSB0byB0b3AgbGV2ZWxcbiAgICAgICAgY29uc3Qgb3JnQW5kUmVwbzogc3RyaW5nID0gcGF0aC5zcGxpdCgnLycpLnNsaWNlKDAsIDMpLmpvaW4oJy8nKTtcbiAgICAgICAgY29ycmVjdFVybC5wYXRobmFtZSA9IGAke29yZ0FuZFJlcG99JHtyZWxhdGl2ZUhyZWZ9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvcnJlY3RVcmwucGF0aG5hbWUgPSBgJHtwYXRofS8ke3JlbGF0aXZlSHJlZn1gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvcnJlY3RVcmwuaHJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aDogc3RyaW5nID0gY3VycmVudEhyZWYuc3BsaXQoJy8nKS5zbGljZSgwLCAtMSkuam9pbignLycpO1xuXG4gICAgICBpZiAocmVsYXRpdmVIcmVmLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICByZXR1cm4gYCR7cGF0aH0ke3JlbGF0aXZlSHJlZn1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGAke3BhdGh9LyR7cmVsYXRpdmVIcmVmfWA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSHRtbEhyZWZzKFxuICBodG1sOiBzdHJpbmcsXG4gIGN1cnJlbnRIcmVmOiBzdHJpbmcsXG4gIGZpbGVMaW5rRXh0ZW5zaW9ucz86IHN0cmluZ1tdLFxuKTogc3RyaW5nIHtcbiAgaWYgKGN1cnJlbnRIcmVmKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MQW5jaG9yRWxlbWVudD4oJ2FbaHJlZl0nKVxuICAgICAgLmZvckVhY2goKGxpbms6IEhUTUxBbmNob3JFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTChsaW5rLmhyZWYpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbEhhc2g6IHN0cmluZyA9IHVybC5oYXNoO1xuICAgICAgICBjb25zdCBpc0ZpbGVBbmNob3JMaW5rID0gaXNGaWxlTGluayhsaW5rLCBmaWxlTGlua0V4dGVuc2lvbnMpO1xuICAgICAgICBpZiAoaXNBbmNob3JMaW5rKGxpbmspKSB7XG4gICAgICAgICAgaWYgKG9yaWdpbmFsSGFzaCkge1xuICAgICAgICAgICAgdXJsLmhhc2ggPSBnZW5IZWFkaW5nSWQob3JpZ2luYWxIYXNoKTtcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHVybC5oYXNoO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh1cmwuaG9zdCA9PT0gd2luZG93LmxvY2F0aW9uLmhvc3QpIHtcbiAgICAgICAgICAvLyBob3N0cyBtYXRjaCwgbWVhbmluZyBVUkwgTUlHSFQgaGF2ZSBiZWVuIG1hbGZvcm1lZCBieSBzaG93ZG93blxuICAgICAgICAgIC8vIHVybCBpcyBhIHJlbGF0aXZlIHVybCBvciBqdXN0IGEgbGluayB0byBhIHBhcnQgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgaWYgKHVybC5wYXRobmFtZS5lbmRzV2l0aCgnLm1kJykgfHwgaXNGaWxlQW5jaG9yTGluaykge1xuICAgICAgICAgICAgLy8gb25seSBjaGVjayAubWQgdXJscyBvciB1cmxzIGVuZGluZyB3aXRoIHRoZSBmaWxlTGlua0V4dGVuc2lvbnNcblxuICAgICAgICAgICAgY29uc3QgaHJlZldpdGhvdXRIYXNoOiBzdHJpbmcgPSByZW1vdmVUcmFpbGluZ0hhc2goXG4gICAgICAgICAgICAgIGxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJyksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB1cmwuaHJlZiA9IGdlbmVyYXRlSHJlZihjdXJyZW50SHJlZiwgaHJlZldpdGhvdXRIYXNoKTtcblxuICAgICAgICAgICAgaWYgKG9yaWdpbmFsSGFzaCkge1xuICAgICAgICAgICAgICB1cmwuaGFzaCA9IGdlbkhlYWRpbmdJZChvcmlnaW5hbEhhc2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluay5ocmVmID0gdXJsLmhyZWY7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmsudGFyZ2V0ID0gaXNGaWxlQW5jaG9yTGluayA/ICdfc2VsZicgOiAnX2JsYW5rJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB1cmwgaXMgYWJzb2x1dGVcbiAgICAgICAgICBpZiAodXJsLnBhdGhuYW1lLmVuZHNXaXRoKCcubWQnKSkge1xuICAgICAgICAgICAgaWYgKG9yaWdpbmFsSGFzaCkge1xuICAgICAgICAgICAgICB1cmwuaGFzaCA9IGdlbkhlYWRpbmdJZChvcmlnaW5hbEhhc2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluay5ocmVmID0gdXJsLmhyZWY7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmsudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVJbWFnZVNyY3MoaHRtbDogc3RyaW5nLCBjdXJyZW50SHJlZjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGN1cnJlbnRIcmVmKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MSW1hZ2VFbGVtZW50PignaW1nW3NyY10nKVxuICAgICAgLmZvckVhY2goKGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHNyYyA9IGltYWdlLmdldEF0dHJpYnV0ZSgnc3JjJykgPz8gJyc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC1leHByZXNzaW9uICovXG4gICAgICAgICAgbmV3IFVSTChzcmMpO1xuICAgICAgICAgIGlmIChpc0dpdGh1YkhyZWYoc3JjKSkge1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gcmF3R2l0aHViSHJlZihzcmMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgaW1hZ2Uuc3JjID0gZ2VuZXJhdGVIcmVmKFxuICAgICAgICAgICAgaXNHaXRodWJIcmVmKGN1cnJlbnRIcmVmKVxuICAgICAgICAgICAgICA/IHJhd0dpdGh1YkhyZWYoY3VycmVudEhyZWYpXG4gICAgICAgICAgICAgIDogY3VycmVudEhyZWYsXG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBnaCBzdmdzIG5lZWQgdG8gaGF2ZSA/c2FuaXRpemU9dHJ1ZVxuICAgICAgICBpZiAoaXNSYXdHaXRodWJIcmVmKGltYWdlLnNyYykpIHtcbiAgICAgICAgICBjb25zdCB1cmw6IFVSTCA9IG5ldyBVUkwoaW1hZ2Uuc3JjKTtcbiAgICAgICAgICBpZiAodXJsLnBhdGhuYW1lLmVuZHNXaXRoKCcuc3ZnJykpIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdzYW5pdGl6ZScsICd0cnVlJyk7XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSB1cmwuaHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiBhZGRJZHNUb0hlYWRpbmdzKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChodG1sKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvckFsbCgnaDEsIGgyLCBoMywgaDQsIGg1LCBoNicpXG4gICAgICAuZm9yRWFjaCgoaGVhZGluZzogRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpcHBlZElubmVySFRNTCA9IHN0cmlwQWxsSHRtbFRhZ3MoaGVhZGluZy5pbm5lckhUTUwpO1xuICAgICAgICBjb25zdCBpZDogc3RyaW5nID0gZ2VuSGVhZGluZ0lkKHN0cmlwcGVkSW5uZXJIVE1MKTtcbiAgICAgICAgaGVhZGluZy5zZXRBdHRyaWJ1dGUoJ2lkJywgaWQpO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiBjaGFuZ2VTdHlsZUFsaWdubWVudFRvQ2xhc3MoaHRtbDogc3RyaW5nKSB7XG4gIGlmIChodG1sKSB7XG4gICAgY29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgIGh0bWwsXG4gICAgICAndGV4dC9odG1sJyxcbiAgICApO1xuICAgIFsncmlnaHQnLCAnY2VudGVyJywgJ2xlZnQnXS5mb3JFYWNoKChhbGlnbm1lbnQ6IHN0cmluZykgPT4ge1xuICAgICAgZG9jdW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoYFtzdHlsZSo9J3RleHQtYWxpZ246JHthbGlnbm1lbnR9J11gKVxuICAgICAgICAuZm9yRWFjaCgoc3R5bGU6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgYG1hcmtkb3duLWFsaWduLSR7YWxpZ25tZW50fWApO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY3VtZW50KTtcbiAgfVxuXG4gIHJldHVybiBodG1sO1xufVxuXG4vKipcbiAqIEFkZHMgbWFya2Rvd249XCIxXCIgYXR0cmlidXRlIHRvIEhUTUwgYmxvY2stbGV2ZWwgdGFncyBzbyB0aGF0XG4gKiBzaG93ZG93biBwYXJzZXMgYW55IG1hcmtkb3duIG5lc3RlZCBpbnNpZGUgdGhlbS5cbiAqIE9ubHkgYWRkcyB0aGUgYXR0cmlidXRlIHdoZW4gdGhlIHRhZydzIGlubmVyIGNvbnRlbnQgY29udGFpbnMgbWFya2Rvd24gc3ludGF4LlxuICovXG5mdW5jdGlvbiBhZGRNYXJrZG93bkF0dHJUb0h0bWxUYWdzKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB2b2lkRWxlbWVudHMgPSBuZXcgU2V0KFtcbiAgICAnYXJlYScsXG4gICAgJ2Jhc2UnLFxuICAgICdicicsXG4gICAgJ2NvbCcsXG4gICAgJ2VtYmVkJyxcbiAgICAnaHInLFxuICAgICdpbWcnLFxuICAgICdpbnB1dCcsXG4gICAgJ2xpbmsnLFxuICAgICdtZXRhJyxcbiAgICAncGFyYW0nLFxuICAgICdzb3VyY2UnLFxuICAgICd0cmFjaycsXG4gICAgJ3dicicsXG4gIF0pO1xuXG4gIGNvbnN0IG9wZW5UYWdSZWdleCA9IC88KFtBLVphLXpdW0EtWmEtejAtOS1dKikoXFxzW14+XSopP1xccyo+L2c7XG4gIGxldCByZXN1bHQgPSAnJztcbiAgbGV0IGxhc3RJbmRleCA9IDA7XG4gIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcblxuICB3aGlsZSAoKG1hdGNoID0gb3BlblRhZ1JlZ2V4LmV4ZWMobWFya2Rvd24pKSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGZ1bGxNYXRjaCA9IG1hdGNoWzBdO1xuICAgIGNvbnN0IHRhZ05hbWUgPSBtYXRjaFsxXTtcbiAgICBjb25zdCBhdHRycyA9IG1hdGNoWzJdIHx8ICcnO1xuICAgIGNvbnN0IHRhZyA9IHRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIFNraXAgdm9pZCBlbGVtZW50cywgc2VsZi1jbG9zaW5nIHRhZ3MsIG9yIHRhZ3Mgd2l0aCBleGlzdGluZyBtYXJrZG93biBhdHRyXG4gICAgaWYgKFxuICAgICAgdm9pZEVsZW1lbnRzLmhhcyh0YWcpIHx8XG4gICAgICBmdWxsTWF0Y2guZW5kc1dpdGgoJy8+JykgfHxcbiAgICAgIC9tYXJrZG93blxccyo9Ly50ZXN0KGF0dHJzKVxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudFN0YXJ0ID0gbWF0Y2guaW5kZXggKyBmdWxsTWF0Y2gubGVuZ3RoO1xuICAgIGNvbnN0IGNsb3NpbmdUYWdJbmRleCA9IGZpbmRDbG9zaW5nVGFnSW5kZXgoXG4gICAgICBtYXJrZG93bixcbiAgICAgIHRhZ05hbWUsXG4gICAgICBjb250ZW50U3RhcnQsXG4gICAgKTtcblxuICAgIGlmIChjbG9zaW5nVGFnSW5kZXggPT09IC0xKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGlubmVyQ29udGVudCA9IG1hcmtkb3duLnNsaWNlKGNvbnRlbnRTdGFydCwgY2xvc2luZ1RhZ0luZGV4KTtcblxuICAgIGlmIChjb250YWluc01hcmtkb3duKGlubmVyQ29udGVudCkpIHtcbiAgICAgIHJlc3VsdCArPSBtYXJrZG93bi5zbGljZShsYXN0SW5kZXgsIG1hdGNoLmluZGV4KTtcbiAgICAgIHJlc3VsdCArPSBmdWxsTWF0Y2gucmVwbGFjZShcbiAgICAgICAgbmV3IFJlZ0V4cChgPCR7dGFnTmFtZX0oXFxcXHN8PilgKSxcbiAgICAgICAgYDwke3RhZ05hbWV9IG1hcmtkb3duPVwiMVwiJDFgLFxuICAgICAgKTtcbiAgICAgIGxhc3RJbmRleCA9IGNvbnRlbnRTdGFydDtcbiAgICB9XG4gIH1cblxuICByZXN1bHQgKz0gbWFya2Rvd24uc2xpY2UobGFzdEluZGV4KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gU3RyaXBzIGFsbCB0aGUgaHRtbCB0YWdzIGluIHRoZSBodG1sIHNhbmQgcmV0dXJucyB0aGUgdGV4dFxuZnVuY3Rpb24gc3RyaXBBbGxIdG1sVGFncyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHNhbml0aXplZCA9IGlucHV0O1xuICBsZXQgcHJldmlvdXM7XG5cbiAgZG8ge1xuICAgIHByZXZpb3VzID0gc2FuaXRpemVkO1xuICAgIHNhbml0aXplZCA9IHNhbml0aXplZC5yZXBsYWNlKC88W14+XSs+L2csICcnKTtcbiAgfSB3aGlsZSAocHJldmlvdXMgIT09IHNhbml0aXplZCk7XG5cbiAgcmV0dXJuIHNhbml0aXplZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtbWFya2Rvd24nLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gIHByaXZhdGUgX25nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIHByaXZhdGUgX2NvbnRlbnQhOiBzdHJpbmc7XG4gIHByaXZhdGUgX3NpbXBsZUxpbmVCcmVha3MgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaG9zdGVkVXJsITogc3RyaW5nO1xuICBwcml2YXRlIF9hbmNob3IhOiBzdHJpbmc7XG4gIHByaXZhdGUgX3ZpZXdJbml0ID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbGVMaW5rRXh0ZW5zaW9ucyE6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9hbmNob3JMaXN0ZW5lcj86IFZvaWRGdW5jdGlvbjtcbiAgLyoqXG4gICAqIC50ZC1tYXJrZG93biBjbGFzcyBhZGRlZCB0byBob3N0IHNvIDo6bmctZGVlcCBnZXRzIHNjb3BlZC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9ICd0ZC1tYXJrZG93bic7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnQ/OiBzdHJpbmdcbiAgICpcbiAgICogTWFya2Rvd24gZm9ybWF0IGNvbnRlbnQgdG8gYmUgcGFyc2VkIGFzIGh0bWwgbWFya3VwLlxuICAgKlxuICAgKiBlLmcuIFJFQURNRS5tZCBjb250ZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICAvKipcbiAgICogc2ltcGxlTGluZUJyZWFrcz86IHN0cmluZ1xuICAgKlxuICAgKiBTZXRzIHdoZXRoZXIgbmV3bGluZSBjaGFyYWN0ZXJzIGluc2lkZSBwYXJhZ3JhcGhzIGFuZCBzcGFucyBhcmUgcGFyc2VkIGFzIDxici8+LlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaW1wbGVMaW5lQnJlYWtzKHNpbXBsZUxpbmVCcmVha3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaW1wbGVMaW5lQnJlYWtzID0gc2ltcGxlTGluZUJyZWFrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBob3N0ZWRVcmw/OiBzdHJpbmdcbiAgICpcbiAgICogSWYgbWFya2Rvd24gY29udGFpbnMgcmVsYXRpdmUgcGF0aHMsIHRoaXMgaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgY29ycmVjdCB1cmxzLlxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGhvc3RlZFVybChob3N0ZWRVcmw6IHN0cmluZykge1xuICAgIHRoaXMuX2hvc3RlZFVybCA9IGhvc3RlZFVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBhbmNob3I/OiBzdHJpbmdcbiAgICpcbiAgICogQW5jaG9yIHRvIGp1bXAgdG8uXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgYW5jaG9yKGFuY2hvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5fYW5jaG9yID0gYW5jaG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIGV4dGVuc2lvbnMgdG8gbW9uaXRvciBmb3IgaW4gYW5jaG9yIHRhZ3MuIElmIGFuIGFuY2hvcidzIGBocmVmYCBlbmRzXG4gICAqIHdpdGggdGhlc2UgZXh0ZW5zaW9ucywgYW4gZXZlbnQgd2lsbCBiZSBlbWl0dGVkIGluc3RlYWQgb2YgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBjbGljayBhY3Rpb24uXG4gICAqIEV4YW1wbGUgdmFsdWVzOiBbXCIuaXB5bmJcIiwgXCIuemlwXCIsIFwiLmRvY3hcIl1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBmaWxlTGlua0V4dGVuc2lvbnMoZXh0ZW5zaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9maWxlTGlua0V4dGVuc2lvbnMgPSBleHRlbnNpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBhbmNob3IgdGFnIHdpdGggYW4gYGhyZWZgIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWRcbiAgICogZmlsZUxpbmtFeHRlbnNpb25zIGlzIGNsaWNrZWQuIFRoZSBlbWl0dGVkIHZhbHVlIGlzIHRoZSBVUkwgb2YgdGhlIGNsaWNrZWQgYW5jaG9yLlxuICAgKi9cbiAgQE91dHB1dCgpIGZpbGVMaW5rQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VVJMPigpO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBtYXJrZG93biBjb250ZW50IHJlbmRlcmluZyBpcyBmaW5pc2hlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBjb250ZW50UmVhZHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gb25seSBhbmNob3IgY2hhbmdlZFxuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbJ2FuY2hvciddICYmXG4gICAgICAhY2hhbmdlc1snY29udGVudCddICYmXG4gICAgICAhY2hhbmdlc1snc2ltcGxlTGluZUJyZWFrcyddICYmXG4gICAgICAhY2hhbmdlc1snaG9zdGVkVXJsJ11cbiAgICApIHtcbiAgICAgIHNjcm9sbFRvQW5jaG9yKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fYW5jaG9yLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQoXG4gICAgICAgICg8SFRNTEVsZW1lbnQ+dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS50ZXh0Q29udGVudCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3ZpZXdJbml0ID0gdHJ1ZTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB0aGUgYHNjcm9sbFRvQW5jaG9yYCBjYWxscyBgZWxlbWVudC5zY3JvbGxJbnRvVmlld2AsIGEgbmF0aXZlIHN5bmNocm9ub3VzIERPTVxuICAgIC8vIEFQSSBhbmQgaXQgZG9lc24ndCByZXF1aXJlIEFuZ3VsYXIgcnVubmluZyBgQXBwbGljYXRpb25SZWYudGljaygpYCBlYWNoIHRpbWUgdGhlIG1hcmtkb3duIGNvbXBvbmVudCBpcyBjbGlja2VkLlxuICAgIC8vIEhvc3QgbGlzdGVuZXIgKGFkZGVkIHRocm91Z2ggYEBIb3N0TGlzdGVuZXJgKSBjYXVzZSBBbmd1bGFyIHRvIGFkZCBhbiBldmVudCBsaXN0ZW5lciB3aXRoaW4gdGhlIEFuZ3VsYXIgem9uZS5cbiAgICAvLyBJdCBhbHNvIGNhbGxzIGBtYXJrVmlld0RpcnR5KClgIGJlZm9yZSBjYWxsaW5nIHRoZSBhY3R1YWwgbGlzdGVuZXIgKHRoZSBkZWNvcmF0ZWQgY2xhc3MgbWV0aG9kKS5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fYW5jaG9yTGlzdGVuZXIgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+ZXZlbnQuc3JjRWxlbWVudDtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlbGVtZW50Lm1hdGNoZXMoJ2FbaHJlZl0nKSAmJlxuICAgICAgICAgICAgaXNBbmNob3JMaW5rKDxIVE1MQW5jaG9yRWxlbWVudD5lbGVtZW50KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbmNob3JDbGlja3MoZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBlbGVtZW50Lm1hdGNoZXMoJ2FbaHJlZl0nKSAmJlxuICAgICAgICAgICAgaXNGaWxlTGluayg8SFRNTEFuY2hvckVsZW1lbnQ+ZWxlbWVudCwgdGhpcy5fZmlsZUxpbmtFeHRlbnNpb25zKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWxlQW5jaG9yQ2xpY2tzKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYW5jaG9yTGlzdGVuZXI/LigpO1xuICB9XG5cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQodGhpcy5fY29udGVudCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl92aWV3SW5pdCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQoXG4gICAgICAgICg8SFRNTEVsZW1lbnQ+dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS50ZXh0Q29udGVudCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYWwgbWV0aG9kIHRvIHBhcnNlIGEgc3RyaW5nIG1hcmtkb3duIGludG8gSFRNTCBFbGVtZW50cyBhbmQgbG9hZCB0aGVtIGludG8gdGhlIGNvbnRhaW5lclxuICAgKi9cbiAgcHJpdmF0ZSBfbG9hZENvbnRlbnQobWFya2Rvd246IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAobWFya2Rvd24gJiYgbWFya2Rvd24udHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIENsZWFuIGNvbnRhaW5lclxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAgICcnLFxuICAgICAgKTtcbiAgICAgIC8vIFBhcnNlIGh0bWwgc3RyaW5nIGludG8gYWN0dWFsIEhUTUwgZWxlbWVudHMuXG4gICAgICB0aGlzLl9lbGVtZW50RnJvbVN0cmluZyh0aGlzLl9yZW5kZXIobWFya2Rvd24pKTtcbiAgICB9XG4gICAgLy8gVE9ETzogdGltZW91dCByZXF1aXJlZCBzaW5jZSByZXNpemluZyBvZiBodG1sIGVsZW1lbnRzIG9jY3VycyB3aGljaCBjYXVzZXMgYSBjaGFuZ2UgaW4gdGhlIHNjcm9sbCBwb3NpdGlvblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2FuY2hvciwgdHJ1ZSksXG4gICAgICAgIDI1MCxcbiAgICAgICksXG4gICAgKTtcbiAgICB0aGlzLmNvbnRlbnRSZWFkeS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFuY2hvckNsaWNrcyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTCgoPEhUTUxBbmNob3JFbGVtZW50PmV2ZW50LnRhcmdldCkuaHJlZik7XG4gICAgY29uc3QgaGFzaDogc3RyaW5nID0gZGVjb2RlVVJJKHVybC5oYXNoKTtcbiAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGhhc2gsIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGaWxlQW5jaG9yQ2xpY2tzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdXJsOiBVUkwgPSBuZXcgVVJMKCg8SFRNTEFuY2hvckVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5ocmVmKTtcbiAgICB0aGlzLmZpbGVMaW5rQ2xpY2tlZC5lbWl0KHVybCk7XG4gIH1cblxuICBwcml2YXRlIF9lbGVtZW50RnJvbVN0cmluZyhtYXJrdXBTdHI6IHN0cmluZyk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICAvLyBSZW5kZXJlcjIgZG9lc250IGhhdmUgYSBwYXJzaW5nIG1ldGhvZCwgc28gd2UgaGF2ZSB0byBzYW5pdGl6ZSBhbmQgdXNlIFtpbm5lckhUTUxdXG4gICAgLy8gdG8gcGFyc2UgdGhlIHN0cmluZyBpbnRvIERPTSBlbGVtZW50IGZvciBub3cuXG4gICAgY29uc3QgZGl2OiBIVE1MRGl2RWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZGl2KTtcblxuICAgIGNvbnN0IGh0bWw6IHN0cmluZyA9XG4gICAgICB0aGlzLl9kb21TYW5pdGl6ZXIuc2FuaXRpemUoXG4gICAgICAgIFNlY3VyaXR5Q29udGV4dC5TVFlMRSxcbiAgICAgICAgY2hhbmdlU3R5bGVBbGlnbm1lbnRUb0NsYXNzKG1hcmt1cFN0ciksXG4gICAgICApID8/ICcnO1xuXG4gICAgY29uc3QgaHRtbFdpdGhBYnNvbHV0ZUhyZWZzOiBzdHJpbmcgPSBub3JtYWxpemVIdG1sSHJlZnMoXG4gICAgICBodG1sLFxuICAgICAgdGhpcy5faG9zdGVkVXJsLFxuICAgICAgdGhpcy5fZmlsZUxpbmtFeHRlbnNpb25zLFxuICAgICk7XG4gICAgY29uc3QgaHRtbFdpdGhBYnNvbHV0ZUltZ1NyY3M6IHN0cmluZyA9IG5vcm1hbGl6ZUltYWdlU3JjcyhcbiAgICAgIGh0bWxXaXRoQWJzb2x1dGVIcmVmcyxcbiAgICAgIHRoaXMuX2hvc3RlZFVybCxcbiAgICApO1xuICAgIGNvbnN0IGh0bWxXaXRoSGVhZGluZ0lkczogc3RyaW5nID0gYWRkSWRzVG9IZWFkaW5ncyhcbiAgICAgIGh0bWxXaXRoQWJzb2x1dGVJbWdTcmNzLFxuICAgICk7XG4gICAgY29uc3QgaHRtbFdpdGhWaWRlb3M6IFNhZmVIdG1sID0gcmVuZGVyVmlkZW9FbGVtZW50cyhodG1sV2l0aEhlYWRpbmdJZHMpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGRpdiwgJ2lubmVySFRNTCcsIGh0bWxXaXRoVmlkZW9zKTtcbiAgICByZXR1cm4gZGl2O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRyaW0gbGVhZGluZyBhbmQgdHJhaWxpbmcgbmV3bGluZXNcbiAgICBtYXJrZG93biA9IG1hcmtkb3duXG4gICAgICAucmVwbGFjZSgvXihcXHN8XFx0KSpcXG4rL2csICcnKVxuICAgICAgLnJlcGxhY2UoLyhcXHN8XFx0KSpcXG4rKFxcc3xcXHQpKiQvZywgJycpO1xuICAgIC8vIFNwbGl0IG1hcmtkb3duIGJ5IGxpbmUgY2hhcmFjdGVyc1xuICAgIGxldCBsaW5lczogc3RyaW5nW10gPSBtYXJrZG93bi5zcGxpdCgnXFxuJyk7XG5cbiAgICAvLyBjaGVjayBob3cgbXVjaCBpbmRlbnRhdGlvbiBpcyB1c2VkIGJ5IHRoZSBmaXJzdCBhY3R1YWwgbWFya2Rvd24gbGluZVxuICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaCA9IGxpbmVzWzBdLm1hdGNoKC9eKFxcc3xcXHQpKi8pO1xuICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2U6IHN0cmluZyA9IGZpcnN0TGluZVdoaXRlc3BhY2VNYXRjaFxuICAgICAgPyBmaXJzdExpbmVXaGl0ZXNwYWNlTWF0Y2hbMF1cbiAgICAgIDogJyc7XG5cbiAgICAvLyBSZW1vdmUgYWxsIGluZGVudGF0aW9uIHNwYWNlcyBzbyBtYXJrZG93biBjYW4gYmUgcGFyc2VkIGNvcnJlY3RseVxuICAgIGNvbnN0IHN0YXJ0aW5nV2hpdGVzcGFjZVJlZ2V4ID0gbmV3IFJlZ0V4cCgnXicgKyBmaXJzdExpbmVXaGl0ZXNwYWNlKTtcbiAgICBsaW5lcyA9IGxpbmVzLm1hcChmdW5jdGlvbiAobGluZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBsaW5lLnJlcGxhY2Uoc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXgsICcnKTtcbiAgICB9KTtcblxuICAgIC8vIEpvaW4gbGluZXMgYWdhaW4gd2l0aCBsaW5lIGNoYXJhY3RlcnNcbiAgICBjb25zdCBtYXJrZG93blRvUGFyc2U6IHN0cmluZyA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuXG4gICAgLy8gQ29udmVydCBtYXJrZG93biBpbnRvIGh0bWxcbiAgICBjb25zdCBjb252ZXJ0ZXI6IHNob3dkb3duLkNvbnZlcnRlciA9IG5ldyBzaG93ZG93bi5Db252ZXJ0ZXIoKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdnaENvZGVCbG9ja3MnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdnaENvbXBhdGlibGVIZWFkZXJJZCcsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ3Rhc2tsaXN0cycsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ3RhYmxlcycsIHRydWUpO1xuICAgIGNvbnZlcnRlci5zZXRPcHRpb24oJ2xpdGVyYWxNaWRXb3JkVW5kZXJzY29yZXMnLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdzaW1wbGVMaW5lQnJlYWtzJywgdGhpcy5fc2ltcGxlTGluZUJyZWFrcyk7XG4gICAgY29udmVydGVyLnNldE9wdGlvbignZW1vamknLCB0cnVlKTtcbiAgICBjb252ZXJ0ZXIuc2V0T3B0aW9uKCdkaXNhYmxlRm9yY2VkNFNwYWNlc0luZGVudGVkU3VibGlzdHMnLCB0cnVlKTtcblxuICAgIGNvbnN0IG1hcmtkb3duV2l0aEF0dHI6IHN0cmluZyA9IGFkZE1hcmtkb3duQXR0clRvSHRtbFRhZ3MobWFya2Rvd25Ub1BhcnNlKTtcbiAgICBjb25zdCBodG1sID0gY29udmVydGVyLm1ha2VIdG1sKG1hcmtkb3duV2l0aEF0dHIpO1xuICAgIHJldHVybiBodG1sO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=","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
|
@@ -98,6 +98,14 @@ declare function rawGithubHref(githubHref?: string): string;
|
|
|
98
98
|
declare function isGithubHref(href?: string): boolean;
|
|
99
99
|
declare function isRawGithubHref(href?: string): boolean;
|
|
100
100
|
declare function renderVideoElements(html: string): string;
|
|
101
|
+
/**
|
|
102
|
+
* Checks whether text contains markdown syntax patterns.
|
|
103
|
+
*/
|
|
104
|
+
declare function containsMarkdown(text: string): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Finds the index of the matching closing tag, handling nested same-name tags.
|
|
107
|
+
*/
|
|
108
|
+
declare function findClosingTagIndex(str: string, tagName: string, searchFrom: number): number;
|
|
101
109
|
|
|
102
110
|
declare class TdMarkdownLoaderService {
|
|
103
111
|
private _http;
|
|
@@ -107,4 +115,4 @@ declare class TdMarkdownLoaderService {
|
|
|
107
115
|
static ɵprov: i0.ɵɵInjectableDeclaration<TdMarkdownLoaderService>;
|
|
108
116
|
}
|
|
109
117
|
|
|
110
|
-
export { CovalentMarkdownModule, TdMarkdownComponent, TdMarkdownLoaderService, genHeadingId, isAnchorLink, isFileLink, isGithubHref, isRawGithubHref, rawGithubHref, removeLeadingHash, removeTrailingHash, renderVideoElements, scrollToAnchor };
|
|
118
|
+
export { CovalentMarkdownModule, TdMarkdownComponent, TdMarkdownLoaderService, containsMarkdown, findClosingTagIndex, genHeadingId, isAnchorLink, isFileLink, isGithubHref, isRawGithubHref, rawGithubHref, removeLeadingHash, removeTrailingHash, renderVideoElements, scrollToAnchor };
|