{"version":3,"file":"ngx-highlightjs.mjs","sources":["../../../projects/ngx-highlightjs/src/lib/highlight.model.ts","../../../projects/ngx-highlightjs/src/lib/trusted-types.ts","../../../projects/ngx-highlightjs/src/lib/highlight.loader.ts","../../../projects/ngx-highlightjs/src/lib/highlight.service.ts","../../../projects/ngx-highlightjs/src/lib/highlight.ts","../../../projects/ngx-highlightjs/src/lib/highlight.module.ts","../../../projects/ngx-highlightjs/src/ngx-highlightjs.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * Full documentation is available here https://highlightjs.readthedocs.io/en/latest/api.html\r\n */\r\n\r\nexport interface HighlightLibrary {\r\n\r\n  /**\r\n   * Core highlighting function. Accepts the code to highlight (string) and a list of options (object)\r\n   * @param code Accepts the code to highlight\r\n   * @param language must be present and specify the language name or alias of the grammar to be used for highlighting\r\n   * @param ignoreIllegals (optional) when set to true it forces highlighting to finish even in case of detecting illegal syntax for the language instead of throwing an exception.\r\n   */\r\n  highlight(code: string, { language, ignoreIllegals }: { language: string, ignoreIllegals: boolean }): HighlightResult;\r\n\r\n  /**\r\n   * Highlighting with language detection.\r\n   * @param value Accepts a string with the code to highlight\r\n   * @param languageSubset An optional array of language names and aliases restricting detection to only those languages.\r\n   * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n   */\r\n  highlightAuto(value: string, languageSubset: string[]): HighlightAutoResult;\r\n\r\n  /**\r\n   * Applies highlighting to a DOM node containing code.\r\n   * This function is the one to use to apply highlighting dynamically after page load or within initialization code of third-party\r\n   * JavaScript frameworks.\r\n   * The function uses language detection by default but you can specify the language in the class attribute of the DOM node.\r\n   * See the scopes reference for all available language names and scopes.\r\n   * @param element Element to highlight\r\n   */\r\n  highlightElement(element: HTMLElement): void;\r\n\r\n  /**\r\n   * Applies highlighting to all elements on a page matching the configured cssSelector. The default cssSelector value is 'pre code',\r\n   * which highlights all code blocks. This can be called before or after the page’s onload event has fired.\r\n   */\r\n  highlightAll(): void;\r\n\r\n  /**\r\n   * Configures global options:\r\n   * @param config HighlightJs configuration argument\r\n   */\r\n  configure(config: HighlightConfig): void;\r\n\r\n  /**\r\n   * Adds new language to the library under the specified name. Used mostly internally.\r\n   * @param languageName A string with the name of the language being registered\r\n   * @param languageDefinition A function that returns an object which represents the language definition.\r\n   * The function is passed the hljs object to be able to use common regular expressions defined within it.\r\n   */\r\n  registerLanguage(languageName: string, languageDefinition: () => any): void;\r\n\r\n  /**\r\n   * Removes a language and its aliases from the library. Used mostly internall\r\n   * @param languageName: a string with the name of the language being removed.\r\n   */\r\n  unregisterLanguage(languageName: string): void;\r\n\r\n  /**\r\n   * Adds new language alias or aliases to the library for the specified language name defined under languageName key.\r\n   * @param alias: A string or array with the name of alias being registered\r\n   * @param languageName: the language name as specified by registerLanguage.\r\n   */\r\n  registerAliases(alias: string | string[], { languageName }: { languageName: string }): void;\r\n\r\n  /**\r\n   * @return The languages names list.\r\n   */\r\n  listLanguages(): string[];\r\n\r\n  /**\r\n   * Looks up a language by name or alias.\r\n   * @param name Language name\r\n   * @return The language object if found, undefined otherwise.\r\n   */\r\n  getLanguage(name: string): any;\r\n\r\n  /**\r\n   * Enables safe mode. This is the default mode, providing the most reliable experience for production usage.\r\n   */\r\n  safeMode(): void;\r\n\r\n  /**\r\n   * Enables debug/development mode.\r\n   */\r\n  debugMode(): void;\r\n\r\n  /**\r\n   * Add line numbers to code element\r\n   * @param el Code element\r\n   */\r\n  lineNumbersBlock(el: Element): void;\r\n}\r\n\r\nexport interface HighlightConfig {\r\n  /** classPrefix: a string prefix added before class names in the generated markup, used for backwards compatibility with stylesheets. */\r\n  classPrefix?: string;\r\n  /** languages: an array of language names and aliases restricting auto detection to only these languages. */\r\n  languages?: string[];\r\n  /** languageDetectRe: a regex to configure how CSS class names map to language (allows class names like say color-as-php vs the default of language-php, etc.) */\r\n  languageDetectRe: string;\r\n  /** noHighlightRe: a regex to configure which CSS classes are to be skipped completely. */\r\n  noHighlightRe: string;\r\n  /** a CSS selector to configure which elements are affected by hljs.highlightAll. Defaults to 'pre code'. */\r\n  cssSelector: string;\r\n}\r\n\r\nexport interface HighlightResult {\r\n  language?: string;\r\n  value?: string | undefined;\r\n  relevance?: number;\r\n  top: any;\r\n  code: string;\r\n  illegal: boolean;\r\n}\r\n\r\nexport interface HighlightAutoResult {\r\n  language?: string;\r\n  secondBest?: any;\r\n  value?: string | undefined;\r\n  relevance?: number;\r\n}\r\n\r\nexport interface HighlightOptions {\r\n  config?: HighlightConfig;\r\n  languages?: Record<string, () => Promise<any>>;\r\n  coreLibraryLoader?: () => Promise<any>;\r\n  fullLibraryLoader?: () => Promise<any>;\r\n  lineNumbersLoader?: () => Promise<any>;\r\n  themePath?: string;\r\n}\r\n\r\nexport const HIGHLIGHT_OPTIONS = new InjectionToken<HighlightOptions>('HIGHLIGHT_OPTIONS');\r\n","/**\r\n * Enable usage of the library together with \"trusted-types\" HTTP Content-Security-Policy (CSP)\r\n *\r\n * Can be added to angular.json -> serve -> options -> headers to try it out in DEV mode\r\n * \"Content-Security-Policy\": \"trusted-types ngx-highlightjs; require-trusted-types-for 'script'\"\r\n *\r\n * Read more...\r\n * Angular Security: https://angular.io/guide/security#enforcing-trusted-types\r\n * Trusted Types: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/trusted-types\r\n */\r\nlet policy;\r\n\r\nfunction getPolicy() {\r\n  if (!policy) {\r\n    try {\r\n      policy = (window as any)?.trustedTypes?.createPolicy('ngx-highlightjs', {\r\n        createHTML: (s: string) => s,\r\n      });\r\n    } catch {\r\n      // trustedTypes.createPolicy throws if called with a name that is\r\n      // already registered, even in report-only mode. Until the API changes,\r\n      // catch the error not to break the applications functionally. In such\r\n      // cases, the code will fall back to using strings.\r\n    }\r\n  }\r\n  return policy;\r\n}\r\n\r\nexport function trustedHTMLFromStringBypass(html: string): string {\r\n  return getPolicy()?.createHTML(html) || html;\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID, Optional } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { BehaviorSubject, Observable, from, EMPTY, zip, throwError } from 'rxjs';\r\nimport { catchError, tap, map, switchMap, filter, take } from 'rxjs/operators';\r\nimport { HIGHLIGHT_OPTIONS, HighlightLibrary, HighlightOptions } from './highlight.model';\r\n\r\n// @dynamic\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class HighlightLoader {\r\n  // Stream that emits when hljs library is loaded and ready to use\r\n  private readonly _ready = new BehaviorSubject<HighlightLibrary | null>(null);\r\n  readonly ready: Observable<HighlightLibrary> = this._ready.asObservable().pipe(\r\n    filter((hljs: HighlightLibrary | null) => !!hljs),\r\n    map((hljs: HighlightLibrary | null) => hljs as HighlightLibrary),\r\n    take(1)\r\n  );\r\n\r\n  private _themeLinkElement: HTMLLinkElement;\r\n\r\n  constructor(@Inject(DOCUMENT) private doc: any,\r\n              @Inject(PLATFORM_ID) platformId: object,\r\n              @Optional() @Inject(HIGHLIGHT_OPTIONS) private _options: HighlightOptions) {\r\n    if (isPlatformBrowser(platformId)) {\r\n      // Check if hljs is already available\r\n      if (doc.defaultView.hljs) {\r\n        this._ready.next(doc.defaultView.hljs);\r\n      } else {\r\n        // Load hljs library\r\n        this._loadLibrary().pipe(\r\n          switchMap((hljs: HighlightLibrary) => {\r\n            if (this._options && this._options.lineNumbersLoader) {\r\n              // Make hljs available on window object (required for the line numbers library)\r\n              doc.defaultView.hljs = hljs;\r\n              // Load line numbers library\r\n              return this.loadLineNumbers().pipe(tap(() => this._ready.next(hljs)));\r\n            } else {\r\n              this._ready.next(hljs);\r\n              return EMPTY;\r\n            }\r\n          }),\r\n          catchError((e: any) => {\r\n            console.error('[HLJS] ', e);\r\n            return EMPTY;\r\n          })\r\n        ).subscribe();\r\n      }\r\n\r\n      // Load highlighting theme\r\n      if (this._options?.themePath) {\r\n        this.loadTheme(this._options.themePath);\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Lazy-Load highlight.js library\r\n   */\r\n  private _loadLibrary(): Observable<any> {\r\n    if (this._options) {\r\n      if (this._options.fullLibraryLoader && this._options.coreLibraryLoader) {\r\n        return throwError(() => 'The full library and the core library were imported, only one of them should be imported!');\r\n      }\r\n      if (this._options.fullLibraryLoader && this._options.languages) {\r\n        return throwError(() => 'The highlighting languages were imported they are not needed!');\r\n      }\r\n      if (this._options.coreLibraryLoader && !this._options.languages) {\r\n        return throwError(() => 'The highlighting languages were not imported!');\r\n      }\r\n      if (!this._options.coreLibraryLoader && this._options.languages) {\r\n        return throwError(() => 'The core library was not imported!');\r\n      }\r\n      if (this._options.fullLibraryLoader) {\r\n        return this.loadFullLibrary();\r\n      }\r\n      if (this._options.coreLibraryLoader && this._options.languages && Object.keys(this._options.languages).length) {\r\n        return this.loadCoreLibrary().pipe(switchMap((hljs: HighlightLibrary) => this._loadLanguages(hljs)));\r\n      }\r\n    }\r\n    return throwError(() => 'Highlight.js library was not imported!');\r\n  }\r\n\r\n  /**\r\n   * Lazy-load highlight.js languages\r\n   */\r\n  private _loadLanguages(hljs: HighlightLibrary): Observable<any> {\r\n    const languages = Object.entries(this._options.languages).map(([langName, langLoader]: [string, () => Promise<any>]) =>\r\n      importModule(langLoader()).pipe(\r\n        tap((langFunc: any) => hljs.registerLanguage(langName, langFunc))\r\n      )\r\n    );\r\n    return zip(...languages).pipe(map(() => hljs));\r\n  }\r\n\r\n\r\n  /**\r\n   * Import highlight.js core library\r\n   */\r\n  private loadCoreLibrary(): Observable<HighlightLibrary> {\r\n    return importModule(this._options.coreLibraryLoader!());\r\n  }\r\n\r\n  /**\r\n   * Import highlight.js library with all languages\r\n   */\r\n  private loadFullLibrary(): Observable<HighlightLibrary> {\r\n    return importModule(this._options.fullLibraryLoader!());\r\n  }\r\n\r\n  /**\r\n   * Import line numbers library\r\n   */\r\n  private loadLineNumbers(): Observable<any> {\r\n    return importModule(this._options.lineNumbersLoader!());\r\n  }\r\n\r\n  /**\r\n   * Reload theme styles\r\n   */\r\n  setTheme(path: string): void {\r\n    this._themeLinkElement.href = path;\r\n  }\r\n\r\n  /**\r\n   * Load theme\r\n   */\r\n  private loadTheme(path: string): void {\r\n    this._themeLinkElement = this.doc.createElement('link');\r\n    this._themeLinkElement.href = path;\r\n    this._themeLinkElement.type = 'text/css';\r\n    this._themeLinkElement.rel = 'stylesheet';\r\n    this._themeLinkElement.media = 'screen,print';\r\n    this.doc.head.appendChild(this._themeLinkElement);\r\n  }\r\n}\r\n\r\n/**\r\n * Map loader response to module object\r\n */\r\nconst importModule = (moduleLoader: Promise<any>): Observable<any> => {\r\n  return from(moduleLoader).pipe(\r\n    filter((module: any) => !!module && !!module.default),\r\n    map((module: any) => module.default)\r\n  );\r\n};\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map, tap } from 'rxjs/operators';\r\nimport {\r\n  HighlightConfig,\r\n  HighlightResult,\r\n  HighlightLibrary,\r\n  HighlightOptions,\r\n  HIGHLIGHT_OPTIONS,\r\n  HighlightAutoResult\r\n} from './highlight.model';\r\nimport { HighlightLoader } from './highlight.loader';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class HighlightJS {\r\n\r\n  private _hljs: HighlightLibrary | null = null;\r\n\r\n  // A reference for hljs library\r\n  get hljs(): HighlightLibrary | null {\r\n    return this._hljs;\r\n  }\r\n\r\n  constructor(private _loader: HighlightLoader, @Optional() @Inject(HIGHLIGHT_OPTIONS) options: HighlightOptions) {\r\n    // Load highlight.js library on init\r\n    _loader.ready.subscribe((hljs: HighlightLibrary) => {\r\n      this._hljs = hljs;\r\n      if (options && options.config) {\r\n        // Set global config if present\r\n        hljs.configure(options.config);\r\n        if (hljs.listLanguages().length < 1) {\r\n          console.error('[HighlightJS]: No languages were registered!');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Core highlighting function. Accepts the code to highlight (string) and a list of options (object)\r\n   * @param code Accepts the code to highlight\r\n   * @param language must be present and specify the language name or alias of the grammar to be used for highlighting\r\n   * @param ignoreIllegals (optional) when set to true it forces highlighting to finish even in case of detecting illegal syntax for the language instead of throwing an exception.\r\n   */\r\n  highlight(code: string, { language, ignoreIllegals }: { language: string, ignoreIllegals: boolean }): Observable<HighlightResult> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.highlight(code, { language, ignoreIllegals }))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Highlighting with language detection.\r\n   * @param value Accepts a string with the code to highlight\r\n   * @param languageSubset An optional array of language names and aliases restricting detection to only those languages.\r\n   * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n   */\r\n  highlightAuto(value: string, languageSubset: string[]): Observable<HighlightAutoResult> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.highlightAuto(value, languageSubset))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Applies highlighting to a DOM node containing code.\r\n   * This function is the one to use to apply highlighting dynamically after page load or within initialization code of third-party JavaScript frameworks.\r\n   * The function uses language detection by default but you can specify the language in the class attribute of the DOM node. See the scopes reference for all available language names and scopes.\r\n   * @param element\r\n   */\r\n  highlightElement(element: HTMLElement): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.highlightElement(element))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Applies highlighting to all elements on a page matching the configured cssSelector. The default cssSelector value is 'pre code',\r\n   * which highlights all code blocks. This can be called before or after the page’s onload event has fired.\r\n   */\r\n  highlightAll(): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.highlightAll())\r\n    );\r\n  }\r\n\r\n  /**\r\n   * @deprecated in version 12\r\n   * Configures global options:\r\n   * @param config HighlightJs configuration argument\r\n   */\r\n  configure(config: HighlightConfig): Observable<void> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.configure(config))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Adds new language to the library under the specified name. Used mostly internally.\r\n   * @param languageName A string with the name of the language being registered\r\n   * @param languageDefinition A function that returns an object which represents the language definition.\r\n   * The function is passed the hljs object to be able to use common regular expressions defined within it.\r\n   */\r\n  registerLanguage(languageName: string, languageDefinition: () => any): Observable<HighlightLibrary> {\r\n    return this._loader.ready.pipe(\r\n      tap((hljs: HighlightLibrary) => hljs.registerLanguage(languageName, languageDefinition))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Removes a language and its aliases from the library. Used mostly internall\r\n   * @param languageName: a string with the name of the language being removed.\r\n   */\r\n  unregisterLanguage(languageName: string): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      tap((hljs: HighlightLibrary) => hljs.unregisterLanguage(languageName))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Adds new language alias or aliases to the library for the specified language name defined under languageName key.\r\n   * @param alias: A string or array with the name of alias being registered\r\n   * @param languageName: the language name as specified by registerLanguage.\r\n   */\r\n  registerAliases(alias: string | string[], { languageName }: { languageName: string }): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      tap((hljs: HighlightLibrary) => hljs.registerAliases(alias, { languageName }))\r\n    );\r\n  }\r\n\r\n\r\n  /**\r\n   * @return The languages names list.\r\n   */\r\n  listLanguages(): Observable<string[] | undefined> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.listLanguages())\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Looks up a language by name or alias.\r\n   * @param name Language name\r\n   * @return The language object if found, undefined otherwise.\r\n   */\r\n  getLanguage(name: string): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.getLanguage(name))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Enables safe mode. This is the default mode, providing the most reliable experience for production usage.\r\n   */\r\n  safeMode(): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.safeMode())\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Enables debug/development mode.\r\n   */\r\n  debugMode(): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      map((hljs: HighlightLibrary) => hljs.debugMode())\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Display line numbers\r\n   * @param el Code element\r\n   */\r\n  lineNumbersBlock(el: HTMLElement): Observable<any> {\r\n    return this._loader.ready.pipe(\r\n      filter((hljs: HighlightLibrary) => !!hljs.lineNumbersBlock),\r\n      tap((hljs: HighlightLibrary) => hljs.lineNumbersBlock(el))\r\n    );\r\n  }\r\n}\r\n","import {\r\n  Directive,\r\n  Input,\r\n  Output,\r\n  Inject,\r\n  Optional,\r\n  EventEmitter,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  ElementRef,\r\n  SecurityContext\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { animationFrameScheduler } from 'rxjs';\r\nimport { HighlightJS } from './highlight.service';\r\nimport { HIGHLIGHT_OPTIONS, HighlightOptions, HighlightAutoResult } from './highlight.model';\r\nimport { trustedHTMLFromStringBypass } from './trusted-types';\r\n\r\n@Directive({\r\n  host: {\r\n    '[class.hljs]': 'true'\r\n  },\r\n  selector: '[highlight]'\r\n})\r\nexport class Highlight implements OnChanges {\r\n\r\n  // Highlighted Code\r\n  private readonly _nativeElement: HTMLElement;\r\n\r\n  // Temp observer to observe when line numbers has been added to code element\r\n  private _lineNumbersObs: any;\r\n\r\n  // Highlight code input\r\n  @Input('highlight') code: string | null;\r\n\r\n  // An optional array of language names and aliases restricting detection to only those languages.\r\n  // The subset can also be set with configure, but the local parameter overrides the option if set.\r\n  @Input() languages!: string[];\r\n\r\n  // Show line numbers\r\n  @Input() lineNumbers!: boolean;\r\n\r\n  // Stream that emits when code string is highlighted\r\n  @Output() highlighted = new EventEmitter<HighlightAutoResult>();\r\n\r\n  constructor(el: ElementRef,\r\n              private _hljs: HighlightJS,\r\n              private _sanitizer: DomSanitizer,\r\n              @Optional() @Inject(HIGHLIGHT_OPTIONS) private _options: HighlightOptions) {\r\n    this._nativeElement = el.nativeElement;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (\r\n      changes?.code?.currentValue !== null &&\r\n      changes.code.currentValue !== changes.code.previousValue\r\n    ) {\r\n      if (this.code) {\r\n        this.highlightElement(this.code, this.languages);\r\n      } else {\r\n        // If string is empty, set the text content to empty\r\n        this.setTextContent('');\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Highlighting with language detection and fix markup.\r\n   * @param code Accepts a string with the code to highlight\r\n   * @param languages An optional array of language names and aliases restricting detection to only those languages.\r\n   * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n   */\r\n  highlightElement(code: string, languages: string[]): void {\r\n    // Set code text before highlighting\r\n    this.setTextContent(code);\r\n    this._hljs.highlightAuto(code, languages).subscribe((res: HighlightAutoResult) => {\r\n      // Set highlighted code\r\n      this.setInnerHTML(res?.value);\r\n      // Check if user want to show line numbers\r\n      if (this.lineNumbers && this._options && this._options.lineNumbersLoader) {\r\n        this.addLineNumbers();\r\n      }\r\n      // Forward highlight response to the highlighted output\r\n      this.highlighted.emit(res);\r\n    });\r\n  }\r\n\r\n  private addLineNumbers() {\r\n    // Clean up line numbers observer\r\n    this.destroyLineNumbersObserver();\r\n    animationFrameScheduler.schedule(() => {\r\n      // Add line numbers\r\n      this._hljs.lineNumbersBlock(this._nativeElement).subscribe();\r\n      // If lines count is 1, the line numbers library will not add numbers\r\n      // Observe changes to add 'hljs-line-numbers' class only when line numbers is added to the code element\r\n      this._lineNumbersObs = new MutationObserver(() => {\r\n        if (this._nativeElement.firstElementChild && this._nativeElement.firstElementChild.tagName.toUpperCase() === 'TABLE') {\r\n          this._nativeElement.classList.add('hljs-line-numbers');\r\n        }\r\n        this.destroyLineNumbersObserver();\r\n      });\r\n      this._lineNumbersObs.observe(this._nativeElement, { childList: true });\r\n    });\r\n  }\r\n\r\n  private destroyLineNumbersObserver() {\r\n    if (this._lineNumbersObs) {\r\n      this._lineNumbersObs.disconnect();\r\n      this._lineNumbersObs = null;\r\n    }\r\n  }\r\n\r\n  private setTextContent(content: string) {\r\n    animationFrameScheduler.schedule(() =>\r\n      this._nativeElement.textContent = content\r\n    );\r\n  }\r\n\r\n  private setInnerHTML(content: string | null) {\r\n    animationFrameScheduler.schedule(() =>\r\n      this._nativeElement.innerHTML = trustedHTMLFromStringBypass(\r\n        this._sanitizer.sanitize(SecurityContext.HTML, content) || ''\r\n      )\r\n    );\r\n  }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Highlight } from './highlight';\r\n\r\n@NgModule({\r\n  declarations: [Highlight],\r\n  exports: [Highlight]\r\n})\r\nexport class HighlightModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}