bdb-vendors
Version:
Proveedores de funcionalidad transversales a todos los productos del laboratorio BDB.
44 lines (39 loc) • 1.2 kB
text/typescript
import { ModuleWithProviders, NgModule } from '@angular/core';
import { config, INITIAL_CONFIG, initialConfig, NEW_CONFIG, optionsConfig } from './config';
import { MaskApplierService } from './mask-applier.service';
import { MaskDirective } from './mask.directive';
import { MaskPipe } from './mask.pipe';
({
providers: [MaskApplierService],
exports: [MaskDirective, MaskPipe],
declarations: [MaskDirective, MaskPipe]
})
export class NgxMaskModule {
public static forRoot(configValue?: optionsConfig): ModuleWithProviders {
return {
ngModule: NgxMaskModule,
providers: [
{
provide: NEW_CONFIG,
useValue: configValue
},
{
provide: INITIAL_CONFIG,
useValue: initialConfig
},
{
provide: config,
useFactory: _configFactory,
deps: [INITIAL_CONFIG, NEW_CONFIG]
},
]
};
}
}
/**
* @internal
*/
export function _configFactory
(initConfig: optionsConfig, configValue: optionsConfig | (() => optionsConfig)): Function | optionsConfig {
return (typeof configValue === 'function') ? configValue() : { ...initConfig, ...configValue };
}