@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,
}
]