{"version":3,"file":"ng-katex-2.mjs","sources":["../../../projects/ng-katex-2/src/lib/ng-katex.service.ts","../../../projects/ng-katex-2/src/lib/utils.ts","../../../projects/ng-katex-2/src/lib/ng-katex.directive.ts","../../../projects/ng-katex-2/src/lib/ng-katex.component.ts","../../../projects/ng-katex-2/src/lib/ng-katex-html.component.ts","../../../projects/ng-katex-2/src/lib/ng-katex-paragraph.component.ts","../../../projects/ng-katex-2/src/lib/ng-katex.module.ts","../../../projects/ng-katex-2/src/public-api.ts","../../../projects/ng-katex-2/src/ng-katex-2.ts"],"sourcesContent":["import { ElementRef, Injectable } from '@angular/core';\nimport { render, renderToString, KatexOptions } from 'katex';\n\n@Injectable()\nexport class KatexService {\n\n  render(equation: string, element: ElementRef, options?: KatexOptions) {\n    return render(equation, element.nativeElement, options);\n  }\n\n  renderToString(equation: string, options?: KatexOptions): string {\n    return renderToString(equation, options);\n  }\n}\n","import { inject } from \"@angular/core\";\nimport { KatexService } from \"./ng-katex.service\";\n\nexport const throwNoProviderError = () => {\n    \n    const katexService = inject(KatexService, {\n        optional: true,\n      });\n      if(!katexService) {\n    throw new Error(`\n        KatexService is not provided. Please provide it in your module\n        \n        If using modules:\n\n        import { KatexModule } from 'ng-katex';\n        import { BrowserModule } from '@angular/platform-browser';\n        ...\n        @NgModule({\n          imports: [\n            BrowserModule,\n            KatexModule,\n            ...\n          ],\n          declarations: [AppComponent],\n          bootstrap: [AppComponent]\n        })\n\n        class AppModule {}\n        \n        If using standalone bootstrapping:\n\n        import { bootstrapApplication } from '@angular/platform-browser';\n        import { importProvidersFrom } from '@angular/core';\n        import { KatexModule } from 'ng-katex';\n\n        bootstrapApplication(AppComponent, {\n          providers: [\n            importProvidersFrom(KatexModule)\n          ]\n        }).catch(err => console.error(err));\n\n        Docs: https://www.npmjs.com/package/ng-katex-2\n        `);\n    }\n}","import {\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  output,\n  OutputEmitterRef,\n} from '@angular/core';\nimport { KatexService } from './ng-katex.service';\nimport { KatexOptions } from 'katex';\nimport { throwNoProviderError } from './utils';\n\n@Directive({\n  selector: '[katex]',\n  standalone: true,\n})\nexport class KatexDirective {\n  private el: ElementRef = inject(ElementRef);\n  private katexService: KatexService = inject(KatexService);\n  equation: InputSignal<string> = input.required({\n    alias: 'katex',\n  });\n  options: InputSignal<KatexOptions> = input<KatexOptions>({}, {\n    alias: 'katex-options'\n  });\n  onError: OutputEmitterRef<any> = output<any>();\n\n  constructor() {\n    throwNoProviderError();\n    effect(() => {\n      try {\n        this.katexService.render(this.equation(), this.el, this.options());\n      } catch (e) {\n        this.onError.emit(e);\n      }\n    });\n  }\n\n}\n","import {\n  Component,\n  input,\n  InputSignal,\n  output,\n  OutputEmitterRef,\n} from '@angular/core';\nimport { KatexOptions } from 'katex';\nimport { KatexDirective } from './ng-katex.directive';\nimport { throwNoProviderError } from './utils';\n\n@Component({\n  selector: 'ng-katex',\n  template: `\n    <span [katex]=\"equation()\"\n          [katex-options]=\"options()\"\n          (someEvent)=\"hasError($event)\">\n    </span>\n  `,\n  standalone: true,\n  imports: [KatexDirective],\n})\nexport class KatexComponent {\n  equation: InputSignal<string> = input.required();\n  options: InputSignal<KatexOptions> = input<KatexOptions>({});\n  onError: OutputEmitterRef<any> = output<any>();\n\n  hasError(error: any) {\n    this.onError.emit(error);\n  }\n  \n  constructor() {\n    throwNoProviderError();\n  }\n}\n","import { Component, computed, inject, input, InputSignal, Signal } from '@angular/core';\nimport { extractMath, Segment } from 'extract-math';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { KatexService } from './ng-katex.service';\nimport { throwNoProviderError } from './utils';\n\n@Component({\n  selector: 'ng-katex-html',\n  template: `<span [innerHTML]=\"allHtml()\"></span>`,\n  standalone: true,\n})\nexport class KatexHtmlComponent {\n  private domSanitizer: DomSanitizer = inject(DomSanitizer); \n  private katexService: KatexService = inject(KatexService);\n\n  html: InputSignal<string> = input('');\n  allHtml: Signal<SafeHtml | undefined> = computed(() => {\n    const html  = this.html();\n    let allHtmlValue: string = '';\n    let _segments: Segment[] = [];\n    if (!html) {\n      allHtmlValue = '';\n      _segments = [];\n      return allHtmlValue;\n    }\n\n    _segments = extractMath(html);\n\n    const allHtml = _segments.map((seg: Segment) => {\n      if (seg.math) {\n        return this.katexService.renderToString(seg.raw, { displayMode: seg.type === 'display' });\n      }\n      else {\n        return seg.value;\n      }\n    }).reduce((total, current) => {\n      return total += current;\n    });\n    return this.domSanitizer.bypassSecurityTrustHtml(allHtml);\n  });\n\n  constructor() {\n    throwNoProviderError();\n  }\n}\n","\nimport { ChangeDetectionStrategy, Component, computed, input, InputSignal, Signal } from '@angular/core';\nimport { extractMath, Segment } from 'extract-math';\nimport { KatexComponent } from './ng-katex.component';\nimport { throwNoProviderError } from './utils';\n\n@Component({\n  selector: 'ng-katex-paragraph',\n  template: `\n    <p>\n      @for (segment of segments(); track segment) {\n        @if (segment.math) {\n          <ng-katex\n            [equation]=\"segment.raw\"\n            [options]=\"{ displayMode: segment.type === 'display' }\">\n          </ng-katex>\n        } @else {\n          {{ segment.value }}\n        }\n      }\n    </p>\n    `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [KatexComponent],\n  standalone: true,\n})\nexport class KatexParagraphComponent {\n  paragraph: InputSignal<string> = input.required();\n  segments: Signal<Segment[]> = computed(() => {\n    let segments = [];\n    const paragraph = this.paragraph();\n    segments = extractMath(paragraph);\n    return segments;\n  });\n  \n  constructor() {\n    throwNoProviderError();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { KatexService } from './ng-katex.service';\nimport { KatexDirective } from './ng-katex.directive';\nimport { KatexComponent } from './ng-katex.component';\nimport { KatexParagraphComponent } from './ng-katex-paragraph.component';\nimport { KatexHtmlComponent } from './ng-katex-html.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    KatexDirective,\n    KatexComponent,\n    KatexParagraphComponent,\n    KatexHtmlComponent,\n  ],\n  providers: [\n    KatexService,\n  ],\n  declarations: [\n  ],\n  exports: [\n    KatexDirective,\n    KatexComponent,\n    KatexParagraphComponent,\n    KatexHtmlComponent,\n  ],\n})\nexport class KatexModule { }\n","/*\n * Public API Surface of ng-katex\n */\nexport * from './lib/ng-katex.component';\nexport * from './lib/ng-katex-html.component';\nexport * from './lib/ng-katex-paragraph.component';\nexport * from './lib/ng-katex.directive';\nexport * from './lib/ng-katex.service';\nexport * from './lib/ng-katex.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}