@ngdux/form 3.0.1 → 4.0.0

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.
@@ -4,7 +4,7 @@ import { createEffect, ofType } from '@ngrx/effects';
4
4
  import { of } from 'rxjs';
5
5
  import { switchMap, map, catchError, exhaustMap, tap } from 'rxjs/operators';
6
6
  import * as i0 from '@angular/core';
7
- import { InjectionToken, Injectable, Inject } from '@angular/core';
7
+ import { InjectionToken, Inject, Injectable } from '@angular/core';
8
8
  import * as i1 from '@ngrx/store';
9
9
  import { createAction, props, createReducer, on, createSelector, createFeatureSelector, select } from '@ngrx/store';
10
10
  import { createRequestStateActionHandlers, createLoadingStateActionHandlers } from '@ngdux/store-common';
@@ -137,10 +137,10 @@ class AbstractFormReducerManager {
137
137
  const getState = createFeatureSelector(this.featureKey);
138
138
  return createFormSelectors(getState);
139
139
  }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AbstractFormReducerManager, deps: [{ token: i1.ReducerManager }, { token: FORM_FEATURE_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
141
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AbstractFormReducerManager }); }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormReducerManager, deps: [{ token: i1.ReducerManager }, { token: FORM_FEATURE_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
141
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormReducerManager }); }
142
142
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AbstractFormReducerManager, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormReducerManager, decorators: [{
144
144
  type: Injectable
145
145
  }], ctorParameters: () => [{ type: i1.ReducerManager }, { type: undefined, decorators: [{
146
146
  type: Inject,
@@ -1 +1 @@
1
- {"version":3,"file":"ngdux-form.mjs","sources":["../../../../../../../libs/ngdux/util/store/form/src/lib/+state/abstract-form-effects.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/models/form.model.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-actions.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-reducer.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-selectors.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/abstract-form-state.service.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/abstract-form.facade.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-state.ts","../../../../../../../libs/ngdux/util/store/form/src/ngdux-form.ts"],"sourcesContent":["import { FormNotificationService, FormService } from '@ngdux/data-model-common';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, exhaustMap, map, switchMap, tap } from 'rxjs/operators';\r\nimport { FormActions } from '../models/form.model';\r\n\r\nexport abstract class AbstractFormEffects<DTO, ERROR, CREATE_DTO = DTO> {\r\n load$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.load),\r\n switchMap(({ id }) =>\r\n this.service.loadResource(id).pipe(\r\n map(resource => this.formActions.loadSuccess({ resource })),\r\n catchError((errors: ERROR) => of(this.formActions.loadFailure({ errors })))\r\n )\r\n )\r\n )\r\n );\r\n\r\n create$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.create),\r\n switchMap(action => {\r\n if (!this.service.createResource) {\r\n throw new Error('createResource not implement in the ListService');\r\n }\r\n\r\n return this.service.createResource(action.resource).pipe(\r\n map(resource => this.formActions.createSuccess({ resource })),\r\n catchError((errors: ERROR) => of(this.formActions.createFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n update$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.save),\r\n switchMap(({ resource }) => {\r\n if (!this.service.saveResource) {\r\n throw new Error('saveResource not implement in the ListService');\r\n }\r\n\r\n return this.service.saveResource(resource).pipe(\r\n map(response => this.formActions.saveSuccess({ resource: response })),\r\n catchError((errors: ERROR) => of(this.formActions.saveFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n delete$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.delete),\r\n exhaustMap(action => {\r\n if (!this.service.deleteResource) {\r\n throw new Error('deleteResource not implement in the ListService');\r\n }\r\n\r\n return this.service.deleteResource(action.id).pipe(\r\n map(() => this.formActions.deleteSuccess({ id: action.id })),\r\n catchError((errors: ERROR) => of(this.formActions.deleteFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n errorsHandler$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(\r\n this.formActions.saveFailure,\r\n this.formActions.loadFailure,\r\n this.formActions.deleteFailure,\r\n this.formActions.createFailure\r\n ),\r\n tap(({ errors }) => {\r\n this.notificationService.onFormErrors(errors);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n protected constructor(\r\n protected readonly actions$: Actions,\r\n protected readonly store: Store,\r\n private readonly service: FormService<DTO, CREATE_DTO>,\r\n private readonly formActions: FormActions<DTO, ERROR, CREATE_DTO>,\r\n private readonly notificationService: FormNotificationService<ERROR>\r\n ) {}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { RequestState } from '@ngdux/data-model-common';\r\nimport { ApiRequestState, LoadingState } from '@ngdux/store-common';\r\nimport { ActionCreator, MemoizedSelector } from '@ngrx/store';\r\nimport { TypedAction } from '@ngrx/store/src/models';\r\n\r\nexport const FORM_FEATURE_KEY = new InjectionToken<string>('FORM_FEATURE_KEY');\r\n\r\nexport interface FormState<T, E> extends ApiRequestState<E>, LoadingState {\r\n resource?: T;\r\n}\r\n\r\nexport interface FormSelectors<T, E> {\r\n getRequestState: MemoizedSelector<object, RequestState>;\r\n getLoadingState: MemoizedSelector<object, RequestState>;\r\n getErrors: MemoizedSelector<object, E | undefined>;\r\n getResource: MemoizedSelector<object, T | undefined>;\r\n isReady: MemoizedSelector<object, boolean>;\r\n}\r\n\r\nexport interface FormActions<DTO, ERROR, CREATE_DTO = DTO> {\r\n load: ActionCreator<string, (props: { id: string }) => { id: string } & TypedAction<string>>;\r\n loadSuccess: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & TypedAction<string>>;\r\n loadFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & TypedAction<string>>;\r\n\r\n save: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & TypedAction<string>>;\r\n saveSuccess: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & TypedAction<string>>;\r\n saveFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & TypedAction<string>>;\r\n\r\n delete: ActionCreator<string, (props: { id: string }) => { id: string } & TypedAction<string>>;\r\n deleteSuccess: ActionCreator<string, (props: { id: string }) => { id: string } & TypedAction<string>>;\r\n deleteFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & TypedAction<string>>;\r\n\r\n create: ActionCreator<string, (props: { resource: CREATE_DTO }) => { resource: CREATE_DTO } & TypedAction<string>>;\r\n createSuccess: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & TypedAction<string>>;\r\n createFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & TypedAction<string>>;\r\n\r\n reset: ActionCreator<string, () => TypedAction<string>>;\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { FormActions } from '../models/form.model';\r\n\r\nexport function createFormActions<DTO, ERROR, CREATE_DTO = DTO>(\r\n featureName: string\r\n): FormActions<DTO, ERROR, CREATE_DTO> {\r\n const load = createAction(`[${featureName} API] Load ${featureName}`, props<{ id: string }>());\r\n const loadSuccess = createAction(`[${featureName} API] Load ${featureName} Success`, props<{ resource: DTO }>());\r\n const loadFailure = createAction(`[${featureName} API] Load ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const save = createAction(`[${featureName} API] Save ${featureName}`, props<{ resource: DTO }>());\r\n const saveSuccess = createAction(`[${featureName} API] Save ${featureName} Success`, props<{ resource: DTO }>());\r\n const saveFailure = createAction(`[${featureName} API] Save ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const deleteAction = createAction(`[${featureName} API] Delete ${featureName}`, props<{ id: string }>());\r\n const deleteSuccess = createAction(`[${featureName} API] Delete ${featureName} Success`, props<{ id: string }>());\r\n const deleteFailure = createAction(`[${featureName} API] Delete ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const create = createAction(`[${featureName} API] Create ${featureName}`, props<{ resource: CREATE_DTO }>());\r\n const createSuccess = createAction(`[${featureName} API] Create ${featureName} Success`, props<{ resource: DTO }>());\r\n const createFailure = createAction(`[${featureName} API] Create ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const reset = createAction(`[${featureName} API] Reset ${featureName}`);\r\n\r\n return {\r\n load,\r\n loadSuccess,\r\n loadFailure,\r\n save,\r\n saveSuccess,\r\n saveFailure,\r\n delete: deleteAction,\r\n deleteSuccess,\r\n deleteFailure,\r\n create,\r\n createSuccess,\r\n createFailure,\r\n reset\r\n };\r\n}\r\n","import { RequestState } from '@ngdux/data-model-common';\r\nimport { createLoadingStateActionHandlers, createRequestStateActionHandlers } from '@ngdux/store-common';\r\nimport { ActionCreator, ActionReducer, Creator, ReducerTypes, createReducer, on } from '@ngrx/store';\r\nimport { FormActions, FormState } from '../models/form.model';\r\n\r\nexport function createFormReducer<DTO, ERROR, CREATE_DTO = DTO>(\r\n actions: FormActions<DTO, ERROR, CREATE_DTO>,\r\n actionHandlers?: ReducerTypes<FormState<DTO, ERROR>, ActionCreator[]>[],\r\n initialFormState?: Record<string, any>\r\n): ActionReducer<FormState<DTO, ERROR>> {\r\n const initialState: FormState<DTO, ERROR> = { ...createInitialFormState<DTO, ERROR>(), ...initialFormState };\r\n return createReducer<FormState<DTO, ERROR>>(\r\n initialState,\r\n ...createFormActionHandlers<DTO, ERROR, CREATE_DTO>(initialState, actions),\r\n ...(actionHandlers || [])\r\n );\r\n}\r\n\r\nfunction createInitialFormState<DTO, ERROR>(): FormState<DTO, ERROR> {\r\n return {\r\n resource: undefined,\r\n loadingState: RequestState.IDLE,\r\n requestState: RequestState.IDLE,\r\n errors: undefined\r\n };\r\n}\r\n\r\nfunction createFormActionHandlers<DTO, ERROR, CREATE_DTO = DTO>(\r\n initialFormState: FormState<DTO, ERROR>,\r\n actions: FormActions<DTO, ERROR, CREATE_DTO>\r\n): ReducerTypes<FormState<DTO, ERROR>, ActionCreator<string, Creator<any[], object>>[]>[] {\r\n return [\r\n on(actions.reset, (): FormState<DTO, ERROR> => initialFormState),\r\n on(\r\n actions.loadSuccess,\r\n actions.createSuccess,\r\n actions.saveSuccess,\r\n (state: FormState<DTO, ERROR>, { resource }): FormState<DTO, ERROR> => ({ ...state, resource })\r\n ),\r\n on(\r\n actions.deleteSuccess,\r\n (state: FormState<DTO, ERROR>): FormState<DTO, ERROR> => ({\r\n ...state,\r\n resource: undefined\r\n })\r\n ),\r\n ...createRequestStateActionHandlers<FormState<DTO, ERROR>, ERROR>(\r\n actions.load,\r\n actions.save,\r\n actions.saveSuccess,\r\n actions.saveFailure\r\n ),\r\n ...createRequestStateActionHandlers<FormState<DTO, ERROR>, ERROR>(\r\n undefined,\r\n actions.create,\r\n actions.createSuccess,\r\n actions.createFailure\r\n ),\r\n ...createRequestStateActionHandlers<FormState<DTO, ERROR>, ERROR>(\r\n undefined,\r\n actions.delete,\r\n actions.deleteSuccess,\r\n actions.deleteFailure\r\n ),\r\n ...createLoadingStateActionHandlers<FormState<DTO, ERROR>>(actions.load, actions.loadSuccess, actions.loadFailure)\r\n ];\r\n}\r\n","import { RequestState } from '@ngdux/data-model-common';\r\nimport { createSelector, DefaultProjectorFn, MemoizedSelector } from '@ngrx/store';\r\nimport { FormSelectors, FormState } from '../models/form.model';\r\n\r\nexport function createFormSelectors<T, E>(\r\n getFormState: MemoizedSelector<object, FormState<T, E>, DefaultProjectorFn<FormState<T, E>>>\r\n): FormSelectors<T, E> {\r\n const getRequestState = createSelector(getFormState, state => state.requestState);\r\n const getLoadingState = createSelector(getFormState, state => state.loadingState);\r\n const getErrors = createSelector(getFormState, state => state.errors);\r\n const getResource = createSelector(getFormState, state => state.resource);\r\n\r\n const isReady = createSelector(\r\n getResource,\r\n getLoadingState,\r\n (resource, loadingState) => !!resource && loadingState === RequestState.SUCCESS\r\n );\r\n\r\n return {\r\n getRequestState,\r\n getLoadingState,\r\n getErrors,\r\n getResource,\r\n isReady\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { ReducerManager, createFeatureSelector } from '@ngrx/store';\r\nimport { FORM_FEATURE_KEY, FormActions, FormSelectors, FormState } from '../models/form.model';\r\nimport { createFormActions } from './form-actions';\r\nimport { createFormReducer } from './form-reducer';\r\nimport { createFormSelectors } from './form-selectors';\r\n\r\n@Injectable()\r\nexport abstract class AbstractFormReducerManager<DTO, ERROR, CREATE_DTO = DTO> {\r\n actions: FormActions<DTO, ERROR, CREATE_DTO>;\r\n selectors: FormSelectors<DTO, ERROR>;\r\n\r\n constructor(\r\n private readonly reducerManager: ReducerManager,\r\n @Inject(FORM_FEATURE_KEY) private readonly featureKey: string\r\n ) {\r\n this.actions = this.getActions();\r\n this.addReducer();\r\n this.selectors = this.getSelectors();\r\n }\r\n\r\n protected getActions() {\r\n return createFormActions<DTO, ERROR, CREATE_DTO>(this.featureKey);\r\n }\r\n\r\n protected addReducer() {\r\n if (!this.reducerManager.currentReducers[this.featureKey]) {\r\n const reducer = createFormReducer(this.actions);\r\n this.reducerManager.addReducer(this.featureKey, reducer);\r\n }\r\n }\r\n\r\n protected getSelectors() {\r\n const getState = createFeatureSelector<FormState<DTO, ERROR>>(this.featureKey);\r\n return createFormSelectors(getState);\r\n }\r\n}\r\n","import { ActionPayload } from '@ngdux/store-common';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { FormActions, FormSelectors } from '../models/form.model';\r\n\r\nexport abstract class AbstractFormFacade<DTO, E, CREATE_DTO = DTO> {\r\n readonly resource$ = this.store.pipe(select(this.formSelectors.getResource));\r\n readonly loadingState$ = this.store.pipe(select(this.formSelectors.getLoadingState));\r\n readonly requestState$ = this.store.pipe(select(this.formSelectors.getRequestState));\r\n readonly errors$ = this.store.pipe(select(this.formSelectors.getErrors));\r\n readonly isReady$ = this.store.pipe(select(this.formSelectors.isReady));\r\n\r\n constructor(\r\n protected readonly store: Store,\r\n private readonly formActions: FormActions<DTO, E, CREATE_DTO>,\r\n private readonly formSelectors: FormSelectors<DTO, E>\r\n ) {}\r\n\r\n create(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['create']>): void {\r\n this.store.dispatch(this.formActions.create(props));\r\n }\r\n\r\n load(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['load']>): void {\r\n this.store.dispatch(this.formActions.load(props));\r\n }\r\n\r\n save(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['save']>): void {\r\n this.store.dispatch(this.formActions.save(props));\r\n }\r\n\r\n delete(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['delete']>): void {\r\n this.store.dispatch(this.formActions.delete(props));\r\n }\r\n\r\n reset(): void {\r\n this.store.dispatch(this.formActions.reset());\r\n }\r\n}\r\n","import { Action, createFeatureSelector } from '@ngrx/store';\r\nimport { FormState } from '../models/form.model';\r\nimport { createFormActions } from './form-actions';\r\nimport { createFormReducer } from './form-reducer';\r\nimport { createFormSelectors } from './form-selectors';\r\n\r\nexport function createFormState<DTO, ERROR, CREATE_DTO = DTO>(featureName: string) {\r\n const actions = createFormActions<DTO, ERROR, CREATE_DTO>(featureName);\r\n const reducer = createFormReducer(actions);\r\n const getState = createFeatureSelector<FormState<DTO, ERROR>>(featureName);\r\n const selectors = createFormSelectors(getState);\r\n\r\n return {\r\n actions,\r\n reducer: (state: FormState<DTO, ERROR>, action: Action): FormState<DTO, ERROR> => reducer(state, action),\r\n selectors\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngdux-form.mjs","sources":["../../../../../../../libs/ngdux/util/store/form/src/lib/+state/abstract-form-effects.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/models/form.model.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-actions.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-reducer.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-selectors.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/abstract-form-state.service.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/abstract-form.facade.ts","../../../../../../../libs/ngdux/util/store/form/src/lib/+state/form-state.ts","../../../../../../../libs/ngdux/util/store/form/src/ngdux-form.ts"],"sourcesContent":["import { FormNotificationService, FormService } from '@ngdux/data-model-common';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, exhaustMap, map, switchMap, tap } from 'rxjs/operators';\r\nimport { FormActions } from '../models/form.model';\r\n\r\nexport abstract class AbstractFormEffects<DTO, ERROR, CREATE_DTO = DTO> {\r\n load$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.load),\r\n switchMap(({ id }) =>\r\n this.service.loadResource(id).pipe(\r\n map(resource => this.formActions.loadSuccess({ resource })),\r\n catchError((errors: ERROR) => of(this.formActions.loadFailure({ errors })))\r\n )\r\n )\r\n )\r\n );\r\n\r\n create$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.create),\r\n switchMap(action => {\r\n if (!this.service.createResource) {\r\n throw new Error('createResource not implement in the ListService');\r\n }\r\n\r\n return this.service.createResource(action.resource).pipe(\r\n map(resource => this.formActions.createSuccess({ resource })),\r\n catchError((errors: ERROR) => of(this.formActions.createFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n update$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.save),\r\n switchMap(({ resource }) => {\r\n if (!this.service.saveResource) {\r\n throw new Error('saveResource not implement in the ListService');\r\n }\r\n\r\n return this.service.saveResource(resource).pipe(\r\n map(response => this.formActions.saveSuccess({ resource: response })),\r\n catchError((errors: ERROR) => of(this.formActions.saveFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n delete$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.formActions.delete),\r\n exhaustMap(action => {\r\n if (!this.service.deleteResource) {\r\n throw new Error('deleteResource not implement in the ListService');\r\n }\r\n\r\n return this.service.deleteResource(action.id).pipe(\r\n map(() => this.formActions.deleteSuccess({ id: action.id })),\r\n catchError((errors: ERROR) => of(this.formActions.deleteFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n errorsHandler$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(\r\n this.formActions.saveFailure,\r\n this.formActions.loadFailure,\r\n this.formActions.deleteFailure,\r\n this.formActions.createFailure\r\n ),\r\n tap(({ errors }) => {\r\n this.notificationService.onFormErrors(errors);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n protected constructor(\r\n protected readonly actions$: Actions,\r\n protected readonly store: Store,\r\n private readonly service: FormService<DTO, CREATE_DTO>,\r\n private readonly formActions: FormActions<DTO, ERROR, CREATE_DTO>,\r\n private readonly notificationService: FormNotificationService<ERROR>\r\n ) {}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { RequestState } from '@ngdux/data-model-common';\r\nimport { ApiRequestState, LoadingState } from '@ngdux/store-common';\r\nimport { Action, ActionCreator, MemoizedSelector } from '@ngrx/store';\r\n\r\nexport const FORM_FEATURE_KEY = new InjectionToken<string>('FORM_FEATURE_KEY');\r\n\r\nexport interface FormState<T, E> extends ApiRequestState<E>, LoadingState {\r\n resource?: T;\r\n}\r\n\r\nexport interface FormSelectors<T, E> {\r\n getRequestState: MemoizedSelector<object, RequestState>;\r\n getLoadingState: MemoizedSelector<object, RequestState>;\r\n getErrors: MemoizedSelector<object, E | undefined>;\r\n getResource: MemoizedSelector<object, T | undefined>;\r\n isReady: MemoizedSelector<object, boolean>;\r\n}\r\n\r\nexport interface FormActions<DTO, ERROR, CREATE_DTO = DTO> {\r\n load: ActionCreator<string, (props: { id: string }) => { id: string } & Action<string>>;\r\n loadSuccess: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & Action<string>>;\r\n loadFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & Action<string>>;\r\n\r\n save: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & Action<string>>;\r\n saveSuccess: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & Action<string>>;\r\n saveFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & Action<string>>;\r\n\r\n delete: ActionCreator<string, (props: { id: string }) => { id: string } & Action<string>>;\r\n deleteSuccess: ActionCreator<string, (props: { id: string }) => { id: string } & Action<string>>;\r\n deleteFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & Action<string>>;\r\n\r\n create: ActionCreator<string, (props: { resource: CREATE_DTO }) => { resource: CREATE_DTO } & Action<string>>;\r\n createSuccess: ActionCreator<string, (props: { resource: DTO }) => { resource: DTO } & Action<string>>;\r\n createFailure: ActionCreator<string, (props: { errors: ERROR }) => { errors: ERROR } & Action<string>>;\r\n\r\n reset: ActionCreator<string, () => Action<string>>;\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { FormActions } from '../models/form.model';\r\n\r\nexport function createFormActions<DTO, ERROR, CREATE_DTO = DTO>(\r\n featureName: string\r\n): FormActions<DTO, ERROR, CREATE_DTO> {\r\n const load = createAction(`[${featureName} API] Load ${featureName}`, props<{ id: string }>());\r\n const loadSuccess = createAction(`[${featureName} API] Load ${featureName} Success`, props<{ resource: DTO }>());\r\n const loadFailure = createAction(`[${featureName} API] Load ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const save = createAction(`[${featureName} API] Save ${featureName}`, props<{ resource: DTO }>());\r\n const saveSuccess = createAction(`[${featureName} API] Save ${featureName} Success`, props<{ resource: DTO }>());\r\n const saveFailure = createAction(`[${featureName} API] Save ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const deleteAction = createAction(`[${featureName} API] Delete ${featureName}`, props<{ id: string }>());\r\n const deleteSuccess = createAction(`[${featureName} API] Delete ${featureName} Success`, props<{ id: string }>());\r\n const deleteFailure = createAction(`[${featureName} API] Delete ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const create = createAction(`[${featureName} API] Create ${featureName}`, props<{ resource: CREATE_DTO }>());\r\n const createSuccess = createAction(`[${featureName} API] Create ${featureName} Success`, props<{ resource: DTO }>());\r\n const createFailure = createAction(`[${featureName} API] Create ${featureName} Failure`, props<{ errors: ERROR }>());\r\n\r\n const reset = createAction(`[${featureName} API] Reset ${featureName}`);\r\n\r\n return {\r\n load,\r\n loadSuccess,\r\n loadFailure,\r\n save,\r\n saveSuccess,\r\n saveFailure,\r\n delete: deleteAction,\r\n deleteSuccess,\r\n deleteFailure,\r\n create,\r\n createSuccess,\r\n createFailure,\r\n reset\r\n };\r\n}\r\n","import { RequestState } from '@ngdux/data-model-common';\r\nimport { createLoadingStateActionHandlers, createRequestStateActionHandlers } from '@ngdux/store-common';\r\nimport { ActionCreator, ActionReducer, Creator, ReducerTypes, createReducer, on } from '@ngrx/store';\r\nimport { FormActions, FormState } from '../models/form.model';\r\n\r\nexport function createFormReducer<DTO, ERROR, CREATE_DTO = DTO>(\r\n actions: FormActions<DTO, ERROR, CREATE_DTO>,\r\n actionHandlers?: ReducerTypes<FormState<DTO, ERROR>, ActionCreator[]>[],\r\n initialFormState?: Record<string, any>\r\n): ActionReducer<FormState<DTO, ERROR>> {\r\n const initialState: FormState<DTO, ERROR> = { ...createInitialFormState<DTO, ERROR>(), ...initialFormState };\r\n return createReducer<FormState<DTO, ERROR>>(\r\n initialState,\r\n ...createFormActionHandlers<DTO, ERROR, CREATE_DTO>(initialState, actions),\r\n ...(actionHandlers || [])\r\n );\r\n}\r\n\r\nfunction createInitialFormState<DTO, ERROR>(): FormState<DTO, ERROR> {\r\n return {\r\n resource: undefined,\r\n loadingState: RequestState.IDLE,\r\n requestState: RequestState.IDLE,\r\n errors: undefined\r\n };\r\n}\r\n\r\nfunction createFormActionHandlers<DTO, ERROR, CREATE_DTO = DTO>(\r\n initialFormState: FormState<DTO, ERROR>,\r\n actions: FormActions<DTO, ERROR, CREATE_DTO>\r\n): ReducerTypes<FormState<DTO, ERROR>, ActionCreator<string, Creator<any[], object>>[]>[] {\r\n return [\r\n on(actions.reset, (): FormState<DTO, ERROR> => initialFormState),\r\n on(\r\n actions.loadSuccess,\r\n actions.createSuccess,\r\n actions.saveSuccess,\r\n (state: FormState<DTO, ERROR>, { resource }): FormState<DTO, ERROR> => ({ ...state, resource })\r\n ),\r\n on(\r\n actions.deleteSuccess,\r\n (state: FormState<DTO, ERROR>): FormState<DTO, ERROR> => ({\r\n ...state,\r\n resource: undefined\r\n })\r\n ),\r\n ...createRequestStateActionHandlers<FormState<DTO, ERROR>, ERROR>(\r\n actions.load,\r\n actions.save,\r\n actions.saveSuccess,\r\n actions.saveFailure\r\n ),\r\n ...createRequestStateActionHandlers<FormState<DTO, ERROR>, ERROR>(\r\n undefined,\r\n actions.create,\r\n actions.createSuccess,\r\n actions.createFailure\r\n ),\r\n ...createRequestStateActionHandlers<FormState<DTO, ERROR>, ERROR>(\r\n undefined,\r\n actions.delete,\r\n actions.deleteSuccess,\r\n actions.deleteFailure\r\n ),\r\n ...createLoadingStateActionHandlers<FormState<DTO, ERROR>>(actions.load, actions.loadSuccess, actions.loadFailure)\r\n ];\r\n}\r\n","import { RequestState } from '@ngdux/data-model-common';\r\nimport { createSelector, DefaultProjectorFn, MemoizedSelector } from '@ngrx/store';\r\nimport { FormSelectors, FormState } from '../models/form.model';\r\n\r\nexport function createFormSelectors<T, E>(\r\n getFormState: MemoizedSelector<object, FormState<T, E>, DefaultProjectorFn<FormState<T, E>>>\r\n): FormSelectors<T, E> {\r\n const getRequestState = createSelector(getFormState, state => state.requestState);\r\n const getLoadingState = createSelector(getFormState, state => state.loadingState);\r\n const getErrors = createSelector(getFormState, state => state.errors);\r\n const getResource = createSelector(getFormState, state => state.resource);\r\n\r\n const isReady = createSelector(\r\n getResource,\r\n getLoadingState,\r\n (resource, loadingState) => !!resource && loadingState === RequestState.SUCCESS\r\n );\r\n\r\n return {\r\n getRequestState,\r\n getLoadingState,\r\n getErrors,\r\n getResource,\r\n isReady\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { ReducerManager, createFeatureSelector } from '@ngrx/store';\r\nimport { FORM_FEATURE_KEY, FormActions, FormSelectors, FormState } from '../models/form.model';\r\nimport { createFormActions } from './form-actions';\r\nimport { createFormReducer } from './form-reducer';\r\nimport { createFormSelectors } from './form-selectors';\r\n\r\n@Injectable()\r\nexport abstract class AbstractFormReducerManager<DTO, ERROR, CREATE_DTO = DTO> {\r\n actions: FormActions<DTO, ERROR, CREATE_DTO>;\r\n selectors: FormSelectors<DTO, ERROR>;\r\n\r\n constructor(\r\n private readonly reducerManager: ReducerManager,\r\n @Inject(FORM_FEATURE_KEY) private readonly featureKey: string\r\n ) {\r\n this.actions = this.getActions();\r\n this.addReducer();\r\n this.selectors = this.getSelectors();\r\n }\r\n\r\n protected getActions() {\r\n return createFormActions<DTO, ERROR, CREATE_DTO>(this.featureKey);\r\n }\r\n\r\n protected addReducer() {\r\n if (!this.reducerManager.currentReducers[this.featureKey]) {\r\n const reducer = createFormReducer(this.actions);\r\n this.reducerManager.addReducer(this.featureKey, reducer);\r\n }\r\n }\r\n\r\n protected getSelectors() {\r\n const getState = createFeatureSelector<FormState<DTO, ERROR>>(this.featureKey);\r\n return createFormSelectors(getState);\r\n }\r\n}\r\n","import { ActionPayload } from '@ngdux/store-common';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { FormActions, FormSelectors } from '../models/form.model';\r\n\r\nexport abstract class AbstractFormFacade<DTO, E, CREATE_DTO = DTO> {\r\n readonly resource$ = this.store.pipe(select(this.formSelectors.getResource));\r\n readonly loadingState$ = this.store.pipe(select(this.formSelectors.getLoadingState));\r\n readonly requestState$ = this.store.pipe(select(this.formSelectors.getRequestState));\r\n readonly errors$ = this.store.pipe(select(this.formSelectors.getErrors));\r\n readonly isReady$ = this.store.pipe(select(this.formSelectors.isReady));\r\n\r\n constructor(\r\n protected readonly store: Store,\r\n private readonly formActions: FormActions<DTO, E, CREATE_DTO>,\r\n private readonly formSelectors: FormSelectors<DTO, E>\r\n ) {}\r\n\r\n create(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['create']>): void {\r\n this.store.dispatch(this.formActions.create(props));\r\n }\r\n\r\n load(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['load']>): void {\r\n this.store.dispatch(this.formActions.load(props));\r\n }\r\n\r\n save(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['save']>): void {\r\n this.store.dispatch(this.formActions.save(props));\r\n }\r\n\r\n delete(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['delete']>): void {\r\n this.store.dispatch(this.formActions.delete(props));\r\n }\r\n\r\n reset(): void {\r\n this.store.dispatch(this.formActions.reset());\r\n }\r\n}\r\n","import { Action, createFeatureSelector } from '@ngrx/store';\r\nimport { FormState } from '../models/form.model';\r\nimport { createFormActions } from './form-actions';\r\nimport { createFormReducer } from './form-reducer';\r\nimport { createFormSelectors } from './form-selectors';\r\n\r\nexport function createFormState<DTO, ERROR, CREATE_DTO = DTO>(featureName: string) {\r\n const actions = createFormActions<DTO, ERROR, CREATE_DTO>(featureName);\r\n const reducer = createFormReducer(actions);\r\n const getState = createFeatureSelector<FormState<DTO, ERROR>>(featureName);\r\n const selectors = createFormSelectors(getState);\r\n\r\n return {\r\n actions,\r\n reducer: (state: FormState<DTO, ERROR>, action: Action): FormState<DTO, ERROR> => reducer(state, action),\r\n selectors\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,9 +1,169 @@
1
+ import * as _ngdux_data_model_common from '@ngdux/data-model-common';
2
+ import { RequestState, FormService, FormNotificationService } from '@ngdux/data-model-common';
1
3
  export { FormNotificationService, FormService, RequestState } from '@ngdux/data-model-common';
2
- export * from './lib/+state/abstract-form-effects';
3
- export * from './lib/+state/abstract-form-state.service';
4
- export * from './lib/+state/abstract-form.facade';
5
- export * from './lib/+state/form-actions';
6
- export * from './lib/+state/form-reducer';
7
- export * from './lib/+state/form-selectors';
8
- export * from './lib/+state/form-state';
9
- export * from './lib/models/form.model';
4
+ import * as _ngrx_effects from '@ngrx/effects';
5
+ import { Actions } from '@ngrx/effects';
6
+ import * as rxjs from 'rxjs';
7
+ import * as _ngrx_store from '@ngrx/store';
8
+ import { ActionCreator, Action, MemoizedSelector, Store, ReducerManager, ReducerTypes, ActionReducer, DefaultProjectorFn } from '@ngrx/store';
9
+ import * as i0 from '@angular/core';
10
+ import { InjectionToken } from '@angular/core';
11
+ import { ApiRequestState, LoadingState, ActionPayload } from '@ngdux/store-common';
12
+
13
+ declare const FORM_FEATURE_KEY: InjectionToken<string>;
14
+ interface FormState<T, E> extends ApiRequestState<E>, LoadingState {
15
+ resource?: T;
16
+ }
17
+ interface FormSelectors<T, E> {
18
+ getRequestState: MemoizedSelector<object, RequestState>;
19
+ getLoadingState: MemoizedSelector<object, RequestState>;
20
+ getErrors: MemoizedSelector<object, E | undefined>;
21
+ getResource: MemoizedSelector<object, T | undefined>;
22
+ isReady: MemoizedSelector<object, boolean>;
23
+ }
24
+ interface FormActions<DTO, ERROR, CREATE_DTO = DTO> {
25
+ load: ActionCreator<string, (props: {
26
+ id: string;
27
+ }) => {
28
+ id: string;
29
+ } & Action<string>>;
30
+ loadSuccess: ActionCreator<string, (props: {
31
+ resource: DTO;
32
+ }) => {
33
+ resource: DTO;
34
+ } & Action<string>>;
35
+ loadFailure: ActionCreator<string, (props: {
36
+ errors: ERROR;
37
+ }) => {
38
+ errors: ERROR;
39
+ } & Action<string>>;
40
+ save: ActionCreator<string, (props: {
41
+ resource: DTO;
42
+ }) => {
43
+ resource: DTO;
44
+ } & Action<string>>;
45
+ saveSuccess: ActionCreator<string, (props: {
46
+ resource: DTO;
47
+ }) => {
48
+ resource: DTO;
49
+ } & Action<string>>;
50
+ saveFailure: ActionCreator<string, (props: {
51
+ errors: ERROR;
52
+ }) => {
53
+ errors: ERROR;
54
+ } & Action<string>>;
55
+ delete: ActionCreator<string, (props: {
56
+ id: string;
57
+ }) => {
58
+ id: string;
59
+ } & Action<string>>;
60
+ deleteSuccess: ActionCreator<string, (props: {
61
+ id: string;
62
+ }) => {
63
+ id: string;
64
+ } & Action<string>>;
65
+ deleteFailure: ActionCreator<string, (props: {
66
+ errors: ERROR;
67
+ }) => {
68
+ errors: ERROR;
69
+ } & Action<string>>;
70
+ create: ActionCreator<string, (props: {
71
+ resource: CREATE_DTO;
72
+ }) => {
73
+ resource: CREATE_DTO;
74
+ } & Action<string>>;
75
+ createSuccess: ActionCreator<string, (props: {
76
+ resource: DTO;
77
+ }) => {
78
+ resource: DTO;
79
+ } & Action<string>>;
80
+ createFailure: ActionCreator<string, (props: {
81
+ errors: ERROR;
82
+ }) => {
83
+ errors: ERROR;
84
+ } & Action<string>>;
85
+ reset: ActionCreator<string, () => Action<string>>;
86
+ }
87
+
88
+ declare abstract class AbstractFormEffects<DTO, ERROR, CREATE_DTO = DTO> {
89
+ protected readonly actions$: Actions;
90
+ protected readonly store: Store;
91
+ private readonly service;
92
+ private readonly formActions;
93
+ private readonly notificationService;
94
+ load$: rxjs.Observable<({
95
+ resource: DTO;
96
+ } & _ngrx_store.Action<string>) | ({
97
+ errors: ERROR;
98
+ } & _ngrx_store.Action<string>)> & _ngrx_effects.CreateEffectMetadata;
99
+ create$: rxjs.Observable<({
100
+ resource: DTO;
101
+ } & _ngrx_store.Action<string>) | ({
102
+ errors: ERROR;
103
+ } & _ngrx_store.Action<string>)> & _ngrx_effects.CreateEffectMetadata;
104
+ update$: rxjs.Observable<({
105
+ resource: DTO;
106
+ } & _ngrx_store.Action<string>) | ({
107
+ errors: ERROR;
108
+ } & _ngrx_store.Action<string>)> & _ngrx_effects.CreateEffectMetadata;
109
+ delete$: rxjs.Observable<({
110
+ id: string;
111
+ } & _ngrx_store.Action<string>) | ({
112
+ errors: ERROR;
113
+ } & _ngrx_store.Action<string>)> & _ngrx_effects.CreateEffectMetadata;
114
+ errorsHandler$: rxjs.Observable<({
115
+ errors: ERROR;
116
+ } & _ngrx_store.Action<string>) | ({
117
+ errors: ERROR;
118
+ } & _ngrx_store.Action<string>) | ({
119
+ errors: ERROR;
120
+ } & _ngrx_store.Action<string>) | ({
121
+ errors: ERROR;
122
+ } & _ngrx_store.Action<string>)> & _ngrx_effects.CreateEffectMetadata;
123
+ protected constructor(actions$: Actions, store: Store, service: FormService<DTO, CREATE_DTO>, formActions: FormActions<DTO, ERROR, CREATE_DTO>, notificationService: FormNotificationService<ERROR>);
124
+ }
125
+
126
+ declare abstract class AbstractFormReducerManager<DTO, ERROR, CREATE_DTO = DTO> {
127
+ private readonly reducerManager;
128
+ private readonly featureKey;
129
+ actions: FormActions<DTO, ERROR, CREATE_DTO>;
130
+ selectors: FormSelectors<DTO, ERROR>;
131
+ constructor(reducerManager: ReducerManager, featureKey: string);
132
+ protected getActions(): FormActions<DTO, ERROR, CREATE_DTO>;
133
+ protected addReducer(): void;
134
+ protected getSelectors(): FormSelectors<DTO, ERROR>;
135
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractFormReducerManager<any, any, any>, never>;
136
+ static ɵprov: i0.ɵɵInjectableDeclaration<AbstractFormReducerManager<any, any, any>>;
137
+ }
138
+
139
+ declare abstract class AbstractFormFacade<DTO, E, CREATE_DTO = DTO> {
140
+ protected readonly store: Store;
141
+ private readonly formActions;
142
+ private readonly formSelectors;
143
+ readonly resource$: rxjs.Observable<DTO | undefined>;
144
+ readonly loadingState$: rxjs.Observable<_ngdux_data_model_common.RequestState>;
145
+ readonly requestState$: rxjs.Observable<_ngdux_data_model_common.RequestState>;
146
+ readonly errors$: rxjs.Observable<E | undefined>;
147
+ readonly isReady$: rxjs.Observable<boolean>;
148
+ constructor(store: Store, formActions: FormActions<DTO, E, CREATE_DTO>, formSelectors: FormSelectors<DTO, E>);
149
+ create(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['create']>): void;
150
+ load(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['load']>): void;
151
+ save(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['save']>): void;
152
+ delete(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['delete']>): void;
153
+ reset(): void;
154
+ }
155
+
156
+ declare function createFormActions<DTO, ERROR, CREATE_DTO = DTO>(featureName: string): FormActions<DTO, ERROR, CREATE_DTO>;
157
+
158
+ declare function createFormReducer<DTO, ERROR, CREATE_DTO = DTO>(actions: FormActions<DTO, ERROR, CREATE_DTO>, actionHandlers?: ReducerTypes<FormState<DTO, ERROR>, ActionCreator[]>[], initialFormState?: Record<string, any>): ActionReducer<FormState<DTO, ERROR>>;
159
+
160
+ declare function createFormSelectors<T, E>(getFormState: MemoizedSelector<object, FormState<T, E>, DefaultProjectorFn<FormState<T, E>>>): FormSelectors<T, E>;
161
+
162
+ declare function createFormState<DTO, ERROR, CREATE_DTO = DTO>(featureName: string): {
163
+ actions: FormActions<DTO, ERROR, CREATE_DTO>;
164
+ reducer: (state: FormState<DTO, ERROR>, action: Action) => FormState<DTO, ERROR>;
165
+ selectors: FormSelectors<DTO, ERROR>;
166
+ };
167
+
168
+ export { AbstractFormEffects, AbstractFormFacade, AbstractFormReducerManager, FORM_FEATURE_KEY, createFormActions, createFormReducer, createFormSelectors, createFormState };
169
+ export type { FormActions, FormSelectors, FormState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngdux/form",
3
- "version": "3.0.1",
3
+ "version": "4.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git@github.com:allanartuso/ngdux.git",
@@ -9,10 +9,10 @@
9
9
  "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/form#readme",
10
10
  "peerDependencies": {
11
11
  "@ngdux/data-model-common": "^3.0.0",
12
- "@angular/core": "^17.0.0",
12
+ "@angular/core": "^20.0.0",
13
13
  "@ngdux/store-common": "^3.0.0",
14
- "@ngrx/store": "^17.0.0",
15
- "@ngrx/effects": "^17.0.0"
14
+ "@ngrx/store": "^20.0.0",
15
+ "@ngrx/effects": "^20.0.0"
16
16
  },
17
17
  "module": "fesm2022/ngdux-form.mjs",
18
18
  "typings": "index.d.ts",
@@ -22,8 +22,6 @@
22
22
  },
23
23
  ".": {
24
24
  "types": "./index.d.ts",
25
- "esm2022": "./esm2022/ngdux-form.mjs",
26
- "esm": "./esm2022/ngdux-form.mjs",
27
25
  "default": "./fesm2022/ngdux-form.mjs"
28
26
  }
29
27
  },
package/esm2022/index.mjs DELETED
@@ -1,10 +0,0 @@
1
- export { RequestState } from '@ngdux/data-model-common';
2
- export * from './lib/+state/abstract-form-effects';
3
- export * from './lib/+state/abstract-form-state.service';
4
- export * from './lib/+state/abstract-form.facade';
5
- export * from './lib/+state/form-actions';
6
- export * from './lib/+state/form-reducer';
7
- export * from './lib/+state/form-selectors';
8
- export * from './lib/+state/form-state';
9
- export * from './lib/models/form.model';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvZm9ybS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QyxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBGb3JtTm90aWZpY2F0aW9uU2VydmljZSwgRm9ybVNlcnZpY2UsIFJlcXVlc3RTdGF0ZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9hYnN0cmFjdC1mb3JtLWVmZmVjdHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvYWJzdHJhY3QtZm9ybS1zdGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvK3N0YXRlL2Fic3RyYWN0LWZvcm0uZmFjYWRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvK3N0YXRlL2Zvcm0tYWN0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9mb3JtLXJlZHVjZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvZm9ybS1zZWxlY3RvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvZm9ybS1zdGF0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mb3JtLm1vZGVsJztcclxuIl19
@@ -1,35 +0,0 @@
1
- import { createEffect, ofType } from '@ngrx/effects';
2
- import { of } from 'rxjs';
3
- import { catchError, exhaustMap, map, switchMap, tap } from 'rxjs/operators';
4
- export class AbstractFormEffects {
5
- constructor(actions$, store, service, formActions, notificationService) {
6
- this.actions$ = actions$;
7
- this.store = store;
8
- this.service = service;
9
- this.formActions = formActions;
10
- this.notificationService = notificationService;
11
- this.load$ = createEffect(() => this.actions$.pipe(ofType(this.formActions.load), switchMap(({ id }) => this.service.loadResource(id).pipe(map(resource => this.formActions.loadSuccess({ resource })), catchError((errors) => of(this.formActions.loadFailure({ errors })))))));
12
- this.create$ = createEffect(() => this.actions$.pipe(ofType(this.formActions.create), switchMap(action => {
13
- if (!this.service.createResource) {
14
- throw new Error('createResource not implement in the ListService');
15
- }
16
- return this.service.createResource(action.resource).pipe(map(resource => this.formActions.createSuccess({ resource })), catchError((errors) => of(this.formActions.createFailure({ errors }))));
17
- })));
18
- this.update$ = createEffect(() => this.actions$.pipe(ofType(this.formActions.save), switchMap(({ resource }) => {
19
- if (!this.service.saveResource) {
20
- throw new Error('saveResource not implement in the ListService');
21
- }
22
- return this.service.saveResource(resource).pipe(map(response => this.formActions.saveSuccess({ resource: response })), catchError((errors) => of(this.formActions.saveFailure({ errors }))));
23
- })));
24
- this.delete$ = createEffect(() => this.actions$.pipe(ofType(this.formActions.delete), exhaustMap(action => {
25
- if (!this.service.deleteResource) {
26
- throw new Error('deleteResource not implement in the ListService');
27
- }
28
- return this.service.deleteResource(action.id).pipe(map(() => this.formActions.deleteSuccess({ id: action.id })), catchError((errors) => of(this.formActions.deleteFailure({ errors }))));
29
- })));
30
- this.errorsHandler$ = createEffect(() => this.actions$.pipe(ofType(this.formActions.saveFailure, this.formActions.loadFailure, this.formActions.deleteFailure, this.formActions.createFailure), tap(({ errors }) => {
31
- this.notificationService.onFormErrors(errors);
32
- })), { dispatch: false });
33
- }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS1lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2Zvcm0vc3JjL2xpYi8rc3RhdGUvYWJzdHJhY3QtZm9ybS1lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3RSxNQUFNLE9BQWdCLG1CQUFtQjtJQTZFdkMsWUFDcUIsUUFBaUIsRUFDakIsS0FBWSxFQUNkLE9BQXFDLEVBQ3JDLFdBQWdELEVBQ2hELG1CQUFtRDtRQUpqRCxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBcUM7UUFDaEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFnQztRQWpGdEUsVUFBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUM3QixTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNoQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENB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Q0FBQyxDQUFDLENBQUMsQ0FDOUUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztRQUVGLG1CQUFjLEdBQUcsWUFBWSxDQUMzQixHQUFHLEVBQUUsQ0FDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUMvQixFQUNELEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUNILEVBQ0gsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQ3BCLENBQUM7SUFRQyxDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtTm90aWZpY2F0aW9uU2VydmljZSwgRm9ybVNlcnZpY2UgfSBmcm9tICdAbmdkdXgvZGF0YS1tb2RlbC1jb21tb24nO1xyXG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZXhoYXVzdE1hcCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRm9ybUFjdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGb3JtRWZmZWN0czxEVE8sIEVSUk9SLCBDUkVBVEVfRFRPID0gRFRPPiB7XHJcbiAgbG9hZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMuZm9ybUFjdGlvbnMubG9hZCksXHJcbiAgICAgIHN3aXRjaE1hcCgoeyBpZCB9KSA9PlxyXG4gICAgICAgIHRoaXMuc2VydmljZS5sb2FkUmVzb3VyY2UoaWQpLnBpcGUoXHJcbiAgICAgICAgICBtYXAocmVzb3VyY2UgPT4gdGhpcy5mb3JtQWN0aW9ucy5sb2FkU3VjY2Vzcyh7IHJlc291cmNlIH0pKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yczogRVJST1IpID0+IG9mKHRoaXMuZm9ybUFjdGlvbnMubG9hZEZhaWx1cmUoeyBlcnJvcnMgfSkpKVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGNyZWF0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMuZm9ybUFjdGlvbnMuY3JlYXRlKSxcclxuICAgICAgc3dpdGNoTWFwKGFjdGlvbiA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UuY3JlYXRlUmVzb3VyY2UpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY3JlYXRlUmVzb3VyY2Ugbm90IGltcGxlbWVudCBpbiB0aGUgTGlzdFNlcnZpY2UnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuY3JlYXRlUmVzb3VyY2UoYWN0aW9uLnJlc291cmNlKS5waXBlKFxyXG4gICAgICAgICAgbWFwKHJlc291cmNlID0+IHRoaXMuZm9ybUFjdGlvbnMuY3JlYXRlU3VjY2Vzcyh7IHJlc291cmNlIH0pKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yczogRVJST1IpID0+IG9mKHRoaXMuZm9ybUFjdGlvbnMuY3JlYXRlRmFpbHVyZSh7IGVycm9ycyB9KSkpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICApO1xyXG5cclxuICB1cGRhdGUkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmZvcm1BY3Rpb25zLnNhdmUpLFxyXG4gICAgICBzd2l0Y2hNYXAoKHsgcmVzb3VyY2UgfSkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zZXJ2aWNlLnNhdmVSZXNvdXJjZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzYXZlUmVzb3VyY2Ugbm90IGltcGxlbWVudCBpbiB0aGUgTGlzdFNlcnZpY2UnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2Uuc2F2ZVJlc291cmNlKHJlc291cmNlKS5waXBlKFxyXG4gICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHRoaXMuZm9ybUFjdGlvbnMuc2F2ZVN1Y2Nlc3MoeyByZXNvdXJjZTogcmVzcG9uc2UgfSkpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JzOiBFUlJPUikgPT4gb2YodGhpcy5mb3JtQWN0aW9ucy5zYXZlRmFpbHVyZSh7IGVycm9ycyB9KSkpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBkZWxldGUkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmZvcm1BY3Rpb25zLmRlbGV0ZSksXHJcbiAgICAgIGV4aGF1c3RNYXAoYWN0aW9uID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VydmljZS5kZWxldGVSZXNvdXJjZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZWxldGVSZXNvdXJjZSBub3QgaW1wbGVtZW50IGluIHRoZSBMaXN0U2VydmljZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5kZWxldGVSZXNvdXJjZShhY3Rpb24uaWQpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtQWN0aW9ucy5kZWxldGVTdWNjZXNzKHsgaWQ6IGFjdGlvbi5pZCB9KSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcnM6IEVSUk9SKSA9PiBvZih0aGlzLmZvcm1BY3Rpb25zLmRlbGV0ZUZhaWx1cmUoeyBlcnJvcnMgfSkpKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgZXJyb3JzSGFuZGxlciQgPSBjcmVhdGVFZmZlY3QoXHJcbiAgICAoKSA9PlxyXG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgICAgb2ZUeXBlKFxyXG4gICAgICAgICAgdGhpcy5mb3JtQWN0aW9ucy5zYXZlRmFpbHVyZSxcclxuICAgICAgICAgIHRoaXMuZm9ybUFjdGlvbnMubG9hZEZhaWx1cmUsXHJcbiAgICAgICAgICB0aGlzLmZvcm1BY3Rpb25zLmRlbGV0ZUZhaWx1cmUsXHJcbiAgICAgICAgICB0aGlzLmZvcm1BY3Rpb25zLmNyZWF0ZUZhaWx1cmVcclxuICAgICAgICApLFxyXG4gICAgICAgIHRhcCgoeyBlcnJvcnMgfSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLm9uRm9ybUVycm9ycyhlcnJvcnMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XHJcbiAgKTtcclxuXHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGlvbnMkOiBBY3Rpb25zLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlOiBTdG9yZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogRm9ybVNlcnZpY2U8RFRPLCBDUkVBVEVfRFRPPixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUFjdGlvbnM6IEZvcm1BY3Rpb25zPERUTywgRVJST1IsIENSRUFURV9EVE8+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25TZXJ2aWNlOiBGb3JtTm90aWZpY2F0aW9uU2VydmljZTxFUlJPUj5cclxuICApIHt9XHJcbn1cclxuIl19
@@ -1,39 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { ReducerManager, createFeatureSelector } from '@ngrx/store';
3
- import { FORM_FEATURE_KEY } from '../models/form.model';
4
- import { createFormActions } from './form-actions';
5
- import { createFormReducer } from './form-reducer';
6
- import { createFormSelectors } from './form-selectors';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@ngrx/store";
9
- export class AbstractFormReducerManager {
10
- constructor(reducerManager, featureKey) {
11
- this.reducerManager = reducerManager;
12
- this.featureKey = featureKey;
13
- this.actions = this.getActions();
14
- this.addReducer();
15
- this.selectors = this.getSelectors();
16
- }
17
- getActions() {
18
- return createFormActions(this.featureKey);
19
- }
20
- addReducer() {
21
- if (!this.reducerManager.currentReducers[this.featureKey]) {
22
- const reducer = createFormReducer(this.actions);
23
- this.reducerManager.addReducer(this.featureKey, reducer);
24
- }
25
- }
26
- getSelectors() {
27
- const getState = createFeatureSelector(this.featureKey);
28
- return createFormSelectors(getState);
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AbstractFormReducerManager, deps: [{ token: i1.ReducerManager }, { token: FORM_FEATURE_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
31
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AbstractFormReducerManager }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AbstractFormReducerManager, decorators: [{
34
- type: Injectable
35
- }], ctorParameters: () => [{ type: i1.ReducerManager }, { type: undefined, decorators: [{
36
- type: Inject,
37
- args: [FORM_FEATURE_KEY]
38
- }] }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2Zvcm0vc3JjL2xpYi8rc3RhdGUvYWJzdHJhY3QtZm9ybS1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUF5QyxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFHdkQsTUFBTSxPQUFnQiwwQkFBMEI7SUFJOUMsWUFDbUIsY0FBOEIsRUFDSixVQUFrQjtRQUQ1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRVMsVUFBVTtRQUNsQixPQUFPLGlCQUFpQixDQUF5QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVTLFVBQVU7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBd0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0EzQm1CLDBCQUEwQixnREFNcEMsZ0JBQWdCO2tIQU5OLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEL0MsVUFBVTs7MEJBT04sTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVkdWNlck1hbmFnZXIsIGNyZWF0ZUZlYXR1cmVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgRk9STV9GRUFUVVJFX0tFWSwgRm9ybUFjdGlvbnMsIEZvcm1TZWxlY3RvcnMsIEZvcm1TdGF0ZSB9IGZyb20gJy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgY3JlYXRlRm9ybUFjdGlvbnMgfSBmcm9tICcuL2Zvcm0tYWN0aW9ucyc7XHJcbmltcG9ydCB7IGNyZWF0ZUZvcm1SZWR1Y2VyIH0gZnJvbSAnLi9mb3JtLXJlZHVjZXInO1xyXG5pbXBvcnQgeyBjcmVhdGVGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi9mb3JtLXNlbGVjdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZvcm1SZWR1Y2VyTWFuYWdlcjxEVE8sIEVSUk9SLCBDUkVBVEVfRFRPID0gRFRPPiB7XHJcbiAgYWN0aW9uczogRm9ybUFjdGlvbnM8RFRPLCBFUlJPUiwgQ1JFQVRFX0RUTz47XHJcbiAgc2VsZWN0b3JzOiBGb3JtU2VsZWN0b3JzPERUTywgRVJST1I+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVkdWNlck1hbmFnZXI6IFJlZHVjZXJNYW5hZ2VyLFxyXG4gICAgQEluamVjdChGT1JNX0ZFQVRVUkVfS0VZKSBwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVLZXk6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5nZXRBY3Rpb25zKCk7XHJcbiAgICB0aGlzLmFkZFJlZHVjZXIoKTtcclxuICAgIHRoaXMuc2VsZWN0b3JzID0gdGhpcy5nZXRTZWxlY3RvcnMoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUZvcm1BY3Rpb25zPERUTywgRVJST1IsIENSRUFURV9EVE8+KHRoaXMuZmVhdHVyZUtleSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkUmVkdWNlcigpIHtcclxuICAgIGlmICghdGhpcy5yZWR1Y2VyTWFuYWdlci5jdXJyZW50UmVkdWNlcnNbdGhpcy5mZWF0dXJlS2V5XSkge1xyXG4gICAgICBjb25zdCByZWR1Y2VyID0gY3JlYXRlRm9ybVJlZHVjZXIodGhpcy5hY3Rpb25zKTtcclxuICAgICAgdGhpcy5yZWR1Y2VyTWFuYWdlci5hZGRSZWR1Y2VyKHRoaXMuZmVhdHVyZUtleSwgcmVkdWNlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0U2VsZWN0b3JzKCkge1xyXG4gICAgY29uc3QgZ2V0U3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8Rm9ybVN0YXRlPERUTywgRVJST1I+Pih0aGlzLmZlYXR1cmVLZXkpO1xyXG4gICAgcmV0dXJuIGNyZWF0ZUZvcm1TZWxlY3RvcnMoZ2V0U3RhdGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,29 +0,0 @@
1
- import { select } from '@ngrx/store';
2
- export class AbstractFormFacade {
3
- constructor(store, formActions, formSelectors) {
4
- this.store = store;
5
- this.formActions = formActions;
6
- this.formSelectors = formSelectors;
7
- this.resource$ = this.store.pipe(select(this.formSelectors.getResource));
8
- this.loadingState$ = this.store.pipe(select(this.formSelectors.getLoadingState));
9
- this.requestState$ = this.store.pipe(select(this.formSelectors.getRequestState));
10
- this.errors$ = this.store.pipe(select(this.formSelectors.getErrors));
11
- this.isReady$ = this.store.pipe(select(this.formSelectors.isReady));
12
- }
13
- create(props) {
14
- this.store.dispatch(this.formActions.create(props));
15
- }
16
- load(props) {
17
- this.store.dispatch(this.formActions.load(props));
18
- }
19
- save(props) {
20
- this.store.dispatch(this.formActions.save(props));
21
- }
22
- delete(props) {
23
- this.store.dispatch(this.formActions.delete(props));
24
- }
25
- reset() {
26
- this.store.dispatch(this.formActions.reset());
27
- }
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvZm9ybS9zcmMvbGliLytzdGF0ZS9hYnN0cmFjdC1mb3JtLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE1BQU0sT0FBZ0Isa0JBQWtCO0lBT3RDLFlBQ3FCLEtBQVksRUFDZCxXQUE0QyxFQUM1QyxhQUFvQztRQUZsQyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWlDO1FBQzVDLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQVQ5QyxjQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRSxrQkFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsa0JBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzVFLFlBQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBTXJFLENBQUM7SUFFSixNQUFNLENBQUMsS0FBK0Q7UUFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQTZEO1FBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksQ0FBQyxLQUE2RDtRQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBK0Q7UUFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25QYXlsb2FkIH0gZnJvbSAnQG5nZHV4L3N0b3JlLWNvbW1vbic7XHJcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IEZvcm1BY3Rpb25zLCBGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0Rm9ybUZhY2FkZTxEVE8sIEUsIENSRUFURV9EVE8gPSBEVE8+IHtcclxuICByZWFkb25seSByZXNvdXJjZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuZm9ybVNlbGVjdG9ycy5nZXRSZXNvdXJjZSkpO1xyXG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuZm9ybVNlbGVjdG9ycy5nZXRMb2FkaW5nU3RhdGUpKTtcclxuICByZWFkb25seSByZXF1ZXN0U3RhdGUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmZvcm1TZWxlY3RvcnMuZ2V0UmVxdWVzdFN0YXRlKSk7XHJcbiAgcmVhZG9ubHkgZXJyb3JzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5mb3JtU2VsZWN0b3JzLmdldEVycm9ycykpO1xyXG4gIHJlYWRvbmx5IGlzUmVhZHkkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmZvcm1TZWxlY3RvcnMuaXNSZWFkeSkpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdG9yZTogU3RvcmUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1BY3Rpb25zOiBGb3JtQWN0aW9uczxEVE8sIEUsIENSRUFURV9EVE8+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VsZWN0b3JzOiBGb3JtU2VsZWN0b3JzPERUTywgRT5cclxuICApIHt9XHJcblxyXG4gIGNyZWF0ZShwcm9wczogQWN0aW9uUGF5bG9hZDxGb3JtQWN0aW9uczxEVE8sIEUsIENSRUFURV9EVE8+WydjcmVhdGUnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5mb3JtQWN0aW9ucy5jcmVhdGUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGxvYWQocHJvcHM6IEFjdGlvblBheWxvYWQ8Rm9ybUFjdGlvbnM8RFRPLCBFLCBDUkVBVEVfRFRPPlsnbG9hZCddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmZvcm1BY3Rpb25zLmxvYWQocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIHNhdmUocHJvcHM6IEFjdGlvblBheWxvYWQ8Rm9ybUFjdGlvbnM8RFRPLCBFLCBDUkVBVEVfRFRPPlsnc2F2ZSddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmZvcm1BY3Rpb25zLnNhdmUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShwcm9wczogQWN0aW9uUGF5bG9hZDxGb3JtQWN0aW9uczxEVE8sIEUsIENSRUFURV9EVE8+WydkZWxldGUnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5mb3JtQWN0aW9ucy5kZWxldGUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmZvcm1BY3Rpb25zLnJlc2V0KCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,32 +0,0 @@
1
- import { createAction, props } from '@ngrx/store';
2
- export function createFormActions(featureName) {
3
- const load = createAction(`[${featureName} API] Load ${featureName}`, props());
4
- const loadSuccess = createAction(`[${featureName} API] Load ${featureName} Success`, props());
5
- const loadFailure = createAction(`[${featureName} API] Load ${featureName} Failure`, props());
6
- const save = createAction(`[${featureName} API] Save ${featureName}`, props());
7
- const saveSuccess = createAction(`[${featureName} API] Save ${featureName} Success`, props());
8
- const saveFailure = createAction(`[${featureName} API] Save ${featureName} Failure`, props());
9
- const deleteAction = createAction(`[${featureName} API] Delete ${featureName}`, props());
10
- const deleteSuccess = createAction(`[${featureName} API] Delete ${featureName} Success`, props());
11
- const deleteFailure = createAction(`[${featureName} API] Delete ${featureName} Failure`, props());
12
- const create = createAction(`[${featureName} API] Create ${featureName}`, props());
13
- const createSuccess = createAction(`[${featureName} API] Create ${featureName} Success`, props());
14
- const createFailure = createAction(`[${featureName} API] Create ${featureName} Failure`, props());
15
- const reset = createAction(`[${featureName} API] Reset ${featureName}`);
16
- return {
17
- load,
18
- loadSuccess,
19
- loadFailure,
20
- save,
21
- saveSuccess,
22
- saveFailure,
23
- delete: deleteAction,
24
- deleteSuccess,
25
- deleteFailure,
26
- create,
27
- createSuccess,
28
- createFailure,
29
- reset
30
- };
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2Zvcm0vc3JjL2xpYi8rc3RhdGUvZm9ybS1hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsV0FBbUI7SUFFbkIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxjQUFjLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBa0IsQ0FBQyxDQUFDO0lBQy9GLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLFdBQVcsY0FBYyxXQUFXLFVBQVUsRUFBRSxLQUFLLEVBQXFCLENBQUMsQ0FBQztJQUNqSCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLGNBQWMsV0FBVyxVQUFVLEVBQUUsS0FBSyxFQUFxQixDQUFDLENBQUM7SUFFakgsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxjQUFjLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBcUIsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLFdBQVcsY0FBYyxXQUFXLFVBQVUsRUFBRSxLQUFLLEVBQXFCLENBQUMsQ0FBQztJQUNqSCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLGNBQWMsV0FBVyxVQUFVLEVBQUUsS0FBSyxFQUFxQixDQUFDLENBQUM7SUFFakgsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFrQixDQUFDLENBQUM7SUFDekcsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxVQUFVLEVBQUUsS0FBSyxFQUFrQixDQUFDLENBQUM7SUFDbEgsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxVQUFVLEVBQUUsS0FBSyxFQUFxQixDQUFDLENBQUM7SUFFckgsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUE0QixDQUFDLENBQUM7SUFDN0csTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxVQUFVLEVBQUUsS0FBSyxFQUFxQixDQUFDLENBQUM7SUFDckgsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxVQUFVLEVBQUUsS0FBSyxFQUFxQixDQUFDLENBQUM7SUFFckgsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxlQUFlLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFeEUsT0FBTztRQUNMLElBQUk7UUFDSixXQUFXO1FBQ1gsV0FBVztRQUNYLElBQUk7UUFDSixXQUFXO1FBQ1gsV0FBVztRQUNYLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLGFBQWE7UUFDYixhQUFhO1FBQ2IsTUFBTTtRQUNOLGFBQWE7UUFDYixhQUFhO1FBQ2IsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgRm9ybUFjdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUFjdGlvbnM8RFRPLCBFUlJPUiwgQ1JFQVRFX0RUTyA9IERUTz4oXHJcbiAgZmVhdHVyZU5hbWU6IHN0cmluZ1xyXG4pOiBGb3JtQWN0aW9uczxEVE8sIEVSUk9SLCBDUkVBVEVfRFRPPiB7XHJcbiAgY29uc3QgbG9hZCA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gTG9hZCAke2ZlYXR1cmVOYW1lfWAsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKTtcclxuICBjb25zdCBsb2FkU3VjY2VzcyA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gTG9hZCAke2ZlYXR1cmVOYW1lfSBTdWNjZXNzYCwgcHJvcHM8eyByZXNvdXJjZTogRFRPIH0+KCkpO1xyXG4gIGNvbnN0IGxvYWRGYWlsdXJlID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBMb2FkICR7ZmVhdHVyZU5hbWV9IEZhaWx1cmVgLCBwcm9wczx7IGVycm9yczogRVJST1IgfT4oKSk7XHJcblxyXG4gIGNvbnN0IHNhdmUgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIFNhdmUgJHtmZWF0dXJlTmFtZX1gLCBwcm9wczx7IHJlc291cmNlOiBEVE8gfT4oKSk7XHJcbiAgY29uc3Qgc2F2ZVN1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIFNhdmUgJHtmZWF0dXJlTmFtZX0gU3VjY2Vzc2AsIHByb3BzPHsgcmVzb3VyY2U6IERUTyB9PigpKTtcclxuICBjb25zdCBzYXZlRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gU2F2ZSAke2ZlYXR1cmVOYW1lfSBGYWlsdXJlYCwgcHJvcHM8eyBlcnJvcnM6IEVSUk9SIH0+KCkpO1xyXG5cclxuICBjb25zdCBkZWxldGVBY3Rpb24gPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIERlbGV0ZSAke2ZlYXR1cmVOYW1lfWAsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKTtcclxuICBjb25zdCBkZWxldGVTdWNjZXNzID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBEZWxldGUgJHtmZWF0dXJlTmFtZX0gU3VjY2Vzc2AsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKTtcclxuICBjb25zdCBkZWxldGVGYWlsdXJlID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBEZWxldGUgJHtmZWF0dXJlTmFtZX0gRmFpbHVyZWAsIHByb3BzPHsgZXJyb3JzOiBFUlJPUiB9PigpKTtcclxuXHJcbiAgY29uc3QgY3JlYXRlID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBDcmVhdGUgJHtmZWF0dXJlTmFtZX1gLCBwcm9wczx7IHJlc291cmNlOiBDUkVBVEVfRFRPIH0+KCkpO1xyXG4gIGNvbnN0IGNyZWF0ZVN1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIENyZWF0ZSAke2ZlYXR1cmVOYW1lfSBTdWNjZXNzYCwgcHJvcHM8eyByZXNvdXJjZTogRFRPIH0+KCkpO1xyXG4gIGNvbnN0IGNyZWF0ZUZhaWx1cmUgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIENyZWF0ZSAke2ZlYXR1cmVOYW1lfSBGYWlsdXJlYCwgcHJvcHM8eyBlcnJvcnM6IEVSUk9SIH0+KCkpO1xyXG5cclxuICBjb25zdCByZXNldCA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gUmVzZXQgJHtmZWF0dXJlTmFtZX1gKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGxvYWQsXHJcbiAgICBsb2FkU3VjY2VzcyxcclxuICAgIGxvYWRGYWlsdXJlLFxyXG4gICAgc2F2ZSxcclxuICAgIHNhdmVTdWNjZXNzLFxyXG4gICAgc2F2ZUZhaWx1cmUsXHJcbiAgICBkZWxldGU6IGRlbGV0ZUFjdGlvbixcclxuICAgIGRlbGV0ZVN1Y2Nlc3MsXHJcbiAgICBkZWxldGVGYWlsdXJlLFxyXG4gICAgY3JlYXRlLFxyXG4gICAgY3JlYXRlU3VjY2VzcyxcclxuICAgIGNyZWF0ZUZhaWx1cmUsXHJcbiAgICByZXNldFxyXG4gIH07XHJcbn1cclxuIl19
@@ -1,30 +0,0 @@
1
- import { RequestState } from '@ngdux/data-model-common';
2
- import { createLoadingStateActionHandlers, createRequestStateActionHandlers } from '@ngdux/store-common';
3
- import { createReducer, on } from '@ngrx/store';
4
- export function createFormReducer(actions, actionHandlers, initialFormState) {
5
- const initialState = { ...createInitialFormState(), ...initialFormState };
6
- return createReducer(initialState, ...createFormActionHandlers(initialState, actions), ...(actionHandlers || []));
7
- }
8
- function createInitialFormState() {
9
- return {
10
- resource: undefined,
11
- loadingState: RequestState.IDLE,
12
- requestState: RequestState.IDLE,
13
- errors: undefined
14
- };
15
- }
16
- function createFormActionHandlers(initialFormState, actions) {
17
- return [
18
- on(actions.reset, () => initialFormState),
19
- on(actions.loadSuccess, actions.createSuccess, actions.saveSuccess, (state, { resource }) => ({ ...state, resource })),
20
- on(actions.deleteSuccess, (state) => ({
21
- ...state,
22
- resource: undefined
23
- })),
24
- ...createRequestStateActionHandlers(actions.load, actions.save, actions.saveSuccess, actions.saveFailure),
25
- ...createRequestStateActionHandlers(undefined, actions.create, actions.createSuccess, actions.createFailure),
26
- ...createRequestStateActionHandlers(undefined, actions.delete, actions.deleteSuccess, actions.deleteFailure),
27
- ...createLoadingStateActionHandlers(actions.load, actions.loadSuccess, actions.loadFailure)
28
- ];
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2Zvcm0vc3JjL2xpYi8rc3RhdGUvZm9ybS1yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQXVELGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckcsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixPQUE0QyxFQUM1QyxjQUF1RSxFQUN2RSxnQkFBc0M7SUFFdEMsTUFBTSxZQUFZLEdBQTBCLEVBQUUsR0FBRyxzQkFBc0IsRUFBYyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUM3RyxPQUFPLGFBQWEsQ0FDbEIsWUFBWSxFQUNaLEdBQUcsd0JBQXdCLENBQXlCLFlBQVksRUFBRSxPQUFPLENBQUMsRUFDMUUsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHNCQUFzQjtJQUM3QixPQUFPO1FBQ0wsUUFBUSxFQUFFLFNBQVM7UUFDbkIsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO1FBQy9CLFlBQVksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUMvQixNQUFNLEVBQUUsU0FBUztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQy9CLGdCQUF1QyxFQUN2QyxPQUE0QztJQUU1QyxPQUFPO1FBQ0wsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBMEIsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hFLEVBQUUsQ0FDQSxPQUFPLENBQUMsV0FBVyxFQUNuQixPQUFPLENBQUMsYUFBYSxFQUNyQixPQUFPLENBQUMsV0FBVyxFQUNuQixDQUFDLEtBQTRCLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBeUIsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUNoRztRQUNELEVBQUUsQ0FDQSxPQUFPLENBQUMsYUFBYSxFQUNyQixDQUFDLEtBQTRCLEVBQXlCLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELEdBQUcsS0FBSztZQUNSLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FDSDtRQUNELEdBQUcsZ0NBQWdDLENBQ2pDLE9BQU8sQ0FBQyxJQUFJLEVBQ1osT0FBTyxDQUFDLElBQUksRUFDWixPQUFPLENBQUMsV0FBVyxFQUNuQixPQUFPLENBQUMsV0FBVyxDQUNwQjtRQUNELEdBQUcsZ0NBQWdDLENBQ2pDLFNBQVMsRUFDVCxPQUFPLENBQUMsTUFBTSxFQUNkLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLE9BQU8sQ0FBQyxhQUFhLENBQ3RCO1FBQ0QsR0FBRyxnQ0FBZ0MsQ0FDakMsU0FBUyxFQUNULE9BQU8sQ0FBQyxNQUFNLEVBQ2QsT0FBTyxDQUFDLGFBQWEsRUFDckIsT0FBTyxDQUFDLGFBQWEsQ0FDdEI7UUFDRCxHQUFHLGdDQUFnQyxDQUF3QixPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUNuSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3RTdGF0ZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IGNyZWF0ZUxvYWRpbmdTdGF0ZUFjdGlvbkhhbmRsZXJzLCBjcmVhdGVSZXF1ZXN0U3RhdGVBY3Rpb25IYW5kbGVycyB9IGZyb20gJ0BuZ2R1eC9zdG9yZS1jb21tb24nO1xyXG5pbXBvcnQgeyBBY3Rpb25DcmVhdG9yLCBBY3Rpb25SZWR1Y2VyLCBDcmVhdG9yLCBSZWR1Y2VyVHlwZXMsIGNyZWF0ZVJlZHVjZXIsIG9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQWN0aW9ucywgRm9ybVN0YXRlIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1SZWR1Y2VyPERUTywgRVJST1IsIENSRUFURV9EVE8gPSBEVE8+KFxyXG4gIGFjdGlvbnM6IEZvcm1BY3Rpb25zPERUTywgRVJST1IsIENSRUFURV9EVE8+LFxyXG4gIGFjdGlvbkhhbmRsZXJzPzogUmVkdWNlclR5cGVzPEZvcm1TdGF0ZTxEVE8sIEVSUk9SPiwgQWN0aW9uQ3JlYXRvcltdPltdLFxyXG4gIGluaXRpYWxGb3JtU3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbik6IEFjdGlvblJlZHVjZXI8Rm9ybVN0YXRlPERUTywgRVJST1I+PiB7XHJcbiAgY29uc3QgaW5pdGlhbFN0YXRlOiBGb3JtU3RhdGU8RFRPLCBFUlJPUj4gPSB7IC4uLmNyZWF0ZUluaXRpYWxGb3JtU3RhdGU8RFRPLCBFUlJPUj4oKSwgLi4uaW5pdGlhbEZvcm1TdGF0ZSB9O1xyXG4gIHJldHVybiBjcmVhdGVSZWR1Y2VyPEZvcm1TdGF0ZTxEVE8sIEVSUk9SPj4oXHJcbiAgICBpbml0aWFsU3RhdGUsXHJcbiAgICAuLi5jcmVhdGVGb3JtQWN0aW9uSGFuZGxlcnM8RFRPLCBFUlJPUiwgQ1JFQVRFX0RUTz4oaW5pdGlhbFN0YXRlLCBhY3Rpb25zKSxcclxuICAgIC4uLihhY3Rpb25IYW5kbGVycyB8fCBbXSlcclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVJbml0aWFsRm9ybVN0YXRlPERUTywgRVJST1I+KCk6IEZvcm1TdGF0ZTxEVE8sIEVSUk9SPiB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHJlc291cmNlOiB1bmRlZmluZWQsXHJcbiAgICBsb2FkaW5nU3RhdGU6IFJlcXVlc3RTdGF0ZS5JRExFLFxyXG4gICAgcmVxdWVzdFN0YXRlOiBSZXF1ZXN0U3RhdGUuSURMRSxcclxuICAgIGVycm9yczogdW5kZWZpbmVkXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlRm9ybUFjdGlvbkhhbmRsZXJzPERUTywgRVJST1IsIENSRUFURV9EVE8gPSBEVE8+KFxyXG4gIGluaXRpYWxGb3JtU3RhdGU6IEZvcm1TdGF0ZTxEVE8sIEVSUk9SPixcclxuICBhY3Rpb25zOiBGb3JtQWN0aW9uczxEVE8sIEVSUk9SLCBDUkVBVEVfRFRPPlxyXG4pOiBSZWR1Y2VyVHlwZXM8Rm9ybVN0YXRlPERUTywgRVJST1I+LCBBY3Rpb25DcmVhdG9yPHN0cmluZywgQ3JlYXRvcjxhbnlbXSwgb2JqZWN0Pj5bXT5bXSB7XHJcbiAgcmV0dXJuIFtcclxuICAgIG9uKGFjdGlvbnMucmVzZXQsICgpOiBGb3JtU3RhdGU8RFRPLCBFUlJPUj4gPT4gaW5pdGlhbEZvcm1TdGF0ZSksXHJcbiAgICBvbihcclxuICAgICAgYWN0aW9ucy5sb2FkU3VjY2VzcyxcclxuICAgICAgYWN0aW9ucy5jcmVhdGVTdWNjZXNzLFxyXG4gICAgICBhY3Rpb25zLnNhdmVTdWNjZXNzLFxyXG4gICAgICAoc3RhdGU6IEZvcm1TdGF0ZTxEVE8sIEVSUk9SPiwgeyByZXNvdXJjZSB9KTogRm9ybVN0YXRlPERUTywgRVJST1I+ID0+ICh7IC4uLnN0YXRlLCByZXNvdXJjZSB9KVxyXG4gICAgKSxcclxuICAgIG9uKFxyXG4gICAgICBhY3Rpb25zLmRlbGV0ZVN1Y2Nlc3MsXHJcbiAgICAgIChzdGF0ZTogRm9ybVN0YXRlPERUTywgRVJST1I+KTogRm9ybVN0YXRlPERUTywgRVJST1I+ID0+ICh7XHJcbiAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgcmVzb3VyY2U6IHVuZGVmaW5lZFxyXG4gICAgICB9KVxyXG4gICAgKSxcclxuICAgIC4uLmNyZWF0ZVJlcXVlc3RTdGF0ZUFjdGlvbkhhbmRsZXJzPEZvcm1TdGF0ZTxEVE8sIEVSUk9SPiwgRVJST1I+KFxyXG4gICAgICBhY3Rpb25zLmxvYWQsXHJcbiAgICAgIGFjdGlvbnMuc2F2ZSxcclxuICAgICAgYWN0aW9ucy5zYXZlU3VjY2VzcyxcclxuICAgICAgYWN0aW9ucy5zYXZlRmFpbHVyZVxyXG4gICAgKSxcclxuICAgIC4uLmNyZWF0ZVJlcXVlc3RTdGF0ZUFjdGlvbkhhbmRsZXJzPEZvcm1TdGF0ZTxEVE8sIEVSUk9SPiwgRVJST1I+KFxyXG4gICAgICB1bmRlZmluZWQsXHJcbiAgICAgIGFjdGlvbnMuY3JlYXRlLFxyXG4gICAgICBhY3Rpb25zLmNyZWF0ZVN1Y2Nlc3MsXHJcbiAgICAgIGFjdGlvbnMuY3JlYXRlRmFpbHVyZVxyXG4gICAgKSxcclxuICAgIC4uLmNyZWF0ZVJlcXVlc3RTdGF0ZUFjdGlvbkhhbmRsZXJzPEZvcm1TdGF0ZTxEVE8sIEVSUk9SPiwgRVJST1I+KFxyXG4gICAgICB1bmRlZmluZWQsXHJcbiAgICAgIGFjdGlvbnMuZGVsZXRlLFxyXG4gICAgICBhY3Rpb25zLmRlbGV0ZVN1Y2Nlc3MsXHJcbiAgICAgIGFjdGlvbnMuZGVsZXRlRmFpbHVyZVxyXG4gICAgKSxcclxuICAgIC4uLmNyZWF0ZUxvYWRpbmdTdGF0ZUFjdGlvbkhhbmRsZXJzPEZvcm1TdGF0ZTxEVE8sIEVSUk9SPj4oYWN0aW9ucy5sb2FkLCBhY3Rpb25zLmxvYWRTdWNjZXNzLCBhY3Rpb25zLmxvYWRGYWlsdXJlKVxyXG4gIF07XHJcbn1cclxuIl19
@@ -1,17 +0,0 @@
1
- import { RequestState } from '@ngdux/data-model-common';
2
- import { createSelector } from '@ngrx/store';
3
- export function createFormSelectors(getFormState) {
4
- const getRequestState = createSelector(getFormState, state => state.requestState);
5
- const getLoadingState = createSelector(getFormState, state => state.loadingState);
6
- const getErrors = createSelector(getFormState, state => state.errors);
7
- const getResource = createSelector(getFormState, state => state.resource);
8
- const isReady = createSelector(getResource, getLoadingState, (resource, loadingState) => !!resource && loadingState === RequestState.SUCCESS);
9
- return {
10
- getRequestState,
11
- getLoadingState,
12
- getErrors,
13
- getResource,
14
- isReady
15
- };
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvZm9ybS9zcmMvbGliLytzdGF0ZS9mb3JtLXNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBd0MsTUFBTSxhQUFhLENBQUM7QUFHbkYsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxZQUE0RjtJQUU1RixNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEYsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTFFLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FDNUIsV0FBVyxFQUNYLGVBQWUsRUFDZixDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksWUFBWSxLQUFLLFlBQVksQ0FBQyxPQUFPLENBQ2hGLENBQUM7SUFFRixPQUFPO1FBQ0wsZUFBZTtRQUNmLGVBQWU7UUFDZixTQUFTO1FBQ1QsV0FBVztRQUNYLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3RTdGF0ZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yLCBEZWZhdWx0UHJvamVjdG9yRm4sIE1lbW9pemVkU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IEZvcm1TZWxlY3RvcnMsIEZvcm1TdGF0ZSB9IGZyb20gJy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtU2VsZWN0b3JzPFQsIEU+KFxyXG4gIGdldEZvcm1TdGF0ZTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIEZvcm1TdGF0ZTxULCBFPiwgRGVmYXVsdFByb2plY3RvckZuPEZvcm1TdGF0ZTxULCBFPj4+XHJcbik6IEZvcm1TZWxlY3RvcnM8VCwgRT4ge1xyXG4gIGNvbnN0IGdldFJlcXVlc3RTdGF0ZSA9IGNyZWF0ZVNlbGVjdG9yKGdldEZvcm1TdGF0ZSwgc3RhdGUgPT4gc3RhdGUucmVxdWVzdFN0YXRlKTtcclxuICBjb25zdCBnZXRMb2FkaW5nU3RhdGUgPSBjcmVhdGVTZWxlY3RvcihnZXRGb3JtU3RhdGUsIHN0YXRlID0+IHN0YXRlLmxvYWRpbmdTdGF0ZSk7XHJcbiAgY29uc3QgZ2V0RXJyb3JzID0gY3JlYXRlU2VsZWN0b3IoZ2V0Rm9ybVN0YXRlLCBzdGF0ZSA9PiBzdGF0ZS5lcnJvcnMpO1xyXG4gIGNvbnN0IGdldFJlc291cmNlID0gY3JlYXRlU2VsZWN0b3IoZ2V0Rm9ybVN0YXRlLCBzdGF0ZSA9PiBzdGF0ZS5yZXNvdXJjZSk7XHJcblxyXG4gIGNvbnN0IGlzUmVhZHkgPSBjcmVhdGVTZWxlY3RvcihcclxuICAgIGdldFJlc291cmNlLFxyXG4gICAgZ2V0TG9hZGluZ1N0YXRlLFxyXG4gICAgKHJlc291cmNlLCBsb2FkaW5nU3RhdGUpID0+ICEhcmVzb3VyY2UgJiYgbG9hZGluZ1N0YXRlID09PSBSZXF1ZXN0U3RhdGUuU1VDQ0VTU1xyXG4gICk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBnZXRSZXF1ZXN0U3RhdGUsXHJcbiAgICBnZXRMb2FkaW5nU3RhdGUsXHJcbiAgICBnZXRFcnJvcnMsXHJcbiAgICBnZXRSZXNvdXJjZSxcclxuICAgIGlzUmVhZHlcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { createFeatureSelector } from '@ngrx/store';
2
- import { createFormActions } from './form-actions';
3
- import { createFormReducer } from './form-reducer';
4
- import { createFormSelectors } from './form-selectors';
5
- export function createFormState(featureName) {
6
- const actions = createFormActions(featureName);
7
- const reducer = createFormReducer(actions);
8
- const getState = createFeatureSelector(featureName);
9
- const selectors = createFormSelectors(getState);
10
- return {
11
- actions,
12
- reducer: (state, action) => reducer(state, action),
13
- selectors
14
- };
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9mb3JtL3NyYy9saWIvK3N0YXRlL2Zvcm0tc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE1BQU0sVUFBVSxlQUFlLENBQStCLFdBQW1CO0lBQy9FLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUF5QixXQUFXLENBQUMsQ0FBQztJQUN2RSxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBd0IsV0FBVyxDQUFDLENBQUM7SUFDM0UsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFaEQsT0FBTztRQUNMLE9BQU87UUFDUCxPQUFPLEVBQUUsQ0FBQyxLQUE0QixFQUFFLE1BQWMsRUFBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ3hHLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgY3JlYXRlRmVhdHVyZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBGb3JtU3RhdGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IGNyZWF0ZUZvcm1BY3Rpb25zIH0gZnJvbSAnLi9mb3JtLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBjcmVhdGVGb3JtUmVkdWNlciB9IGZyb20gJy4vZm9ybS1yZWR1Y2VyJztcclxuaW1wb3J0IHsgY3JlYXRlRm9ybVNlbGVjdG9ycyB9IGZyb20gJy4vZm9ybS1zZWxlY3RvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1TdGF0ZTxEVE8sIEVSUk9SLCBDUkVBVEVfRFRPID0gRFRPPihmZWF0dXJlTmFtZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgYWN0aW9ucyA9IGNyZWF0ZUZvcm1BY3Rpb25zPERUTywgRVJST1IsIENSRUFURV9EVE8+KGZlYXR1cmVOYW1lKTtcclxuICBjb25zdCByZWR1Y2VyID0gY3JlYXRlRm9ybVJlZHVjZXIoYWN0aW9ucyk7XHJcbiAgY29uc3QgZ2V0U3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8Rm9ybVN0YXRlPERUTywgRVJST1I+PihmZWF0dXJlTmFtZSk7XHJcbiAgY29uc3Qgc2VsZWN0b3JzID0gY3JlYXRlRm9ybVNlbGVjdG9ycyhnZXRTdGF0ZSk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBhY3Rpb25zLFxyXG4gICAgcmVkdWNlcjogKHN0YXRlOiBGb3JtU3RhdGU8RFRPLCBFUlJPUj4sIGFjdGlvbjogQWN0aW9uKTogRm9ybVN0YXRlPERUTywgRVJST1I+ID0+IHJlZHVjZXIoc3RhdGUsIGFjdGlvbiksXHJcbiAgICBzZWxlY3RvcnNcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const FORM_FEATURE_KEY = new InjectionToken('FORM_FEATURE_KEY');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9mb3JtL3NyYy9saWIvbW9kZWxzL2Zvcm0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBUyxrQkFBa0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVxdWVzdFN0YXRlIH0gZnJvbSAnQG5nZHV4L2RhdGEtbW9kZWwtY29tbW9uJztcclxuaW1wb3J0IHsgQXBpUmVxdWVzdFN0YXRlLCBMb2FkaW5nU3RhdGUgfSBmcm9tICdAbmdkdXgvc3RvcmUtY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciwgTWVtb2l6ZWRTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgVHlwZWRBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZS9zcmMvbW9kZWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBGT1JNX0ZFQVRVUkVfS0VZID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0ZPUk1fRkVBVFVSRV9LRVknKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVN0YXRlPFQsIEU+IGV4dGVuZHMgQXBpUmVxdWVzdFN0YXRlPEU+LCBMb2FkaW5nU3RhdGUge1xyXG4gIHJlc291cmNlPzogVDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2VsZWN0b3JzPFQsIEU+IHtcclxuICBnZXRSZXF1ZXN0U3RhdGU6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBSZXF1ZXN0U3RhdGU+O1xyXG4gIGdldExvYWRpbmdTdGF0ZTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFJlcXVlc3RTdGF0ZT47XHJcbiAgZ2V0RXJyb3JzOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgRSB8IHVuZGVmaW5lZD47XHJcbiAgZ2V0UmVzb3VyY2U6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBUIHwgdW5kZWZpbmVkPjtcclxuICBpc1JlYWR5OiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgYm9vbGVhbj47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUFjdGlvbnM8RFRPLCBFUlJPUiwgQ1JFQVRFX0RUTyA9IERUTz4ge1xyXG4gIGxvYWQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaWQ6IHN0cmluZyB9KSA9PiB7IGlkOiBzdHJpbmcgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIGxvYWRTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IHJlc291cmNlOiBEVE8gfSkgPT4geyByZXNvdXJjZTogRFRPIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBsb2FkRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcnM6IEVSUk9SIH0pID0+IHsgZXJyb3JzOiBFUlJPUiB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcblxyXG4gIHNhdmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgcmVzb3VyY2U6IERUTyB9KSA9PiB7IHJlc291cmNlOiBEVE8gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIHNhdmVTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IHJlc291cmNlOiBEVE8gfSkgPT4geyByZXNvdXJjZTogRFRPIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBzYXZlRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcnM6IEVSUk9SIH0pID0+IHsgZXJyb3JzOiBFUlJPUiB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcblxyXG4gIGRlbGV0ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpZDogc3RyaW5nIH0pID0+IHsgaWQ6IHN0cmluZyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgZGVsZXRlU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpZDogc3RyaW5nIH0pID0+IHsgaWQ6IHN0cmluZyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgZGVsZXRlRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcnM6IEVSUk9SIH0pID0+IHsgZXJyb3JzOiBFUlJPUiB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcblxyXG4gIGNyZWF0ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyByZXNvdXJjZTogQ1JFQVRFX0RUTyB9KSA9PiB7IHJlc291cmNlOiBDUkVBVEVfRFRPIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBjcmVhdGVTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IHJlc291cmNlOiBEVE8gfSkgPT4geyByZXNvdXJjZTogRFRPIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBjcmVhdGVGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yczogRVJST1IgfSkgPT4geyBlcnJvcnM6IEVSUk9SIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuXHJcbiAgcmVzZXQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxufVxyXG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdkdXgtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9mb3JtL3NyYy9uZ2R1eC1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,41 +0,0 @@
1
- import { FormNotificationService, FormService } from '@ngdux/data-model-common';
2
- import { Actions } from '@ngrx/effects';
3
- import { Store } from '@ngrx/store';
4
- import { FormActions } from '../models/form.model';
5
- export declare abstract class AbstractFormEffects<DTO, ERROR, CREATE_DTO = DTO> {
6
- protected readonly actions$: Actions;
7
- protected readonly store: Store;
8
- private readonly service;
9
- private readonly formActions;
10
- private readonly notificationService;
11
- load$: import("rxjs").Observable<({
12
- resource: DTO;
13
- } & import("@ngrx/store/src/models").TypedAction<string>) | ({
14
- errors: ERROR;
15
- } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
16
- create$: import("rxjs").Observable<({
17
- resource: DTO;
18
- } & import("@ngrx/store/src/models").TypedAction<string>) | ({
19
- errors: ERROR;
20
- } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
21
- update$: import("rxjs").Observable<({
22
- resource: DTO;
23
- } & import("@ngrx/store/src/models").TypedAction<string>) | ({
24
- errors: ERROR;
25
- } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
26
- delete$: import("rxjs").Observable<({
27
- id: string;
28
- } & import("@ngrx/store/src/models").TypedAction<string>) | ({
29
- errors: ERROR;
30
- } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
31
- errorsHandler$: import("rxjs").Observable<({
32
- errors: ERROR;
33
- } & import("@ngrx/store/src/models").TypedAction<string>) | ({
34
- errors: ERROR;
35
- } & import("@ngrx/store/src/models").TypedAction<string>) | ({
36
- errors: ERROR;
37
- } & import("@ngrx/store/src/models").TypedAction<string>) | ({
38
- errors: ERROR;
39
- } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
40
- protected constructor(actions$: Actions, store: Store, service: FormService<DTO, CREATE_DTO>, formActions: FormActions<DTO, ERROR, CREATE_DTO>, notificationService: FormNotificationService<ERROR>);
41
- }
@@ -1,15 +0,0 @@
1
- import { ReducerManager } from '@ngrx/store';
2
- import { FormActions, FormSelectors } from '../models/form.model';
3
- import * as i0 from "@angular/core";
4
- export declare abstract class AbstractFormReducerManager<DTO, ERROR, CREATE_DTO = DTO> {
5
- private readonly reducerManager;
6
- private readonly featureKey;
7
- actions: FormActions<DTO, ERROR, CREATE_DTO>;
8
- selectors: FormSelectors<DTO, ERROR>;
9
- constructor(reducerManager: ReducerManager, featureKey: string);
10
- protected getActions(): FormActions<DTO, ERROR, CREATE_DTO>;
11
- protected addReducer(): void;
12
- protected getSelectors(): FormSelectors<DTO, ERROR>;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<AbstractFormReducerManager<any, any, any>, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<AbstractFormReducerManager<any, any, any>>;
15
- }
@@ -1,19 +0,0 @@
1
- import { ActionPayload } from '@ngdux/store-common';
2
- import { Store } from '@ngrx/store';
3
- import { FormActions, FormSelectors } from '../models/form.model';
4
- export declare abstract class AbstractFormFacade<DTO, E, CREATE_DTO = DTO> {
5
- protected readonly store: Store;
6
- private readonly formActions;
7
- private readonly formSelectors;
8
- readonly resource$: import("rxjs").Observable<DTO | undefined>;
9
- readonly loadingState$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestState>;
10
- readonly requestState$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestState>;
11
- readonly errors$: import("rxjs").Observable<E | undefined>;
12
- readonly isReady$: import("rxjs").Observable<boolean>;
13
- constructor(store: Store, formActions: FormActions<DTO, E, CREATE_DTO>, formSelectors: FormSelectors<DTO, E>);
14
- create(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['create']>): void;
15
- load(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['load']>): void;
16
- save(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['save']>): void;
17
- delete(props: ActionPayload<FormActions<DTO, E, CREATE_DTO>['delete']>): void;
18
- reset(): void;
19
- }
@@ -1,2 +0,0 @@
1
- import { FormActions } from '../models/form.model';
2
- export declare function createFormActions<DTO, ERROR, CREATE_DTO = DTO>(featureName: string): FormActions<DTO, ERROR, CREATE_DTO>;
@@ -1,3 +0,0 @@
1
- import { ActionCreator, ActionReducer, ReducerTypes } from '@ngrx/store';
2
- import { FormActions, FormState } from '../models/form.model';
3
- export declare function createFormReducer<DTO, ERROR, CREATE_DTO = DTO>(actions: FormActions<DTO, ERROR, CREATE_DTO>, actionHandlers?: ReducerTypes<FormState<DTO, ERROR>, ActionCreator[]>[], initialFormState?: Record<string, any>): ActionReducer<FormState<DTO, ERROR>>;
@@ -1,3 +0,0 @@
1
- import { DefaultProjectorFn, MemoizedSelector } from '@ngrx/store';
2
- import { FormSelectors, FormState } from '../models/form.model';
3
- export declare function createFormSelectors<T, E>(getFormState: MemoizedSelector<object, FormState<T, E>, DefaultProjectorFn<FormState<T, E>>>): FormSelectors<T, E>;
@@ -1,7 +0,0 @@
1
- import { Action } from '@ngrx/store';
2
- import { FormState } from '../models/form.model';
3
- export declare function createFormState<DTO, ERROR, CREATE_DTO = DTO>(featureName: string): {
4
- actions: import("../models/form.model").FormActions<DTO, ERROR, CREATE_DTO>;
5
- reducer: (state: FormState<DTO, ERROR>, action: Action) => FormState<DTO, ERROR>;
6
- selectors: import("../models/form.model").FormSelectors<DTO, ERROR>;
7
- };
@@ -1,79 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { RequestState } from '@ngdux/data-model-common';
3
- import { ApiRequestState, LoadingState } from '@ngdux/store-common';
4
- import { ActionCreator, MemoizedSelector } from '@ngrx/store';
5
- import { TypedAction } from '@ngrx/store/src/models';
6
- export declare const FORM_FEATURE_KEY: InjectionToken<string>;
7
- export interface FormState<T, E> extends ApiRequestState<E>, LoadingState {
8
- resource?: T;
9
- }
10
- export interface FormSelectors<T, E> {
11
- getRequestState: MemoizedSelector<object, RequestState>;
12
- getLoadingState: MemoizedSelector<object, RequestState>;
13
- getErrors: MemoizedSelector<object, E | undefined>;
14
- getResource: MemoizedSelector<object, T | undefined>;
15
- isReady: MemoizedSelector<object, boolean>;
16
- }
17
- export interface FormActions<DTO, ERROR, CREATE_DTO = DTO> {
18
- load: ActionCreator<string, (props: {
19
- id: string;
20
- }) => {
21
- id: string;
22
- } & TypedAction<string>>;
23
- loadSuccess: ActionCreator<string, (props: {
24
- resource: DTO;
25
- }) => {
26
- resource: DTO;
27
- } & TypedAction<string>>;
28
- loadFailure: ActionCreator<string, (props: {
29
- errors: ERROR;
30
- }) => {
31
- errors: ERROR;
32
- } & TypedAction<string>>;
33
- save: ActionCreator<string, (props: {
34
- resource: DTO;
35
- }) => {
36
- resource: DTO;
37
- } & TypedAction<string>>;
38
- saveSuccess: ActionCreator<string, (props: {
39
- resource: DTO;
40
- }) => {
41
- resource: DTO;
42
- } & TypedAction<string>>;
43
- saveFailure: ActionCreator<string, (props: {
44
- errors: ERROR;
45
- }) => {
46
- errors: ERROR;
47
- } & TypedAction<string>>;
48
- delete: ActionCreator<string, (props: {
49
- id: string;
50
- }) => {
51
- id: string;
52
- } & TypedAction<string>>;
53
- deleteSuccess: ActionCreator<string, (props: {
54
- id: string;
55
- }) => {
56
- id: string;
57
- } & TypedAction<string>>;
58
- deleteFailure: ActionCreator<string, (props: {
59
- errors: ERROR;
60
- }) => {
61
- errors: ERROR;
62
- } & TypedAction<string>>;
63
- create: ActionCreator<string, (props: {
64
- resource: CREATE_DTO;
65
- }) => {
66
- resource: CREATE_DTO;
67
- } & TypedAction<string>>;
68
- createSuccess: ActionCreator<string, (props: {
69
- resource: DTO;
70
- }) => {
71
- resource: DTO;
72
- } & TypedAction<string>>;
73
- createFailure: ActionCreator<string, (props: {
74
- errors: ERROR;
75
- }) => {
76
- errors: ERROR;
77
- } & TypedAction<string>>;
78
- reset: ActionCreator<string, () => TypedAction<string>>;
79
- }