@lakea/gravity-svg-adapter-svg-injector
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i @lakea/gravity-svg-adapter-svg-injector

Weekly Downloads

2

Version

3.0.2

License

none

Unpacked Size

27.3 kB

Total Files

12

Last publish

Collaborators

  • ltp.lakea
  • gesielr
  • lakea-gesiel