UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

1 lines 5.22 kB
{"version":3,"file":"igniteui-angular-chat-extras.mjs","sources":["../../../projects/igniteui-angular/chat-extras/src/markdown-service.ts","../../../projects/igniteui-angular/chat-extras/src/markdown-pipe.ts","../../../projects/igniteui-angular/chat-extras/src/igniteui-angular-chat-extras.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Marked } from 'marked';\nimport markedShiki from 'marked-shiki';\nimport { bundledThemes, createHighlighter } from 'shiki/bundle/web';\n\n\nconst DEFAULT_LANGUAGES = ['javascript', 'typescript', 'html', 'css'];\nconst DEFAULT_THEMES = {\n light: 'github-light',\n dark: 'github-dark'\n};\n\n@Injectable({ providedIn: 'root' })\nexport class IgxChatMarkdownService {\n\n private _instance: Marked;\n private _isInitialized: Promise<void>;\n\n private _initializeMarked(): void {\n this._instance = new Marked({\n breaks: true,\n gfm: true,\n extensions: [\n {\n name: 'link',\n renderer({ href, title, text }) {\n return `<a href=\"${href}\" target=\"_blank\" rel=\"noopener noreferrer\" ${title ? `title=\"${title}\"` : ''}>${text}</a>`;\n }\n }\n ]\n });\n }\n\n private async _initializeShiki(): Promise<void> {\n const highlighter = await createHighlighter({\n langs: DEFAULT_LANGUAGES,\n themes: Object.keys(bundledThemes)\n });\n\n this._instance.use(\n markedShiki({\n highlight(code, lang, _) {\n try {\n return highlighter.codeToHtml(code, {\n lang,\n themes: DEFAULT_THEMES,\n });\n\n } catch {\n return `<pre><code>${code}</code></pre>`;\n }\n }\n })\n );\n }\n\n\n constructor() {\n this._initializeMarked();\n this._isInitialized = this._initializeShiki();\n }\n\n public async parse(text: string): Promise<string> {\n await this._isInitialized;\n return await this._instance.parse(text);\n }\n}\n","import DOMPurify from 'dompurify';\nimport { inject, Pipe, type PipeTransform } from '@angular/core';\nimport { IgxChatMarkdownService } from './markdown-service';\nimport { DomSanitizer, type SafeHtml } from '@angular/platform-browser';\n\n\n@Pipe({ name: 'fromMarkdown' })\nexport class MarkdownPipe implements PipeTransform {\n private _service = inject(IgxChatMarkdownService);\n private _sanitizer = inject(DomSanitizer);\n\n\n public async transform(text?: string): Promise<SafeHtml> {\n return this._sanitizer.bypassSecurityTrustHtml(DOMPurify.sanitize(\n await this._service.parse(text ?? '')\n ));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}