@o3r/rules-engine 10.0.0-next.8 → 11.0.0-next.0
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/README.md +16 -17
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.d.ts +1 -1
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.d.ts.map +1 -1
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.interfaces.d.ts +2 -0
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.interfaces.d.ts.map +1 -1
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.js +10 -2
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.js.map +1 -1
- package/builders/rules-engine-extractor/index.js.map +1 -1
- package/builders/rules-engine-extractor/schema.json +1 -1
- package/components/rules-engine/rule-condition/rule-condition-pres.component.d.ts +2 -2
- package/components/rules-engine/rule-condition/rule-condition-pres.component.d.ts.map +1 -1
- package/components/rules-engine/rule-key-value/rule-key-value-pres.component.d.ts +1 -1
- package/components/rules-engine/rule-key-value/rule-key-value-pres.component.d.ts.map +1 -1
- package/components/rules-engine/ruleset-history/ruleset-history-pres.component.d.ts +1 -3
- package/components/rules-engine/ruleset-history/ruleset-history-pres.component.d.ts.map +1 -1
- package/components/rules-engine/shared/ruleset-history.helper.d.ts +0 -2
- package/components/rules-engine/shared/ruleset-history.helper.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.console.service.d.ts +0 -7
- package/devkit/rules-engine-devtools.console.service.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.message.service.d.ts +4 -6
- package/devkit/rules-engine-devtools.message.service.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.module.d.ts +0 -1
- package/devkit/rules-engine-devtools.module.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.service.d.ts +3 -10
- package/devkit/rules-engine-devtools.service.d.ts.map +1 -1
- package/engine/debug/engine.debug.d.ts +4 -12
- package/engine/debug/engine.debug.d.ts.map +1 -1
- package/engine/debug/helpers.d.ts +2 -4
- package/engine/debug/helpers.d.ts.map +1 -1
- package/engine/engine.d.ts +4 -13
- package/engine/engine.d.ts.map +1 -1
- package/engine/engine.interface.d.ts +2 -6
- package/engine/engine.interface.d.ts.map +1 -1
- package/engine/fact/fact.interfaces.d.ts +2 -0
- package/engine/fact/fact.interfaces.d.ts.map +1 -1
- package/engine/helpers/filter-ruleset-event.operator.d.ts +0 -1
- package/engine/helpers/filter-ruleset-event.operator.d.ts.map +1 -1
- package/engine/operator/operator.helpers.d.ts +10 -9
- package/engine/operator/operator.helpers.d.ts.map +1 -1
- package/engine/operator/operator.interface.d.ts +4 -1
- package/engine/operator/operator.interface.d.ts.map +1 -1
- package/engine/operator/operators/array-based.operators.d.ts +0 -23
- package/engine/operator/operators/array-based.operators.d.ts.map +1 -1
- package/engine/operator/operators/basic.operators.d.ts +5 -8
- package/engine/operator/operators/basic.operators.d.ts.map +1 -1
- package/engine/operator/operators/date-based.operators.d.ts +13 -6
- package/engine/operator/operators/date-based.operators.d.ts.map +1 -1
- package/engine/operator/operators/index.d.ts +1 -1
- package/engine/operator/operators/index.d.ts.map +1 -1
- package/engine/operator/operators/number-based.operators.d.ts +0 -4
- package/engine/operator/operators/number-based.operators.d.ts.map +1 -1
- package/engine/rule/rule.helpers.d.ts +0 -7
- package/engine/rule/rule.helpers.d.ts.map +1 -1
- package/engine/ruleset-executor.d.ts +15 -13
- package/engine/ruleset-executor.d.ts.map +1 -1
- package/engine/structure.d.ts +9 -5
- package/engine/structure.d.ts.map +1 -1
- package/esm2022/components/rules-engine/rule-actions/rule-actions-pres.component.mjs +4 -4
- package/esm2022/components/rules-engine/rule-condition/rule-condition-pres.component.mjs +8 -13
- package/esm2022/components/rules-engine/rule-key-value/rule-key-value-pres.component.mjs +5 -5
- package/esm2022/components/rules-engine/rule-tree/rule-tree-pres.component.mjs +5 -5
- package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.component.mjs +6 -8
- package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.module.mjs +4 -4
- package/esm2022/components/rules-engine/shared/fallback-to.pipe.mjs +3 -3
- package/esm2022/components/rules-engine/shared/ruleset-history.helper.mjs +1 -3
- package/esm2022/devkit/rules-engine-devtools.console.service.mjs +6 -13
- package/esm2022/devkit/rules-engine-devtools.message.service.mjs +6 -8
- package/esm2022/devkit/rules-engine-devtools.module.mjs +5 -6
- package/esm2022/devkit/rules-engine-devtools.service.mjs +7 -14
- package/esm2022/engine/debug/engine.debug.mjs +2 -10
- package/esm2022/engine/debug/helpers.mjs +1 -4
- package/esm2022/engine/engine.interface.mjs +1 -1
- package/esm2022/engine/engine.mjs +1 -9
- package/esm2022/engine/fact/fact.interfaces.mjs +1 -1
- package/esm2022/engine/helpers/filter-ruleset-event.operator.mjs +1 -2
- package/esm2022/engine/operator/index.mjs +1 -1
- package/esm2022/engine/operator/operator.helpers.mjs +33 -13
- package/esm2022/engine/operator/operator.interface.mjs +1 -1
- package/esm2022/engine/operator/operators/array-based.operators.mjs +6 -29
- package/esm2022/engine/operator/operators/basic.operators.mjs +16 -11
- package/esm2022/engine/operator/operators/date-based.operators.mjs +48 -8
- package/esm2022/engine/operator/operators/number-based.operators.mjs +1 -5
- package/esm2022/engine/rule/rule.helpers.mjs +1 -8
- package/esm2022/engine/ruleset-executor.mjs +58 -32
- package/esm2022/engine/structure.mjs +1 -1
- package/esm2022/fact/fact.abstract-service.mjs +1 -1
- package/esm2022/facts/current-time/current-time.facts.mjs +2 -0
- package/esm2022/facts/current-time/index.mjs +2 -0
- package/esm2022/facts/index.mjs +2 -0
- package/esm2022/fixtures/jasmine/index.mjs +2 -2
- package/esm2022/fixtures/jasmine/rules-engine.runner.service.fixture.jasmine.mjs +14 -0
- package/esm2022/fixtures/jest/index.mjs +2 -2
- package/esm2022/fixtures/jest/rules-engine.runner.service.fixture.jest.mjs +14 -0
- package/esm2022/interfaces/action.interfaces.mjs +1 -1
- package/esm2022/public_api.mjs +2 -1
- package/esm2022/services/index.mjs +2 -3
- package/esm2022/services/rules-engine.token.mjs +2 -1
- package/esm2022/services/runner/index.mjs +3 -0
- package/esm2022/services/runner/rules-engine.runner.module.mjs +37 -0
- package/esm2022/services/runner/rules-engine.runner.service.mjs +119 -0
- package/esm2022/stores/rulesets/rulesets.effect.mjs +4 -4
- package/esm2022/stores/rulesets/rulesets.module.mjs +4 -4
- package/esm2022/stores/rulesets/rulesets.selectors.mjs +3 -4
- package/fact/fact.abstract-service.d.ts +3 -3
- package/fact/fact.abstract-service.d.ts.map +1 -1
- package/facts/current-time/current-time.facts.d.ts +11 -0
- package/facts/current-time/current-time.facts.d.ts.map +1 -0
- package/facts/current-time/index.d.ts +2 -0
- package/facts/current-time/index.d.ts.map +1 -0
- package/facts/index.d.ts +2 -0
- package/facts/index.d.ts.map +1 -0
- package/fesm2022/o3r-rules-engine-fixtures-jasmine.mjs +3 -6
- package/fesm2022/o3r-rules-engine-fixtures-jasmine.mjs.map +1 -1
- package/fesm2022/o3r-rules-engine-fixtures-jest.mjs +3 -6
- package/fesm2022/o3r-rules-engine-fixtures-jest.mjs.map +1 -1
- package/fesm2022/o3r-rules-engine.mjs +264 -560
- package/fesm2022/o3r-rules-engine.mjs.map +1 -1
- package/fixtures/jasmine/index.d.ts +1 -1
- package/fixtures/jasmine/index.d.ts.map +1 -1
- package/fixtures/jasmine/rules-engine.runner.service.fixture.jasmine.d.ts +14 -0
- package/fixtures/jasmine/rules-engine.runner.service.fixture.jasmine.d.ts.map +1 -0
- package/fixtures/jest/index.d.ts +1 -1
- package/fixtures/jest/index.d.ts.map +1 -1
- package/fixtures/jest/index.js +1 -1
- package/fixtures/jest/index.js.map +1 -1
- package/fixtures/jest/rules-engine.runner.service.fixture.jest.d.ts +14 -0
- package/fixtures/jest/rules-engine.runner.service.fixture.jest.d.ts.map +1 -0
- package/fixtures/jest/{rules-engine.service.fixture.jest.js → rules-engine.runner.service.fixture.jest.js} +3 -6
- package/fixtures/jest/rules-engine.runner.service.fixture.jest.js.map +1 -0
- package/interfaces/action.interfaces.d.ts +5 -0
- package/interfaces/action.interfaces.d.ts.map +1 -1
- package/migration.json +10 -0
- package/package.json +57 -46
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -1
- package/rules.facts.metadata.json +7 -1
- package/rules.operators.metadata.json +61 -0
- package/schemas/rulesets.schema.json +6 -110
- package/schematics/cms-adapter/index.d.ts +0 -1
- package/schematics/cms-adapter/index.d.ts.map +1 -1
- package/schematics/cms-adapter/index.js +5 -9
- package/schematics/cms-adapter/index.js.map +1 -1
- package/schematics/facts-service/schema.json +1 -1
- package/schematics/ng-add/helpers/devtools-registration.d.ts +11 -0
- package/schematics/ng-add/helpers/devtools-registration.d.ts.map +1 -0
- package/schematics/ng-add/helpers/devtools-registration.js +36 -0
- package/schematics/ng-add/helpers/devtools-registration.js.map +1 -0
- package/schematics/ng-add/index.d.ts +1 -0
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +8 -4
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/schema.json +1 -1
- package/schematics/ng-update/index.d.ts +6 -0
- package/schematics/ng-update/index.d.ts.map +1 -0
- package/schematics/ng-update/index.js +22 -0
- package/schematics/ng-update/index.js.map +1 -0
- package/schematics/ng-update/v10.0/action-module-split.d.ts +6 -0
- package/schematics/ng-update/v10.0/action-module-split.d.ts.map +1 -0
- package/schematics/ng-update/v10.0/action-module-split.js +21 -0
- package/schematics/ng-update/v10.0/action-module-split.js.map +1 -0
- package/schematics/operator/schema.json +1 -1
- package/schematics/rules-engine-to-component/index.d.ts +0 -1
- package/schematics/rules-engine-to-component/index.d.ts.map +1 -1
- package/schematics/rules-engine-to-component/index.js +7 -8
- package/schematics/rules-engine-to-component/index.js.map +1 -1
- package/schematics/rules-engine-to-component/schema.json +1 -1
- package/services/index.d.ts +1 -2
- package/services/index.d.ts.map +1 -1
- package/services/rules-engine.token.d.ts +1 -0
- package/services/rules-engine.token.d.ts.map +1 -1
- package/services/runner/index.d.ts +3 -0
- package/services/runner/index.d.ts.map +1 -0
- package/services/runner/rules-engine.runner.module.d.ts +13 -0
- package/services/runner/rules-engine.runner.module.d.ts.map +1 -0
- package/services/runner/rules-engine.runner.service.d.ts +60 -0
- package/services/runner/rules-engine.runner.service.d.ts.map +1 -0
- package/stores/rulesets/rulesets.selectors.d.ts.map +1 -1
- package/builders/package.json +0 -3
- package/esm2022/fixtures/jasmine/rules-engine.service.fixture.jasmine.mjs +0 -17
- package/esm2022/fixtures/jest/rules-engine.service.fixture.jest.mjs +0 -17
- package/esm2022/services/rules-engine.effect.mjs +0 -162
- package/esm2022/services/rules-engine.module.mjs +0 -50
- package/esm2022/services/rules-engine.service.mjs +0 -272
- package/fixtures/jasmine/rules-engine.service.fixture.jasmine.d.ts +0 -17
- package/fixtures/jasmine/rules-engine.service.fixture.jasmine.d.ts.map +0 -1
- package/fixtures/jest/rules-engine.service.fixture.jest.d.ts +0 -18
- package/fixtures/jest/rules-engine.service.fixture.jest.d.ts.map +0 -1
- package/fixtures/jest/rules-engine.service.fixture.jest.js.map +0 -1
- package/schematics/package.json +0 -3
- package/services/rules-engine.effect.d.ts +0 -53
- package/services/rules-engine.effect.d.ts.map +0 -1
- package/services/rules-engine.module.d.ts +0 -16
- package/services/rules-engine.module.d.ts.map +0 -1
- package/services/rules-engine.service.d.ts +0 -90
- package/services/rules-engine.service.d.ts.map +0 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { select, Store } from '@ngrx/store';
|
|
3
|
+
import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
|
|
4
|
+
import { filter, map, shareReplay, switchMap } from 'rxjs/operators';
|
|
5
|
+
import { EngineDebugger, operatorList, RulesEngine } from '../../engine/index';
|
|
6
|
+
import { selectActiveRuleSets, selectAllRulesets, selectRuleSetLinkComponents } from '../../stores';
|
|
7
|
+
import { RULES_ENGINE_OPTIONS } from '../rules-engine.token';
|
|
8
|
+
import { LoggerService } from '@o3r/logger';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@ngrx/store";
|
|
11
|
+
import * as i2 from "@o3r/logger";
|
|
12
|
+
export class RulesEngineRunnerService {
|
|
13
|
+
constructor(store, logger, engineConfig) {
|
|
14
|
+
this.store = store;
|
|
15
|
+
this.logger = logger;
|
|
16
|
+
this.subscription = new Subscription();
|
|
17
|
+
/** Observable of component linked to the component */
|
|
18
|
+
this.linkedComponents$ = new BehaviorSubject({});
|
|
19
|
+
/** List of action handlers */
|
|
20
|
+
this.actionHandlers = new Set();
|
|
21
|
+
this.enabled = !engineConfig?.dryRun;
|
|
22
|
+
this.engine = new RulesEngine({
|
|
23
|
+
debugger: engineConfig?.debug ? new EngineDebugger({ eventsStackLimit: engineConfig?.debugEventsStackLimit }) : undefined,
|
|
24
|
+
logger: this.logger
|
|
25
|
+
});
|
|
26
|
+
this.ruleSets$ = combineLatest([
|
|
27
|
+
this.store.pipe(select(selectActiveRuleSets)),
|
|
28
|
+
this.linkedComponents$.pipe(switchMap((linkedComponentsNamesMap) => this.store.pipe(select(selectRuleSetLinkComponents), map((linkComponentMap) => Object.keys(linkedComponentsNamesMap)
|
|
29
|
+
.filter((linkedComponentsName) => linkedComponentsNamesMap[linkedComponentsName] > 0)
|
|
30
|
+
.reduce((acc, compName) => {
|
|
31
|
+
acc.push(...(linkComponentMap[compName] || []));
|
|
32
|
+
return acc;
|
|
33
|
+
}, [])))))
|
|
34
|
+
]).pipe(map(([activeRulesets, linkedComponentsRulesetsIds]) => ([...activeRulesets, ...linkedComponentsRulesetsIds])));
|
|
35
|
+
this.events$ = this.ruleSets$.pipe(this.engine.getEventStream(), shareReplay(1));
|
|
36
|
+
this.upsertOperators(operatorList);
|
|
37
|
+
this.subscription.add(this.store.pipe(select(selectAllRulesets)).subscribe((rulesets) => this.engine.upsertRulesets(rulesets)));
|
|
38
|
+
this.subscription.add(this.events$.pipe(filter(() => this.enabled)).subscribe(async (events) => {
|
|
39
|
+
this.logger.debug('Start Rules Engine action executed');
|
|
40
|
+
await this.executeActions(events);
|
|
41
|
+
this.logger.debug('All Rules Engine actions executed');
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Execute the list of actions
|
|
46
|
+
* @param actions
|
|
47
|
+
*/
|
|
48
|
+
async executeActions(actions) {
|
|
49
|
+
const actionHandlers = [...this.actionHandlers];
|
|
50
|
+
const supportedActions = new Set(actionHandlers.map((handler) => handler.supportingActions).flat());
|
|
51
|
+
const actionMaps = actions
|
|
52
|
+
.filter((action) => {
|
|
53
|
+
const isKnown = supportedActions.has(action.actionType);
|
|
54
|
+
if (!isKnown) {
|
|
55
|
+
this.logger.warn(`The action ${action.actionType} does not have registered handler`);
|
|
56
|
+
}
|
|
57
|
+
return isKnown;
|
|
58
|
+
})
|
|
59
|
+
.reduce((acc, action) => {
|
|
60
|
+
acc[action.actionType] ||= [];
|
|
61
|
+
acc[action.actionType].push(action);
|
|
62
|
+
return acc;
|
|
63
|
+
}, {});
|
|
64
|
+
const handling = actionHandlers
|
|
65
|
+
.map((handler) => handler.executeActions(handler.supportingActions
|
|
66
|
+
.filter((supportedAction) => actionMaps[supportedAction])
|
|
67
|
+
.reduce((acc, supportedAction) => acc.concat(actionMaps[supportedAction]), [])));
|
|
68
|
+
await Promise.all(handling);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Update or insert fact in rules engine
|
|
72
|
+
* @param facts fact list to add / update
|
|
73
|
+
*/
|
|
74
|
+
upsertFacts(facts) {
|
|
75
|
+
this.engine.upsertFacts(facts);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Update or insert operator in rules engine
|
|
79
|
+
* @param operators operator list to add / update
|
|
80
|
+
*/
|
|
81
|
+
upsertOperators(operators) {
|
|
82
|
+
this.engine.upsertOperators(operators);
|
|
83
|
+
}
|
|
84
|
+
/** @inheritdoc */
|
|
85
|
+
ngOnDestroy() {
|
|
86
|
+
this.subscription.unsubscribe();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Enable temporary a rule set
|
|
90
|
+
* @param componentComputedName Name of the component to enable the ruleset for
|
|
91
|
+
*/
|
|
92
|
+
enableRuleSetFor(componentComputedName) {
|
|
93
|
+
const newMap = this.linkedComponents$.value;
|
|
94
|
+
newMap[componentComputedName] = newMap[componentComputedName] ? newMap[componentComputedName] + 1 : 1;
|
|
95
|
+
this.linkedComponents$.next(newMap);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Disable temporary a rule set
|
|
99
|
+
* @param componentComputedName Name of the component to disable the ruleset for
|
|
100
|
+
*/
|
|
101
|
+
disableRuleSetFor(componentComputedName) {
|
|
102
|
+
const newMap = this.linkedComponents$.value;
|
|
103
|
+
if (newMap[componentComputedName] > 0) {
|
|
104
|
+
newMap[componentComputedName]--;
|
|
105
|
+
this.linkedComponents$.next(newMap);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerService, deps: [{ token: i1.Store }, { token: i2.LoggerService }, { token: RULES_ENGINE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
109
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerService }); }
|
|
110
|
+
}
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerService, decorators: [{
|
|
112
|
+
type: Injectable
|
|
113
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.LoggerService }, { type: undefined, decorators: [{
|
|
114
|
+
type: Optional
|
|
115
|
+
}, {
|
|
116
|
+
type: Inject,
|
|
117
|
+
args: [RULES_ENGINE_OPTIONS]
|
|
118
|
+
}] }] });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bm5lci9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxvQkFBb0IsRUFBNEIsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sYUFBYSxDQUFDOzs7O0FBSTFDLE1BQU0sT0FBTyx3QkFBd0I7SUFzQm5DLFlBQ21CLEtBQTJCLEVBQzNCLE1BQXFCLEVBQ0ksWUFBd0M7UUFGakUsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXRCOUIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSzVDLHNEQUFzRDtRQUM1QyxzQkFBaUIsR0FBK0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFXbEcsOEJBQThCO1FBQ2QsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FB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LHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBMEJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25CbG9jaywgRmFjdCwgT3BlcmF0b3IsIFJ1bGVzZXQsIFVuYXJ5T3BlcmF0b3J9IGZyb20gJy4uLy4uL2VuZ2luZS9pbmRleCc7XG5pbXBvcnQge0VuZ2luZURlYnVnZ2VyLCBvcGVyYXRvckxpc3QsIFJ1bGVzRW5naW5lfSBmcm9tICcuLi8uLi9lbmdpbmUvaW5kZXgnO1xuaW1wb3J0IHR5cGUge1J1bGVzZXRzU3RvcmV9IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5pbXBvcnQge3NlbGVjdEFjdGl2ZVJ1bGVTZXRzLCBzZWxlY3RBbGxSdWxlc2V0cywgc2VsZWN0UnVsZVNldExpbmtDb21wb25lbnRzfSBmcm9tICcuLi8uLi9zdG9yZXMnO1xuaW1wb3J0IHtSVUxFU19FTkdJTkVfT1BUSU9OUywgUnVsZXNFbmdpbmVTZXJ2aWNlT3B0aW9uc30gZnJvbSAnLi4vcnVsZXMtZW5naW5lLnRva2VuJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBSdWxlc0VuZ2luZUFjdGlvbkhhbmRsZXIgfSBmcm9tICdAbzNyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIC8qKiBSdWxlc2V0cyB0byByZXN0cmljdCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBlbmdpbmUgKi9cbiAgcHJvdGVjdGVkIHJ1bGVTZXRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD47XG5cbiAgLyoqIE9ic2VydmFibGUgb2YgY29tcG9uZW50IGxpbmtlZCB0byB0aGUgY29tcG9uZW50ICovXG4gIHByb3RlY3RlZCBsaW5rZWRDb21wb25lbnRzJDogQmVoYXZpb3JTdWJqZWN0PHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG5cbiAgLyoqIE1hcCBvZiBlbmdpbmVzIGRlZGljYXRlZCB0byBlYWNoIHJ1bGUgc2V0cyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lOiBSdWxlc0VuZ2luZTtcblxuICAvKiogc3RyZWFtIG9mIHRoZSB3aG9sZSBydWxlc2V0IHJlc3VsdHMgKi9cbiAgcHVibGljIGV2ZW50cyQ6IE9ic2VydmFibGU8QWN0aW9uQmxvY2tbXT47XG5cbiAgLyoqIEVuYWJsZSBhY3Rpb24gZXhlY3V0aW9uIG9uIG5ldyBzdGF0ZSBjaGFuZ2UgKi9cbiAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqIExpc3Qgb2YgYWN0aW9uIGhhbmRsZXJzICovXG4gIHB1YmxpYyByZWFkb25seSBhY3Rpb25IYW5kbGVycyA9IG5ldyBTZXQ8UnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IFN0b3JlPFJ1bGVzZXRzU3RvcmU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUlVMRVNfRU5HSU5FX09QVElPTlMpIGVuZ2luZUNvbmZpZz86IFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnMpIHtcbiAgICB0aGlzLmVuYWJsZWQgPSAhZW5naW5lQ29uZmlnPy5kcnlSdW47XG4gICAgdGhpcy5lbmdpbmUgPSBuZXcgUnVsZXNFbmdpbmUoe1xuICAgICAgZGVidWdnZXI6IGVuZ2luZUNvbmZpZz8uZGVidWcgPyBuZXcgRW5naW5lRGVidWdnZXIoe2V2ZW50c1N0YWNrTGltaXQ6IGVuZ2luZUNvbmZpZz8uZGVidWdFdmVudHNTdGFja0xpbWl0fSkgOiB1bmRlZmluZWQsXG4gICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyXG4gICAgfSk7XG4gICAgdGhpcy5ydWxlU2V0cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0QWN0aXZlUnVsZVNldHMpKSxcbiAgICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChsaW5rZWRDb21wb25lbnRzTmFtZXNNYXApID0+IHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgICBzZWxlY3Qoc2VsZWN0UnVsZVNldExpbmtDb21wb25lbnRzKSxcbiAgICAgICAgICBtYXAoKGxpbmtDb21wb25lbnRNYXApID0+IE9iamVjdC5rZXlzKGxpbmtlZENvbXBvbmVudHNOYW1lc01hcClcbiAgICAgICAgICAgIC5maWx0ZXIoKGxpbmtlZENvbXBvbmVudHNOYW1lKSA9PiBsaW5rZWRDb21wb25lbnRzTmFtZXNNYXBbbGlua2VkQ29tcG9uZW50c05hbWVdID4gMClcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY29tcE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgYWNjLnB1c2goLi4uKGxpbmtDb21wb25lbnRNYXBbY29tcE5hbWVdIHx8IFtdKSk7XG4gICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCBbXSBhcyBzdHJpbmdbXSkpXG4gICAgICAgICkpXG4gICAgICApXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2FjdGl2ZVJ1bGVzZXRzLCBsaW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSA9PiAoWy4uLmFjdGl2ZVJ1bGVzZXRzLCAuLi5saW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSlcbiAgICApO1xuXG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ydWxlU2V0cyQucGlwZShcbiAgICAgIHRoaXMuZW5naW5lLmdldEV2ZW50U3RyZWFtPEFjdGlvbkJsb2NrPigpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JMaXN0KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KHNlbGVjdEFsbFJ1bGVzZXRzKVxuICAgICAgKS5zdWJzY3JpYmUoKHJ1bGVzZXRzOiBSdWxlc2V0W10pID0+IHRoaXMuZW5naW5lLnVwc2VydFJ1bGVzZXRzKHJ1bGVzZXRzKSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ldmVudHMkLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMuZW5hYmxlZCkpLnN1YnNjcmliZShhc3luYyAoZXZlbnRzKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTdGFydCBSdWxlcyBFbmdpbmUgYWN0aW9uIGV4ZWN1dGVkJyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUFjdGlvbnMoZXZlbnRzKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FsbCBSdWxlcyBFbmdpbmUgYWN0aW9ucyBleGVjdXRlZCcpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKiBAcGFyYW0gYWN0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbkJsb2NrW10pIHtcbiAgICBjb25zdCBhY3Rpb25IYW5kbGVycyA9IFsuLi50aGlzLmFjdGlvbkhhbmRsZXJzXTtcblxuICAgIGNvbnN0IHN1cHBvcnRlZEFjdGlvbnMgPSBuZXcgU2V0KGFjdGlvbkhhbmRsZXJzLm1hcCgoaGFuZGxlcikgPT4gaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9ucykuZmxhdCgpKTtcblxuICAgIGNvbnN0IGFjdGlvbk1hcHMgPSBhY3Rpb25zXG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgaXNLbm93biA9IHN1cHBvcnRlZEFjdGlvbnMuaGFzKGFjdGlvbi5hY3Rpb25UeXBlKTtcbiAgICAgICAgaWYgKCFpc0tub3duKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihgVGhlIGFjdGlvbiAke2FjdGlvbi5hY3Rpb25UeXBlfSBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgaGFuZGxlcmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0tub3duO1xuICAgICAgfSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgYWN0aW9uKSA9PiB7XG4gICAgICAgIGFjY1thY3Rpb24uYWN0aW9uVHlwZV0gfHw9IFtdO1xuICAgICAgICBhY2NbYWN0aW9uLmFjdGlvblR5cGVdLnB1c2goYWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIEFjdGlvbkJsb2NrW10+KTtcblxuICAgIGNvbnN0IGhhbmRsaW5nID0gYWN0aW9uSGFuZGxlcnNcbiAgICAgIC5tYXAoKGhhbmRsZXIpID0+XG4gICAgICAgIGhhbmRsZXIuZXhlY3V0ZUFjdGlvbnMoXG4gICAgICAgICAgaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcigoc3VwcG9ydGVkQWN0aW9uKSA9PiBhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pXG4gICAgICAgICAgICAucmVkdWNlPEFjdGlvbkJsb2NrW10+KChhY2MsIHN1cHBvcnRlZEFjdGlvbikgPT4gYWNjLmNvbmNhdChhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pLCBbXSlcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGhhbmRsaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IGZhY3QgaW4gcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBmYWN0cyBmYWN0IGxpc3QgdG8gYWRkIC8gdXBkYXRlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0RmFjdHMoZmFjdHM6IEZhY3Q8dW5rbm93bj4gfCBGYWN0PHVua25vd24+W10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRGYWN0cyhmYWN0cyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBvcGVyYXRvciBpbiBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIG9wZXJhdG9ycyBvcGVyYXRvciBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydE9wZXJhdG9ycyhvcGVyYXRvcnM6IChPcGVyYXRvcjxhbnksIGFueT4gfCBVbmFyeU9wZXJhdG9yPGFueT4pW10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgdGVtcG9yYXJ5IGEgcnVsZSBzZXRcbiAgICogQHBhcmFtIGNvbXBvbmVudENvbXB1dGVkTmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgdG8gZW5hYmxlIHRoZSBydWxlc2V0IGZvclxuICAgKi9cbiAgcHVibGljIGVuYWJsZVJ1bGVTZXRGb3IoY29tcG9uZW50Q29tcHV0ZWROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdNYXAgPSB0aGlzLmxpbmtlZENvbXBvbmVudHMkLnZhbHVlO1xuICAgIG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID0gbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gPyBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSArIDEgOiAxO1xuICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQubmV4dChuZXdNYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGVtcG9yYXJ5IGEgcnVsZSBzZXRcbiAgICogQHBhcmFtIGNvbXBvbmVudENvbXB1dGVkTmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgdG8gZGlzYWJsZSB0aGUgcnVsZXNldCBmb3JcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlUnVsZVNldEZvcihjb21wb25lbnRDb21wdXRlZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5ld01hcCA9IHRoaXMubGlua2VkQ29tcG9uZW50cyQudmFsdWU7XG4gICAgaWYgKG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID4gMCkge1xuICAgICAgbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0tLTtcbiAgICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQubmV4dChuZXdNYXApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -21,10 +21,10 @@ export class RulesetsEffect {
|
|
|
21
21
|
*/
|
|
22
22
|
this.upsertEntitiesFromApi$ = createEffect(() => this.actions$.pipe(ofType(upsertRulesetsEntitiesFromApi), mergeMap((payload) => from(payload.call).pipe(map((reply) => upsertRulesetsEntities({ entities: reply, requestId: payload.requestId })), catchError((err) => of(failRulesetsEntities({ error: err, requestId: payload.requestId })))))));
|
|
23
23
|
}
|
|
24
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
24
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsEffect, deps: [{ token: i1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
25
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsEffect }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsEffect, decorators: [{
|
|
28
28
|
type: Injectable
|
|
29
|
-
}], ctorParameters:
|
|
29
|
+
}], ctorParameters: () => [{ type: i1.Actions }] });
|
|
30
30
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldHMuZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9ydWxlc2V0cy9ydWxlc2V0cy5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM5QixNQUFNLG9CQUFvQixDQUFDOzs7QUFFNUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQStCekIsWUFBc0IsUUFBaUI7UUFBakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQTdCdkM7O1dBRUc7UUFDSSx3QkFBbUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsMEJBQTBCLENBQUMsRUFDbEMsc0JBQXNCLENBQ3BCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFDLENBQUMsRUFDdEYsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEVBQ2pGLHFCQUFxQixDQUN0QixDQUNGLENBQ0YsQ0FBQztRQUVGOztXQUVHO1FBQ0ksMkJBQXNCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEVBQ3JDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsRUFDdkYsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFGLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFHRixDQUFDO2lJQWhDVSxjQUFjO3FJQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgZnJvbUFwaUVmZmVjdFN3aXRjaE1hcCB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGNhbmNlbFJ1bGVzZXRzUmVxdWVzdCxcbiAgZmFpbFJ1bGVzZXRzRW50aXRpZXMsXG4gIHNldFJ1bGVzZXRzRW50aXRpZXMsXG4gIHNldFJ1bGVzZXRzRW50aXRpZXNGcm9tQXBpLFxuICB1cHNlcnRSdWxlc2V0c0VudGl0aWVzLFxuICB1cHNlcnRSdWxlc2V0c0VudGl0aWVzRnJvbUFwaVxufSBmcm9tICcuL3J1bGVzZXRzLmFjdGlvbnMnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIGFzeW5jIFJ1bGVzZXRzIGFjdGlvbnNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bGVzZXRzRWZmZWN0IHtcblxuICAvKipcbiAgICogU2V0IHRoZSBlbnRpdGllcyB3aXRoIHRoZSByZXBseSBjb250ZW50LCBkaXNwYXRjaCBmYWlsUnVsZXNldHNFbnRpdGllcyBpZiBpdCBjYXRjaGVzIGEgZmFpbHVyZVxuICAgKi9cbiAgcHVibGljIHNldEVudGl0aWVzRnJvbUFwaSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2V0UnVsZXNldHNFbnRpdGllc0Zyb21BcGkpLFxuICAgICAgZnJvbUFwaUVmZmVjdFN3aXRjaE1hcChcbiAgICAgICAgKHJlcGx5LCBhY3Rpb24pID0+IHNldFJ1bGVzZXRzRW50aXRpZXMoe2VudGl0aWVzOiByZXBseSwgcmVxdWVzdElkOiBhY3Rpb24ucmVxdWVzdElkfSksXG4gICAgICAgIChlcnJvciwgYWN0aW9uKSA9PiBvZihmYWlsUnVsZXNldHNFbnRpdGllcyh7ZXJyb3IsIHJlcXVlc3RJZDogYWN0aW9uLnJlcXVlc3RJZH0pKSxcbiAgICAgICAgY2FuY2VsUnVsZXNldHNSZXF1ZXN0XG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIC8qKlxuICAgKiBVcHNlcnQgdGhlIGVudGl0aWVzIHdpdGggdGhlIHJlcGx5IGNvbnRlbnQsIGRpc3BhdGNoIGZhaWxSdWxlc2V0c0VudGl0aWVzIGlmIGl0IGNhdGNoZXMgYSBmYWlsdXJlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0RW50aXRpZXNGcm9tQXBpJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZSh1cHNlcnRSdWxlc2V0c0VudGl0aWVzRnJvbUFwaSksXG4gICAgICBtZXJnZU1hcCgocGF5bG9hZCkgPT5cbiAgICAgICAgZnJvbShwYXlsb2FkLmNhbGwpLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXBseSkgPT4gdXBzZXJ0UnVsZXNldHNFbnRpdGllcyh7ZW50aXRpZXM6IHJlcGx5LCByZXF1ZXN0SWQ6IHBheWxvYWQucmVxdWVzdElkfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gb2YoZmFpbFJ1bGVzZXRzRW50aXRpZXMoe2Vycm9yOiBlcnIsIHJlcXVlc3RJZDogcGF5bG9hZC5yZXF1ZXN0SWR9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFjdGlvbnMkOiBBY3Rpb25zKSB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -22,13 +22,13 @@ export class RulesetsStoreModule {
|
|
|
22
22
|
]
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
26
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
27
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
25
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
26
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] }); }
|
|
27
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, providers: [
|
|
28
28
|
{ provide: RULESETS_REDUCER_TOKEN, useFactory: getDefaultRulesetsReducer }
|
|
29
29
|
], imports: [StoreModule.forFeature(RULESETS_STORE_NAME, RULESETS_REDUCER_TOKEN), EffectsModule.forFeature([RulesetsEffect])] }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, decorators: [{
|
|
32
32
|
type: NgModule,
|
|
33
33
|
args: [{
|
|
34
34
|
imports: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
2
|
-
import {
|
|
2
|
+
import { computeItemIdentifier } from '@o3r/core';
|
|
3
3
|
import { rulesetsAdapter } from './rulesets.reducer';
|
|
4
4
|
import { RULESETS_STORE_NAME } from './rulesets.state';
|
|
5
5
|
const { selectIds, selectEntities, selectAll, selectTotal } = rulesetsAdapter.getSelectors();
|
|
@@ -17,7 +17,6 @@ export const selectRulesetsTotal = createSelector(selectRulesetsState, selectTot
|
|
|
17
17
|
export const selectRulesetsStorePendingStatus = createSelector(selectRulesetsState, (state) => state.isPending || false);
|
|
18
18
|
/**
|
|
19
19
|
* Check if the given value is a valid date
|
|
20
|
-
*
|
|
21
20
|
* @param d
|
|
22
21
|
*/
|
|
23
22
|
const isValidDate = (d) => !isNaN(d) && d instanceof Date;
|
|
@@ -56,9 +55,9 @@ export const selectRuleSetLinkComponents = createSelector(selectAllRulesets, (ru
|
|
|
56
55
|
if (!ruleSet.linkedComponent) {
|
|
57
56
|
return acc;
|
|
58
57
|
}
|
|
59
|
-
const configName =
|
|
58
|
+
const configName = computeItemIdentifier(ruleSet.linkedComponent.name, ruleSet.linkedComponent.library);
|
|
60
59
|
acc[configName] ||= [];
|
|
61
60
|
acc[configName].push(ruleSet.id);
|
|
62
61
|
return acc;
|
|
63
62
|
}, {}));
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldHMuc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9ydWxlc2V0cy9ydWxlc2V0cy5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RSxNQUFNLEVBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBRTNGLDRCQUE0QjtBQUM1QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBZ0IsbUJBQW1CLENBQUMsQ0FBQztBQUU3Rix1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFaEYsaURBQWlEO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUUxRixzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRXBGLHNDQUFzQztBQUN0QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUM7QUFFekg7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUM7QUFFL0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGNBQWMsQ0FDaEQsaUJBQWlCLEVBQ2pCLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO0lBRWpELElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTtRQUMzQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUN2QyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDL0MsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWhELElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN4RCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDO0tBQ3ZEO0lBRUQsSUFBSSxJQUFJLEVBQUU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUM7S0FDL0I7SUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRTVDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsY0FBYyxDQUN2RCxpQkFBaUIsRUFDakIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNYLFFBQVE7S0FDTCxNQUFNLENBQUMsQ0FBQyxHQUE2QixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQztLQUNaO0lBQ0QsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tcHV0ZUl0ZW1JZGVudGlmaWVyIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB0eXBlIHsgUnVsZXNldCB9IGZyb20gJy4uLy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBydWxlc2V0c0FkYXB0ZXIgfSBmcm9tICcuL3J1bGVzZXRzLnJlZHVjZXInO1xuaW1wb3J0IHsgUlVMRVNFVFNfU1RPUkVfTkFNRSwgUnVsZXNldHNTdGF0ZSB9IGZyb20gJy4vcnVsZXNldHMuc3RhdGUnO1xuXG5jb25zdCB7c2VsZWN0SWRzLCBzZWxlY3RFbnRpdGllcywgc2VsZWN0QWxsLCBzZWxlY3RUb3RhbH0gPSBydWxlc2V0c0FkYXB0ZXIuZ2V0U2VsZWN0b3JzKCk7XG5cbi8qKiBTZWxlY3QgUnVsZXNldHMgU3RhdGUgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSdWxlc2V0c1N0YXRlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPFJ1bGVzZXRzU3RhdGU+KFJVTEVTRVRTX1NUT1JFX05BTUUpO1xuXG4vKiogU2VsZWN0IHRoZSBhcnJheSBvZiBSdWxlc2V0cyBpZHMgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSdWxlc2V0c0lkcyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJ1bGVzZXRzU3RhdGUsIHNlbGVjdElkcyk7XG5cbi8qKiBTZWxlY3QgdGhlIGFycmF5IG9mIFJ1bGVzZXRzICovXG5leHBvcnQgY29uc3Qgc2VsZWN0QWxsUnVsZXNldHMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RSdWxlc2V0c1N0YXRlLCBzZWxlY3RBbGwpO1xuXG4vKiogU2VsZWN0IHRoZSBkaWN0aW9uYXJ5IG9mIFJ1bGVzZXRzIGVudGl0aWVzICovXG5leHBvcnQgY29uc3Qgc2VsZWN0UnVsZXNldHNFbnRpdGllcyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJ1bGVzZXRzU3RhdGUsIHNlbGVjdEVudGl0aWVzKTtcblxuLyoqIFNlbGVjdCB0aGUgdG90YWwgUnVsZXNldHMgY291bnQgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSdWxlc2V0c1RvdGFsID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0UnVsZXNldHNTdGF0ZSwgc2VsZWN0VG90YWwpO1xuXG4vKiogU2VsZWN0IHRoZSBzdG9yZSBwZW5kaW5nIHN0YXR1cyAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJ1bGVzZXRzU3RvcmVQZW5kaW5nU3RhdHVzID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0UnVsZXNldHNTdGF0ZSwgKHN0YXRlKSA9PiBzdGF0ZS5pc1BlbmRpbmcgfHwgZmFsc2UpO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHZhbGlkIGRhdGVcbiAqIEBwYXJhbSBkXG4gKi9cbmNvbnN0IGlzVmFsaWREYXRlID0gKGQ6IGFueSkgPT4gIWlzTmFOKGQpICYmIGQgaW5zdGFuY2VvZiBEYXRlO1xuXG4vKipcbiAqIFJldHVybnMgb25seSB0aGUgcnVsZXNldHMgaWRzIHdoaWNoIGFyZSBub3Qgb25EZW1hbmQgYW5kIGluIHRoZSB2YWxpZGl0eSByYW5nZVxuICogT25EZW1hbmQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHZhbGlkaXR5IHJhbmdlLlxuICogT25seSBpZiB0aGUgcnVsZXNldCBpcyBOT1Qgb25EZW1hbmQgKHRoaXMgbWVhbnMgaXQgaXMgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uIGZvciB0aGUgcnVucyksIHRoZSB2YWxpZGl0eSBpcyBjaGVja2VkXG4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RBY3RpdmVSdWxlU2V0cyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RBbGxSdWxlc2V0cyxcbiAgKHJ1bGVTZXRzKSA9PiBydWxlU2V0cy5maWx0ZXIoKHJ1bGVTZXQ6IFJ1bGVzZXQpID0+IHtcblxuICAgIGlmIChydWxlU2V0LmxpbmtlZENvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkaXR5ID0gcnVsZVNldC52YWxpZGl0eVJhbmdlO1xuICAgIGlmICghdmFsaWRpdHkgfHwgIXZhbGlkaXR5LmZyb20gJiYgIXZhbGlkaXR5LnRvKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBmcm9tID0gdmFsaWRpdHkuZnJvbSAmJiBuZXcgRGF0ZSh2YWxpZGl0eS5mcm9tKTtcbiAgICBjb25zdCB0byA9IHZhbGlkaXR5LnRvICYmIG5ldyBEYXRlKHZhbGlkaXR5LnRvKTtcblxuICAgIGlmICh0byAmJiAhaXNWYWxpZERhdGUodG8pIHx8IGZyb20gJiYgIWlzVmFsaWREYXRlKGZyb20pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGlmICh0byAmJiBmcm9tKSB7XG4gICAgICByZXR1cm4gZnJvbS5nZXRUaW1lKCkgPD0gdGltZSAmJiB0by5nZXRUaW1lKCkgPj0gdGltZTtcbiAgICB9XG5cbiAgICBpZiAoZnJvbSkge1xuICAgICAgcmV0dXJuIGZyb20uZ2V0VGltZSgpIDw9IHRpbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvICYmIHRvLmdldFRpbWUoKSA+PSB0aW1lO1xuICB9KS5tYXAoKHJ1bGVTZXQ6IFJ1bGVzZXQpID0+IHJ1bGVTZXQuaWQpKTtcblxuLyoqXG4gKiBTZWxlY3QgdGhlIG1hcCBvZiBydWxlU2V0IHRvIGFjdGl2YXRlIGJhc2VkIG9uIHRoZSBjb21wb25lbnQgY29tcHV0ZWQgbmFtZVxuICovXG5leHBvcnQgY29uc3Qgc2VsZWN0UnVsZVNldExpbmtDb21wb25lbnRzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEFsbFJ1bGVzZXRzLFxuICAocnVsZVNldHMpID0+XG4gICAgcnVsZVNldHNcbiAgICAgIC5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+LCBydWxlU2V0OiBSdWxlc2V0KSA9PiB7XG4gICAgICAgIGlmICghcnVsZVNldC5saW5rZWRDb21wb25lbnQpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbmZpZ05hbWUgPSBjb21wdXRlSXRlbUlkZW50aWZpZXIocnVsZVNldC5saW5rZWRDb21wb25lbnQubmFtZSwgcnVsZVNldC5saW5rZWRDb21wb25lbnQubGlicmFyeSk7XG4gICAgICAgIGFjY1tjb25maWdOYW1lXSB8fD0gW107XG4gICAgICAgIGFjY1tjb25maWdOYW1lXS5wdXNoKHJ1bGVTZXQuaWQpO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pXG4pO1xuIl19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { FactDefinitions, FactSet } from '../engine/index';
|
|
2
|
-
import {
|
|
2
|
+
import { RulesEngineRunnerService } from '../services/runner/rules-engine.runner.service';
|
|
3
3
|
/** Abstract fact set service */
|
|
4
4
|
export declare abstract class FactsService<T extends FactDefinitions> {
|
|
5
|
-
private rulesEngine;
|
|
5
|
+
private readonly rulesEngine;
|
|
6
6
|
/** Set of facts provided */
|
|
7
7
|
abstract facts: FactSet<T>;
|
|
8
|
-
constructor(rulesEngine:
|
|
8
|
+
constructor(rulesEngine: RulesEngineRunnerService);
|
|
9
9
|
/** Register the set of facts */
|
|
10
10
|
register(): void;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fact.abstract-service.d.ts","sourceRoot":"","sources":["../../src/fact/fact.abstract-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fact.abstract-service.d.ts","sourceRoot":"","sources":["../../src/fact/fact.abstract-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,gCAAgC;AAChC,8BAAsB,YAAY,CAAC,CAAC,SAAS,eAAe;IAK9C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAHxC,4BAA4B;IAC5B,SAAgB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAEL,WAAW,EAAE,wBAAwB;IAGlE,gCAAgC;IACzB,QAAQ;CAMhB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FactDefinitions } from '../../engine';
|
|
2
|
+
/**
|
|
3
|
+
* Operator facts that provide the current time
|
|
4
|
+
*/
|
|
5
|
+
export interface CurrentTimeFacts extends FactDefinitions {
|
|
6
|
+
/**
|
|
7
|
+
* The current time as a timestamp
|
|
8
|
+
*/
|
|
9
|
+
o3rCurrentTime: number;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=current-time.facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-time.facts.d.ts","sourceRoot":"","sources":["../../../src/facts/current-time/current-time.facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/facts/current-time/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/facts/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/facts/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
class
|
|
1
|
+
/** Jasmine Fixture class for RulesEngineRunnerService */
|
|
2
|
+
class RulesEngineRunnerServiceFixture {
|
|
2
3
|
constructor() {
|
|
3
4
|
/** @inheritDoc */
|
|
4
5
|
this.upsertFacts = jasmine.createSpy('upsertFacts');
|
|
5
6
|
/** @inheritDoc */
|
|
6
7
|
this.upsertOperators = jasmine.createSpy('upsertOperators');
|
|
7
8
|
/** @inheritDoc */
|
|
8
|
-
this.resolveUrlWithLang = jasmine.createSpy('resolveUrlWithLang');
|
|
9
|
-
/** @inheritDoc */
|
|
10
|
-
this.retrieveTemplate = jasmine.createSpy('retrieveTemplate');
|
|
11
|
-
/** @inheritDoc */
|
|
12
9
|
this.enableRuleSetFor = jasmine.createSpy('enableRuleSetFor');
|
|
13
10
|
/** @inheritDoc */
|
|
14
11
|
this.disableRuleSetFor = jasmine.createSpy('disableRuleSetFor');
|
|
@@ -19,5 +16,5 @@ class RulesEngineServiceFixture {
|
|
|
19
16
|
* Generated bundle index. Do not edit.
|
|
20
17
|
*/
|
|
21
18
|
|
|
22
|
-
export {
|
|
19
|
+
export { RulesEngineRunnerServiceFixture };
|
|
23
20
|
//# sourceMappingURL=o3r-rules-engine-fixtures-jasmine.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-rules-engine-fixtures-jasmine.mjs","sources":["../../src/fixtures/jasmine/rules-engine.service.fixture.jasmine.ts","../../src/fixtures/jasmine/o3r-rules-engine-fixtures-jasmine.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"o3r-rules-engine-fixtures-jasmine.mjs","sources":["../../src/fixtures/jasmine/rules-engine.runner.service.fixture.jasmine.ts","../../src/fixtures/jasmine/o3r-rules-engine-fixtures-jasmine.ts"],"sourcesContent":["import type { RulesEngineRunnerService } from '@o3r/rules-engine';\n\n/** Jasmine Fixture class for RulesEngineRunnerService */\nexport class RulesEngineRunnerServiceFixture implements Readonly<Partial<RulesEngineRunnerService>> {\n\n /** @inheritDoc */\n public upsertFacts: jasmine.Spy = jasmine.createSpy('upsertFacts');\n\n /** @inheritDoc */\n public upsertOperators: jasmine.Spy = jasmine.createSpy('upsertOperators');\n\n /** @inheritDoc */\n public enableRuleSetFor: jasmine.Spy = jasmine.createSpy('enableRuleSetFor');\n\n /** @inheritDoc */\n public disableRuleSetFor: jasmine.Spy = jasmine.createSpy('disableRuleSetFor');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAEA;MACa,+BAA+B,CAAA;AAA5C,IAAA,WAAA,GAAA;;AAGS,QAAA,IAAA,CAAA,WAAW,GAAgB,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;;AAG5D,QAAA,IAAA,CAAA,eAAe,GAAgB,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;;AAGpE,QAAA,IAAA,CAAA,gBAAgB,GAAgB,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;;AAGtE,QAAA,IAAA,CAAA,iBAAiB,GAAgB,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;KAChF;AAAA;;AChBD;;AAEG;;;;"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
class
|
|
1
|
+
/** Jest Fixture class for RulesEngineRunnerService */
|
|
2
|
+
class RulesEngineRunnerServiceFixture {
|
|
2
3
|
constructor() {
|
|
3
4
|
/** @inheritDoc */
|
|
4
5
|
this.upsertFacts = jest.fn();
|
|
5
6
|
/** @inheritDoc */
|
|
6
7
|
this.upsertOperators = jest.fn();
|
|
7
8
|
/** @inheritDoc */
|
|
8
|
-
this.resolveUrlWithLang = jest.fn();
|
|
9
|
-
/** @inheritDoc */
|
|
10
|
-
this.retrieveTemplate = jest.fn();
|
|
11
|
-
/** @inheritDoc */
|
|
12
9
|
this.enableRuleSetFor = jest.fn();
|
|
13
10
|
/** @inheritDoc */
|
|
14
11
|
this.disableRuleSetFor = jest.fn();
|
|
@@ -19,5 +16,5 @@ class RulesEngineServiceFixture {
|
|
|
19
16
|
* Generated bundle index. Do not edit.
|
|
20
17
|
*/
|
|
21
18
|
|
|
22
|
-
export {
|
|
19
|
+
export { RulesEngineRunnerServiceFixture };
|
|
23
20
|
//# sourceMappingURL=o3r-rules-engine-fixtures-jest.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-rules-engine-fixtures-jest.mjs","sources":["../../src/fixtures/jest/rules-engine.service.fixture.jest.ts","../../src/fixtures/jest/o3r-rules-engine-fixtures-jest.ts"],"sourcesContent":["import type {Fact, Operator,
|
|
1
|
+
{"version":3,"file":"o3r-rules-engine-fixtures-jest.mjs","sources":["../../src/fixtures/jest/rules-engine.runner.service.fixture.jest.ts","../../src/fixtures/jest/o3r-rules-engine-fixtures-jest.ts"],"sourcesContent":["import type {Fact, Operator, RulesEngineRunnerService, UnaryOperator} from '@o3r/rules-engine';\n\n/** Jest Fixture class for RulesEngineRunnerService */\nexport class RulesEngineRunnerServiceFixture implements Readonly<Partial<RulesEngineRunnerService>> {\n\n /** @inheritDoc */\n public upsertFacts: jest.Mock<void, [Fact<unknown> | Fact<unknown>[]]> = jest.fn();\n\n /** @inheritDoc */\n public upsertOperators: jest.Mock<void, [(Operator<any, any> | UnaryOperator<any>)[]]> = jest.fn();\n\n /** @inheritDoc */\n public enableRuleSetFor: jest.Mock<void, [string]> = jest.fn();\n\n /** @inheritDoc */\n public disableRuleSetFor: jest.Mock<void, [string]> = jest.fn();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAEA;MACa,+BAA+B,CAAA;AAA5C,IAAA,WAAA,GAAA;;AAGS,QAAA,IAAA,CAAA,WAAW,GAAuD,IAAI,CAAC,EAAE,EAAE,CAAC;;AAG5E,QAAA,IAAA,CAAA,eAAe,GAAmE,IAAI,CAAC,EAAE,EAAE,CAAC;;AAG5F,QAAA,IAAA,CAAA,gBAAgB,GAA8B,IAAI,CAAC,EAAE,EAAE,CAAC;;AAGxD,QAAA,IAAA,CAAA,iBAAiB,GAA8B,IAAI,CAAC,EAAE,EAAE,CAAC;KACjE;AAAA;;AChBD;;AAEG;;;;"}
|