@covalent/highlight 3.1.1-beta.1 → 3.1.2-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-highlight.umd.js","sources":["../../../../src/platform/highlight/highlight.component.ts","../../../../src/platform/highlight/copy-code-button/copy-code-button.component.ts","../../../../src/platform/highlight/highlight.module.ts"],"sourcesContent":["import {\n Component,\n AfterViewInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Renderer2,\n SecurityContext,\n ViewChild,\n ChangeDetectorRef,\n AfterViewChecked,\n TemplateRef,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ICopyCodeTooltips } from '.';\n\ndeclare const require: any;\n/* tslint:disable-next-line */\nlet hljs: any = require('highlight.js/lib');\n\n@Component({\n selector: 'td-highlight',\n styleUrls: ['./highlight.component.scss'],\n templateUrl: './highlight.component.html',\n})\nexport class TdHighlightComponent implements AfterViewInit, AfterViewChecked {\n private _initialized: boolean = false;\n\n private _content: string;\n private _lang: string = 'typescript';\n\n /**\n * content?: string\n *\n * Code content to be parsed as highlighted html.\n * Used to load data dynamically.\n *\n * e.g. `.html`, `.ts` , etc.\n */\n @Input('content')\n set content(content: string) {\n this._content = content;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n /**\n * lang?: string\n *\n * Language of the code content to be parsed as highlighted html.\n * Defaults to `typescript`\n *\n * e.g. `typescript`, `html` , etc.\n */\n\n @Input('codeLang')\n set codeLang(lang: string) {\n this.setLanguage(lang);\n }\n /** @deprecated - removed completely @4.0.0 */\n @Input()\n set lang(lang: string) {\n // tslint:disable-next-line: no-console\n console.warn('DEPRECATION WARNING: switch to codeLang attribute as lang attribute is deprecated.');\n this.setLanguage(lang);\n }\n\n copyContent: string;\n\n /**\n * contentReady?: function\n * Event emitted after the highlight content rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('highlightComponent') highlightComp: ElementRef;\n @ViewChild('copyComponent') copyComp: ElementRef;\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewChecked(): void {\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent((<HTMLElement>this.highlightComp.nativeElement).textContent);\n } else {\n this._loadContent(this._content);\n }\n this._initialized = true;\n }\n\n setLanguage(lang: string): void {\n if (!lang) {\n throw new Error('Error: language attribute must be defined in TdHighlightComponent.');\n }\n this._lang = lang;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * General method to parse a string of code into HTML Elements and load them into the container\n */\n private _loadContent(code: string): void {\n if (code && code.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(code));\n if (this.copyCodeToClipboard) {\n this._renderer.appendChild(this._elementRef.nativeElement, this.copyComp.nativeElement);\n }\n }\n this.contentReady.emit();\n }\n\n private _elementFromString(codeStr: string): HTMLPreElement {\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 preElement: HTMLPreElement = this._renderer.createElement('pre');\n this._renderer.appendChild(this._elementRef.nativeElement, preElement);\n const codeElement: HTMLElement = this._renderer.createElement('code');\n this._renderer.appendChild(preElement, codeElement);\n // Set .highlight class into <code> element\n this._renderer.addClass(codeElement, 'highlight');\n codeElement.innerHTML = this._domSanitizer.sanitize(SecurityContext.HTML, codeStr);\n return preElement;\n }\n\n private _render(contents: string): string {\n // Trim leading and trailing newlines\n contents = contents.replace(/^(\\s|\\t)*\\n+/g, '').replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markup by line characters\n let lines: string[] = contents.split('\\n');\n\n // check how much indentation is used by the first actual code line\n const firstLineWhitespace: string = lines[0].match(/^(\\s|\\t)*/)[0];\n\n // Remove all indentation spaces so code can be parsed correctly\n const startingWhitespaceRegex: RegExp = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line\n .replace('=\"\"', '') // remove empty values\n .replace(startingWhitespaceRegex, '')\n .replace(/\\s+$/, ''); // remove trailing white spaces\n });\n\n const codeToParse: string = lines\n .join('\\n')\n .replace(/\\{ \\{/gi, '{{')\n .replace(/\\} \\}/gi, '}}')\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>'); // replace with < and > to render HTML in Angular\n this.copyContent = codeToParse;\n // Parse code with highlight.js depending on language\n const highlightedCode: any = hljs.highlight(this._lang, codeToParse, true);\n highlightedCode.value = highlightedCode.value\n .replace(/=<span class=\"hljs-value\">\"\"<\\/span>/gi, '')\n .replace('<head>', '')\n .replace('<head/>', '');\n return highlightedCode.value;\n }\n}\n","import { Component, OnInit, Input, ViewChild, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nexport interface ICopyCodeTooltips {\n copy?: string;\n copied?: string;\n}\n\n@Component({\n selector: 'td-copy-code-button',\n templateUrl: './copy-code-button.component.html',\n styleUrls: ['./copy-code-button.component.scss'],\n})\nexport class TdCopyCodeButtonComponent {\n // private _copyCodeTooltips: ICopyCodeTooltips = {};\n @Input() copiedContent: string;\n @Input() copyCodeToClipboard: boolean = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n get copyTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copy) || 'Copy';\n }\n\n get copiedTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copied) || 'Copied';\n }\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n textCopied(event: boolean): void {\n if (event) {\n this.tooltip.hide();\n this.tooltip.message = this.copiedTooltip;\n this.tooltip.show();\n }\n }\n @HostListener('mouseleave')\n initializeTooltip(): void {\n setTimeout(() => {\n this.tooltip.message = this.copyTooltip;\n }, 200);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { TdHighlightComponent } from './highlight.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdCopyCodeButtonComponent } from './copy-code-button/copy-code-button.component';\n\n@NgModule({\n imports: [CommonModule, ClipboardModule, MatIconModule, MatTooltipModule, MatButtonModule],\n declarations: [TdHighlightComponent, TdCopyCodeButtonComponent],\n exports: [TdHighlightComponent],\n})\nexport class CovalentHighlightModule {}\n"],"names":["EventEmitter","SecurityContext","Component","Renderer2","ElementRef","DomSanitizer","ChangeDetectorRef","Input","Output","ViewChild","HostListener","NgModule","CommonModule","ClipboardModule","MatIconModule","MatTooltipModule","MatButtonModule"],"mappings":"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"}
1
+ {"version":3,"file":"covalent-highlight.umd.js","sources":["../../../../src/platform/highlight/highlight.component.ts","../../../src/platform/highlight/copy-code-button/copy-code-button.component.ts","../../../../src/platform/highlight/highlight.module.ts"],"sourcesContent":["import {\n Component,\n AfterViewInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Renderer2,\n SecurityContext,\n ViewChild,\n ChangeDetectorRef,\n AfterViewChecked,\n TemplateRef,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ICopyCodeTooltips } from '.';\n\ndeclare const require: any;\n/* tslint:disable-next-line */\nlet hljs: any = require('highlight.js/lib');\n\n@Component({\n selector: 'td-highlight',\n styleUrls: ['./highlight.component.scss'],\n templateUrl: './highlight.component.html',\n})\nexport class TdHighlightComponent implements AfterViewInit, AfterViewChecked {\n private _initialized: boolean = false;\n\n private _content: string;\n private _lang: string = 'typescript';\n\n /**\n * content?: string\n *\n * Code content to be parsed as highlighted html.\n * Used to load data dynamically.\n *\n * e.g. `.html`, `.ts` , etc.\n */\n @Input('content')\n set content(content: string) {\n this._content = content;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n /**\n * lang?: string\n *\n * Language of the code content to be parsed as highlighted html.\n * Defaults to `typescript`\n *\n * e.g. `typescript`, `html` , etc.\n */\n\n @Input('codeLang')\n set codeLang(lang: string) {\n this.setLanguage(lang);\n }\n /** @deprecated - removed completely @4.0.0 */\n @Input()\n set lang(lang: string) {\n // tslint:disable-next-line: no-console\n console.warn('DEPRECATION WARNING: switch to codeLang attribute as lang attribute is deprecated.');\n this.setLanguage(lang);\n }\n\n copyContent: string;\n\n /**\n * contentReady?: function\n * Event emitted after the highlight content rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('highlightComponent') highlightComp: ElementRef;\n @ViewChild('copyComponent') copyComp: ElementRef;\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewChecked(): void {\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent((<HTMLElement>this.highlightComp.nativeElement).textContent);\n } else {\n this._loadContent(this._content);\n }\n this._initialized = true;\n }\n\n setLanguage(lang: string): void {\n if (!lang) {\n throw new Error('Error: language attribute must be defined in TdHighlightComponent.');\n }\n this._lang = lang;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * General method to parse a string of code into HTML Elements and load them into the container\n */\n private _loadContent(code: string): void {\n if (code && code.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(code));\n if (this.copyCodeToClipboard) {\n this._renderer.appendChild(this._elementRef.nativeElement, this.copyComp.nativeElement);\n }\n }\n this.contentReady.emit();\n }\n\n private _elementFromString(codeStr: string): HTMLPreElement {\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 preElement: HTMLPreElement = this._renderer.createElement('pre');\n this._renderer.appendChild(this._elementRef.nativeElement, preElement);\n const codeElement: HTMLElement = this._renderer.createElement('code');\n this._renderer.appendChild(preElement, codeElement);\n // Set .highlight class into <code> element\n this._renderer.addClass(codeElement, 'highlight');\n codeElement.innerHTML = this._domSanitizer.sanitize(SecurityContext.HTML, codeStr);\n return preElement;\n }\n\n private _render(contents: string): string {\n // Trim leading and trailing newlines\n contents = contents.replace(/^(\\s|\\t)*\\n+/g, '').replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markup by line characters\n let lines: string[] = contents.split('\\n');\n\n // check how much indentation is used by the first actual code line\n const firstLineWhitespace: string = lines[0].match(/^(\\s|\\t)*/)[0];\n\n // Remove all indentation spaces so code can be parsed correctly\n const startingWhitespaceRegex: RegExp = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line\n .replace('=\"\"', '') // remove empty values\n .replace(startingWhitespaceRegex, '')\n .replace(/\\s+$/, ''); // remove trailing white spaces\n });\n\n const codeToParse: string = lines\n .join('\\n')\n .replace(/\\{ \\{/gi, '{{')\n .replace(/\\} \\}/gi, '}}')\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>'); // replace with < and > to render HTML in Angular\n this.copyContent = codeToParse;\n // Parse code with highlight.js depending on language\n const highlightedCode: any = hljs.highlight(this._lang, codeToParse, true);\n highlightedCode.value = highlightedCode.value\n .replace(/=<span class=\"hljs-value\">\"\"<\\/span>/gi, '')\n .replace('<head>', '')\n .replace('<head/>', '');\n return highlightedCode.value;\n }\n}\n","import { Component, OnInit, Input, ViewChild, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nexport interface ICopyCodeTooltips {\n copy?: string;\n copied?: string;\n}\n\n@Component({\n selector: 'td-copy-code-button',\n templateUrl: './copy-code-button.component.html',\n styleUrls: ['./copy-code-button.component.scss'],\n})\nexport class TdCopyCodeButtonComponent {\n // private _copyCodeTooltips: ICopyCodeTooltips = {};\n @Input() copiedContent: string;\n @Input() copyCodeToClipboard: boolean = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n get copyTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copy) || 'Copy';\n }\n\n get copiedTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copied) || 'Copied';\n }\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n textCopied(event: boolean): void {\n if (event) {\n this.tooltip.hide();\n this.tooltip.message = this.copiedTooltip;\n this.tooltip.show();\n }\n }\n @HostListener('mouseleave')\n initializeTooltip(): void {\n setTimeout(() => {\n this.tooltip.message = this.copyTooltip;\n }, 200);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { TdHighlightComponent } from './highlight.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdCopyCodeButtonComponent } from './copy-code-button/copy-code-button.component';\n\n@NgModule({\n imports: [CommonModule, ClipboardModule, MatIconModule, MatTooltipModule, MatButtonModule],\n declarations: [TdHighlightComponent, TdCopyCodeButtonComponent],\n exports: [TdHighlightComponent],\n})\nexport class CovalentHighlightModule {}\n"],"names":["EventEmitter","SecurityContext","Component","Renderer2","ElementRef","DomSanitizer","ChangeDetectorRef","Input","Output","ViewChild","HostListener","NgModule","CommonModule","ClipboardModule","MatIconModule","MatTooltipModule","MatButtonModule"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/platform/highlight/highlight.component.ts","../../../../src/platform/highlight/copy-code-button/copy-code-button.component.ts","../../../../src/platform/highlight/highlight.module.ts"],"names":["hljs","require","TdHighlightComponent","_renderer","_elementRef","_domSanitizer","cdr","this","_initialized","_lang","copyCodeToClipboard","copyCodeTooltips","contentReady","EventEmitter","Object","defineProperty","prototype","content","_content","_loadContent","lang","setLanguage","console","warn","ngAfterViewChecked","detectChanges","ngAfterViewInit","highlightComp","textContent","Error","code","trim","length","setProperty","nativeElement","_elementFromString","_render","appendChild","copyComp","emit","codeStr","preElement","createElement","codeElement","addClass","innerHTML","sanitize","SecurityContext","HTML","contents","lines","replace","split","firstLineWhitespace","match","startingWhitespaceRegex","RegExp","codeToParse","map","line","join","copyContent","highlightedCode","highlight","value","Component","args","selector","template","Renderer2","ElementRef","DomSanitizer","ChangeDetectorRef","Input","Output","ViewChild","TdCopyCodeButtonComponent","copy","copied","textCopied","event","tooltip","hide","message","copiedTooltip","show","initializeTooltip","_this","setTimeout","copyTooltip","HostListener","NgModule","imports","CommonModule","ClipboardModule","MatIconModule","MatTooltipModule","MatButtonModule","declarations","exports"],"mappings":"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","sourcesContent":["import {\n Component,\n AfterViewInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Renderer2,\n SecurityContext,\n ViewChild,\n ChangeDetectorRef,\n AfterViewChecked,\n TemplateRef,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ICopyCodeTooltips } from '.';\n\ndeclare const require: any;\n/* tslint:disable-next-line */\nlet hljs: any = require('highlight.js/lib');\n\n@Component({\n selector: 'td-highlight',\n styleUrls: ['./highlight.component.scss'],\n templateUrl: './highlight.component.html',\n})\nexport class TdHighlightComponent implements AfterViewInit, AfterViewChecked {\n private _initialized: boolean = false;\n\n private _content: string;\n private _lang: string = 'typescript';\n\n /**\n * content?: string\n *\n * Code content to be parsed as highlighted html.\n * Used to load data dynamically.\n *\n * e.g. `.html`, `.ts` , etc.\n */\n @Input('content')\n set content(content: string) {\n this._content = content;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n /**\n * lang?: string\n *\n * Language of the code content to be parsed as highlighted html.\n * Defaults to `typescript`\n *\n * e.g. `typescript`, `html` , etc.\n */\n\n @Input('codeLang')\n set codeLang(lang: string) {\n this.setLanguage(lang);\n }\n /** @deprecated - removed completely @4.0.0 */\n @Input()\n set lang(lang: string) {\n // tslint:disable-next-line: no-console\n console.warn('DEPRECATION WARNING: switch to codeLang attribute as lang attribute is deprecated.');\n this.setLanguage(lang);\n }\n\n copyContent: string;\n\n /**\n * contentReady?: function\n * Event emitted after the highlight content rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('highlightComponent') highlightComp: ElementRef;\n @ViewChild('copyComponent') copyComp: ElementRef;\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewChecked(): void {\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent((<HTMLElement>this.highlightComp.nativeElement).textContent);\n } else {\n this._loadContent(this._content);\n }\n this._initialized = true;\n }\n\n setLanguage(lang: string): void {\n if (!lang) {\n throw new Error('Error: language attribute must be defined in TdHighlightComponent.');\n }\n this._lang = lang;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * General method to parse a string of code into HTML Elements and load them into the container\n */\n private _loadContent(code: string): void {\n if (code && code.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(code));\n if (this.copyCodeToClipboard) {\n this._renderer.appendChild(this._elementRef.nativeElement, this.copyComp.nativeElement);\n }\n }\n this.contentReady.emit();\n }\n\n private _elementFromString(codeStr: string): HTMLPreElement {\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 preElement: HTMLPreElement = this._renderer.createElement('pre');\n this._renderer.appendChild(this._elementRef.nativeElement, preElement);\n const codeElement: HTMLElement = this._renderer.createElement('code');\n this._renderer.appendChild(preElement, codeElement);\n // Set .highlight class into <code> element\n this._renderer.addClass(codeElement, 'highlight');\n codeElement.innerHTML = this._domSanitizer.sanitize(SecurityContext.HTML, codeStr);\n return preElement;\n }\n\n private _render(contents: string): string {\n // Trim leading and trailing newlines\n contents = contents.replace(/^(\\s|\\t)*\\n+/g, '').replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markup by line characters\n let lines: string[] = contents.split('\\n');\n\n // check how much indentation is used by the first actual code line\n const firstLineWhitespace: string = lines[0].match(/^(\\s|\\t)*/)[0];\n\n // Remove all indentation spaces so code can be parsed correctly\n const startingWhitespaceRegex: RegExp = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line\n .replace('=\"\"', '') // remove empty values\n .replace(startingWhitespaceRegex, '')\n .replace(/\\s+$/, ''); // remove trailing white spaces\n });\n\n const codeToParse: string = lines\n .join('\\n')\n .replace(/\\{ \\{/gi, '{{')\n .replace(/\\} \\}/gi, '}}')\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>'); // replace with < and > to render HTML in Angular\n this.copyContent = codeToParse;\n // Parse code with highlight.js depending on language\n const highlightedCode: any = hljs.highlight(this._lang, codeToParse, true);\n highlightedCode.value = highlightedCode.value\n .replace(/=<span class=\"hljs-value\">\"\"<\\/span>/gi, '')\n .replace('<head>', '')\n .replace('<head/>', '');\n return highlightedCode.value;\n }\n}\n","import { Component, OnInit, Input, ViewChild, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nexport interface ICopyCodeTooltips {\n copy?: string;\n copied?: string;\n}\n\n@Component({\n selector: 'td-copy-code-button',\n templateUrl: './copy-code-button.component.html',\n styleUrls: ['./copy-code-button.component.scss'],\n})\nexport class TdCopyCodeButtonComponent {\n // private _copyCodeTooltips: ICopyCodeTooltips = {};\n @Input() copiedContent: string;\n @Input() copyCodeToClipboard: boolean = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n get copyTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copy) || 'Copy';\n }\n\n get copiedTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copied) || 'Copied';\n }\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n textCopied(event: boolean): void {\n if (event) {\n this.tooltip.hide();\n this.tooltip.message = this.copiedTooltip;\n this.tooltip.show();\n }\n }\n @HostListener('mouseleave')\n initializeTooltip(): void {\n setTimeout(() => {\n this.tooltip.message = this.copyTooltip;\n }, 200);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { TdHighlightComponent } from './highlight.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdCopyCodeButtonComponent } from './copy-code-button/copy-code-button.component';\n\n@NgModule({\n imports: [CommonModule, ClipboardModule, MatIconModule, MatTooltipModule, MatButtonModule],\n declarations: [TdHighlightComponent, TdCopyCodeButtonComponent],\n exports: [TdHighlightComponent],\n})\nexport class CovalentHighlightModule {}\n"]}
1
+ {"version":3,"sources":["../../../../src/platform/highlight/highlight.component.ts","../../../src/platform/highlight/copy-code-button/copy-code-button.component.ts","../../../../src/platform/highlight/highlight.module.ts"],"names":["hljs","require","TdHighlightComponent","_renderer","_elementRef","_domSanitizer","cdr","this","_initialized","_lang","copyCodeToClipboard","copyCodeTooltips","contentReady","EventEmitter","Object","defineProperty","prototype","content","_content","_loadContent","lang","setLanguage","console","warn","ngAfterViewChecked","detectChanges","ngAfterViewInit","highlightComp","textContent","Error","code","trim","length","setProperty","nativeElement","_elementFromString","_render","appendChild","copyComp","emit","codeStr","preElement","createElement","codeElement","addClass","innerHTML","sanitize","SecurityContext","HTML","contents","lines","replace","split","firstLineWhitespace","match","startingWhitespaceRegex","RegExp","codeToParse","map","line","join","copyContent","highlightedCode","highlight","value","Component","args","selector","template","Renderer2","ElementRef","DomSanitizer","ChangeDetectorRef","Input","Output","ViewChild","TdCopyCodeButtonComponent","copy","copied","textCopied","event","tooltip","hide","message","copiedTooltip","show","initializeTooltip","_this","setTimeout","copyTooltip","HostListener","NgModule","imports","CommonModule","ClipboardModule","MatIconModule","MatTooltipModule","MatButtonModule","declarations","exports"],"mappings":"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","sourcesContent":["import {\n Component,\n AfterViewInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Renderer2,\n SecurityContext,\n ViewChild,\n ChangeDetectorRef,\n AfterViewChecked,\n TemplateRef,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ICopyCodeTooltips } from '.';\n\ndeclare const require: any;\n/* tslint:disable-next-line */\nlet hljs: any = require('highlight.js/lib');\n\n@Component({\n selector: 'td-highlight',\n styleUrls: ['./highlight.component.scss'],\n templateUrl: './highlight.component.html',\n})\nexport class TdHighlightComponent implements AfterViewInit, AfterViewChecked {\n private _initialized: boolean = false;\n\n private _content: string;\n private _lang: string = 'typescript';\n\n /**\n * content?: string\n *\n * Code content to be parsed as highlighted html.\n * Used to load data dynamically.\n *\n * e.g. `.html`, `.ts` , etc.\n */\n @Input('content')\n set content(content: string) {\n this._content = content;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n /**\n * lang?: string\n *\n * Language of the code content to be parsed as highlighted html.\n * Defaults to `typescript`\n *\n * e.g. `typescript`, `html` , etc.\n */\n\n @Input('codeLang')\n set codeLang(lang: string) {\n this.setLanguage(lang);\n }\n /** @deprecated - removed completely @4.0.0 */\n @Input()\n set lang(lang: string) {\n // tslint:disable-next-line: no-console\n console.warn('DEPRECATION WARNING: switch to codeLang attribute as lang attribute is deprecated.');\n this.setLanguage(lang);\n }\n\n copyContent: string;\n\n /**\n * contentReady?: function\n * Event emitted after the highlight content rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('highlightComponent') highlightComp: ElementRef;\n @ViewChild('copyComponent') copyComp: ElementRef;\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewChecked(): void {\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent((<HTMLElement>this.highlightComp.nativeElement).textContent);\n } else {\n this._loadContent(this._content);\n }\n this._initialized = true;\n }\n\n setLanguage(lang: string): void {\n if (!lang) {\n throw new Error('Error: language attribute must be defined in TdHighlightComponent.');\n }\n this._lang = lang;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * General method to parse a string of code into HTML Elements and load them into the container\n */\n private _loadContent(code: string): void {\n if (code && code.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(code));\n if (this.copyCodeToClipboard) {\n this._renderer.appendChild(this._elementRef.nativeElement, this.copyComp.nativeElement);\n }\n }\n this.contentReady.emit();\n }\n\n private _elementFromString(codeStr: string): HTMLPreElement {\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 preElement: HTMLPreElement = this._renderer.createElement('pre');\n this._renderer.appendChild(this._elementRef.nativeElement, preElement);\n const codeElement: HTMLElement = this._renderer.createElement('code');\n this._renderer.appendChild(preElement, codeElement);\n // Set .highlight class into <code> element\n this._renderer.addClass(codeElement, 'highlight');\n codeElement.innerHTML = this._domSanitizer.sanitize(SecurityContext.HTML, codeStr);\n return preElement;\n }\n\n private _render(contents: string): string {\n // Trim leading and trailing newlines\n contents = contents.replace(/^(\\s|\\t)*\\n+/g, '').replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markup by line characters\n let lines: string[] = contents.split('\\n');\n\n // check how much indentation is used by the first actual code line\n const firstLineWhitespace: string = lines[0].match(/^(\\s|\\t)*/)[0];\n\n // Remove all indentation spaces so code can be parsed correctly\n const startingWhitespaceRegex: RegExp = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line\n .replace('=\"\"', '') // remove empty values\n .replace(startingWhitespaceRegex, '')\n .replace(/\\s+$/, ''); // remove trailing white spaces\n });\n\n const codeToParse: string = lines\n .join('\\n')\n .replace(/\\{ \\{/gi, '{{')\n .replace(/\\} \\}/gi, '}}')\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>'); // replace with < and > to render HTML in Angular\n this.copyContent = codeToParse;\n // Parse code with highlight.js depending on language\n const highlightedCode: any = hljs.highlight(this._lang, codeToParse, true);\n highlightedCode.value = highlightedCode.value\n .replace(/=<span class=\"hljs-value\">\"\"<\\/span>/gi, '')\n .replace('<head>', '')\n .replace('<head/>', '');\n return highlightedCode.value;\n }\n}\n","import { Component, OnInit, Input, ViewChild, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nexport interface ICopyCodeTooltips {\n copy?: string;\n copied?: string;\n}\n\n@Component({\n selector: 'td-copy-code-button',\n templateUrl: './copy-code-button.component.html',\n styleUrls: ['./copy-code-button.component.scss'],\n})\nexport class TdCopyCodeButtonComponent {\n // private _copyCodeTooltips: ICopyCodeTooltips = {};\n @Input() copiedContent: string;\n @Input() copyCodeToClipboard: boolean = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n get copyTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copy) || 'Copy';\n }\n\n get copiedTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copied) || 'Copied';\n }\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n textCopied(event: boolean): void {\n if (event) {\n this.tooltip.hide();\n this.tooltip.message = this.copiedTooltip;\n this.tooltip.show();\n }\n }\n @HostListener('mouseleave')\n initializeTooltip(): void {\n setTimeout(() => {\n this.tooltip.message = this.copyTooltip;\n }, 200);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { TdHighlightComponent } from './highlight.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdCopyCodeButtonComponent } from './copy-code-button/copy-code-button.component';\n\n@NgModule({\n imports: [CommonModule, ClipboardModule, MatIconModule, MatTooltipModule, MatButtonModule],\n declarations: [TdHighlightComponent, TdCopyCodeButtonComponent],\n exports: [TdHighlightComponent],\n})\nexport class CovalentHighlightModule {}\n"]}
@@ -89,4 +89,4 @@ if (false) {
89
89
  /** @type {?} */
90
90
  TdCopyCodeButtonComponent.prototype.tooltip;
91
91
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vaGlnaGxpZ2h0L2NvcHktY29kZS1idXR0b24vY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUV2RCx1Q0FHQzs7O0lBRkMsaUNBQWM7O0lBQ2QsbUNBQWdCOztBQVFsQixNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBUVcsd0JBQW1CLEdBQVksS0FBSyxDQUFDOzs7Ozs7UUFNckMscUJBQWdCLEdBQXNCLEVBQUUsQ0FBQztJQXlCcEQsQ0FBQzs7OztJQXZCQyxJQUFJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUM7SUFDekUsQ0FBQzs7OztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUM3RSxDQUFDOzs7OztJQUlELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDOzs7O0lBRUQsaUJBQWlCO1FBQ2YsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzs7WUF0Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLDJSQUFnRDs7YUFFakQ7Ozs0QkFHRSxLQUFLO2tDQUNMLEtBQUs7K0JBTUwsS0FBSztzQkFVTCxTQUFTLFNBQUMsU0FBUztnQ0FTbkIsWUFBWSxTQUFDLFlBQVk7Ozs7SUExQjFCLGtEQUErQjs7SUFDL0Isd0RBQThDOzs7Ozs7O0lBTTlDLHFEQUFrRDs7SUFVbEQsNENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb3B5Q29kZVRvb2x0aXBzIHtcbiAgY29weT86IHN0cmluZztcbiAgY29waWVkPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1jb3B5LWNvZGUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcHktY29kZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3B5LWNvZGUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkQ29weUNvZGVCdXR0b25Db21wb25lbnQge1xuICAvLyBwcml2YXRlIF9jb3B5Q29kZVRvb2x0aXBzOiBJQ29weUNvZGVUb29sdGlwcyA9IHt9O1xuICBASW5wdXQoKSBjb3BpZWRDb250ZW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9DbGlwYm9hcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwc1xuICAgKlxuICAgKiBUb29sdGlwcyBmb3IgY29weSBidXR0b24gdG8gY29weSBhbmQgdXBvbiBjb3B5aW5nLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb29sdGlwczogSUNvcHlDb2RlVG9vbHRpcHMgPSB7fTtcblxuICBnZXQgY29weVRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29weUNvZGVUb29sdGlwcyAmJiB0aGlzLmNvcHlDb2RlVG9vbHRpcHMuY29weSkgfHwgJ0NvcHknO1xuICB9XG5cbiAgZ2V0IGNvcGllZFRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29weUNvZGVUb29sdGlwcyAmJiB0aGlzLmNvcHlDb2RlVG9vbHRpcHMuY29waWVkKSB8fCAnQ29waWVkJztcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXAnKSB0b29sdGlwOiBNYXRUb29sdGlwO1xuXG4gIHRleHRDb3BpZWQoZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMudG9vbHRpcC5oaWRlKCk7XG4gICAgICB0aGlzLnRvb2x0aXAubWVzc2FnZSA9IHRoaXMuY29waWVkVG9vbHRpcDtcbiAgICAgIHRoaXMudG9vbHRpcC5zaG93KCk7XG4gICAgfVxuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBpbml0aWFsaXplVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudG9vbHRpcC5tZXNzYWdlID0gdGhpcy5jb3B5VG9vbHRpcDtcbiAgICB9LCAyMDApO1xuICB9XG59XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2hpZ2hsaWdodC8iLCJzb3VyY2VzIjpbImNvcHktY29kZS1idXR0b24vY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUV2RCx1Q0FHQzs7O0lBRkMsaUNBQWM7O0lBQ2QsbUNBQWdCOztBQVFsQixNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBUVcsd0JBQW1CLEdBQVksS0FBSyxDQUFDOzs7Ozs7UUFNckMscUJBQWdCLEdBQXNCLEVBQUUsQ0FBQztJQXlCcEQsQ0FBQzs7OztJQXZCQyxJQUFJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUM7SUFDekUsQ0FBQzs7OztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUM3RSxDQUFDOzs7OztJQUlELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDOzs7O0lBRUQsaUJBQWlCO1FBQ2YsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzs7WUF0Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLDJSQUFnRDs7YUFFakQ7Ozs0QkFHRSxLQUFLO2tDQUNMLEtBQUs7K0JBTUwsS0FBSztzQkFVTCxTQUFTLFNBQUMsU0FBUztnQ0FTbkIsWUFBWSxTQUFDLFlBQVk7Ozs7SUExQjFCLGtEQUErQjs7SUFDL0Isd0RBQThDOzs7Ozs7O0lBTTlDLHFEQUFrRDs7SUFVbEQsNENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb3B5Q29kZVRvb2x0aXBzIHtcbiAgY29weT86IHN0cmluZztcbiAgY29waWVkPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1jb3B5LWNvZGUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcHktY29kZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3B5LWNvZGUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkQ29weUNvZGVCdXR0b25Db21wb25lbnQge1xuICAvLyBwcml2YXRlIF9jb3B5Q29kZVRvb2x0aXBzOiBJQ29weUNvZGVUb29sdGlwcyA9IHt9O1xuICBASW5wdXQoKSBjb3BpZWRDb250ZW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9DbGlwYm9hcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwc1xuICAgKlxuICAgKiBUb29sdGlwcyBmb3IgY29weSBidXR0b24gdG8gY29weSBhbmQgdXBvbiBjb3B5aW5nLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb29sdGlwczogSUNvcHlDb2RlVG9vbHRpcHMgPSB7fTtcblxuICBnZXQgY29weVRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29weUNvZGVUb29sdGlwcyAmJiB0aGlzLmNvcHlDb2RlVG9vbHRpcHMuY29weSkgfHwgJ0NvcHknO1xuICB9XG5cbiAgZ2V0IGNvcGllZFRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29weUNvZGVUb29sdGlwcyAmJiB0aGlzLmNvcHlDb2RlVG9vbHRpcHMuY29waWVkKSB8fCAnQ29waWVkJztcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXAnKSB0b29sdGlwOiBNYXRUb29sdGlwO1xuXG4gIHRleHRDb3BpZWQoZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMudG9vbHRpcC5oaWRlKCk7XG4gICAgICB0aGlzLnRvb2x0aXAubWVzc2FnZSA9IHRoaXMuY29waWVkVG9vbHRpcDtcbiAgICAgIHRoaXMudG9vbHRpcC5zaG93KCk7XG4gICAgfVxuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBpbml0aWFsaXplVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudG9vbHRpcC5tZXNzYWdlID0gdGhpcy5jb3B5VG9vbHRpcDtcbiAgICB9LCAyMDApO1xuICB9XG59XG4iXX0=
@@ -7,4 +7,4 @@
7
7
  * Generated bundle index. Do not edit.
8
8
  */
9
9
  export { TdHighlightComponent, CovalentHighlightModule, TdCopyCodeButtonComponent } from './index';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtaGlnaGxpZ2h0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2hpZ2hsaWdodC9jb3ZhbGVudC1oaWdobGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSx5RkFBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtaGlnaGxpZ2h0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9oaWdobGlnaHQvIiwic291cmNlcyI6WyJjb3ZhbGVudC1oaWdobGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSx5RkFBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -283,4 +283,4 @@ if (false) {
283
283
  */
284
284
  TdHighlightComponent.prototype.cdr;
285
285
  }
286
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9oaWdobGlnaHQvaGlnaGxpZ2h0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixHQUdsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7SUFLbkQsSUFBSSxHQUFRLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztBQU8zQyxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7O0lBcUUvQixZQUNVLFNBQW9CLEVBQ3BCLFdBQXVCLEVBQ3ZCLGFBQTJCLEVBQzNCLEdBQXNCO1FBSHRCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF4RXhCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLFVBQUssR0FBVyxZQUFZLENBQUM7Ozs7OztRQXVCNUIsd0JBQW1CLEdBQVksS0FBSyxDQUFDOzs7Ozs7UUFPckMscUJBQWdCLEdBQXNCLEVBQUUsQ0FBQzs7Ozs7UUE2QnhDLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFXbkUsQ0FBQzs7Ozs7Ozs7Ozs7SUE1REosSUFDSSxPQUFPLENBQUMsT0FBZTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVks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QUFFLEVBQUUsQ0FBQzthQUNyRCxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzthQUNyQixPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDOzs7WUFyS0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2dCQUV4QixxV0FBeUM7O2FBQzFDOzs7O1lBbkJDLFNBQVM7WUFKVCxVQUFVO1lBV0gsWUFBWTtZQUpuQixpQkFBaUI7OztzQkErQmhCLEtBQUssU0FBQyxTQUFTO2tDQWFmLEtBQUs7K0JBT0wsS0FBSzt1QkFXTCxLQUFLLFNBQUMsVUFBVTttQkFLaEIsS0FBSzsyQkFhTCxNQUFNOzRCQUNOLFNBQVMsU0FBQyxvQkFBb0I7dUJBQzlCLFNBQVMsU0FBQyxlQUFlO3NCQUV6QixTQUFTLFNBQUMsU0FBUzs7Ozs7OztJQWxFcEIsNENBQXNDOzs7OztJQUV0Qyx3Q0FBeUI7Ozs7O0lBQ3pCLHFDQUFxQzs7Ozs7OztJQXVCckMsbURBQThDOzs7Ozs7O0lBTzlDLGdEQUFrRDs7SUF1QmxELDJDQUFvQjs7Ozs7O0lBTXBCLDRDQUFzRTs7SUFDdEUsNkNBQTJEOztJQUMzRCx3Q0FBaUQ7O0lBRWpELHVDQUEwQzs7Ozs7SUFHeEMseUNBQTRCOzs7OztJQUM1QiwyQ0FBK0I7Ozs7O0lBQy9CLDZDQUFtQzs7Ozs7SUFDbkMsbUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMixcbiAgU2VjdXJpdHlDb250ZXh0LFxuICBWaWV3Q2hpbGQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBBZnRlclZpZXdDaGVja2VkLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IElDb3B5Q29kZVRvb2x0aXBzIH0gZnJvbSAnLic7XG5cbmRlY2xhcmUgY29uc3QgcmVxdWlyZTogYW55O1xuLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lICovXG5sZXQgaGxqczogYW55ID0gcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYicpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1oaWdobGlnaHQnLFxuICBzdHlsZVVybHM6IFsnLi9oaWdobGlnaHQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hpZ2hsaWdodC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkSGlnaGxpZ2h0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIHByaXZhdGUgX2luaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY29udGVudDogc3RyaW5nO1xuICBwcml2YXRlIF9sYW5nOiBzdHJpbmcgPSAndHlwZXNjcmlwdCc7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnQ/OiBzdHJpbmdcbiAgICpcbiAgICogQ29kZSBjb250ZW50IHRvIGJlIHBhcnNlZCBhcyBoaWdobGlnaHRlZCBodG1sLlxuICAgKiBVc2VkIHRvIGxvYWQgZGF0YSBkeW5hbWljYWxseS5cbiAgICpcbiAgICogZS5nLiBgLmh0bWxgLCBgLnRzYCAsIGV0Yy5cbiAgICovXG4gIEBJbnB1dCgnY29udGVudCcpXG4gIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQodGhpcy5fY29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9DbGlwYm9hcmQ/OiBib29sZWFuXG4gICAqXG4gICAqIERpc3BsYXkgY29weSBidXR0b24gb24gY29kZSBzbmlwcGV0cyB0byBjb3B5IGNvZGUgdG8gY2xpcGJvYXJkLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb0NsaXBib2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHNcbiAgICpcbiAgICogVG9vbHRpcHMgZm9yIGNvcHkgYnV0dG9uIHRvIGNvcHkgYW5kIHVwb24gY29weWluZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM6IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG5cbiAgLyoqXG4gICAqIGxhbmc/OiBzdHJpbmdcbiAgICpcbiAgICogTGFuZ3VhZ2Ugb2YgdGhlIGNvZGUgY29udGVudCB0byBiZSBwYXJzZWQgYXMgaGlnaGxpZ2h0ZWQgaHRtbC5cbiAgICogRGVmYXVsdHMgdG8gYHR5cGVzY3JpcHRgXG4gICAqXG4gICAqIGUuZy4gYHR5cGVzY3JpcHRgLCBgaHRtbGAgLCBldGMuXG4gICAqL1xuXG4gIEBJbnB1dCgnY29kZUxhbmcnKVxuICBzZXQgY29kZUxhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMYW5ndWFnZShsYW5nKTtcbiAgfVxuICAvKiogQGRlcHJlY2F0ZWQgLSByZW1vdmVkIGNvbXBsZXRlbHkgQDQuMC4wICovXG4gIEBJbnB1dCgpXG4gIHNldCBsYW5nKGxhbmc6IHN0cmluZykge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybignREVQUkVDQVRJT04gV0FSTklORzogc3dpdGNoIHRvIGNvZGVMYW5nIGF0dHJpYnV0ZSBhcyBsYW5nIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkLicpO1xuICAgIHRoaXMuc2V0TGFuZ3VhZ2UobGFuZyk7XG4gIH1cblxuICBjb3B5Q29udGVudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBoaWdobGlnaHQgY29udGVudCByZW5kZXJpbmcgaXMgZmluaXNoZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgY29udGVudFJlYWR5OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ2hpZ2hsaWdodENvbXBvbmVudCcpIGhpZ2hsaWdodENvbXA6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvcHlDb21wb25lbnQnKSBjb3B5Q29tcDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwJykgdG9vbHRpcDogTWF0VG9vbHRpcDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2xvYWRDb250ZW50KCg8SFRNTEVsZW1lbnQ+dGhpcy5oaWdobGlnaHRDb21wLm5hdGl2ZUVsZW1lbnQpLnRleHRDb250ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQodGhpcy5fY29udGVudCk7XG4gICAgfVxuICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghbGFuZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvcjogbGFuZ3VhZ2UgYXR0cmlidXRlIG11c3QgYmUgZGVmaW5lZCBpbiBUZEhpZ2hsaWdodENvbXBvbmVudC4nKTtcbiAgICB9XG4gICAgdGhpcy5fbGFuZyA9IGxhbmc7XG4gICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudCh0aGlzLl9jb250ZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhbCBtZXRob2QgdG8gcGFyc2UgYSBzdHJpbmcgb2YgY29kZSBpbnRvIEhUTUwgRWxlbWVudHMgYW5kIGxvYWQgdGhlbSBpbnRvIHRoZSBjb250YWluZXJcbiAgICovXG4gIHByaXZhdGUgX2xvYWRDb250ZW50KGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChjb2RlICYmIGNvZGUudHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIENsZWFuIGNvbnRhaW5lclxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaW5uZXJIVE1MJywgJycpO1xuICAgICAgLy8gUGFyc2UgaHRtbCBzdHJpbmcgaW50byBhY3R1YWwgSFRNTCBlbGVtZW50cy5cbiAgICAgIHRoaXMuX2VsZW1lbnRGcm9tU3RyaW5nKHRoaXMuX3JlbmRlcihjb2RlKSk7XG4gICAgICBpZiAodGhpcy5jb3B5Q29kZVRvQ2xpcGJvYXJkKSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jb3B5Q29tcC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb250ZW50UmVhZHkuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWxlbWVudEZyb21TdHJpbmcoY29kZVN0cjogc3RyaW5nKTogSFRNTFByZUVsZW1lbnQge1xuICAgIC8vIFJlbmRlcmVyMiBkb2VzbnQgaGF2ZSBhIHBhcnNpbmcgbWV0aG9kLCBzbyB3ZSBoYXZlIHRvIHNhbml0aXplIGFuZCB1c2UgW2lubmVySFRNTF1cbiAgICAvLyB0byBwYXJzZSB0aGUgc3RyaW5nIGludG8gRE9NIGVsZW1lbnQgZm9yIG5vdy5cbiAgICBjb25zdCBwcmVFbGVtZW50OiBIVE1MUHJlRWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3ByZScpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcHJlRWxlbWVudCk7XG4gICAgY29uc3QgY29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnY29kZScpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHByZUVsZW1lbnQsIGNvZGVFbGVtZW50KTtcbiAgICAvLyBTZXQgLmhpZ2hsaWdodCBjbGFzcyBpbnRvIDxjb2RlPiBlbGVtZW50XG4gICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3MoY29kZUVsZW1lbnQsICdoaWdobGlnaHQnKTtcbiAgICBjb2RlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIGNvZGVTdHIpO1xuICAgIHJldHVybiBwcmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRyaW0gbGVhZGluZyBhbmQgdHJhaWxpbmcgbmV3bGluZXNcbiAgICBjb250ZW50cyA9IGNvbnRlbnRzLnJlcGxhY2UoL14oXFxzfFxcdCkqXFxuKy9nLCAnJykucmVwbGFjZSgvKFxcc3xcXHQpKlxcbisoXFxzfFxcdCkqJC9nLCAnJyk7XG4gICAgLy8gU3BsaXQgbWFya3VwIGJ5IGxpbmUgY2hhcmFjdGVyc1xuICAgIGxldCBsaW5lczogc3RyaW5nW10gPSBjb250ZW50cy5zcGxpdCgnXFxuJyk7XG5cbiAgICAvLyBjaGVjayBob3cgbXVjaCBpbmRlbnRhdGlvbiBpcyB1c2VkIGJ5IHRoZSBmaXJzdCBhY3R1YWwgY29kZSBsaW5lXG4gICAgY29uc3QgZmlyc3RMaW5lV2hpdGVzcGFjZTogc3RyaW5nID0gbGluZXNbMF0ubWF0Y2goL14oXFxzfFxcdCkqLylbMF07XG5cbiAgICAvLyBSZW1vdmUgYWxsIGluZGVudGF0aW9uIHNwYWNlcyBzbyBjb2RlIGNhbiBiZSBwYXJzZWQgY29ycmVjdGx5XG4gICAgY29uc3Qgc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14nICsgZmlyc3RMaW5lV2hpdGVzcGFjZSk7XG4gICAgbGluZXMgPSBsaW5lcy5tYXAoZnVuY3Rpb24gKGxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbGluZVxuICAgICAgICAucmVwbGFjZSgnPVwiXCInLCAnJykgLy8gcmVtb3ZlIGVtcHR5IHZhbHVlc1xuICAgICAgICAucmVwbGFjZShzdGFydGluZ1doaXRlc3BhY2VSZWdleCwgJycpXG4gICAgICAgIC5yZXBsYWNlKC9cXHMrJC8sICcnKTsgLy8gcmVtb3ZlIHRyYWlsaW5nIHdoaXRlIHNwYWNlc1xuICAgIH0pO1xuXG4gICAgY29uc3QgY29kZVRvUGFyc2U6IHN0cmluZyA9IGxpbmVzXG4gICAgICAuam9pbignXFxuJylcbiAgICAgIC5yZXBsYWNlKC9cXHsgXFx7L2dpLCAne3snKVxuICAgICAgLnJlcGxhY2UoL1xcfSBcXH0vZ2ksICd9fScpXG4gICAgICAucmVwbGFjZSgvJmx0Oy9naSwgJzwnKVxuICAgICAgLnJlcGxhY2UoLyZndDsvZ2ksICc+Jyk7IC8vIHJlcGxhY2Ugd2l0aCA8IGFuZCA+IHRvIHJlbmRlciBIVE1MIGluIEFuZ3VsYXJcbiAgICB0aGlzLmNvcHlDb250ZW50ID0gY29kZVRvUGFyc2U7XG4gICAgLy8gUGFyc2UgY29kZSB3aXRoIGhpZ2hsaWdodC5qcyBkZXBlbmRpbmcgb24gbGFuZ3VhZ2VcbiAgICBjb25zdCBoaWdobGlnaHRlZENvZGU6IGFueSA9IGhsanMuaGlnaGxpZ2h0KHRoaXMuX2xhbmcsIGNvZGVUb1BhcnNlLCB0cnVlKTtcbiAgICBoaWdobGlnaHRlZENvZGUudmFsdWUgPSBoaWdobGlnaHRlZENvZGUudmFsdWVcbiAgICAgIC5yZXBsYWNlKC89PHNwYW4gY2xhc3M9XCJobGpzLXZhbHVlXCI+XCJcIjxcXC9zcGFuPi9naSwgJycpXG4gICAgICAucmVwbGFjZSgnPGhlYWQ+JywgJycpXG4gICAgICAucmVwbGFjZSgnPGhlYWQvPicsICcnKTtcbiAgICByZXR1cm4gaGlnaGxpZ2h0ZWRDb2RlLnZhbHVlO1xuICB9XG59XG4iXX0=
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vaGlnaGxpZ2h0LyIsInNvdXJjZXMiOlsiaGlnaGxpZ2h0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixHQUdsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7SUFLbkQsSUFBSSxHQUFRLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztBQU8zQyxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7O0lBcUUvQixZQUNVLFNBQW9CLEVBQ3BCLFdBQXVCLEVBQ3ZCLGFBQTJCLEVBQzNCLEdBQXNCO1FBSHRCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF4RXhCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLFVBQUssR0FBVyxZQUFZLENBQUM7Ozs7OztRQXVCNUIsd0JBQW1CLEdBQVksS0FBSyxDQUFDOzs7Ozs7UUFPckMscUJBQWdCLEdBQXNCLEVBQUUsQ0FBQzs7Ozs7UUE2QnhDLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFXbkUsQ0FBQzs7Ozs7Ozs7Ozs7SUE1REosSUFDSSxPQUFPLENBQUMsT0FBZTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVks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QUFFLEVBQUUsQ0FBQzthQUNyRCxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzthQUNyQixPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDOzs7WUFyS0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2dCQUV4QixxV0FBeUM7O2FBQzFDOzs7O1lBbkJDLFNBQVM7WUFKVCxVQUFVO1lBV0gsWUFBWTtZQUpuQixpQkFBaUI7OztzQkErQmhCLEtBQUssU0FBQyxTQUFTO2tDQWFmLEtBQUs7K0JBT0wsS0FBSzt1QkFXTCxLQUFLLFNBQUMsVUFBVTttQkFLaEIsS0FBSzsyQkFhTCxNQUFNOzRCQUNOLFNBQVMsU0FBQyxvQkFBb0I7dUJBQzlCLFNBQVMsU0FBQyxlQUFlO3NCQUV6QixTQUFTLFNBQUMsU0FBUzs7Ozs7OztJQWxFcEIsNENBQXNDOzs7OztJQUV0Qyx3Q0FBeUI7Ozs7O0lBQ3pCLHFDQUFxQzs7Ozs7OztJQXVCckMsbURBQThDOzs7Ozs7O0lBTzlDLGdEQUFrRDs7SUF1QmxELDJDQUFvQjs7Ozs7O0lBTXBCLDRDQUFzRTs7SUFDdEUsNkNBQTJEOztJQUMzRCx3Q0FBaUQ7O0lBRWpELHVDQUEwQzs7Ozs7SUFHeEMseUNBQTRCOzs7OztJQUM1QiwyQ0FBK0I7Ozs7O0lBQy9CLDZDQUFtQzs7Ozs7SUFDbkMsbUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMixcbiAgU2VjdXJpdHlDb250ZXh0LFxuICBWaWV3Q2hpbGQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBBZnRlclZpZXdDaGVja2VkLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IElDb3B5Q29kZVRvb2x0aXBzIH0gZnJvbSAnLic7XG5cbmRlY2xhcmUgY29uc3QgcmVxdWlyZTogYW55O1xuLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lICovXG5sZXQgaGxqczogYW55ID0gcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYicpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1oaWdobGlnaHQnLFxuICBzdHlsZVVybHM6IFsnLi9oaWdobGlnaHQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hpZ2hsaWdodC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkSGlnaGxpZ2h0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIHByaXZhdGUgX2luaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY29udGVudDogc3RyaW5nO1xuICBwcml2YXRlIF9sYW5nOiBzdHJpbmcgPSAndHlwZXNjcmlwdCc7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnQ/OiBzdHJpbmdcbiAgICpcbiAgICogQ29kZSBjb250ZW50IHRvIGJlIHBhcnNlZCBhcyBoaWdobGlnaHRlZCBodG1sLlxuICAgKiBVc2VkIHRvIGxvYWQgZGF0YSBkeW5hbWljYWxseS5cbiAgICpcbiAgICogZS5nLiBgLmh0bWxgLCBgLnRzYCAsIGV0Yy5cbiAgICovXG4gIEBJbnB1dCgnY29udGVudCcpXG4gIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQodGhpcy5fY29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9DbGlwYm9hcmQ/OiBib29sZWFuXG4gICAqXG4gICAqIERpc3BsYXkgY29weSBidXR0b24gb24gY29kZSBzbmlwcGV0cyB0byBjb3B5IGNvZGUgdG8gY2xpcGJvYXJkLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb0NsaXBib2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHNcbiAgICpcbiAgICogVG9vbHRpcHMgZm9yIGNvcHkgYnV0dG9uIHRvIGNvcHkgYW5kIHVwb24gY29weWluZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM6IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG5cbiAgLyoqXG4gICAqIGxhbmc/OiBzdHJpbmdcbiAgICpcbiAgICogTGFuZ3VhZ2Ugb2YgdGhlIGNvZGUgY29udGVudCB0byBiZSBwYXJzZWQgYXMgaGlnaGxpZ2h0ZWQgaHRtbC5cbiAgICogRGVmYXVsdHMgdG8gYHR5cGVzY3JpcHRgXG4gICAqXG4gICAqIGUuZy4gYHR5cGVzY3JpcHRgLCBgaHRtbGAgLCBldGMuXG4gICAqL1xuXG4gIEBJbnB1dCgnY29kZUxhbmcnKVxuICBzZXQgY29kZUxhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMYW5ndWFnZShsYW5nKTtcbiAgfVxuICAvKiogQGRlcHJlY2F0ZWQgLSByZW1vdmVkIGNvbXBsZXRlbHkgQDQuMC4wICovXG4gIEBJbnB1dCgpXG4gIHNldCBsYW5nKGxhbmc6IHN0cmluZykge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybignREVQUkVDQVRJT04gV0FSTklORzogc3dpdGNoIHRvIGNvZGVMYW5nIGF0dHJpYnV0ZSBhcyBsYW5nIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkLicpO1xuICAgIHRoaXMuc2V0TGFuZ3VhZ2UobGFuZyk7XG4gIH1cblxuICBjb3B5Q29udGVudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBoaWdobGlnaHQgY29udGVudCByZW5kZXJpbmcgaXMgZmluaXNoZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgY29udGVudFJlYWR5OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ2hpZ2hsaWdodENvbXBvbmVudCcpIGhpZ2hsaWdodENvbXA6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvcHlDb21wb25lbnQnKSBjb3B5Q29tcDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwJykgdG9vbHRpcDogTWF0VG9vbHRpcDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2xvYWRDb250ZW50KCg8SFRNTEVsZW1lbnQ+dGhpcy5oaWdobGlnaHRDb21wLm5hdGl2ZUVsZW1lbnQpLnRleHRDb250ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQodGhpcy5fY29udGVudCk7XG4gICAgfVxuICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghbGFuZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvcjogbGFuZ3VhZ2UgYXR0cmlidXRlIG11c3QgYmUgZGVmaW5lZCBpbiBUZEhpZ2hsaWdodENvbXBvbmVudC4nKTtcbiAgICB9XG4gICAgdGhpcy5fbGFuZyA9IGxhbmc7XG4gICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudCh0aGlzLl9jb250ZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhbCBtZXRob2QgdG8gcGFyc2UgYSBzdHJpbmcgb2YgY29kZSBpbnRvIEhUTUwgRWxlbWVudHMgYW5kIGxvYWQgdGhlbSBpbnRvIHRoZSBjb250YWluZXJcbiAgICovXG4gIHByaXZhdGUgX2xvYWRDb250ZW50KGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChjb2RlICYmIGNvZGUudHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIENsZWFuIGNvbnRhaW5lclxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaW5uZXJIVE1MJywgJycpO1xuICAgICAgLy8gUGFyc2UgaHRtbCBzdHJpbmcgaW50byBhY3R1YWwgSFRNTCBlbGVtZW50cy5cbiAgICAgIHRoaXMuX2VsZW1lbnRGcm9tU3RyaW5nKHRoaXMuX3JlbmRlcihjb2RlKSk7XG4gICAgICBpZiAodGhpcy5jb3B5Q29kZVRvQ2xpcGJvYXJkKSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jb3B5Q29tcC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb250ZW50UmVhZHkuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWxlbWVudEZyb21TdHJpbmcoY29kZVN0cjogc3RyaW5nKTogSFRNTFByZUVsZW1lbnQge1xuICAgIC8vIFJlbmRlcmVyMiBkb2VzbnQgaGF2ZSBhIHBhcnNpbmcgbWV0aG9kLCBzbyB3ZSBoYXZlIHRvIHNhbml0aXplIGFuZCB1c2UgW2lubmVySFRNTF1cbiAgICAvLyB0byBwYXJzZSB0aGUgc3RyaW5nIGludG8gRE9NIGVsZW1lbnQgZm9yIG5vdy5cbiAgICBjb25zdCBwcmVFbGVtZW50OiBIVE1MUHJlRWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3ByZScpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcHJlRWxlbWVudCk7XG4gICAgY29uc3QgY29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnY29kZScpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHByZUVsZW1lbnQsIGNvZGVFbGVtZW50KTtcbiAgICAvLyBTZXQgLmhpZ2hsaWdodCBjbGFzcyBpbnRvIDxjb2RlPiBlbGVtZW50XG4gICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3MoY29kZUVsZW1lbnQsICdoaWdobGlnaHQnKTtcbiAgICBjb2RlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIGNvZGVTdHIpO1xuICAgIHJldHVybiBwcmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRyaW0gbGVhZGluZyBhbmQgdHJhaWxpbmcgbmV3bGluZXNcbiAgICBjb250ZW50cyA9IGNvbnRlbnRzLnJlcGxhY2UoL14oXFxzfFxcdCkqXFxuKy9nLCAnJykucmVwbGFjZSgvKFxcc3xcXHQpKlxcbisoXFxzfFxcdCkqJC9nLCAnJyk7XG4gICAgLy8gU3BsaXQgbWFya3VwIGJ5IGxpbmUgY2hhcmFjdGVyc1xuICAgIGxldCBsaW5lczogc3RyaW5nW10gPSBjb250ZW50cy5zcGxpdCgnXFxuJyk7XG5cbiAgICAvLyBjaGVjayBob3cgbXVjaCBpbmRlbnRhdGlvbiBpcyB1c2VkIGJ5IHRoZSBmaXJzdCBhY3R1YWwgY29kZSBsaW5lXG4gICAgY29uc3QgZmlyc3RMaW5lV2hpdGVzcGFjZTogc3RyaW5nID0gbGluZXNbMF0ubWF0Y2goL14oXFxzfFxcdCkqLylbMF07XG5cbiAgICAvLyBSZW1vdmUgYWxsIGluZGVudGF0aW9uIHNwYWNlcyBzbyBjb2RlIGNhbiBiZSBwYXJzZWQgY29ycmVjdGx5XG4gICAgY29uc3Qgc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14nICsgZmlyc3RMaW5lV2hpdGVzcGFjZSk7XG4gICAgbGluZXMgPSBsaW5lcy5tYXAoZnVuY3Rpb24gKGxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbGluZVxuICAgICAgICAucmVwbGFjZSgnPVwiXCInLCAnJykgLy8gcmVtb3ZlIGVtcHR5IHZhbHVlc1xuICAgICAgICAucmVwbGFjZShzdGFydGluZ1doaXRlc3BhY2VSZWdleCwgJycpXG4gICAgICAgIC5yZXBsYWNlKC9cXHMrJC8sICcnKTsgLy8gcmVtb3ZlIHRyYWlsaW5nIHdoaXRlIHNwYWNlc1xuICAgIH0pO1xuXG4gICAgY29uc3QgY29kZVRvUGFyc2U6IHN0cmluZyA9IGxpbmVzXG4gICAgICAuam9pbignXFxuJylcbiAgICAgIC5yZXBsYWNlKC9cXHsgXFx7L2dpLCAne3snKVxuICAgICAgLnJlcGxhY2UoL1xcfSBcXH0vZ2ksICd9fScpXG4gICAgICAucmVwbGFjZSgvJmx0Oy9naSwgJzwnKVxuICAgICAgLnJlcGxhY2UoLyZndDsvZ2ksICc+Jyk7IC8vIHJlcGxhY2Ugd2l0aCA8IGFuZCA+IHRvIHJlbmRlciBIVE1MIGluIEFuZ3VsYXJcbiAgICB0aGlzLmNvcHlDb250ZW50ID0gY29kZVRvUGFyc2U7XG4gICAgLy8gUGFyc2UgY29kZSB3aXRoIGhpZ2hsaWdodC5qcyBkZXBlbmRpbmcgb24gbGFuZ3VhZ2VcbiAgICBjb25zdCBoaWdobGlnaHRlZENvZGU6IGFueSA9IGhsanMuaGlnaGxpZ2h0KHRoaXMuX2xhbmcsIGNvZGVUb1BhcnNlLCB0cnVlKTtcbiAgICBoaWdobGlnaHRlZENvZGUudmFsdWUgPSBoaWdobGlnaHRlZENvZGUudmFsdWVcbiAgICAgIC5yZXBsYWNlKC89PHNwYW4gY2xhc3M9XCJobGpzLXZhbHVlXCI+XCJcIjxcXC9zcGFuPi9naSwgJycpXG4gICAgICAucmVwbGFjZSgnPGhlYWQ+JywgJycpXG4gICAgICAucmVwbGFjZSgnPGhlYWQvPicsICcnKTtcbiAgICByZXR1cm4gaGlnaGxpZ2h0ZWRDb2RlLnZhbHVlO1xuICB9XG59XG4iXX0=
@@ -20,4 +20,4 @@ CovalentHighlightModule.decorators = [
20
20
  exports: [TdHighlightComponent],
21
21
  },] }
22
22
  ];
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9oaWdobGlnaHQvaGlnaGxpZ2h0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBTzFGLE1BQU0sT0FBTyx1QkFBdUI7OztZQUxuQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDO2dCQUMxRixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBQztnQkFDL0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgVGRIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuL2hpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFRkQ29weUNvZGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvcHktY29kZS1idXR0b24vY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDbGlwYm9hcmRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1RkSGlnaGxpZ2h0Q29tcG9uZW50LCBUZENvcHlDb2RlQnV0dG9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1RkSGlnaGxpZ2h0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRIaWdobGlnaHRNb2R1bGUge31cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vaGlnaGxpZ2h0LyIsInNvdXJjZXMiOlsiaGlnaGxpZ2h0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBTzFGLE1BQU0sT0FBTyx1QkFBdUI7OztZQUxuQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDO2dCQUMxRixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBQztnQkFDL0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgVGRIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuL2hpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFRkQ29weUNvZGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvcHktY29kZS1idXR0b24vY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDbGlwYm9hcmRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1RkSGlnaGxpZ2h0Q29tcG9uZW50LCBUZENvcHlDb2RlQnV0dG9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1RkSGlnaGxpZ2h0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRIaWdobGlnaHRNb2R1bGUge31cbiJdfQ==
package/esm2015/index.js CHANGED
@@ -4,4 +4,4 @@
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
6
  export { TdHighlightComponent, CovalentHighlightModule, TdCopyCodeButtonComponent } from './public_api';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vaGlnaGxpZ2h0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUZBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2hpZ2hsaWdodC8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUZBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -6,4 +6,4 @@
6
6
  export { TdHighlightComponent } from './highlight.component';
7
7
  export { CovalentHighlightModule } from './highlight.module';
8
8
  export { TdCopyCodeButtonComponent } from './copy-code-button/copy-code-button.component';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9oaWdobGlnaHQvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFDQUFjLHVCQUF1QixDQUFDO0FBQ3RDLHdDQUFjLG9CQUFvQixDQUFDO0FBQ25DLDBDQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oaWdobGlnaHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGlnaGxpZ2h0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcHktY29kZS1idXR0b24vY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQnO1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vaGlnaGxpZ2h0LyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFDQUFjLHVCQUF1QixDQUFDO0FBQ3RDLHdDQUFjLG9CQUFvQixDQUFDO0FBQ25DLDBDQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oaWdobGlnaHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGlnaGxpZ2h0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcHktY29kZS1idXR0b24vY29weS1jb2RlLWJ1dHRvbi5jb21wb25lbnQnO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-highlight.js","sources":["../../../../src/platform/highlight/highlight.component.ts","../../../../src/platform/highlight/copy-code-button/copy-code-button.component.ts","../../../../src/platform/highlight/highlight.module.ts"],"sourcesContent":["import {\n Component,\n AfterViewInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Renderer2,\n SecurityContext,\n ViewChild,\n ChangeDetectorRef,\n AfterViewChecked,\n TemplateRef,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ICopyCodeTooltips } from '.';\n\ndeclare const require: any;\n/* tslint:disable-next-line */\nlet hljs: any = require('highlight.js/lib');\n\n@Component({\n selector: 'td-highlight',\n styleUrls: ['./highlight.component.scss'],\n templateUrl: './highlight.component.html',\n})\nexport class TdHighlightComponent implements AfterViewInit, AfterViewChecked {\n private _initialized: boolean = false;\n\n private _content: string;\n private _lang: string = 'typescript';\n\n /**\n * content?: string\n *\n * Code content to be parsed as highlighted html.\n * Used to load data dynamically.\n *\n * e.g. `.html`, `.ts` , etc.\n */\n @Input('content')\n set content(content: string) {\n this._content = content;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n /**\n * lang?: string\n *\n * Language of the code content to be parsed as highlighted html.\n * Defaults to `typescript`\n *\n * e.g. `typescript`, `html` , etc.\n */\n\n @Input('codeLang')\n set codeLang(lang: string) {\n this.setLanguage(lang);\n }\n /** @deprecated - removed completely @4.0.0 */\n @Input()\n set lang(lang: string) {\n // tslint:disable-next-line: no-console\n console.warn('DEPRECATION WARNING: switch to codeLang attribute as lang attribute is deprecated.');\n this.setLanguage(lang);\n }\n\n copyContent: string;\n\n /**\n * contentReady?: function\n * Event emitted after the highlight content rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('highlightComponent') highlightComp: ElementRef;\n @ViewChild('copyComponent') copyComp: ElementRef;\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewChecked(): void {\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent((<HTMLElement>this.highlightComp.nativeElement).textContent);\n } else {\n this._loadContent(this._content);\n }\n this._initialized = true;\n }\n\n setLanguage(lang: string): void {\n if (!lang) {\n throw new Error('Error: language attribute must be defined in TdHighlightComponent.');\n }\n this._lang = lang;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * General method to parse a string of code into HTML Elements and load them into the container\n */\n private _loadContent(code: string): void {\n if (code && code.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(code));\n if (this.copyCodeToClipboard) {\n this._renderer.appendChild(this._elementRef.nativeElement, this.copyComp.nativeElement);\n }\n }\n this.contentReady.emit();\n }\n\n private _elementFromString(codeStr: string): HTMLPreElement {\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 preElement: HTMLPreElement = this._renderer.createElement('pre');\n this._renderer.appendChild(this._elementRef.nativeElement, preElement);\n const codeElement: HTMLElement = this._renderer.createElement('code');\n this._renderer.appendChild(preElement, codeElement);\n // Set .highlight class into <code> element\n this._renderer.addClass(codeElement, 'highlight');\n codeElement.innerHTML = this._domSanitizer.sanitize(SecurityContext.HTML, codeStr);\n return preElement;\n }\n\n private _render(contents: string): string {\n // Trim leading and trailing newlines\n contents = contents.replace(/^(\\s|\\t)*\\n+/g, '').replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markup by line characters\n let lines: string[] = contents.split('\\n');\n\n // check how much indentation is used by the first actual code line\n const firstLineWhitespace: string = lines[0].match(/^(\\s|\\t)*/)[0];\n\n // Remove all indentation spaces so code can be parsed correctly\n const startingWhitespaceRegex: RegExp = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line\n .replace('=\"\"', '') // remove empty values\n .replace(startingWhitespaceRegex, '')\n .replace(/\\s+$/, ''); // remove trailing white spaces\n });\n\n const codeToParse: string = lines\n .join('\\n')\n .replace(/\\{ \\{/gi, '{{')\n .replace(/\\} \\}/gi, '}}')\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>'); // replace with < and > to render HTML in Angular\n this.copyContent = codeToParse;\n // Parse code with highlight.js depending on language\n const highlightedCode: any = hljs.highlight(this._lang, codeToParse, true);\n highlightedCode.value = highlightedCode.value\n .replace(/=<span class=\"hljs-value\">\"\"<\\/span>/gi, '')\n .replace('<head>', '')\n .replace('<head/>', '');\n return highlightedCode.value;\n }\n}\n","import { Component, OnInit, Input, ViewChild, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nexport interface ICopyCodeTooltips {\n copy?: string;\n copied?: string;\n}\n\n@Component({\n selector: 'td-copy-code-button',\n templateUrl: './copy-code-button.component.html',\n styleUrls: ['./copy-code-button.component.scss'],\n})\nexport class TdCopyCodeButtonComponent {\n // private _copyCodeTooltips: ICopyCodeTooltips = {};\n @Input() copiedContent: string;\n @Input() copyCodeToClipboard: boolean = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n get copyTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copy) || 'Copy';\n }\n\n get copiedTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copied) || 'Copied';\n }\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n textCopied(event: boolean): void {\n if (event) {\n this.tooltip.hide();\n this.tooltip.message = this.copiedTooltip;\n this.tooltip.show();\n }\n }\n @HostListener('mouseleave')\n initializeTooltip(): void {\n setTimeout(() => {\n this.tooltip.message = this.copyTooltip;\n }, 200);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { TdHighlightComponent } from './highlight.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdCopyCodeButtonComponent } from './copy-code-button/copy-code-button.component';\n\n@NgModule({\n imports: [CommonModule, ClipboardModule, MatIconModule, MatTooltipModule, MatButtonModule],\n declarations: [TdHighlightComponent, TdCopyCodeButtonComponent],\n exports: [TdHighlightComponent],\n})\nexport class CovalentHighlightModule {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-highlight.js","sources":["../../../../src/platform/highlight/highlight.component.ts","../../../src/platform/highlight/copy-code-button/copy-code-button.component.ts","../../../../src/platform/highlight/highlight.module.ts"],"sourcesContent":["import {\n Component,\n AfterViewInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Renderer2,\n SecurityContext,\n ViewChild,\n ChangeDetectorRef,\n AfterViewChecked,\n TemplateRef,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ICopyCodeTooltips } from '.';\n\ndeclare const require: any;\n/* tslint:disable-next-line */\nlet hljs: any = require('highlight.js/lib');\n\n@Component({\n selector: 'td-highlight',\n styleUrls: ['./highlight.component.scss'],\n templateUrl: './highlight.component.html',\n})\nexport class TdHighlightComponent implements AfterViewInit, AfterViewChecked {\n private _initialized: boolean = false;\n\n private _content: string;\n private _lang: string = 'typescript';\n\n /**\n * content?: string\n *\n * Code content to be parsed as highlighted html.\n * Used to load data dynamically.\n *\n * e.g. `.html`, `.ts` , etc.\n */\n @Input('content')\n set content(content: string) {\n this._content = content;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n */\n @Input() copyCodeToClipboard: boolean = false;\n\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n /**\n * lang?: string\n *\n * Language of the code content to be parsed as highlighted html.\n * Defaults to `typescript`\n *\n * e.g. `typescript`, `html` , etc.\n */\n\n @Input('codeLang')\n set codeLang(lang: string) {\n this.setLanguage(lang);\n }\n /** @deprecated - removed completely @4.0.0 */\n @Input()\n set lang(lang: string) {\n // tslint:disable-next-line: no-console\n console.warn('DEPRECATION WARNING: switch to codeLang attribute as lang attribute is deprecated.');\n this.setLanguage(lang);\n }\n\n copyContent: string;\n\n /**\n * contentReady?: function\n * Event emitted after the highlight content rendering is finished.\n */\n @Output() contentReady: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('highlightComponent') highlightComp: ElementRef;\n @ViewChild('copyComponent') copyComp: ElementRef;\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewChecked(): void {\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n if (!this._content) {\n this._loadContent((<HTMLElement>this.highlightComp.nativeElement).textContent);\n } else {\n this._loadContent(this._content);\n }\n this._initialized = true;\n }\n\n setLanguage(lang: string): void {\n if (!lang) {\n throw new Error('Error: language attribute must be defined in TdHighlightComponent.');\n }\n this._lang = lang;\n if (this._initialized) {\n this._loadContent(this._content);\n }\n }\n\n /**\n * General method to parse a string of code into HTML Elements and load them into the container\n */\n private _loadContent(code: string): void {\n if (code && code.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(code));\n if (this.copyCodeToClipboard) {\n this._renderer.appendChild(this._elementRef.nativeElement, this.copyComp.nativeElement);\n }\n }\n this.contentReady.emit();\n }\n\n private _elementFromString(codeStr: string): HTMLPreElement {\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 preElement: HTMLPreElement = this._renderer.createElement('pre');\n this._renderer.appendChild(this._elementRef.nativeElement, preElement);\n const codeElement: HTMLElement = this._renderer.createElement('code');\n this._renderer.appendChild(preElement, codeElement);\n // Set .highlight class into <code> element\n this._renderer.addClass(codeElement, 'highlight');\n codeElement.innerHTML = this._domSanitizer.sanitize(SecurityContext.HTML, codeStr);\n return preElement;\n }\n\n private _render(contents: string): string {\n // Trim leading and trailing newlines\n contents = contents.replace(/^(\\s|\\t)*\\n+/g, '').replace(/(\\s|\\t)*\\n+(\\s|\\t)*$/g, '');\n // Split markup by line characters\n let lines: string[] = contents.split('\\n');\n\n // check how much indentation is used by the first actual code line\n const firstLineWhitespace: string = lines[0].match(/^(\\s|\\t)*/)[0];\n\n // Remove all indentation spaces so code can be parsed correctly\n const startingWhitespaceRegex: RegExp = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line: string): string {\n return line\n .replace('=\"\"', '') // remove empty values\n .replace(startingWhitespaceRegex, '')\n .replace(/\\s+$/, ''); // remove trailing white spaces\n });\n\n const codeToParse: string = lines\n .join('\\n')\n .replace(/\\{ \\{/gi, '{{')\n .replace(/\\} \\}/gi, '}}')\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>'); // replace with < and > to render HTML in Angular\n this.copyContent = codeToParse;\n // Parse code with highlight.js depending on language\n const highlightedCode: any = hljs.highlight(this._lang, codeToParse, true);\n highlightedCode.value = highlightedCode.value\n .replace(/=<span class=\"hljs-value\">\"\"<\\/span>/gi, '')\n .replace('<head>', '')\n .replace('<head/>', '');\n return highlightedCode.value;\n }\n}\n","import { Component, OnInit, Input, ViewChild, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nexport interface ICopyCodeTooltips {\n copy?: string;\n copied?: string;\n}\n\n@Component({\n selector: 'td-copy-code-button',\n templateUrl: './copy-code-button.component.html',\n styleUrls: ['./copy-code-button.component.scss'],\n})\nexport class TdCopyCodeButtonComponent {\n // private _copyCodeTooltips: ICopyCodeTooltips = {};\n @Input() copiedContent: string;\n @Input() copyCodeToClipboard: boolean = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n @Input() copyCodeTooltips: ICopyCodeTooltips = {};\n\n get copyTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copy) || 'Copy';\n }\n\n get copiedTooltip(): string {\n return (this.copyCodeTooltips && this.copyCodeTooltips.copied) || 'Copied';\n }\n\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n textCopied(event: boolean): void {\n if (event) {\n this.tooltip.hide();\n this.tooltip.message = this.copiedTooltip;\n this.tooltip.show();\n }\n }\n @HostListener('mouseleave')\n initializeTooltip(): void {\n setTimeout(() => {\n this.tooltip.message = this.copyTooltip;\n }, 200);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { TdHighlightComponent } from './highlight.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdCopyCodeButtonComponent } from './copy-code-button/copy-code-button.component';\n\n@NgModule({\n imports: [CommonModule, ClipboardModule, MatIconModule, MatTooltipModule, MatButtonModule],\n declarations: [TdHighlightComponent, TdCopyCodeButtonComponent],\n exports: [TdHighlightComponent],\n})\nexport class CovalentHighlightModule {}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@covalent/highlight",
3
- "version": "3.1.1-beta.1",
3
+ "version": "vv3.1.2-beta.7",
4
4
  "description": "Teradata UI Platform Highlight Module",
5
5
  "keywords": [
6
6
  "angular",
@@ -32,11 +32,11 @@
32
32
  "tslib": "^2.0.0"
33
33
  },
34
34
  "peerDependencies": {
35
- "@angular/common": "^9.0.0 || ^10.0.0-0",
36
- "@angular/core": "^9.0.0 || ^10.0.0-0",
37
- "@angular/platform-browser": "^9.0.0 || ^10.0.0-0",
38
- "@angular/cdk": "^9.0.0 || ^10.0.0-0",
39
- "@angular/material": "^9.0.0 || ^10.0.0-0"
35
+ "@angular/common": "^9.0.0 || ^10.0.0-0 || ^11.0.0-0",
36
+ "@angular/core": "^9.0.0 || ^10.0.0-0 || ^11.0.0-0",
37
+ "@angular/platform-browser": "^9.0.0 || ^10.0.0-0 || ^11.0.0-0",
38
+ "@angular/cdk": "^9.0.0 || ^10.0.0-0 || ^11.0.0-0",
39
+ "@angular/material": "^9.0.0 || ^10.0.0-0 || ^11.0.0-0"
40
40
  },
41
41
  "main": "bundles/covalent-highlight.umd.js",
42
42
  "module": "fesm2015/covalent-highlight.js",