@o3r/configuration 14.0.0-next.4 → 14.0.0-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,21 +33,21 @@ class ConfigurationRulesEngineActionHandler {
33
33
  }, {});
34
34
  this.store.dispatch(setConfigOverride({ state: { configOverrides } }));
35
35
  }
36
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationRulesEngineActionHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationRulesEngineActionHandler }); }
36
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationRulesEngineActionHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationRulesEngineActionHandler }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationRulesEngineActionHandler, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationRulesEngineActionHandler, decorators: [{
40
40
  type: Injectable
41
41
  }] });
42
42
 
43
43
  class ConfigurationRulesEngineActionModule {
44
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationRulesEngineActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
45
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationRulesEngineActionModule, imports: [ConfigurationStoreModule] }); }
46
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationRulesEngineActionModule, providers: [
44
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationRulesEngineActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
45
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationRulesEngineActionModule, imports: [ConfigurationStoreModule] }); }
46
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationRulesEngineActionModule, providers: [
47
47
  ConfigurationRulesEngineActionHandler
48
48
  ], imports: [ConfigurationStoreModule] }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationRulesEngineActionModule, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationRulesEngineActionModule, decorators: [{
51
51
  type: NgModule,
52
52
  args: [{
53
53
  imports: [
@@ -75,13 +75,13 @@ class ConfigOverrideStoreModule {
75
75
  ]
76
76
  };
77
77
  }
78
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigOverrideStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
79
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: ConfigOverrideStoreModule, imports: [i1.StoreFeatureModule] }); }
80
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigOverrideStoreModule, providers: [
78
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigOverrideStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
79
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ConfigOverrideStoreModule, imports: [i1.StoreFeatureModule] }); }
80
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigOverrideStoreModule, providers: [
81
81
  { provide: CONFIG_OVERRIDE_REDUCER_TOKEN, useFactory: getDefaultConfigOverrideReducer }
82
82
  ], imports: [StoreModule.forFeature(CONFIG_OVERRIDE_STORE_NAME, CONFIG_OVERRIDE_REDUCER_TOKEN)] }); }
83
83
  }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigOverrideStoreModule, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigOverrideStoreModule, decorators: [{
85
85
  type: NgModule,
86
86
  args: [{
87
87
  imports: [
@@ -212,13 +212,13 @@ class ConfigurationStoreModule {
212
212
  ]
213
213
  };
214
214
  }
215
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
216
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationStoreModule, imports: [i1.StoreFeatureModule] }); }
217
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationStoreModule, providers: [
215
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
216
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationStoreModule, imports: [i1.StoreFeatureModule] }); }
217
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationStoreModule, providers: [
218
218
  { provide: CONFIGURATION_REDUCER_TOKEN, useFactory: getDefaultConfigurationReducer }
219
219
  ], imports: [StoreModule.forFeature(CONFIGURATION_STORE_NAME, CONFIGURATION_REDUCER_TOKEN)] }); }
220
220
  }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationStoreModule, decorators: [{
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationStoreModule, decorators: [{
222
222
  type: NgModule,
223
223
  args: [{
224
224
  imports: [
@@ -290,10 +290,10 @@ class OtterConfigurationDevtools {
290
290
  }
291
291
  /**
292
292
  * Get configuration name based on input information
293
- * @param selector Selector for a component configuration. It can be a string in the form library#componentName (i.e: @my-lib/shared-components#HeaderContComponent)
294
- * or an object with the component and library names (i.e: {library:"@my-lib/shared-components", componentName:'HeaderContComponent'})
293
+ * @param selector Selector for a component configuration. It can be a string in the form library#componentName (i.e: `@my-lib/shared-components#HeaderContComponent`)
294
+ * or an object with the component and library names (i.e: `{library:"@my-lib/shared-components", componentName:'HeaderContComponent'}`)
295
295
  * @param isFallbackName Determine if the name requested is a fallback name
296
- * @returns string in the format library#componentName (i.e: "@my-lib/shared-components#HeaderContComponent")
296
+ * @returns string in the format library#componentName (i.e: `"@my-lib/shared-components#HeaderContComponent"`)
297
297
  */
298
298
  getComponentConfigName(selector, isFallbackName = false) {
299
299
  if (!isFallbackName) {
@@ -328,8 +328,8 @@ class OtterConfigurationDevtools {
328
328
  }
329
329
  /**
330
330
  * Get the configuration for a specific component
331
- * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: @my-lib/shared-components#HeaderPresConfig)
332
- * or an object with the configuration and library names (i.e: {library:"@my-lib/shared-components", componentName:'HeaderPresConfig'})
331
+ * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: `@my-lib/shared-components#HeaderPresConfig`)
332
+ * or an object with the configuration and library names (i.e: `{library:"@my-lib/shared-components", componentName:'HeaderPresConfig'}`)
333
333
  */
334
334
  getCurrentConfigurationFor(selector) {
335
335
  return firstValueFrom(this.store.pipe(select(selectConfigurationEntities), map((entities) => entities[this.getComponentConfigName(selector)] || entities[this.getComponentConfigName(selector, true)]), filter((entity) => !!entity), map((entity) => {
@@ -351,10 +351,10 @@ class OtterConfigurationDevtools {
351
351
  this.store.dispatch(upsertConfigurationEntities(computeConfiguration(typeof configurations === 'string' ? JSON.parse(configurations) : configurations)));
352
352
  this.appRef.tick();
353
353
  }
354
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: OtterConfigurationDevtools, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
355
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: OtterConfigurationDevtools, providedIn: 'root' }); }
354
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OtterConfigurationDevtools, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
355
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OtterConfigurationDevtools, providedIn: 'root' }); }
356
356
  }
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: OtterConfigurationDevtools, decorators: [{
357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OtterConfigurationDevtools, decorators: [{
358
358
  type: Injectable,
359
359
  args: [{ providedIn: 'root' }]
360
360
  }], ctorParameters: () => [] });
@@ -407,7 +407,7 @@ class ConfigurationDevtoolsConsoleService {
407
407
  }
408
408
  /**
409
409
  * Display the list of configurations loaded in the store and the library they originate from
410
- * @returns array with the configurations and libraries for example: ["LibComponentsCommonRuntimeConfig from @my-lib/shared-common"]
410
+ * @returns array with the configurations and libraries for example: `["LibComponentsCommonRuntimeConfig from \@my-lib/shared-common"]`
411
411
  */
412
412
  async displayComponentsWithConfiguration() {
413
413
  const selectors = await this.configurationDevtools.getComponentsWithConfiguration();
@@ -416,7 +416,7 @@ class ConfigurationDevtoolsConsoleService {
416
416
  /**
417
417
  * Display the configuration for a specific component
418
418
  * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: '@my-lib/shared-components#HeaderContConfig')
419
- * or an object with the configuration and library names (i.e: {library:"@my-lib/shared-components", componentName:'HeaderContConfig'}).
419
+ * or an object with the configuration and library names (i.e: `{library:"@my-lib/shared-components", componentName:'HeaderContConfig'}`).
420
420
  * Note the object input componentName expects a configuration name not a component name.
421
421
  * @returns Configuration object (i.e: {airlineLogoPath: "img/airlines/icon-BH.svg", displayLanguageSelector: false})
422
422
  */
@@ -461,10 +461,10 @@ class ConfigurationDevtoolsConsoleService {
461
461
  updateConfigurations(configurations) {
462
462
  this.configurationDevtools.loadConfiguration(configurations);
463
463
  }
464
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsConsoleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
465
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsConsoleService, providedIn: 'root' }); }
464
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsConsoleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
465
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsConsoleService, providedIn: 'root' }); }
466
466
  }
467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsConsoleService, decorators: [{
467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsConsoleService, decorators: [{
468
468
  type: Injectable,
469
469
  args: [{
470
470
  providedIn: 'root'
@@ -548,10 +548,10 @@ class ConfigurationDevtoolsMessageService {
548
548
  fromEvent(window, 'message').pipe(takeUntilDestroyed(this.destroyRef), filterMessageContent(isConfigurationMessage)).subscribe((e) => this.handleEvents(e));
549
549
  this.store.pipe(select(selectConfigurationEntities), takeUntilDestroyed(this.destroyRef)).subscribe((configurations) => this.sendMessage('configurations', { configurations }));
550
550
  }
551
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
552
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsMessageService, providedIn: 'root' }); }
551
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
552
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsMessageService, providedIn: 'root' }); }
553
553
  }
554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsMessageService, decorators: [{
554
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsMessageService, decorators: [{
555
555
  type: Injectable,
556
556
  args: [{
557
557
  providedIn: 'root'
@@ -574,10 +574,10 @@ class ConfigurationDevtoolsModule {
574
574
  ]
575
575
  };
576
576
  }
577
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
578
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsModule, imports: [StoreModule,
577
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
578
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsModule, imports: [StoreModule,
579
579
  ConfigurationStoreModule] }); }
580
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsModule, providers: [
580
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsModule, providers: [
581
581
  { provide: OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, useValue: OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS },
582
582
  ConfigurationDevtoolsMessageService,
583
583
  ConfigurationDevtoolsConsoleService,
@@ -585,7 +585,7 @@ class ConfigurationDevtoolsModule {
585
585
  ], imports: [StoreModule,
586
586
  ConfigurationStoreModule] }); }
587
587
  }
588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationDevtoolsModule, decorators: [{
588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationDevtoolsModule, decorators: [{
589
589
  type: NgModule,
590
590
  args: [{
591
591
  imports: [
@@ -602,11 +602,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
602
602
  }] });
603
603
 
604
604
  class ConfigurationBaseServiceModule {
605
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationBaseServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
606
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationBaseServiceModule, imports: [ConfigurationStoreModule, LoggerModule] }); }
607
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationBaseServiceModule, imports: [ConfigurationStoreModule, LoggerModule] }); }
605
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationBaseServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
606
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationBaseServiceModule, imports: [ConfigurationStoreModule, LoggerModule] }); }
607
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationBaseServiceModule, imports: [ConfigurationStoreModule, LoggerModule] }); }
608
608
  }
609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationBaseServiceModule, decorators: [{
609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationBaseServiceModule, decorators: [{
610
610
  type: NgModule,
611
611
  args: [{
612
612
  imports: [ConfigurationStoreModule, LoggerModule]
@@ -693,10 +693,10 @@ class ConfigurationBaseService {
693
693
  const overrideConfig$ = this.store.pipe(select(selectComponentOverrideConfig(id)));
694
694
  return combineLatest([globalConfig$, componentConfig$, overrideConfig$]).pipe(map(([globalConfig, componentConfig, overrideConfig]) => ({ ...globalConfig, ...componentConfig, ...overrideConfig })), distinctUntilChanged(jsonStringifyDiff));
695
695
  }
696
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationBaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
697
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationBaseService, providedIn: ConfigurationBaseServiceModule }); }
696
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationBaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
697
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationBaseService, providedIn: ConfigurationBaseServiceModule }); }
698
698
  }
699
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ConfigurationBaseService, decorators: [{
699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfigurationBaseService, decorators: [{
700
700
  type: Injectable,
701
701
  args: [{
702
702
  providedIn: ConfigurationBaseServiceModule
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-configuration.mjs","sources":["../../src/core/configuration.ts","../../src/stores/config-override/config-override.actions.ts","../../src/stores/config-override/config-override.reducer.ts","../../src/stores/config-override/config-override.state.ts","../../src/stores/config-override/config-override-module.ts","../../src/stores/config-override/config-override.selectors.ts","../../src/stores/config-override/config-override.sync.ts","../../src/stores/configuration/configuration.actions.ts","../../src/stores/configuration/configuration.helpers.ts","../../src/stores/configuration/configuration.reducer.ts","../../src/stores/configuration/configuration.state.ts","../../src/stores/configuration/configuration-module.ts","../../src/stores/configuration/configuration.selectors.ts","../../src/stores/configuration/configuration.sync.ts","../../src/devkit/configuration-devtools-token.ts","../../src/devkit/configuration-devtools.ts","../../src/devkit/configuration-devtools-console-service.ts","../../src/devkit/configuration-devtools-interface.ts","../../src/devkit/configuration-devtools-message-service.ts","../../src/devkit/configuration-devtools-module.ts","../../src/services/configuration/configuration-base-module.ts","../../src/services/configuration/configuration-base-service.ts","../../src/tools/configuration-decorators.ts","../../src/tools/configuration-observer.ts","../../src/tools/configuration-signal.ts","../../src/o3r-configuration.ts"],"sourcesContent":["import {\n deepFill,\n} from '@o3r/core';\nimport {\n Observable,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n} from 'rxjs/operators';\n\n/**\n * Interface to define the error messages into component configuration\n */\nexport interface ErrorMessages {\n /**\n * Error message map\n */\n errorMessages: { [key: string]: string };\n}\n\n/**\n * Interface to specify that the component has an ID\n */\nexport interface Identifiable {\n /**\n * Identifier\n */\n id: string;\n}\n\n/**\n * Get the component and library's names based on the configuration name\n * @param configurationName Name of the component as found in the store\n * @returns Object containing library and component name.\n */\nexport function parseConfigurationName(configurationName: string): { library?: string; libraryName?: string; componentName: string } | undefined {\n const parsedConfigurationName = configurationName.match(/^([^#]*)#(.*)$/i);\n if (parsedConfigurationName) {\n return {\n library: parsedConfigurationName.length > 2 ? parsedConfigurationName[1] : undefined,\n componentName: parsedConfigurationName.length > 2 ? parsedConfigurationName[2] : parsedConfigurationName[0]\n };\n }\n}\n\n/**\n * Operator to get the configuration from store for a given component and merge it with the global config\n * @param defaultValue Default value of the configuration\n */\nexport function getConfiguration<T extends Record<string, unknown>>(defaultValue: T) {\n return <C extends Partial<T>>(source: Observable<C | undefined>): Observable<T> =>\n source.pipe(\n map((configOverride) => {\n return deepFill(defaultValue, configOverride);\n }),\n distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n}\n","import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n SetStateActionPayload,\n} from '@o3r/core';\nimport {\n ConfigOverrideState,\n} from './config-override.state';\n\n/** Actions */\nconst ACTION_SET = '[ConfigOverride] set';\n\n/**\n * Clear all overrides and fill the store with the payload\n */\nexport const setConfigOverride = createAction(ACTION_SET, props<SetStateActionPayload<ConfigOverrideState>>());\n","import {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './config-override.actions';\nimport {\n ConfigOverrideState,\n} from './config-override.state';\n\n/**\n * ConfigOverride Store initial value\n */\nexport const configOverrideInitialState: ConfigOverrideState = { configOverrides: {} };\n\n/**\n * List of basic actions for ConfigOverride Store\n */\nexport const configOverrideReducerFeatures: ReducerTypes<ConfigOverrideState, ActionCreator[]>[] = [\n on(actions.setConfigOverride, (_state, payload) => ({ ...payload.state }))\n];\n\n/**\n * ConfigOverride Store reducer\n */\nexport const configOverrideReducer = createReducer(\n configOverrideInitialState,\n ...configOverrideReducerFeatures\n);\n","/**\n * Property override model\n */\nexport interface PropertyOverride {\n [property: string]: any;\n}\n\n/**\n * ConfigOverride store state\n */\nexport interface ConfigOverrideState {\n /** Map of PropertyOverride indexed on component + config name */\n configOverrides: Record<string, PropertyOverride>;\n}\n\n/**\n * Name of the ConfigOverride Store\n */\nexport const CONFIG_OVERRIDE_STORE_NAME = 'configOverride';\n\n/**\n * ConfigOverride Store Interface\n */\nexport interface ConfigOverrideStore {\n /** ConfigOverride state */\n [CONFIG_OVERRIDE_STORE_NAME]: ConfigOverrideState;\n}\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n configOverrideReducer,\n} from './config-override.reducer';\nimport {\n CONFIG_OVERRIDE_STORE_NAME,\n ConfigOverrideState,\n} from './config-override.state';\n\n/** Token of the ConfigOverride reducer */\nexport const CONFIG_OVERRIDE_REDUCER_TOKEN = new InjectionToken<ActionReducer<ConfigOverrideState, Action>>('Feature ConfigOverride Reducer');\n\n/** Provide default reducer for ConfigOverride store */\nexport function getDefaultConfigOverrideReducer() {\n return configOverrideReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(CONFIG_OVERRIDE_STORE_NAME, CONFIG_OVERRIDE_REDUCER_TOKEN)\n ],\n providers: [\n { provide: CONFIG_OVERRIDE_REDUCER_TOKEN, useFactory: getDefaultConfigOverrideReducer }\n ]\n})\nexport class ConfigOverrideStoreModule {\n public static forRoot<T extends ConfigOverrideState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<ConfigOverrideStoreModule> {\n return {\n ngModule: ConfigOverrideStoreModule,\n providers: [\n { provide: CONFIG_OVERRIDE_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n CONFIG_OVERRIDE_STORE_NAME,\n ConfigOverrideState,\n} from './config-override.state';\n\n/** Select ConfigOverride State */\nexport const selectConfigOverrideState = createFeatureSelector<ConfigOverrideState>(CONFIG_OVERRIDE_STORE_NAME);\n\n/** Select the array of ConfigOverride */\nexport const selectConfigOverride = createSelector(selectConfigOverrideState, (state) => state?.configOverrides || {});\n\n/**\n * Get the override for given component identifier\n * @param componentId\n */\nexport const selectComponentOverrideConfig = (componentId: string) => createSelector(selectConfigOverride, (configOverrides) => configOverrides[componentId] || {});\n","import {\n Serializer,\n} from '@o3r/core';\nimport {\n configOverrideInitialState,\n} from './config-override.reducer';\nimport {\n ConfigOverrideState,\n} from './config-override.state';\n\n/**\n * Deserializer\n * @param rawObject\n */\nexport const configOverrideStorageDeserializer = (rawObject: any) => {\n if (!rawObject) {\n return configOverrideInitialState;\n }\n return rawObject;\n};\n\nexport const configOverrideStorageSync: Serializer<ConfigOverrideState> = {\n deserialize: configOverrideStorageDeserializer\n};\n","import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n Configuration,\n} from '@o3r/core';\n\nexport interface SetConfigurationEntitiesPayload {\n /** Map of configurations to update/insert, this is now Partial due the change of Configuration interface */\n entities: { [id: string]: Partial<Configuration> };\n}\n\nexport interface UpsertConfigurationEntityPayload {\n /** ID of the item */\n id: string;\n /** Updated/New configuration object */\n configuration: Partial<Configuration>;\n}\n\nexport interface UpdateConfigurationEntityPayload {\n /** ID of the item */\n id: string;\n /** Updated/New configuration partial object */\n configuration: Partial<Configuration>;\n}\n\n/** Entity Actions */\nconst ACTION_CLEAR_ENTITIES = '[Configuration] clear entities';\nconst ACTION_UPDATE_ENTITIES = '[Configuration] update entities';\nconst ACTION_UPSERT_ENTITIES = '[Configuration] upsert entities';\nconst ACTION_SET_ENTITIES = '[Configuration] set entities';\nconst ACTION_UPDATE_CONFIGURATION_ENTITY = '[Configuration] update configuration entity';\nconst ACTION_UPSERT_CONFIGURATION_ENTITY = '[Configuration] set configuration entity';\n\n/**\n * Upsert one configuration entity\n */\nexport const upsertConfigurationEntity = createAction(ACTION_UPSERT_CONFIGURATION_ENTITY, props<UpsertConfigurationEntityPayload>());\n\n/**\n * Update one configuration entity\n */\nexport const updateConfigurationEntity = createAction(ACTION_UPDATE_CONFIGURATION_ENTITY, props<UpdateConfigurationEntityPayload>());\n\n/**\n * Clear all configuration and fill the store with the payload\n */\nexport const setConfigurationEntities = createAction(ACTION_SET_ENTITIES, props<SetConfigurationEntitiesPayload>());\n\n/**\n * Update configuration with known IDs, ignore the new ones\n */\nexport const updateConfigurationEntities = createAction(ACTION_UPDATE_ENTITIES, props<SetConfigurationEntitiesPayload>());\n\n/**\n * Update configuration with known IDs, insert the new ones\n */\nexport const upsertConfigurationEntities = createAction(ACTION_UPSERT_ENTITIES, props<SetConfigurationEntitiesPayload>());\n\n/**\n * Clear only the entities, keeps the other attributes in the state\n */\nexport const clearConfigurationEntities = createAction(ACTION_CLEAR_ENTITIES);\n","import type {\n Configuration,\n CustomConfig,\n} from '@o3r/core';\nimport {\n computeItemIdentifier,\n} from '@o3r/core';\nimport {\n SetConfigurationEntitiesPayload,\n} from './configuration.actions';\n\n/**\n * compute the configuration into SetEntitiesPayload\n * @param customConfigObject array of configurations\n */\nexport function computeConfiguration<T extends Configuration>(customConfigObject: CustomConfig<T>[]): SetConfigurationEntitiesPayload {\n const entities = customConfigObject.reduce<{ [k: string]: Partial<T> & { id: string } }>((acc, conf) => {\n const id = computeItemIdentifier(conf.name, conf.library);\n acc[id] = { ...conf.config, id };\n return acc;\n }, {});\n return { entities };\n}\n","import {\n createEntityAdapter,\n EntityAdapter,\n} from '@ngrx/entity';\nimport {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './configuration.actions';\nimport {\n ConfigurationModel,\n ConfigurationState,\n} from './configuration.state';\n\n/**\n * Configuration Store adapter\n */\nexport const configurationAdapter: EntityAdapter<ConfigurationModel> = createEntityAdapter<ConfigurationModel>({\n selectId: (model) => model.id\n});\n\n/**\n * Configuration Store initial value\n */\nexport const configurationInitialState = configurationAdapter.getInitialState<ConfigurationState>({});\n\n/**\n * List of basic actions for Configuration Store\n */\nexport const configurationReducerFeatures: ReducerTypes<ConfigurationState, ActionCreator[]>[] = [\n\n on(actions.setConfigurationEntities, (state, payload) => configurationAdapter.addMany((Object.keys(payload) as (keyof typeof payload)[]).map((id) =>\n ({ ...(payload[id] as any), id })), configurationAdapter.removeAll(state))),\n\n on(actions.updateConfigurationEntities, (state, payload) =>\n configurationAdapter.updateMany(Object.keys(payload.entities).map((id) => ({ id: id, changes: payload.entities[id] })), state)),\n\n on(actions.upsertConfigurationEntities, (state, payload) => configurationAdapter.upsertMany(Object.keys(payload.entities).map((id) => ({ ...payload.entities[id], id })), state)),\n\n on(actions.clearConfigurationEntities, (state) => configurationAdapter.removeAll(state)),\n\n on(actions.updateConfigurationEntity, (state, payload) => configurationAdapter.updateOne({ id: payload.id, changes: payload.configuration }, state)),\n\n on(actions.upsertConfigurationEntity, (state, payload) => configurationAdapter.upsertOne({ id: payload.id, ...payload.configuration }, state))\n];\n\n/**\n * Configuration Store reducer\n */\nexport const configurationReducer = createReducer(\n configurationInitialState,\n ...configurationReducerFeatures\n);\n","import type {\n EntityState,\n} from '@ngrx/entity';\nimport type {\n Configuration,\n} from '@o3r/core';\n\n/**\n * Configuration model\n */\nexport interface ConfigurationModel extends Configuration {\n id: string;\n}\n\n/**\n * Configuration store state\n */\nexport interface ConfigurationState extends EntityState<ConfigurationModel> {\n}\n\n/**\n * Name of the Configuration Store\n */\nexport const CONFIGURATION_STORE_NAME = 'configuration';\n\n/**\n * Configuration Store Interface\n */\nexport interface ConfigurationStore {\n /** Configuration state */\n [CONFIGURATION_STORE_NAME]: ConfigurationState;\n}\n\n/**\n * ID of the global configuration\n */\nexport const globalConfigurationId = 'global';\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n configurationReducer,\n} from './configuration.reducer';\nimport {\n CONFIGURATION_STORE_NAME,\n ConfigurationState,\n} from './configuration.state';\n\n/** Token of the Configuration reducer */\nexport const CONFIGURATION_REDUCER_TOKEN = new InjectionToken<ActionReducer<ConfigurationState, Action>>('Feature Configuration Reducer');\n\n/** Provide default reducer for Configuration store */\nexport function getDefaultConfigurationReducer() {\n return configurationReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(CONFIGURATION_STORE_NAME, CONFIGURATION_REDUCER_TOKEN)\n ],\n providers: [\n { provide: CONFIGURATION_REDUCER_TOKEN, useFactory: getDefaultConfigurationReducer }\n ]\n})\nexport class ConfigurationStoreModule {\n public static forRoot<T extends ConfigurationState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<ConfigurationStoreModule> {\n return {\n ngModule: ConfigurationStoreModule,\n providers: [\n { provide: CONFIGURATION_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createSelector,\n} from '@ngrx/store';\nimport {\n Configuration,\n} from '@o3r/core';\nimport {\n configurationAdapter,\n} from './configuration.reducer';\nimport {\n CONFIGURATION_STORE_NAME,\n ConfigurationState,\n globalConfigurationId,\n} from './configuration.state';\n\nconst { selectIds, selectEntities, selectAll, selectTotal } = configurationAdapter.getSelectors();\n\n/**\n * Select Configuration State\n * Note: the usage of createSelector is to avoid warning printing because of potentially undefined feature store\n */\nexport const selectConfigurationState = createSelector<{ [CONFIGURATION_STORE_NAME]: ConfigurationState }, [state: ConfigurationState | undefined], ConfigurationState | undefined>(\n (state) => state[CONFIGURATION_STORE_NAME],\n (state) => state\n);\n\n/** Select the array of Configuration ids */\nexport const selectConfigurationIds = createSelector(selectConfigurationState, (state) => state ? selectIds(state) : []);\n\n/** Select the array of Configuration */\nexport const selectAllConfiguration = createSelector(selectConfigurationState, (state) => state ? selectAll(state) : []);\n\n/** Select the dictionary of Configuration entities */\nexport const selectConfigurationEntities = createSelector(selectConfigurationState, (state) => state ? selectEntities(state) : {});\n\n/** Select the total Configuration count */\nexport const selectConfigurationTotal = createSelector(selectConfigurationState, (state) => state ? selectTotal(state) : 0);\n\n/**\n * Select the configuration for component with id\n * @param props property of the selector\n * @param props.id id of the component\n */\nexport const selectConfigurationForComponent = <T extends Configuration>(props: { id: string }) =>\n createSelector(selectConfigurationEntities, (entities) => (entities?.[props.id] || {}) as Configuration as T);\n\n/**\n * Select the global configuration\n */\nexport const selectGlobalConfiguration = createSelector(selectConfigurationForComponent({ id: globalConfigurationId }), (config) => config);\n","import {\n configurationAdapter,\n configurationInitialState,\n} from './configuration.reducer';\nimport {\n ConfigurationState,\n} from './configuration.state';\n\nexport const configurationStorageSync = {\n deserialize: (rawObject: any) => {\n if (!rawObject || !rawObject.ids) {\n return configurationInitialState;\n }\n return configurationAdapter.getInitialState<ConfigurationState>(rawObject);\n }\n};\n","import {\n InjectionToken,\n} from '@angular/core';\nimport {\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\n\nexport const OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS: Readonly<ConfigurationDevtoolsServiceOptions> = {\n defaultLibraryName: '@o3r/components',\n defaultJsonFilename: 'partial-static-config.json',\n isActivatedOnBootstrap: false,\n isActivatedOnBootstrapWhenCMSContext: true\n} as const;\n\nexport const OTTER_CONFIGURATION_DEVTOOLS_OPTIONS = new InjectionToken<ConfigurationDevtoolsServiceOptions>('Otter Configuration Devtools options');\n","import {\n ApplicationRef,\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n computeItemIdentifier,\n Configuration,\n CustomConfig,\n} from '@o3r/core';\nimport {\n firstValueFrom,\n Observable,\n} from 'rxjs';\nimport {\n filter,\n map,\n shareReplay,\n} from 'rxjs/operators';\nimport {\n parseConfigurationName,\n} from '../core';\nimport {\n computeConfiguration,\n ConfigurationModel,\n ConfigurationStore,\n selectConfigurationEntities,\n selectConfigurationIds,\n upsertConfigurationEntities,\n upsertConfigurationEntity,\n} from '../stores';\nimport {\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@Injectable({ providedIn: 'root' })\nexport class OtterConfigurationDevtools {\n protected store = inject<Store<ConfigurationStore>>(Store);\n private readonly appRef = inject(ApplicationRef);\n private readonly options = inject<ConfigurationDevtoolsServiceOptions>(OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, { optional: true }) ?? OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS;\n\n /** Stream of configurations */\n public readonly configurationEntities$: Observable<CustomConfig[]>;\n\n constructor() {\n const options = this.options;\n\n this.options = { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n /** Full configuration store */\n this.configurationEntities$ = this.store.pipe(\n select(selectConfigurationEntities),\n map((entities) =>\n Object.values(entities)\n .filter((entity): entity is ConfigurationModel => !!entity)\n .map((entity) => {\n const { id, ...config } = entity;\n const { library = this.options.defaultLibraryName, componentName: name = id } = parseConfigurationName(id) || {};\n return { name, config, library } satisfies CustomConfig;\n })\n ),\n shareReplay(1)\n );\n }\n\n /**\n * Get configuration name based on input information\n * @param selector Selector for a component configuration. It can be a string in the form library#componentName (i.e: @my-lib/shared-components#HeaderContComponent)\n * or an object with the component and library names (i.e: {library:\"@my-lib/shared-components\", componentName:'HeaderContComponent'})\n * @param isFallbackName Determine if the name requested is a fallback name\n * @returns string in the format library#componentName (i.e: \"@my-lib/shared-components#HeaderContComponent\")\n */\n public getComponentConfigName(selector: string | { library?: string; componentName: string }, isFallbackName = false) {\n if (!isFallbackName) {\n return typeof selector === 'string' ? selector : computeItemIdentifier(selector.componentName, selector.library || this.options.defaultLibraryName);\n }\n\n return typeof selector === 'string'\n ? computeItemIdentifier(selector, this.options.defaultLibraryName || 'global')\n : computeItemIdentifier(selector.componentName, this.options.defaultLibraryName || 'global');\n }\n\n /**\n * Get the list of components which have a configuration loaded in the store\n */\n public getComponentsWithConfiguration(): Promise<string[]> {\n return firstValueFrom(\n this.store\n .pipe(\n select(selectConfigurationIds),\n map((ids) => ids\n .map((configName) => parseConfigurationName(configName.toString()))\n .filter((parsedName): parsedName is { library?: string; componentName: string } => !!parsedName)\n .map((parsedName) => parsedName.componentName + (parsedName.library ? ' from ' + parsedName.library : ''))\n )\n )\n );\n }\n\n /**\n * Set a specified value of a component configuration\n * @param selector Selector for a component configuration\n * @param configProperty Name of the configuration property to set\n * @param configValue Value of the configuration property to set\n */\n public setDynamicConfig(selector: string | { library?: string; componentName: string }, configProperty: string, configValue: any): void {\n this.store.dispatch(\n upsertConfigurationEntity({\n id: this.getComponentConfigName(selector),\n configuration: { [configProperty]: configValue }\n })\n );\n this.appRef.tick();\n }\n\n /**\n * Get the configuration for a specific component\n * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: @my-lib/shared-components#HeaderPresConfig)\n * or an object with the configuration and library names (i.e: {library:\"@my-lib/shared-components\", componentName:'HeaderPresConfig'})\n */\n public getCurrentConfigurationFor(selector: string | { library?: string; componentName: string }): Promise<Configuration> {\n return firstValueFrom(\n this.store.pipe(\n select(selectConfigurationEntities),\n map((entities) => entities[this.getComponentConfigName(selector)] || entities[this.getComponentConfigName(selector, true)]),\n filter((entity): entity is ConfigurationModel => !!entity),\n map((entity) => {\n const { id, ...configuration } = entity;\n return configuration as Configuration;\n })\n )\n );\n }\n\n /**\n * Get the whole configuration of the application\n */\n public getConfiguration() {\n return firstValueFrom(this.configurationEntities$);\n }\n\n /**\n * Load a json configuration\n * @param configurations configurations to load\n */\n public loadConfiguration(configurations: string | CustomConfig<Configuration>[]): void {\n this.store.dispatch(upsertConfigurationEntities(computeConfiguration(typeof configurations === 'string' ? JSON.parse(configurations) : configurations)));\n this.appRef.tick();\n }\n}\n","/* eslint-disable no-console -- service to log message in the console */\nimport {\n inject,\n Injectable,\n} from '@angular/core';\nimport type {\n Configuration,\n ContextualizationDataset,\n CustomConfig,\n DevtoolsServiceInterface,\n WindowWithDevtools,\n} from '@o3r/core';\nimport {\n firstValueFrom,\n} from 'rxjs';\nimport {\n OtterConfigurationDevtools,\n} from './configuration-devtools';\nimport {\n ConfigurationContextualizationDevtools,\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationDevtoolsConsoleService implements DevtoolsServiceInterface, ConfigurationContextualizationDevtools {\n /** Name of the Window property to access to the devtools */\n public static readonly windowModuleName = 'configuration';\n\n private readonly configurationDevtools = inject(OtterConfigurationDevtools);\n private readonly options = inject<ConfigurationDevtoolsServiceOptions>(OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, { optional: true }) ?? OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS;\n\n constructor() {\n const options = this.options;\n\n this.options = { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n if (\n this.options.isActivatedOnBootstrap\n || (\n this.options.isActivatedOnBootstrapWhenCMSContext\n && (document.body.dataset as ContextualizationDataset).cmscontext === 'true'\n )\n ) {\n this.activate();\n }\n }\n\n private downloadJSON(content: string, fileName: string = this.options.defaultJsonFilename): void {\n const a = document.createElement('a');\n const file = new Blob([content], { type: 'text/plain' });\n a.href = URL.createObjectURL(file);\n a.download = fileName;\n a.click();\n }\n\n private copyElementToClipboard(content: string): void {\n const input = document.createElement('textarea');\n input.value = content;\n document.body.append(input);\n input.select();\n document.execCommand('copy');\n input.remove();\n }\n\n /**\n * Set a specified value of a component configuration\n * @param selector Selector for a component configuration\n * @param configProperty Name of the configuration property to set\n * @param configValue Value of the configuration property to set\n */\n public setDynamicConfig(selector: string | { library?: string; componentName: string }, configProperty: string, configValue: any): void {\n this.configurationDevtools.setDynamicConfig(selector, configProperty, configValue);\n }\n\n /** @inheritDoc */\n public activate() {\n const windowWithDevtools: WindowWithDevtools = window;\n windowWithDevtools._OTTER_DEVTOOLS_ ||= {};\n windowWithDevtools._OTTER_DEVTOOLS_[ConfigurationDevtoolsConsoleService.windowModuleName] = this;\n\n console.info(`Otter Configuration Devtools is now accessible via the _OTTER_DEVTOOLS_.${ConfigurationDevtoolsConsoleService.windowModuleName} variable`);\n }\n\n /**\n * Display the list of configurations loaded in the store and the library they originate from\n * @returns array with the configurations and libraries for example: [\"LibComponentsCommonRuntimeConfig from @my-lib/shared-common\"]\n */\n public async displayComponentsWithConfiguration() {\n const selectors = await this.configurationDevtools.getComponentsWithConfiguration();\n console.log(selectors);\n }\n\n /**\n * Display the configuration for a specific component\n * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: '@my-lib/shared-components#HeaderContConfig')\n * or an object with the configuration and library names (i.e: {library:\"@my-lib/shared-components\", componentName:'HeaderContConfig'}).\n * Note the object input componentName expects a configuration name not a component name.\n * @returns Configuration object (i.e: {airlineLogoPath: \"img/airlines/icon-BH.svg\", displayLanguageSelector: false})\n */\n public async displayCurrentConfigurationFor(selector: string | { library?: string; componentName: string }) {\n const configuration = await this.configurationDevtools.getCurrentConfigurationFor(selector);\n console.log(configuration);\n }\n\n /**\n * Download the JSON file of the whole configuration\n * @param fileName Name of the file to download\n */\n public async saveConfiguration(fileName: string = this.options.defaultJsonFilename) {\n const configs = await firstValueFrom(this.configurationDevtools.configurationEntities$);\n this.downloadJSON(JSON.stringify(configs), fileName);\n }\n\n /**\n * Display the whole configuration of the application\n */\n public async displayConfiguration() {\n const configs = await this.configurationDevtools.getConfiguration();\n console.log(configs);\n }\n\n /**\n * Display a bookmark to generate the current configuration\n */\n public async displayConfigurationBookmark() {\n const content = await this.configurationDevtools.getConfiguration();\n\n console.log('BOOKMARK');\n console.log(`javascript:window._OTTER_DEVTOOLS_.updateConfigurations('${JSON.stringify(content).replace(/'/g, '\\\\\\'')}')`);\n }\n\n /**\n * Copy the whole configuration to the clipboard\n */\n public async copyConfigurationToClipboard() {\n const configs = await firstValueFrom(this.configurationDevtools.configurationEntities$);\n this.copyElementToClipboard(JSON.stringify(configs));\n }\n\n /**\n * Replace N configurations in one shot\n * @param configurations array of configurations to update\n */\n public updateConfigurations(configurations: string | CustomConfig<Configuration>[]): void {\n this.configurationDevtools.loadConfiguration(configurations);\n }\n}\n","import type {\n Dictionary,\n} from '@ngrx/entity';\nimport type {\n Configuration,\n ConnectContentMessage,\n ContextualizationDevtoolsCommonOptions,\n CustomConfig,\n DevtoolsCommonOptions,\n MessageDataTypes,\n OtterMessageContent,\n RequestMessagesContentMessage,\n} from '@o3r/core';\nimport type {\n ConfigurationModel,\n} from '../stores/index';\n\n/** Option for Configuration devtools service */\nexport interface ConfigurationDevtoolsServiceOptions extends DevtoolsCommonOptions, ContextualizationDevtoolsCommonOptions {\n /**\n * Default library name to use if not specified in the function call\n * @default `@o3r/components`\n */\n defaultLibraryName: string;\n /**\n * Default JSON file name if not specified in the function\n * @default partial-static-config.json\n */\n defaultJsonFilename: string;\n}\n\nexport interface ConfigurationsMessage extends OtterMessageContent<'configurations'> {\n /** Configurations */\n configurations: Dictionary<ConfigurationModel>;\n}\n\nexport interface UpdateConfigMessage extends OtterMessageContent<'updateConfig'> {\n /** Configuration ID */\n id: string;\n /** Configuration value */\n configValue: any;\n}\n\ntype ConfigurationMessageContents = ConfigurationsMessage\n | UpdateConfigMessage;\n\n/** List of possible DataTypes for Configuration messages */\nexport type ConfigurationMessageDataTypes = MessageDataTypes<ConfigurationMessageContents>;\n\n/** List of all messages for configuration purpose */\nexport type AvailableConfigurationMessageContents = ConfigurationMessageContents\n | ConnectContentMessage\n | RequestMessagesContentMessage<ConfigurationMessageDataTypes>;\n\n/**\n * Determine if the given message is a Configuration message\n * @param message message to check\n */\nexport const isConfigurationMessage = (message: any): message is AvailableConfigurationMessageContents => {\n return message && (\n message.dataType === 'configurations'\n || message.dataType === 'updateConfig'\n || message.dataType === 'requestMessages'\n || message.dataType === 'connect');\n};\n\n/**\n * Contextualization devtools exposed for configuration in CMS integration\n */\nexport interface ConfigurationContextualizationDevtools {\n /**\n * Replace N configurations in one shot\n * @param configs array of configurations to update\n */\n updateConfigurations: (configurations: CustomConfig<Configuration>[]) => void;\n}\n","import {\n DestroyRef,\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n} from '@angular/core/rxjs-interop';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n DevtoolsServiceInterface,\n filterMessageContent,\n sendOtterMessage,\n} from '@o3r/core';\nimport {\n LoggerService,\n} from '@o3r/logger';\nimport {\n firstValueFrom,\n fromEvent,\n} from 'rxjs';\nimport {\n ConfigurationStore,\n selectConfigurationEntities,\n} from '../stores';\nimport {\n OtterConfigurationDevtools,\n} from './configuration-devtools';\nimport {\n AvailableConfigurationMessageContents,\n ConfigurationDevtoolsServiceOptions,\n ConfigurationMessageDataTypes,\n isConfigurationMessage,\n} from './configuration-devtools-interface';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationDevtoolsMessageService implements DevtoolsServiceInterface {\n private readonly store = inject<Store<ConfigurationStore>>(Store);\n private readonly logger = inject(LoggerService);\n private readonly configurationDevtools = inject(OtterConfigurationDevtools);\n private readonly options = inject<ConfigurationDevtoolsServiceOptions>(OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, { optional: true });\n\n private readonly sendMessage = sendOtterMessage<AvailableConfigurationMessageContents>;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const options = this.options;\n\n this.options = { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n\n private async sendCurrentConfigurationState() {\n const configurations = await firstValueFrom(this.store.pipe(\n select(selectConfigurationEntities)\n ));\n this.sendMessage('configurations', { configurations });\n }\n\n /**\n * Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension\n * @param only restricted list of messages to re-send\n */\n private handleReEmitRequest(only?: ConfigurationMessageDataTypes[]) {\n if (!only || only.includes('configurations')) {\n return this.sendCurrentConfigurationState();\n }\n }\n\n /**\n * Function to handle the incoming messages from Otter Chrome DevTools extension\n * @param message message coming from the Otter Chrome DevTools extension\n */\n private async handleEvents(message: AvailableConfigurationMessageContents) {\n this.logger.debug('Message handling by the configuration service', message);\n\n switch (message.dataType) {\n case 'connect': {\n await this.connectPlugin();\n break;\n }\n case 'requestMessages': {\n await this.handleReEmitRequest(message.only);\n break;\n }\n case 'updateConfig': {\n this.configurationDevtools.loadConfiguration([{\n name: message.id,\n config: message.configValue\n }]);\n break;\n }\n default: {\n this.logger.warn('Message ignored by the configuration service', message);\n }\n }\n }\n\n /**\n * Function to connect the plugin to the Otter DevTools extension\n */\n private connectPlugin() {\n this.logger.debug('Otter DevTools is plugged to configuration service of the application');\n return this.sendCurrentConfigurationState();\n }\n\n /** @inheritDoc */\n public activate() {\n fromEvent(window, 'message').pipe(\n takeUntilDestroyed(this.destroyRef),\n filterMessageContent(isConfigurationMessage)\n ).subscribe((e) => this.handleEvents(e));\n\n this.store.pipe(\n select(selectConfigurationEntities),\n takeUntilDestroyed(this.destroyRef)\n ).subscribe((configurations) => this.sendMessage('configurations', { configurations }));\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n StoreModule,\n} from '@ngrx/store';\nimport {\n ConfigurationStoreModule,\n} from '../stores/index';\nimport {\n OtterConfigurationDevtools,\n} from './configuration-devtools';\nimport {\n ConfigurationDevtoolsConsoleService,\n} from './configuration-devtools-console-service';\nimport type {\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\nimport {\n ConfigurationDevtoolsMessageService,\n} from './configuration-devtools-message-service';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@NgModule({\n imports: [\n StoreModule,\n ConfigurationStoreModule\n ],\n providers: [\n { provide: OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, useValue: OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS },\n ConfigurationDevtoolsMessageService,\n ConfigurationDevtoolsConsoleService,\n OtterConfigurationDevtools\n ]\n})\nexport class ConfigurationDevtoolsModule {\n /**\n * Initialize Otter Devtools\n * @param options\n */\n public static instrument(options: Partial<ConfigurationDevtoolsServiceOptions>): ModuleWithProviders<ConfigurationDevtoolsModule> {\n return {\n ngModule: ConfigurationDevtoolsModule,\n providers: [\n { provide: OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, useValue: { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options }, multi: false },\n ConfigurationDevtoolsMessageService,\n ConfigurationDevtoolsConsoleService,\n OtterConfigurationDevtools\n ]\n };\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n LoggerModule,\n} from '@o3r/logger';\nimport {\n ConfigurationStoreModule,\n} from '../../stores/index';\n\n@NgModule({\n imports: [ConfigurationStoreModule, LoggerModule]\n})\nexport class ConfigurationBaseServiceModule {}\n","import {\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n Configuration,\n CustomConfig,\n deepFill,\n} from '@o3r/core';\nimport {\n combineLatest,\n Observable,\n of,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n switchMap,\n take,\n} from 'rxjs/operators';\nimport {\n ConfigOverrideStore,\n selectComponentOverrideConfig,\n} from '../../stores/config-override/index';\nimport {\n computeConfiguration,\n ConfigurationStore,\n globalConfigurationId,\n selectConfigurationEntities,\n selectConfigurationForComponent,\n selectGlobalConfiguration,\n updateConfigurationEntity,\n upsertConfigurationEntities,\n upsertConfigurationEntity,\n} from '../../stores/index';\nimport {\n ConfigurationBaseServiceModule,\n} from './configuration-base-module';\n\nconst jsonStringifyDiff = (obj1: any, obj2: any) => JSON.stringify(obj1) === JSON.stringify(obj2);\n\n/**\n * Configuration service\n */\n@Injectable({\n providedIn: ConfigurationBaseServiceModule\n})\nexport class ConfigurationBaseService {\n private readonly store = inject<Store<ConfigurationStore & ConfigOverrideStore>>(Store);\n\n private readonly extendedConfiguration: { [key: string]: boolean } = {};\n\n /**\n * Update a specific component config or add it to the store if does not exist\n * @param configuration to edit/add\n * @param configurationId Configuration ID\n */\n public upsertConfiguration<T extends Configuration>(configuration: T, configurationId = globalConfigurationId) {\n this.store.dispatch(upsertConfigurationEntity({ id: configurationId, configuration }));\n }\n\n /**\n * Update a specific component config\n * @param configuration Partial config to edit\n * @param configurationId Configuration ID\n */\n public updateConfiguration<T extends Partial<Configuration>>(configuration: T, configurationId = globalConfigurationId) {\n this.store.dispatch(updateConfigurationEntity({ id: configurationId, configuration }));\n }\n\n /**\n * This function will get the configuration stored in the data attribute of the html's body tag\n * @param configTagName Value used to identify the data attribute where the config is pushed in the index.html\n */\n public getConfigFromBodyTag<T extends Configuration>(configTagName = 'staticconfig') {\n const bootstrapConfigString = document.body.dataset[configTagName];\n const customConfigObject: CustomConfig<T>[] = bootstrapConfigString ? JSON.parse(bootstrapConfigString) : [];\n if (customConfigObject.length > 0) {\n this.computeConfiguration(customConfigObject);\n }\n }\n\n /**\n * Transform the custom configuration in store configuration model\n * @param customConfigObject Configuration object (extracted from body tag for static config or downloaded in case of dynamic config)\n */\n public computeConfiguration<T extends Configuration>(customConfigObject: CustomConfig<T>[]) {\n this.store.dispatch(upsertConfigurationEntities(computeConfiguration(customConfigObject)));\n }\n\n /**\n * Complete a stored configuration by adding the missing fields\n * @param extension Configuration extension to be included in the store\n * @param configurationId Configuration ID to extend\n * @param forceUpdate Force update the configuration in the store\n */\n public extendConfiguration<T extends Configuration>(extension: T, configurationId = globalConfigurationId, forceUpdate = false) {\n if (this.extendedConfiguration[configurationId] && !forceUpdate) {\n return;\n }\n this.extendedConfiguration[configurationId] = true;\n this.store.pipe(\n select(selectConfigurationEntities),\n take(1),\n map((storedConfigs) => configurationId in storedConfigs ? deepFill(extension, storedConfigs[configurationId]) : extension)\n ).subscribe((extendedConfig) => this.upsertConfiguration(extendedConfig, configurationId));\n }\n\n /**\n * Operator to get the configuration from store for a given component and merge it with the global config\n * @param id Id of the component\n * @param defaultValue Default value of the configuration\n */\n public getComponentConfig<T extends Configuration>(id: string, defaultValue: T) {\n return (source: Observable<Partial<T> | undefined>): Observable<T> => {\n const componentConfigurationFromStore$ = this.getConfig<T>(id);\n\n return source.pipe(\n switchMap((overrideConfig) => componentConfigurationFromStore$.pipe(\n map((componentConfigurationFromStore) => {\n const config = componentConfigurationFromStore ? deepFill(defaultValue, componentConfigurationFromStore) : defaultValue;\n return overrideConfig ? deepFill(config, overrideConfig) : config;\n })\n ))\n );\n };\n }\n\n /**\n * Get an observable of the configuration from store for a given component and merge it with the global config + the config overrides from the rules engine\n * @param id Id of the component\n */\n public getConfig<T extends Configuration>(id: string): Observable<T> {\n const globalConfig$ = this.store.pipe(select(selectGlobalConfiguration));\n const componentConfig$ = id === globalConfigurationId ? of({}) : this.store.pipe(select(selectConfigurationForComponent({ id })));\n const overrideConfig$ = this.store.pipe(select(selectComponentOverrideConfig(id)));\n\n return combineLatest([globalConfig$, componentConfig$, overrideConfig$]).pipe(\n map(([globalConfig, componentConfig, overrideConfig]) => ({ ...globalConfig, ...componentConfig, ...overrideConfig })),\n distinctUntilChanged(jsonStringifyDiff)\n );\n }\n}\n","import {\n Configuration,\n otterComponentInfoPropertyName,\n} from '@o3r/core';\nimport {\n ConfigurationObserver,\n} from './configuration-observer';\nimport type {\n ConfigurationSignal,\n} from './configuration-signal';\n\nconst decorator = (target: any, key: string) => {\n const privateField = `_${key}`;\n\n if (delete target[key]) {\n Object.defineProperty(target, key, {\n get: function (this: any) {\n return this[privateField];\n },\n set: function (this: any, value: ConfigurationObserver<Configuration> | ConfigurationSignal<Configuration>) {\n this[privateField] = value;\n if (this[otterComponentInfoPropertyName]) {\n this[otterComponentInfoPropertyName].configId = this[privateField].configId;\n }\n },\n enumerable: true,\n configurable: true\n });\n }\n};\n\n/**\n * Decorator to identify the component's configuration\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- decorator should be PascalCase\nexport function O3rConfig() {\n return decorator;\n}\n","import type {\n Configuration,\n} from '@o3r/core';\nimport {\n BehaviorSubject,\n type Observable,\n type Observer,\n type Subject,\n} from 'rxjs';\nimport {\n shareReplay,\n} from 'rxjs/operators';\nimport {\n getConfiguration,\n} from '../core';\nimport {\n ConfigurationBaseService,\n} from '../services/configuration/configuration-base-service';\n\nexport class ConfigurationObserver<T extends Configuration> implements Observer<Partial<T> | undefined>, Pick<Subject<T>, 'asObservable'> {\n /** Inner observable */\n private readonly observable: Observable<T>;\n\n /** Inner subscriber */\n private readonly subscriber: BehaviorSubject<Partial<T>> = new BehaviorSubject<Partial<T>>({});\n\n /** @inheritdoc */\n public closed?: boolean;\n\n constructor(\n /** Configuration ID */\n public configId: string,\n defaultConfig: T,\n configurationService?: ConfigurationBaseService\n ) {\n if (configurationService) {\n configurationService.extendConfiguration(defaultConfig, configId);\n }\n\n this.observable = this.subscriber\n .pipe(\n configurationService ? configurationService.getComponentConfig(configId, defaultConfig) : getConfiguration(defaultConfig),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n }\n\n /** @inheritdoc */\n public next(value?: Partial<T>): void {\n this.subscriber.next(value || {});\n }\n\n /** @inheritdoc */\n public error(err: any): void {\n this.subscriber.error(err);\n this.closed = true;\n }\n\n /** @inheritdoc */\n public complete(): void {\n this.subscriber.complete();\n this.closed = true;\n }\n\n /**\n * @inheritdoc\n */\n public asObservable(): Observable<T> {\n return this.observable;\n }\n}\n","import {\n inject,\n type InputSignal,\n type Signal,\n} from '@angular/core';\nimport {\n toObservable,\n toSignal,\n} from '@angular/core/rxjs-interop';\nimport type {\n Configuration,\n} from '@o3r/core';\nimport {\n shareReplay,\n} from 'rxjs';\nimport {\n getConfiguration,\n} from '../core';\nimport {\n ConfigurationBaseService,\n} from '../services';\n\n/** Configuration signal */\nexport type ConfigurationSignal<T> = Signal<T> & { configId: string };\n\n/**\n * Get a configuration signal\n * @param configInput\n * @param configId\n * @param defaultConfig\n */\nexport function configSignal<T extends Configuration>(\n configInput: InputSignal<Partial<T> | undefined>,\n configId: string,\n defaultConfig: T\n): ConfigurationSignal<T> {\n const configurationService = inject(ConfigurationBaseService, { optional: true });\n if (configurationService) {\n configurationService.extendConfiguration(defaultConfig, configId);\n }\n\n const signal: ConfigurationSignal<T> = toSignal(\n toObservable(configInput).pipe(\n configurationService ? configurationService.getComponentConfig(configId, defaultConfig) : getConfiguration(defaultConfig),\n shareReplay({ bufferSize: 1, refCount: true })\n ),\n { initialValue: defaultConfig }\n ) as ConfigurationSignal<T>;\n signal.configId = configId;\n return signal;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.setConfigOverride","actions.setConfigurationEntities","actions.updateConfigurationEntities","actions.upsertConfigurationEntities","actions.clearConfigurationEntities","actions.updateConfigurationEntity","actions.upsertConfigurationEntity","shareReplay"],"mappings":"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"}
1
+ {"version":3,"file":"o3r-configuration.mjs","sources":["../../src/core/configuration.ts","../../src/stores/config-override/config-override.actions.ts","../../src/stores/config-override/config-override.reducer.ts","../../src/stores/config-override/config-override.state.ts","../../src/stores/config-override/config-override-module.ts","../../src/stores/config-override/config-override.selectors.ts","../../src/stores/config-override/config-override.sync.ts","../../src/stores/configuration/configuration.actions.ts","../../src/stores/configuration/configuration.helpers.ts","../../src/stores/configuration/configuration.reducer.ts","../../src/stores/configuration/configuration.state.ts","../../src/stores/configuration/configuration-module.ts","../../src/stores/configuration/configuration.selectors.ts","../../src/stores/configuration/configuration.sync.ts","../../src/devkit/configuration-devtools-token.ts","../../src/devkit/configuration-devtools.ts","../../src/devkit/configuration-devtools-console-service.ts","../../src/devkit/configuration-devtools-interface.ts","../../src/devkit/configuration-devtools-message-service.ts","../../src/devkit/configuration-devtools-module.ts","../../src/services/configuration/configuration-base-module.ts","../../src/services/configuration/configuration-base-service.ts","../../src/tools/configuration-decorators.ts","../../src/tools/configuration-observer.ts","../../src/tools/configuration-signal.ts","../../src/o3r-configuration.ts"],"sourcesContent":["import {\n deepFill,\n} from '@o3r/core';\nimport {\n Observable,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n} from 'rxjs/operators';\n\n/**\n * Interface to define the error messages into component configuration\n */\nexport interface ErrorMessages {\n /**\n * Error message map\n */\n errorMessages: { [key: string]: string };\n}\n\n/**\n * Interface to specify that the component has an ID\n */\nexport interface Identifiable {\n /**\n * Identifier\n */\n id: string;\n}\n\n/**\n * Get the component and library's names based on the configuration name\n * @param configurationName Name of the component as found in the store\n * @returns Object containing library and component name.\n */\nexport function parseConfigurationName(configurationName: string): { library?: string; libraryName?: string; componentName: string } | undefined {\n const parsedConfigurationName = configurationName.match(/^([^#]*)#(.*)$/i);\n if (parsedConfigurationName) {\n return {\n library: parsedConfigurationName.length > 2 ? parsedConfigurationName[1] : undefined,\n componentName: parsedConfigurationName.length > 2 ? parsedConfigurationName[2] : parsedConfigurationName[0]\n };\n }\n}\n\n/**\n * Operator to get the configuration from store for a given component and merge it with the global config\n * @param defaultValue Default value of the configuration\n */\nexport function getConfiguration<T extends Record<string, unknown>>(defaultValue: T) {\n return <C extends Partial<T>>(source: Observable<C | undefined>): Observable<T> =>\n source.pipe(\n map((configOverride) => {\n return deepFill(defaultValue, configOverride);\n }),\n distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n}\n","import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n SetStateActionPayload,\n} from '@o3r/core';\nimport {\n ConfigOverrideState,\n} from './config-override.state';\n\n/** Actions */\nconst ACTION_SET = '[ConfigOverride] set';\n\n/**\n * Clear all overrides and fill the store with the payload\n */\nexport const setConfigOverride = createAction(ACTION_SET, props<SetStateActionPayload<ConfigOverrideState>>());\n","import {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './config-override.actions';\nimport {\n ConfigOverrideState,\n} from './config-override.state';\n\n/**\n * ConfigOverride Store initial value\n */\nexport const configOverrideInitialState: ConfigOverrideState = { configOverrides: {} };\n\n/**\n * List of basic actions for ConfigOverride Store\n */\nexport const configOverrideReducerFeatures: ReducerTypes<ConfigOverrideState, ActionCreator[]>[] = [\n on(actions.setConfigOverride, (_state, payload) => ({ ...payload.state }))\n];\n\n/**\n * ConfigOverride Store reducer\n */\nexport const configOverrideReducer = createReducer(\n configOverrideInitialState,\n ...configOverrideReducerFeatures\n);\n","/**\n * Property override model\n */\nexport interface PropertyOverride {\n [property: string]: any;\n}\n\n/**\n * ConfigOverride store state\n */\nexport interface ConfigOverrideState {\n /** Map of PropertyOverride indexed on component + config name */\n configOverrides: Record<string, PropertyOverride>;\n}\n\n/**\n * Name of the ConfigOverride Store\n */\nexport const CONFIG_OVERRIDE_STORE_NAME = 'configOverride';\n\n/**\n * ConfigOverride Store Interface\n */\nexport interface ConfigOverrideStore {\n /** ConfigOverride state */\n [CONFIG_OVERRIDE_STORE_NAME]: ConfigOverrideState;\n}\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n configOverrideReducer,\n} from './config-override.reducer';\nimport {\n CONFIG_OVERRIDE_STORE_NAME,\n ConfigOverrideState,\n} from './config-override.state';\n\n/** Token of the ConfigOverride reducer */\nexport const CONFIG_OVERRIDE_REDUCER_TOKEN = new InjectionToken<ActionReducer<ConfigOverrideState, Action>>('Feature ConfigOverride Reducer');\n\n/** Provide default reducer for ConfigOverride store */\nexport function getDefaultConfigOverrideReducer() {\n return configOverrideReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(CONFIG_OVERRIDE_STORE_NAME, CONFIG_OVERRIDE_REDUCER_TOKEN)\n ],\n providers: [\n { provide: CONFIG_OVERRIDE_REDUCER_TOKEN, useFactory: getDefaultConfigOverrideReducer }\n ]\n})\nexport class ConfigOverrideStoreModule {\n public static forRoot<T extends ConfigOverrideState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<ConfigOverrideStoreModule> {\n return {\n ngModule: ConfigOverrideStoreModule,\n providers: [\n { provide: CONFIG_OVERRIDE_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n CONFIG_OVERRIDE_STORE_NAME,\n ConfigOverrideState,\n} from './config-override.state';\n\n/** Select ConfigOverride State */\nexport const selectConfigOverrideState = createFeatureSelector<ConfigOverrideState>(CONFIG_OVERRIDE_STORE_NAME);\n\n/** Select the array of ConfigOverride */\nexport const selectConfigOverride = createSelector(selectConfigOverrideState, (state) => state?.configOverrides || {});\n\n/**\n * Get the override for given component identifier\n * @param componentId\n */\nexport const selectComponentOverrideConfig = (componentId: string) => createSelector(selectConfigOverride, (configOverrides) => configOverrides[componentId] || {});\n","import {\n Serializer,\n} from '@o3r/core';\nimport {\n configOverrideInitialState,\n} from './config-override.reducer';\nimport {\n ConfigOverrideState,\n} from './config-override.state';\n\n/**\n * Deserializer\n * @param rawObject\n */\nexport const configOverrideStorageDeserializer = (rawObject: any) => {\n if (!rawObject) {\n return configOverrideInitialState;\n }\n return rawObject;\n};\n\nexport const configOverrideStorageSync: Serializer<ConfigOverrideState> = {\n deserialize: configOverrideStorageDeserializer\n};\n","import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n Configuration,\n} from '@o3r/core';\n\nexport interface SetConfigurationEntitiesPayload {\n /** Map of configurations to update/insert, this is now Partial due the change of Configuration interface */\n entities: { [id: string]: Partial<Configuration> };\n}\n\nexport interface UpsertConfigurationEntityPayload {\n /** ID of the item */\n id: string;\n /** Updated/New configuration object */\n configuration: Partial<Configuration>;\n}\n\nexport interface UpdateConfigurationEntityPayload {\n /** ID of the item */\n id: string;\n /** Updated/New configuration partial object */\n configuration: Partial<Configuration>;\n}\n\n/** Entity Actions */\nconst ACTION_CLEAR_ENTITIES = '[Configuration] clear entities';\nconst ACTION_UPDATE_ENTITIES = '[Configuration] update entities';\nconst ACTION_UPSERT_ENTITIES = '[Configuration] upsert entities';\nconst ACTION_SET_ENTITIES = '[Configuration] set entities';\nconst ACTION_UPDATE_CONFIGURATION_ENTITY = '[Configuration] update configuration entity';\nconst ACTION_UPSERT_CONFIGURATION_ENTITY = '[Configuration] set configuration entity';\n\n/**\n * Upsert one configuration entity\n */\nexport const upsertConfigurationEntity = createAction(ACTION_UPSERT_CONFIGURATION_ENTITY, props<UpsertConfigurationEntityPayload>());\n\n/**\n * Update one configuration entity\n */\nexport const updateConfigurationEntity = createAction(ACTION_UPDATE_CONFIGURATION_ENTITY, props<UpdateConfigurationEntityPayload>());\n\n/**\n * Clear all configuration and fill the store with the payload\n */\nexport const setConfigurationEntities = createAction(ACTION_SET_ENTITIES, props<SetConfigurationEntitiesPayload>());\n\n/**\n * Update configuration with known IDs, ignore the new ones\n */\nexport const updateConfigurationEntities = createAction(ACTION_UPDATE_ENTITIES, props<SetConfigurationEntitiesPayload>());\n\n/**\n * Update configuration with known IDs, insert the new ones\n */\nexport const upsertConfigurationEntities = createAction(ACTION_UPSERT_ENTITIES, props<SetConfigurationEntitiesPayload>());\n\n/**\n * Clear only the entities, keeps the other attributes in the state\n */\nexport const clearConfigurationEntities = createAction(ACTION_CLEAR_ENTITIES);\n","import type {\n Configuration,\n CustomConfig,\n} from '@o3r/core';\nimport {\n computeItemIdentifier,\n} from '@o3r/core';\nimport {\n SetConfigurationEntitiesPayload,\n} from './configuration.actions';\n\n/**\n * compute the configuration into SetEntitiesPayload\n * @param customConfigObject array of configurations\n */\nexport function computeConfiguration<T extends Configuration>(customConfigObject: CustomConfig<T>[]): SetConfigurationEntitiesPayload {\n const entities = customConfigObject.reduce<{ [k: string]: Partial<T> & { id: string } }>((acc, conf) => {\n const id = computeItemIdentifier(conf.name, conf.library);\n acc[id] = { ...conf.config, id };\n return acc;\n }, {});\n return { entities };\n}\n","import {\n createEntityAdapter,\n EntityAdapter,\n} from '@ngrx/entity';\nimport {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './configuration.actions';\nimport {\n ConfigurationModel,\n ConfigurationState,\n} from './configuration.state';\n\n/**\n * Configuration Store adapter\n */\nexport const configurationAdapter: EntityAdapter<ConfigurationModel> = createEntityAdapter<ConfigurationModel>({\n selectId: (model) => model.id\n});\n\n/**\n * Configuration Store initial value\n */\nexport const configurationInitialState = configurationAdapter.getInitialState<ConfigurationState>({});\n\n/**\n * List of basic actions for Configuration Store\n */\nexport const configurationReducerFeatures: ReducerTypes<ConfigurationState, ActionCreator[]>[] = [\n\n on(actions.setConfigurationEntities, (state, payload) => configurationAdapter.addMany((Object.keys(payload) as (keyof typeof payload)[]).map((id) =>\n ({ ...(payload[id] as any), id })), configurationAdapter.removeAll(state))),\n\n on(actions.updateConfigurationEntities, (state, payload) =>\n configurationAdapter.updateMany(Object.keys(payload.entities).map((id) => ({ id: id, changes: payload.entities[id] })), state)),\n\n on(actions.upsertConfigurationEntities, (state, payload) => configurationAdapter.upsertMany(Object.keys(payload.entities).map((id) => ({ ...payload.entities[id], id })), state)),\n\n on(actions.clearConfigurationEntities, (state) => configurationAdapter.removeAll(state)),\n\n on(actions.updateConfigurationEntity, (state, payload) => configurationAdapter.updateOne({ id: payload.id, changes: payload.configuration }, state)),\n\n on(actions.upsertConfigurationEntity, (state, payload) => configurationAdapter.upsertOne({ id: payload.id, ...payload.configuration }, state))\n];\n\n/**\n * Configuration Store reducer\n */\nexport const configurationReducer = createReducer(\n configurationInitialState,\n ...configurationReducerFeatures\n);\n","import type {\n EntityState,\n} from '@ngrx/entity';\nimport type {\n Configuration,\n} from '@o3r/core';\n\n/**\n * Configuration model\n */\nexport interface ConfigurationModel extends Configuration {\n id: string;\n}\n\n/**\n * Configuration store state\n */\nexport interface ConfigurationState extends EntityState<ConfigurationModel> {\n}\n\n/**\n * Name of the Configuration Store\n */\nexport const CONFIGURATION_STORE_NAME = 'configuration';\n\n/**\n * Configuration Store Interface\n */\nexport interface ConfigurationStore {\n /** Configuration state */\n [CONFIGURATION_STORE_NAME]: ConfigurationState;\n}\n\n/**\n * ID of the global configuration\n */\nexport const globalConfigurationId = 'global';\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n configurationReducer,\n} from './configuration.reducer';\nimport {\n CONFIGURATION_STORE_NAME,\n ConfigurationState,\n} from './configuration.state';\n\n/** Token of the Configuration reducer */\nexport const CONFIGURATION_REDUCER_TOKEN = new InjectionToken<ActionReducer<ConfigurationState, Action>>('Feature Configuration Reducer');\n\n/** Provide default reducer for Configuration store */\nexport function getDefaultConfigurationReducer() {\n return configurationReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(CONFIGURATION_STORE_NAME, CONFIGURATION_REDUCER_TOKEN)\n ],\n providers: [\n { provide: CONFIGURATION_REDUCER_TOKEN, useFactory: getDefaultConfigurationReducer }\n ]\n})\nexport class ConfigurationStoreModule {\n public static forRoot<T extends ConfigurationState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<ConfigurationStoreModule> {\n return {\n ngModule: ConfigurationStoreModule,\n providers: [\n { provide: CONFIGURATION_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createSelector,\n} from '@ngrx/store';\nimport {\n Configuration,\n} from '@o3r/core';\nimport {\n configurationAdapter,\n} from './configuration.reducer';\nimport {\n CONFIGURATION_STORE_NAME,\n ConfigurationState,\n globalConfigurationId,\n} from './configuration.state';\n\nconst { selectIds, selectEntities, selectAll, selectTotal } = configurationAdapter.getSelectors();\n\n/**\n * Select Configuration State\n * Note: the usage of createSelector is to avoid warning printing because of potentially undefined feature store\n */\nexport const selectConfigurationState = createSelector<{ [CONFIGURATION_STORE_NAME]: ConfigurationState }, [state: ConfigurationState | undefined], ConfigurationState | undefined>(\n (state) => state[CONFIGURATION_STORE_NAME],\n (state) => state\n);\n\n/** Select the array of Configuration ids */\nexport const selectConfigurationIds = createSelector(selectConfigurationState, (state) => state ? selectIds(state) : []);\n\n/** Select the array of Configuration */\nexport const selectAllConfiguration = createSelector(selectConfigurationState, (state) => state ? selectAll(state) : []);\n\n/** Select the dictionary of Configuration entities */\nexport const selectConfigurationEntities = createSelector(selectConfigurationState, (state) => state ? selectEntities(state) : {});\n\n/** Select the total Configuration count */\nexport const selectConfigurationTotal = createSelector(selectConfigurationState, (state) => state ? selectTotal(state) : 0);\n\n/**\n * Select the configuration for component with id\n * @param props property of the selector\n * @param props.id id of the component\n */\nexport const selectConfigurationForComponent = <T extends Configuration>(props: { id: string }) =>\n createSelector(selectConfigurationEntities, (entities) => (entities?.[props.id] || {}) as Configuration as T);\n\n/**\n * Select the global configuration\n */\nexport const selectGlobalConfiguration = createSelector(selectConfigurationForComponent({ id: globalConfigurationId }), (config) => config);\n","import {\n configurationAdapter,\n configurationInitialState,\n} from './configuration.reducer';\nimport {\n ConfigurationState,\n} from './configuration.state';\n\nexport const configurationStorageSync = {\n deserialize: (rawObject: any) => {\n if (!rawObject || !rawObject.ids) {\n return configurationInitialState;\n }\n return configurationAdapter.getInitialState<ConfigurationState>(rawObject);\n }\n};\n","import {\n InjectionToken,\n} from '@angular/core';\nimport {\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\n\nexport const OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS: Readonly<ConfigurationDevtoolsServiceOptions> = {\n defaultLibraryName: '@o3r/components',\n defaultJsonFilename: 'partial-static-config.json',\n isActivatedOnBootstrap: false,\n isActivatedOnBootstrapWhenCMSContext: true\n} as const;\n\nexport const OTTER_CONFIGURATION_DEVTOOLS_OPTIONS = new InjectionToken<ConfigurationDevtoolsServiceOptions>('Otter Configuration Devtools options');\n","import {\n ApplicationRef,\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n computeItemIdentifier,\n Configuration,\n CustomConfig,\n} from '@o3r/core';\nimport {\n firstValueFrom,\n Observable,\n} from 'rxjs';\nimport {\n filter,\n map,\n shareReplay,\n} from 'rxjs/operators';\nimport {\n parseConfigurationName,\n} from '../core';\nimport {\n computeConfiguration,\n ConfigurationModel,\n ConfigurationStore,\n selectConfigurationEntities,\n selectConfigurationIds,\n upsertConfigurationEntities,\n upsertConfigurationEntity,\n} from '../stores';\nimport {\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@Injectable({ providedIn: 'root' })\nexport class OtterConfigurationDevtools {\n protected store = inject<Store<ConfigurationStore>>(Store);\n private readonly appRef = inject(ApplicationRef);\n private readonly options = inject<ConfigurationDevtoolsServiceOptions>(OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, { optional: true }) ?? OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS;\n\n /** Stream of configurations */\n public readonly configurationEntities$: Observable<CustomConfig[]>;\n\n constructor() {\n const options = this.options;\n\n this.options = { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n /** Full configuration store */\n this.configurationEntities$ = this.store.pipe(\n select(selectConfigurationEntities),\n map((entities) =>\n Object.values(entities)\n .filter((entity): entity is ConfigurationModel => !!entity)\n .map((entity) => {\n const { id, ...config } = entity;\n const { library = this.options.defaultLibraryName, componentName: name = id } = parseConfigurationName(id) || {};\n return { name, config, library } satisfies CustomConfig;\n })\n ),\n shareReplay(1)\n );\n }\n\n /**\n * Get configuration name based on input information\n * @param selector Selector for a component configuration. It can be a string in the form library#componentName (i.e: `@my-lib/shared-components#HeaderContComponent`)\n * or an object with the component and library names (i.e: `{library:\"@my-lib/shared-components\", componentName:'HeaderContComponent'}`)\n * @param isFallbackName Determine if the name requested is a fallback name\n * @returns string in the format library#componentName (i.e: `\"@my-lib/shared-components#HeaderContComponent\"`)\n */\n public getComponentConfigName(selector: string | { library?: string; componentName: string }, isFallbackName = false) {\n if (!isFallbackName) {\n return typeof selector === 'string' ? selector : computeItemIdentifier(selector.componentName, selector.library || this.options.defaultLibraryName);\n }\n\n return typeof selector === 'string'\n ? computeItemIdentifier(selector, this.options.defaultLibraryName || 'global')\n : computeItemIdentifier(selector.componentName, this.options.defaultLibraryName || 'global');\n }\n\n /**\n * Get the list of components which have a configuration loaded in the store\n */\n public getComponentsWithConfiguration(): Promise<string[]> {\n return firstValueFrom(\n this.store\n .pipe(\n select(selectConfigurationIds),\n map((ids) => ids\n .map((configName) => parseConfigurationName(configName.toString()))\n .filter((parsedName): parsedName is { library?: string; componentName: string } => !!parsedName)\n .map((parsedName) => parsedName.componentName + (parsedName.library ? ' from ' + parsedName.library : ''))\n )\n )\n );\n }\n\n /**\n * Set a specified value of a component configuration\n * @param selector Selector for a component configuration\n * @param configProperty Name of the configuration property to set\n * @param configValue Value of the configuration property to set\n */\n public setDynamicConfig(selector: string | { library?: string; componentName: string }, configProperty: string, configValue: any): void {\n this.store.dispatch(\n upsertConfigurationEntity({\n id: this.getComponentConfigName(selector),\n configuration: { [configProperty]: configValue }\n })\n );\n this.appRef.tick();\n }\n\n /**\n * Get the configuration for a specific component\n * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: `@my-lib/shared-components#HeaderPresConfig`)\n * or an object with the configuration and library names (i.e: `{library:\"@my-lib/shared-components\", componentName:'HeaderPresConfig'}`)\n */\n public getCurrentConfigurationFor(selector: string | { library?: string; componentName: string }): Promise<Configuration> {\n return firstValueFrom(\n this.store.pipe(\n select(selectConfigurationEntities),\n map((entities) => entities[this.getComponentConfigName(selector)] || entities[this.getComponentConfigName(selector, true)]),\n filter((entity): entity is ConfigurationModel => !!entity),\n map((entity) => {\n const { id, ...configuration } = entity;\n return configuration as Configuration;\n })\n )\n );\n }\n\n /**\n * Get the whole configuration of the application\n */\n public getConfiguration() {\n return firstValueFrom(this.configurationEntities$);\n }\n\n /**\n * Load a json configuration\n * @param configurations configurations to load\n */\n public loadConfiguration(configurations: string | CustomConfig<Configuration>[]): void {\n this.store.dispatch(upsertConfigurationEntities(computeConfiguration(typeof configurations === 'string' ? JSON.parse(configurations) : configurations)));\n this.appRef.tick();\n }\n}\n","/* eslint-disable no-console -- service to log message in the console */\nimport {\n inject,\n Injectable,\n} from '@angular/core';\nimport type {\n Configuration,\n ContextualizationDataset,\n CustomConfig,\n DevtoolsServiceInterface,\n WindowWithDevtools,\n} from '@o3r/core';\nimport {\n firstValueFrom,\n} from 'rxjs';\nimport {\n OtterConfigurationDevtools,\n} from './configuration-devtools';\nimport {\n ConfigurationContextualizationDevtools,\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationDevtoolsConsoleService implements DevtoolsServiceInterface, ConfigurationContextualizationDevtools {\n /** Name of the Window property to access to the devtools */\n public static readonly windowModuleName = 'configuration';\n\n private readonly configurationDevtools = inject(OtterConfigurationDevtools);\n private readonly options = inject<ConfigurationDevtoolsServiceOptions>(OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, { optional: true }) ?? OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS;\n\n constructor() {\n const options = this.options;\n\n this.options = { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n if (\n this.options.isActivatedOnBootstrap\n || (\n this.options.isActivatedOnBootstrapWhenCMSContext\n && (document.body.dataset as ContextualizationDataset).cmscontext === 'true'\n )\n ) {\n this.activate();\n }\n }\n\n private downloadJSON(content: string, fileName: string = this.options.defaultJsonFilename): void {\n const a = document.createElement('a');\n const file = new Blob([content], { type: 'text/plain' });\n a.href = URL.createObjectURL(file);\n a.download = fileName;\n a.click();\n }\n\n private copyElementToClipboard(content: string): void {\n const input = document.createElement('textarea');\n input.value = content;\n document.body.append(input);\n input.select();\n document.execCommand('copy');\n input.remove();\n }\n\n /**\n * Set a specified value of a component configuration\n * @param selector Selector for a component configuration\n * @param configProperty Name of the configuration property to set\n * @param configValue Value of the configuration property to set\n */\n public setDynamicConfig(selector: string | { library?: string; componentName: string }, configProperty: string, configValue: any): void {\n this.configurationDevtools.setDynamicConfig(selector, configProperty, configValue);\n }\n\n /** @inheritDoc */\n public activate() {\n const windowWithDevtools: WindowWithDevtools = window;\n windowWithDevtools._OTTER_DEVTOOLS_ ||= {};\n windowWithDevtools._OTTER_DEVTOOLS_[ConfigurationDevtoolsConsoleService.windowModuleName] = this;\n\n console.info(`Otter Configuration Devtools is now accessible via the _OTTER_DEVTOOLS_.${ConfigurationDevtoolsConsoleService.windowModuleName} variable`);\n }\n\n /**\n * Display the list of configurations loaded in the store and the library they originate from\n * @returns array with the configurations and libraries for example: `[\"LibComponentsCommonRuntimeConfig from \\@my-lib/shared-common\"]`\n */\n public async displayComponentsWithConfiguration() {\n const selectors = await this.configurationDevtools.getComponentsWithConfiguration();\n console.log(selectors);\n }\n\n /**\n * Display the configuration for a specific component\n * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: '@my-lib/shared-components#HeaderContConfig')\n * or an object with the configuration and library names (i.e: `{library:\"@my-lib/shared-components\", componentName:'HeaderContConfig'}`).\n * Note the object input componentName expects a configuration name not a component name.\n * @returns Configuration object (i.e: {airlineLogoPath: \"img/airlines/icon-BH.svg\", displayLanguageSelector: false})\n */\n public async displayCurrentConfigurationFor(selector: string | { library?: string; componentName: string }) {\n const configuration = await this.configurationDevtools.getCurrentConfigurationFor(selector);\n console.log(configuration);\n }\n\n /**\n * Download the JSON file of the whole configuration\n * @param fileName Name of the file to download\n */\n public async saveConfiguration(fileName: string = this.options.defaultJsonFilename) {\n const configs = await firstValueFrom(this.configurationDevtools.configurationEntities$);\n this.downloadJSON(JSON.stringify(configs), fileName);\n }\n\n /**\n * Display the whole configuration of the application\n */\n public async displayConfiguration() {\n const configs = await this.configurationDevtools.getConfiguration();\n console.log(configs);\n }\n\n /**\n * Display a bookmark to generate the current configuration\n */\n public async displayConfigurationBookmark() {\n const content = await this.configurationDevtools.getConfiguration();\n\n console.log('BOOKMARK');\n console.log(`javascript:window._OTTER_DEVTOOLS_.updateConfigurations('${JSON.stringify(content).replace(/'/g, '\\\\\\'')}')`);\n }\n\n /**\n * Copy the whole configuration to the clipboard\n */\n public async copyConfigurationToClipboard() {\n const configs = await firstValueFrom(this.configurationDevtools.configurationEntities$);\n this.copyElementToClipboard(JSON.stringify(configs));\n }\n\n /**\n * Replace N configurations in one shot\n * @param configurations array of configurations to update\n */\n public updateConfigurations(configurations: string | CustomConfig<Configuration>[]): void {\n this.configurationDevtools.loadConfiguration(configurations);\n }\n}\n","import type {\n Dictionary,\n} from '@ngrx/entity';\nimport type {\n Configuration,\n ConnectContentMessage,\n ContextualizationDevtoolsCommonOptions,\n CustomConfig,\n DevtoolsCommonOptions,\n MessageDataTypes,\n OtterMessageContent,\n RequestMessagesContentMessage,\n} from '@o3r/core';\nimport type {\n ConfigurationModel,\n} from '../stores/index';\n\n/** Option for Configuration devtools service */\nexport interface ConfigurationDevtoolsServiceOptions extends DevtoolsCommonOptions, ContextualizationDevtoolsCommonOptions {\n /**\n * Default library name to use if not specified in the function call\n * @default `@o3r/components`\n */\n defaultLibraryName: string;\n /**\n * Default JSON file name if not specified in the function\n * @default partial-static-config.json\n */\n defaultJsonFilename: string;\n}\n\nexport interface ConfigurationsMessage extends OtterMessageContent<'configurations'> {\n /** Configurations */\n configurations: Dictionary<ConfigurationModel>;\n}\n\nexport interface UpdateConfigMessage extends OtterMessageContent<'updateConfig'> {\n /** Configuration ID */\n id: string;\n /** Configuration value */\n configValue: any;\n}\n\ntype ConfigurationMessageContents = ConfigurationsMessage\n | UpdateConfigMessage;\n\n/** List of possible DataTypes for Configuration messages */\nexport type ConfigurationMessageDataTypes = MessageDataTypes<ConfigurationMessageContents>;\n\n/** List of all messages for configuration purpose */\nexport type AvailableConfigurationMessageContents = ConfigurationMessageContents\n | ConnectContentMessage\n | RequestMessagesContentMessage<ConfigurationMessageDataTypes>;\n\n/**\n * Determine if the given message is a Configuration message\n * @param message message to check\n */\nexport const isConfigurationMessage = (message: any): message is AvailableConfigurationMessageContents => {\n return message && (\n message.dataType === 'configurations'\n || message.dataType === 'updateConfig'\n || message.dataType === 'requestMessages'\n || message.dataType === 'connect');\n};\n\n/**\n * Contextualization devtools exposed for configuration in CMS integration\n */\nexport interface ConfigurationContextualizationDevtools {\n /**\n * Replace N configurations in one shot\n * @param configs array of configurations to update\n */\n updateConfigurations: (configurations: CustomConfig<Configuration>[]) => void;\n}\n","import {\n DestroyRef,\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n} from '@angular/core/rxjs-interop';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n DevtoolsServiceInterface,\n filterMessageContent,\n sendOtterMessage,\n} from '@o3r/core';\nimport {\n LoggerService,\n} from '@o3r/logger';\nimport {\n firstValueFrom,\n fromEvent,\n} from 'rxjs';\nimport {\n ConfigurationStore,\n selectConfigurationEntities,\n} from '../stores';\nimport {\n OtterConfigurationDevtools,\n} from './configuration-devtools';\nimport {\n AvailableConfigurationMessageContents,\n ConfigurationDevtoolsServiceOptions,\n ConfigurationMessageDataTypes,\n isConfigurationMessage,\n} from './configuration-devtools-interface';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationDevtoolsMessageService implements DevtoolsServiceInterface {\n private readonly store = inject<Store<ConfigurationStore>>(Store);\n private readonly logger = inject(LoggerService);\n private readonly configurationDevtools = inject(OtterConfigurationDevtools);\n private readonly options = inject<ConfigurationDevtoolsServiceOptions>(OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, { optional: true });\n\n private readonly sendMessage = sendOtterMessage<AvailableConfigurationMessageContents>;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const options = this.options;\n\n this.options = { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n\n private async sendCurrentConfigurationState() {\n const configurations = await firstValueFrom(this.store.pipe(\n select(selectConfigurationEntities)\n ));\n this.sendMessage('configurations', { configurations });\n }\n\n /**\n * Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension\n * @param only restricted list of messages to re-send\n */\n private handleReEmitRequest(only?: ConfigurationMessageDataTypes[]) {\n if (!only || only.includes('configurations')) {\n return this.sendCurrentConfigurationState();\n }\n }\n\n /**\n * Function to handle the incoming messages from Otter Chrome DevTools extension\n * @param message message coming from the Otter Chrome DevTools extension\n */\n private async handleEvents(message: AvailableConfigurationMessageContents) {\n this.logger.debug('Message handling by the configuration service', message);\n\n switch (message.dataType) {\n case 'connect': {\n await this.connectPlugin();\n break;\n }\n case 'requestMessages': {\n await this.handleReEmitRequest(message.only);\n break;\n }\n case 'updateConfig': {\n this.configurationDevtools.loadConfiguration([{\n name: message.id,\n config: message.configValue\n }]);\n break;\n }\n default: {\n this.logger.warn('Message ignored by the configuration service', message);\n }\n }\n }\n\n /**\n * Function to connect the plugin to the Otter DevTools extension\n */\n private connectPlugin() {\n this.logger.debug('Otter DevTools is plugged to configuration service of the application');\n return this.sendCurrentConfigurationState();\n }\n\n /** @inheritDoc */\n public activate() {\n fromEvent(window, 'message').pipe(\n takeUntilDestroyed(this.destroyRef),\n filterMessageContent(isConfigurationMessage)\n ).subscribe((e) => this.handleEvents(e));\n\n this.store.pipe(\n select(selectConfigurationEntities),\n takeUntilDestroyed(this.destroyRef)\n ).subscribe((configurations) => this.sendMessage('configurations', { configurations }));\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n StoreModule,\n} from '@ngrx/store';\nimport {\n ConfigurationStoreModule,\n} from '../stores/index';\nimport {\n OtterConfigurationDevtools,\n} from './configuration-devtools';\nimport {\n ConfigurationDevtoolsConsoleService,\n} from './configuration-devtools-console-service';\nimport type {\n ConfigurationDevtoolsServiceOptions,\n} from './configuration-devtools-interface';\nimport {\n ConfigurationDevtoolsMessageService,\n} from './configuration-devtools-message-service';\nimport {\n OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_CONFIGURATION_DEVTOOLS_OPTIONS,\n} from './configuration-devtools-token';\n\n@NgModule({\n imports: [\n StoreModule,\n ConfigurationStoreModule\n ],\n providers: [\n { provide: OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, useValue: OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS },\n ConfigurationDevtoolsMessageService,\n ConfigurationDevtoolsConsoleService,\n OtterConfigurationDevtools\n ]\n})\nexport class ConfigurationDevtoolsModule {\n /**\n * Initialize Otter Devtools\n * @param options\n */\n public static instrument(options: Partial<ConfigurationDevtoolsServiceOptions>): ModuleWithProviders<ConfigurationDevtoolsModule> {\n return {\n ngModule: ConfigurationDevtoolsModule,\n providers: [\n { provide: OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, useValue: { ...OTTER_CONFIGURATION_DEVTOOLS_DEFAULT_OPTIONS, ...options }, multi: false },\n ConfigurationDevtoolsMessageService,\n ConfigurationDevtoolsConsoleService,\n OtterConfigurationDevtools\n ]\n };\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n LoggerModule,\n} from '@o3r/logger';\nimport {\n ConfigurationStoreModule,\n} from '../../stores/index';\n\n@NgModule({\n imports: [ConfigurationStoreModule, LoggerModule]\n})\nexport class ConfigurationBaseServiceModule {}\n","import {\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n Configuration,\n CustomConfig,\n deepFill,\n} from '@o3r/core';\nimport {\n combineLatest,\n Observable,\n of,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n switchMap,\n take,\n} from 'rxjs/operators';\nimport {\n ConfigOverrideStore,\n selectComponentOverrideConfig,\n} from '../../stores/config-override/index';\nimport {\n computeConfiguration,\n ConfigurationStore,\n globalConfigurationId,\n selectConfigurationEntities,\n selectConfigurationForComponent,\n selectGlobalConfiguration,\n updateConfigurationEntity,\n upsertConfigurationEntities,\n upsertConfigurationEntity,\n} from '../../stores/index';\nimport {\n ConfigurationBaseServiceModule,\n} from './configuration-base-module';\n\nconst jsonStringifyDiff = (obj1: any, obj2: any) => JSON.stringify(obj1) === JSON.stringify(obj2);\n\n/**\n * Configuration service\n */\n@Injectable({\n providedIn: ConfigurationBaseServiceModule\n})\nexport class ConfigurationBaseService {\n private readonly store = inject<Store<ConfigurationStore & ConfigOverrideStore>>(Store);\n\n private readonly extendedConfiguration: { [key: string]: boolean } = {};\n\n /**\n * Update a specific component config or add it to the store if does not exist\n * @param configuration to edit/add\n * @param configurationId Configuration ID\n */\n public upsertConfiguration<T extends Configuration>(configuration: T, configurationId = globalConfigurationId) {\n this.store.dispatch(upsertConfigurationEntity({ id: configurationId, configuration }));\n }\n\n /**\n * Update a specific component config\n * @param configuration Partial config to edit\n * @param configurationId Configuration ID\n */\n public updateConfiguration<T extends Partial<Configuration>>(configuration: T, configurationId = globalConfigurationId) {\n this.store.dispatch(updateConfigurationEntity({ id: configurationId, configuration }));\n }\n\n /**\n * This function will get the configuration stored in the data attribute of the html's body tag\n * @param configTagName Value used to identify the data attribute where the config is pushed in the index.html\n */\n public getConfigFromBodyTag<T extends Configuration>(configTagName = 'staticconfig') {\n const bootstrapConfigString = document.body.dataset[configTagName];\n const customConfigObject: CustomConfig<T>[] = bootstrapConfigString ? JSON.parse(bootstrapConfigString) : [];\n if (customConfigObject.length > 0) {\n this.computeConfiguration(customConfigObject);\n }\n }\n\n /**\n * Transform the custom configuration in store configuration model\n * @param customConfigObject Configuration object (extracted from body tag for static config or downloaded in case of dynamic config)\n */\n public computeConfiguration<T extends Configuration>(customConfigObject: CustomConfig<T>[]) {\n this.store.dispatch(upsertConfigurationEntities(computeConfiguration(customConfigObject)));\n }\n\n /**\n * Complete a stored configuration by adding the missing fields\n * @param extension Configuration extension to be included in the store\n * @param configurationId Configuration ID to extend\n * @param forceUpdate Force update the configuration in the store\n */\n public extendConfiguration<T extends Configuration>(extension: T, configurationId = globalConfigurationId, forceUpdate = false) {\n if (this.extendedConfiguration[configurationId] && !forceUpdate) {\n return;\n }\n this.extendedConfiguration[configurationId] = true;\n this.store.pipe(\n select(selectConfigurationEntities),\n take(1),\n map((storedConfigs) => configurationId in storedConfigs ? deepFill(extension, storedConfigs[configurationId]) : extension)\n ).subscribe((extendedConfig) => this.upsertConfiguration(extendedConfig, configurationId));\n }\n\n /**\n * Operator to get the configuration from store for a given component and merge it with the global config\n * @param id Id of the component\n * @param defaultValue Default value of the configuration\n */\n public getComponentConfig<T extends Configuration>(id: string, defaultValue: T) {\n return (source: Observable<Partial<T> | undefined>): Observable<T> => {\n const componentConfigurationFromStore$ = this.getConfig<T>(id);\n\n return source.pipe(\n switchMap((overrideConfig) => componentConfigurationFromStore$.pipe(\n map((componentConfigurationFromStore) => {\n const config = componentConfigurationFromStore ? deepFill(defaultValue, componentConfigurationFromStore) : defaultValue;\n return overrideConfig ? deepFill(config, overrideConfig) : config;\n })\n ))\n );\n };\n }\n\n /**\n * Get an observable of the configuration from store for a given component and merge it with the global config + the config overrides from the rules engine\n * @param id Id of the component\n */\n public getConfig<T extends Configuration>(id: string): Observable<T> {\n const globalConfig$ = this.store.pipe(select(selectGlobalConfiguration));\n const componentConfig$ = id === globalConfigurationId ? of({}) : this.store.pipe(select(selectConfigurationForComponent({ id })));\n const overrideConfig$ = this.store.pipe(select(selectComponentOverrideConfig(id)));\n\n return combineLatest([globalConfig$, componentConfig$, overrideConfig$]).pipe(\n map(([globalConfig, componentConfig, overrideConfig]) => ({ ...globalConfig, ...componentConfig, ...overrideConfig })),\n distinctUntilChanged(jsonStringifyDiff)\n );\n }\n}\n","import {\n Configuration,\n otterComponentInfoPropertyName,\n} from '@o3r/core';\nimport {\n ConfigurationObserver,\n} from './configuration-observer';\nimport type {\n ConfigurationSignal,\n} from './configuration-signal';\n\nconst decorator = (target: any, key: string) => {\n const privateField = `_${key}`;\n\n if (delete target[key]) {\n Object.defineProperty(target, key, {\n get: function (this: any) {\n return this[privateField];\n },\n set: function (this: any, value: ConfigurationObserver<Configuration> | ConfigurationSignal<Configuration>) {\n this[privateField] = value;\n if (this[otterComponentInfoPropertyName]) {\n this[otterComponentInfoPropertyName].configId = this[privateField].configId;\n }\n },\n enumerable: true,\n configurable: true\n });\n }\n};\n\n/**\n * Decorator to identify the component's configuration\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- decorator should be PascalCase\nexport function O3rConfig() {\n return decorator;\n}\n","import type {\n Configuration,\n} from '@o3r/core';\nimport {\n BehaviorSubject,\n type Observable,\n type Observer,\n type Subject,\n} from 'rxjs';\nimport {\n shareReplay,\n} from 'rxjs/operators';\nimport {\n getConfiguration,\n} from '../core';\nimport {\n ConfigurationBaseService,\n} from '../services/configuration/configuration-base-service';\n\nexport class ConfigurationObserver<T extends Configuration> implements Observer<Partial<T> | undefined>, Pick<Subject<T>, 'asObservable'> {\n /** Inner observable */\n private readonly observable: Observable<T>;\n\n /** Inner subscriber */\n private readonly subscriber: BehaviorSubject<Partial<T>> = new BehaviorSubject<Partial<T>>({});\n\n /** @inheritdoc */\n public closed?: boolean;\n\n constructor(\n /** Configuration ID */\n public configId: string,\n defaultConfig: T,\n configurationService?: ConfigurationBaseService\n ) {\n if (configurationService) {\n configurationService.extendConfiguration(defaultConfig, configId);\n }\n\n this.observable = this.subscriber\n .pipe(\n configurationService ? configurationService.getComponentConfig(configId, defaultConfig) : getConfiguration(defaultConfig),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n }\n\n /** @inheritdoc */\n public next(value?: Partial<T>): void {\n this.subscriber.next(value || {});\n }\n\n /** @inheritdoc */\n public error(err: any): void {\n this.subscriber.error(err);\n this.closed = true;\n }\n\n /** @inheritdoc */\n public complete(): void {\n this.subscriber.complete();\n this.closed = true;\n }\n\n /**\n * @inheritdoc\n */\n public asObservable(): Observable<T> {\n return this.observable;\n }\n}\n","import {\n inject,\n type InputSignal,\n type Signal,\n} from '@angular/core';\nimport {\n toObservable,\n toSignal,\n} from '@angular/core/rxjs-interop';\nimport type {\n Configuration,\n} from '@o3r/core';\nimport {\n shareReplay,\n} from 'rxjs';\nimport {\n getConfiguration,\n} from '../core';\nimport {\n ConfigurationBaseService,\n} from '../services';\n\n/** Configuration signal */\nexport type ConfigurationSignal<T> = Signal<T> & { configId: string };\n\n/**\n * Get a configuration signal\n * @param configInput\n * @param configId\n * @param defaultConfig\n */\nexport function configSignal<T extends Configuration>(\n configInput: InputSignal<Partial<T> | undefined>,\n configId: string,\n defaultConfig: T\n): ConfigurationSignal<T> {\n const configurationService = inject(ConfigurationBaseService, { optional: true });\n if (configurationService) {\n configurationService.extendConfiguration(defaultConfig, configId);\n }\n\n const signal: ConfigurationSignal<T> = toSignal(\n toObservable(configInput).pipe(\n configurationService ? configurationService.getComponentConfig(configId, defaultConfig) : getConfiguration(defaultConfig),\n shareReplay({ bufferSize: 1, refCount: true })\n ),\n { initialValue: defaultConfig }\n ) as ConfigurationSignal<T>;\n signal.configId = configId;\n return signal;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.setConfigOverride","actions.setConfigurationEntities","actions.updateConfigurationEntities","actions.upsertConfigurationEntities","actions.clearConfigurationEntities","actions.updateConfigurationEntity","actions.upsertConfigurationEntity","shareReplay"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -331,13 +331,13 @@ declare class ConfigurationDevtoolsConsoleService implements DevtoolsServiceInte
331
331
  activate(): void;
332
332
  /**
333
333
  * Display the list of configurations loaded in the store and the library they originate from
334
- * @returns array with the configurations and libraries for example: ["LibComponentsCommonRuntimeConfig from @my-lib/shared-common"]
334
+ * @returns array with the configurations and libraries for example: `["LibComponentsCommonRuntimeConfig from \@my-lib/shared-common"]`
335
335
  */
336
336
  displayComponentsWithConfiguration(): Promise<void>;
337
337
  /**
338
338
  * Display the configuration for a specific component
339
339
  * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: '@my-lib/shared-components#HeaderContConfig')
340
- * or an object with the configuration and library names (i.e: {library:"@my-lib/shared-components", componentName:'HeaderContConfig'}).
340
+ * or an object with the configuration and library names (i.e: `{library:"@my-lib/shared-components", componentName:'HeaderContConfig'}`).
341
341
  * Note the object input componentName expects a configuration name not a component name.
342
342
  * @returns Configuration object (i.e: {airlineLogoPath: "img/airlines/icon-BH.svg", displayLanguageSelector: false})
343
343
  */
@@ -420,10 +420,10 @@ declare class OtterConfigurationDevtools {
420
420
  constructor();
421
421
  /**
422
422
  * Get configuration name based on input information
423
- * @param selector Selector for a component configuration. It can be a string in the form library#componentName (i.e: @my-lib/shared-components#HeaderContComponent)
424
- * or an object with the component and library names (i.e: {library:"@my-lib/shared-components", componentName:'HeaderContComponent'})
423
+ * @param selector Selector for a component configuration. It can be a string in the form library#componentName (i.e: `@my-lib/shared-components#HeaderContComponent`)
424
+ * or an object with the component and library names (i.e: `{library:"@my-lib/shared-components", componentName:'HeaderContComponent'}`)
425
425
  * @param isFallbackName Determine if the name requested is a fallback name
426
- * @returns string in the format library#componentName (i.e: "@my-lib/shared-components#HeaderContComponent")
426
+ * @returns string in the format library#componentName (i.e: `"@my-lib/shared-components#HeaderContComponent"`)
427
427
  */
428
428
  getComponentConfigName(selector: string | {
429
429
  library?: string;
@@ -445,8 +445,8 @@ declare class OtterConfigurationDevtools {
445
445
  }, configProperty: string, configValue: any): void;
446
446
  /**
447
447
  * Get the configuration for a specific component
448
- * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: @my-lib/shared-components#HeaderPresConfig)
449
- * or an object with the configuration and library names (i.e: {library:"@my-lib/shared-components", componentName:'HeaderPresConfig'})
448
+ * @param selector Selector for a component configuration. It can be a string in the form library#configurationName (i.e: `@my-lib/shared-components#HeaderPresConfig`)
449
+ * or an object with the configuration and library names (i.e: `{library:"@my-lib/shared-components", componentName:'HeaderPresConfig'}`)
450
450
  */
451
451
  getCurrentConfigurationFor(selector: string | {
452
452
  library?: string;
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../src/core/configuration.ts","../src/stores/config-override/config-override.state.ts","../src/stores/config-override/config-override.actions.ts","../src/stores/config-override/config-override-module.ts","../src/stores/config-override/config-override.reducer.ts","../src/stores/config-override/config-override.selectors.ts","../src/stores/config-override/config-override.sync.ts","../src/stores/configuration/configuration.actions.ts","../src/stores/configuration/configuration.helpers.ts","../src/stores/configuration/configuration.state.ts","../src/stores/configuration/configuration-module.ts","../src/stores/configuration/configuration.reducer.ts","../src/stores/configuration/configuration.selectors.ts","../src/stores/configuration/configuration.sync.ts","../src/devkit/configuration-devtools-interface.ts","../src/devkit/configuration-devtools-console-service.ts","../src/devkit/configuration-devtools-message-service.ts","../src/devkit/configuration-devtools-module.ts","../src/devkit/configuration-devtools.ts","../src/devkit/configuration-devtools-token.ts","../src/services/configuration/configuration-base-module.ts","../src/services/configuration/configuration-base-service.ts","../src/tools/configuration-decorators.ts","../src/tools/configuration-observer.ts","../src/tools/configuration-signal.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;AAYA;;AAEG;;AAED;;AAEG;AACH;AAAiB;;AAClB;AAED;;AAEG;;AAED;;AAEG;;AAEJ;AAED;;;;AAIG;AACH;;;;AAAoI;AAUpI;;;AAGG;AACH;;ACnDA;;AAEG;;AAED;AACD;AAED;;AAEG;;;AAGD;AACD;AAED;;AAEG;AACH;AAEA;;AAEG;;;AAGD;AACD;;ACZD;;AAEG;AACH;;ACCA;AACA;AAEA;AACA;AAIA;AASgB;;;;AAQf;;AChCD;;AAEG;AACH;AAEA;;AAEG;AACH;AAIA;;AAEG;AACH;;ACjBA;AACA;AAEA;AACA;AAEA;;;AAGG;AACH;;ACTA;;;AAGG;AACH;AAOA;;;;ACXE;;;AACD;;;;;AAMC;AACD;;;;;AAMC;AACD;AAUD;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH;;ACpDA;;;AAGG;AACH;;ACRA;;AAEG;AACG;;AAEL;AAED;;AAEG;;AAEF;AAED;;AAEG;AACH;AAEA;;AAEG;;;AAGD;AACD;AAED;;AAEG;AACH;;AClBA;AACA;AAEA;AACA;AAIA;AASgB;;;;AAQf;;AC3BD;;AAEG;AACH;AAIA;;AAEG;AACH;AAEA;;AAEG;AACH;AAiBA;;AAEG;AACH;;AClCA;;;AAGG;AACH;;;AAKA;AACA;;;AAEA;AACA;;;AAEA;AACA;;;AAEA;AACA;;;AAEA;;;;AAIG;AACH;;AAA8F;;;AAG9F;;AAEG;AACH;;;;ACzCA;;;;ACSA;AACM;AACJ;;;AAGG;;AAEH;;;AAGG;;AAEJ;;;AAIC;AACD;;;;;;AAOA;AAED;AAGA;;AAGA;AACM;AAIN;;;AAGG;AACH;AAQA;;AAEG;;AAED;;;AAGG;;AAEJ;;AChDD;;AAKE;AAEA;AACA;;AAkBA;AAQA;AASA;;;;;AAKG;AACI;;;;;;AAaP;;;AAGG;;AAMH;;;;;;AAMG;AACU;;;AAA6F;AAK1G;;;AAGG;;AAMH;;AAEG;;AAMH;;AAEG;;AAQH;;AAEG;;AAMH;;;AAGG;;;;AAIJ;;AC9GD;AAIE;AACA;AACA;AACA;AAEA;AACA;;;AAmBA;;;AAGG;AACH;AAMA;;;AAGG;;AA0BH;;AAEG;AACH;;;;;AAiBD;;ACvGD;AAaE;;;AAGG;;;;;AAYJ;;ACZD;;AAGE;AACA;;AAGA;;AAuBA;;;;;;AAMG;AACI;;;AAAqF;AAU5F;;AAEG;AACI;AAcP;;;;;AAKG;AACI;;;;AAUP;;;;AAIG;AACI;;;;AAcP;;AAEG;;AAKH;;;AAGG;;;;AAKJ;;ACtJD;AAOA;;ACJA;;;;AAG8C;;ACgC9C;;AAEG;AACH;AAIE;AAEA;AAEA;;;;AAIG;;AAKH;;;;AAIG;AACI;AAIP;;;AAGG;AACI;AAQP;;;AAGG;;AAKH;;;;;AAKG;AACI;AAYP;;;;AAIG;;AAgBH;;;AAGG;AACI;;;AAUR;;ACnHD;;AAEG;AAEH;;AChBA;;AAYW;;AAVT;;AAGA;;;;;;;;;AA4BO;;AAMA;AAKP;;AAEG;AACI;AAGR;;AC/CD;AACM;;;AAEN;;;;;AAKG;AACH;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../src/core/configuration.ts","../src/stores/config-override/config-override.state.ts","../src/stores/config-override/config-override.actions.ts","../src/stores/config-override/config-override-module.ts","../src/stores/config-override/config-override.reducer.ts","../src/stores/config-override/config-override.selectors.ts","../src/stores/config-override/config-override.sync.ts","../src/stores/configuration/configuration.actions.ts","../src/stores/configuration/configuration.helpers.ts","../src/stores/configuration/configuration.state.ts","../src/stores/configuration/configuration-module.ts","../src/stores/configuration/configuration.reducer.ts","../src/stores/configuration/configuration.selectors.ts","../src/stores/configuration/configuration.sync.ts","../src/devkit/configuration-devtools-interface.ts","../src/devkit/configuration-devtools-console-service.ts","../src/devkit/configuration-devtools-message-service.ts","../src/devkit/configuration-devtools-module.ts","../src/devkit/configuration-devtools.ts","../src/devkit/configuration-devtools-token.ts","../src/services/configuration/configuration-base-module.ts","../src/services/configuration/configuration-base-service.ts","../src/tools/configuration-decorators.ts","../src/tools/configuration-observer.ts","../src/tools/configuration-signal.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/configuration",
3
- "version": "14.0.0-next.4",
3
+ "version": "14.0.0-next.7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -29,10 +29,6 @@
29
29
  "types": "./index.d.ts",
30
30
  "default": "./fesm2022/o3r-configuration.mjs"
31
31
  },
32
- "./rules-engine": {
33
- "types": "./rules-engine/index.d.ts",
34
- "default": "./fesm2022/o3r-configuration-rules-engine.mjs"
35
- },
36
32
  "./fixtures/jasmine": {
37
33
  "types": "./fixtures/jasmine/index.d.ts",
38
34
  "default": "./fesm2022/o3r-configuration-fixtures-jasmine.mjs"
@@ -40,6 +36,10 @@
40
36
  "./fixtures/jest": {
41
37
  "types": "./fixtures/jest/index.d.ts",
42
38
  "default": "./fesm2022/o3r-configuration-fixtures-jest.mjs"
39
+ },
40
+ "./rules-engine": {
41
+ "types": "./rules-engine/index.d.ts",
42
+ "default": "./fesm2022/o3r-configuration-rules-engine.mjs"
43
43
  }
44
44
  },
45
45
  "peerDependencies": {
@@ -48,9 +48,9 @@
48
48
  "@angular/platform-browser-dynamic": "^20.0.0",
49
49
  "@ngrx/entity": "^20.0.0",
50
50
  "@ngrx/store": "^20.0.0",
51
- "@o3r/core": "~14.0.0-next.4",
52
- "@o3r/logger": "~14.0.0-next.4",
53
- "@o3r/schematics": "~14.0.0-next.4",
51
+ "@o3r/core": "~14.0.0-next.7",
52
+ "@o3r/logger": "~14.0.0-next.7",
53
+ "@o3r/schematics": "~14.0.0-next.7",
54
54
  "@schematics/angular": "^20.0.0",
55
55
  "cheerio": "^1.1.2",
56
56
  "express-interceptor": "^1.2.0",
@@ -86,7 +86,7 @@
86
86
  }
87
87
  },
88
88
  "dependencies": {
89
- "@o3r/schematics": "~14.0.0-next.4",
89
+ "@o3r/schematics": "~14.0.0-next.7",
90
90
  "tslib": "^2.6.2"
91
91
  },
92
92
  "engines": {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/rules-engine/configuration-interfaces.ts","../../src/rules-engine/configuration-handler-action.ts","../../src/rules-engine/configuration-rules-engine-module.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;AAIA;AACA;AAEA;;AAEG;AACG;;;;;AAKL;;ACQD;;AAEG;AACH;AAEE;;AAGA;;;;;AAqBD;;AC1CD;;;;AAQoD;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../src/rules-engine/configuration-interfaces.ts","../../src/rules-engine/configuration-handler-action.ts","../../src/rules-engine/configuration-rules-engine-module.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;AAIA;AACA,cAAA,6CAAA;AAEA;;AAEG;AACG,UAAA,uBAAA,SAAA,iBAAA;;;;;AAKL;;ACQD;;AAEG;AACH,cAAA,qCAAA,YAAA,wBAAA,CAAA,uBAAA;AAEE;;AAGA;;;;;AAqBD;;AC1CD,cAAA,oCAAA;;;;AAQoD;;;;"}
@@ -160,7 +160,7 @@ function ngAddConfigFn(options) {
160
160
  const newMembers = node.members
161
161
  .filter((classElement) => !(ts.isConstructorDeclaration(classElement) || isNgOnChangesMethod(classElement)))
162
162
  .concat(propertiesToAdd, newContructorDeclaration, newNgOnChanges)
163
- .sort(schematics_2.sortClassElement);
163
+ .toSorted(schematics_2.sortClassElement);
164
164
  (0, schematics_2.addCommentsOnClassProperties)(newMembers, {
165
165
  config: '@inheritDoc',
166
166
  dynamicConfig: 'Dynamic configuration based on the input override configuration and the configuration service if used by the application',
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateV12_0 = void 0;
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
5
  const schematics_2 = require("@o3r/schematics");
6
- /** Map containing the import and value changes for computeConfigurationName updated to computeItemIdentifier in @o3r/core */
6
+ /** Map containing the import and value changes for computeConfigurationName updated to computeItemIdentifier in `@o3r/core` */
7
7
  const mapImportsConfigurationName = {
8
8
  '@o3r/configuration': {
9
9
  computeConfigurationName: {