@o3r/rules-engine 11.6.0-prerelease.21 → 11.6.0-prerelease.22
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/devkit/rules-engine-devtools.message.service.d.ts +2 -5
- package/devkit/rules-engine-devtools.message.service.d.ts.map +1 -1
- package/esm2022/devkit/rules-engine-devtools.message.service.mjs +11 -11
- package/esm2022/services/runner/rules-engine.runner.service.mjs +7 -11
- package/fesm2022/o3r-rules-engine.mjs +14 -19
- package/fesm2022/o3r-rules-engine.mjs.map +1 -1
- package/package.json +5 -5
- package/services/runner/rules-engine.runner.service.d.ts +2 -6
- package/services/runner/rules-engine.runner.service.d.ts.map +1 -1
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
1
|
import { DevtoolsServiceInterface } from '@o3r/core';
|
|
3
2
|
import { LoggerService } from '@o3r/logger';
|
|
4
3
|
import { RulesEngineDevtoolsServiceOptions } from './rules-engine-devkit.interface';
|
|
5
4
|
import { OtterRulesEngineDevtools } from './rules-engine-devtools.service';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class RulesEngineDevtoolsMessageService implements
|
|
6
|
+
export declare class RulesEngineDevtoolsMessageService implements DevtoolsServiceInterface {
|
|
8
7
|
private readonly rulesEngineDevtools;
|
|
9
8
|
private readonly logger;
|
|
10
9
|
private readonly options;
|
|
11
|
-
private readonly subscriptions;
|
|
12
10
|
private readonly forceEmitRulesEngineReport;
|
|
13
11
|
private readonly sendMessage;
|
|
12
|
+
private readonly destroyRef;
|
|
14
13
|
constructor(rulesEngineDevtools: OtterRulesEngineDevtools, logger: LoggerService, options?: RulesEngineDevtoolsServiceOptions);
|
|
15
14
|
/**
|
|
16
15
|
* Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension
|
|
@@ -38,8 +37,6 @@ export declare class RulesEngineDevtoolsMessageService implements OnDestroy, Dev
|
|
|
38
37
|
private connectPlugin;
|
|
39
38
|
/** Activate the Otter DevTools */
|
|
40
39
|
activate(): void;
|
|
41
|
-
/** @inheritDoc */
|
|
42
|
-
ngOnDestroy(): void;
|
|
43
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<RulesEngineDevtoolsMessageService, [null, null, { optional: true; }]>;
|
|
44
41
|
static ɵprov: i0.ɵɵInjectableDeclaration<RulesEngineDevtoolsMessageService>;
|
|
45
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules-engine-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/rules-engine-devtools.message.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rules-engine-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/rules-engine-devtools.message.service.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,wBAAwB,EAGzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AASrB,OAAO,EAGL,iCAAiC,EAElC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,wBAAwB,EACzB,MAAM,iCAAiC,CAAC;;AAMzC,qBAGa,iCAAkC,YAAW,wBAAwB;IAO9E,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAwC;IACnF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;IACrF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAG9B,mBAAmB,EAAE,wBAAwB,EAC7C,MAAM,EAAE,aAAa,EACmB,OAAO,CAAC,EAAE,iCAAiC;IAWtG;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqE;IAEpG;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB,kCAAkC;IAC3B,QAAQ;yCAnGJ,iCAAiC;6CAAjC,iCAAiC;CA2G7C"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional, } from '@angular/core';
|
|
1
|
+
import { DestroyRef, inject, Inject, Injectable, Optional, } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed, } from '@angular/core/rxjs-interop';
|
|
2
3
|
import { filterMessageContent, sendOtterMessage, } from '@o3r/core';
|
|
3
4
|
import { LoggerService, } from '@o3r/logger';
|
|
4
|
-
import { BehaviorSubject, combineLatest, fromEvent,
|
|
5
|
+
import { BehaviorSubject, combineLatest, fromEvent, } from 'rxjs';
|
|
5
6
|
import { isRulesEngineMessage, } from './rules-engine-devkit.interface';
|
|
6
7
|
import { OtterRulesEngineDevtools, } from './rules-engine-devtools.service';
|
|
7
8
|
import { OTTER_RULES_ENGINE_DEVTOOLS_DEFAULT_OPTIONS, OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS, } from './rules-engine-devtools.token';
|
|
@@ -12,9 +13,9 @@ export class RulesEngineDevtoolsMessageService {
|
|
|
12
13
|
constructor(rulesEngineDevtools, logger, options) {
|
|
13
14
|
this.rulesEngineDevtools = rulesEngineDevtools;
|
|
14
15
|
this.logger = logger;
|
|
15
|
-
this.subscriptions = new Subscription();
|
|
16
16
|
this.forceEmitRulesEngineReport = new BehaviorSubject(undefined);
|
|
17
17
|
this.sendMessage = (sendOtterMessage);
|
|
18
|
+
this.destroyRef = inject(DestroyRef);
|
|
18
19
|
this.serializeError = (error) => error instanceof Error ? error.toString() : error;
|
|
19
20
|
this.options = {
|
|
20
21
|
...OTTER_RULES_ENGINE_DEVTOOLS_DEFAULT_OPTIONS,
|
|
@@ -76,10 +77,13 @@ export class RulesEngineDevtoolsMessageService {
|
|
|
76
77
|
*/
|
|
77
78
|
startRulesEngineReport() {
|
|
78
79
|
if (this.rulesEngineDevtools.rulesEngineReport$) {
|
|
79
|
-
|
|
80
|
+
combineLatest([
|
|
81
|
+
this.forceEmitRulesEngineReport,
|
|
82
|
+
this.rulesEngineDevtools.rulesEngineReport$
|
|
83
|
+
]).pipe(takeUntilDestroyed(this.destroyRef)).subscribe(([, report]) => {
|
|
80
84
|
const sanitizedReport = { ...report, events: report.events.map((reportEvents) => this.serializeReportEvent(reportEvents)) };
|
|
81
85
|
this.sendMessage('rulesEngineEvents', sanitizedReport);
|
|
82
|
-
})
|
|
86
|
+
});
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
89
|
/**
|
|
@@ -92,11 +96,7 @@ export class RulesEngineDevtoolsMessageService {
|
|
|
92
96
|
/** Activate the Otter DevTools */
|
|
93
97
|
activate() {
|
|
94
98
|
this.startRulesEngineReport();
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
/** @inheritDoc */
|
|
98
|
-
ngOnDestroy() {
|
|
99
|
-
this.subscriptions.unsubscribe();
|
|
99
|
+
fromEvent(window, 'message').pipe(takeUntilDestroyed(this.destroyRef), filterMessageContent(isRulesEngineMessage)).subscribe((e) => this.handleEvents(e));
|
|
100
100
|
}
|
|
101
101
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RulesEngineDevtoolsMessageService, deps: [{ token: i1.OtterRulesEngineDevtools }, { token: i2.LoggerService }, { token: OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
102
102
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RulesEngineDevtoolsMessageService, providedIn: 'root' }); }
|
|
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
112
112
|
type: Inject,
|
|
113
113
|
args: [OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS]
|
|
114
114
|
}] }] });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvcnVsZXMtZW5naW5lLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFFVixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixnQkFBZ0IsR0FDakIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNMLGFBQWEsR0FDZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBSWQsT0FBTyxFQUVMLG9CQUFvQixHQUdyQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCx3QkFBd0IsR0FDekIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsMkNBQTJDLEVBQzNDLG1DQUFtQyxHQUNwQyxNQUFNLCtCQUErQixDQUFDOzs7O0FBS3ZDLE1BQU0sT0FBTyxpQ0FBaUM7SUFTNUMsWUFDbUIsbUJBQTZDLEVBQzdDLE1BQXFCLEVBQ21CLE9BQTJDO1FBRm5GLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFDN0MsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVJ2QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkMsK0JBQTBCLEdBQUcsSUFBSSxlQUFlLENBQU8sU0FBUyxDQUFDLENBQUM7UUFFbEUsZ0JBQVcsR0FBRyxDQUFBLGdCQUFxRCxDQUFBLENBQUM7UUFnRHBFLG1CQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUs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Q0FBOEMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0NBQWtDO0lBQzNCLFFBQVE7UUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNySCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNYLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO2tJQWhIVSxpQ0FBaUMsdUZBWXRCLG1DQUFtQztzSUFaOUMsaUNBQWlDLGNBRmhDLE1BQU07OzRGQUVQLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWFJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERldnRvb2xzU2VydmljZUludGVyZmFjZSxcbiAgZmlsdGVyTWVzc2FnZUNvbnRlbnQsXG4gIHNlbmRPdHRlck1lc3NhZ2UsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQge1xuICBMb2dnZXJTZXJ2aWNlLFxufSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb21FdmVudCxcbiAgU3Vic2NyaXB0aW9uLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHtcbiAgRGVidWdFdmVudCxcbn0gZnJvbSAnLi4vZW5naW5lJztcbmltcG9ydCB7XG4gIEF2YWlsYWJsZVJ1bGVzRW5naW5lTWVzc2FnZUNvbnRlbnRzLFxuICBpc1J1bGVzRW5naW5lTWVzc2FnZSxcbiAgUnVsZXNFbmdpbmVEZXZ0b29sc1NlcnZpY2VPcHRpb25zLFxuICBSdWxlc0VuZ2luZU1lc3NhZ2VEYXRhVHlwZXMsXG59IGZyb20gJy4vcnVsZXMtZW5naW5lLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgT3R0ZXJSdWxlc0VuZ2luZURldnRvb2xzLFxufSBmcm9tICcuL3J1bGVzLWVuZ2luZS1kZXZ0b29scy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE9UVEVSX1JVTEVTX0VOR0lORV9ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gIE9UVEVSX1JVTEVTX0VOR0lORV9ERVZUT09MU19PUFRJT05TLFxufSBmcm9tICcuL3J1bGVzLWVuZ2luZS1kZXZ0b29scy50b2tlbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVzRW5naW5lRGV2dG9vbHNNZXNzYWdlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgRGV2dG9vbHNTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBSdWxlc0VuZ2luZURldnRvb2xzU2VydmljZU9wdGlvbnM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9yY2VFbWl0UnVsZXNFbmdpbmVSZXBvcnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZW5kTWVzc2FnZSA9IHNlbmRPdHRlck1lc3NhZ2U8QXZhaWxhYmxlUnVsZXNFbmdpbmVNZXNzYWdlQ29udGVudHM+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcnVsZXNFbmdpbmVEZXZ0b29sczogT3R0ZXJSdWxlc0VuZ2luZURldnRvb2xzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT1RURVJfUlVMRVNfRU5HSU5FX0RFVlRPT0xTX09QVElPTlMpIG9wdGlvbnM/OiBSdWxlc0VuZ2luZURldnRvb2xzU2VydmljZU9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5PVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gdHJpZ2dlciBhIHJlLXNlbmQgYSByZXF1ZXN0ZWQgbWVzc2FnZXMgdG8gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG9ubHkgcmVzdHJpY3RlZCBsaXN0IG9mIG1lc3NhZ2VzIHRvIHJlLXNlbmRcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlUmVFbWl0UmVxdWVzdChvbmx5PzogUnVsZXNFbmdpbmVNZXNzYWdlRGF0YVR5cGVzW10pIHtcbiAgICBpZiAoIW9ubHkgfHwgb25seS5pbmNsdWRlcygncnVsZXNFbmdpbmVFdmVudHMnKSkge1xuICAgICAgdGhpcy5mb3JjZUVtaXRSdWxlc0VuZ2luZVJlcG9ydC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgaW5jb21pbmcgbWVzc2FnZXMgZnJvbSBPdHRlciBDaHJvbWUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUV2ZW50cyhtZXNzYWdlOiBBdmFpbGFibGVSdWxlc0VuZ2luZU1lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBjb25maWd1cmF0aW9uIHNlcnZpY2UnLCBtZXNzYWdlKTtcblxuICAgIHN3aXRjaCAobWVzc2FnZS5kYXRhVHlwZSkge1xuICAgICAgY2FzZSAnY29ubmVjdCc6IHtcbiAgICAgICAgdGhpcy5jb25uZWN0UGx1Z2luKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncmVxdWVzdE1lc3NhZ2VzJzoge1xuICAgICAgICB0aGlzLmhhbmRsZVJlRW1pdFJlcXVlc3QobWVzc2FnZS5vbmx5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ01lc3NhZ2UgaWdub3JlZCBieSB0aGUgY29uZmlndXJhdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJpYWxpemVFcnJvciA9IChlcnJvcjogYW55KSA9PiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IudG9TdHJpbmcoKSA6IGVycm9yO1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgZXhjZXB0aW9ucyBpbiBhIHdheSB0aGF0IHdpbGwgZGlzcGxheSB0aGUgZXJyb3IgbWVzc2FnZSBhZnRlciBhIEpTT04uc3RyaW5naWZ5KClcbiAgICogQHBhcmFtIGRlYnVnRXZlbnRcbiAgICovXG4gIHByaXZhdGUgc2VyaWFsaXplUmVwb3J0RXZlbnQoZGVidWdFdmVudDogRGVidWdFdmVudCkge1xuICAgIGlmIChkZWJ1Z0V2ZW50LnR5cGUgIT09ICdSdWxlc2V0RXhlY3V0aW9uRXJyb3InKSB7XG4gICAgICByZXR1cm4gZGVidWdFdmVudDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlYnVnRXZlbnQsXG4gICAgICBydWxlc0V2YWx1YXRpb25zOiBkZWJ1Z0V2ZW50LnJ1bGVzRXZhbHVhdGlvbnMubWFwKChydWxlRXZhbHVhdGlvbikgPT4gKHtcbiAgICAgICAgLi4ucnVsZUV2YWx1YXRpb24sXG4gICAgICAgIGVycm9yOiB0aGlzLnNlcmlhbGl6ZUVycm9yKHJ1bGVFdmFsdWF0aW9uLmVycm9yKVxuICAgICAgfSkpLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuIC0tIHR5cGUgaXMgZXhwbGljaXRseSBgYW55YFxuICAgICAgZXJyb3JzOiBkZWJ1Z0V2ZW50LmVycm9ycy5tYXAoKGVycm9yKSA9PiB0aGlzLnNlcmlhbGl6ZUVycm9yKGVycm9yKSlcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIHN0YXJ0IHRoZSBydWxlcyBlbmdpbmUgcmVwb3J0aW5nIHRvIHRoZSBPdHRlciBDaHJvbWUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqL1xuICBwcml2YXRlIHN0YXJ0UnVsZXNFbmdpbmVSZXBvcnQoKSB7XG4gICAgaWYgKHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5ydWxlc0VuZ2luZVJlcG9ydCQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9yY2VFbWl0UnVsZXNFbmdpbmVSZXBvcnQsIHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5ydWxlc0VuZ2luZVJlcG9ydCRdKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKFsscmVwb3J0XSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2FuaXRpemVkUmVwb3J0ID0geyAuLi5yZXBvcnQsIGV2ZW50czogcmVwb3J0LmV2ZW50cy5tYXAoKHJlcG9ydEV2ZW50cykgPT4gdGhpcy5zZXJpYWxpemVSZXBvcnRFdmVudChyZXBvcnRFdmVudHMpKSB9O1xuICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSgncnVsZXNFbmdpbmVFdmVudHMnLCBzYW5pdGl6ZWRSZXBvcnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gY29ubmVjdCB0aGUgcGx1Z2luIHRvIHRoZSBPdHRlciBEZXZUb29scyBleHRlbnNpb25cbiAgICovXG4gIHByaXZhdGUgY29ubmVjdFBsdWdpbigpIHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdPdHRlciBEZXZUb29scyBpcyBwbHVnZ2VkIHRvIHRoZSBhcHBsaWNhdGlvbicpO1xuICAgIHRoaXMuZm9yY2VFbWl0UnVsZXNFbmdpbmVSZXBvcnQubmV4dCgpO1xuICB9XG5cbiAgLyoqIEFjdGl2YXRlIHRoZSBPdHRlciBEZXZUb29scyAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5zdGFydFJ1bGVzRW5naW5lUmVwb3J0KCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKGZpbHRlck1lc3NhZ2VDb250ZW50KGlzUnVsZXNFbmdpbmVNZXNzYWdlKSkuc3Vic2NyaWJlKChlKSA9PiB0aGlzLmhhbmRsZUV2ZW50cyhlKSlcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvcnVsZXMtZW5naW5lLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEdBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixnQkFBZ0IsR0FDakIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNMLGFBQWEsR0FDZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFJZCxPQUFPLEVBRUwsb0JBQW9CLEdBR3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUNMLHdCQUF3QixHQUN6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQ0FBMkMsRUFDM0MsbUNBQW1DLEdBQ3BDLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFLdkMsTUFBTSxPQUFPLGlDQUFpQztJQU01QyxZQUNtQixtQkFBNkMsRUFDN0MsTUFBcUIsRUFDbUIsT0FBMkM7UUFGbkYsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUM3QyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBTnZCLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLGdCQUFXLEdBQUcsQ0FBQSxnQkFBcUQsQ0FBQSxDQUFDO1FBQ3BFLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFnRGhDLG1CQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUs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QztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxrQ0FBa0M7SUFDM0IsUUFBUTtRQUNiLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTlCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUMvQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ25DLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLENBQzNDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztrSUExR1UsaUNBQWlDLHVGQVN0QixtQ0FBbUM7c0lBVDlDLGlDQUFpQyxjQUZoQyxNQUFNOzs0RkFFUCxpQ0FBaUM7a0JBSDdDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc3Ryb3lSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0YWtlVW50aWxEZXN0cm95ZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIERldnRvb2xzU2VydmljZUludGVyZmFjZSxcbiAgZmlsdGVyTWVzc2FnZUNvbnRlbnQsXG4gIHNlbmRPdHRlck1lc3NhZ2UsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQge1xuICBMb2dnZXJTZXJ2aWNlLFxufSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb21FdmVudCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7XG4gIERlYnVnRXZlbnQsXG59IGZyb20gJy4uL2VuZ2luZSc7XG5pbXBvcnQge1xuICBBdmFpbGFibGVSdWxlc0VuZ2luZU1lc3NhZ2VDb250ZW50cyxcbiAgaXNSdWxlc0VuZ2luZU1lc3NhZ2UsXG4gIFJ1bGVzRW5naW5lRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyxcbiAgUnVsZXNFbmdpbmVNZXNzYWdlRGF0YVR5cGVzLFxufSBmcm9tICcuL3J1bGVzLWVuZ2luZS1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIE90dGVyUnVsZXNFbmdpbmVEZXZ0b29scyxcbn0gZnJvbSAnLi9ydWxlcy1lbmdpbmUtZGV2dG9vbHMuc2VydmljZSc7XG5pbXBvcnQge1xuICBPVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICBPVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfT1BUSU9OUyxcbn0gZnJvbSAnLi9ydWxlcy1lbmdpbmUtZGV2dG9vbHMudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSdWxlc0VuZ2luZURldnRvb2xzTWVzc2FnZVNlcnZpY2UgaW1wbGVtZW50cyBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFJ1bGVzRW5naW5lRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JjZUVtaXRSdWxlc0VuZ2luZVJlcG9ydCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZW5kTWVzc2FnZSA9IHNlbmRPdHRlck1lc3NhZ2U8QXZhaWxhYmxlUnVsZXNFbmdpbmVNZXNzYWdlQ29udGVudHM+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBydWxlc0VuZ2luZURldnRvb2xzOiBPdHRlclJ1bGVzRW5naW5lRGV2dG9vbHMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfT1BUSU9OUykgb3B0aW9ucz86IFJ1bGVzRW5naW5lRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLk9UVEVSX1JVTEVTX0VOR0lORV9ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byB0cmlnZ2VyIGEgcmUtc2VuZCBhIHJlcXVlc3RlZCBtZXNzYWdlcyB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gb25seSByZXN0cmljdGVkIGxpc3Qgb2YgbWVzc2FnZXMgdG8gcmUtc2VuZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVSZUVtaXRSZXF1ZXN0KG9ubHk/OiBSdWxlc0VuZ2luZU1lc3NhZ2VEYXRhVHlwZXNbXSkge1xuICAgIGlmICghb25seSB8fCBvbmx5LmluY2x1ZGVzKCdydWxlc0VuZ2luZUV2ZW50cycpKSB7XG4gICAgICB0aGlzLmZvcmNlRW1pdFJ1bGVzRW5naW5lUmVwb3J0Lm5leHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBpbmNvbWluZyBtZXNzYWdlcyBmcm9tIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRXZlbnRzKG1lc3NhZ2U6IEF2YWlsYWJsZVJ1bGVzRW5naW5lTWVzc2FnZUNvbnRlbnRzKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ01lc3NhZ2UgaGFuZGxpbmcgYnkgdGhlIGNvbmZpZ3VyYXRpb24gc2VydmljZScsIG1lc3NhZ2UpO1xuXG4gICAgc3dpdGNoIChtZXNzYWdlLmRhdGFUeXBlKSB7XG4gICAgICBjYXNlICdjb25uZWN0Jzoge1xuICAgICAgICB0aGlzLmNvbm5lY3RQbHVnaW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdyZXF1ZXN0TWVzc2FnZXMnOiB7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVFbWl0UmVxdWVzdChtZXNzYWdlLm9ubHkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignTWVzc2FnZSBpZ25vcmVkIGJ5IHRoZSBjb25maWd1cmF0aW9uIHNlcnZpY2UnLCBtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcmlhbGl6ZUVycm9yID0gKGVycm9yOiBhbnkpID0+IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci50b1N0cmluZygpIDogZXJyb3I7XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBleGNlcHRpb25zIGluIGEgd2F5IHRoYXQgd2lsbCBkaXNwbGF5IHRoZSBlcnJvciBtZXNzYWdlIGFmdGVyIGEgSlNPTi5zdHJpbmdpZnkoKVxuICAgKiBAcGFyYW0gZGVidWdFdmVudFxuICAgKi9cbiAgcHJpdmF0ZSBzZXJpYWxpemVSZXBvcnRFdmVudChkZWJ1Z0V2ZW50OiBEZWJ1Z0V2ZW50KSB7XG4gICAgaWYgKGRlYnVnRXZlbnQudHlwZSAhPT0gJ1J1bGVzZXRFeGVjdXRpb25FcnJvcicpIHtcbiAgICAgIHJldHVybiBkZWJ1Z0V2ZW50O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZGVidWdFdmVudCxcbiAgICAgIHJ1bGVzRXZhbHVhdGlvbnM6IGRlYnVnRXZlbnQucnVsZXNFdmFsdWF0aW9ucy5tYXAoKHJ1bGVFdmFsdWF0aW9uKSA9PiAoe1xuICAgICAgICAuLi5ydWxlRXZhbHVhdGlvbixcbiAgICAgICAgZXJyb3I6IHRoaXMuc2VyaWFsaXplRXJyb3IocnVsZUV2YWx1YXRpb24uZXJyb3IpXG4gICAgICB9KSksXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm4gLS0gdHlwZSBpcyBleHBsaWNpdGx5IGBhbnlgXG4gICAgICBlcnJvcnM6IGRlYnVnRXZlbnQuZXJyb3JzLm1hcCgoZXJyb3IpID0+IHRoaXMuc2VyaWFsaXplRXJyb3IoZXJyb3IpKVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gc3RhcnQgdGhlIHJ1bGVzIGVuZ2luZSByZXBvcnRpbmcgdG8gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICovXG4gIHByaXZhdGUgc3RhcnRSdWxlc0VuZ2luZVJlcG9ydCgpIHtcbiAgICBpZiAodGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLnJ1bGVzRW5naW5lUmVwb3J0JCkge1xuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZm9yY2VFbWl0UnVsZXNFbmdpbmVSZXBvcnQsXG4gICAgICAgIHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5ydWxlc0VuZ2luZVJlcG9ydCRcbiAgICAgIF0pLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShcbiAgICAgICAgKFsscmVwb3J0XSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNhbml0aXplZFJlcG9ydCA9IHsgLi4ucmVwb3J0LCBldmVudHM6IHJlcG9ydC5ldmVudHMubWFwKChyZXBvcnRFdmVudHMpID0+IHRoaXMuc2VyaWFsaXplUmVwb3J0RXZlbnQocmVwb3J0RXZlbnRzKSkgfTtcbiAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKCdydWxlc0VuZ2luZUV2ZW50cycsIHNhbml0aXplZFJlcG9ydCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbm5lY3QgdGhlIHBsdWdpbiB0byB0aGUgT3R0ZXIgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqL1xuICBwcml2YXRlIGNvbm5lY3RQbHVnaW4oKSB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnT3R0ZXIgRGV2VG9vbHMgaXMgcGx1Z2dlZCB0byB0aGUgYXBwbGljYXRpb24nKTtcbiAgICB0aGlzLmZvcmNlRW1pdFJ1bGVzRW5naW5lUmVwb3J0Lm5leHQoKTtcbiAgfVxuXG4gIC8qKiBBY3RpdmF0ZSB0aGUgT3R0ZXIgRGV2VG9vbHMgKi9cbiAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgIHRoaXMuc3RhcnRSdWxlc0VuZ2luZVJlcG9ydCgpO1xuXG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICBmaWx0ZXJNZXNzYWdlQ29udGVudChpc1J1bGVzRW5naW5lTWVzc2FnZSlcbiAgICApLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5oYW5kbGVFdmVudHMoZSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Inject, Injectable, Optional, } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed, } from '@angular/core/rxjs-interop';
|
|
2
3
|
import { select, Store, } from '@ngrx/store';
|
|
3
4
|
import { LoggerService, } from '@o3r/logger';
|
|
4
|
-
import { BehaviorSubject, combineLatest,
|
|
5
|
+
import { BehaviorSubject, combineLatest, } from 'rxjs';
|
|
5
6
|
import { filter, map, shareReplay, switchMap, } from 'rxjs/operators';
|
|
6
7
|
import { EngineDebugger, operatorList, RulesEngine, } from '../../engine/index';
|
|
7
8
|
import { selectActiveRuleSets, selectAllRulesets, selectComponentsLinkedToRuleset, setRulesetsEntities, } from '../../stores';
|
|
@@ -13,7 +14,6 @@ export class RulesEngineRunnerService {
|
|
|
13
14
|
constructor(store, logger, engineConfig) {
|
|
14
15
|
this.store = store;
|
|
15
16
|
this.logger = logger;
|
|
16
|
-
this.subscription = new Subscription();
|
|
17
17
|
/** Observable of component linked to the component */
|
|
18
18
|
this.linkedComponents$ = new BehaviorSubject({});
|
|
19
19
|
/**
|
|
@@ -32,10 +32,10 @@ export class RulesEngineRunnerService {
|
|
|
32
32
|
]).pipe(map(([activeRulesets, linkedComponentsRulesetsIds]) => ([...activeRulesets, ...linkedComponentsRulesetsIds])));
|
|
33
33
|
this.events$ = this.ruleSets$.pipe(this.engine.getEventStream(), shareReplay(1));
|
|
34
34
|
this.upsertOperators(operatorList);
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
|
|
38
|
-
})
|
|
35
|
+
this.store.pipe(select(selectAllRulesets), takeUntilDestroyed()).subscribe((rulesets) => this.engine.upsertRulesets(rulesets));
|
|
36
|
+
this.events$.pipe(takeUntilDestroyed(), filter(() => this.enabled)).subscribe((events) => {
|
|
37
|
+
void this.executeActions(events);
|
|
38
|
+
});
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Execute the list of actions
|
|
@@ -98,10 +98,6 @@ export class RulesEngineRunnerService {
|
|
|
98
98
|
unregisterActionHandlers(...actionHandlers) {
|
|
99
99
|
actionHandlers.forEach((actionHandler) => this.actionHandlers.delete(actionHandler));
|
|
100
100
|
}
|
|
101
|
-
/** @inheritdoc */
|
|
102
|
-
ngOnDestroy() {
|
|
103
|
-
this.subscription.unsubscribe();
|
|
104
|
-
}
|
|
105
101
|
/**
|
|
106
102
|
* Enable temporary a rule set
|
|
107
103
|
* @param componentComputedName Name of the component to enable the ruleset for
|
|
@@ -133,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
133
129
|
type: Inject,
|
|
134
130
|
args: [RULES_ENGINE_OPTIONS]
|
|
135
131
|
}] }] });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bm5lci9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sYUFBYSxDQUFDO0FBSXJCLE9BQU8sRUFDTCxhQUFhLEdBQ2QsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBRWIsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBUXhCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsWUFBWSxFQUNaLFdBQVcsR0FDWixNQUFNLG9CQUFvQixDQUFDO0FBSTVCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLCtCQUErQixFQUMvQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLG9CQUFvQixHQUVyQixNQUFNLHVCQUF1QixDQUFDOzs7O0FBRy9CLE1BQU0sT0FBTyx3QkFBd0I7SUF3Qm5DLFlBQ21CLEtBQTJCLEVBQzNCLE1BQXFCLEVBQ0ksWUFBd0M7UUFGakUsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXpCOUIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSzVDLHNEQUFzRDtRQUM1QyxzQkFBaUIsR0FBK0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFXbEc7OztXQUdHO1FBQ2EsbUJBQWMsR0FBRyxJQUFJ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QU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1FBQzVDLElBQUksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO2tJQXpLVSx3QkFBd0Isb0VBMkJiLG9CQUFvQjtzSUEzQi9CLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBNEJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHNlbGVjdCxcbiAgU3RvcmUsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB0eXBlIHtcbiAgUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTG9nZ2VyU2VydmljZSxcbn0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB0eXBlIHtcbiAgQWN0aW9uQmxvY2ssXG4gIEZhY3QsXG4gIE9wZXJhdG9yLFxuICBSdWxlc2V0LFxuICBVbmFyeU9wZXJhdG9yLFxufSBmcm9tICcuLi8uLi9lbmdpbmUvaW5kZXgnO1xuaW1wb3J0IHtcbiAgRW5naW5lRGVidWdnZXIsXG4gIG9wZXJhdG9yTGlzdCxcbiAgUnVsZXNFbmdpbmUsXG59IGZyb20gJy4uLy4uL2VuZ2luZS9pbmRleCc7XG5pbXBvcnQgdHlwZSB7XG4gIFJ1bGVzZXRzU3RvcmUsXG59IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5pbXBvcnQge1xuICBzZWxlY3RBY3RpdmVSdWxlU2V0cyxcbiAgc2VsZWN0QWxsUnVsZXNldHMsXG4gIHNlbGVjdENvbXBvbmVudHNMaW5rZWRUb1J1bGVzZXQsXG4gIHNldFJ1bGVzZXRzRW50aXRpZXMsXG59IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5pbXBvcnQge1xuICBSVUxFU19FTkdJTkVfT1BUSU9OUyxcbiAgUnVsZXNFbmdpbmVTZXJ2aWNlT3B0aW9ucyxcbn0gZnJvbSAnLi4vcnVsZXMtZW5naW5lLnRva2VuJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bGVzRW5naW5lUnVubmVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLyoqIFJ1bGVzZXRzIHRvIHJlc3RyaWN0IHRoZSBleGVjdXRpb24gb2YgdGhlIGVuZ2luZSAqL1xuICBwcm90ZWN0ZWQgcnVsZVNldHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPjtcblxuICAvKiogT2JzZXJ2YWJsZSBvZiBjb21wb25lbnQgbGlua2VkIHRvIHRoZSBjb21wb25lbnQgKi9cbiAgcHJvdGVjdGVkIGxpbmtlZENvbXBvbmVudHMkOiBCZWhhdmlvclN1YmplY3Q8eyBba2V5OiBzdHJpbmddOiBudW1iZXIgfT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcblxuICAvKiogTWFwIG9mIGVuZ2luZXMgZGVkaWNhdGVkIHRvIGVhY2ggcnVsZSBzZXRzICovXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU6IFJ1bGVzRW5naW5lO1xuXG4gIC8qKiBzdHJlYW0gb2YgdGhlIHdob2xlIHJ1bGVzZXQgcmVzdWx0cyAqL1xuICBwdWJsaWMgZXZlbnRzJDogT2JzZXJ2YWJsZTxBY3Rpb25CbG9ja1tdPjtcblxuICAvKiogRW5hYmxlIGFjdGlvbiBleGVjdXRpb24gb24gbmV3IHN0YXRlIGNoYW5nZSAqL1xuICBwdWJsaWMgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBhY3Rpb24gaGFuZGxlcnNcbiAgICogQGRlcHJlY2F0ZWQgd2lsbCBiZWNvbWUgcHJvdGVjdGVkIGluIE90dGVyIHYxMywgaW5zdGVhZCB1c2Uge0BsaW5rIHJlZ2lzdGVyQWN0aW9uSGFuZGxlcnN9XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uSGFuZGxlcnMgPSBuZXcgU2V0PFJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlcj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxSdWxlc2V0c1N0b3JlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJVTEVTX0VOR0lORV9PUFRJT05TKSBlbmdpbmVDb25maWc/OiBSdWxlc0VuZ2luZVNlcnZpY2VPcHRpb25zKSB7XG4gICAgdGhpcy5lbmFibGVkID0gIWVuZ2luZUNvbmZpZz8uZHJ5UnVuO1xuICAgIHRoaXMuZW5naW5lID0gbmV3IFJ1bGVzRW5naW5lKHtcbiAgICAgIGRlYnVnZ2VyOiBlbmdpbmVDb25maWc/LmRlYnVnID8gbmV3IEVuZ2luZURlYnVnZ2VyKHsgZXZlbnRzU3RhY2tMaW1pdDogZW5naW5lQ29uZmlnPy5kZWJ1Z0V2ZW50c1N0YWNrTGltaXQgfSkgOiB1bmRlZmluZWQsXG4gICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyXG4gICAgfSk7XG4gICAgdGhpcy5ydWxlU2V0cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0QWN0aXZlUnVsZVNldHMpKSxcbiAgICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChsaW5rZWRDb21wb25lbnRzTmFtZXNNYXApID0+IHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgICBzZWxlY3Qoc2VsZWN0Q29tcG9uZW50c0xpbmtlZFRvUnVsZXNldCksXG4gICAgICAgICAgbWFwKChydWxlc2V0c1dpdGhMaW5rZWRDb21wb25lbnRzTWFwKSA9PlxuICAgICAgICAgICAgT2JqZWN0LmtleXMocnVsZXNldHNXaXRoTGlua2VkQ29tcG9uZW50c01hcC5vcikuZmlsdGVyKChydWxlc2V0SWQpID0+XG4gICAgICAgICAgICAgIHJ1bGVzZXRzV2l0aExpbmtlZENvbXBvbmVudHNNYXAub3JbcnVsZXNldElkXS5zb21lKChjb21wb25lbnRJZCkgPT4gbGlua2VkQ29tcG9uZW50c05hbWVzTWFwW2NvbXBvbmVudElkXSA+IDApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApKVxuICAgICAgKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFthY3RpdmVSdWxlc2V0cywgbGlua2VkQ29tcG9uZW50c1J1bGVzZXRzSWRzXSkgPT4gKFsuLi5hY3RpdmVSdWxlc2V0cywgLi4ubGlua2VkQ29tcG9uZW50c1J1bGVzZXRzSWRzXSkpXG4gICAgKTtcblxuICAgIHRoaXMuZXZlbnRzJCA9IHRoaXMucnVsZVNldHMkLnBpcGUoXG4gICAgICB0aGlzLmVuZ2luZS5nZXRFdmVudFN0cmVhbTxBY3Rpb25CbG9jaz4oKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcblxuICAgIHRoaXMudXBzZXJ0T3BlcmF0b3JzKG9wZXJhdG9yTGlzdCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnBpcGUoXG4gICAgICAgIHNlbGVjdChzZWxlY3RBbGxSdWxlc2V0cylcbiAgICAgICkuc3Vic2NyaWJlKChydWxlc2V0czogUnVsZXNldFtdKSA9PiB0aGlzLmVuZ2luZS51cHNlcnRSdWxlc2V0cyhydWxlc2V0cykpXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuZXZlbnRzJC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLmVuYWJsZWQpKS5zdWJzY3JpYmUoYXN5bmMgKGV2ZW50cykgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVBY3Rpb25zKGV2ZW50cyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqIEBwYXJhbSBhY3Rpb25zXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgZXhlY3V0ZUFjdGlvbnMoYWN0aW9uczogQWN0aW9uQmxvY2tbXSkge1xuICAgIGNvbnN0IGFjdGlvbkhhbmRsZXJzID0gWy4uLnRoaXMuYWN0aW9uSGFuZGxlcnNdO1xuXG4gICAgY29uc3Qgc3VwcG9ydGVkQWN0aW9ucyA9IG5ldyBTZXQoYWN0aW9uSGFuZGxlcnMuZmxhdE1hcCgoaGFuZGxlcikgPT4gaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9ucykpO1xuXG4gICAgY29uc3QgYWN0aW9uTWFwcyA9IGFjdGlvbnNcbiAgICAgIC5maWx0ZXIoKGFjdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBpc0tub3duID0gc3VwcG9ydGVkQWN0aW9ucy5oYXMoYWN0aW9uLmFjdGlvblR5cGUpO1xuICAgICAgICBpZiAoIWlzS25vd24pIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBUaGUgYWN0aW9uICR7YWN0aW9uLmFjdGlvblR5cGV9IGRvZXMgbm90IGhhdmUgcmVnaXN0ZXJlZCBoYW5kbGVyYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzS25vd247XG4gICAgICB9KVxuICAgICAgLnJlZHVjZSgoYWNjLCBhY3Rpb24pID0+IHtcbiAgICAgICAgYWNjW2FjdGlvbi5hY3Rpb25UeXBlXSB8fD0gW107XG4gICAgICAgIGFjY1thY3Rpb24uYWN0aW9uVHlwZV0ucHVzaChhY3Rpb24pO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgQWN0aW9uQmxvY2tbXT4pO1xuXG4gICAgY29uc3QgaGFuZGxpbmcgPSBhY3Rpb25IYW5kbGVyc1xuICAgICAgLm1hcCgoaGFuZGxlcikgPT5cbiAgICAgICAgaGFuZGxlci5leGVjdXRlQWN0aW9ucyhcbiAgICAgICAgICBoYW5kbGVyLnN1cHBvcnRpbmdBY3Rpb25zXG4gICAgICAgICAgICAuZmlsdGVyKChzdXBwb3J0ZWRBY3Rpb24pID0+IGFjdGlvbk1hcHNbc3VwcG9ydGVkQWN0aW9uXSlcbiAgICAgICAgICAgIC5yZWR1Y2U8QWN0aW9uQmxvY2tbXT4oKGFjYywgc3VwcG9ydGVkQWN0aW9uKSA9PiBhY2MuY29uY2F0KGFjdGlvbk1hcHNbc3VwcG9ydGVkQWN0aW9uXSksIFtdKVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaGFuZGxpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgZmFjdCBpbiB0aGUgcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBmYWN0cyBmYWN0IGxpc3QgdG8gYWRkIC8gdXBkYXRlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0RmFjdHMoZmFjdHM6IEZhY3Q8dW5rbm93bj4gfCBGYWN0PHVua25vd24+W10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRGYWN0cyhmYWN0cyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBvcGVyYXRvciBpbiB0aGUgcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBvcGVyYXRvcnMgb3BlcmF0b3IgbGlzdCB0byBhZGQgLyB1cGRhdGVcbiAgICovXG4gIHB1YmxpYyB1cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JzOiAoT3BlcmF0b3I8YW55LCBhbnk+IHwgVW5hcnlPcGVyYXRvcjxhbnk+KVtdKSB7XG4gICAgdGhpcy5lbmdpbmUudXBzZXJ0T3BlcmF0b3JzKG9wZXJhdG9ycyk7XG4gIH1cblxuICAvKipcbiAgICogVXBzZXJ0IGEgbGlzdCBvZiBSdWxlU2V0cyB0byBiZSBydW4gaW4gdGhlIHJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gcnVsZVNldHNcbiAgICovXG4gIHB1YmxpYyB1cHNlcnRSdWxlc2V0cyhydWxlU2V0czogUnVsZXNldFtdKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzZXRSdWxlc2V0c0VudGl0aWVzKHsgZW50aXRpZXM6IHJ1bGVTZXRzIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYWN0aW9uIGhhbmRsZXJzIGluIHRoZSBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIGFjdGlvbkhhbmRsZXJzXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJBY3Rpb25IYW5kbGVycyguLi5hY3Rpb25IYW5kbGVyczogUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyW10pIHtcbiAgICBhY3Rpb25IYW5kbGVycy5mb3JFYWNoKChhY3Rpb25IYW5kbGVyKSA9PiB0aGlzLmFjdGlvbkhhbmRsZXJzLmFkZChhY3Rpb25IYW5kbGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFjdGlvbiBoYW5kbGVycyBpbiB0aGUgcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBhY3Rpb25IYW5kbGVyc1xuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBY3Rpb25IYW5kbGVycyguLi5hY3Rpb25IYW5kbGVyczogUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyW10pIHtcbiAgICBhY3Rpb25IYW5kbGVycy5mb3JFYWNoKChhY3Rpb25IYW5kbGVyKSA9PiB0aGlzLmFjdGlvbkhhbmRsZXJzLmRlbGV0ZShhY3Rpb25IYW5kbGVyKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlIHRlbXBvcmFyeSBhIHJ1bGUgc2V0XG4gICAqIEBwYXJhbSBjb21wb25lbnRDb21wdXRlZE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIGVuYWJsZSB0aGUgcnVsZXNldCBmb3JcbiAgICovXG4gIHB1YmxpYyBlbmFibGVSdWxlU2V0Rm9yKGNvbXBvbmVudENvbXB1dGVkTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3TWFwID0gdGhpcy5saW5rZWRDb21wb25lbnRzJC52YWx1ZTtcbiAgICBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSA9IG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID8gbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gKyAxIDogMTtcbiAgICB0aGlzLmxpbmtlZENvbXBvbmVudHMkLm5leHQobmV3TWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRlbXBvcmFyeSBhIHJ1bGUgc2V0XG4gICAqIEBwYXJhbSBjb21wb25lbnRDb21wdXRlZE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIGRpc2FibGUgdGhlIHJ1bGVzZXQgZm9yXG4gICAqL1xuICBwdWJsaWMgZGlzYWJsZVJ1bGVTZXRGb3IoY29tcG9uZW50Q29tcHV0ZWROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdNYXAgPSB0aGlzLmxpbmtlZENvbXBvbmVudHMkLnZhbHVlO1xuICAgIGlmIChuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSA+IDApIHtcbiAgICAgIG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdLS07XG4gICAgICB0aGlzLmxpbmtlZENvbXBvbmVudHMkLm5leHQobmV3TWFwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bm5lci9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGFBQWEsQ0FBQztBQUlyQixPQUFPLEVBQ0wsYUFBYSxHQUNkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxHQUVkLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBUXhCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsWUFBWSxFQUNaLFdBQVcsR0FDWixNQUFNLG9CQUFvQixDQUFDO0FBSTVCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLCtCQUErQixFQUMvQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLG9CQUFvQixHQUVyQixNQUFNLHVCQUF1QixDQUFDOzs7O0FBRy9CLE1BQU0sT0FBTyx3QkFBd0I7SUFzQm5DLFlBQ21CLEtBQTJCLEVBQzNCLE1BQXFCLEVBQ0ksWUFBd0M7UUFGakUsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXBCeEMsc0RBQXNEO1FBQzVDLHNCQUFpQixHQUErQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQVdsRzs7O1dBR0c7UUFDYSxtQkFBYyxHQUFHLElBQUks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QUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO2tJQTlKVSx3QkFBd0Isb0VBeUJiLG9CQUFvQjtzSUF6Qi9CLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBMEJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0YWtlVW50aWxEZXN0cm95ZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIHNlbGVjdCxcbiAgU3RvcmUsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB0eXBlIHtcbiAgUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTG9nZ2VyU2VydmljZSxcbn0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBPYnNlcnZhYmxlLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFjdGlvbkJsb2NrLFxuICBGYWN0LFxuICBPcGVyYXRvcixcbiAgUnVsZXNldCxcbiAgVW5hcnlPcGVyYXRvcixcbn0gZnJvbSAnLi4vLi4vZW5naW5lL2luZGV4JztcbmltcG9ydCB7XG4gIEVuZ2luZURlYnVnZ2VyLFxuICBvcGVyYXRvckxpc3QsXG4gIFJ1bGVzRW5naW5lLFxufSBmcm9tICcuLi8uLi9lbmdpbmUvaW5kZXgnO1xuaW1wb3J0IHR5cGUge1xuICBSdWxlc2V0c1N0b3JlLFxufSBmcm9tICcuLi8uLi9zdG9yZXMnO1xuaW1wb3J0IHtcbiAgc2VsZWN0QWN0aXZlUnVsZVNldHMsXG4gIHNlbGVjdEFsbFJ1bGVzZXRzLFxuICBzZWxlY3RDb21wb25lbnRzTGlua2VkVG9SdWxlc2V0LFxuICBzZXRSdWxlc2V0c0VudGl0aWVzLFxufSBmcm9tICcuLi8uLi9zdG9yZXMnO1xuaW1wb3J0IHtcbiAgUlVMRVNfRU5HSU5FX09QVElPTlMsXG4gIFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnMsXG59IGZyb20gJy4uL3J1bGVzLWVuZ2luZS50b2tlbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSdWxlc0VuZ2luZVJ1bm5lclNlcnZpY2Uge1xuICAvKiogUnVsZXNldHMgdG8gcmVzdHJpY3QgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZW5naW5lICovXG4gIHByb3RlY3RlZCBydWxlU2V0cyQ6IE9ic2VydmFibGU8c3RyaW5nW10gfCB1bmRlZmluZWQ+O1xuXG4gIC8qKiBPYnNlcnZhYmxlIG9mIGNvbXBvbmVudCBsaW5rZWQgdG8gdGhlIGNvbXBvbmVudCAqL1xuICBwcm90ZWN0ZWQgbGlua2VkQ29tcG9uZW50cyQ6IEJlaGF2aW9yU3ViamVjdDx7IFtrZXk6IHN0cmluZ106IG51bWJlciB9PiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuXG4gIC8qKiBNYXAgb2YgZW5naW5lcyBkZWRpY2F0ZWQgdG8gZWFjaCBydWxlIHNldHMgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuZ2luZTogUnVsZXNFbmdpbmU7XG5cbiAgLyoqIHN0cmVhbSBvZiB0aGUgd2hvbGUgcnVsZXNldCByZXN1bHRzICovXG4gIHB1YmxpYyBldmVudHMkOiBPYnNlcnZhYmxlPEFjdGlvbkJsb2NrW10+O1xuXG4gIC8qKiBFbmFibGUgYWN0aW9uIGV4ZWN1dGlvbiBvbiBuZXcgc3RhdGUgY2hhbmdlICovXG4gIHB1YmxpYyBlbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjdGlvbiBoYW5kbGVyc1xuICAgKiBAZGVwcmVjYXRlZCB3aWxsIGJlY29tZSBwcm90ZWN0ZWQgaW4gT3R0ZXIgdjEzLCBpbnN0ZWFkIHVzZSB7QGxpbmsgcmVnaXN0ZXJBY3Rpb25IYW5kbGVyc31cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY3Rpb25IYW5kbGVycyA9IG5ldyBTZXQ8UnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IFN0b3JlPFJ1bGVzZXRzU3RvcmU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUlVMRVNfRU5HSU5FX09QVElPTlMpIGVuZ2luZUNvbmZpZz86IFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnMpIHtcbiAgICB0aGlzLmVuYWJsZWQgPSAhZW5naW5lQ29uZmlnPy5kcnlSdW47XG4gICAgdGhpcy5lbmdpbmUgPSBuZXcgUnVsZXNFbmdpbmUoe1xuICAgICAgZGVidWdnZXI6IGVuZ2luZUNvbmZpZz8uZGVidWcgPyBuZXcgRW5naW5lRGVidWdnZXIoeyBldmVudHNTdGFja0xpbWl0OiBlbmdpbmVDb25maWc/LmRlYnVnRXZlbnRzU3RhY2tMaW1pdCB9KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXJcbiAgICB9KTtcbiAgICB0aGlzLnJ1bGVTZXRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RBY3RpdmVSdWxlU2V0cykpLFxuICAgICAgdGhpcy5saW5rZWRDb21wb25lbnRzJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGxpbmtlZENvbXBvbmVudHNOYW1lc01hcCkgPT4gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICAgIHNlbGVjdChzZWxlY3RDb21wb25lbnRzTGlua2VkVG9SdWxlc2V0KSxcbiAgICAgICAgICBtYXAoKHJ1bGVzZXRzV2l0aExpbmtlZENvbXBvbmVudHNNYXApID0+XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhydWxlc2V0c1dpdGhMaW5rZWRDb21wb25lbnRzTWFwLm9yKS5maWx0ZXIoKHJ1bGVzZXRJZCkgPT5cbiAgICAgICAgICAgICAgcnVsZXNldHNXaXRoTGlua2VkQ29tcG9uZW50c01hcC5vcltydWxlc2V0SWRdLnNvbWUoKGNvbXBvbmVudElkKSA9PiBsaW5rZWRDb21wb25lbnRzTmFtZXNNYXBbY29tcG9uZW50SWRdID4gMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICkpXG4gICAgICApXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2FjdGl2ZVJ1bGVzZXRzLCBsaW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSA9PiAoWy4uLmFjdGl2ZVJ1bGVzZXRzLCAuLi5saW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSlcbiAgICApO1xuXG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ydWxlU2V0cyQucGlwZShcbiAgICAgIHRoaXMuZW5naW5lLmdldEV2ZW50U3RyZWFtPEFjdGlvbkJsb2NrPigpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JMaXN0KTtcblxuICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgIHNlbGVjdChzZWxlY3RBbGxSdWxlc2V0cyksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICkuc3Vic2NyaWJlKChydWxlc2V0czogUnVsZXNldFtdKSA9PiB0aGlzLmVuZ2luZS51cHNlcnRSdWxlc2V0cyhydWxlc2V0cykpO1xuICAgIHRoaXMuZXZlbnRzJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpLCBmaWx0ZXIoKCkgPT4gdGhpcy5lbmFibGVkKSkuc3Vic2NyaWJlKChldmVudHMpID0+IHtcbiAgICAgIHZvaWQgdGhpcy5leGVjdXRlQWN0aW9ucyhldmVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKiBAcGFyYW0gYWN0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbkJsb2NrW10pIHtcbiAgICBjb25zdCBhY3Rpb25IYW5kbGVycyA9IFsuLi50aGlzLmFjdGlvbkhhbmRsZXJzXTtcblxuICAgIGNvbnN0IHN1cHBvcnRlZEFjdGlvbnMgPSBuZXcgU2V0KGFjdGlvbkhhbmRsZXJzLmZsYXRNYXAoKGhhbmRsZXIpID0+IGhhbmRsZXIuc3VwcG9ydGluZ0FjdGlvbnMpKTtcblxuICAgIGNvbnN0IGFjdGlvbk1hcHMgPSBhY3Rpb25zXG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgaXNLbm93biA9IHN1cHBvcnRlZEFjdGlvbnMuaGFzKGFjdGlvbi5hY3Rpb25UeXBlKTtcbiAgICAgICAgaWYgKCFpc0tub3duKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihgVGhlIGFjdGlvbiAke2FjdGlvbi5hY3Rpb25UeXBlfSBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgaGFuZGxlcmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0tub3duO1xuICAgICAgfSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgYWN0aW9uKSA9PiB7XG4gICAgICAgIGFjY1thY3Rpb24uYWN0aW9uVHlwZV0gfHw9IFtdO1xuICAgICAgICBhY2NbYWN0aW9uLmFjdGlvblR5cGVdLnB1c2goYWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIEFjdGlvbkJsb2NrW10+KTtcblxuICAgIGNvbnN0IGhhbmRsaW5nID0gYWN0aW9uSGFuZGxlcnNcbiAgICAgIC5tYXAoKGhhbmRsZXIpID0+XG4gICAgICAgIGhhbmRsZXIuZXhlY3V0ZUFjdGlvbnMoXG4gICAgICAgICAgaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcigoc3VwcG9ydGVkQWN0aW9uKSA9PiBhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pXG4gICAgICAgICAgICAucmVkdWNlPEFjdGlvbkJsb2NrW10+KChhY2MsIHN1cHBvcnRlZEFjdGlvbikgPT4gYWNjLmNvbmNhdChhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pLCBbXSlcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGhhbmRsaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IGZhY3QgaW4gdGhlIHJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gZmFjdHMgZmFjdCBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydEZhY3RzKGZhY3RzOiBGYWN0PHVua25vd24+IHwgRmFjdDx1bmtub3duPltdKSB7XG4gICAgdGhpcy5lbmdpbmUudXBzZXJ0RmFjdHMoZmFjdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgb3BlcmF0b3IgaW4gdGhlIHJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gb3BlcmF0b3JzIG9wZXJhdG9yIGxpc3QgdG8gYWRkIC8gdXBkYXRlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0T3BlcmF0b3JzKG9wZXJhdG9yczogKE9wZXJhdG9yPGFueSwgYW55PiB8IFVuYXJ5T3BlcmF0b3I8YW55PilbXSkge1xuICAgIHRoaXMuZW5naW5lLnVwc2VydE9wZXJhdG9ycyhvcGVyYXRvcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwc2VydCBhIGxpc3Qgb2YgUnVsZVNldHMgdG8gYmUgcnVuIGluIHRoZSBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIHJ1bGVTZXRzXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0UnVsZXNldHMocnVsZVNldHM6IFJ1bGVzZXRbXSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2V0UnVsZXNldHNFbnRpdGllcyh7IGVudGl0aWVzOiBydWxlU2V0cyB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFjdGlvbiBoYW5kbGVycyBpbiB0aGUgcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBhY3Rpb25IYW5kbGVyc1xuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyQWN0aW9uSGFuZGxlcnMoLi4uYWN0aW9uSGFuZGxlcnM6IFJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlcltdKSB7XG4gICAgYWN0aW9uSGFuZGxlcnMuZm9yRWFjaCgoYWN0aW9uSGFuZGxlcikgPT4gdGhpcy5hY3Rpb25IYW5kbGVycy5hZGQoYWN0aW9uSGFuZGxlcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhY3Rpb24gaGFuZGxlcnMgaW4gdGhlIHJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gYWN0aW9uSGFuZGxlcnNcbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQWN0aW9uSGFuZGxlcnMoLi4uYWN0aW9uSGFuZGxlcnM6IFJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlcltdKSB7XG4gICAgYWN0aW9uSGFuZGxlcnMuZm9yRWFjaCgoYWN0aW9uSGFuZGxlcikgPT4gdGhpcy5hY3Rpb25IYW5kbGVycy5kZWxldGUoYWN0aW9uSGFuZGxlcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0ZW1wb3JhcnkgYSBydWxlIHNldFxuICAgKiBAcGFyYW0gY29tcG9uZW50Q29tcHV0ZWROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCB0byBlbmFibGUgdGhlIHJ1bGVzZXQgZm9yXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlUnVsZVNldEZvcihjb21wb25lbnRDb21wdXRlZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5ld01hcCA9IHRoaXMubGlua2VkQ29tcG9uZW50cyQudmFsdWU7XG4gICAgbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gPSBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSA/IG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdICsgMSA6IDE7XG4gICAgdGhpcy5saW5rZWRDb21wb25lbnRzJC5uZXh0KG5ld01hcCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSB0ZW1wb3JhcnkgYSBydWxlIHNldFxuICAgKiBAcGFyYW0gY29tcG9uZW50Q29tcHV0ZWROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCB0byBkaXNhYmxlIHRoZSBydWxlc2V0IGZvclxuICAgKi9cbiAgcHVibGljIGRpc2FibGVSdWxlU2V0Rm9yKGNvbXBvbmVudENvbXB1dGVkTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3TWFwID0gdGhpcy5saW5rZWRDb21wb25lbnRzJC52YWx1ZTtcbiAgICBpZiAobmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gPiAwKSB7XG4gICAgICBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXS0tO1xuICAgICAgdGhpcy5saW5rZWRDb21wb25lbnRzJC5uZXh0KG5ld01hcCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Pipe, NgModule, InjectionToken, Injectable, Optional, Inject } from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Pipe, NgModule, InjectionToken, Injectable, Optional, Inject, inject, DestroyRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule, JsonPipe } from '@angular/common';
|
|
5
|
-
import { Subject, of, from, ReplaySubject, Observable, combineLatest, BehaviorSubject, merge, firstValueFrom,
|
|
5
|
+
import { Subject, of, from, ReplaySubject, Observable, combineLatest, BehaviorSubject, merge, firstValueFrom, fromEvent } from 'rxjs';
|
|
6
6
|
import { switchMap, delay, startWith, mergeMap, map, catchError, withLatestFrom, concatMap, tap, share, shareReplay, pairwise, distinctUntilChanged, takeUntil, filter, scan } from 'rxjs/operators';
|
|
7
7
|
import * as i1$2 from '@ngrx/store';
|
|
8
8
|
import { createAction, props, on, createReducer, StoreModule, createFeatureSelector, createSelector, select } from '@ngrx/store';
|
|
@@ -12,6 +12,7 @@ import { asyncProps, fromApiEffectSwitchMap, asyncStoreItemAdapter, computeItemI
|
|
|
12
12
|
import * as i1$1 from '@ngrx/effects';
|
|
13
13
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
14
14
|
import { createEntityAdapter } from '@ngrx/entity';
|
|
15
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
15
16
|
import { JSONPath } from 'jsonpath-plus';
|
|
16
17
|
|
|
17
18
|
class RuleConditionPresComponent {
|
|
@@ -1963,7 +1964,6 @@ class RulesEngineRunnerService {
|
|
|
1963
1964
|
constructor(store, logger, engineConfig) {
|
|
1964
1965
|
this.store = store;
|
|
1965
1966
|
this.logger = logger;
|
|
1966
|
-
this.subscription = new Subscription();
|
|
1967
1967
|
/** Observable of component linked to the component */
|
|
1968
1968
|
this.linkedComponents$ = new BehaviorSubject({});
|
|
1969
1969
|
/**
|
|
@@ -1982,10 +1982,10 @@ class RulesEngineRunnerService {
|
|
|
1982
1982
|
]).pipe(map(([activeRulesets, linkedComponentsRulesetsIds]) => ([...activeRulesets, ...linkedComponentsRulesetsIds])));
|
|
1983
1983
|
this.events$ = this.ruleSets$.pipe(this.engine.getEventStream(), shareReplay(1));
|
|
1984
1984
|
this.upsertOperators(operatorList);
|
|
1985
|
-
this.
|
|
1986
|
-
this.
|
|
1987
|
-
|
|
1988
|
-
})
|
|
1985
|
+
this.store.pipe(select(selectAllRulesets), takeUntilDestroyed()).subscribe((rulesets) => this.engine.upsertRulesets(rulesets));
|
|
1986
|
+
this.events$.pipe(takeUntilDestroyed(), filter(() => this.enabled)).subscribe((events) => {
|
|
1987
|
+
void this.executeActions(events);
|
|
1988
|
+
});
|
|
1989
1989
|
}
|
|
1990
1990
|
/**
|
|
1991
1991
|
* Execute the list of actions
|
|
@@ -2048,10 +2048,6 @@ class RulesEngineRunnerService {
|
|
|
2048
2048
|
unregisterActionHandlers(...actionHandlers) {
|
|
2049
2049
|
actionHandlers.forEach((actionHandler) => this.actionHandlers.delete(actionHandler));
|
|
2050
2050
|
}
|
|
2051
|
-
/** @inheritdoc */
|
|
2052
|
-
ngOnDestroy() {
|
|
2053
|
-
this.subscription.unsubscribe();
|
|
2054
|
-
}
|
|
2055
2051
|
/**
|
|
2056
2052
|
* Enable temporary a rule set
|
|
2057
2053
|
* @param componentComputedName Name of the component to enable the ruleset for
|
|
@@ -2349,9 +2345,9 @@ class RulesEngineDevtoolsMessageService {
|
|
|
2349
2345
|
constructor(rulesEngineDevtools, logger, options) {
|
|
2350
2346
|
this.rulesEngineDevtools = rulesEngineDevtools;
|
|
2351
2347
|
this.logger = logger;
|
|
2352
|
-
this.subscriptions = new Subscription();
|
|
2353
2348
|
this.forceEmitRulesEngineReport = new BehaviorSubject(undefined);
|
|
2354
2349
|
this.sendMessage = (sendOtterMessage);
|
|
2350
|
+
this.destroyRef = inject(DestroyRef);
|
|
2355
2351
|
this.serializeError = (error) => error instanceof Error ? error.toString() : error;
|
|
2356
2352
|
this.options = {
|
|
2357
2353
|
...OTTER_RULES_ENGINE_DEVTOOLS_DEFAULT_OPTIONS,
|
|
@@ -2413,10 +2409,13 @@ class RulesEngineDevtoolsMessageService {
|
|
|
2413
2409
|
*/
|
|
2414
2410
|
startRulesEngineReport() {
|
|
2415
2411
|
if (this.rulesEngineDevtools.rulesEngineReport$) {
|
|
2416
|
-
|
|
2412
|
+
combineLatest([
|
|
2413
|
+
this.forceEmitRulesEngineReport,
|
|
2414
|
+
this.rulesEngineDevtools.rulesEngineReport$
|
|
2415
|
+
]).pipe(takeUntilDestroyed(this.destroyRef)).subscribe(([, report]) => {
|
|
2417
2416
|
const sanitizedReport = { ...report, events: report.events.map((reportEvents) => this.serializeReportEvent(reportEvents)) };
|
|
2418
2417
|
this.sendMessage('rulesEngineEvents', sanitizedReport);
|
|
2419
|
-
})
|
|
2418
|
+
});
|
|
2420
2419
|
}
|
|
2421
2420
|
}
|
|
2422
2421
|
/**
|
|
@@ -2429,11 +2428,7 @@ class RulesEngineDevtoolsMessageService {
|
|
|
2429
2428
|
/** Activate the Otter DevTools */
|
|
2430
2429
|
activate() {
|
|
2431
2430
|
this.startRulesEngineReport();
|
|
2432
|
-
|
|
2433
|
-
}
|
|
2434
|
-
/** @inheritDoc */
|
|
2435
|
-
ngOnDestroy() {
|
|
2436
|
-
this.subscriptions.unsubscribe();
|
|
2431
|
+
fromEvent(window, 'message').pipe(takeUntilDestroyed(this.destroyRef), filterMessageContent(isRulesEngineMessage)).subscribe((e) => this.handleEvents(e));
|
|
2437
2432
|
}
|
|
2438
2433
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RulesEngineDevtoolsMessageService, deps: [{ token: OtterRulesEngineDevtools }, { token: i2.LoggerService }, { token: OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2439
2434
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RulesEngineDevtoolsMessageService, providedIn: 'root' }); }
|