@firestitch/common 12.4.2 → 12.5.1
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/bundles/firestitch-common.umd.js +86 -50
- package/bundles/firestitch-common.umd.js.map +1 -1
- package/esm2015/libs/util/queue/index.js +3 -2
- package/esm2015/libs/util/queue/operation.js +1 -1
- package/esm2015/libs/util/queue/queue-stats.js +2 -0
- package/esm2015/libs/util/queue/queue.js +80 -52
- package/fesm2015/firestitch-common.js +78 -50
- package/fesm2015/firestitch-common.js.map +1 -1
- package/libs/util/queue/index.d.ts +2 -1
- package/libs/util/queue/operation.d.ts +1 -1
- package/libs/util/queue/queue-stats.d.ts +5 -0
- package/libs/util/queue/queue.d.ts +13 -6
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './queue';
|
|
2
|
-
export
|
|
3
|
-
|
|
2
|
+
export * from './queue.enum';
|
|
3
|
+
export * from './queue-stats';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL3F1ZXVlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9xdWV1ZSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXVlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWV1ZS1zdGF0cyc7XG4iXX0=
|
|
@@ -12,4 +12,4 @@ export class Operation {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9xdWV1ZS9vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHL0IsTUFBTSxPQUFPLFNBQVM7SUFNcEIsWUFBWSxNQUF1QixFQUFFLElBQWE7UUFGM0MsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFHNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakMsSUFBSSxNQUFNLFlBQVksVUFBVSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnLi4vZ3VpZCc7XG5cblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbiB7XG5cbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHVibGljIHRhcmdldDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdWJsaWMgcmVhZHkkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcih0YXJnZXQ6IE9ic2VydmFibGU8YW55PiwgbmFtZT86IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWUgPyBuYW1lIDogZ3VpZCgpO1xuXG4gICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldCA9IG9mKHRhcmdldCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtc3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL3F1ZXVlL3F1ZXVlLXN0YXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFF1ZXVlU3RhdHMge1xuICB0b3RhbDogbnVtYmVyO1xuICBjb21wbGV0ZWQ6IG51bWJlcjtcbiAgZXJyb3JzOiBzdHJpbmdbXTtcbn0iXX0=
|
|
@@ -1,24 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { of, Subject } from 'rxjs';
|
|
2
|
+
import { delay, finalize, map, take, takeUntil } from 'rxjs/operators';
|
|
2
3
|
import { Operation } from './operation';
|
|
3
4
|
import { QueueState } from './queue.enum';
|
|
4
|
-
import { delay, takeUntil } from 'rxjs/operators';
|
|
5
5
|
export class Queue {
|
|
6
6
|
constructor(_limit = Infinity) {
|
|
7
7
|
this._limit = _limit;
|
|
8
|
+
this._queueStats = {
|
|
9
|
+
completed: 0,
|
|
10
|
+
total: 0,
|
|
11
|
+
errors: [],
|
|
12
|
+
};
|
|
13
|
+
this._doneQueueStats = {
|
|
14
|
+
completed: 0,
|
|
15
|
+
total: 0,
|
|
16
|
+
errors: [],
|
|
17
|
+
};
|
|
18
|
+
this._completeQueueStats = {
|
|
19
|
+
completed: 0,
|
|
20
|
+
total: 0,
|
|
21
|
+
errors: [],
|
|
22
|
+
};
|
|
8
23
|
this._done = new Subject();
|
|
9
24
|
this._queue = [];
|
|
10
25
|
this._inProgress = [];
|
|
11
|
-
this._total = 0;
|
|
12
|
-
this._completed = 0;
|
|
13
|
-
this._errors = 0;
|
|
14
26
|
this._state = QueueState.Idle;
|
|
15
27
|
this._destroy$ = new Subject();
|
|
28
|
+
// if(_targets) {
|
|
29
|
+
// _targets.forEach((target) => {
|
|
30
|
+
// this.push(target);
|
|
31
|
+
// });
|
|
32
|
+
// }
|
|
16
33
|
}
|
|
17
34
|
get total() {
|
|
18
|
-
return this.
|
|
35
|
+
return this._queueStats.total;
|
|
19
36
|
}
|
|
20
37
|
get completed() {
|
|
21
|
-
return this.
|
|
38
|
+
return this._queueStats.completed;
|
|
22
39
|
}
|
|
23
40
|
get pending() {
|
|
24
41
|
return this._queue.length;
|
|
@@ -27,7 +44,7 @@ export class Queue {
|
|
|
27
44
|
return this._inProgress.length;
|
|
28
45
|
}
|
|
29
46
|
get errors() {
|
|
30
|
-
return this.
|
|
47
|
+
return this._queueStats.errors;
|
|
31
48
|
}
|
|
32
49
|
get state() {
|
|
33
50
|
return this._state;
|
|
@@ -52,30 +69,32 @@ export class Queue {
|
|
|
52
69
|
setLimit(value) {
|
|
53
70
|
this._limit = value;
|
|
54
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* @depreated
|
|
74
|
+
*/
|
|
55
75
|
subscribe(fun, err, complete) {
|
|
56
|
-
this.
|
|
57
|
-
.pipe(takeUntil(this._destroy$))
|
|
76
|
+
this.observe$
|
|
58
77
|
.subscribe(fun, err, complete);
|
|
59
78
|
}
|
|
79
|
+
get observe$() {
|
|
80
|
+
return this._done
|
|
81
|
+
.pipe(takeUntil(this._destroy$));
|
|
82
|
+
}
|
|
83
|
+
get complete$() {
|
|
84
|
+
if (!this.isProcessing()) {
|
|
85
|
+
return of({ total: 0, completed: 0, errors: [] });
|
|
86
|
+
}
|
|
87
|
+
return this.observe$
|
|
88
|
+
.pipe(take(1), map(() => (this._completeQueueStats)));
|
|
89
|
+
}
|
|
60
90
|
complete(fun, err, complete) {
|
|
61
|
-
|
|
62
|
-
if (!this.isProcessing()) {
|
|
63
|
-
observer.next();
|
|
64
|
-
observer.complete();
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
this.subscribe(() => {
|
|
68
|
-
observer.next();
|
|
69
|
-
observer.complete();
|
|
70
|
-
}, (error) => {
|
|
71
|
-
observer.error(error);
|
|
72
|
-
this.clear();
|
|
73
|
-
});
|
|
74
|
-
}).subscribe(fun, err, complete);
|
|
91
|
+
this.complete$.subscribe(fun, err, complete);
|
|
75
92
|
}
|
|
76
93
|
push(target, name) {
|
|
77
94
|
const operation = new Operation(target, name);
|
|
78
|
-
this.
|
|
95
|
+
this._queueStats.total++;
|
|
96
|
+
this._doneQueueStats.total++;
|
|
97
|
+
this._completeQueueStats.total++;
|
|
79
98
|
this._state = QueueState.Processing;
|
|
80
99
|
if (this._inProgress.length < this._limit) {
|
|
81
100
|
this._processOperation(operation);
|
|
@@ -87,51 +106,60 @@ export class Queue {
|
|
|
87
106
|
}
|
|
88
107
|
clear() {
|
|
89
108
|
this._queue = [];
|
|
90
|
-
this._total = 0;
|
|
91
|
-
this._errors = 0;
|
|
92
|
-
this._completed = 0;
|
|
93
109
|
this._state = QueueState.Idle;
|
|
94
|
-
this.
|
|
110
|
+
this._queueStats = {
|
|
111
|
+
total: 0,
|
|
112
|
+
errors: [],
|
|
113
|
+
completed: 0,
|
|
114
|
+
};
|
|
115
|
+
this._clearDoneQueueStats();
|
|
95
116
|
}
|
|
96
117
|
destroy() {
|
|
97
|
-
this.clear();
|
|
98
118
|
this._done.complete();
|
|
119
|
+
this.clear();
|
|
99
120
|
}
|
|
100
121
|
_processOperation(operation) {
|
|
101
122
|
this._inProgress.push(operation);
|
|
102
123
|
operation.target
|
|
103
124
|
.pipe(delay(200), // Hack to prevent extra quick proccess execution
|
|
104
|
-
|
|
125
|
+
finalize(() => {
|
|
126
|
+
const opIndex = this._inProgress.indexOf(operation);
|
|
127
|
+
this._inProgress.splice(opIndex, 1);
|
|
128
|
+
if (this.empty) {
|
|
129
|
+
this._state = QueueState.Idle;
|
|
130
|
+
this._done.next(this._doneQueueStats);
|
|
131
|
+
this._clearDoneQueueStats();
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
if (this._queue.length) {
|
|
135
|
+
const queueItem = this._queue.shift();
|
|
136
|
+
this._processOperation(queueItem);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}), takeUntil(this._destroy$)).subscribe({
|
|
105
140
|
next: (data) => {
|
|
106
141
|
operation.ready$.next(data);
|
|
107
142
|
},
|
|
108
143
|
error: (error) => {
|
|
109
|
-
|
|
110
|
-
this.
|
|
111
|
-
this.
|
|
144
|
+
this._queueStats.errors.push(error);
|
|
145
|
+
this._doneQueueStats.errors.push(error);
|
|
146
|
+
this._completeQueueStats.errors.push(error);
|
|
112
147
|
operation.ready$.error(error);
|
|
113
|
-
if (this.empty) {
|
|
114
|
-
this._state = QueueState.Idle;
|
|
115
|
-
this._done.error(error);
|
|
116
|
-
}
|
|
117
148
|
},
|
|
118
149
|
complete: () => {
|
|
119
|
-
|
|
120
|
-
this.
|
|
121
|
-
this.
|
|
150
|
+
this._queueStats.completed++;
|
|
151
|
+
this._doneQueueStats.completed++;
|
|
152
|
+
this._completeQueueStats.completed++;
|
|
122
153
|
operation.ready$.complete();
|
|
123
|
-
if (this.empty) {
|
|
124
|
-
this._state = QueueState.Idle;
|
|
125
|
-
this._done.next();
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
if (this._queue.length) {
|
|
129
|
-
const queueItem = this._queue.shift();
|
|
130
|
-
this._processOperation(queueItem);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
154
|
}
|
|
134
155
|
});
|
|
135
156
|
}
|
|
157
|
+
_clearDoneQueueStats() {
|
|
158
|
+
this._doneQueueStats = {
|
|
159
|
+
total: 0,
|
|
160
|
+
errors: [],
|
|
161
|
+
completed: 0,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
136
164
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL3F1ZXVlL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE1BQU0sT0FBTyxLQUFLO0lBZWhCLFlBQW9CLFNBQVMsUUFBUTtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBYjdCLFVBQUssR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXRCLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUU5QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFWixXQUFNLEdBQWUsVUFBVSxDQUFDLElBQUksQ0FBQztRQUVyQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVBLENBQUM7SUFFekMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8s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Q0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDekI7WUFDSCxDQUFDO1lBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUVwQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBRWxCLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRTVCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ25CO3FCQUFNO29CQUNMLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7d0JBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDbkM7aUJBQ0Y7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSAnLi9vcGVyYXRpb24nO1xuaW1wb3J0IHsgUXVldWVTdGF0ZSB9IGZyb20gJy4vcXVldWUuZW51bSc7XG5pbXBvcnQgeyBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgUXVldWUge1xuXG4gIHByaXZhdGUgX2RvbmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX3F1ZXVlOiBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9pblByb2dyZXNzOiBPcGVyYXRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgX3RvdGFsID0gMDtcbiAgcHJpdmF0ZSBfY29tcGxldGVkID0gMDtcbiAgcHJpdmF0ZSBfZXJyb3JzID0gMDtcblxuICBwcml2YXRlIF9zdGF0ZTogUXVldWVTdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbGltaXQgPSBJbmZpbml0eSkge31cblxuICBnZXQgdG90YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsO1xuICB9XG5cbiAgZ2V0IGNvbXBsZXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGxldGVkO1xuICB9XG5cbiAgZ2V0IHBlbmRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBpblByb2dyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9pblByb2dyZXNzLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBlcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Vycm9ycztcbiAgfVxuXG4gIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gIH1cblxuICBnZXQgZW1wdHkoKSB7XG4gICAgcmV0dXJuICF0aGlzLl9xdWV1ZS5sZW5ndGggJiYgIXRoaXMuX2luUHJvZ3Jlc3MubGVuZ3RoXG4gIH1cblxuICBnZXQgcGVuZGluZ09wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZVxuICAgICAgLm1hcCgob3BlcmF0aW9uKSA9PiBvcGVyYXRpb24ubmFtZSk7XG4gIH1cblxuICBnZXQgaW5Qcm9ncmVzc09wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9pblByb2dyZXNzXG4gICAgICAubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1Byb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlID09PSBRdWV1ZVN0YXRlLlByb2Nlc3Npbmc7XG4gIH1cblxuICBwdWJsaWMgaXNJZGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSA9PT0gUXVldWVTdGF0ZS5JZGxlO1xuICB9XG5cbiAgcHVibGljIHNldExpbWl0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9saW1pdCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShmdW4sIGVycj8sIGNvbXBsZXRlPykge1xuICAgIHRoaXMuX2RvbmVcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShmdW4sIGVyciwgY29tcGxldGUpO1xuICB9XG5cbiAgcHVibGljIGNvbXBsZXRlKGZ1biwgZXJyPywgY29tcGxldGU/KSB7XG5cbiAgICBPYnNlcnZhYmxlLmNyZWF0ZShvYnNlcnZlciA9PiB7XG5cbiAgICAgIGlmICghdGhpcy5pc1Byb2Nlc3NpbmcoKSkge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBvYnNlcnZlci5uZXh0KCk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9KTtcbiAgICB9KS5zdWJzY3JpYmUoZnVuLCBlcnIsIGNvbXBsZXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBwdXNoKHRhcmdldCwgbmFtZT8pIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBuZXcgT3BlcmF0aW9uKHRhcmdldCwgbmFtZSk7XG5cbiAgICB0aGlzLl90b3RhbCsrO1xuICAgIHRoaXMuX3N0YXRlID0gUXVldWVTdGF0ZS5Qcm9jZXNzaW5nO1xuXG4gICAgaWYgKHRoaXMuX2luUHJvZ3Jlc3MubGVuZ3RoIDwgdGhpcy5fbGltaXQpIHtcbiAgICAgIHRoaXMuX3Byb2Nlc3NPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcXVldWUucHVzaChvcGVyYXRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBvcGVyYXRpb24ucmVhZHkkO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuX3F1ZXVlID0gW107XG4gICAgdGhpcy5fdG90YWwgPSAwO1xuICAgIHRoaXMuX2Vycm9ycyA9IDA7XG4gICAgdGhpcy5fY29tcGxldGVkID0gMDtcbiAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgICB0aGlzLl9kb25lID0gbmV3IFN1YmplY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLl9kb25lLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm9jZXNzT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKSB7XG4gICAgdGhpcy5faW5Qcm9ncmVzcy5wdXNoKG9wZXJhdGlvbik7XG5cbiAgICBvcGVyYXRpb24udGFyZ2V0XG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMjAwKSwgLy8gSGFjayB0byBwcmV2ZW50IGV4dHJhIHF1aWNrIHByb2NjZXNzIGV4ZWN1dGlvblxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xuICAgICAgICAgIG9wZXJhdGlvbi5yZWFkeSQubmV4dChkYXRhKTtcbiAgICAgICAgfSxcblxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3BJbmRleCA9IHRoaXMuX2luUHJvZ3Jlc3MuaW5kZXhPZihvcGVyYXRpb24pO1xuICAgICAgICAgIHRoaXMuX2luUHJvZ3Jlc3Muc3BsaWNlKG9wSW5kZXgsIDEpO1xuXG4gICAgICAgICAgdGhpcy5fZXJyb3JzKys7XG5cbiAgICAgICAgICBvcGVyYXRpb24ucmVhZHkkLmVycm9yKGVycm9yKTtcblxuICAgICAgICAgIGlmICh0aGlzLmVtcHR5KSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgICAgICAgICAgIHRoaXMuX2RvbmUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9wSW5kZXggPSB0aGlzLl9pblByb2dyZXNzLmluZGV4T2Yob3BlcmF0aW9uKTtcbiAgICAgICAgICB0aGlzLl9pblByb2dyZXNzLnNwbGljZShvcEluZGV4LCAxKTtcblxuICAgICAgICAgIHRoaXMuX2NvbXBsZXRlZCsrO1xuXG4gICAgICAgICAgb3BlcmF0aW9uLnJlYWR5JC5jb21wbGV0ZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuZW1wdHkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlID0gUXVldWVTdGF0ZS5JZGxlO1xuICAgICAgICAgICAgdGhpcy5fZG9uZS5uZXh0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9xdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgcXVldWVJdGVtID0gdGhpcy5fcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc09wZXJhdGlvbihxdWV1ZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL3F1ZXVlL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE1BQU0sT0FBTyxLQUFLO0lBMEJoQixZQUNVLFNBQVMsUUFBUTtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBekJuQixnQkFBVyxHQUFlO1lBQ2hDLFNBQVMsRUFBRSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFFTSxvQkFBZSxHQUFlO1lBQ3BDLFNBQVMsRUFBRSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFFTSx3QkFBbUIsR0FBZTtZQUN4QyxTQUFTLEVBQUUsQ0FBQztZQUNaLEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBRU0sVUFBSyxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDbEMsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBZSxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3JDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBTXRDLGlCQUFpQjtRQUNqQixtQ0FBbUM7UUFDbkMseUJBQXlCO1FBQ3pCLFNBQVM7UUFDVCxJQUFJO0lB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RSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBRXJDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxFQUFFO1lBQ1YsU0FBUyxFQUFFLENBQUM7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaW5hbGl6ZSwgbWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFF1ZXVlU3RhdHMgfSBmcm9tICcuL3F1ZXVlLXN0YXRzJztcbmltcG9ydCB7IFF1ZXVlU3RhdGUgfSBmcm9tICcuL3F1ZXVlLmVudW0nO1xuXG5cbmV4cG9ydCBjbGFzcyBRdWV1ZSB7XG5cbiAgcHJpdmF0ZSBfcXVldWVTdGF0czogUXVldWVTdGF0cyA9IHtcbiAgICBjb21wbGV0ZWQ6IDAsXG4gICAgdG90YWw6IDAsXG4gICAgZXJyb3JzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIF9kb25lUXVldWVTdGF0czogUXVldWVTdGF0cyA9IHtcbiAgICBjb21wbGV0ZWQ6IDAsXG4gICAgdG90YWw6IDAsXG4gICAgZXJyb3JzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIF9jb21wbGV0ZVF1ZXVlU3RhdHM6IFF1ZXVlU3RhdHMgPSB7XG4gICAgY29tcGxldGVkOiAwLFxuICAgIHRvdGFsOiAwLFxuICAgIGVycm9yczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBfZG9uZSA9IG5ldyBTdWJqZWN0PFF1ZXVlU3RhdHM+KCk7XG4gIHByaXZhdGUgX3F1ZXVlOiBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9pblByb2dyZXNzOiBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9zdGF0ZTogUXVldWVTdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbGltaXQgPSBJbmZpbml0eSxcbiAgICAvL3ByaXZhdGUgX3RhcmdldHM/OiBPYnNlcnZhYmxlPGFueT5bXSxcbiAgKSB7XG4gICAgLy8gaWYoX3RhcmdldHMpIHtcbiAgICAvLyAgIF90YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgIC8vICAgICB0aGlzLnB1c2godGFyZ2V0KTtcbiAgICAvLyAgIH0pOyBcbiAgICAvLyB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZVN0YXRzLnRvdGFsO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wbGV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlU3RhdHMuY29tcGxldGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluUHJvZ3Jlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luUHJvZ3Jlc3MubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlU3RhdHMuZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIHJldHVybiAhdGhpcy5fcXVldWUubGVuZ3RoICYmICF0aGlzLl9pblByb2dyZXNzLmxlbmd0aFxuICB9XG5cbiAgcHVibGljIGdldCBwZW5kaW5nT3BlcmF0aW9ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlXG4gICAgICAubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5Qcm9ncmVzc09wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9pblByb2dyZXNzXG4gICAgICAubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1Byb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlID09PSBRdWV1ZVN0YXRlLlByb2Nlc3Npbmc7XG4gIH1cblxuICBwdWJsaWMgaXNJZGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSA9PT0gUXVldWVTdGF0ZS5JZGxlO1xuICB9XG5cbiAgcHVibGljIHNldExpbWl0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9saW1pdCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWF0ZWRcbiAgICovXG4gIHB1YmxpYyBzdWJzY3JpYmUoZnVuLCBlcnI/LCBjb21wbGV0ZT8pOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmUkXG4gICAgICAuc3Vic2NyaWJlKGZ1biwgZXJyLCBjb21wbGV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9ic2VydmUkKCk6IE9ic2VydmFibGU8UXVldWVTdGF0cz4ge1xuICAgIHJldHVybiB0aGlzLl9kb25lXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbXBsZXRlJCgpOiBPYnNlcnZhYmxlPFF1ZXVlU3RhdHM+IHtcbiAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nKCkpIHtcbiAgICAgIHJldHVybiBvZih7IHRvdGFsOiAwLCBjb21wbGV0ZWQ6IDAsIGVycm9yczogW10gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub2JzZXJ2ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoKCkgPT4gKHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cykpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZShmdW4sIGVycj8sIGNvbXBsZXRlPyk6IHZvaWQge1xuICAgIHRoaXMuY29tcGxldGUkLnN1YnNjcmliZShmdW4sIGVyciwgY29tcGxldGUpO1xuICB9XG5cbiAgcHVibGljIHB1c2godGFyZ2V0OiBPYnNlcnZhYmxlPGFueT4sIG5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBuZXcgT3BlcmF0aW9uKHRhcmdldCwgbmFtZSk7XG5cbiAgICB0aGlzLl9xdWV1ZVN0YXRzLnRvdGFsKys7XG4gICAgdGhpcy5fZG9uZVF1ZXVlU3RhdHMudG90YWwrKztcbiAgICB0aGlzLl9jb21wbGV0ZVF1ZXVlU3RhdHMudG90YWwrKztcbiAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuUHJvY2Vzc2luZztcblxuICAgIGlmICh0aGlzLl9pblByb2dyZXNzLmxlbmd0aCA8IHRoaXMuX2xpbWl0KSB7XG4gICAgICB0aGlzLl9wcm9jZXNzT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3F1ZXVlLnB1c2gob3BlcmF0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3BlcmF0aW9uLnJlYWR5JDtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgIHRoaXMuX3N0YXRlID0gUXVldWVTdGF0ZS5JZGxlOyAgICAgICBcbiAgICB0aGlzLl9xdWV1ZVN0YXRzID0ge1xuICAgICAgdG90YWw6IDAsXG4gICAgICBlcnJvcnM6IFtdLFxuICAgICAgY29tcGxldGVkOiAwLFxuICAgIH07XG4gICAgdGhpcy5fY2xlYXJEb25lUXVldWVTdGF0cygpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7ICAgIFxuICAgIHRoaXMuX2RvbmUuY29tcGxldGUoKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm9jZXNzT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5faW5Qcm9ncmVzcy5wdXNoKG9wZXJhdGlvbik7XG5cbiAgICBvcGVyYXRpb24udGFyZ2V0XG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMjAwKSwgLy8gSGFjayB0byBwcmV2ZW50IGV4dHJhIHF1aWNrIHByb2NjZXNzIGV4ZWN1dGlvblxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3BJbmRleCA9IHRoaXMuX2luUHJvZ3Jlc3MuaW5kZXhPZihvcGVyYXRpb24pO1xuICAgICAgICAgIHRoaXMuX2luUHJvZ3Jlc3Muc3BsaWNlKG9wSW5kZXgsIDEpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICh0aGlzLmVtcHR5KSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgICAgICAgICAgIHRoaXMuX2RvbmUubmV4dCh0aGlzLl9kb25lUXVldWVTdGF0cyk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckRvbmVRdWV1ZVN0YXRzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9xdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgcXVldWVJdGVtID0gdGhpcy5fcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc09wZXJhdGlvbihxdWV1ZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgb3BlcmF0aW9uLnJlYWR5JC5uZXh0KGRhdGEpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcXVldWVTdGF0cy5lcnJvcnMucHVzaChlcnJvcik7XG4gICAgICAgICAgdGhpcy5fZG9uZVF1ZXVlU3RhdHMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgIHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cy5lcnJvcnMucHVzaChlcnJvcik7XG5cbiAgICAgICAgICBvcGVyYXRpb24ucmVhZHkkLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLl9xdWV1ZVN0YXRzLmNvbXBsZXRlZCsrO1xuICAgICAgICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzLmNvbXBsZXRlZCsrO1xuICAgICAgICAgIHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cy5jb21wbGV0ZWQrKztcblxuICAgICAgICAgIG9wZXJhdGlvbi5yZWFkeSQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jbGVhckRvbmVRdWV1ZVN0YXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzID0ge1xuICAgICAgdG90YWw6IDAsXG4gICAgICBlcnJvcnM6IFtdLFxuICAgICAgY29tcGxldGVkOiAwLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,7 +3,7 @@ import { Injectable, Pipe, LOCALE_ID, Inject, Directive, HostListener, Optional,
|
|
|
3
3
|
import { CurrencyPipe, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i1 from '@angular/material/input';
|
|
5
5
|
import { Subject, Observable, of, combineLatest, iif, throwError, timer, fromEvent, merge } from 'rxjs';
|
|
6
|
-
import { takeUntil, delay, shareReplay, retryWhen, tap, concatMap, distinctUntilChanged, share, filter as filter$1 } from 'rxjs/operators';
|
|
6
|
+
import { takeUntil, take, map, delay, finalize, shareReplay, retryWhen, tap, concatMap, distinctUntilChanged, share, filter as filter$1 } from 'rxjs/operators';
|
|
7
7
|
|
|
8
8
|
class FsArray {
|
|
9
9
|
/**
|
|
@@ -1103,20 +1103,37 @@ var QueueState;
|
|
|
1103
1103
|
class Queue {
|
|
1104
1104
|
constructor(_limit = Infinity) {
|
|
1105
1105
|
this._limit = _limit;
|
|
1106
|
+
this._queueStats = {
|
|
1107
|
+
completed: 0,
|
|
1108
|
+
total: 0,
|
|
1109
|
+
errors: [],
|
|
1110
|
+
};
|
|
1111
|
+
this._doneQueueStats = {
|
|
1112
|
+
completed: 0,
|
|
1113
|
+
total: 0,
|
|
1114
|
+
errors: [],
|
|
1115
|
+
};
|
|
1116
|
+
this._completeQueueStats = {
|
|
1117
|
+
completed: 0,
|
|
1118
|
+
total: 0,
|
|
1119
|
+
errors: [],
|
|
1120
|
+
};
|
|
1106
1121
|
this._done = new Subject();
|
|
1107
1122
|
this._queue = [];
|
|
1108
1123
|
this._inProgress = [];
|
|
1109
|
-
this._total = 0;
|
|
1110
|
-
this._completed = 0;
|
|
1111
|
-
this._errors = 0;
|
|
1112
1124
|
this._state = QueueState.Idle;
|
|
1113
1125
|
this._destroy$ = new Subject();
|
|
1126
|
+
// if(_targets) {
|
|
1127
|
+
// _targets.forEach((target) => {
|
|
1128
|
+
// this.push(target);
|
|
1129
|
+
// });
|
|
1130
|
+
// }
|
|
1114
1131
|
}
|
|
1115
1132
|
get total() {
|
|
1116
|
-
return this.
|
|
1133
|
+
return this._queueStats.total;
|
|
1117
1134
|
}
|
|
1118
1135
|
get completed() {
|
|
1119
|
-
return this.
|
|
1136
|
+
return this._queueStats.completed;
|
|
1120
1137
|
}
|
|
1121
1138
|
get pending() {
|
|
1122
1139
|
return this._queue.length;
|
|
@@ -1125,7 +1142,7 @@ class Queue {
|
|
|
1125
1142
|
return this._inProgress.length;
|
|
1126
1143
|
}
|
|
1127
1144
|
get errors() {
|
|
1128
|
-
return this.
|
|
1145
|
+
return this._queueStats.errors;
|
|
1129
1146
|
}
|
|
1130
1147
|
get state() {
|
|
1131
1148
|
return this._state;
|
|
@@ -1150,30 +1167,32 @@ class Queue {
|
|
|
1150
1167
|
setLimit(value) {
|
|
1151
1168
|
this._limit = value;
|
|
1152
1169
|
}
|
|
1170
|
+
/**
|
|
1171
|
+
* @depreated
|
|
1172
|
+
*/
|
|
1153
1173
|
subscribe(fun, err, complete) {
|
|
1154
|
-
this.
|
|
1155
|
-
.pipe(takeUntil(this._destroy$))
|
|
1174
|
+
this.observe$
|
|
1156
1175
|
.subscribe(fun, err, complete);
|
|
1157
1176
|
}
|
|
1177
|
+
get observe$() {
|
|
1178
|
+
return this._done
|
|
1179
|
+
.pipe(takeUntil(this._destroy$));
|
|
1180
|
+
}
|
|
1181
|
+
get complete$() {
|
|
1182
|
+
if (!this.isProcessing()) {
|
|
1183
|
+
return of({ total: 0, completed: 0, errors: [] });
|
|
1184
|
+
}
|
|
1185
|
+
return this.observe$
|
|
1186
|
+
.pipe(take(1), map(() => (this._completeQueueStats)));
|
|
1187
|
+
}
|
|
1158
1188
|
complete(fun, err, complete) {
|
|
1159
|
-
|
|
1160
|
-
if (!this.isProcessing()) {
|
|
1161
|
-
observer.next();
|
|
1162
|
-
observer.complete();
|
|
1163
|
-
return;
|
|
1164
|
-
}
|
|
1165
|
-
this.subscribe(() => {
|
|
1166
|
-
observer.next();
|
|
1167
|
-
observer.complete();
|
|
1168
|
-
}, (error) => {
|
|
1169
|
-
observer.error(error);
|
|
1170
|
-
this.clear();
|
|
1171
|
-
});
|
|
1172
|
-
}).subscribe(fun, err, complete);
|
|
1189
|
+
this.complete$.subscribe(fun, err, complete);
|
|
1173
1190
|
}
|
|
1174
1191
|
push(target, name) {
|
|
1175
1192
|
const operation = new Operation(target, name);
|
|
1176
|
-
this.
|
|
1193
|
+
this._queueStats.total++;
|
|
1194
|
+
this._doneQueueStats.total++;
|
|
1195
|
+
this._completeQueueStats.total++;
|
|
1177
1196
|
this._state = QueueState.Processing;
|
|
1178
1197
|
if (this._inProgress.length < this._limit) {
|
|
1179
1198
|
this._processOperation(operation);
|
|
@@ -1185,52 +1204,61 @@ class Queue {
|
|
|
1185
1204
|
}
|
|
1186
1205
|
clear() {
|
|
1187
1206
|
this._queue = [];
|
|
1188
|
-
this._total = 0;
|
|
1189
|
-
this._errors = 0;
|
|
1190
|
-
this._completed = 0;
|
|
1191
1207
|
this._state = QueueState.Idle;
|
|
1192
|
-
this.
|
|
1208
|
+
this._queueStats = {
|
|
1209
|
+
total: 0,
|
|
1210
|
+
errors: [],
|
|
1211
|
+
completed: 0,
|
|
1212
|
+
};
|
|
1213
|
+
this._clearDoneQueueStats();
|
|
1193
1214
|
}
|
|
1194
1215
|
destroy() {
|
|
1195
|
-
this.clear();
|
|
1196
1216
|
this._done.complete();
|
|
1217
|
+
this.clear();
|
|
1197
1218
|
}
|
|
1198
1219
|
_processOperation(operation) {
|
|
1199
1220
|
this._inProgress.push(operation);
|
|
1200
1221
|
operation.target
|
|
1201
1222
|
.pipe(delay(200), // Hack to prevent extra quick proccess execution
|
|
1202
|
-
|
|
1223
|
+
finalize(() => {
|
|
1224
|
+
const opIndex = this._inProgress.indexOf(operation);
|
|
1225
|
+
this._inProgress.splice(opIndex, 1);
|
|
1226
|
+
if (this.empty) {
|
|
1227
|
+
this._state = QueueState.Idle;
|
|
1228
|
+
this._done.next(this._doneQueueStats);
|
|
1229
|
+
this._clearDoneQueueStats();
|
|
1230
|
+
}
|
|
1231
|
+
else {
|
|
1232
|
+
if (this._queue.length) {
|
|
1233
|
+
const queueItem = this._queue.shift();
|
|
1234
|
+
this._processOperation(queueItem);
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
}), takeUntil(this._destroy$)).subscribe({
|
|
1203
1238
|
next: (data) => {
|
|
1204
1239
|
operation.ready$.next(data);
|
|
1205
1240
|
},
|
|
1206
1241
|
error: (error) => {
|
|
1207
|
-
|
|
1208
|
-
this.
|
|
1209
|
-
this.
|
|
1242
|
+
this._queueStats.errors.push(error);
|
|
1243
|
+
this._doneQueueStats.errors.push(error);
|
|
1244
|
+
this._completeQueueStats.errors.push(error);
|
|
1210
1245
|
operation.ready$.error(error);
|
|
1211
|
-
if (this.empty) {
|
|
1212
|
-
this._state = QueueState.Idle;
|
|
1213
|
-
this._done.error(error);
|
|
1214
|
-
}
|
|
1215
1246
|
},
|
|
1216
1247
|
complete: () => {
|
|
1217
|
-
|
|
1218
|
-
this.
|
|
1219
|
-
this.
|
|
1248
|
+
this._queueStats.completed++;
|
|
1249
|
+
this._doneQueueStats.completed++;
|
|
1250
|
+
this._completeQueueStats.completed++;
|
|
1220
1251
|
operation.ready$.complete();
|
|
1221
|
-
if (this.empty) {
|
|
1222
|
-
this._state = QueueState.Idle;
|
|
1223
|
-
this._done.next();
|
|
1224
|
-
}
|
|
1225
|
-
else {
|
|
1226
|
-
if (this._queue.length) {
|
|
1227
|
-
const queueItem = this._queue.shift();
|
|
1228
|
-
this._processOperation(queueItem);
|
|
1229
|
-
}
|
|
1230
|
-
}
|
|
1231
1252
|
}
|
|
1232
1253
|
});
|
|
1233
1254
|
}
|
|
1255
|
+
_clearDoneQueueStats() {
|
|
1256
|
+
this._doneQueueStats = {
|
|
1257
|
+
total: 0,
|
|
1258
|
+
errors: [],
|
|
1259
|
+
completed: 0,
|
|
1260
|
+
};
|
|
1261
|
+
}
|
|
1234
1262
|
}
|
|
1235
1263
|
|
|
1236
1264
|
function removeQueryParams(path) {
|