@geosdi/ngx-store 1.1.0 → 1.1.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/esm2022/lib/ngx-effects.mjs +56 -0
- package/{fesm2020 → fesm2022}/geosdi-ngx-store.mjs +25 -21
- package/{fesm2015 → fesm2022}/geosdi-ngx-store.mjs.map +1 -1
- package/package.json +5 -11
- package/esm2020/lib/ngx-effects.mjs +0 -51
- package/fesm2015/geosdi-ngx-store.mjs +0 -88
- package/fesm2020/geosdi-ngx-store.mjs.map +0 -1
- /package/{esm2020 → esm2022}/geosdi-ngx-store.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngx-abstract-store.facade.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngx-actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngx-state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngx-store.facade.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Actions, createEffect, ofType } from "@ngrx/effects";
|
|
2
|
+
import { tap } from "rxjs/operators";
|
|
3
|
+
import { Injectable } from "@angular/core";
|
|
4
|
+
import { Store } from "@ngrx/store";
|
|
5
|
+
import { addSelectBean, resetBean } from "@geosdi/ngx-select-bean";
|
|
6
|
+
import { NgxUtilityServiceService } from "@geosdi/ngx-utility-service";
|
|
7
|
+
import { afterDeleting, afterUpdating, serviceSuccess } from "./ngx-actions";
|
|
8
|
+
import { map } from "rxjs";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@ngrx/effects";
|
|
11
|
+
import * as i2 from "@geosdi/ngx-utility-service";
|
|
12
|
+
import * as i3 from "@ngrx/store";
|
|
13
|
+
/**
|
|
14
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
15
|
+
* @email vito.salvia@gmail.com
|
|
16
|
+
*/
|
|
17
|
+
class NgxEffects {
|
|
18
|
+
actions$;
|
|
19
|
+
utilityService;
|
|
20
|
+
appStore;
|
|
21
|
+
onSuccess$ = createEffect(() => this.actions$.pipe(ofType(serviceSuccess), tap((res) => {
|
|
22
|
+
this.utilityService.printTranslateMessage("Service", "message.action_successful", "success");
|
|
23
|
+
})), { dispatch: false });
|
|
24
|
+
onDeleting$ = createEffect(() => this.actions$.pipe(ofType(afterDeleting), tap((res) => {
|
|
25
|
+
this.appStore.dispatch(resetBean());
|
|
26
|
+
})), { dispatch: false });
|
|
27
|
+
onUpdating$ = createEffect(() => this.actions$.pipe(ofType(afterUpdating), map((action) => {
|
|
28
|
+
this.appStore.dispatch(addSelectBean({ bean: action.bean }));
|
|
29
|
+
})), { dispatch: false });
|
|
30
|
+
n;
|
|
31
|
+
/* reload$ = createEffect(
|
|
32
|
+
() =>
|
|
33
|
+
this.actions$.pipe(
|
|
34
|
+
ofType(reloadTable),
|
|
35
|
+
delay(1000),
|
|
36
|
+
map((action) => {
|
|
37
|
+
this.tableEventService.subjectReloadView$.next(
|
|
38
|
+
action.TABLE,
|
|
39
|
+
);
|
|
40
|
+
}),
|
|
41
|
+
),
|
|
42
|
+
{ dispatch: false },
|
|
43
|
+
);*/
|
|
44
|
+
constructor(actions$, utilityService, appStore) {
|
|
45
|
+
this.actions$ = actions$;
|
|
46
|
+
this.utilityService = utilityService;
|
|
47
|
+
this.appStore = appStore;
|
|
48
|
+
}
|
|
49
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxEffects, deps: [{ token: i1.Actions }, { token: i2.NgxUtilityServiceService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxEffects });
|
|
51
|
+
}
|
|
52
|
+
export { NgxEffects };
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxEffects, decorators: [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.NgxUtilityServiceService }, { type: i3.Store }]; } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW9zZGkvbmd4LXN0b3JlL3NyYy9saWIvbmd4LWVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFFM0I7OztHQUdHO0FBQ0gsTUFDYSxVQUFVO0lBd0RQO0lBQ0E7SUFDQTtJQXpEWixVQUFVLEdBQUcsWUFBWSxDQUNyQixHQUFHLEVBQUUsQ0FDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDZCxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FDckMsU0FBUyxFQUNULDJCQUEyQixFQUMzQixTQUFTLENBQ1osQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUNMLEVBQ0wsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQ3RCLENBQUM7SUFFRixXQUFXLEdBQUcsWUFBWSxDQUN0QixHQUFHLEVBQUUsQ0FDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDZCxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQ3JCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FDTCxFQUNMLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUN0QixDQUFDO0lBRUYsV0FBVyxHQUFHLFlBQVksQ0FDdEIsR0FBRyxFQUFFLENBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUNyQixHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDbEIsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUN2QyxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQ0wsRUFDTCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDdEIsQ0FBQztJQUNGLENBQUMsQ0FBQztJQUVGOzs7Ozs7Ozs7Ozs7SUFZQTtJQUVBLFlBQ1ksUUFBaUIsRUFDakIsY0FBd0MsRUFDeEMsUUFBZTtRQUZmLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3hDLGFBQVEsR0FBUixRQUFRLENBQU87SUFDeEIsQ0FBQzswSEEzREssVUFBVTs4SEFBVixVQUFVOztTQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSBcIkBuZ3J4L2VmZmVjdHNcIjtcbmltcG9ydCB7IHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuaW1wb3J0IHsgYWRkU2VsZWN0QmVhbiwgcmVzZXRCZWFuIH0gZnJvbSBcIkBnZW9zZGkvbmd4LXNlbGVjdC1iZWFuXCI7XG5pbXBvcnQgeyBOZ3hVdGlsaXR5U2VydmljZVNlcnZpY2UgfSBmcm9tIFwiQGdlb3NkaS9uZ3gtdXRpbGl0eS1zZXJ2aWNlXCI7XG5pbXBvcnQgeyBhZnRlckRlbGV0aW5nLCBhZnRlclVwZGF0aW5nLCBzZXJ2aWNlU3VjY2VzcyB9IGZyb20gXCIuL25neC1hY3Rpb25zXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqc1wiO1xuXG4vKipcbiAqIEBhdXRob3IgVml0byBTYWx2aWEgLSBDTlIgSU1BQSBnZW9TREkgR3JvdXBcbiAqIEBlbWFpbCB2aXRvLnNhbHZpYUBnbWFpbC5jb21cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5neEVmZmVjdHMge1xuICAgIG9uU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgICAgICAgICAgb2ZUeXBlKHNlcnZpY2VTdWNjZXNzKSxcbiAgICAgICAgICAgICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnByaW50VHJhbnNsYXRlTWVzc2FnZShcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VydmljZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZXNzYWdlLmFjdGlvbl9zdWNjZXNzZnVsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH0sXG4gICAgKTtcblxuICAgIG9uRGVsZXRpbmckID0gY3JlYXRlRWZmZWN0KFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICAgICAgICAgIG9mVHlwZShhZnRlckRlbGV0aW5nKSxcbiAgICAgICAgICAgICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcFN0b3JlLmRpc3BhdGNoKHJlc2V0QmVhbigpKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH0sXG4gICAgKTtcblxuICAgIG9uVXBkYXRpbmckID0gY3JlYXRlRWZmZWN0KFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICAgICAgICAgIG9mVHlwZShhZnRlclVwZGF0aW5nKSxcbiAgICAgICAgICAgICAgICBtYXAoKGFjdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwU3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRTZWxlY3RCZWFuKHsgYmVhbjogYWN0aW9uLmJlYW4gfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICB7IGRpc3BhdGNoOiBmYWxzZSB9LFxuICAgICk7XG4gICAgbjtcblxuICAgIC8qICAgIHJlbG9hZCQgPSBjcmVhdGVFZmZlY3QoXG4oKSA9PlxuICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUocmVsb2FkVGFibGUpLFxuICAgICAgZGVsYXkoMTAwMCksXG4gICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIHRoaXMudGFibGVFdmVudFNlcnZpY2Uuc3ViamVjdFJlbG9hZFZpZXckLm5leHQoXG4gICAgICAgICAgICAgIGFjdGlvbi5UQUJMRSxcbiAgICAgICAgICApO1xuICAgICAgfSksXG4gICksXG57IGRpc3BhdGNoOiBmYWxzZSB9LFxuKTsqL1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgICAgIHByaXZhdGUgdXRpbGl0eVNlcnZpY2U6IE5neFV0aWxpdHlTZXJ2aWNlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHBTdG9yZTogU3RvcmUsXG4gICAgKSB7fVxufVxuIl19
|
|
@@ -42,37 +42,41 @@ const clearState = createAction(CLEAR_STATE);
|
|
|
42
42
|
* @email vito.salvia@gmail.com
|
|
43
43
|
*/
|
|
44
44
|
class NgxEffects {
|
|
45
|
+
actions$;
|
|
46
|
+
utilityService;
|
|
47
|
+
appStore;
|
|
48
|
+
onSuccess$ = createEffect(() => this.actions$.pipe(ofType(serviceSuccess), tap((res) => {
|
|
49
|
+
this.utilityService.printTranslateMessage("Service", "message.action_successful", "success");
|
|
50
|
+
})), { dispatch: false });
|
|
51
|
+
onDeleting$ = createEffect(() => this.actions$.pipe(ofType(afterDeleting), tap((res) => {
|
|
52
|
+
this.appStore.dispatch(resetBean());
|
|
53
|
+
})), { dispatch: false });
|
|
54
|
+
onUpdating$ = createEffect(() => this.actions$.pipe(ofType(afterUpdating), map((action) => {
|
|
55
|
+
this.appStore.dispatch(addSelectBean({ bean: action.bean }));
|
|
56
|
+
})), { dispatch: false });
|
|
57
|
+
n;
|
|
45
58
|
/* reload$ = createEffect(
|
|
46
59
|
() =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
this.actions$.pipe(
|
|
61
|
+
ofType(reloadTable),
|
|
62
|
+
delay(1000),
|
|
63
|
+
map((action) => {
|
|
64
|
+
this.tableEventService.subjectReloadView$.next(
|
|
65
|
+
action.TABLE,
|
|
66
|
+
);
|
|
67
|
+
}),
|
|
68
|
+
),
|
|
56
69
|
{ dispatch: false },
|
|
57
70
|
);*/
|
|
58
71
|
constructor(actions$, utilityService, appStore) {
|
|
59
72
|
this.actions$ = actions$;
|
|
60
73
|
this.utilityService = utilityService;
|
|
61
74
|
this.appStore = appStore;
|
|
62
|
-
this.onSuccess$ = createEffect(() => this.actions$.pipe(ofType(serviceSuccess), tap((res) => {
|
|
63
|
-
this.utilityService.printTranslateMessage("Service", "message.action_successful", "success");
|
|
64
|
-
})), { dispatch: false });
|
|
65
|
-
this.onDeleting$ = createEffect(() => this.actions$.pipe(ofType(afterDeleting), tap((res) => {
|
|
66
|
-
this.appStore.dispatch(resetBean());
|
|
67
|
-
})), { dispatch: false });
|
|
68
|
-
this.onUpdating$ = createEffect(() => this.actions$.pipe(ofType(afterUpdating), map((action) => {
|
|
69
|
-
addSelectBean({ bean: action.bean });
|
|
70
|
-
})), { dispatch: false });
|
|
71
75
|
}
|
|
76
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxEffects, deps: [{ token: i1.Actions }, { token: i2.NgxUtilityServiceService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxEffects });
|
|
72
78
|
}
|
|
73
|
-
|
|
74
|
-
/** @nocollapse */ NgxEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects, decorators: [{
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxEffects, decorators: [{
|
|
76
80
|
type: Injectable
|
|
77
81
|
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.NgxUtilityServiceService }, { type: i3.Store }]; } });
|
|
78
82
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geosdi-ngx-store.mjs","sources":["../../../../projects/geosdi/ngx-store/src/lib/ngx-abstract-store.facade.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-state.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-actions.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-effects.ts","../../../../projects/geosdi/ngx-store/src/public-api.ts","../../../../projects/geosdi/ngx-store/src/geosdi-ngx-store.ts"],"sourcesContent":["import { Model } from \"@geosdi/ngx-model\";\nimport { Observable } from \"rxjs\";\nimport { INgxStoreFacade } from \"./ngx-store.facade\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\nexport abstract class NgxAbstractStoreFacade<B extends Model>\n implements INgxStoreFacade<B>\n{\n /**\n *\n * @param bean\n */\n abstract addBean(bean: B);\n\n /**\n *\n */\n abstract clearStore();\n\n /**\n *\n * @param id\n */\n abstract deleteBean(id: string | number);\n\n /**\n *\n * @param from\n * @param size\n * @param params\n */\n abstract searchByValue(from: number, size: number, params: any);\n\n /**\n *\n */\n abstract getTotal(): Observable<number>;\n\n /**\n *\n */\n abstract loadStore();\n\n /**\n *\n * @param from\n * @param size\n * @param param\n */\n abstract selectPaginatedBeans(from: number, size: number, param?: string);\n\n /**\n *\n * @param id\n */\n abstract selectorBeanById(id: string | number);\n\n /**\n *\n * @param bean\n */\n abstract updateBean(bean: B);\n}\n","import { Model } from \"@geosdi/ngx-model\";\nimport { EntityAdapter, EntityState } from \"@ngrx/entity\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n\nexport interface NgxAppState {}\n\nexport interface NgxState<B extends Model> extends EntityState<B> {\n paginatedBeanLoaded: boolean;\n total: number;\n}\n\nexport function selectModelId(model: Model): any {\n return model.id;\n}\n\nexport function getAdapterIntialState<B extends Model>(\n adapter: EntityAdapter<B>,\n) {\n return adapter.getInitialState({\n paginatedBeanLoaded: false,\n total: 0,\n });\n}\n","import { createAction, props } from \"@ngrx/store\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\nexport const CLEAR_STATE = \"[Service] Clear State\";\n\nexport const serviceSuccess = createAction(\"[Service] Service Success\");\nexport const afterDeleting = createAction(\"[Service] Service After Deleting\");\nexport const afterUpdating = createAction(\n \"[Service] Service After Updating\",\n props<{\n bean: any;\n }>(),\n);\nexport const reloadTable = createAction(\n \"[Service] Reload View\",\n props<{ TABLE: any }>(),\n);\n\nexport const clearState = createAction(CLEAR_STATE);\n","import { Actions, createEffect, ofType } from \"@ngrx/effects\";\nimport { tap } from \"rxjs/operators\";\nimport { Injectable } from \"@angular/core\";\nimport { Store } from \"@ngrx/store\";\nimport { addSelectBean, resetBean } from \"@geosdi/ngx-select-bean\";\nimport { NgxUtilityServiceService } from \"@geosdi/ngx-utility-service\";\nimport { afterDeleting, afterUpdating, serviceSuccess } from \"./ngx-actions\";\nimport { map } from \"rxjs\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n@Injectable()\nexport class NgxEffects {\n onSuccess$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(serviceSuccess),\n tap((res) => {\n this.utilityService.printTranslateMessage(\n \"Service\",\n \"message.action_successful\",\n \"success\",\n );\n }),\n ),\n { dispatch: false },\n );\n\n onDeleting$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(afterDeleting),\n tap((res) => {\n this.appStore.dispatch(resetBean());\n }),\n ),\n { dispatch: false },\n );\n\n onUpdating$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(afterUpdating),\n map((action: any) => {\n addSelectBean({ bean: action.bean });\n }),\n ),\n { dispatch: false },\n );\n n;\n\n /* reload$ = createEffect(\n() =>\n
|
|
1
|
+
{"version":3,"file":"geosdi-ngx-store.mjs","sources":["../../../../projects/geosdi/ngx-store/src/lib/ngx-abstract-store.facade.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-state.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-actions.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-effects.ts","../../../../projects/geosdi/ngx-store/src/public-api.ts","../../../../projects/geosdi/ngx-store/src/geosdi-ngx-store.ts"],"sourcesContent":["import { Model } from \"@geosdi/ngx-model\";\nimport { Observable } from \"rxjs\";\nimport { INgxStoreFacade } from \"./ngx-store.facade\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\nexport abstract class NgxAbstractStoreFacade<B extends Model>\n implements INgxStoreFacade<B>\n{\n /**\n *\n * @param bean\n */\n abstract addBean(bean: B);\n\n /**\n *\n */\n abstract clearStore();\n\n /**\n *\n * @param id\n */\n abstract deleteBean(id: string | number);\n\n /**\n *\n * @param from\n * @param size\n * @param params\n */\n abstract searchByValue(from: number, size: number, params: any);\n\n /**\n *\n */\n abstract getTotal(): Observable<number>;\n\n /**\n *\n */\n abstract loadStore();\n\n /**\n *\n * @param from\n * @param size\n * @param param\n */\n abstract selectPaginatedBeans(from: number, size: number, param?: string);\n\n /**\n *\n * @param id\n */\n abstract selectorBeanById(id: string | number);\n\n /**\n *\n * @param bean\n */\n abstract updateBean(bean: B);\n}\n","import { Model } from \"@geosdi/ngx-model\";\nimport { EntityAdapter, EntityState } from \"@ngrx/entity\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n\nexport interface NgxAppState {}\n\nexport interface NgxState<B extends Model> extends EntityState<B> {\n paginatedBeanLoaded: boolean;\n total: number;\n}\n\nexport function selectModelId(model: Model): any {\n return model.id;\n}\n\nexport function getAdapterIntialState<B extends Model>(\n adapter: EntityAdapter<B>,\n) {\n return adapter.getInitialState({\n paginatedBeanLoaded: false,\n total: 0,\n });\n}\n","import { createAction, props } from \"@ngrx/store\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\nexport const CLEAR_STATE = \"[Service] Clear State\";\n\nexport const serviceSuccess = createAction(\"[Service] Service Success\");\nexport const afterDeleting = createAction(\"[Service] Service After Deleting\");\nexport const afterUpdating = createAction(\n \"[Service] Service After Updating\",\n props<{\n bean: any;\n }>(),\n);\nexport const reloadTable = createAction(\n \"[Service] Reload View\",\n props<{ TABLE: any }>(),\n);\n\nexport const clearState = createAction(CLEAR_STATE);\n","import { Actions, createEffect, ofType } from \"@ngrx/effects\";\nimport { tap } from \"rxjs/operators\";\nimport { Injectable } from \"@angular/core\";\nimport { Store } from \"@ngrx/store\";\nimport { addSelectBean, resetBean } from \"@geosdi/ngx-select-bean\";\nimport { NgxUtilityServiceService } from \"@geosdi/ngx-utility-service\";\nimport { afterDeleting, afterUpdating, serviceSuccess } from \"./ngx-actions\";\nimport { map } from \"rxjs\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n@Injectable()\nexport class NgxEffects {\n onSuccess$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(serviceSuccess),\n tap((res) => {\n this.utilityService.printTranslateMessage(\n \"Service\",\n \"message.action_successful\",\n \"success\",\n );\n }),\n ),\n { dispatch: false },\n );\n\n onDeleting$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(afterDeleting),\n tap((res) => {\n this.appStore.dispatch(resetBean());\n }),\n ),\n { dispatch: false },\n );\n\n onUpdating$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(afterUpdating),\n map((action: any) => {\n this.appStore.dispatch(\n addSelectBean({ bean: action.bean }),\n );\n }),\n ),\n { dispatch: false },\n );\n n;\n\n /* reload$ = createEffect(\n() =>\n this.actions$.pipe(\n ofType(reloadTable),\n delay(1000),\n map((action) => {\n this.tableEventService.subjectReloadView$.next(\n action.TABLE,\n );\n }),\n ),\n{ dispatch: false },\n);*/\n\n constructor(\n private actions$: Actions,\n private utilityService: NgxUtilityServiceService,\n private appStore: Store,\n ) {}\n}\n","/*\n * Public API Surface of ngx-store\n */\n\nexport * from \"./lib/ngx-store.facade\";\nexport * from \"./lib/ngx-abstract-store.facade\";\nexport * from \"./lib/ngx-state\";\nexport * from \"./lib/ngx-actions\";\nexport * from \"./lib/ngx-effects\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;AAIA;;;AAGG;MACmB,sBAAsB,CAAA;AAyD3C;;AClDK,SAAU,aAAa,CAAC,KAAY,EAAA;IACtC,OAAO,KAAK,CAAC,EAAE,CAAC;AACpB,CAAC;AAEK,SAAU,qBAAqB,CACjC,OAAyB,EAAA;IAEzB,OAAO,OAAO,CAAC,eAAe,CAAC;AAC3B,QAAA,mBAAmB,EAAE,KAAK;AAC1B,QAAA,KAAK,EAAE,CAAC;AACX,KAAA,CAAC,CAAC;AACP;;ACxBA;;;AAGG;AACI,MAAM,WAAW,GAAG,wBAAwB;MAEtC,cAAc,GAAG,YAAY,CAAC,4BAA4B,EAAE;MAC5D,aAAa,GAAG,YAAY,CAAC,mCAAmC,EAAE;AAClE,MAAA,aAAa,GAAG,YAAY,CACrC,mCAAmC,EACnC,KAAK,EAED,EACN;AACW,MAAA,WAAW,GAAG,YAAY,CACnC,uBAAuB,EACvB,KAAK,EAAkB,EACzB;MAEW,UAAU,GAAG,YAAY,CAAC,WAAW;;ACZlD;;;AAGG;AACH,MACa,UAAU,CAAA;AAwDP,IAAA,QAAA,CAAA;AACA,IAAA,cAAA,CAAA;AACA,IAAA,QAAA,CAAA;IAzDZ,UAAU,GAAG,YAAY,CACrB,MACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,cAAc,CAAC,EACtB,GAAG,CAAC,CAAC,GAAG,KAAI;QACR,IAAI,CAAC,cAAc,CAAC,qBAAqB,CACrC,SAAS,EACT,2BAA2B,EAC3B,SAAS,CACZ,CAAC;KACL,CAAC,CACL,EACL,EAAE,QAAQ,EAAE,KAAK,EAAE,CACtB,CAAC;IAEF,WAAW,GAAG,YAAY,CACtB,MACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,aAAa,CAAC,EACrB,GAAG,CAAC,CAAC,GAAG,KAAI;QACR,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;KACvC,CAAC,CACL,EACL,EAAE,QAAQ,EAAE,KAAK,EAAE,CACtB,CAAC;IAEF,WAAW,GAAG,YAAY,CACtB,MACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,aAAa,CAAC,EACrB,GAAG,CAAC,CAAC,MAAW,KAAI;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CACvC,CAAC;KACL,CAAC,CACL,EACL,EAAE,QAAQ,EAAE,KAAK,EAAE,CACtB,CAAC;AACF,IAAA,CAAC,CAAC;AAEF;;;;;;;;;;;;AAYA;AAEA,IAAA,WAAA,CACY,QAAiB,EACjB,cAAwC,EACxC,QAAe,EAAA;QAFf,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAc,CAAA,cAAA,GAAd,cAAc,CAA0B;QACxC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAO;KACvB;0HA3DK,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8HAAV,UAAU,EAAA,CAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;;;ACbX;;AAEG;;ACFH;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geosdi/ngx-store",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Ngrx store facade",
|
|
5
5
|
"author": "Salvia Vito (vito.salvia@gmail.com)",
|
|
6
6
|
"keywords": [
|
|
@@ -24,11 +24,7 @@
|
|
|
24
24
|
"@ngrx/store": ">=16.0.0"
|
|
25
25
|
},
|
|
26
26
|
"sideEffects": false,
|
|
27
|
-
"module": "
|
|
28
|
-
"es2020": "fesm2020/geosdi-ngx-store.mjs",
|
|
29
|
-
"esm2020": "esm2020/geosdi-ngx-store.mjs",
|
|
30
|
-
"fesm2020": "fesm2020/geosdi-ngx-store.mjs",
|
|
31
|
-
"fesm2015": "fesm2015/geosdi-ngx-store.mjs",
|
|
27
|
+
"module": "fesm2022/geosdi-ngx-store.mjs",
|
|
32
28
|
"typings": "index.d.ts",
|
|
33
29
|
"exports": {
|
|
34
30
|
"./package.json": {
|
|
@@ -36,11 +32,9 @@
|
|
|
36
32
|
},
|
|
37
33
|
".": {
|
|
38
34
|
"types": "./index.d.ts",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"node": "./fesm2015/geosdi-ngx-store.mjs",
|
|
43
|
-
"default": "./fesm2020/geosdi-ngx-store.mjs"
|
|
35
|
+
"esm2022": "./esm2022/geosdi-ngx-store.mjs",
|
|
36
|
+
"esm": "./esm2022/geosdi-ngx-store.mjs",
|
|
37
|
+
"default": "./fesm2022/geosdi-ngx-store.mjs"
|
|
44
38
|
}
|
|
45
39
|
},
|
|
46
40
|
"dependencies": {
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Actions, createEffect, ofType } from "@ngrx/effects";
|
|
2
|
-
import { tap } from "rxjs/operators";
|
|
3
|
-
import { Injectable } from "@angular/core";
|
|
4
|
-
import { Store } from "@ngrx/store";
|
|
5
|
-
import { addSelectBean, resetBean } from "@geosdi/ngx-select-bean";
|
|
6
|
-
import { NgxUtilityServiceService } from "@geosdi/ngx-utility-service";
|
|
7
|
-
import { afterDeleting, afterUpdating, serviceSuccess } from "./ngx-actions";
|
|
8
|
-
import { map } from "rxjs";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@ngrx/effects";
|
|
11
|
-
import * as i2 from "@geosdi/ngx-utility-service";
|
|
12
|
-
import * as i3 from "@ngrx/store";
|
|
13
|
-
/**
|
|
14
|
-
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
15
|
-
* @email vito.salvia@gmail.com
|
|
16
|
-
*/
|
|
17
|
-
export class NgxEffects {
|
|
18
|
-
/* reload$ = createEffect(
|
|
19
|
-
() =>
|
|
20
|
-
this.actions$.pipe(
|
|
21
|
-
ofType(reloadTable),
|
|
22
|
-
delay(1000),
|
|
23
|
-
map((action) => {
|
|
24
|
-
this.tableEventService.subjectReloadView$.next(
|
|
25
|
-
action.TABLE,
|
|
26
|
-
);
|
|
27
|
-
}),
|
|
28
|
-
),
|
|
29
|
-
{ dispatch: false },
|
|
30
|
-
);*/
|
|
31
|
-
constructor(actions$, utilityService, appStore) {
|
|
32
|
-
this.actions$ = actions$;
|
|
33
|
-
this.utilityService = utilityService;
|
|
34
|
-
this.appStore = appStore;
|
|
35
|
-
this.onSuccess$ = createEffect(() => this.actions$.pipe(ofType(serviceSuccess), tap((res) => {
|
|
36
|
-
this.utilityService.printTranslateMessage("Service", "message.action_successful", "success");
|
|
37
|
-
})), { dispatch: false });
|
|
38
|
-
this.onDeleting$ = createEffect(() => this.actions$.pipe(ofType(afterDeleting), tap((res) => {
|
|
39
|
-
this.appStore.dispatch(resetBean());
|
|
40
|
-
})), { dispatch: false });
|
|
41
|
-
this.onUpdating$ = createEffect(() => this.actions$.pipe(ofType(afterUpdating), map((action) => {
|
|
42
|
-
addSelectBean({ bean: action.bean });
|
|
43
|
-
})), { dispatch: false });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/** @nocollapse */ NgxEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects, deps: [{ token: i1.Actions }, { token: i2.NgxUtilityServiceService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
-
/** @nocollapse */ NgxEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects });
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects, decorators: [{
|
|
49
|
-
type: Injectable
|
|
50
|
-
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.NgxUtilityServiceService }, { type: i3.Store }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW9zZGkvbmd4LXN0b3JlL3NyYy9saWIvbmd4LWVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFFM0I7OztHQUdHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUF1Q25COzs7Ozs7Ozs7Ozs7SUFZQTtJQUVBLFlBQ1ksUUFBaUIsRUFDakIsY0FBd0MsRUFDeEMsUUFBZTtRQUZmLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3hDLGFBQVEsR0FBUixRQUFRLENBQU87UUF2RDNCLGVBQVUsR0FBRyxZQUFZLENBQ3JCLEdBQUcsRUFBRSxDQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNkLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFDdEIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUNyQyxTQUFTLEVBQ1QsMkJBQTJCLEVBQzNCLFNBQVMsQ0FDWixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsRUFDTCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDdEIsQ0FBQztRQUVGLGdCQUFXLEdBQUcsWUFBWSxDQUN0QixHQUFHLEVBQUUsQ0FDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDZCxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQ3JCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDTCxFQUNMLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUN0QixDQUFDO1FBRUYsZ0JBQVcsR0FBRyxZQUFZLENBQ3RCLEdBQUcsRUFBRSxDQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNkLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFDckIsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDaEIsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNMLEVBQ0wsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQ3RCLENBQUM7SUFxQkMsQ0FBQzs7MEhBekRLLFVBQVU7OEhBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tIFwiQG5ncngvZWZmZWN0c1wiO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XG5pbXBvcnQgeyBhZGRTZWxlY3RCZWFuLCByZXNldEJlYW4gfSBmcm9tIFwiQGdlb3NkaS9uZ3gtc2VsZWN0LWJlYW5cIjtcbmltcG9ydCB7IE5neFV0aWxpdHlTZXJ2aWNlU2VydmljZSB9IGZyb20gXCJAZ2Vvc2RpL25neC11dGlsaXR5LXNlcnZpY2VcIjtcbmltcG9ydCB7IGFmdGVyRGVsZXRpbmcsIGFmdGVyVXBkYXRpbmcsIHNlcnZpY2VTdWNjZXNzIH0gZnJvbSBcIi4vbmd4LWFjdGlvbnNcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzXCI7XG5cbi8qKlxuICogQGF1dGhvciBWaXRvIFNhbHZpYSAtIENOUiBJTUFBIGdlb1NESSBHcm91cFxuICogQGVtYWlsIHZpdG8uc2FsdmlhQGdtYWlsLmNvbVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd4RWZmZWN0cyB7XG4gICAgb25TdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgICAgICAgICBvZlR5cGUoc2VydmljZVN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UucHJpbnRUcmFuc2xhdGVNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTZXJ2aWNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lc3NhZ2UuYWN0aW9uX3N1Y2Nlc3NmdWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgeyBkaXNwYXRjaDogZmFsc2UgfSxcbiAgICApO1xuXG4gICAgb25EZWxldGluZyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgICAgICAgICAgb2ZUeXBlKGFmdGVyRGVsZXRpbmcpLFxuICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwU3RvcmUuZGlzcGF0Y2gocmVzZXRCZWFuKCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgeyBkaXNwYXRjaDogZmFsc2UgfSxcbiAgICApO1xuXG4gICAgb25VcGRhdGluZyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgICAgICAgICAgb2ZUeXBlKGFmdGVyVXBkYXRpbmcpLFxuICAgICAgICAgICAgICAgIG1hcCgoYWN0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYWRkU2VsZWN0QmVhbih7IGJlYW46IGFjdGlvbi5iZWFuIH0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgeyBkaXNwYXRjaDogZmFsc2UgfSxcbiAgICApO1xuICAgIG47XG5cbiAgICAvKiAgICByZWxvYWQkID0gY3JlYXRlRWZmZWN0KFxuKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShyZWxvYWRUYWJsZSksXG4gICAgICAgIGRlbGF5KDEwMDApLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgdGhpcy50YWJsZUV2ZW50U2VydmljZS5zdWJqZWN0UmVsb2FkVmlldyQubmV4dChcbiAgICAgICAgICAgICAgICBhY3Rpb24uVEFCTEUsXG4gICAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICApLFxueyBkaXNwYXRjaDogZmFsc2UgfSxcbik7Ki9cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgICAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBOZ3hVdGlsaXR5U2VydmljZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwU3RvcmU6IFN0b3JlLFxuICAgICkge31cbn1cbiJdfQ==
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import * as i3 from '@ngrx/store';
|
|
2
|
-
import { createAction, props } from '@ngrx/store';
|
|
3
|
-
import * as i1 from '@ngrx/effects';
|
|
4
|
-
import { createEffect, ofType } from '@ngrx/effects';
|
|
5
|
-
import { tap } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from '@angular/core';
|
|
7
|
-
import { Injectable } from '@angular/core';
|
|
8
|
-
import { resetBean, addSelectBean } from '@geosdi/ngx-select-bean';
|
|
9
|
-
import { map } from 'rxjs';
|
|
10
|
-
import * as i2 from '@geosdi/ngx-utility-service';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
14
|
-
* @email vito.salvia@gmail.com
|
|
15
|
-
*/
|
|
16
|
-
class NgxAbstractStoreFacade {
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function selectModelId(model) {
|
|
20
|
-
return model.id;
|
|
21
|
-
}
|
|
22
|
-
function getAdapterIntialState(adapter) {
|
|
23
|
-
return adapter.getInitialState({
|
|
24
|
-
paginatedBeanLoaded: false,
|
|
25
|
-
total: 0,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
31
|
-
* @email vito.salvia@gmail.com
|
|
32
|
-
*/
|
|
33
|
-
const CLEAR_STATE = "[Service] Clear State";
|
|
34
|
-
const serviceSuccess = createAction("[Service] Service Success");
|
|
35
|
-
const afterDeleting = createAction("[Service] Service After Deleting");
|
|
36
|
-
const afterUpdating = createAction("[Service] Service After Updating", props());
|
|
37
|
-
const reloadTable = createAction("[Service] Reload View", props());
|
|
38
|
-
const clearState = createAction(CLEAR_STATE);
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
42
|
-
* @email vito.salvia@gmail.com
|
|
43
|
-
*/
|
|
44
|
-
class NgxEffects {
|
|
45
|
-
/* reload$ = createEffect(
|
|
46
|
-
() =>
|
|
47
|
-
this.actions$.pipe(
|
|
48
|
-
ofType(reloadTable),
|
|
49
|
-
delay(1000),
|
|
50
|
-
map((action) => {
|
|
51
|
-
this.tableEventService.subjectReloadView$.next(
|
|
52
|
-
action.TABLE,
|
|
53
|
-
);
|
|
54
|
-
}),
|
|
55
|
-
),
|
|
56
|
-
{ dispatch: false },
|
|
57
|
-
);*/
|
|
58
|
-
constructor(actions$, utilityService, appStore) {
|
|
59
|
-
this.actions$ = actions$;
|
|
60
|
-
this.utilityService = utilityService;
|
|
61
|
-
this.appStore = appStore;
|
|
62
|
-
this.onSuccess$ = createEffect(() => this.actions$.pipe(ofType(serviceSuccess), tap((res) => {
|
|
63
|
-
this.utilityService.printTranslateMessage("Service", "message.action_successful", "success");
|
|
64
|
-
})), { dispatch: false });
|
|
65
|
-
this.onDeleting$ = createEffect(() => this.actions$.pipe(ofType(afterDeleting), tap((res) => {
|
|
66
|
-
this.appStore.dispatch(resetBean());
|
|
67
|
-
})), { dispatch: false });
|
|
68
|
-
this.onUpdating$ = createEffect(() => this.actions$.pipe(ofType(afterUpdating), map((action) => {
|
|
69
|
-
addSelectBean({ bean: action.bean });
|
|
70
|
-
})), { dispatch: false });
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/** @nocollapse */ NgxEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects, deps: [{ token: i1.Actions }, { token: i2.NgxUtilityServiceService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
74
|
-
/** @nocollapse */ NgxEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxEffects, decorators: [{
|
|
76
|
-
type: Injectable
|
|
77
|
-
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.NgxUtilityServiceService }, { type: i3.Store }]; } });
|
|
78
|
-
|
|
79
|
-
/*
|
|
80
|
-
* Public API Surface of ngx-store
|
|
81
|
-
*/
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Generated bundle index. Do not edit.
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
export { CLEAR_STATE, NgxAbstractStoreFacade, NgxEffects, afterDeleting, afterUpdating, clearState, getAdapterIntialState, reloadTable, selectModelId, serviceSuccess };
|
|
88
|
-
//# sourceMappingURL=geosdi-ngx-store.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"geosdi-ngx-store.mjs","sources":["../../../../projects/geosdi/ngx-store/src/lib/ngx-abstract-store.facade.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-state.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-actions.ts","../../../../projects/geosdi/ngx-store/src/lib/ngx-effects.ts","../../../../projects/geosdi/ngx-store/src/public-api.ts","../../../../projects/geosdi/ngx-store/src/geosdi-ngx-store.ts"],"sourcesContent":["import { Model } from \"@geosdi/ngx-model\";\nimport { Observable } from \"rxjs\";\nimport { INgxStoreFacade } from \"./ngx-store.facade\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\nexport abstract class NgxAbstractStoreFacade<B extends Model>\n implements INgxStoreFacade<B>\n{\n /**\n *\n * @param bean\n */\n abstract addBean(bean: B);\n\n /**\n *\n */\n abstract clearStore();\n\n /**\n *\n * @param id\n */\n abstract deleteBean(id: string | number);\n\n /**\n *\n * @param from\n * @param size\n * @param params\n */\n abstract searchByValue(from: number, size: number, params: any);\n\n /**\n *\n */\n abstract getTotal(): Observable<number>;\n\n /**\n *\n */\n abstract loadStore();\n\n /**\n *\n * @param from\n * @param size\n * @param param\n */\n abstract selectPaginatedBeans(from: number, size: number, param?: string);\n\n /**\n *\n * @param id\n */\n abstract selectorBeanById(id: string | number);\n\n /**\n *\n * @param bean\n */\n abstract updateBean(bean: B);\n}\n","import { Model } from \"@geosdi/ngx-model\";\nimport { EntityAdapter, EntityState } from \"@ngrx/entity\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n\nexport interface NgxAppState {}\n\nexport interface NgxState<B extends Model> extends EntityState<B> {\n paginatedBeanLoaded: boolean;\n total: number;\n}\n\nexport function selectModelId(model: Model): any {\n return model.id;\n}\n\nexport function getAdapterIntialState<B extends Model>(\n adapter: EntityAdapter<B>,\n) {\n return adapter.getInitialState({\n paginatedBeanLoaded: false,\n total: 0,\n });\n}\n","import { createAction, props } from \"@ngrx/store\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\nexport const CLEAR_STATE = \"[Service] Clear State\";\n\nexport const serviceSuccess = createAction(\"[Service] Service Success\");\nexport const afterDeleting = createAction(\"[Service] Service After Deleting\");\nexport const afterUpdating = createAction(\n \"[Service] Service After Updating\",\n props<{\n bean: any;\n }>(),\n);\nexport const reloadTable = createAction(\n \"[Service] Reload View\",\n props<{ TABLE: any }>(),\n);\n\nexport const clearState = createAction(CLEAR_STATE);\n","import { Actions, createEffect, ofType } from \"@ngrx/effects\";\nimport { tap } from \"rxjs/operators\";\nimport { Injectable } from \"@angular/core\";\nimport { Store } from \"@ngrx/store\";\nimport { addSelectBean, resetBean } from \"@geosdi/ngx-select-bean\";\nimport { NgxUtilityServiceService } from \"@geosdi/ngx-utility-service\";\nimport { afterDeleting, afterUpdating, serviceSuccess } from \"./ngx-actions\";\nimport { map } from \"rxjs\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n@Injectable()\nexport class NgxEffects {\n onSuccess$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(serviceSuccess),\n tap((res) => {\n this.utilityService.printTranslateMessage(\n \"Service\",\n \"message.action_successful\",\n \"success\",\n );\n }),\n ),\n { dispatch: false },\n );\n\n onDeleting$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(afterDeleting),\n tap((res) => {\n this.appStore.dispatch(resetBean());\n }),\n ),\n { dispatch: false },\n );\n\n onUpdating$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(afterUpdating),\n map((action: any) => {\n addSelectBean({ bean: action.bean });\n }),\n ),\n { dispatch: false },\n );\n n;\n\n /* reload$ = createEffect(\n() =>\n this.actions$.pipe(\n ofType(reloadTable),\n delay(1000),\n map((action) => {\n this.tableEventService.subjectReloadView$.next(\n action.TABLE,\n );\n }),\n ),\n{ dispatch: false },\n);*/\n\n constructor(\n private actions$: Actions,\n private utilityService: NgxUtilityServiceService,\n private appStore: Store,\n ) {}\n}\n","/*\n * Public API Surface of ngx-store\n */\n\nexport * from \"./lib/ngx-store.facade\";\nexport * from \"./lib/ngx-abstract-store.facade\";\nexport * from \"./lib/ngx-state\";\nexport * from \"./lib/ngx-actions\";\nexport * from \"./lib/ngx-effects\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;AAIA;;;AAGG;MACmB,sBAAsB,CAAA;AAyD3C;;AClDK,SAAU,aAAa,CAAC,KAAY,EAAA;IACtC,OAAO,KAAK,CAAC,EAAE,CAAC;AACpB,CAAC;AAEK,SAAU,qBAAqB,CACjC,OAAyB,EAAA;IAEzB,OAAO,OAAO,CAAC,eAAe,CAAC;AAC3B,QAAA,mBAAmB,EAAE,KAAK;AAC1B,QAAA,KAAK,EAAE,CAAC;AACX,KAAA,CAAC,CAAC;AACP;;ACxBA;;;AAGG;AACI,MAAM,WAAW,GAAG,wBAAwB;MAEtC,cAAc,GAAG,YAAY,CAAC,4BAA4B,EAAE;MAC5D,aAAa,GAAG,YAAY,CAAC,mCAAmC,EAAE;AAClE,MAAA,aAAa,GAAG,YAAY,CACrC,mCAAmC,EACnC,KAAK,EAED,EACN;AACW,MAAA,WAAW,GAAG,YAAY,CACnC,uBAAuB,EACvB,KAAK,EAAkB,EACzB;MAEW,UAAU,GAAG,YAAY,CAAC,WAAW;;ACZlD;;;AAGG;MAEU,UAAU,CAAA;AAuCnB;;;;;;;;;;;;AAYA;AAEA,IAAA,WAAA,CACY,QAAiB,EACjB,cAAwC,EACxC,QAAe,EAAA;QAFf,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAc,CAAA,cAAA,GAAd,cAAc,CAA0B;QACxC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAO;QAvD3B,IAAU,CAAA,UAAA,GAAG,YAAY,CACrB,MACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,cAAc,CAAC,EACtB,GAAG,CAAC,CAAC,GAAG,KAAI;YACR,IAAI,CAAC,cAAc,CAAC,qBAAqB,CACrC,SAAS,EACT,2BAA2B,EAC3B,SAAS,CACZ,CAAC;SACL,CAAC,CACL,EACL,EAAE,QAAQ,EAAE,KAAK,EAAE,CACtB,CAAC;QAEF,IAAW,CAAA,WAAA,GAAG,YAAY,CACtB,MACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,aAAa,CAAC,EACrB,GAAG,CAAC,CAAC,GAAG,KAAI;YACR,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;SACvC,CAAC,CACL,EACL,EAAE,QAAQ,EAAE,KAAK,EAAE,CACtB,CAAC;QAEF,IAAW,CAAA,WAAA,GAAG,YAAY,CACtB,MACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,aAAa,CAAC,EACrB,GAAG,CAAC,CAAC,MAAW,KAAI;YAChB,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;SACxC,CAAC,CACL,EACL,EAAE,QAAQ,EAAE,KAAK,EAAE,CACtB,CAAC;KAqBE;;0HAzDK,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8HAAV,UAAU,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;;;ACbX;;AAEG;;ACFH;;AAEG;;;;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|