diff options
Diffstat (limited to 'src/angular/loader/loader.service.ts')
-rw-r--r-- | src/angular/loader/loader.service.ts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/angular/loader/loader.service.ts b/src/angular/loader/loader.service.ts new file mode 100644 index 0000000..288f9bd --- /dev/null +++ b/src/angular/loader/loader.service.ts @@ -0,0 +1,37 @@ +import { Injectable, Type, ComponentRef } from '@angular/core'; +import { LoaderComponent } from './loader.component'; + +@Injectable() +export class LoaderService { + + constructor() {} + + private mainLoaderName = 'general'; + + public registeredLoaders = {}; + + public register(name: string, loader: LoaderComponent) { + if (!this.registeredLoaders[name]) { + this.registeredLoaders[name] = loader; + } + } + + public unregister(name: string) { + if (this.registeredLoaders[name]) { + delete this.registeredLoaders[name]; + } + } + + public activate(name: string = this.mainLoaderName) { + if (this.registeredLoaders[name]) { + this.registeredLoaders[name].activate(); + } + } + + public deactivate(name: string = this.mainLoaderName) { + if (this.registeredLoaders[name]) { + this.registeredLoaders[name].deactivate(); + } + } + +} |