@triangular/rpg-awesome-icons
Version:
Use the cool icons from RPGAwesome in your app, fully tree-shaked and only loaded when necessary. Injected into the dom, and therefore IE compatible.
1 lines • 6.51 kB
Source Map (JSON)
{"version":3,"file":"triangular-rpg-awesome-icons.mjs","sources":["../../../projects/rpg-awesome-icons-lib/src/lib/icons.registry.ts","../../../projects/rpg-awesome-icons-lib/src/lib/icon.component.ts","../../../projects/rpg-awesome-icons-lib/src/lib/icons.module.ts","../../../projects/rpg-awesome-icons-lib/src/public_api.ts","../../../projects/rpg-awesome-icons-lib/src/triangular-rpg-awesome-icons.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\ninterface AnyRegistryIcon {\n name: string;\n data: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RpgAwesomeIconsRegistry {\n\n private registry = new Map<string, string>();\n\n public registerIcons(icons: AnyRegistryIcon[]): void {\n icons.forEach((icon: AnyRegistryIcon) => this.registry.set(icon.name, icon.data));\n }\n\n public getIcon(iconName: string): string | undefined {\n if (!this.registry.has(iconName)) {\n console.warn(`We could not find the dinosaur Icon with the name ${iconName}, did you add it to the Icon registry?`);\n }\n return this.registry.get(iconName);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation, DOCUMENT, inject } from '@angular/core';\nimport { RpgAwesomeIconsRegistry } from './icons.registry';\n\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'rpg-awesome-icon',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class RpgAwesomeIconComponent {\n private element = inject(ElementRef);\n private iconsRegistry = inject(RpgAwesomeIconsRegistry);\n private document = inject<Document>(DOCUMENT, { optional: true });\n\n private svgIcon: SVGElement;\n\n @Input()\n set name(iconName: string) {\n if (this.svgIcon) {\n this.element.nativeElement.removeChild(this.svgIcon);\n }\n const svgData = this.iconsRegistry.getIcon(iconName);\n\n if (svgData) {\n this.svgIcon = this.svgElementFromString(svgData);\n this.element.nativeElement.appendChild(this.svgIcon);\n }\n }\n\n private svgElementFromString(svgContent: string): SVGElement {\n const div = this.document.createElement('DIV');\n if (div instanceof HTMLElement) {\n div.innerHTML = svgContent;\n return div.querySelector('svg') || this.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { RpgAwesomeIconComponent } from './icon.component';\nimport { RpgAwesomeIconsRegistry } from './icons.registry';\n\n@NgModule({\n declarations: [],\n imports: [RpgAwesomeIconComponent],\n exports: [RpgAwesomeIconComponent]\n})\nexport class RpgAwesomeIconsModule {\n static forRoot(): ModuleWithProviders<RpgAwesomeIconsModule> {\n return {\n ngModule: RpgAwesomeIconsModule,\n providers: [\n RpgAwesomeIconsRegistry,\n ],\n };\n }\n}\n","/*\n * Public API Surface of the icons lib\n */\n\n// export * from './lib/icons'; // exported separately through the build process.\n// Otherwise tree-shaking doesn't fully work (as they would be included in the lib's fesm module\n// Which is usually what we want, see:\n// https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview#heading=h.ve6e6mrugckx\nexport * from './lib/icon.component';\nexport * from './lib/icons.registry';\nexport * from './lib/icons.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}