@verisoft/store 20.1.0 → 20.1.2

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.
@@ -1,472 +0,0 @@
1
- import { Actions, createEffect, ofType } from '@ngrx/effects';
2
- import {
3
- catchError,
4
- map,
5
- Observable,
6
- of,
7
- switchMap,
8
- tap,
9
- withLatestFrom,
10
- } from 'rxjs';
11
- import {
12
- createAddBindingAction,
13
- createAddBindingsAction,
14
- createAddBindingsFailureAction,
15
- createAddBindingsSuccessAction,
16
- createDeleteBindingAction,
17
- createDeleteBindingsAction,
18
- createDeleteBindingsFailureAction,
19
- createDeleteBindingsSuccessAction,
20
- createEditBindingAction,
21
- createEditBindingFailureAction,
22
- createEditBindingSuccessAction,
23
- } from './binding.actions';
24
-
25
- export function createSingleBindingEffectsWithEdit<
26
- T extends { id: number | string },
27
- TCreate,
28
- TEdit extends { id?: number | string }
29
- >(
30
- bindingsRepository: string,
31
- actions$: Actions,
32
- detail$: Observable<T | undefined>,
33
- bindingSingularName: string,
34
- bindingPluralName: string,
35
- addFunction: (
36
- bindings: TCreate,
37
- ) => Observable<any>,
38
- editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,
39
- deleteFunction: (
40
- bindingIds: string | number,
41
- detailId: number | string
42
- ) => Observable<any>,
43
- snackbar: any,
44
- translateService: any,
45
- tableService: any,
46
- overrideDetailWithBinding = false,
47
- ) {
48
- const addEffect = createAddBindingEffect(
49
- bindingsRepository,
50
- actions$,
51
- detail$,
52
- bindingPluralName,
53
- addFunction,
54
- snackbar,
55
- translateService,
56
- );
57
-
58
- const editEffect = createEditBindingEffect(
59
- bindingsRepository,
60
- actions$,
61
- detail$,
62
- bindingSingularName,
63
- editFunction,
64
- snackbar,
65
- translateService,
66
- overrideDetailWithBinding
67
- );
68
-
69
- const deleteEffect = createDeleteBindingEffect(
70
- bindingsRepository,
71
- actions$,
72
- detail$,
73
- bindingPluralName,
74
- deleteFunction,
75
- snackbar,
76
- translateService
77
- );
78
-
79
- const modifiedSuccessEffect = createBindingModifiedSuccessEffect(
80
- bindingsRepository,
81
- actions$,
82
- tableService
83
- );
84
-
85
- return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };
86
- }
87
-
88
- export function createBindingsEffectsWithEdit<
89
- T extends { id: number | string },
90
- TCreate,
91
- TEdit extends { id?: number | string }
92
- >(
93
- bindingsRepository: string,
94
- actions$: Actions,
95
- detail$: Observable<T | undefined>,
96
- bindingSingularName: string,
97
- bindingPluralName: string,
98
- addFunction: (
99
- bindings: TCreate[],
100
- detailId: number | string
101
- ) => Observable<any>,
102
- editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,
103
- deleteFunction: (
104
- bindingIds: number[],
105
- detailId: number | string
106
- ) => Observable<any>,
107
- snackbar: any,
108
- translateService: any,
109
- tableService: any,
110
- overrideDetailWithBinding = false,
111
- ) {
112
- const addEffect = createAddBindingsEffect(
113
- bindingsRepository,
114
- actions$,
115
- detail$,
116
- bindingPluralName,
117
- addFunction,
118
- snackbar,
119
- translateService
120
- );
121
-
122
- const editEffect = createEditBindingEffect(
123
- bindingsRepository,
124
- actions$,
125
- detail$,
126
- bindingSingularName,
127
- editFunction,
128
- snackbar,
129
- translateService,
130
- overrideDetailWithBinding
131
- );
132
-
133
- const deleteEffect = createDeleteBindingsEffect(
134
- bindingsRepository,
135
- actions$,
136
- detail$,
137
- bindingPluralName,
138
- deleteFunction,
139
- snackbar,
140
- translateService
141
- );
142
-
143
- const modifiedSuccessEffect = createBindingModifiedSuccessEffect(
144
- bindingsRepository,
145
- actions$,
146
- tableService
147
- );
148
-
149
- return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };
150
- }
151
-
152
- export function createBindingsEffects<
153
- T extends { id: number | string },
154
- TCreate
155
- >(
156
- bindingsRepository: string,
157
- actions$: Actions,
158
- detail$: Observable<T | undefined>,
159
- bindingPluralName: string,
160
- addFunction: (
161
- bindings: TCreate[],
162
- detailId: number | string
163
- ) => Observable<any>,
164
- deleteFunction: (
165
- bindingIds: number[],
166
- detailId: number | string
167
- ) => Observable<any>,
168
- snackbar: any,
169
- translateService: any,
170
- tableService: any
171
- ) {
172
- const addEffect = createAddBindingsEffect(
173
- bindingsRepository,
174
- actions$,
175
- detail$,
176
- bindingPluralName,
177
- addFunction,
178
- snackbar,
179
- translateService
180
- );
181
-
182
- const deleteEffect = createDeleteBindingsEffect(
183
- bindingsRepository,
184
- actions$,
185
- detail$,
186
- bindingPluralName,
187
- deleteFunction,
188
- snackbar,
189
- translateService
190
- );
191
-
192
- const modifiedSuccessEffect = createBindingModifiedSuccessEffect(
193
- bindingsRepository,
194
- actions$,
195
- tableService
196
- );
197
-
198
- return { addEffect, deleteEffect, modifiedSuccessEffect };
199
- }
200
-
201
- function createAddBindingEffect<T extends { id: number | string }, TCreate>(
202
- bindingsRepository: string,
203
- actions$: Actions,
204
- detail$: Observable<T | undefined>,
205
- bindingPluralName: string,
206
- addFunction: (
207
- bindings: TCreate,
208
- ) => Observable<any>,
209
- snackbar: any,
210
- translateService: any,
211
- ) {
212
- return createEffect(() =>
213
- actions$.pipe(
214
- ofType(createAddBindingAction<TCreate>(bindingsRepository)),
215
- withLatestFrom(detail$),
216
- switchMap(([{ binding }, detail]) => {
217
- const translatedPluralName =
218
- translateService.instant(bindingPluralName);
219
- const successMessage = `${translateService.instant(
220
- 'BINDINGS_EFFECTS.SUCCESS_ADD'
221
- )} ${translatedPluralName}!`;
222
- const failureMessage = `${translateService.instant(
223
- 'BINDINGS_EFFECTS.FAILURE_ADD'
224
- )} ${translatedPluralName}!`;
225
-
226
- return addFunction(binding).pipe(
227
- map(() => {
228
- snackbar.showSuccess(successMessage);
229
- return createAddBindingsSuccessAction(bindingsRepository)();
230
- }),
231
- catchError((error) => {
232
- snackbar.showError(failureMessage);
233
- return of(
234
- createAddBindingsFailureAction(bindingsRepository)({ error })
235
- );
236
- })
237
- );
238
- })
239
- )
240
- );
241
- }
242
-
243
- function createAddBindingsEffect<T extends { id: number | string }, TCreate>(
244
- bindingsRepository: string,
245
- actions$: Actions,
246
- detail$: Observable<T | undefined>,
247
- bindingPluralName: string,
248
- addFunction: (
249
- bindings: TCreate[],
250
- detailId: number | string
251
- ) => Observable<any>,
252
- snackbar: any,
253
- translateService: any
254
- ) {
255
- return createEffect(() =>
256
- actions$.pipe(
257
- ofType(createAddBindingsAction<TCreate>(bindingsRepository)),
258
- withLatestFrom(detail$),
259
- switchMap(([{ bindings }, detail]) => {
260
- const translatedPluralName =
261
- translateService.instant(bindingPluralName);
262
- const successMessage = `${translateService.instant(
263
- 'BINDINGS_EFFECTS.SUCCESS_ADD'
264
- )} ${translatedPluralName}!`;
265
- const failureMessage = `${translateService.instant(
266
- 'BINDINGS_EFFECTS.FAILURE_ADD'
267
- )} ${translatedPluralName}!`;
268
-
269
- if (!detail?.id) {
270
- snackbar.showError(failureMessage);
271
- return of(
272
- createAddBindingsFailureAction(bindingsRepository)({
273
- error: failureMessage,
274
- })
275
- );
276
- }
277
-
278
- return addFunction(bindings, detail.id).pipe(
279
- map(() => {
280
- snackbar.showSuccess(successMessage);
281
- return createAddBindingsSuccessAction(bindingsRepository)();
282
- }),
283
- catchError((error) => {
284
- snackbar.showError(failureMessage);
285
- return of(
286
- createAddBindingsFailureAction(bindingsRepository)({ error })
287
- );
288
- })
289
- );
290
- })
291
- )
292
- );
293
- }
294
-
295
- function createEditBindingEffect<
296
- T extends { id: number | string },
297
- TEdit extends { id?: number | string }
298
- >(
299
- bindingsRepository: string,
300
- actions$: Actions,
301
- detail$: Observable<T | undefined>,
302
- bindingSingularName: string,
303
- editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,
304
- snackbar: any,
305
- translateService: any,
306
- overrideDetailWithBinding = false,
307
- ) {
308
- return createEffect(() =>
309
- actions$.pipe(
310
- ofType(createEditBindingAction<TEdit>(bindingsRepository)),
311
- withLatestFrom(detail$),
312
- switchMap(([{ binding }, detail]) => {
313
- const translatedPluralName =
314
- translateService.instant(bindingSingularName);
315
- const successMessage = `${translateService.instant(
316
- 'BINDINGS_EFFECTS.SUCCESS_EDIT'
317
- )} ${translatedPluralName}!`;
318
- const failureMessage = `${translateService.instant(
319
- 'BINDINGS_EFFECTS.FAILURE_EDIT'
320
- )} ${translatedPluralName}!`;
321
-
322
- const id = overrideDetailWithBinding ? binding?.id : detail?.id;
323
- if (!id) {
324
- snackbar.showError(failureMessage);
325
- return of(
326
- createEditBindingFailureAction(bindingsRepository)({
327
- error: failureMessage,
328
- })
329
- );
330
- }
331
-
332
- return editFunction(binding, id).pipe(
333
- map(() => {
334
- snackbar.showSuccess(successMessage);
335
- return createEditBindingSuccessAction(bindingsRepository)();
336
- }),
337
- catchError((error) => {
338
- snackbar.showError(failureMessage);
339
- return of(
340
- createEditBindingFailureAction(bindingsRepository)({ error })
341
- );
342
- })
343
- );
344
- })
345
- )
346
- );
347
- }
348
-
349
- function createDeleteBindingEffect<T extends { id: number | string }>(
350
- bindingsRepository: string,
351
- actions$: Actions,
352
- detail$: Observable<T | undefined>,
353
- bindingPluralName: string,
354
- deleteFunction: (
355
- bindingIds: string | number,
356
- detailId: string | number
357
- ) => Observable<any>,
358
- snackbar: any,
359
- translateService: any
360
- ) {
361
- return createEffect(() =>
362
- actions$.pipe(
363
- ofType(createDeleteBindingAction(bindingsRepository)),
364
- withLatestFrom(detail$),
365
- switchMap(([{ id }, detail]) => {
366
- const translatedPluralName =
367
- translateService.instant(bindingPluralName);
368
- const successMessage = `${translateService.instant(
369
- 'BINDINGS_EFFECTS.SUCCESS_DELETE'
370
- )} ${translatedPluralName}!`;
371
- const failureMessage = `${translateService.instant(
372
- 'BINDINGS_EFFECTS.FAILURE_DELETE'
373
- )} ${translatedPluralName}!`;
374
-
375
- if (!id && !detail?.id) {
376
- snackbar.showError(failureMessage);
377
- return of(
378
- createDeleteBindingsFailureAction(bindingsRepository)({
379
- error: failureMessage,
380
- })
381
- );
382
- }
383
-
384
- return deleteFunction(id, id ?? detail?.id).pipe(
385
- map(() => {
386
- snackbar.showSuccess(successMessage);
387
- return createDeleteBindingsSuccessAction(bindingsRepository)();
388
- }),
389
- catchError((error) => {
390
- snackbar.showError(failureMessage);
391
- return of(
392
- createDeleteBindingsFailureAction(bindingsRepository)({ error })
393
- );
394
- })
395
- );
396
- })
397
- )
398
- );
399
- }
400
-
401
- function createDeleteBindingsEffect<T extends { id: number | string }>(
402
- bindingsRepository: string,
403
- actions$: Actions,
404
- detail$: Observable<T | undefined>,
405
- bindingPluralName: string,
406
- deleteFunction: (
407
- bindingIds: number[],
408
- detailId: string | number
409
- ) => Observable<any>,
410
- snackbar: any,
411
- translateService: any
412
- ) {
413
- return createEffect(() =>
414
- actions$.pipe(
415
- ofType(createDeleteBindingsAction(bindingsRepository)),
416
- withLatestFrom(detail$),
417
- switchMap(([{ bindingIds }, detail]) => {
418
- const translatedPluralName =
419
- translateService.instant(bindingPluralName);
420
- const successMessage = `${translateService.instant(
421
- 'BINDINGS_EFFECTS.SUCCESS_DELETE'
422
- )} ${translatedPluralName}!`;
423
- const failureMessage = `${translateService.instant(
424
- 'BINDINGS_EFFECTS.FAILURE_DELETE'
425
- )} ${translatedPluralName}!`;
426
-
427
- if (!detail?.id) {
428
- snackbar.showError(failureMessage);
429
- return of(
430
- createDeleteBindingsFailureAction(bindingsRepository)({
431
- error: failureMessage,
432
- })
433
- );
434
- }
435
-
436
- return deleteFunction(bindingIds, detail.id).pipe(
437
- map(() => {
438
- snackbar.showSuccess(successMessage);
439
- return createDeleteBindingsSuccessAction(bindingsRepository)();
440
- }),
441
- catchError((error) => {
442
- snackbar.showError(failureMessage);
443
- return of(
444
- createDeleteBindingsFailureAction(bindingsRepository)({ error })
445
- );
446
- })
447
- );
448
- })
449
- )
450
- );
451
- }
452
-
453
- function createBindingModifiedSuccessEffect(
454
- bindingsRepository: string,
455
- actions$: Actions,
456
- tableService: any
457
- ) {
458
- return createEffect(
459
- () =>
460
- actions$.pipe(
461
- ofType(
462
- createAddBindingsSuccessAction(bindingsRepository),
463
- createEditBindingSuccessAction(bindingsRepository),
464
- createDeleteBindingsSuccessAction(bindingsRepository)
465
- ),
466
- tap(() => {
467
- tableService.forceReload();
468
- })
469
- ),
470
- { dispatch: false }
471
- );
472
- }
@@ -1,89 +0,0 @@
1
- import { createAction, props } from '@ngrx/store';
2
- import { FormState } from './detail.models';
3
-
4
- export function createInitDetailAction(detailsRepository: string) {
5
- return createAction(
6
- `[${detailsRepository} Page] Init`,
7
- props<{ obj: string | null | number | undefined | any }>()
8
- );
9
- }
10
-
11
- export function createInitNewDetailAction(detailsRepository: string) {
12
- return createAction(`[${detailsRepository} Page] Init New`);
13
- }
14
-
15
- export function createLoadDetailSuccessAction<T>(detailsRepository: string) {
16
- return createAction(
17
- `[${detailsRepository}/API] Load ${detailsRepository} Success`,
18
- props<{ item: T }>()
19
- );
20
- }
21
-
22
- export function createLoadDetailFailureAction(detailsRepository: string) {
23
- return createAction(
24
- `[${detailsRepository}/API] Load ${detailsRepository} Failure`,
25
- props<{ error: any }>()
26
- );
27
- }
28
-
29
- export function createUpdateDetailAction<T>(detailsRepository: string) {
30
- return createAction(
31
- `[${detailsRepository}/API] Update ${detailsRepository}`,
32
- props<{ item: T }>()
33
- );
34
- }
35
-
36
- export function createUpdateDetailSetErrorsAction(detailsRepository: string) {
37
- return createAction(
38
- `[${detailsRepository}/API] Update Validation Errors ${detailsRepository}`,
39
- props<{ error: any }>()
40
- )
41
- }
42
-
43
- export function createUpdateFormStateAction(detailsRepository: string) {
44
- return createAction(
45
- `[${detailsRepository}/API] Update Form State`,
46
- props<{ formState: FormState }>()
47
- );
48
- }
49
-
50
- export function createSaveDetailAction(detailsRepository: string) {
51
- return createAction(`[${detailsRepository}/API] Save Detail `);
52
- }
53
-
54
- export function createSaveDetailSuccessAction<T>(detailsRepository: string) {
55
- return createAction(
56
- `[${detailsRepository}/API] Save Detail Success`,
57
- props<{ item: T }>()
58
- );
59
- }
60
-
61
- export function createSaveDetailFailureAction(detailsRepository: string) {
62
- return createAction(
63
- `[${detailsRepository}/API] Save Detail Failure`,
64
- props<{ error: any }>()
65
- );
66
- }
67
-
68
- export function createUpdateSaveDetailAction(detailsRepository: string) {
69
- return createAction(`[${detailsRepository}/API] Update Detail `);
70
- }
71
-
72
- export function createResetStateAction(detailsRepository: string) {
73
- return createAction(`[${detailsRepository}/API] Reset State`);
74
- }
75
-
76
- export function createDeleteDetailAction(detailsRepository: string) {
77
- return createAction(`[${detailsRepository}/API] Delete Detail`);
78
- }
79
-
80
- export function createDeleteDetailSuccessAction(detailsRepository: string) {
81
- return createAction(`[${detailsRepository}/API] Delete Detail Success`);
82
- }
83
-
84
- export function createDeleteDetailFailureAction(detailsRepository: string) {
85
- return createAction(
86
- `[${detailsRepository}/API] Delete Detail Failure`,
87
- props<{ error: any }>()
88
- );
89
- }