@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.
- package/fesm2022/o3r-configuration-rules-engine.mjs +7 -7
- package/fesm2022/o3r-configuration.mjs +35 -35
- package/fesm2022/o3r-configuration.mjs.map +1 -1
- package/index.d.ts +7 -7
- package/index.d.ts.map +1 -1
- package/package.json +9 -9
- package/rules-engine/index.d.ts.map +1 -1
- package/schematics/configuration-to-component/index.js +1 -1
- package/schematics/ng-update/v12-0/index.js +1 -1
|
@@ -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.
|
|
37
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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.
|
|
45
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
46
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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.
|
|
79
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
80
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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.
|
|
216
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
217
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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:
|
|
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:
|
|
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.
|
|
355
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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
|
|
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.
|
|
465
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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.
|
|
552
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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.
|
|
578
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
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.
|
|
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.
|
|
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.
|
|
606
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
607
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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.
|
|
697
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
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.
|
|
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
|
|
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:
|
|
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:
|
|
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;;
|
|
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.
|
|
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.
|
|
52
|
-
"@o3r/logger": "~14.0.0-next.
|
|
53
|
-
"@o3r/schematics": "~14.0.0-next.
|
|
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.
|
|
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
|
-
.
|
|
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
|
|
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: {
|