@o3r/rules-engine 11.6.0-prerelease.5 → 11.6.0-prerelease.6

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.
@@ -16,7 +16,10 @@ export class RulesEngineRunnerService {
16
16
  this.subscription = new Subscription();
17
17
  /** Observable of component linked to the component */
18
18
  this.linkedComponents$ = new BehaviorSubject({});
19
- /** List of action handlers */
19
+ /**
20
+ * List of action handlers
21
+ * @deprecated will become protected in Otter v13, instead use {@link registerActionHandlers}
22
+ */
20
23
  this.actionHandlers = new Set();
21
24
  this.enabled = !engineConfig?.dryRun;
22
25
  this.engine = new RulesEngine({
@@ -61,26 +64,40 @@ export class RulesEngineRunnerService {
61
64
  await Promise.all(handling);
62
65
  }
63
66
  /**
64
- * Update or insert fact in rules engine
67
+ * Update or insert fact in the rules engine
65
68
  * @param facts fact list to add / update
66
69
  */
67
70
  upsertFacts(facts) {
68
71
  this.engine.upsertFacts(facts);
69
72
  }
70
73
  /**
71
- * Update or insert operator in rules engine
74
+ * Update or insert operator in the rules engine
72
75
  * @param operators operator list to add / update
73
76
  */
74
77
  upsertOperators(operators) {
75
78
  this.engine.upsertOperators(operators);
76
79
  }
77
80
  /**
78
- * Upsert a list of RuleSets to be run in the engine
81
+ * Upsert a list of RuleSets to be run in the rules engine
79
82
  * @param ruleSets
80
83
  */
81
84
  upsertRulesets(ruleSets) {
82
85
  this.store.dispatch(setRulesetsEntities({ entities: ruleSets }));
83
86
  }
87
+ /**
88
+ * Add action handlers in the rules engine
89
+ * @param actionHandlers
90
+ */
91
+ registerActionHandlers(...actionHandlers) {
92
+ actionHandlers.forEach((actionHandler) => this.actionHandlers.add(actionHandler));
93
+ }
94
+ /**
95
+ * Remove action handlers in the rules engine
96
+ * @param actionHandlers
97
+ */
98
+ unregisterActionHandlers(...actionHandlers) {
99
+ actionHandlers.forEach((actionHandler) => this.actionHandlers.delete(actionHandler));
100
+ }
84
101
  /** @inheritdoc */
85
102
  ngOnDestroy() {
86
103
  this.subscription.unsubscribe();
@@ -116,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
116
133
  type: Inject,
117
134
  args: [RULES_ENGINE_OPTIONS]
118
135
  }] }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bm5lci9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFN0UsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNwQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsb0JBQW9CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGFBQWEsQ0FBQzs7OztBQUkxQyxNQUFNLE9BQU8sd0JBQXdCO0lBc0JuQyxZQUNtQixLQUEyQixFQUMzQixNQUFxQixFQUNJLFlBQXdDO1FBRmpFLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQWU7UUF0QjlCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUs1QyxzREFBc0Q7UUFDNUMsc0JBQWlCLEdBQStDLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBV2xHLDhCQUE4QjtRQUNkLG1CQUFjLEdBQUcsSUFB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OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25CbG9jaywgRmFjdCwgT3BlcmF0b3IsIFJ1bGVzZXQsIFVuYXJ5T3BlcmF0b3J9IGZyb20gJy4uLy4uL2VuZ2luZS9pbmRleCc7XG5pbXBvcnQge0VuZ2luZURlYnVnZ2VyLCBvcGVyYXRvckxpc3QsIFJ1bGVzRW5naW5lfSBmcm9tICcuLi8uLi9lbmdpbmUvaW5kZXgnO1xuaW1wb3J0IHR5cGUge1J1bGVzZXRzU3RvcmV9IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5pbXBvcnQge1xuICBzZWxlY3RBY3RpdmVSdWxlU2V0cyxcbiAgc2VsZWN0QWxsUnVsZXNldHMsXG4gIHNlbGVjdENvbXBvbmVudHNMaW5rZWRUb1J1bGVzZXQsXG4gIHNldFJ1bGVzZXRzRW50aXRpZXNcbn0gZnJvbSAnLi4vLi4vc3RvcmVzJztcbmltcG9ydCB7UlVMRVNfRU5HSU5FX09QVElPTlMsIFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnN9IGZyb20gJy4uL3J1bGVzLWVuZ2luZS50b2tlbic7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB0eXBlIHtSdWxlc0VuZ2luZUFjdGlvbkhhbmRsZXJ9IGZyb20gJ0BvM3IvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSdWxlc0VuZ2luZVJ1bm5lclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLyoqIFJ1bGVzZXRzIHRvIHJlc3RyaWN0IHRoZSBleGVjdXRpb24gb2YgdGhlIGVuZ2luZSAqL1xuICBwcm90ZWN0ZWQgcnVsZVNldHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPjtcblxuICAvKiogT2JzZXJ2YWJsZSBvZiBjb21wb25lbnQgbGlua2VkIHRvIHRoZSBjb21wb25lbnQgKi9cbiAgcHJvdGVjdGVkIGxpbmtlZENvbXBvbmVudHMkOiBCZWhhdmlvclN1YmplY3Q8eyBba2V5OiBzdHJpbmddOiBudW1iZXIgfT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcblxuICAvKiogTWFwIG9mIGVuZ2luZXMgZGVkaWNhdGVkIHRvIGVhY2ggcnVsZSBzZXRzICovXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU6IFJ1bGVzRW5naW5lO1xuXG4gIC8qKiBzdHJlYW0gb2YgdGhlIHdob2xlIHJ1bGVzZXQgcmVzdWx0cyAqL1xuICBwdWJsaWMgZXZlbnRzJDogT2JzZXJ2YWJsZTxBY3Rpb25CbG9ja1tdPjtcblxuICAvKiogRW5hYmxlIGFjdGlvbiBleGVjdXRpb24gb24gbmV3IHN0YXRlIGNoYW5nZSAqL1xuICBwdWJsaWMgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKiogTGlzdCBvZiBhY3Rpb24gaGFuZGxlcnMgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvbkhhbmRsZXJzID0gbmV3IFNldDxSdWxlc0VuZ2luZUFjdGlvbkhhbmRsZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8UnVsZXNldHNTdG9yZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSVUxFU19FTkdJTkVfT1BUSU9OUykgZW5naW5lQ29uZmlnPzogUnVsZXNFbmdpbmVTZXJ2aWNlT3B0aW9ucykge1xuICAgIHRoaXMuZW5hYmxlZCA9ICFlbmdpbmVDb25maWc/LmRyeVJ1bjtcbiAgICB0aGlzLmVuZ2luZSA9IG5ldyBSdWxlc0VuZ2luZSh7XG4gICAgICBkZWJ1Z2dlcjogZW5naW5lQ29uZmlnPy5kZWJ1ZyA/IG5ldyBFbmdpbmVEZWJ1Z2dlcih7ZXZlbnRzU3RhY2tMaW1pdDogZW5naW5lQ29uZmlnPy5kZWJ1Z0V2ZW50c1N0YWNrTGltaXR9KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXJcbiAgICB9KTtcbiAgICB0aGlzLnJ1bGVTZXRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RBY3RpdmVSdWxlU2V0cykpLFxuICAgICAgdGhpcy5saW5rZWRDb21wb25lbnRzJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGxpbmtlZENvbXBvbmVudHNOYW1lc01hcCkgPT4gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICAgIHNlbGVjdChzZWxlY3RDb21wb25lbnRzTGlua2VkVG9SdWxlc2V0KSxcbiAgICAgICAgICBtYXAoKHJ1bGVzZXRzV2l0aExpbmtlZENvbXBvbmVudHNNYXApID0+XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhydWxlc2V0c1dpdGhMaW5rZWRDb21wb25lbnRzTWFwLm9yKS5maWx0ZXIoKHJ1bGVzZXRJZCkgPT5cbiAgICAgICAgICAgICAgcnVsZXNldHNXaXRoTGlua2VkQ29tcG9uZW50c01hcC5vcltydWxlc2V0SWRdLnNvbWUoKGNvbXBvbmVudElkKSA9PiBsaW5rZWRDb21wb25lbnRzTmFtZXNNYXBbY29tcG9uZW50SWRdID4gMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICkpXG4gICAgICApXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2FjdGl2ZVJ1bGVzZXRzLCBsaW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSA9PiAoWy4uLmFjdGl2ZVJ1bGVzZXRzLCAuLi5saW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSlcbiAgICApO1xuXG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ydWxlU2V0cyQucGlwZShcbiAgICAgIHRoaXMuZW5naW5lLmdldEV2ZW50U3RyZWFtPEFjdGlvbkJsb2NrPigpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JMaXN0KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KHNlbGVjdEFsbFJ1bGVzZXRzKVxuICAgICAgKS5zdWJzY3JpYmUoKHJ1bGVzZXRzOiBSdWxlc2V0W10pID0+IHRoaXMuZW5naW5lLnVwc2VydFJ1bGVzZXRzKHJ1bGVzZXRzKSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ldmVudHMkLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMuZW5hYmxlZCkpLnN1YnNjcmliZShhc3luYyAoZXZlbnRzKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUFjdGlvbnMoZXZlbnRzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICogQHBhcmFtIGFjdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBleGVjdXRlQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25CbG9ja1tdKSB7XG4gICAgY29uc3QgYWN0aW9uSGFuZGxlcnMgPSBbLi4udGhpcy5hY3Rpb25IYW5kbGVyc107XG5cbiAgICBjb25zdCBzdXBwb3J0ZWRBY3Rpb25zID0gbmV3IFNldChhY3Rpb25IYW5kbGVycy5tYXAoKGhhbmRsZXIpID0+IGhhbmRsZXIuc3VwcG9ydGluZ0FjdGlvbnMpLmZsYXQoKSk7XG5cbiAgICBjb25zdCBhY3Rpb25NYXBzID0gYWN0aW9uc1xuICAgICAgLmZpbHRlcigoYWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzS25vd24gPSBzdXBwb3J0ZWRBY3Rpb25zLmhhcyhhY3Rpb24uYWN0aW9uVHlwZSk7XG4gICAgICAgIGlmICghaXNLbm93bikge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYFRoZSBhY3Rpb24gJHthY3Rpb24uYWN0aW9uVHlwZX0gZG9lcyBub3QgaGF2ZSByZWdpc3RlcmVkIGhhbmRsZXJgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNLbm93bjtcbiAgICAgIH0pXG4gICAgICAucmVkdWNlKChhY2MsIGFjdGlvbikgPT4ge1xuICAgICAgICBhY2NbYWN0aW9uLmFjdGlvblR5cGVdIHx8PSBbXTtcbiAgICAgICAgYWNjW2FjdGlvbi5hY3Rpb25UeXBlXS5wdXNoKGFjdGlvbik7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBBY3Rpb25CbG9ja1tdPik7XG5cbiAgICBjb25zdCBoYW5kbGluZyA9IGFjdGlvbkhhbmRsZXJzXG4gICAgICAubWFwKChoYW5kbGVyKSA9PlxuICAgICAgICBoYW5kbGVyLmV4ZWN1dGVBY3Rpb25zKFxuICAgICAgICAgIGhhbmRsZXIuc3VwcG9ydGluZ0FjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKHN1cHBvcnRlZEFjdGlvbikgPT4gYWN0aW9uTWFwc1tzdXBwb3J0ZWRBY3Rpb25dKVxuICAgICAgICAgICAgLnJlZHVjZTxBY3Rpb25CbG9ja1tdPigoYWNjLCBzdXBwb3J0ZWRBY3Rpb24pID0+IGFjYy5jb25jYXQoYWN0aW9uTWFwc1tzdXBwb3J0ZWRBY3Rpb25dKSwgW10pXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChoYW5kbGluZyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBmYWN0IGluIHJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gZmFjdHMgZmFjdCBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydEZhY3RzKGZhY3RzOiBGYWN0PHVua25vd24+IHwgRmFjdDx1bmtub3duPltdKSB7XG4gICAgdGhpcy5lbmdpbmUudXBzZXJ0RmFjdHMoZmFjdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgb3BlcmF0b3IgaW4gcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBvcGVyYXRvcnMgb3BlcmF0b3IgbGlzdCB0byBhZGQgLyB1cGRhdGVcbiAgICovXG4gIHB1YmxpYyB1cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JzOiAoT3BlcmF0b3I8YW55LCBhbnk+IHwgVW5hcnlPcGVyYXRvcjxhbnk+KVtdKSB7XG4gICAgdGhpcy5lbmdpbmUudXBzZXJ0T3BlcmF0b3JzKG9wZXJhdG9ycyk7XG4gIH1cblxuICAvKipcbiAgICogVXBzZXJ0IGEgbGlzdCBvZiBSdWxlU2V0cyB0byBiZSBydW4gaW4gdGhlIGVuZ2luZVxuICAgKiBAcGFyYW0gcnVsZVNldHNcbiAgICovXG4gIHB1YmxpYyB1cHNlcnRSdWxlc2V0cyhydWxlU2V0czogUnVsZXNldFtdKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzZXRSdWxlc2V0c0VudGl0aWVzKHtlbnRpdGllczogcnVsZVNldHN9KSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlIHRlbXBvcmFyeSBhIHJ1bGUgc2V0XG4gICAqIEBwYXJhbSBjb21wb25lbnRDb21wdXRlZE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIGVuYWJsZSB0aGUgcnVsZXNldCBmb3JcbiAgICovXG4gIHB1YmxpYyBlbmFibGVSdWxlU2V0Rm9yKGNvbXBvbmVudENvbXB1dGVkTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3TWFwID0gdGhpcy5saW5rZWRDb21wb25lbnRzJC52YWx1ZTtcbiAgICBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSA9IG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID8gbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gKyAxIDogMTtcbiAgICB0aGlzLmxpbmtlZENvbXBvbmVudHMkLm5leHQobmV3TWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRlbXBvcmFyeSBhIHJ1bGUgc2V0XG4gICAqIEBwYXJhbSBjb21wb25lbnRDb21wdXRlZE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIGRpc2FibGUgdGhlIHJ1bGVzZXQgZm9yXG4gICAqL1xuICBwdWJsaWMgZGlzYWJsZVJ1bGVTZXRGb3IoY29tcG9uZW50Q29tcHV0ZWROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdNYXAgPSB0aGlzLmxpbmtlZENvbXBvbmVudHMkLnZhbHVlO1xuICAgIGlmIChuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSA+IDApIHtcbiAgICAgIG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdLS07XG4gICAgICB0aGlzLmxpbmtlZENvbXBvbmVudHMkLm5leHQobmV3TWFwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bm5lci9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFN0UsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNwQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsb0JBQW9CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGFBQWEsQ0FBQzs7OztBQUkxQyxNQUFNLE9BQU8sd0JBQXdCO0lBeUJuQyxZQUNtQixLQUEyQixFQUMzQixNQUFxQixFQUNJLFlBQXdDO1FBRmpFLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQWU7UUF6QjlCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUs1QyxzREFBc0Q7UUFDNUMsc0JBQWlCLEdBQStDLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBV2xHOzs7V0FHRztRQUNhLG1CQUFjLEdBQUcsSUFB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NkI7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztRQUM1QyxJQUFJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztrSUExS1Usd0JBQXdCLG9FQTRCYixvQkFBb0I7c0lBNUIvQix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7OzBCQTZCTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7c2VsZWN0LCBTdG9yZX0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7QWN0aW9uQmxvY2ssIEZhY3QsIE9wZXJhdG9yLCBSdWxlc2V0LCBVbmFyeU9wZXJhdG9yfSBmcm9tICcuLi8uLi9lbmdpbmUvaW5kZXgnO1xuaW1wb3J0IHtFbmdpbmVEZWJ1Z2dlciwgb3BlcmF0b3JMaXN0LCBSdWxlc0VuZ2luZX0gZnJvbSAnLi4vLi4vZW5naW5lL2luZGV4JztcbmltcG9ydCB0eXBlIHtSdWxlc2V0c1N0b3JlfSBmcm9tICcuLi8uLi9zdG9yZXMnO1xuaW1wb3J0IHtcbiAgc2VsZWN0QWN0aXZlUnVsZVNldHMsXG4gIHNlbGVjdEFsbFJ1bGVzZXRzLFxuICBzZWxlY3RDb21wb25lbnRzTGlua2VkVG9SdWxlc2V0LFxuICBzZXRSdWxlc2V0c0VudGl0aWVzXG59IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5pbXBvcnQge1JVTEVTX0VOR0lORV9PUFRJT05TLCBSdWxlc0VuZ2luZVNlcnZpY2VPcHRpb25zfSBmcm9tICcuLi9ydWxlcy1lbmdpbmUudG9rZW4nO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSB7UnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyfSBmcm9tICdAbzNyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIC8qKiBSdWxlc2V0cyB0byByZXN0cmljdCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBlbmdpbmUgKi9cbiAgcHJvdGVjdGVkIHJ1bGVTZXRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD47XG5cbiAgLyoqIE9ic2VydmFibGUgb2YgY29tcG9uZW50IGxpbmtlZCB0byB0aGUgY29tcG9uZW50ICovXG4gIHByb3RlY3RlZCBsaW5rZWRDb21wb25lbnRzJDogQmVoYXZpb3JTdWJqZWN0PHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG5cbiAgLyoqIE1hcCBvZiBlbmdpbmVzIGRlZGljYXRlZCB0byBlYWNoIHJ1bGUgc2V0cyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lOiBSdWxlc0VuZ2luZTtcblxuICAvKiogc3RyZWFtIG9mIHRoZSB3aG9sZSBydWxlc2V0IHJlc3VsdHMgKi9cbiAgcHVibGljIGV2ZW50cyQ6IE9ic2VydmFibGU8QWN0aW9uQmxvY2tbXT47XG5cbiAgLyoqIEVuYWJsZSBhY3Rpb24gZXhlY3V0aW9uIG9uIG5ldyBzdGF0ZSBjaGFuZ2UgKi9cbiAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWN0aW9uIGhhbmRsZXJzXG4gICAqIEBkZXByZWNhdGVkIHdpbGwgYmVjb21lIHByb3RlY3RlZCBpbiBPdHRlciB2MTMsIGluc3RlYWQgdXNlIHtAbGluayByZWdpc3RlckFjdGlvbkhhbmRsZXJzfVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvbkhhbmRsZXJzID0gbmV3IFNldDxSdWxlc0VuZ2luZUFjdGlvbkhhbmRsZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8UnVsZXNldHNTdG9yZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSVUxFU19FTkdJTkVfT1BUSU9OUykgZW5naW5lQ29uZmlnPzogUnVsZXNFbmdpbmVTZXJ2aWNlT3B0aW9ucykge1xuICAgIHRoaXMuZW5hYmxlZCA9ICFlbmdpbmVDb25maWc/LmRyeVJ1bjtcbiAgICB0aGlzLmVuZ2luZSA9IG5ldyBSdWxlc0VuZ2luZSh7XG4gICAgICBkZWJ1Z2dlcjogZW5naW5lQ29uZmlnPy5kZWJ1ZyA/IG5ldyBFbmdpbmVEZWJ1Z2dlcih7ZXZlbnRzU3RhY2tMaW1pdDogZW5naW5lQ29uZmlnPy5kZWJ1Z0V2ZW50c1N0YWNrTGltaXR9KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXJcbiAgICB9KTtcbiAgICB0aGlzLnJ1bGVTZXRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RBY3RpdmVSdWxlU2V0cykpLFxuICAgICAgdGhpcy5saW5rZWRDb21wb25lbnRzJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGxpbmtlZENvbXBvbmVudHNOYW1lc01hcCkgPT4gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICAgIHNlbGVjdChzZWxlY3RDb21wb25lbnRzTGlua2VkVG9SdWxlc2V0KSxcbiAgICAgICAgICBtYXAoKHJ1bGVzZXRzV2l0aExpbmtlZENvbXBvbmVudHNNYXApID0+XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhydWxlc2V0c1dpdGhMaW5rZWRDb21wb25lbnRzTWFwLm9yKS5maWx0ZXIoKHJ1bGVzZXRJZCkgPT5cbiAgICAgICAgICAgICAgcnVsZXNldHNXaXRoTGlua2VkQ29tcG9uZW50c01hcC5vcltydWxlc2V0SWRdLnNvbWUoKGNvbXBvbmVudElkKSA9PiBsaW5rZWRDb21wb25lbnRzTmFtZXNNYXBbY29tcG9uZW50SWRdID4gMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICkpXG4gICAgICApXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2FjdGl2ZVJ1bGVzZXRzLCBsaW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSA9PiAoWy4uLmFjdGl2ZVJ1bGVzZXRzLCAuLi5saW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSlcbiAgICApO1xuXG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ydWxlU2V0cyQucGlwZShcbiAgICAgIHRoaXMuZW5naW5lLmdldEV2ZW50U3RyZWFtPEFjdGlvbkJsb2NrPigpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JMaXN0KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KHNlbGVjdEFsbFJ1bGVzZXRzKVxuICAgICAgKS5zdWJzY3JpYmUoKHJ1bGVzZXRzOiBSdWxlc2V0W10pID0+IHRoaXMuZW5naW5lLnVwc2VydFJ1bGVzZXRzKHJ1bGVzZXRzKSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ldmVudHMkLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMuZW5hYmxlZCkpLnN1YnNjcmliZShhc3luYyAoZXZlbnRzKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUFjdGlvbnMoZXZlbnRzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICogQHBhcmFtIGFjdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBleGVjdXRlQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25CbG9ja1tdKSB7XG4gICAgY29uc3QgYWN0aW9uSGFuZGxlcnMgPSBbLi4udGhpcy5hY3Rpb25IYW5kbGVyc107XG5cbiAgICBjb25zdCBzdXBwb3J0ZWRBY3Rpb25zID0gbmV3IFNldChhY3Rpb25IYW5kbGVycy5tYXAoKGhhbmRsZXIpID0+IGhhbmRsZXIuc3VwcG9ydGluZ0FjdGlvbnMpLmZsYXQoKSk7XG5cbiAgICBjb25zdCBhY3Rpb25NYXBzID0gYWN0aW9uc1xuICAgICAgLmZpbHRlcigoYWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzS25vd24gPSBzdXBwb3J0ZWRBY3Rpb25zLmhhcyhhY3Rpb24uYWN0aW9uVHlwZSk7XG4gICAgICAgIGlmICghaXNLbm93bikge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYFRoZSBhY3Rpb24gJHthY3Rpb24uYWN0aW9uVHlwZX0gZG9lcyBub3QgaGF2ZSByZWdpc3RlcmVkIGhhbmRsZXJgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNLbm93bjtcbiAgICAgIH0pXG4gICAgICAucmVkdWNlKChhY2MsIGFjdGlvbikgPT4ge1xuICAgICAgICBhY2NbYWN0aW9uLmFjdGlvblR5cGVdIHx8PSBbXTtcbiAgICAgICAgYWNjW2FjdGlvbi5hY3Rpb25UeXBlXS5wdXNoKGFjdGlvbik7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBBY3Rpb25CbG9ja1tdPik7XG5cbiAgICBjb25zdCBoYW5kbGluZyA9IGFjdGlvbkhhbmRsZXJzXG4gICAgICAubWFwKChoYW5kbGVyKSA9PlxuICAgICAgICBoYW5kbGVyLmV4ZWN1dGVBY3Rpb25zKFxuICAgICAgICAgIGhhbmRsZXIuc3VwcG9ydGluZ0FjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKHN1cHBvcnRlZEFjdGlvbikgPT4gYWN0aW9uTWFwc1tzdXBwb3J0ZWRBY3Rpb25dKVxuICAgICAgICAgICAgLnJlZHVjZTxBY3Rpb25CbG9ja1tdPigoYWNjLCBzdXBwb3J0ZWRBY3Rpb24pID0+IGFjYy5jb25jYXQoYWN0aW9uTWFwc1tzdXBwb3J0ZWRBY3Rpb25dKSwgW10pXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChoYW5kbGluZyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBmYWN0IGluIHRoZSBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIGZhY3RzIGZhY3QgbGlzdCB0byBhZGQgLyB1cGRhdGVcbiAgICovXG4gIHB1YmxpYyB1cHNlcnRGYWN0cyhmYWN0czogRmFjdDx1bmtub3duPiB8IEZhY3Q8dW5rbm93bj5bXSkge1xuICAgIHRoaXMuZW5naW5lLnVwc2VydEZhY3RzKGZhY3RzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IG9wZXJhdG9yIGluIHRoZSBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIG9wZXJhdG9ycyBvcGVyYXRvciBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydE9wZXJhdG9ycyhvcGVyYXRvcnM6IChPcGVyYXRvcjxhbnksIGFueT4gfCBVbmFyeU9wZXJhdG9yPGFueT4pW10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcHNlcnQgYSBsaXN0IG9mIFJ1bGVTZXRzIHRvIGJlIHJ1biBpbiB0aGUgcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBydWxlU2V0c1xuICAgKi9cbiAgcHVibGljIHVwc2VydFJ1bGVzZXRzKHJ1bGVTZXRzOiBSdWxlc2V0W10pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNldFJ1bGVzZXRzRW50aXRpZXMoe2VudGl0aWVzOiBydWxlU2V0c30pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYWN0aW9uIGhhbmRsZXJzIGluIHRoZSBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIGFjdGlvbkhhbmRsZXJzXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJBY3Rpb25IYW5kbGVycyguLi5hY3Rpb25IYW5kbGVyczogUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyW10pIHtcbiAgICBhY3Rpb25IYW5kbGVycy5mb3JFYWNoKChhY3Rpb25IYW5kbGVyKSA9PiB0aGlzLmFjdGlvbkhhbmRsZXJzLmFkZChhY3Rpb25IYW5kbGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFjdGlvbiBoYW5kbGVycyBpbiB0aGUgcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBhY3Rpb25IYW5kbGVyc1xuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBY3Rpb25IYW5kbGVycyguLi5hY3Rpb25IYW5kbGVyczogUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyW10pIHtcbiAgICBhY3Rpb25IYW5kbGVycy5mb3JFYWNoKChhY3Rpb25IYW5kbGVyKSA9PiB0aGlzLmFjdGlvbkhhbmRsZXJzLmRlbGV0ZShhY3Rpb25IYW5kbGVyKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlIHRlbXBvcmFyeSBhIHJ1bGUgc2V0XG4gICAqIEBwYXJhbSBjb21wb25lbnRDb21wdXRlZE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIGVuYWJsZSB0aGUgcnVsZXNldCBmb3JcbiAgICovXG4gIHB1YmxpYyBlbmFibGVSdWxlU2V0Rm9yKGNvbXBvbmVudENvbXB1dGVkTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3TWFwID0gdGhpcy5saW5rZWRDb21wb25lbnRzJC52YWx1ZTtcbiAgICBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSA9IG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID8gbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gKyAxIDogMTtcbiAgICB0aGlzLmxpbmtlZENvbXBvbmVudHMkLm5leHQobmV3TWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRlbXBvcmFyeSBhIHJ1bGUgc2V0XG4gICAqIEBwYXJhbSBjb21wb25lbnRDb21wdXRlZE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIGRpc2FibGUgdGhlIHJ1bGVzZXQgZm9yXG4gICAqL1xuICBwdWJsaWMgZGlzYWJsZVJ1bGVTZXRGb3IoY29tcG9uZW50Q29tcHV0ZWROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdNYXAgPSB0aGlzLmxpbmtlZENvbXBvbmVudHMkLnZhbHVlO1xuICAgIGlmIChuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSA+IDApIHtcbiAgICAgIG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdLS07XG4gICAgICB0aGlzLmxpbmtlZENvbXBvbmVudHMkLm5leHQobmV3TWFwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1970,7 +1970,10 @@ class RulesEngineRunnerService {
1970
1970
  this.subscription = new Subscription();
1971
1971
  /** Observable of component linked to the component */
1972
1972
  this.linkedComponents$ = new BehaviorSubject({});
1973
- /** List of action handlers */
1973
+ /**
1974
+ * List of action handlers
1975
+ * @deprecated will become protected in Otter v13, instead use {@link registerActionHandlers}
1976
+ */
1974
1977
  this.actionHandlers = new Set();
1975
1978
  this.enabled = !engineConfig?.dryRun;
1976
1979
  this.engine = new RulesEngine({
@@ -2015,26 +2018,40 @@ class RulesEngineRunnerService {
2015
2018
  await Promise.all(handling);
2016
2019
  }
2017
2020
  /**
2018
- * Update or insert fact in rules engine
2021
+ * Update or insert fact in the rules engine
2019
2022
  * @param facts fact list to add / update
2020
2023
  */
2021
2024
  upsertFacts(facts) {
2022
2025
  this.engine.upsertFacts(facts);
2023
2026
  }
2024
2027
  /**
2025
- * Update or insert operator in rules engine
2028
+ * Update or insert operator in the rules engine
2026
2029
  * @param operators operator list to add / update
2027
2030
  */
2028
2031
  upsertOperators(operators) {
2029
2032
  this.engine.upsertOperators(operators);
2030
2033
  }
2031
2034
  /**
2032
- * Upsert a list of RuleSets to be run in the engine
2035
+ * Upsert a list of RuleSets to be run in the rules engine
2033
2036
  * @param ruleSets
2034
2037
  */
2035
2038
  upsertRulesets(ruleSets) {
2036
2039
  this.store.dispatch(setRulesetsEntities({ entities: ruleSets }));
2037
2040
  }
2041
+ /**
2042
+ * Add action handlers in the rules engine
2043
+ * @param actionHandlers
2044
+ */
2045
+ registerActionHandlers(...actionHandlers) {
2046
+ actionHandlers.forEach((actionHandler) => this.actionHandlers.add(actionHandler));
2047
+ }
2048
+ /**
2049
+ * Remove action handlers in the rules engine
2050
+ * @param actionHandlers
2051
+ */
2052
+ unregisterActionHandlers(...actionHandlers) {
2053
+ actionHandlers.forEach((actionHandler) => this.actionHandlers.delete(actionHandler));
2054
+ }
2038
2055
  /** @inheritdoc */
2039
2056
  ngOnDestroy() {
2040
2057
  this.subscription.unsubscribe();