@stemy/ngx-utils 17.1.2 → 17.1.4
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/esm2022/ngx-utils/directives/async-method.base.mjs +14 -6
- package/esm2022/ngx-utils/utils/observable.utils.mjs +6 -10
- package/fesm2022/stemy-ngx-utils.mjs +17 -13
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/directives/async-method.base.d.ts +5 -3
- package/ngx-utils/ngx-utils.imports.d.ts +4 -3
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Output } from "@angular/core";
|
|
1
|
+
import { ChangeDetectorRef, Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Output } from "@angular/core";
|
|
2
2
|
import { TOASTER_SERVICE } from "../common-types";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class AsyncMethodBase {
|
|
@@ -8,14 +8,18 @@ export class AsyncMethodBase {
|
|
|
8
8
|
get isLoading() {
|
|
9
9
|
return this.loading;
|
|
10
10
|
}
|
|
11
|
-
constructor(toaster) {
|
|
11
|
+
constructor(toaster, cdr) {
|
|
12
12
|
this.toaster = toaster;
|
|
13
|
+
this.cdr = cdr;
|
|
13
14
|
this.onSuccess = new EventEmitter();
|
|
14
15
|
this.onError = new EventEmitter();
|
|
15
16
|
}
|
|
16
17
|
getMethod() {
|
|
17
18
|
return async () => null;
|
|
18
19
|
}
|
|
20
|
+
ngOnChanges() {
|
|
21
|
+
this.cdr.detectChanges();
|
|
22
|
+
}
|
|
19
23
|
click(ev) {
|
|
20
24
|
if (ev) {
|
|
21
25
|
ev.preventDefault();
|
|
@@ -47,11 +51,15 @@ export class AsyncMethodBase {
|
|
|
47
51
|
this.loading = false;
|
|
48
52
|
this.onError.emit(reason);
|
|
49
53
|
this.toaster.error(reason.message, reason.context);
|
|
54
|
+
}).finally(() => {
|
|
55
|
+
if (!this.cdr["destroyed"]) {
|
|
56
|
+
this.cdr.detectChanges();
|
|
57
|
+
}
|
|
50
58
|
});
|
|
51
59
|
return true;
|
|
52
60
|
}
|
|
53
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AsyncMethodBase, deps: [{ token: TOASTER_SERVICE }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
54
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AsyncMethodBase, selector: "[__asmb__]", inputs: { disabled: "disabled", context: "context" }, outputs: { onSuccess: "onSuccess", onError: "onError" }, host: { listeners: { "click": "click($event)" }, properties: { "class.disabled": "this.isDisabled", "class.loading": "this.isLoading" } }, ngImport: i0 }); }
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AsyncMethodBase, deps: [{ token: TOASTER_SERVICE }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
62
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AsyncMethodBase, selector: "[__asmb__]", inputs: { disabled: "disabled", context: "context" }, outputs: { onSuccess: "onSuccess", onError: "onError" }, host: { listeners: { "click": "click($event)" }, properties: { "class.disabled": "this.isDisabled", "class.loading": "this.isLoading" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
55
63
|
}
|
|
56
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AsyncMethodBase, decorators: [{
|
|
57
65
|
type: Directive,
|
|
@@ -61,7 +69,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
61
69
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
62
70
|
type: Inject,
|
|
63
71
|
args: [TOASTER_SERVICE]
|
|
64
|
-
}] }], propDecorators: { disabled: [{
|
|
72
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
|
|
65
73
|
type: Input
|
|
66
74
|
}], context: [{
|
|
67
75
|
type: Input
|
|
@@ -79,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
79
87
|
type: HostListener,
|
|
80
88
|
args: ["click", ["$event"]]
|
|
81
89
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtbWV0aG9kLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE4QyxlQUFlLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLN0YsTUFBTSxPQUFPLGVBQWU7SUFVeEIsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQStDLE9BQXdCLEVBQVksR0FBc0I7UUFBMUQsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNyRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDckQsQ0FBQztJQUVTLFNBQVM7UUFDZixPQUFPLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBR0QsS0FBSyxDQUFDLEVBQVM7UUFDWCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ0wsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pELENBQUM7UUFDTCxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOytHQXRFUSxlQUFlLGtCQW9CSixlQUFlO21HQXBCMUIsZUFBZTs7NEZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtpQkFDekI7OzBCQXFCZ0IsTUFBTTsyQkFBQyxlQUFlO3lFQWxCMUIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUtILFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTXpCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxlQUFlO2dCQW1CNUIsS0FBSztzQkFESixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5wdXQsIE9uQ2hhbmdlcyxcclxuICAgIE91dHB1dFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QXN5bmNNZXRob2QsIElBc3luY01lc3NhZ2UsIElUb2FzdGVyU2VydmljZSwgVE9BU1RFUl9TRVJWSUNFfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltfX2FzbWJfX11cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXN5bmNNZXRob2RCYXNlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25TdWNjZXNzOiBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT47XHJcbiAgICBAT3V0cHV0KCkgb25FcnJvcjogRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+O1xyXG5cclxuICAgIHByb3RlY3RlZCBsb2FkaW5nOiBib29sZWFuO1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmRpc2FibGVkXCIpXHJcbiAgICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5sb2FkaW5nXCIpXHJcbiAgICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChUT0FTVEVSX1NFUlZJQ0UpIHByb3RlY3RlZCB0b2FzdGVyOiBJVG9hc3RlclNlcnZpY2UsIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgdGhpcy5vblN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+KCk7XHJcbiAgICAgICAgdGhpcy5vbkVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRNZXRob2QoKTogQXN5bmNNZXRob2Qge1xyXG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgY2xpY2soZXY6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGV2KSB7XHJcbiAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuY2FsbE1ldGhvZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGxNZXRob2QoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBtZXRob2QgPSB0aGlzLmdldE1ldGhvZCgpO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9ICFtZXRob2QgPyBudWxsIDogbWV0aG9kKHRoaXMuY29udGV4dCk7XHJcbiAgICAgICAgaWYgKCEocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0LnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdWNjZXNzLmVtaXQocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHJlc3VsdC5tZXNzYWdlLCByZXN1bHQuY29udGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCByZWFzb24gPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJlYXNvbiB8fCAhcmVhc29uLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFzb24gbXVzdCBpbXBsZW1lbnQgSUFzeW5jTWVzc2FnZSBpbnRlcmZhY2VcIik7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdChyZWFzb24pO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IocmVhc29uLm1lc3NhZ2UsIHJlYXNvbi5jb250ZXh0KTtcclxuICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNkcltcImRlc3Ryb3llZFwiXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -24,23 +24,19 @@ export class ObservableUtils {
|
|
|
24
24
|
const subscriptions = [];
|
|
25
25
|
subscribers.forEach(info => {
|
|
26
26
|
let alreadyCalled = false;
|
|
27
|
-
const timer =
|
|
28
|
-
const cb = timer ? function () {
|
|
29
|
-
const args = Array.from(arguments);
|
|
30
|
-
timer.set(() => {
|
|
31
|
-
info.cb.apply(null, args);
|
|
32
|
-
}, info.timeout);
|
|
33
|
-
} : info.cb;
|
|
27
|
+
const timer = TimerUtils.createTimeout();
|
|
34
28
|
info.subjects.forEach(subject => {
|
|
35
29
|
const ss = subject.subscribe((value) => {
|
|
36
30
|
alreadyCalled = true;
|
|
37
|
-
|
|
31
|
+
timer.set(() => {
|
|
32
|
+
info.cb(subject, value);
|
|
33
|
+
}, info.timeout ?? 0);
|
|
38
34
|
});
|
|
39
35
|
subscriptions.push(ss);
|
|
40
36
|
});
|
|
41
37
|
if (alreadyCalled)
|
|
42
38
|
return;
|
|
43
|
-
cb();
|
|
39
|
+
info.cb();
|
|
44
40
|
});
|
|
45
41
|
return ObservableUtils.multiSubscription(...subscriptions);
|
|
46
42
|
}
|
|
@@ -60,4 +56,4 @@ export class ObservableUtils {
|
|
|
60
56
|
});
|
|
61
57
|
}
|
|
62
58
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvdXRpbHMvb2JzZXJ2YWJsZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBUXpDLE1BQU0sT0FBTyxlQUFlO0lBRXhCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBeUI7UUFDckMsT0FBTyxRQUFRO1FBQ1gsV0FBVztRQUNYLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQ3BELENBQ0csVUFBVSxDQUFDLE1BQU07UUFDYixXQUFXO1FBQ1gsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FDSixDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsYUFBNkI7UUFDckQsV0FBVztRQUNYLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNoQixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0QixDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFDRixPQUFPLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBOEI7UUFDOUMsTUFBTSxhQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUN6QyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMxQixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzVCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDbkMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzVCLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixDQUFDLENBQUMsQ0FBQztnQkFDSCxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxhQUFhO2dCQUFFLE9BQU87WUFDMUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQXVCO1FBQ3ZDLElBQUksT0FBWSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQztvQkFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21lcmdlTWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmltcG9ydCB7SVNlYXJjaE9ic2VydmFibGV9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtUaW1lclV0aWxzfSBmcm9tIFwiLi90aW1lci51dGlsc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU3Vic2NyaWJlckluZm8ge1xyXG4gICAgc3ViamVjdHM6IE9ic2VydmFibGU8YW55PltdO1xyXG4gICAgY2I6IChldj86IE9ic2VydmFibGU8YW55PiwgLi4uYXJnczogYW55W10pID0+IGFueTtcclxuICAgIHRpbWVvdXQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlVXRpbHMge1xyXG5cclxuICAgIHN0YXRpYyB0b1NlYXJjaChzZWFyY2g6IElTZWFyY2hPYnNlcnZhYmxlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gbWVyZ2VNYXAoXHJcbiAgICAgICAgICAgIC8vIEBkeW5hbWljXHJcbiAgICAgICAgICAgICh0b2tlbjogc3RyaW5nKSA9PiBzZWFyY2guZ2V0U2VhcmNoUmVzdWx0cyh0b2tlbilcclxuICAgICAgICApKFxyXG4gICAgICAgICAgICBPYnNlcnZhYmxlLmNyZWF0ZShcclxuICAgICAgICAgICAgICAgIC8vIEBkeW5hbWljXHJcbiAgICAgICAgICAgICAgICAob2JzZXJ2ZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoc2VhcmNoLnNlYXJjaCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtdWx0aVN1YnNjcmlwdGlvbiguLi5zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSk6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICAgICAgLy8gQGR5bmFtaWNcclxuICAgICAgICBjb25zdCBsYW1iZGEgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHtcclxuICAgICAgICAgICAgICAgIHMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbihsYW1iZGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzdWJzY3JpYmUoLi4uc3Vic2NyaWJlcnM6IElTdWJzY3JpYmVySW5mb1tdKTogU3Vic2NyaXB0aW9uIHtcclxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gICAgICAgIHN1YnNjcmliZXJzLmZvckVhY2goaW5mbyA9PiB7XHJcbiAgICAgICAgICAgIGxldCBhbHJlYWR5Q2FsbGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVyID0gVGltZXJVdGlscy5jcmVhdGVUaW1lb3V0KCk7XHJcbiAgICAgICAgICAgIGluZm8uc3ViamVjdHMuZm9yRWFjaChzdWJqZWN0ID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNzID0gc3ViamVjdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxyZWFkeUNhbGxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGltZXIuc2V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5jYihzdWJqZWN0LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgaW5mby50aW1lb3V0ID8/IDApO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goc3MpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGFscmVhZHlDYWxsZWQpIHJldHVybjtcclxuICAgICAgICAgICAgaW5mby5jYigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oLi4uc3Vic2NyaXB0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGZyb21GdW5jdGlvbihjYWxsYmFja0Z1bmM6ICgpID0+IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgbGV0IHN1YmplY3Q6IGFueTtcclxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55Pigoc3Vic2NyaWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXN1YmplY3QpIHtcclxuICAgICAgICAgICAgICAgIHN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0ID0gZnJvbShjYWxsYmFja0Z1bmMoKSk7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHN1YmplY3Quc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -2005,23 +2005,19 @@ class ObservableUtils {
|
|
|
2005
2005
|
const subscriptions = [];
|
|
2006
2006
|
subscribers.forEach(info => {
|
|
2007
2007
|
let alreadyCalled = false;
|
|
2008
|
-
const timer =
|
|
2009
|
-
const cb = timer ? function () {
|
|
2010
|
-
const args = Array.from(arguments);
|
|
2011
|
-
timer.set(() => {
|
|
2012
|
-
info.cb.apply(null, args);
|
|
2013
|
-
}, info.timeout);
|
|
2014
|
-
} : info.cb;
|
|
2008
|
+
const timer = TimerUtils.createTimeout();
|
|
2015
2009
|
info.subjects.forEach(subject => {
|
|
2016
2010
|
const ss = subject.subscribe((value) => {
|
|
2017
2011
|
alreadyCalled = true;
|
|
2018
|
-
|
|
2012
|
+
timer.set(() => {
|
|
2013
|
+
info.cb(subject, value);
|
|
2014
|
+
}, info.timeout ?? 0);
|
|
2019
2015
|
});
|
|
2020
2016
|
subscriptions.push(ss);
|
|
2021
2017
|
});
|
|
2022
2018
|
if (alreadyCalled)
|
|
2023
2019
|
return;
|
|
2024
|
-
cb();
|
|
2020
|
+
info.cb();
|
|
2025
2021
|
});
|
|
2026
2022
|
return ObservableUtils.multiSubscription(...subscriptions);
|
|
2027
2023
|
}
|
|
@@ -4430,14 +4426,18 @@ class AsyncMethodBase {
|
|
|
4430
4426
|
get isLoading() {
|
|
4431
4427
|
return this.loading;
|
|
4432
4428
|
}
|
|
4433
|
-
constructor(toaster) {
|
|
4429
|
+
constructor(toaster, cdr) {
|
|
4434
4430
|
this.toaster = toaster;
|
|
4431
|
+
this.cdr = cdr;
|
|
4435
4432
|
this.onSuccess = new EventEmitter();
|
|
4436
4433
|
this.onError = new EventEmitter();
|
|
4437
4434
|
}
|
|
4438
4435
|
getMethod() {
|
|
4439
4436
|
return async () => null;
|
|
4440
4437
|
}
|
|
4438
|
+
ngOnChanges() {
|
|
4439
|
+
this.cdr.detectChanges();
|
|
4440
|
+
}
|
|
4441
4441
|
click(ev) {
|
|
4442
4442
|
if (ev) {
|
|
4443
4443
|
ev.preventDefault();
|
|
@@ -4469,11 +4469,15 @@ class AsyncMethodBase {
|
|
|
4469
4469
|
this.loading = false;
|
|
4470
4470
|
this.onError.emit(reason);
|
|
4471
4471
|
this.toaster.error(reason.message, reason.context);
|
|
4472
|
+
}).finally(() => {
|
|
4473
|
+
if (!this.cdr["destroyed"]) {
|
|
4474
|
+
this.cdr.detectChanges();
|
|
4475
|
+
}
|
|
4472
4476
|
});
|
|
4473
4477
|
return true;
|
|
4474
4478
|
}
|
|
4475
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AsyncMethodBase, deps: [{ token: TOASTER_SERVICE }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4476
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AsyncMethodBase, selector: "[__asmb__]", inputs: { disabled: "disabled", context: "context" }, outputs: { onSuccess: "onSuccess", onError: "onError" }, host: { listeners: { "click": "click($event)" }, properties: { "class.disabled": "this.isDisabled", "class.loading": "this.isLoading" } }, ngImport: i0 }); }
|
|
4479
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AsyncMethodBase, deps: [{ token: TOASTER_SERVICE }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4480
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AsyncMethodBase, selector: "[__asmb__]", inputs: { disabled: "disabled", context: "context" }, outputs: { onSuccess: "onSuccess", onError: "onError" }, host: { listeners: { "click": "click($event)" }, properties: { "class.disabled": "this.isDisabled", "class.loading": "this.isLoading" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
4477
4481
|
}
|
|
4478
4482
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AsyncMethodBase, decorators: [{
|
|
4479
4483
|
type: Directive,
|
|
@@ -4483,7 +4487,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
4483
4487
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4484
4488
|
type: Inject,
|
|
4485
4489
|
args: [TOASTER_SERVICE]
|
|
4486
|
-
}] }], propDecorators: { disabled: [{
|
|
4490
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
|
|
4487
4491
|
type: Input
|
|
4488
4492
|
}], context: [{
|
|
4489
4493
|
type: Input
|