{"version":3,"file":"usitsdasdesign-dds-ng-shared-dds-config.mjs","sources":["../../src/app/dds/shared/dds-config/dds-config.service.ts","../../src/app/dds/shared/dds-config/dds-config.module.ts","../../src/app/dds/shared/dds-config/usitsdasdesign-dds-ng-shared-dds-config.ts"],"sourcesContent":["import { Injectable, Optional } from '@angular/core';\nimport { DEFAULT_DATE_FORMAT, ErrorState, LabelPosition, PositionState, Size, Themes } from '@usitsdasdesign/dds-ng/shared';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { DdsConfigOptions } from './typings';\n\n@Injectable({ providedIn: 'root' })\nexport class DdsConfig { }\n\n@Injectable({ providedIn: 'root' })\nexport class DdsConfigService {\n  // Default configuration options.\n  private config: DdsConfigOptions = {\n    theme: Themes.green,\n    size: Size.md,\n    isResponsive: false,\n    labelPosition: LabelPosition.external,\n    stickerPosition: PositionState.bottomLeft,\n    stickerIndent: 0,\n    errorState: ErrorState.default,\n    dateFormat: DEFAULT_DATE_FORMAT,\n  };\n\n  // Subject to emit configuration changes.\n  private configSubject = new BehaviorSubject<DdsConfigOptions>(this.config);\n\n  constructor(@Optional() config?: DdsConfig) {\n    if (config) {\n      this.setConfig(config);\n    }\n  }\n\n  // Updates the configuration and emits the new configuration.\n  public setConfig(config: DdsConfigOptions): void {\n    this.config = { ...this.config, ...config };\n    this.configSubject.next(this.config);\n  }\n\n  // Retrieves the current configuration.\n  public getConfig(): DdsConfigOptions {\n    return this.config;\n  }\n\n  // Returns an observable to subscribe to configuration changes.\n  public getConfigObs(): Observable<DdsConfigOptions> {\n    return this.configSubject.asObservable();\n  }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DdsConfigOptions } from './typings';\nimport { DdsConfig } from './dds-config.service';\n\n@NgModule({\n  imports: [CommonModule],\n})\nexport class DdsConfigModule {\n  constructor(@Optional() @SkipSelf() parentModule?: DdsConfigModule) {\n    if (parentModule) {\n      throw new Error('DdsConfigModule is already loaded. Import it in the AppModule only');\n    }\n  }\n\n  static forRoot(config: DdsConfigOptions): ModuleWithProviders<DdsConfigModule> {\n    return {\n      ngModule: DdsConfigModule,\n      providers: [{ provide: DdsConfig, useValue: config }],\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}