@lakea/gravity-svg-adapter-svg-injector
v3.0.2
Published
An adapter for `GrSvg` using [`svg-injector`](https://github.com/tanem/svg-injector) as implementation.
Downloads
10
Readme
@lakea/gravity-svg-adapter-svg-injector
An adapter for GrSvg
using svg-injector
as implementation.
Installation
Install the library using NPM:
npm install @lakea/gravity-svg-adapter-svg-injector @tanem/svg-injector --save
Next, create a new file, svg-adapter-root.module.ts
which exposes an Angular's module with a default configuration.
import {NgModule} from '@angular/core';
import {GrSvg} from '@lakea/gravity/ui';
import {GrSvgAdapterSvgInjector} from '@lakea/gravity-svg-adapter-svg-injector';
@NgModule({
providers: [
{
provide: GrSvg,
useClass: GrSvgAdapterSvgInjector,
},
],
})
export class SvgAdapterRootModule {}
Import SvgAdapterRootModule
to application root module like app.module.ts
.
You should import the SvgAdapterRootModule once in your root module.
The SvgAdapterRootModule
provide the adapter implementation for GrSvg
.
Creating your own adapter
Create your adapter implementation class extending GrSvg
abstraction:
import {Injectable, Renderer2, RendererFactory2} from '@angular/core';
import {GrSvg} from '@lakea/gravity/ui';
@Injectable()
export class GrSvgAdapter extends GrSvg {
constructor() {
super();
}
public generateSvg(assetUrl: string): Promise<SVGSVGElement> {
// YOUR IMPLEMENTATION
}
}
So, provide it on your application root module (maybe app.module.ts
), like this:
providers: [
{
provide: GrSvg,
useClass: GrSvgAdapter,
}
]