UNPKG

@ng-doc/ui-kit

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

1 lines 5.13 kB
{"version":3,"file":"ng-doc-ui-kit-components-icon.mjs","sources":["../../../../libs/ui-kit/components/icon/icon.component.ts","../../../../libs/ui-kit/components/icon/ng-doc-ui-kit-components-icon.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n OnInit,\n} from '@angular/core';\nimport { NgDocCacheInterceptor } from '@ng-doc/ui-kit/interceptors';\nimport {\n NG_DOC_ASSETS_PATH,\n NG_DOC_CUSTOM_ICONS_PATH,\n NG_REQUEST_BASE_PATH,\n} from '@ng-doc/ui-kit/tokens';\nimport { NgDocIconSize } from '@ng-doc/ui-kit/types';\nimport { of, Subject } from 'rxjs';\nimport { catchError, startWith, switchMap } from 'rxjs/operators';\n\n@Component({\n selector: 'ng-doc-icon',\n template: '',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class NgDocIconComponent implements OnChanges, OnInit {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly httpClient = inject(HttpClient);\n private readonly baseUrl = inject(NG_REQUEST_BASE_PATH);\n\n /** Icon name */\n @Input()\n @HostBinding('attr.data-ng-doc-icon')\n icon: string = '';\n\n /** Custom icon name, if not set, `icon` will be used */\n @Input()\n @HostBinding('attr.data-ng-doc-custom-icon')\n customIcon: string = '';\n\n /** Icon size */\n @Input({ transform: numberAttribute })\n @HostBinding('attr.data-ng-doc-size')\n size: NgDocIconSize = 16;\n\n private readonly reload$: Subject<void> = new Subject<void>();\n private readonly assetsPath: string = inject(NG_DOC_ASSETS_PATH, { optional: true }) ?? '';\n private readonly customIconsPath: string =\n inject(NG_DOC_CUSTOM_ICONS_PATH, { optional: true }) ?? '';\n\n constructor() {}\n\n ngOnChanges(): void {\n this.reload$.next();\n }\n\n ngOnInit(): void {\n this.reload$\n .pipe(\n startWith(null),\n switchMap(() =>\n this.httpClient\n .get(this.href, {\n responseType: 'text',\n params: { [NgDocCacheInterceptor.TOKEN]: 'true' },\n })\n .pipe(\n catchError((e: Error) => {\n console.error(e);\n\n return of('');\n }),\n ),\n ),\n )\n .subscribe((svg: string) => (this.elementRef.nativeElement.innerHTML = svg));\n }\n\n get href(): string {\n return (\n this.baseUrl +\n (this.customIcon\n ? `${this.customIconsPath}/${this.customIcon}.svg#${this.customIcon}`\n : `${this.assetsPath}/icons/${this.size}/${this.icon}.svg#${this.icon}`)\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}