{"version":3,"file":"pv-frontend-pv-shared-components-svg-icon.mjs","sources":["../../../projects/pv-shared-components/svg-icon/svg-icon.ts","../../../projects/pv-shared-components/svg-icon/svg-icon.html","../../../projects/pv-shared-components/svg-icon/public-api.ts","../../../projects/pv-shared-components/svg-icon/pv-frontend-pv-shared-components-svg-icon.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport {\n  ChangeDetectorRef,\n  Component,\n  Input,\n  NgModule,\n  OnChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n  selector: 'pv-svg-icon',\n  templateUrl: './svg-icon.html',\n  styleUrls: ['./svg-icon.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class SvgIconComponent implements OnChanges {\n  /**\n   * `name` means the path to the respective SVG within the `/assets` folder.\n   *\n   * If you pass `name` as `zomato`, then it will load SVG from `/assets/zomato.svg`\n   */\n  @Input()\n  public name?: string;\n\n  /**\n   * This is the `url` from which the SVG will be downloaed\n   * Please be mindful of the URL passed here as we are doing explicit security trust on it to load the SVG\n   */\n  @Input()\n  public srcUrl?: string;\n\n  @Input()\n  public style?: Record<string, unknown> | null = {};\n\n  @Input()\n  public styleClass?: string = '';\n\n  public svgIcon: unknown;\n\n  public constructor(\n    private httpClient: HttpClient,\n    private sanitizer: DomSanitizer,\n    private changeDetector: ChangeDetectorRef\n  ) {}\n\n  public ngOnChanges(): void {\n    this.loadResource();\n  }\n\n  public getIconUrl(): string {\n    if (this.srcUrl) {\n      return this.srcUrl;\n    } else if (this.name) {\n      return `assets/${this.name}.svg`;\n    }\n    throw new Error('neither name nor srcUrl passed');\n  }\n\n  public loadResource(): void {\n    const url = this.getIconUrl();\n    this.httpClient.get(url, { responseType: 'text' }).subscribe((value) => {\n      this.svgIcon = this.sanitizer.bypassSecurityTrustHtml(value);\n      this.changeDetector.markForCheck();\n    });\n  }\n}\n\n@NgModule({\n  declarations: [SvgIconComponent],\n  exports: [SvgIconComponent],\n  imports: [HttpClientModule, CommonModule],\n})\nexport class SvgIconModule {}\n","<div\n  class=\"pv-svg-icon w-1rem h-1rem\"\n  [ngStyle]=\"this.style\"\n  [class]=\"this.styleClass\"\n  [innerHTML]=\"svgIcon\"></div>\n","export default {};\nexport * from './svg-icon';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}