@verisoft/store 18.8.0 → 19.0.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/verisoft-store.mjs +1 -1
- package/fesm2022/verisoft-store.mjs.map +1 -1
- package/package.json +12 -11
- package/esm2022/index.mjs +0 -11
- package/esm2022/lib/binding-state/binding.actions.mjs +0 -35
- package/esm2022/lib/binding-state/binding.effects.mjs +0 -124
- package/esm2022/lib/detail-state/detail.actions.mjs +0 -47
- package/esm2022/lib/detail-state/detail.effects.mjs +0 -116
- package/esm2022/lib/detail-state/detail.models.mjs +0 -12
- package/esm2022/lib/detail-state/detail.reducer.mjs +0 -87
- package/esm2022/lib/table-state/actions.mjs +0 -50
- package/esm2022/lib/table-state/effects.mjs +0 -49
- package/esm2022/lib/table-state/models.mjs +0 -12
- package/esm2022/lib/table-state/reducers.mjs +0 -80
- package/esm2022/verisoft-store.mjs +0 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createAction, props, createReducer, on, createSelector, createFeatureSelector } from '@ngrx/store';
|
|
2
2
|
import { createEffect, ofType } from '@ngrx/effects';
|
|
3
3
|
import { switchMap, EMPTY, map, catchError, of, withLatestFrom, tap } from 'rxjs';
|
|
4
|
-
import {
|
|
4
|
+
import { DEFAULT_SEARCH_PARAMS, DEFAULT_SEARCH_LIMIT } from '@verisoft/core';
|
|
5
5
|
|
|
6
6
|
function createInitDetailAction(detailsRepository) {
|
|
7
7
|
return createAction(`[${detailsRepository} Page] Init`, props());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verisoft-store.mjs","sources":["../../../../../src/libs/store/src/lib/detail-state/detail.actions.ts","../../../../../src/libs/store/src/lib/detail-state/detail.models.ts","../../../../../src/libs/store/src/lib/detail-state/detail.reducer.ts","../../../../../src/libs/store/src/lib/detail-state/detail.effects.ts","../../../../../src/libs/store/src/lib/table-state/actions.ts","../../../../../src/libs/store/src/lib/table-state/models.ts","../../../../../src/libs/store/src/lib/table-state/reducers.ts","../../../../../src/libs/store/src/lib/table-state/effects.ts","../../../../../src/libs/store/src/lib/binding-state/binding.actions.ts","../../../../../src/libs/store/src/lib/binding-state/binding.effects.ts","../../../../../src/libs/store/src/verisoft-store.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { FormState } from './detail.models';\n\nexport function createInitDetailAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository} Page] Init`,\n props<{ obj: string | null | number | undefined | any }>()\n );\n}\n\nexport function createInitNewDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository} Page] Init New`);\n}\n\nexport function createLoadDetailSuccessAction<T>(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Load ${detailsRepository} Success`,\n props<{ item: T }>()\n );\n}\n\nexport function createLoadDetailFailureAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Load ${detailsRepository} Failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createUpdateDetailAction<T>(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Update ${detailsRepository}`,\n props<{ item: T }>()\n );\n}\n\nexport function createUpdateDetailSetErrorsAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Update Validation Errors ${detailsRepository}`,\n props<{ error: any }>()\n )\n}\n\nexport function createUpdateFormStateAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Update Form State`,\n props<{ formState: FormState }>()\n );\n}\n\nexport function createSaveDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Save Detail `);\n}\n\nexport function createSaveDetailSuccessAction<T>(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Save Detail Success`,\n props<{ item: T }>()\n );\n}\n\nexport function createSaveDetailFailureAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Save Detail Failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createUpdateSaveDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Update Detail `);\n}\n\nexport function createResetStateAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Reset State`);\n}\n\nexport function createDeleteDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Delete Detail`);\n}\n\nexport function createDeleteDetailSuccessAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Delete Detail Success`);\n}\n\nexport function createDeleteDetailFailureAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Delete Detail Failure`,\n props<{ error: any }>()\n );\n}\n","export interface DetailState<T> {\n loaded: boolean;\n item?: T;\n formState?: FormState;\n error?: string | null;\n saveItemState: SaveItemState;\n backendValidationErrors: BackendValidationError[];\n}\n\nexport interface BackendValidationError {\n code: string;\n message: string;\n parameters: string;\n}\n\nexport interface ChosenRowsState<T> { \n rows: Array<T>;\n}\n\nexport interface SaveItemState {\n saveInProgress: boolean;\n error?: string | null;\n}\n\nexport const INITIAL_SAVE_ITEM_STATE: SaveItemState = {\n saveInProgress: false,\n};\n\nexport const INITIAL_CHOSEN_ROW_STATE: ChosenRowsState<any> = {\n rows: []\n}\n\nexport const INITIAL_DETAIL_STATE: DetailState<any> = {\n loaded: false,\n saveItemState: INITIAL_SAVE_ITEM_STATE,\n backendValidationErrors: [],\n};\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n","import { ActionCreator, createReducer, on, ReducerTypes } from '@ngrx/store';\nimport {\n createInitDetailAction,\n createInitNewDetailAction,\n createLoadDetailFailureAction,\n createLoadDetailSuccessAction,\n createResetStateAction,\n createSaveDetailAction,\n createSaveDetailFailureAction,\n createSaveDetailSuccessAction,\n createUpdateDetailAction,\n createUpdateDetailSetErrorsAction,\n createUpdateFormStateAction,\n} from './detail.actions';\nimport {\n DetailState,\n INITIAL_DETAIL_STATE,\n INITIAL_SAVE_ITEM_STATE,\n} from './detail.models';\n\nexport function createDetailReducers<\n T = any,\n TState extends DetailState<T> = DetailState<T>\n>(\n detailRepository: string,\n initialState: TState = INITIAL_DETAIL_STATE as unknown as TState,\n ...ons: ReducerTypes<TState, readonly ActionCreator[]>[]\n) {\n return createReducer(\n initialState,\n on(createInitDetailAction(detailRepository), (state) => {\n return {\n ...state,\n loaded: false,\n error: null,\n };\n }),\n\n on(createInitNewDetailAction(detailRepository), (state) => {\n return {\n ...state,\n loaded: false,\n error: null,\n };\n }),\n\n on(createLoadDetailSuccessAction(detailRepository), (state, { item }) => {\n return {\n ...state,\n loaded: true,\n item,\n };\n }),\n\n on(createLoadDetailFailureAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n loaded: true,\n error,\n };\n }),\n\n on(createUpdateDetailAction(detailRepository), (state, { item }) => {\n return {\n ...state,\n item,\n formState: {\n dirty: true,\n valid: state.formState?.valid ?? true,\n },\n };\n }),\n\n on(createUpdateDetailSetErrorsAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n backendValidationErrors: error\n }\n }),\n\n on(\n createUpdateFormStateAction(detailRepository),\n (state, { formState }) => {\n return {\n ...state,\n formState,\n };\n }\n ),\n\n on(createSaveDetailSuccessAction(detailRepository), (state) => {\n return {\n ...state,\n formState: {\n dirty: false,\n valid: state.formState?.valid ?? true,\n },\n };\n }),\n \n on(createResetStateAction(detailRepository), () => {\n return {\n ...(initialState as any),\n };\n }),\n \n on(createSaveDetailFailureAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n backendValidationErrors: error.error\n }\n }),\n ...ons\n );\n}\n\nexport function createSaveDetailReducers(\n detailRepository: string,\n initialState = INITIAL_SAVE_ITEM_STATE\n) {\n return createReducer(\n initialState,\n\n on(createSaveDetailAction(detailRepository), (state) => {\n return {\n ...state,\n saveInProgress: true,\n };\n }),\n\n on(createSaveDetailSuccessAction(detailRepository), (state, { item }) => {\n return {\n ...state,\n item,\n saveInProgress: false,\n };\n }),\n\n on(createSaveDetailFailureAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n error,\n saveInProgress: false,\n };\n })\n );\n}\n","import { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { BaseHttpService } from '@verisoft/core';\nimport {\n catchError,\n EMPTY,\n map,\n Observable,\n of,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\nimport {\n createDeleteDetailAction,\n createDeleteDetailFailureAction,\n createDeleteDetailSuccessAction,\n createInitDetailAction,\n createInitNewDetailAction,\n createLoadDetailFailureAction,\n createLoadDetailSuccessAction,\n createSaveDetailAction,\n createSaveDetailFailureAction,\n createSaveDetailSuccessAction,\n} from './detail.actions';\n\nexport interface CreateInitFormConfig<T> {\n service?: BaseHttpService<T>;\n get?: (obj: any) => Observable<T>;\n snackbar?: any;\n errorMessage?: string;\n notFoundMessage?: string;\n successMessge?: string;\n}\n\nexport interface DetailEffectConfig<T> {\n detail$: Observable<T | undefined>;\n snackbar?: any;\n router?: Router;\n redirectPath?: string;\n useItemId?: boolean;\n navigationMap?: Map<keyof T, string>;\n}\n\nexport function createInitDetailEffect<T>(\n detailsRepository: string,\n actions$: Actions,\n config: CreateInitFormConfig<T>\n) {\n return createEffect(() => {\n return actions$.pipe(\n ofType(createInitDetailAction(detailsRepository)),\n switchMap(({ obj }) => {\n const get$: Observable<any> = (config?.service?.get(obj as any) ??\n config?.get?.(obj)) as Observable<any>;\n if (!get$) return EMPTY;\n return get$?.pipe(\n map((item) => {\n return createLoadDetailSuccessAction(detailsRepository)({ item });\n }),\n catchError((error) => {\n if (error.status === 404) {\n config?.snackbar?.showError(config?.notFoundMessage ?? error);\n } else {\n config?.snackbar?.showError(config?.errorMessage ?? error);\n }\n\n console.error('Error', error);\n return of(\n createLoadDetailFailureAction(detailsRepository)({ error })\n );\n })\n );\n })\n );\n });\n}\n\nexport function createInitNewDetailEffect(\n detailsRepository: string,\n actions$: Actions\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createInitNewDetailAction(detailsRepository)),\n map(() => {\n return createLoadDetailSuccessAction(detailsRepository)({ item: null });\n })\n )\n );\n}\n\nexport function createSaveDetailEffect<\n T extends { id: number | string },\n SERVICE extends BaseHttpService<T>\n>(\n detailsRepository: string,\n actions$: Actions,\n service: SERVICE,\n config: DetailEffectConfig<T>\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createSaveDetailAction(detailsRepository)),\n withLatestFrom(config.detail$),\n switchMap(([, savedItem]) => {\n const isNew = !savedItem?.id;\n const saveAction = isNew\n ? service.post(savedItem as T)\n : service.put(savedItem.id, savedItem);\n return saveAction.pipe(\n map((item) => {\n if (isNew && config?.router && config?.redirectPath) {\n const suffix = config?.useItemId ? '/' + item.id : '';\n config.router.navigateByUrl(config.redirectPath + suffix);\n }\n\n if (isNew && config?.router && config?.navigationMap) {\n const url = constructUrlFromNavigationMap(item, config.navigationMap)\n config.router.navigateByUrl(url);\n }\n\n return createSaveDetailSuccessAction(detailsRepository)({\n item: item,\n });\n }),\n catchError((error) => {\n console.error('Error', error);\n return of(\n createSaveDetailFailureAction(detailsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nexport function createSaveDetailSuccessEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createSaveDetailSuccessAction(detailsRepository)),\n map((data: any) => {\n config?.snackbar?.showSuccess(\n config?.successMessge ?? `Item successfully saved.`\n );\n return createInitDetailAction(detailsRepository)({ obj: data.item.id });\n })\n )\n );\n}\n\nexport function createSaveDetailFailureEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createSaveDetailFailureAction(detailsRepository)),\n tap(({ error }) => {\n config?.snackbar?.showError(\n config.errorMessage ?? `Error saving item. ${error.message}`\n );\n })\n ),\n {\n dispatch: false,\n }\n );\n}\n\nexport function createDeleteDetailEffect<\n T extends { id: number | string },\n SERVICE extends BaseHttpService<T>\n>(\n detailsRepository: string,\n actions$: Actions,\n service: SERVICE,\n config: DetailEffectConfig<T>,\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createDeleteDetailAction(detailsRepository)),\n withLatestFrom(config.detail$),\n switchMap(([, savedItem]) => {\n const id = savedItem?.id;\n if (!id) {\n return of(\n createSaveDetailFailureAction(detailsRepository)({\n error: 'Item has no id',\n })\n );\n }\n\n return service.delete(id).pipe(\n map(() => {\n if (config?.router && config?.redirectPath) {\n config.router.navigateByUrl(`${config.redirectPath}`);\n }\n\n if (config?.router && config?.navigationMap) {\n const url = constructUrlFromNavigationMap(savedItem, config.navigationMap)\n config.router.navigateByUrl(url);\n }\n\n return createDeleteDetailSuccessAction(detailsRepository)();\n }),\n catchError((error) => {\n console.error('Error', error);\n config.snackbar?.showError('Failed to delete item.');\n return of(\n createDeleteDetailFailureAction(detailsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nexport function createDeleteDetailSuccessEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createDeleteDetailSuccessAction(detailsRepository)),\n tap(() => {\n config?.snackbar?.showSuccess(\n config.successMessge ?? `Item successfully deleted.`\n );\n })\n ),\n {\n dispatch: false,\n }\n );\n}\n\nexport function createDeleteDetailFailureEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createDeleteDetailFailureAction(detailsRepository)),\n tap(({ error }) => {\n config?.snackbar?.showError(\n config.errorMessage ?? `Error deleting item. ${error.message}`\n );\n })\n ),\n {\n dispatch: false,\n }\n );\n}\n\nfunction constructUrlFromNavigationMap<T extends object>(\n item: T,\n navigationMap: Map<keyof T, string>)\n : string {\n let url = '';\n navigationMap.forEach((urlPartValue, suffixPropertyKey) => {\n const suffix = item[suffixPropertyKey];\n if (suffix) {\n url += `${urlPartValue}/${suffix}`;\n }\n });\n\n return url;\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Page, Sort } from '@verisoft/core';\n\nenum TablePageAction {\n GET_PAGE = 'Get page',\n CREATE_STATIC_FILTER = 'Create static filter',\n DATA_LOAD_SUCCESS = 'Data load success',\n DATA_LOAD_ERROR = 'Data load error',\n REFRESH_PAGE = 'Refresh page',\n FILTER_PAGE = 'Filter page',\n CHANGE_PAGE_SIZE = 'Change page size',\n SORT_PAGE = 'Sort page',\n DESTROY = 'Destroy',\n SELECT_ITEMS = 'Select items',\n REMOVE_RANGE = 'Remove range',\n}\n\nexport function createGetPageTableAction<T = any>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.GET_PAGE}`,\n props<{\n page: number;\n size: number;\n id?: string | null;\n filter?: Partial<T>;\n sort?: Sort[];\n }>()\n );\n}\n\nexport function createStaticFilterTableAction<T = any>(\n tableRepository: string\n) {\n return createAction(\n `${tableRepository} ${TablePageAction.CREATE_STATIC_FILTER}`,\n props<{\n filter?: Partial<T>;\n }>()\n );\n}\n\nexport function createDataLoadSuccessTableAction<T>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.DATA_LOAD_SUCCESS}`,\n props<{ gPage: Page<T> }>()\n );\n}\n\nexport function createDataLoadErrorTableAction(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.DATA_LOAD_ERROR}`,\n props<{ error: any }>()\n );\n}\n\nexport function createChangePageSizeTableAction(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.CHANGE_PAGE_SIZE}`,\n props<{ size: number }>()\n );\n}\n\n// TODO: use action in delete item effect\nexport function createRefreshPageTableAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.REFRESH_PAGE}`);\n}\n\nexport function createFilterPageTableAction<T>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.REFRESH_PAGE}`,\n props<{ filter: Partial<T> }>()\n );\n}\n\nexport function createResetTableFilterAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.REFRESH_PAGE}`);\n}\n\nexport function createDestroyTableAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.DESTROY}`);\n}\n\nexport function createSelectItemsTableAction<T>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.SELECT_ITEMS}`,\n props<{ selectedItems: T[] }>()\n );\n}\n\nexport function createRemoveRangeTableAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.REMOVE_RANGE}`\n );\n}","import { DEFAULT_SEARCH_LIMIT, DEFAULT_SEARCH_PARAMS, Page, RequestParams } from \"@verisoft/core\";\n\nexport interface TableState<T> {\n dataLoading: boolean;\n requestParams: RequestParams<T>;\n gPage?: Page<T>;\n error?: string | null;\n selectedItems?: T[];\n}\n\nexport const INITIAL_TABLE_STATE: TableState<any> = {\n gPage: {\n data: [],\n size: DEFAULT_SEARCH_LIMIT,\n total: 0.\n } as unknown as Page<any>,\n dataLoading: false,\n requestParams: DEFAULT_SEARCH_PARAMS,\n selectedItems: []\n};","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ActionCreator, ReducerTypes, createReducer, on } from '@ngrx/store';\nimport {\n createGetPageTableAction,\n createStaticFilterTableAction,\n createDataLoadSuccessTableAction,\n createDataLoadErrorTableAction,\n createFilterPageTableAction,\n createDestroyTableAction,\n createSelectItemsTableAction,\n createChangePageSizeTableAction,\n createResetTableFilterAction,\n} from './actions';\nimport { INITIAL_TABLE_STATE, TableState } from './models';\n\nexport function createTablePageReducers<\n T = any,\n TState extends TableState<T> = TableState<T>\n>(\n tableRepository: string,\n initialState: TState = INITIAL_TABLE_STATE as unknown as TState,\n ...ons: ReducerTypes<TState, readonly ActionCreator[]>[]\n) {\n return createReducer(\n initialState,\n on(\n createGetPageTableAction(tableRepository),\n (state, { page, id, filter, sort }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: filter ?? state.requestParams.filter,\n sort: sort ?? state.requestParams.sort,\n id: id ?? state.requestParams.id,\n page,\n },\n dataLoading: true,\n submitted: true,\n };\n }\n ),\n\n on(createStaticFilterTableAction(tableRepository), (state, { filter }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: {\n ...state.requestParams?.filter,\n filter,\n },\n },\n };\n }),\n\n on(createResetTableFilterAction(tableRepository), (state) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: undefined,\n page: 1\n },\n }\n }),\n\n on(\n createDataLoadSuccessTableAction(tableRepository),\n (state, { gPage }) => {\n return {\n ...state,\n gPage,\n dataLoading: false,\n };\n }\n ),\n\n on(createDataLoadErrorTableAction(tableRepository), (state, { error }) => {\n return {\n ...state,\n error,\n dataLoading: false,\n };\n }),\n\n on(createFilterPageTableAction(tableRepository), (state, { filter }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: filter,\n page: 1,\n },\n dataLoading: true,\n };\n }),\n\n on(createDestroyTableAction(tableRepository), () => {\n return {\n ...(initialState as any),\n };\n }),\n\n on(\n createSelectItemsTableAction(tableRepository),\n (state, { selectedItems }) => {\n return {\n ...state,\n selectedItems,\n };\n }\n ),\n\n on(createChangePageSizeTableAction(tableRepository), (state, { size }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n size,\n }\n }\n }),\n ...ons\n );\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport { BaseHttpService, DEFAULT_SEARCH_LIMIT, Page, RequestParams } from '@verisoft/core';\nimport { catchError, map, Observable, of, switchMap, withLatestFrom } from 'rxjs';\nimport {\n createGetPageTableAction,\n createDataLoadSuccessTableAction,\n createDataLoadErrorTableAction,\n createRemoveRangeTableAction,\n} from './actions';\nimport { TableState } from './models';\n\nexport interface CreateGetPageActionConfig<T> {\n service?: BaseHttpService<T>;\n fetchList?: (requestParams: RequestParams<any>) => Observable<Page<T>>;\n snackbar?: any;\n ngrxFeatureKey?: string;\n requireFilters?: boolean;\n}\n\nexport function createGetPageTableEffect<T>(\n tableRepository: string,\n actions$: Actions,\n config: CreateGetPageActionConfig<T>\n) {\n return createEffect(() => {\n return actions$.pipe(\n ofType(createGetPageTableAction(tableRepository)),\n switchMap(({ page, filter, sort, size }) => {\n const requestParams: RequestParams<any> = {\n offset: page * size,\n limit: size,\n sort,\n filter,\n };\n\n const params = config.service?.createParams(requestParams) ?? requestParams;\n\n const fetchList$: Observable<Page<T>> = (config.service?.fetchList(\n params\n ) ?? config.fetchList?.(params)) as Observable<Page<T>>;\n if (!fetchList$) {\n throw new Error('Service or fetchList$ must by defined.');\n }\n\n return fetchList$.pipe(\n map((gPage) => {\n const p = { ...gPage, number: page };\n return createDataLoadSuccessTableAction(tableRepository)({\n gPage: p,\n });\n }),\n catchError((error) => {\n config.snackbar?.showError(error.message);\n return of(\n createDataLoadErrorTableAction(tableRepository)({ error })\n );\n })\n );\n })\n );\n });\n}\n\nexport function createRemoveRangeTableEffect<T>(\n tableRepository: string,\n ngrxFeatureKey: string,\n actions$: Actions,\n store$: Store<any>,\n config: CreateGetPageActionConfig<T>\n) {\n return createEffect(() => {\n if(!config?.service) {\n throw new Error('Service must be defined!');\n }\n\n const selectedItems = createSelector(\n createFeatureSelector<any>(ngrxFeatureKey),\n (state: any) => {\n return (state?.[tableRepository] as TableState<any>)?.selectedItems as any;\n }\n );\n\n return actions$.pipe(\n ofType(createRemoveRangeTableAction(tableRepository)),\n withLatestFrom(selectedItems),\n switchMap(([, { selectedItems }]) => {\n return config.service!.removeRange(selectedItems).pipe(\n map(() => {\n return createGetPageTableAction(tableRepository)\n ({ page: 0, size: DEFAULT_SEARCH_LIMIT })\n }),\n catchError(error => {\n return of(createDataLoadErrorTableAction(tableRepository)({ error }))\n })\n );\n })\n );\n });\n}\n","import { createAction, props } from '@ngrx/store';\n\nexport function createAddBindingAction<TCreate>(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings`,\n props<{ binding: TCreate }>()\n );\n}\n\nexport function createAddBindingsAction<TCreate>(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings`,\n props<{ bindings: TCreate[] }>()\n );\n}\n\nexport function createAddBindingsFailureAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createAddBindingsSuccessAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings success`\n );\n}\n\nexport function createEditBindingAction<TEdit>(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Edit binding`,\n props<{ binding: TEdit }>()\n );\n}\n\nexport function createEditBindingFailureAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Edit binding failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createEditBindingSuccessAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Edit binding success`\n );\n}\n\nexport function createDeleteBindingAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete binding`,\n props<{ id: number | string }>()\n );\n}\n\nexport function createDeleteBindingsAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete bindings`,\n props<{ bindingIds: number[] }>()\n );\n}\n\nexport function createDeleteBindingsFailureAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete bindings failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createDeleteBindingsSuccessAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete bindings success`\n );\n}\n\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport {\n catchError,\n map,\n Observable,\n of,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\nimport {\n createAddBindingAction,\n createAddBindingsAction,\n createAddBindingsFailureAction,\n createAddBindingsSuccessAction,\n createDeleteBindingAction,\n createDeleteBindingsAction,\n createDeleteBindingsFailureAction,\n createDeleteBindingsSuccessAction,\n createEditBindingAction,\n createEditBindingFailureAction,\n createEditBindingSuccessAction,\n} from './binding.actions';\n\nexport function createSingleBindingEffectsWithEdit<\n T extends { id: number | string },\n TCreate,\n TEdit extends { id?: number | string }\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingSingularName: string,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate,\n ) => Observable<any>,\n editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,\n deleteFunction: (\n bindingIds: string | number,\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n tableService: any,\n overrideDetailWithBinding = false,\n) {\n const addEffect = createAddBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n addFunction,\n snackbar,\n translateService,\n );\n\n const editEffect = createEditBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingSingularName,\n editFunction,\n snackbar,\n translateService,\n overrideDetailWithBinding\n );\n\n const deleteEffect = createDeleteBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n deleteFunction,\n snackbar,\n translateService\n );\n\n const modifiedSuccessEffect = createBindingModifiedSuccessEffect(\n bindingsRepository,\n actions$,\n tableService\n );\n\n return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };\n}\n\nexport function createBindingsEffectsWithEdit<\n T extends { id: number | string },\n TCreate,\n TEdit extends { id?: number | string }\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingSingularName: string,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate[],\n detailId: number | string\n ) => Observable<any>,\n editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,\n deleteFunction: (\n bindingIds: number[],\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n tableService: any,\n overrideDetailWithBinding = false,\n) {\n const addEffect = createAddBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n addFunction,\n snackbar,\n translateService\n );\n\n const editEffect = createEditBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingSingularName,\n editFunction,\n snackbar,\n translateService,\n overrideDetailWithBinding\n );\n\n const deleteEffect = createDeleteBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n deleteFunction,\n snackbar,\n translateService\n );\n\n const modifiedSuccessEffect = createBindingModifiedSuccessEffect(\n bindingsRepository,\n actions$,\n tableService\n );\n\n return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };\n}\n\nexport function createBindingsEffects<\n T extends { id: number | string },\n TCreate\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate[],\n detailId: number | string\n ) => Observable<any>,\n deleteFunction: (\n bindingIds: number[],\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n tableService: any\n) {\n const addEffect = createAddBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n addFunction,\n snackbar,\n translateService\n );\n\n const deleteEffect = createDeleteBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n deleteFunction,\n snackbar,\n translateService\n );\n\n const modifiedSuccessEffect = createBindingModifiedSuccessEffect(\n bindingsRepository,\n actions$,\n tableService\n );\n\n return { addEffect, deleteEffect, modifiedSuccessEffect };\n}\n\nfunction createAddBindingEffect<T extends { id: number | string }, TCreate>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate,\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createAddBindingAction<TCreate>(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ binding }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_ADD'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_ADD'\n )} ${translatedPluralName}!`;\n\n return addFunction(binding).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createAddBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createAddBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createAddBindingsEffect<T extends { id: number | string }, TCreate>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate[],\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createAddBindingsAction<TCreate>(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ bindings }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_ADD'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_ADD'\n )} ${translatedPluralName}!`;\n\n if (!detail?.id) {\n snackbar.showError(failureMessage);\n return of(\n createAddBindingsFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return addFunction(bindings, detail.id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createAddBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createAddBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createEditBindingEffect<\n T extends { id: number | string },\n TEdit extends { id?: number | string }\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingSingularName: string,\n editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,\n snackbar: any,\n translateService: any,\n overrideDetailWithBinding = false,\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createEditBindingAction<TEdit>(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ binding }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingSingularName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_EDIT'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_EDIT'\n )} ${translatedPluralName}!`;\n\n const id = overrideDetailWithBinding ? binding?.id : detail?.id;\n if (!id) {\n snackbar.showError(failureMessage);\n return of(\n createEditBindingFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return editFunction(binding, id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createEditBindingSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createEditBindingFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createDeleteBindingEffect<T extends { id: number | string }>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n deleteFunction: (\n bindingIds: string | number,\n detailId: string | number\n ) => Observable<any>,\n snackbar: any,\n translateService: any\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createDeleteBindingAction(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ id }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_DELETE'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_DELETE'\n )} ${translatedPluralName}!`;\n\n if (!id && !detail?.id) {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return deleteFunction(id, id ?? detail?.id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createDeleteBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createDeleteBindingsEffect<T extends { id: number | string }>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n deleteFunction: (\n bindingIds: number[],\n detailId: string | number\n ) => Observable<any>,\n snackbar: any,\n translateService: any\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createDeleteBindingsAction(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ bindingIds }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_DELETE'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_DELETE'\n )} ${translatedPluralName}!`;\n\n if (!detail?.id) {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return deleteFunction(bindingIds, detail.id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createDeleteBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createBindingModifiedSuccessEffect(\n bindingsRepository: string,\n actions$: Actions,\n tableService: any\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(\n createAddBindingsSuccessAction(bindingsRepository),\n createEditBindingSuccessAction(bindingsRepository),\n createDeleteBindingsSuccessAction(bindingsRepository)\n ),\n tap(() => {\n tableService.forceReload();\n })\n ),\n { dispatch: false }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verisoft-store.mjs","sources":["../../../../../src/libs/store/src/lib/detail-state/detail.actions.ts","../../../../../src/libs/store/src/lib/detail-state/detail.models.ts","../../../../../src/libs/store/src/lib/detail-state/detail.reducer.ts","../../../../../src/libs/store/src/lib/detail-state/detail.effects.ts","../../../../../src/libs/store/src/lib/table-state/actions.ts","../../../../../src/libs/store/src/lib/table-state/models.ts","../../../../../src/libs/store/src/lib/table-state/reducers.ts","../../../../../src/libs/store/src/lib/table-state/effects.ts","../../../../../src/libs/store/src/lib/binding-state/binding.actions.ts","../../../../../src/libs/store/src/lib/binding-state/binding.effects.ts","../../../../../src/libs/store/src/verisoft-store.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { FormState } from './detail.models';\n\nexport function createInitDetailAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository} Page] Init`,\n props<{ obj: string | null | number | undefined | any }>()\n );\n}\n\nexport function createInitNewDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository} Page] Init New`);\n}\n\nexport function createLoadDetailSuccessAction<T>(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Load ${detailsRepository} Success`,\n props<{ item: T }>()\n );\n}\n\nexport function createLoadDetailFailureAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Load ${detailsRepository} Failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createUpdateDetailAction<T>(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Update ${detailsRepository}`,\n props<{ item: T }>()\n );\n}\n\nexport function createUpdateDetailSetErrorsAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Update Validation Errors ${detailsRepository}`,\n props<{ error: any }>()\n )\n}\n\nexport function createUpdateFormStateAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Update Form State`,\n props<{ formState: FormState }>()\n );\n}\n\nexport function createSaveDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Save Detail `);\n}\n\nexport function createSaveDetailSuccessAction<T>(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Save Detail Success`,\n props<{ item: T }>()\n );\n}\n\nexport function createSaveDetailFailureAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Save Detail Failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createUpdateSaveDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Update Detail `);\n}\n\nexport function createResetStateAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Reset State`);\n}\n\nexport function createDeleteDetailAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Delete Detail`);\n}\n\nexport function createDeleteDetailSuccessAction(detailsRepository: string) {\n return createAction(`[${detailsRepository}/API] Delete Detail Success`);\n}\n\nexport function createDeleteDetailFailureAction(detailsRepository: string) {\n return createAction(\n `[${detailsRepository}/API] Delete Detail Failure`,\n props<{ error: any }>()\n );\n}\n","export interface DetailState<T> {\n loaded: boolean;\n item?: T;\n formState?: FormState;\n error?: string | null;\n saveItemState: SaveItemState;\n backendValidationErrors: BackendValidationError[];\n}\n\nexport interface BackendValidationError {\n code: string;\n message: string;\n parameters: string;\n}\n\nexport interface ChosenRowsState<T> { \n rows: Array<T>;\n}\n\nexport interface SaveItemState {\n saveInProgress: boolean;\n error?: string | null;\n}\n\nexport const INITIAL_SAVE_ITEM_STATE: SaveItemState = {\n saveInProgress: false,\n};\n\nexport const INITIAL_CHOSEN_ROW_STATE: ChosenRowsState<any> = {\n rows: []\n}\n\nexport const INITIAL_DETAIL_STATE: DetailState<any> = {\n loaded: false,\n saveItemState: INITIAL_SAVE_ITEM_STATE,\n backendValidationErrors: [],\n};\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n","import { ActionCreator, createReducer, on, ReducerTypes } from '@ngrx/store';\nimport {\n createInitDetailAction,\n createInitNewDetailAction,\n createLoadDetailFailureAction,\n createLoadDetailSuccessAction,\n createResetStateAction,\n createSaveDetailAction,\n createSaveDetailFailureAction,\n createSaveDetailSuccessAction,\n createUpdateDetailAction,\n createUpdateDetailSetErrorsAction,\n createUpdateFormStateAction,\n} from './detail.actions';\nimport {\n DetailState,\n INITIAL_DETAIL_STATE,\n INITIAL_SAVE_ITEM_STATE,\n} from './detail.models';\n\nexport function createDetailReducers<\n T = any,\n TState extends DetailState<T> = DetailState<T>\n>(\n detailRepository: string,\n initialState: TState = INITIAL_DETAIL_STATE as unknown as TState,\n ...ons: ReducerTypes<TState, readonly ActionCreator[]>[]\n) {\n return createReducer(\n initialState,\n on(createInitDetailAction(detailRepository), (state) => {\n return {\n ...state,\n loaded: false,\n error: null,\n };\n }),\n\n on(createInitNewDetailAction(detailRepository), (state) => {\n return {\n ...state,\n loaded: false,\n error: null,\n };\n }),\n\n on(createLoadDetailSuccessAction(detailRepository), (state, { item }) => {\n return {\n ...state,\n loaded: true,\n item,\n };\n }),\n\n on(createLoadDetailFailureAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n loaded: true,\n error,\n };\n }),\n\n on(createUpdateDetailAction(detailRepository), (state, { item }) => {\n return {\n ...state,\n item,\n formState: {\n dirty: true,\n valid: state.formState?.valid ?? true,\n },\n };\n }),\n\n on(createUpdateDetailSetErrorsAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n backendValidationErrors: error\n }\n }),\n\n on(\n createUpdateFormStateAction(detailRepository),\n (state, { formState }) => {\n return {\n ...state,\n formState,\n };\n }\n ),\n\n on(createSaveDetailSuccessAction(detailRepository), (state) => {\n return {\n ...state,\n formState: {\n dirty: false,\n valid: state.formState?.valid ?? true,\n },\n };\n }),\n \n on(createResetStateAction(detailRepository), () => {\n return {\n ...(initialState as any),\n };\n }),\n \n on(createSaveDetailFailureAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n backendValidationErrors: error.error\n }\n }),\n ...ons\n );\n}\n\nexport function createSaveDetailReducers(\n detailRepository: string,\n initialState = INITIAL_SAVE_ITEM_STATE\n) {\n return createReducer(\n initialState,\n\n on(createSaveDetailAction(detailRepository), (state) => {\n return {\n ...state,\n saveInProgress: true,\n };\n }),\n\n on(createSaveDetailSuccessAction(detailRepository), (state, { item }) => {\n return {\n ...state,\n item,\n saveInProgress: false,\n };\n }),\n\n on(createSaveDetailFailureAction(detailRepository), (state, { error }) => {\n return {\n ...state,\n error,\n saveInProgress: false,\n };\n })\n );\n}\n","import { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { BaseHttpService } from '@verisoft/core';\nimport {\n catchError,\n EMPTY,\n map,\n Observable,\n of,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\nimport {\n createDeleteDetailAction,\n createDeleteDetailFailureAction,\n createDeleteDetailSuccessAction,\n createInitDetailAction,\n createInitNewDetailAction,\n createLoadDetailFailureAction,\n createLoadDetailSuccessAction,\n createSaveDetailAction,\n createSaveDetailFailureAction,\n createSaveDetailSuccessAction,\n} from './detail.actions';\n\nexport interface CreateInitFormConfig<T> {\n service?: BaseHttpService<T>;\n get?: (obj: any) => Observable<T>;\n snackbar?: any;\n errorMessage?: string;\n notFoundMessage?: string;\n successMessge?: string;\n}\n\nexport interface DetailEffectConfig<T> {\n detail$: Observable<T | undefined>;\n snackbar?: any;\n router?: Router;\n redirectPath?: string;\n useItemId?: boolean;\n navigationMap?: Map<keyof T, string>;\n}\n\nexport function createInitDetailEffect<T>(\n detailsRepository: string,\n actions$: Actions,\n config: CreateInitFormConfig<T>\n) {\n return createEffect(() => {\n return actions$.pipe(\n ofType(createInitDetailAction(detailsRepository)),\n switchMap(({ obj }) => {\n const get$: Observable<any> = (config?.service?.get(obj as any) ??\n config?.get?.(obj)) as Observable<any>;\n if (!get$) return EMPTY;\n return get$?.pipe(\n map((item) => {\n return createLoadDetailSuccessAction(detailsRepository)({ item });\n }),\n catchError((error) => {\n if (error.status === 404) {\n config?.snackbar?.showError(config?.notFoundMessage ?? error);\n } else {\n config?.snackbar?.showError(config?.errorMessage ?? error);\n }\n\n console.error('Error', error);\n return of(\n createLoadDetailFailureAction(detailsRepository)({ error })\n );\n })\n );\n })\n );\n });\n}\n\nexport function createInitNewDetailEffect(\n detailsRepository: string,\n actions$: Actions\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createInitNewDetailAction(detailsRepository)),\n map(() => {\n return createLoadDetailSuccessAction(detailsRepository)({ item: null });\n })\n )\n );\n}\n\nexport function createSaveDetailEffect<\n T extends { id: number | string },\n SERVICE extends BaseHttpService<T>\n>(\n detailsRepository: string,\n actions$: Actions,\n service: SERVICE,\n config: DetailEffectConfig<T>\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createSaveDetailAction(detailsRepository)),\n withLatestFrom(config.detail$),\n switchMap(([, savedItem]) => {\n const isNew = !savedItem?.id;\n const saveAction = isNew\n ? service.post(savedItem as T)\n : service.put(savedItem.id, savedItem);\n return saveAction.pipe(\n map((item) => {\n if (isNew && config?.router && config?.redirectPath) {\n const suffix = config?.useItemId ? '/' + item.id : '';\n config.router.navigateByUrl(config.redirectPath + suffix);\n }\n\n if (isNew && config?.router && config?.navigationMap) {\n const url = constructUrlFromNavigationMap(item, config.navigationMap)\n config.router.navigateByUrl(url);\n }\n\n return createSaveDetailSuccessAction(detailsRepository)({\n item: item,\n });\n }),\n catchError((error) => {\n console.error('Error', error);\n return of(\n createSaveDetailFailureAction(detailsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nexport function createSaveDetailSuccessEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createSaveDetailSuccessAction(detailsRepository)),\n map((data: any) => {\n config?.snackbar?.showSuccess(\n config?.successMessge ?? `Item successfully saved.`\n );\n return createInitDetailAction(detailsRepository)({ obj: data.item.id });\n })\n )\n );\n}\n\nexport function createSaveDetailFailureEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createSaveDetailFailureAction(detailsRepository)),\n tap(({ error }) => {\n config?.snackbar?.showError(\n config.errorMessage ?? `Error saving item. ${error.message}`\n );\n })\n ),\n {\n dispatch: false,\n }\n );\n}\n\nexport function createDeleteDetailEffect<\n T extends { id: number | string },\n SERVICE extends BaseHttpService<T>\n>(\n detailsRepository: string,\n actions$: Actions,\n service: SERVICE,\n config: DetailEffectConfig<T>,\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createDeleteDetailAction(detailsRepository)),\n withLatestFrom(config.detail$),\n switchMap(([, savedItem]) => {\n const id = savedItem?.id;\n if (!id) {\n return of(\n createSaveDetailFailureAction(detailsRepository)({\n error: 'Item has no id',\n })\n );\n }\n\n return service.delete(id).pipe(\n map(() => {\n if (config?.router && config?.redirectPath) {\n config.router.navigateByUrl(`${config.redirectPath}`);\n }\n\n if (config?.router && config?.navigationMap) {\n const url = constructUrlFromNavigationMap(savedItem, config.navigationMap)\n config.router.navigateByUrl(url);\n }\n\n return createDeleteDetailSuccessAction(detailsRepository)();\n }),\n catchError((error) => {\n console.error('Error', error);\n config.snackbar?.showError('Failed to delete item.');\n return of(\n createDeleteDetailFailureAction(detailsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nexport function createDeleteDetailSuccessEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createDeleteDetailSuccessAction(detailsRepository)),\n tap(() => {\n config?.snackbar?.showSuccess(\n config.successMessge ?? `Item successfully deleted.`\n );\n })\n ),\n {\n dispatch: false,\n }\n );\n}\n\nexport function createDeleteDetailFailureEffect(\n detailsRepository: string,\n actions$: Actions,\n config?: CreateInitFormConfig<unknown>\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(createDeleteDetailFailureAction(detailsRepository)),\n tap(({ error }) => {\n config?.snackbar?.showError(\n config.errorMessage ?? `Error deleting item. ${error.message}`\n );\n })\n ),\n {\n dispatch: false,\n }\n );\n}\n\nfunction constructUrlFromNavigationMap<T extends object>(\n item: T,\n navigationMap: Map<keyof T, string>)\n : string {\n let url = '';\n navigationMap.forEach((urlPartValue, suffixPropertyKey) => {\n const suffix = item[suffixPropertyKey];\n if (suffix) {\n url += `${urlPartValue}/${suffix}`;\n }\n });\n\n return url;\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Page, Sort } from '@verisoft/core';\n\nenum TablePageAction {\n GET_PAGE = 'Get page',\n CREATE_STATIC_FILTER = 'Create static filter',\n DATA_LOAD_SUCCESS = 'Data load success',\n DATA_LOAD_ERROR = 'Data load error',\n REFRESH_PAGE = 'Refresh page',\n FILTER_PAGE = 'Filter page',\n CHANGE_PAGE_SIZE = 'Change page size',\n SORT_PAGE = 'Sort page',\n DESTROY = 'Destroy',\n SELECT_ITEMS = 'Select items',\n REMOVE_RANGE = 'Remove range',\n}\n\nexport function createGetPageTableAction<T = any>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.GET_PAGE}`,\n props<{\n page: number;\n size: number;\n id?: string | null;\n filter?: Partial<T>;\n sort?: Sort[];\n }>()\n );\n}\n\nexport function createStaticFilterTableAction<T = any>(\n tableRepository: string\n) {\n return createAction(\n `${tableRepository} ${TablePageAction.CREATE_STATIC_FILTER}`,\n props<{\n filter?: Partial<T>;\n }>()\n );\n}\n\nexport function createDataLoadSuccessTableAction<T>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.DATA_LOAD_SUCCESS}`,\n props<{ gPage: Page<T> }>()\n );\n}\n\nexport function createDataLoadErrorTableAction(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.DATA_LOAD_ERROR}`,\n props<{ error: any }>()\n );\n}\n\nexport function createChangePageSizeTableAction(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.CHANGE_PAGE_SIZE}`,\n props<{ size: number }>()\n );\n}\n\n// TODO: use action in delete item effect\nexport function createRefreshPageTableAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.REFRESH_PAGE}`);\n}\n\nexport function createFilterPageTableAction<T>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.REFRESH_PAGE}`,\n props<{ filter: Partial<T> }>()\n );\n}\n\nexport function createResetTableFilterAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.REFRESH_PAGE}`);\n}\n\nexport function createDestroyTableAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.DESTROY}`);\n}\n\nexport function createSelectItemsTableAction<T>(tableRepository: string) {\n return createAction(\n `${tableRepository} ${TablePageAction.SELECT_ITEMS}`,\n props<{ selectedItems: T[] }>()\n );\n}\n\nexport function createRemoveRangeTableAction(tableRepository: string) {\n return createAction(`${tableRepository} ${TablePageAction.REMOVE_RANGE}`\n );\n}","import { DEFAULT_SEARCH_LIMIT, DEFAULT_SEARCH_PARAMS, Page, RequestParams } from \"@verisoft/core\";\n\nexport interface TableState<T> {\n dataLoading: boolean;\n requestParams: RequestParams<T>;\n gPage?: Page<T>;\n error?: string | null;\n selectedItems?: T[];\n}\n\nexport const INITIAL_TABLE_STATE: TableState<any> = {\n gPage: {\n data: [],\n size: DEFAULT_SEARCH_LIMIT,\n total: 0.\n } as unknown as Page<any>,\n dataLoading: false,\n requestParams: DEFAULT_SEARCH_PARAMS,\n selectedItems: []\n};","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ActionCreator, ReducerTypes, createReducer, on } from '@ngrx/store';\nimport {\n createGetPageTableAction,\n createStaticFilterTableAction,\n createDataLoadSuccessTableAction,\n createDataLoadErrorTableAction,\n createFilterPageTableAction,\n createDestroyTableAction,\n createSelectItemsTableAction,\n createChangePageSizeTableAction,\n createResetTableFilterAction,\n} from './actions';\nimport { INITIAL_TABLE_STATE, TableState } from './models';\n\nexport function createTablePageReducers<\n T = any,\n TState extends TableState<T> = TableState<T>\n>(\n tableRepository: string,\n initialState: TState = INITIAL_TABLE_STATE as unknown as TState,\n ...ons: ReducerTypes<TState, readonly ActionCreator[]>[]\n) {\n return createReducer(\n initialState,\n on(\n createGetPageTableAction(tableRepository),\n (state, { page, id, filter, sort }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: filter ?? state.requestParams.filter,\n sort: sort ?? state.requestParams.sort,\n id: id ?? state.requestParams.id,\n page,\n },\n dataLoading: true,\n submitted: true,\n };\n }\n ),\n\n on(createStaticFilterTableAction(tableRepository), (state, { filter }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: {\n ...state.requestParams?.filter,\n filter,\n },\n },\n };\n }),\n\n on(createResetTableFilterAction(tableRepository), (state) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: undefined,\n page: 1\n },\n }\n }),\n\n on(\n createDataLoadSuccessTableAction(tableRepository),\n (state, { gPage }) => {\n return {\n ...state,\n gPage,\n dataLoading: false,\n };\n }\n ),\n\n on(createDataLoadErrorTableAction(tableRepository), (state, { error }) => {\n return {\n ...state,\n error,\n dataLoading: false,\n };\n }),\n\n on(createFilterPageTableAction(tableRepository), (state, { filter }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n filter: filter,\n page: 1,\n },\n dataLoading: true,\n };\n }),\n\n on(createDestroyTableAction(tableRepository), () => {\n return {\n ...(initialState as any),\n };\n }),\n\n on(\n createSelectItemsTableAction(tableRepository),\n (state, { selectedItems }) => {\n return {\n ...state,\n selectedItems,\n };\n }\n ),\n\n on(createChangePageSizeTableAction(tableRepository), (state, { size }) => {\n return {\n ...state,\n requestParams: {\n ...state.requestParams,\n size,\n }\n }\n }),\n ...ons\n );\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport { BaseHttpService, DEFAULT_SEARCH_LIMIT, Page, RequestParams } from '@verisoft/core';\nimport { catchError, map, Observable, of, switchMap, withLatestFrom } from 'rxjs';\nimport {\n createGetPageTableAction,\n createDataLoadSuccessTableAction,\n createDataLoadErrorTableAction,\n createRemoveRangeTableAction,\n} from './actions';\nimport { TableState } from './models';\n\nexport interface CreateGetPageActionConfig<T> {\n service?: BaseHttpService<T>;\n fetchList?: (requestParams: RequestParams<any>) => Observable<Page<T>>;\n snackbar?: any;\n ngrxFeatureKey?: string;\n requireFilters?: boolean;\n}\n\nexport function createGetPageTableEffect<T>(\n tableRepository: string,\n actions$: Actions,\n config: CreateGetPageActionConfig<T>\n) {\n return createEffect(() => {\n return actions$.pipe(\n ofType(createGetPageTableAction(tableRepository)),\n switchMap(({ page, filter, sort, size }) => {\n const requestParams: RequestParams<any> = {\n offset: page * size,\n limit: size,\n sort,\n filter,\n };\n\n const params = config.service?.createParams(requestParams) ?? requestParams;\n\n const fetchList$: Observable<Page<T>> = (config.service?.fetchList(\n params\n ) ?? config.fetchList?.(params)) as Observable<Page<T>>;\n if (!fetchList$) {\n throw new Error('Service or fetchList$ must by defined.');\n }\n\n return fetchList$.pipe(\n map((gPage) => {\n const p = { ...gPage, number: page };\n return createDataLoadSuccessTableAction(tableRepository)({\n gPage: p,\n });\n }),\n catchError((error) => {\n config.snackbar?.showError(error.message);\n return of(\n createDataLoadErrorTableAction(tableRepository)({ error })\n );\n })\n );\n })\n );\n });\n}\n\nexport function createRemoveRangeTableEffect<T>(\n tableRepository: string,\n ngrxFeatureKey: string,\n actions$: Actions,\n store$: Store<any>,\n config: CreateGetPageActionConfig<T>\n) {\n return createEffect(() => {\n if(!config?.service) {\n throw new Error('Service must be defined!');\n }\n\n const selectedItems = createSelector(\n createFeatureSelector<any>(ngrxFeatureKey),\n (state: any) => {\n return (state?.[tableRepository] as TableState<any>)?.selectedItems as any;\n }\n );\n\n return actions$.pipe(\n ofType(createRemoveRangeTableAction(tableRepository)),\n withLatestFrom(selectedItems),\n switchMap(([, { selectedItems }]) => {\n return config.service!.removeRange(selectedItems).pipe(\n map(() => {\n return createGetPageTableAction(tableRepository)({ page: 0, size: DEFAULT_SEARCH_LIMIT })\n }),\n catchError(error => {\n return of(createDataLoadErrorTableAction(tableRepository)({ error }))\n })\n );\n })\n );\n });\n}\n","import { createAction, props } from '@ngrx/store';\n\nexport function createAddBindingAction<TCreate>(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings`,\n props<{ binding: TCreate }>()\n );\n}\n\nexport function createAddBindingsAction<TCreate>(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings`,\n props<{ bindings: TCreate[] }>()\n );\n}\n\nexport function createAddBindingsFailureAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createAddBindingsSuccessAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Add bindings success`\n );\n}\n\nexport function createEditBindingAction<TEdit>(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Edit binding`,\n props<{ binding: TEdit }>()\n );\n}\n\nexport function createEditBindingFailureAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Edit binding failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createEditBindingSuccessAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Edit binding success`\n );\n}\n\nexport function createDeleteBindingAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete binding`,\n props<{ id: number | string }>()\n );\n}\n\nexport function createDeleteBindingsAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete bindings`,\n props<{ bindingIds: number[] }>()\n );\n}\n\nexport function createDeleteBindingsFailureAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete bindings failure`,\n props<{ error: any }>()\n );\n}\n\nexport function createDeleteBindingsSuccessAction(bindingsRepository: string) {\n return createAction(\n `[${bindingsRepository}/API] Delete bindings success`\n );\n}\n\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport {\n catchError,\n map,\n Observable,\n of,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\nimport {\n createAddBindingAction,\n createAddBindingsAction,\n createAddBindingsFailureAction,\n createAddBindingsSuccessAction,\n createDeleteBindingAction,\n createDeleteBindingsAction,\n createDeleteBindingsFailureAction,\n createDeleteBindingsSuccessAction,\n createEditBindingAction,\n createEditBindingFailureAction,\n createEditBindingSuccessAction,\n} from './binding.actions';\n\nexport function createSingleBindingEffectsWithEdit<\n T extends { id: number | string },\n TCreate,\n TEdit extends { id?: number | string }\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingSingularName: string,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate,\n ) => Observable<any>,\n editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,\n deleteFunction: (\n bindingIds: string | number,\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n tableService: any,\n overrideDetailWithBinding = false,\n) {\n const addEffect = createAddBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n addFunction,\n snackbar,\n translateService,\n );\n\n const editEffect = createEditBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingSingularName,\n editFunction,\n snackbar,\n translateService,\n overrideDetailWithBinding\n );\n\n const deleteEffect = createDeleteBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n deleteFunction,\n snackbar,\n translateService\n );\n\n const modifiedSuccessEffect = createBindingModifiedSuccessEffect(\n bindingsRepository,\n actions$,\n tableService\n );\n\n return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };\n}\n\nexport function createBindingsEffectsWithEdit<\n T extends { id: number | string },\n TCreate,\n TEdit extends { id?: number | string }\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingSingularName: string,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate[],\n detailId: number | string\n ) => Observable<any>,\n editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,\n deleteFunction: (\n bindingIds: number[],\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n tableService: any,\n overrideDetailWithBinding = false,\n) {\n const addEffect = createAddBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n addFunction,\n snackbar,\n translateService\n );\n\n const editEffect = createEditBindingEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingSingularName,\n editFunction,\n snackbar,\n translateService,\n overrideDetailWithBinding\n );\n\n const deleteEffect = createDeleteBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n deleteFunction,\n snackbar,\n translateService\n );\n\n const modifiedSuccessEffect = createBindingModifiedSuccessEffect(\n bindingsRepository,\n actions$,\n tableService\n );\n\n return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };\n}\n\nexport function createBindingsEffects<\n T extends { id: number | string },\n TCreate\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate[],\n detailId: number | string\n ) => Observable<any>,\n deleteFunction: (\n bindingIds: number[],\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n tableService: any\n) {\n const addEffect = createAddBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n addFunction,\n snackbar,\n translateService\n );\n\n const deleteEffect = createDeleteBindingsEffect(\n bindingsRepository,\n actions$,\n detail$,\n bindingPluralName,\n deleteFunction,\n snackbar,\n translateService\n );\n\n const modifiedSuccessEffect = createBindingModifiedSuccessEffect(\n bindingsRepository,\n actions$,\n tableService\n );\n\n return { addEffect, deleteEffect, modifiedSuccessEffect };\n}\n\nfunction createAddBindingEffect<T extends { id: number | string }, TCreate>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate,\n ) => Observable<any>,\n snackbar: any,\n translateService: any,\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createAddBindingAction<TCreate>(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ binding }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_ADD'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_ADD'\n )} ${translatedPluralName}!`;\n\n return addFunction(binding).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createAddBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createAddBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createAddBindingsEffect<T extends { id: number | string }, TCreate>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n addFunction: (\n bindings: TCreate[],\n detailId: number | string\n ) => Observable<any>,\n snackbar: any,\n translateService: any\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createAddBindingsAction<TCreate>(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ bindings }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_ADD'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_ADD'\n )} ${translatedPluralName}!`;\n\n if (!detail?.id) {\n snackbar.showError(failureMessage);\n return of(\n createAddBindingsFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return addFunction(bindings, detail.id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createAddBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createAddBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createEditBindingEffect<\n T extends { id: number | string },\n TEdit extends { id?: number | string }\n>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingSingularName: string,\n editFunction: (binding: TEdit, detailId: number | string) => Observable<any>,\n snackbar: any,\n translateService: any,\n overrideDetailWithBinding = false,\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createEditBindingAction<TEdit>(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ binding }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingSingularName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_EDIT'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_EDIT'\n )} ${translatedPluralName}!`;\n\n const id = overrideDetailWithBinding ? binding?.id : detail?.id;\n if (!id) {\n snackbar.showError(failureMessage);\n return of(\n createEditBindingFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return editFunction(binding, id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createEditBindingSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createEditBindingFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createDeleteBindingEffect<T extends { id: number | string }>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n deleteFunction: (\n bindingIds: string | number,\n detailId: string | number\n ) => Observable<any>,\n snackbar: any,\n translateService: any\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createDeleteBindingAction(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ id }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_DELETE'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_DELETE'\n )} ${translatedPluralName}!`;\n\n if (!id && !detail?.id) {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return deleteFunction(id, id ?? detail?.id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createDeleteBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createDeleteBindingsEffect<T extends { id: number | string }>(\n bindingsRepository: string,\n actions$: Actions,\n detail$: Observable<T | undefined>,\n bindingPluralName: string,\n deleteFunction: (\n bindingIds: number[],\n detailId: string | number\n ) => Observable<any>,\n snackbar: any,\n translateService: any\n) {\n return createEffect(() =>\n actions$.pipe(\n ofType(createDeleteBindingsAction(bindingsRepository)),\n withLatestFrom(detail$),\n switchMap(([{ bindingIds }, detail]) => {\n const translatedPluralName =\n translateService.instant(bindingPluralName);\n const successMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.SUCCESS_DELETE'\n )} ${translatedPluralName}!`;\n const failureMessage = `${translateService.instant(\n 'BINDINGS_EFFECTS.FAILURE_DELETE'\n )} ${translatedPluralName}!`;\n\n if (!detail?.id) {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({\n error: failureMessage,\n })\n );\n }\n\n return deleteFunction(bindingIds, detail.id).pipe(\n map(() => {\n snackbar.showSuccess(successMessage);\n return createDeleteBindingsSuccessAction(bindingsRepository)();\n }),\n catchError((error) => {\n snackbar.showError(failureMessage);\n return of(\n createDeleteBindingsFailureAction(bindingsRepository)({ error })\n );\n })\n );\n })\n )\n );\n}\n\nfunction createBindingModifiedSuccessEffect(\n bindingsRepository: string,\n actions$: Actions,\n tableService: any\n) {\n return createEffect(\n () =>\n actions$.pipe(\n ofType(\n createAddBindingsSuccessAction(bindingsRepository),\n createEditBindingSuccessAction(bindingsRepository),\n createDeleteBindingsSuccessAction(bindingsRepository)\n ),\n tap(() => {\n tableService.forceReload();\n })\n ),\n { dispatch: false }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verisoft/store",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.0.0-1",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@
|
|
6
|
-
"@
|
|
7
|
-
"@ngrx/
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
},
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"tslib": "^2.3.0"
|
|
5
|
+
"@verisoft/core": "19.0.0-1",
|
|
6
|
+
"@ngrx/effects": "19.2.1",
|
|
7
|
+
"@ngrx/store": "19.2.1",
|
|
8
|
+
"@angular/router": "19.2.9",
|
|
9
|
+
"rxjs": "~7.8.0"
|
|
13
10
|
},
|
|
14
11
|
"sideEffects": false,
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
15
|
"module": "fesm2022/verisoft-store.mjs",
|
|
16
16
|
"typings": "index.d.ts",
|
|
17
17
|
"exports": {
|
|
@@ -20,9 +20,10 @@
|
|
|
20
20
|
},
|
|
21
21
|
".": {
|
|
22
22
|
"types": "./index.d.ts",
|
|
23
|
-
"esm2022": "./esm2022/verisoft-store.mjs",
|
|
24
|
-
"esm": "./esm2022/verisoft-store.mjs",
|
|
25
23
|
"default": "./fesm2022/verisoft-store.mjs"
|
|
26
24
|
}
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"tslib": "^2.3.0"
|
|
27
28
|
}
|
|
28
29
|
}
|
package/esm2022/index.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from './lib/detail-state/detail.actions';
|
|
2
|
-
export * from './lib/detail-state/detail.reducer';
|
|
3
|
-
export * from './lib/detail-state/detail.effects';
|
|
4
|
-
export * from './lib/detail-state/detail.models';
|
|
5
|
-
export * from './lib/table-state/actions';
|
|
6
|
-
export * from './lib/table-state/reducers';
|
|
7
|
-
export * from './lib/table-state/effects';
|
|
8
|
-
export * from './lib/table-state/models';
|
|
9
|
-
export * from './lib/binding-state/binding.actions';
|
|
10
|
-
export * from './lib/binding-state/binding.effects';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9zdG9yZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2RldGFpbC1zdGF0ZS9kZXRhaWwuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZXRhaWwtc3RhdGUvZGV0YWlsLnJlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGV0YWlsLXN0YXRlL2RldGFpbC5lZmZlY3RzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RldGFpbC1zdGF0ZS9kZXRhaWwubW9kZWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFibGUtc3RhdGUvYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJsZS1zdGF0ZS9yZWR1Y2Vycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJsZS1zdGF0ZS9lZmZlY3RzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYmxlLXN0YXRlL21vZGVscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2JpbmRpbmctc3RhdGUvYmluZGluZy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JpbmRpbmctc3RhdGUvYmluZGluZy5lZmZlY3RzJztcbiJdfQ==
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { createAction, props } from '@ngrx/store';
|
|
2
|
-
export function createAddBindingAction(bindingsRepository) {
|
|
3
|
-
return createAction(`[${bindingsRepository}/API] Add bindings`, props());
|
|
4
|
-
}
|
|
5
|
-
export function createAddBindingsAction(bindingsRepository) {
|
|
6
|
-
return createAction(`[${bindingsRepository}/API] Add bindings`, props());
|
|
7
|
-
}
|
|
8
|
-
export function createAddBindingsFailureAction(bindingsRepository) {
|
|
9
|
-
return createAction(`[${bindingsRepository}/API] Add bindings failure`, props());
|
|
10
|
-
}
|
|
11
|
-
export function createAddBindingsSuccessAction(bindingsRepository) {
|
|
12
|
-
return createAction(`[${bindingsRepository}/API] Add bindings success`);
|
|
13
|
-
}
|
|
14
|
-
export function createEditBindingAction(bindingsRepository) {
|
|
15
|
-
return createAction(`[${bindingsRepository}/API] Edit binding`, props());
|
|
16
|
-
}
|
|
17
|
-
export function createEditBindingFailureAction(bindingsRepository) {
|
|
18
|
-
return createAction(`[${bindingsRepository}/API] Edit binding failure`, props());
|
|
19
|
-
}
|
|
20
|
-
export function createEditBindingSuccessAction(bindingsRepository) {
|
|
21
|
-
return createAction(`[${bindingsRepository}/API] Edit binding success`);
|
|
22
|
-
}
|
|
23
|
-
export function createDeleteBindingAction(bindingsRepository) {
|
|
24
|
-
return createAction(`[${bindingsRepository}/API] Delete binding`, props());
|
|
25
|
-
}
|
|
26
|
-
export function createDeleteBindingsAction(bindingsRepository) {
|
|
27
|
-
return createAction(`[${bindingsRepository}/API] Delete bindings`, props());
|
|
28
|
-
}
|
|
29
|
-
export function createDeleteBindingsFailureAction(bindingsRepository) {
|
|
30
|
-
return createAction(`[${bindingsRepository}/API] Delete bindings failure`, props());
|
|
31
|
-
}
|
|
32
|
-
export function createDeleteBindingsSuccessAction(bindingsRepository) {
|
|
33
|
-
return createAction(`[${bindingsRepository}/API] Delete bindings success`);
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvc3RvcmUvc3JjL2xpYi9iaW5kaW5nLXN0YXRlL2JpbmRpbmcuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxNQUFNLFVBQVUsc0JBQXNCLENBQVUsa0JBQTBCO0lBQ3hFLE9BQU8sWUFBWSxDQUNqQixJQUFJLGtCQUFrQixvQkFBb0IsRUFDMUMsS0FBSyxFQUF3QixDQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBVSxrQkFBMEI7SUFDekUsT0FBTyxZQUFZLENBQ2pCLElBQUksa0JBQWtCLG9CQUFvQixFQUMxQyxLQUFLLEVBQTJCLENBQ2pDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUFDLGtCQUEwQjtJQUN2RSxPQUFPLFlBQVksQ0FDakIsSUFBSSxrQkFBa0IsNEJBQTRCLEVBQ2xELEtBQUssRUFBa0IsQ0FDeEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsOEJBQThCLENBQUMsa0JBQTBCO0lBQ3ZFLE9BQU8sWUFBWSxDQUNqQixJQUFJLGtCQUFrQiw0QkFBNEIsQ0FDbkQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQVEsa0JBQTBCO0lBQ3ZFLE9BQU8sWUFBWSxDQUNqQixJQUFJLGtCQUFrQixvQkFBb0IsRUFDMUMsS0FBSyxFQUFzQixDQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxrQkFBMEI7SUFDdkUsT0FBTyxZQUFZLENBQ2pCLElBQUksa0JBQWtCLDRCQUE0QixFQUNsRCxLQUFLLEVBQWtCLENBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUFDLGtCQUEwQjtJQUN2RSxPQUFPLFlBQVksQ0FDakIsSUFBSSxrQkFBa0IsNEJBQTRCLENBQ25ELENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGtCQUEwQjtJQUNsRSxPQUFPLFlBQVksQ0FDakIsSUFBSSxrQkFBa0Isc0JBQXNCLEVBQzVDLEtBQUssRUFBMkIsQ0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsa0JBQTBCO0lBQ25FLE9BQU8sWUFBWSxDQUNqQixJQUFJLGtCQUFrQix1QkFBdUIsRUFDN0MsS0FBSyxFQUE0QixDQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxrQkFBMEI7SUFDMUUsT0FBTyxZQUFZLENBQ2pCLElBQUksa0JBQWtCLCtCQUErQixFQUNyRCxLQUFLLEVBQWtCLENBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLGtCQUEwQjtJQUMxRSxPQUFPLFlBQVksQ0FDakIsSUFBSSxrQkFBa0IsK0JBQStCLENBQ3RELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkZEJpbmRpbmdBY3Rpb248VENyZWF0ZT4oYmluZGluZ3NSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihcbiAgICBgWyR7YmluZGluZ3NSZXBvc2l0b3J5fS9BUEldIEFkZCBiaW5kaW5nc2AsXG4gICAgcHJvcHM8eyBiaW5kaW5nOiBUQ3JlYXRlIH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkZEJpbmRpbmdzQWN0aW9uPFRDcmVhdGU+KGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oXG4gICAgYFske2JpbmRpbmdzUmVwb3NpdG9yeX0vQVBJXSBBZGQgYmluZGluZ3NgLFxuICAgIHByb3BzPHsgYmluZGluZ3M6IFRDcmVhdGVbXSB9PigpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBZGRCaW5kaW5nc0ZhaWx1cmVBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihcbiAgICBgWyR7YmluZGluZ3NSZXBvc2l0b3J5fS9BUEldIEFkZCBiaW5kaW5ncyBmYWlsdXJlYCxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWRkQmluZGluZ3NTdWNjZXNzQWN0aW9uKGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oXG4gICAgYFske2JpbmRpbmdzUmVwb3NpdG9yeX0vQVBJXSBBZGQgYmluZGluZ3Mgc3VjY2Vzc2BcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVkaXRCaW5kaW5nQWN0aW9uPFRFZGl0PihiaW5kaW5nc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtiaW5kaW5nc1JlcG9zaXRvcnl9L0FQSV0gRWRpdCBiaW5kaW5nYCxcbiAgICBwcm9wczx7IGJpbmRpbmc6IFRFZGl0IH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVkaXRCaW5kaW5nRmFpbHVyZUFjdGlvbihiaW5kaW5nc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtiaW5kaW5nc1JlcG9zaXRvcnl9L0FQSV0gRWRpdCBiaW5kaW5nIGZhaWx1cmVgLFxuICAgIHByb3BzPHsgZXJyb3I6IGFueSB9PigpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFZGl0QmluZGluZ1N1Y2Nlc3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihcbiAgICBgWyR7YmluZGluZ3NSZXBvc2l0b3J5fS9BUEldIEVkaXQgYmluZGluZyBzdWNjZXNzYFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVsZXRlQmluZGluZ0FjdGlvbihiaW5kaW5nc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtiaW5kaW5nc1JlcG9zaXRvcnl9L0FQSV0gRGVsZXRlIGJpbmRpbmdgLFxuICAgIHByb3BzPHsgaWQ6IG51bWJlciB8IHN0cmluZyB9PigpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWxldGVCaW5kaW5nc0FjdGlvbihiaW5kaW5nc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtiaW5kaW5nc1JlcG9zaXRvcnl9L0FQSV0gRGVsZXRlIGJpbmRpbmdzYCxcbiAgICBwcm9wczx7IGJpbmRpbmdJZHM6IG51bWJlcltdIH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlbGV0ZUJpbmRpbmdzRmFpbHVyZUFjdGlvbihiaW5kaW5nc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtiaW5kaW5nc1JlcG9zaXRvcnl9L0FQSV0gRGVsZXRlIGJpbmRpbmdzIGZhaWx1cmVgLFxuICAgIHByb3BzPHsgZXJyb3I6IGFueSB9PigpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWxldGVCaW5kaW5nc1N1Y2Nlc3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihcbiAgICBgWyR7YmluZGluZ3NSZXBvc2l0b3J5fS9BUEldIERlbGV0ZSBiaW5kaW5ncyBzdWNjZXNzYFxuICApO1xufVxuXG4iXX0=
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { createEffect, ofType } from '@ngrx/effects';
|
|
2
|
-
import { catchError, map, of, switchMap, tap, withLatestFrom, } from 'rxjs';
|
|
3
|
-
import { createAddBindingAction, createAddBindingsAction, createAddBindingsFailureAction, createAddBindingsSuccessAction, createDeleteBindingAction, createDeleteBindingsAction, createDeleteBindingsFailureAction, createDeleteBindingsSuccessAction, createEditBindingAction, createEditBindingFailureAction, createEditBindingSuccessAction, } from './binding.actions';
|
|
4
|
-
export function createSingleBindingEffectsWithEdit(bindingsRepository, actions$, detail$, bindingSingularName, bindingPluralName, addFunction, editFunction, deleteFunction, snackbar, translateService, tableService, overrideDetailWithBinding = false) {
|
|
5
|
-
const addEffect = createAddBindingEffect(bindingsRepository, actions$, detail$, bindingPluralName, addFunction, snackbar, translateService);
|
|
6
|
-
const editEffect = createEditBindingEffect(bindingsRepository, actions$, detail$, bindingSingularName, editFunction, snackbar, translateService, overrideDetailWithBinding);
|
|
7
|
-
const deleteEffect = createDeleteBindingEffect(bindingsRepository, actions$, detail$, bindingPluralName, deleteFunction, snackbar, translateService);
|
|
8
|
-
const modifiedSuccessEffect = createBindingModifiedSuccessEffect(bindingsRepository, actions$, tableService);
|
|
9
|
-
return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };
|
|
10
|
-
}
|
|
11
|
-
export function createBindingsEffectsWithEdit(bindingsRepository, actions$, detail$, bindingSingularName, bindingPluralName, addFunction, editFunction, deleteFunction, snackbar, translateService, tableService, overrideDetailWithBinding = false) {
|
|
12
|
-
const addEffect = createAddBindingsEffect(bindingsRepository, actions$, detail$, bindingPluralName, addFunction, snackbar, translateService);
|
|
13
|
-
const editEffect = createEditBindingEffect(bindingsRepository, actions$, detail$, bindingSingularName, editFunction, snackbar, translateService, overrideDetailWithBinding);
|
|
14
|
-
const deleteEffect = createDeleteBindingsEffect(bindingsRepository, actions$, detail$, bindingPluralName, deleteFunction, snackbar, translateService);
|
|
15
|
-
const modifiedSuccessEffect = createBindingModifiedSuccessEffect(bindingsRepository, actions$, tableService);
|
|
16
|
-
return { addEffect, editEffect, deleteEffect, modifiedSuccessEffect };
|
|
17
|
-
}
|
|
18
|
-
export function createBindingsEffects(bindingsRepository, actions$, detail$, bindingPluralName, addFunction, deleteFunction, snackbar, translateService, tableService) {
|
|
19
|
-
const addEffect = createAddBindingsEffect(bindingsRepository, actions$, detail$, bindingPluralName, addFunction, snackbar, translateService);
|
|
20
|
-
const deleteEffect = createDeleteBindingsEffect(bindingsRepository, actions$, detail$, bindingPluralName, deleteFunction, snackbar, translateService);
|
|
21
|
-
const modifiedSuccessEffect = createBindingModifiedSuccessEffect(bindingsRepository, actions$, tableService);
|
|
22
|
-
return { addEffect, deleteEffect, modifiedSuccessEffect };
|
|
23
|
-
}
|
|
24
|
-
function createAddBindingEffect(bindingsRepository, actions$, detail$, bindingPluralName, addFunction, snackbar, translateService) {
|
|
25
|
-
return createEffect(() => actions$.pipe(ofType(createAddBindingAction(bindingsRepository)), withLatestFrom(detail$), switchMap(([{ binding }, detail]) => {
|
|
26
|
-
const translatedPluralName = translateService.instant(bindingPluralName);
|
|
27
|
-
const successMessage = `${translateService.instant('BINDINGS_EFFECTS.SUCCESS_ADD')} ${translatedPluralName}!`;
|
|
28
|
-
const failureMessage = `${translateService.instant('BINDINGS_EFFECTS.FAILURE_ADD')} ${translatedPluralName}!`;
|
|
29
|
-
return addFunction(binding).pipe(map(() => {
|
|
30
|
-
snackbar.showSuccess(successMessage);
|
|
31
|
-
return createAddBindingsSuccessAction(bindingsRepository)();
|
|
32
|
-
}), catchError((error) => {
|
|
33
|
-
snackbar.showError(failureMessage);
|
|
34
|
-
return of(createAddBindingsFailureAction(bindingsRepository)({ error }));
|
|
35
|
-
}));
|
|
36
|
-
})));
|
|
37
|
-
}
|
|
38
|
-
function createAddBindingsEffect(bindingsRepository, actions$, detail$, bindingPluralName, addFunction, snackbar, translateService) {
|
|
39
|
-
return createEffect(() => actions$.pipe(ofType(createAddBindingsAction(bindingsRepository)), withLatestFrom(detail$), switchMap(([{ bindings }, detail]) => {
|
|
40
|
-
const translatedPluralName = translateService.instant(bindingPluralName);
|
|
41
|
-
const successMessage = `${translateService.instant('BINDINGS_EFFECTS.SUCCESS_ADD')} ${translatedPluralName}!`;
|
|
42
|
-
const failureMessage = `${translateService.instant('BINDINGS_EFFECTS.FAILURE_ADD')} ${translatedPluralName}!`;
|
|
43
|
-
if (!detail?.id) {
|
|
44
|
-
snackbar.showError(failureMessage);
|
|
45
|
-
return of(createAddBindingsFailureAction(bindingsRepository)({
|
|
46
|
-
error: failureMessage,
|
|
47
|
-
}));
|
|
48
|
-
}
|
|
49
|
-
return addFunction(bindings, detail.id).pipe(map(() => {
|
|
50
|
-
snackbar.showSuccess(successMessage);
|
|
51
|
-
return createAddBindingsSuccessAction(bindingsRepository)();
|
|
52
|
-
}), catchError((error) => {
|
|
53
|
-
snackbar.showError(failureMessage);
|
|
54
|
-
return of(createAddBindingsFailureAction(bindingsRepository)({ error }));
|
|
55
|
-
}));
|
|
56
|
-
})));
|
|
57
|
-
}
|
|
58
|
-
function createEditBindingEffect(bindingsRepository, actions$, detail$, bindingSingularName, editFunction, snackbar, translateService, overrideDetailWithBinding = false) {
|
|
59
|
-
return createEffect(() => actions$.pipe(ofType(createEditBindingAction(bindingsRepository)), withLatestFrom(detail$), switchMap(([{ binding }, detail]) => {
|
|
60
|
-
const translatedPluralName = translateService.instant(bindingSingularName);
|
|
61
|
-
const successMessage = `${translateService.instant('BINDINGS_EFFECTS.SUCCESS_EDIT')} ${translatedPluralName}!`;
|
|
62
|
-
const failureMessage = `${translateService.instant('BINDINGS_EFFECTS.FAILURE_EDIT')} ${translatedPluralName}!`;
|
|
63
|
-
const id = overrideDetailWithBinding ? binding?.id : detail?.id;
|
|
64
|
-
if (!id) {
|
|
65
|
-
snackbar.showError(failureMessage);
|
|
66
|
-
return of(createEditBindingFailureAction(bindingsRepository)({
|
|
67
|
-
error: failureMessage,
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
return editFunction(binding, id).pipe(map(() => {
|
|
71
|
-
snackbar.showSuccess(successMessage);
|
|
72
|
-
return createEditBindingSuccessAction(bindingsRepository)();
|
|
73
|
-
}), catchError((error) => {
|
|
74
|
-
snackbar.showError(failureMessage);
|
|
75
|
-
return of(createEditBindingFailureAction(bindingsRepository)({ error }));
|
|
76
|
-
}));
|
|
77
|
-
})));
|
|
78
|
-
}
|
|
79
|
-
function createDeleteBindingEffect(bindingsRepository, actions$, detail$, bindingPluralName, deleteFunction, snackbar, translateService) {
|
|
80
|
-
return createEffect(() => actions$.pipe(ofType(createDeleteBindingAction(bindingsRepository)), withLatestFrom(detail$), switchMap(([{ id }, detail]) => {
|
|
81
|
-
const translatedPluralName = translateService.instant(bindingPluralName);
|
|
82
|
-
const successMessage = `${translateService.instant('BINDINGS_EFFECTS.SUCCESS_DELETE')} ${translatedPluralName}!`;
|
|
83
|
-
const failureMessage = `${translateService.instant('BINDINGS_EFFECTS.FAILURE_DELETE')} ${translatedPluralName}!`;
|
|
84
|
-
if (!id && !detail?.id) {
|
|
85
|
-
snackbar.showError(failureMessage);
|
|
86
|
-
return of(createDeleteBindingsFailureAction(bindingsRepository)({
|
|
87
|
-
error: failureMessage,
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
return deleteFunction(id, id ?? detail?.id).pipe(map(() => {
|
|
91
|
-
snackbar.showSuccess(successMessage);
|
|
92
|
-
return createDeleteBindingsSuccessAction(bindingsRepository)();
|
|
93
|
-
}), catchError((error) => {
|
|
94
|
-
snackbar.showError(failureMessage);
|
|
95
|
-
return of(createDeleteBindingsFailureAction(bindingsRepository)({ error }));
|
|
96
|
-
}));
|
|
97
|
-
})));
|
|
98
|
-
}
|
|
99
|
-
function createDeleteBindingsEffect(bindingsRepository, actions$, detail$, bindingPluralName, deleteFunction, snackbar, translateService) {
|
|
100
|
-
return createEffect(() => actions$.pipe(ofType(createDeleteBindingsAction(bindingsRepository)), withLatestFrom(detail$), switchMap(([{ bindingIds }, detail]) => {
|
|
101
|
-
const translatedPluralName = translateService.instant(bindingPluralName);
|
|
102
|
-
const successMessage = `${translateService.instant('BINDINGS_EFFECTS.SUCCESS_DELETE')} ${translatedPluralName}!`;
|
|
103
|
-
const failureMessage = `${translateService.instant('BINDINGS_EFFECTS.FAILURE_DELETE')} ${translatedPluralName}!`;
|
|
104
|
-
if (!detail?.id) {
|
|
105
|
-
snackbar.showError(failureMessage);
|
|
106
|
-
return of(createDeleteBindingsFailureAction(bindingsRepository)({
|
|
107
|
-
error: failureMessage,
|
|
108
|
-
}));
|
|
109
|
-
}
|
|
110
|
-
return deleteFunction(bindingIds, detail.id).pipe(map(() => {
|
|
111
|
-
snackbar.showSuccess(successMessage);
|
|
112
|
-
return createDeleteBindingsSuccessAction(bindingsRepository)();
|
|
113
|
-
}), catchError((error) => {
|
|
114
|
-
snackbar.showError(failureMessage);
|
|
115
|
-
return of(createDeleteBindingsFailureAction(bindingsRepository)({ error }));
|
|
116
|
-
}));
|
|
117
|
-
})));
|
|
118
|
-
}
|
|
119
|
-
function createBindingModifiedSuccessEffect(bindingsRepository, actions$, tableService) {
|
|
120
|
-
return createEffect(() => actions$.pipe(ofType(createAddBindingsSuccessAction(bindingsRepository), createEditBindingSuccessAction(bindingsRepository), createDeleteBindingsSuccessAction(bindingsRepository)), tap(() => {
|
|
121
|
-
tableService.forceReload();
|
|
122
|
-
})), { dispatch: false });
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvc3RvcmUvc3JjL2xpYi9iaW5kaW5nLXN0YXRlL2JpbmRpbmcuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsVUFBVSxFQUNWLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyx1QkFBdUIsRUFDdkIsOEJBQThCLEVBQzlCLDhCQUE4QixHQUMvQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE1BQU0sVUFBVSxrQ0FBa0MsQ0FLaEQsa0JBQTBCLEVBQzFCLFFBQWlCLEVBQ2pCLE9BQWtDLEVBQ2xDLG1CQUEyQixFQUMzQixpQkFBeUIsRUFDekIsV0FFb0IsRUFDcEIsWUFBNEUsRUFDNUUsY0FHb0IsRUFDcEIsUUFBYSxFQUNiLGdCQUFxQixFQUNyQixZQUFpQixFQUNqQix5QkFBeUIsR0FBRyxLQUFLO0lBRWpDLE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUN0QyxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFFBQVEsRUFDUixnQkFBZ0IsQ0FDakIsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLHVCQUF1QixDQUN4QyxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIseUJB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UCxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQ0gsRUFDSCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGNyZWF0ZUFkZEJpbmRpbmdBY3Rpb24sXG4gIGNyZWF0ZUFkZEJpbmRpbmdzQWN0aW9uLFxuICBjcmVhdGVBZGRCaW5kaW5nc0ZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZUFkZEJpbmRpbmdzU3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlRGVsZXRlQmluZGluZ0FjdGlvbixcbiAgY3JlYXRlRGVsZXRlQmluZGluZ3NBY3Rpb24sXG4gIGNyZWF0ZURlbGV0ZUJpbmRpbmdzRmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlRGVsZXRlQmluZGluZ3NTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVFZGl0QmluZGluZ0FjdGlvbixcbiAgY3JlYXRlRWRpdEJpbmRpbmdGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVFZGl0QmluZGluZ1N1Y2Nlc3NBY3Rpb24sXG59IGZyb20gJy4vYmluZGluZy5hY3Rpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNpbmdsZUJpbmRpbmdFZmZlY3RzV2l0aEVkaXQ8XG4gIFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfCBzdHJpbmcgfSxcbiAgVENyZWF0ZSxcbiAgVEVkaXQgZXh0ZW5kcyB7IGlkPzogbnVtYmVyIHwgc3RyaW5nIH1cbj4oXG4gIGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgZGV0YWlsJDogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPixcbiAgYmluZGluZ1Npbmd1bGFyTmFtZTogc3RyaW5nLFxuICBiaW5kaW5nUGx1cmFsTmFtZTogc3RyaW5nLFxuICBhZGRGdW5jdGlvbjogKFxuICAgIGJpbmRpbmdzOiBUQ3JlYXRlLFxuICApID0+IE9ic2VydmFibGU8YW55PixcbiAgZWRpdEZ1bmN0aW9uOiAoYmluZGluZzogVEVkaXQsIGRldGFpbElkOiBudW1iZXIgfCBzdHJpbmcpID0+IE9ic2VydmFibGU8YW55PixcbiAgZGVsZXRlRnVuY3Rpb246IChcbiAgICBiaW5kaW5nSWRzOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgZGV0YWlsSWQ6IG51bWJlciB8IHN0cmluZ1xuICApID0+IE9ic2VydmFibGU8YW55PixcbiAgc25hY2tiYXI6IGFueSxcbiAgdHJhbnNsYXRlU2VydmljZTogYW55LFxuICB0YWJsZVNlcnZpY2U6IGFueSxcbiAgb3ZlcnJpZGVEZXRhaWxXaXRoQmluZGluZyA9IGZhbHNlLFxuKSB7XG4gIGNvbnN0IGFkZEVmZmVjdCA9IGNyZWF0ZUFkZEJpbmRpbmdFZmZlY3QoXG4gICAgYmluZGluZ3NSZXBvc2l0b3J5LFxuICAgIGFjdGlvbnMkLFxuICAgIGRldGFpbCQsXG4gICAgYmluZGluZ1BsdXJhbE5hbWUsXG4gICAgYWRkRnVuY3Rpb24sXG4gICAgc25hY2tiYXIsXG4gICAgdHJhbnNsYXRlU2VydmljZSxcbiAgKTtcblxuICBjb25zdCBlZGl0RWZmZWN0ID0gY3JlYXRlRWRpdEJpbmRpbmdFZmZlY3QoXG4gICAgYmluZGluZ3NSZXBvc2l0b3J5LFxuICAgIGFjdGlvbnMkLFxuICAgIGRldGFpbCQsXG4gICAgYmluZGluZ1Npbmd1bGFyTmFtZSxcbiAgICBlZGl0RnVuY3Rpb24sXG4gICAgc25hY2tiYXIsXG4gICAgdHJhbnNsYXRlU2VydmljZSxcbiAgICBvdmVycmlkZURldGFpbFdpdGhCaW5kaW5nXG4gICk7XG5cbiAgY29uc3QgZGVsZXRlRWZmZWN0ID0gY3JlYXRlRGVsZXRlQmluZGluZ0VmZmVjdChcbiAgICBiaW5kaW5nc1JlcG9zaXRvcnksXG4gICAgYWN0aW9ucyQsXG4gICAgZGV0YWlsJCxcbiAgICBiaW5kaW5nUGx1cmFsTmFtZSxcbiAgICBkZWxldGVGdW5jdGlvbixcbiAgICBzbmFja2JhcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlXG4gICk7XG5cbiAgY29uc3QgbW9kaWZpZWRTdWNjZXNzRWZmZWN0ID0gY3JlYXRlQmluZGluZ01vZGlmaWVkU3VjY2Vzc0VmZmVjdChcbiAgICBiaW5kaW5nc1JlcG9zaXRvcnksXG4gICAgYWN0aW9ucyQsXG4gICAgdGFibGVTZXJ2aWNlXG4gICk7XG5cbiAgcmV0dXJuIHsgYWRkRWZmZWN0LCBlZGl0RWZmZWN0LCBkZWxldGVFZmZlY3QsIG1vZGlmaWVkU3VjY2Vzc0VmZmVjdCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmluZGluZ3NFZmZlY3RzV2l0aEVkaXQ8XG4gIFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfCBzdHJpbmcgfSxcbiAgVENyZWF0ZSxcbiAgVEVkaXQgZXh0ZW5kcyB7IGlkPzogbnVtYmVyIHwgc3RyaW5nIH1cbj4oXG4gIGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgZGV0YWlsJDogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPixcbiAgYmluZGluZ1Npbmd1bGFyTmFtZTogc3RyaW5nLFxuICBiaW5kaW5nUGx1cmFsTmFtZTogc3RyaW5nLFxuICBhZGRGdW5jdGlvbjogKFxuICAgIGJpbmRpbmdzOiBUQ3JlYXRlW10sXG4gICAgZGV0YWlsSWQ6IG51bWJlciB8IHN0cmluZ1xuICApID0+IE9ic2VydmFibGU8YW55PixcbiAgZWRpdEZ1bmN0aW9uOiAoYmluZGluZzogVEVkaXQsIGRldGFpbElkOiBudW1iZXIgfCBzdHJpbmcpID0+IE9ic2VydmFibGU8YW55PixcbiAgZGVsZXRlRnVuY3Rpb246IChcbiAgICBiaW5kaW5nSWRzOiBudW1iZXJbXSxcbiAgICBkZXRhaWxJZDogbnVtYmVyIHwgc3RyaW5nXG4gICkgPT4gT2JzZXJ2YWJsZTxhbnk+LFxuICBzbmFja2JhcjogYW55LFxuICB0cmFuc2xhdGVTZXJ2aWNlOiBhbnksXG4gIHRhYmxlU2VydmljZTogYW55LFxuICBvdmVycmlkZURldGFpbFdpdGhCaW5kaW5nID0gZmFsc2UsXG4pIHtcbiAgY29uc3QgYWRkRWZmZWN0ID0gY3JlYXRlQWRkQmluZGluZ3NFZmZlY3QoXG4gICAgYmluZGluZ3NSZXBvc2l0b3J5LFxuICAgIGFjdGlvbnMkLFxuICAgIGRldGFpbCQsXG4gICAgYmluZGluZ1BsdXJhbE5hbWUsXG4gICAgYWRkRnVuY3Rpb24sXG4gICAgc25hY2tiYXIsXG4gICAgdHJhbnNsYXRlU2VydmljZVxuICApO1xuXG4gIGNvbnN0IGVkaXRFZmZlY3QgPSBjcmVhdGVFZGl0QmluZGluZ0VmZmVjdChcbiAgICBiaW5kaW5nc1JlcG9zaXRvcnksXG4gICAgYWN0aW9ucyQsXG4gICAgZGV0YWlsJCxcbiAgICBiaW5kaW5nU2luZ3VsYXJOYW1lLFxuICAgIGVkaXRGdW5jdGlvbixcbiAgICBzbmFja2JhcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlLFxuICAgIG92ZXJyaWRlRGV0YWlsV2l0aEJpbmRpbmdcbiAgKTtcblxuICBjb25zdCBkZWxldGVFZmZlY3QgPSBjcmVhdGVEZWxldGVCaW5kaW5nc0VmZmVjdChcbiAgICBiaW5kaW5nc1JlcG9zaXRvcnksXG4gICAgYWN0aW9ucyQsXG4gICAgZGV0YWlsJCxcbiAgICBiaW5kaW5nUGx1cmFsTmFtZSxcbiAgICBkZWxldGVGdW5jdGlvbixcbiAgICBzbmFja2JhcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlXG4gICk7XG5cbiAgY29uc3QgbW9kaWZpZWRTdWNjZXNzRWZmZWN0ID0gY3JlYXRlQmluZGluZ01vZGlmaWVkU3VjY2Vzc0VmZmVjdChcbiAgICBiaW5kaW5nc1JlcG9zaXRvcnksXG4gICAgYWN0aW9ucyQsXG4gICAgdGFibGVTZXJ2aWNlXG4gICk7XG5cbiAgcmV0dXJuIHsgYWRkRWZmZWN0LCBlZGl0RWZmZWN0LCBkZWxldGVFZmZlY3QsIG1vZGlmaWVkU3VjY2Vzc0VmZmVjdCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmluZGluZ3NFZmZlY3RzPFxuICBUIGV4dGVuZHMgeyBpZDogbnVtYmVyIHwgc3RyaW5nIH0sXG4gIFRDcmVhdGVcbj4oXG4gIGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgZGV0YWlsJDogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPixcbiAgYmluZGluZ1BsdXJhbE5hbWU6IHN0cmluZyxcbiAgYWRkRnVuY3Rpb246IChcbiAgICBiaW5kaW5nczogVENyZWF0ZVtdLFxuICAgIGRldGFpbElkOiBudW1iZXIgfCBzdHJpbmdcbiAgKSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gIGRlbGV0ZUZ1bmN0aW9uOiAoXG4gICAgYmluZGluZ0lkczogbnVtYmVyW10sXG4gICAgZGV0YWlsSWQ6IG51bWJlciB8IHN0cmluZ1xuICApID0+IE9ic2VydmFibGU8YW55PixcbiAgc25hY2tiYXI6IGFueSxcbiAgdHJhbnNsYXRlU2VydmljZTogYW55LFxuICB0YWJsZVNlcnZpY2U6IGFueVxuKSB7XG4gIGNvbnN0IGFkZEVmZmVjdCA9IGNyZWF0ZUFkZEJpbmRpbmdzRWZmZWN0KFxuICAgIGJpbmRpbmdzUmVwb3NpdG9yeSxcbiAgICBhY3Rpb25zJCxcbiAgICBkZXRhaWwkLFxuICAgIGJpbmRpbmdQbHVyYWxOYW1lLFxuICAgIGFkZEZ1bmN0aW9uLFxuICAgIHNuYWNrYmFyLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2VcbiAgKTtcblxuICBjb25zdCBkZWxldGVFZmZlY3QgPSBjcmVhdGVEZWxldGVCaW5kaW5nc0VmZmVjdChcbiAgICBiaW5kaW5nc1JlcG9zaXRvcnksXG4gICAgYWN0aW9ucyQsXG4gICAgZGV0YWlsJCxcbiAgICBiaW5kaW5nUGx1cmFsTmFtZSxcbiAgICBkZWxldGVGdW5jdGlvbixcbiAgICBzbmFja2JhcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlXG4gICk7XG5cbiAgY29uc3QgbW9kaWZpZWRTdWNjZXNzRWZmZWN0ID0gY3JlYXRlQmluZGluZ01vZGlmaWVkU3VjY2Vzc0VmZmVjdChcbiAgICBiaW5kaW5nc1JlcG9zaXRvcnksXG4gICAgYWN0aW9ucyQsXG4gICAgdGFibGVTZXJ2aWNlXG4gICk7XG5cbiAgcmV0dXJuIHsgYWRkRWZmZWN0LCBkZWxldGVFZmZlY3QsIG1vZGlmaWVkU3VjY2Vzc0VmZmVjdCB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBZGRCaW5kaW5nRWZmZWN0PFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfCBzdHJpbmcgfSwgVENyZWF0ZT4oXG4gIGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgZGV0YWlsJDogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPixcbiAgYmluZGluZ1BsdXJhbE5hbWU6IHN0cmluZyxcbiAgYWRkRnVuY3Rpb246IChcbiAgICBiaW5kaW5nczogVENyZWF0ZSxcbiAgKSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gIHNuYWNrYmFyOiBhbnksXG4gIHRyYW5zbGF0ZVNlcnZpY2U6IGFueSxcbikge1xuICByZXR1cm4gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVBZGRCaW5kaW5nQWN0aW9uPFRDcmVhdGU+KGJpbmRpbmdzUmVwb3NpdG9yeSkpLFxuICAgICAgd2l0aExhdGVzdEZyb20oZGV0YWlsJCksXG4gICAgICBzd2l0Y2hNYXAoKFt7IGJpbmRpbmcgfSwgZGV0YWlsXSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2xhdGVkUGx1cmFsTmFtZSA9XG4gICAgICAgICAgdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGJpbmRpbmdQbHVyYWxOYW1lKTtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc01lc3NhZ2UgPSBgJHt0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ0JJTkRJTkdTX0VGRkVDVFMuU1VDQ0VTU19BREQnXG4gICAgICAgICl9ICR7dHJhbnNsYXRlZFBsdXJhbE5hbWV9IWA7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVNZXNzYWdlID0gYCR7dHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdCSU5ESU5HU19FRkZFQ1RTLkZBSUxVUkVfQUREJ1xuICAgICAgICApfSAke3RyYW5zbGF0ZWRQbHVyYWxOYW1lfSFgO1xuXG4gICAgICAgIHJldHVybiBhZGRGdW5jdGlvbihiaW5kaW5nKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICBzbmFja2Jhci5zaG93U3VjY2VzcyhzdWNjZXNzTWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlQWRkQmluZGluZ3NTdWNjZXNzQWN0aW9uKGJpbmRpbmdzUmVwb3NpdG9yeSkoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgc25hY2tiYXIuc2hvd0Vycm9yKGZhaWx1cmVNZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgICAgY3JlYXRlQWRkQmluZGluZ3NGYWlsdXJlQWN0aW9uKGJpbmRpbmdzUmVwb3NpdG9yeSkoeyBlcnJvciB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApXG4gICk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFkZEJpbmRpbmdzRWZmZWN0PFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfCBzdHJpbmcgfSwgVENyZWF0ZT4oXG4gIGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgZGV0YWlsJDogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPixcbiAgYmluZGluZ1BsdXJhbE5hbWU6IHN0cmluZyxcbiAgYWRkRnVuY3Rpb246IChcbiAgICBiaW5kaW5nczogVENyZWF0ZVtdLFxuICAgIGRldGFpbElkOiBudW1iZXIgfCBzdHJpbmdcbiAgKSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gIHNuYWNrYmFyOiBhbnksXG4gIHRyYW5zbGF0ZVNlcnZpY2U6IGFueVxuKSB7XG4gIHJldHVybiBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICBhY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZUFkZEJpbmRpbmdzQWN0aW9uPFRDcmVhdGU+KGJpbmRpbmdzUmVwb3NpdG9yeSkpLFxuICAgICAgd2l0aExhdGVzdEZyb20oZGV0YWlsJCksXG4gICAgICBzd2l0Y2hNYXAoKFt7IGJpbmRpbmdzIH0sIGRldGFpbF0pID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZFBsdXJhbE5hbWUgPVxuICAgICAgICAgIHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChiaW5kaW5nUGx1cmFsTmFtZSk7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gYCR7dHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdCSU5ESU5HU19FRkZFQ1RTLlNVQ0NFU1NfQUREJ1xuICAgICAgICApfSAke3RyYW5zbGF0ZWRQbHVyYWxOYW1lfSFgO1xuICAgICAgICBjb25zdCBmYWlsdXJlTWVzc2FnZSA9IGAke3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnQklORElOR1NfRUZGRUNUUy5GQUlMVVJFX0FERCdcbiAgICAgICAgKX0gJHt0cmFuc2xhdGVkUGx1cmFsTmFtZX0hYDtcblxuICAgICAgICBpZiAoIWRldGFpbD8uaWQpIHtcbiAgICAgICAgICBzbmFja2Jhci5zaG93RXJyb3IoZmFpbHVyZU1lc3NhZ2UpO1xuICAgICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgIGNyZWF0ZUFkZEJpbmRpbmdzRmFpbHVyZUFjdGlvbihiaW5kaW5nc1JlcG9zaXRvcnkpKHtcbiAgICAgICAgICAgICAgZXJyb3I6IGZhaWx1cmVNZXNzYWdlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFkZEZ1bmN0aW9uKGJpbmRpbmdzLCBkZXRhaWwuaWQpLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIHNuYWNrYmFyLnNob3dTdWNjZXNzKHN1Y2Nlc3NNZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVBZGRCaW5kaW5nc1N1Y2Nlc3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBzbmFja2Jhci5zaG93RXJyb3IoZmFpbHVyZU1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKFxuICAgICAgICAgICAgICBjcmVhdGVBZGRCaW5kaW5nc0ZhaWx1cmVBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSh7IGVycm9yIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRWRpdEJpbmRpbmdFZmZlY3Q8XG4gIFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfCBzdHJpbmcgfSxcbiAgVEVkaXQgZXh0ZW5kcyB7IGlkPzogbnVtYmVyIHwgc3RyaW5nIH1cbj4oXG4gIGJpbmRpbmdzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgZGV0YWlsJDogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPixcbiAgYmluZGluZ1Npbmd1bGFyTmFtZTogc3RyaW5nLFxuICBlZGl0RnVuY3Rpb246IChiaW5kaW5nOiBURWRpdCwgZGV0YWlsSWQ6IG51bWJlciB8IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxhbnk+LFxuICBzbmFja2JhcjogYW55LFxuICB0cmFuc2xhdGVTZXJ2aWNlOiBhbnksXG4gIG92ZXJyaWRlRGV0YWlsV2l0aEJpbmRpbmcgPSBmYWxzZSxcbikge1xuICByZXR1cm4gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVFZGl0QmluZGluZ0FjdGlvbjxURWRpdD4oYmluZGluZ3NSZXBvc2l0b3J5KSksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShkZXRhaWwkKSxcbiAgICAgIHN3aXRjaE1hcCgoW3sgYmluZGluZyB9LCBkZXRhaWxdKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRQbHVyYWxOYW1lID1cbiAgICAgICAgICB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYmluZGluZ1Npbmd1bGFyTmFtZSk7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gYCR7dHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdCSU5ESU5HU19FRkZFQ1RTLlNVQ0NFU1NfRURJVCdcbiAgICAgICAgKX0gJHt0cmFuc2xhdGVkUGx1cmFsTmFtZX0hYDtcbiAgICAgICAgY29uc3QgZmFpbHVyZU1lc3NhZ2UgPSBgJHt0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ0JJTkRJTkdTX0VGRkVDVFMuRkFJTFVSRV9FRElUJ1xuICAgICAgICApfSAke3RyYW5zbGF0ZWRQbHVyYWxOYW1lfSFgO1xuXG4gICAgICAgIGNvbnN0IGlkID0gb3ZlcnJpZGVEZXRhaWxXaXRoQmluZGluZyA/IGJpbmRpbmc/LmlkIDogZGV0YWlsPy5pZDtcbiAgICAgICAgaWYgKCFpZCkge1xuICAgICAgICAgIHNuYWNrYmFyLnNob3dFcnJvcihmYWlsdXJlTWVzc2FnZSk7XG4gICAgICAgICAgcmV0dXJuIG9mKFxuICAgICAgICAgICAgY3JlYXRlRWRpdEJpbmRpbmdGYWlsdXJlQWN0aW9uKGJpbmRpbmdzUmVwb3NpdG9yeSkoe1xuICAgICAgICAgICAgICBlcnJvcjogZmFpbHVyZU1lc3NhZ2UsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZWRpdEZ1bmN0aW9uKGJpbmRpbmcsIGlkKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICBzbmFja2Jhci5zaG93U3VjY2VzcyhzdWNjZXNzTWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRWRpdEJpbmRpbmdTdWNjZXNzQWN0aW9uKGJpbmRpbmdzUmVwb3NpdG9yeSkoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgc25hY2tiYXIuc2hvd0Vycm9yKGZhaWx1cmVNZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgICAgY3JlYXRlRWRpdEJpbmRpbmdGYWlsdXJlQWN0aW9uKGJpbmRpbmdzUmVwb3NpdG9yeSkoeyBlcnJvciB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApXG4gICk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURlbGV0ZUJpbmRpbmdFZmZlY3Q8VCBleHRlbmRzIHsgaWQ6IG51bWJlciB8IHN0cmluZyB9PihcbiAgYmluZGluZ3NSZXBvc2l0b3J5OiBzdHJpbmcsXG4gIGFjdGlvbnMkOiBBY3Rpb25zLFxuICBkZXRhaWwkOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+LFxuICBiaW5kaW5nUGx1cmFsTmFtZTogc3RyaW5nLFxuICBkZWxldGVGdW5jdGlvbjogKFxuICAgIGJpbmRpbmdJZHM6IHN0cmluZyB8IG51bWJlcixcbiAgICBkZXRhaWxJZDogc3RyaW5nIHwgbnVtYmVyXG4gICkgPT4gT2JzZXJ2YWJsZTxhbnk+LFxuICBzbmFja2JhcjogYW55LFxuICB0cmFuc2xhdGVTZXJ2aWNlOiBhbnlcbikge1xuICByZXR1cm4gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVEZWxldGVCaW5kaW5nQWN0aW9uKGJpbmRpbmdzUmVwb3NpdG9yeSkpLFxuICAgICAgd2l0aExhdGVzdEZyb20oZGV0YWlsJCksXG4gICAgICBzd2l0Y2hNYXAoKFt7IGlkIH0sIGRldGFpbF0pID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZFBsdXJhbE5hbWUgPVxuICAgICAgICAgIHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChiaW5kaW5nUGx1cmFsTmFtZSk7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gYCR7dHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdCSU5ESU5HU19FRkZFQ1RTLlNVQ0NFU1NfREVMRVRFJ1xuICAgICAgICApfSAke3RyYW5zbGF0ZWRQbHVyYWxOYW1lfSFgO1xuICAgICAgICBjb25zdCBmYWlsdXJlTWVzc2FnZSA9IGAke3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnQklORElOR1NfRUZGRUNUUy5GQUlMVVJFX0RFTEVURSdcbiAgICAgICAgKX0gJHt0cmFuc2xhdGVkUGx1cmFsTmFtZX0hYDtcblxuICAgICAgICBpZiAoIWlkICYmICFkZXRhaWw/LmlkKSB7XG4gICAgICAgICAgc25hY2tiYXIuc2hvd0Vycm9yKGZhaWx1cmVNZXNzYWdlKTtcbiAgICAgICAgICByZXR1cm4gb2YoXG4gICAgICAgICAgICBjcmVhdGVEZWxldGVCaW5kaW5nc0ZhaWx1cmVBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSh7XG4gICAgICAgICAgICAgIGVycm9yOiBmYWlsdXJlTWVzc2FnZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWxldGVGdW5jdGlvbihpZCwgaWQgPz8gZGV0YWlsPy5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgc25hY2tiYXIuc2hvd1N1Y2Nlc3Moc3VjY2Vzc01lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZURlbGV0ZUJpbmRpbmdzU3VjY2Vzc0FjdGlvbihiaW5kaW5nc1JlcG9zaXRvcnkpKCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHNuYWNrYmFyLnNob3dFcnJvcihmYWlsdXJlTWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm4gb2YoXG4gICAgICAgICAgICAgIGNyZWF0ZURlbGV0ZUJpbmRpbmdzRmFpbHVyZUFjdGlvbihiaW5kaW5nc1JlcG9zaXRvcnkpKHsgZXJyb3IgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEZWxldGVCaW5kaW5nc0VmZmVjdDxUIGV4dGVuZHMgeyBpZDogbnVtYmVyIHwgc3RyaW5nIH0+KFxuICBiaW5kaW5nc1JlcG9zaXRvcnk6IHN0cmluZyxcbiAgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gIGRldGFpbCQ6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4sXG4gIGJpbmRpbmdQbHVyYWxOYW1lOiBzdHJpbmcsXG4gIGRlbGV0ZUZ1bmN0aW9uOiAoXG4gICAgYmluZGluZ0lkczogbnVtYmVyW10sXG4gICAgZGV0YWlsSWQ6IHN0cmluZyB8IG51bWJlclxuICApID0+IE9ic2VydmFibGU8YW55PixcbiAgc25hY2tiYXI6IGFueSxcbiAgdHJhbnNsYXRlU2VydmljZTogYW55XG4pIHtcbiAgcmV0dXJuIGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIGFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlRGVsZXRlQmluZGluZ3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShkZXRhaWwkKSxcbiAgICAgIHN3aXRjaE1hcCgoW3sgYmluZGluZ0lkcyB9LCBkZXRhaWxdKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRQbHVyYWxOYW1lID1cbiAgICAgICAgICB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYmluZGluZ1BsdXJhbE5hbWUpO1xuICAgICAgICBjb25zdCBzdWNjZXNzTWVzc2FnZSA9IGAke3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnQklORElOR1NfRUZGRUNUUy5TVUNDRVNTX0RFTEVURSdcbiAgICAgICAgKX0gJHt0cmFuc2xhdGVkUGx1cmFsTmFtZX0hYDtcbiAgICAgICAgY29uc3QgZmFpbHVyZU1lc3NhZ2UgPSBgJHt0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ0JJTkRJTkdTX0VGRkVDVFMuRkFJTFVSRV9ERUxFVEUnXG4gICAgICAgICl9ICR7dHJhbnNsYXRlZFBsdXJhbE5hbWV9IWA7XG5cbiAgICAgICAgaWYgKCFkZXRhaWw/LmlkKSB7XG4gICAgICAgICAgc25hY2tiYXIuc2hvd0Vycm9yKGZhaWx1cmVNZXNzYWdlKTtcbiAgICAgICAgICByZXR1cm4gb2YoXG4gICAgICAgICAgICBjcmVhdGVEZWxldGVCaW5kaW5nc0ZhaWx1cmVBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSh7XG4gICAgICAgICAgICAgIGVycm9yOiBmYWlsdXJlTWVzc2FnZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWxldGVGdW5jdGlvbihiaW5kaW5nSWRzLCBkZXRhaWwuaWQpLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIHNuYWNrYmFyLnNob3dTdWNjZXNzKHN1Y2Nlc3NNZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEZWxldGVCaW5kaW5nc1N1Y2Nlc3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBzbmFja2Jhci5zaG93RXJyb3IoZmFpbHVyZU1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKFxuICAgICAgICAgICAgICBjcmVhdGVEZWxldGVCaW5kaW5nc0ZhaWx1cmVBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSh7IGVycm9yIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmluZGluZ01vZGlmaWVkU3VjY2Vzc0VmZmVjdChcbiAgYmluZGluZ3NSZXBvc2l0b3J5OiBzdHJpbmcsXG4gIGFjdGlvbnMkOiBBY3Rpb25zLFxuICB0YWJsZVNlcnZpY2U6IGFueVxuKSB7XG4gIHJldHVybiBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShcbiAgICAgICAgICBjcmVhdGVBZGRCaW5kaW5nc1N1Y2Nlc3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSxcbiAgICAgICAgICBjcmVhdGVFZGl0QmluZGluZ1N1Y2Nlc3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KSxcbiAgICAgICAgICBjcmVhdGVEZWxldGVCaW5kaW5nc1N1Y2Nlc3NBY3Rpb24oYmluZGluZ3NSZXBvc2l0b3J5KVxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRhYmxlU2VydmljZS5mb3JjZVJlbG9hZCgpO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG59XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { createAction, props } from '@ngrx/store';
|
|
2
|
-
export function createInitDetailAction(detailsRepository) {
|
|
3
|
-
return createAction(`[${detailsRepository} Page] Init`, props());
|
|
4
|
-
}
|
|
5
|
-
export function createInitNewDetailAction(detailsRepository) {
|
|
6
|
-
return createAction(`[${detailsRepository} Page] Init New`);
|
|
7
|
-
}
|
|
8
|
-
export function createLoadDetailSuccessAction(detailsRepository) {
|
|
9
|
-
return createAction(`[${detailsRepository}/API] Load ${detailsRepository} Success`, props());
|
|
10
|
-
}
|
|
11
|
-
export function createLoadDetailFailureAction(detailsRepository) {
|
|
12
|
-
return createAction(`[${detailsRepository}/API] Load ${detailsRepository} Failure`, props());
|
|
13
|
-
}
|
|
14
|
-
export function createUpdateDetailAction(detailsRepository) {
|
|
15
|
-
return createAction(`[${detailsRepository}/API] Update ${detailsRepository}`, props());
|
|
16
|
-
}
|
|
17
|
-
export function createUpdateDetailSetErrorsAction(detailsRepository) {
|
|
18
|
-
return createAction(`[${detailsRepository}/API] Update Validation Errors ${detailsRepository}`, props());
|
|
19
|
-
}
|
|
20
|
-
export function createUpdateFormStateAction(detailsRepository) {
|
|
21
|
-
return createAction(`[${detailsRepository}/API] Update Form State`, props());
|
|
22
|
-
}
|
|
23
|
-
export function createSaveDetailAction(detailsRepository) {
|
|
24
|
-
return createAction(`[${detailsRepository}/API] Save Detail `);
|
|
25
|
-
}
|
|
26
|
-
export function createSaveDetailSuccessAction(detailsRepository) {
|
|
27
|
-
return createAction(`[${detailsRepository}/API] Save Detail Success`, props());
|
|
28
|
-
}
|
|
29
|
-
export function createSaveDetailFailureAction(detailsRepository) {
|
|
30
|
-
return createAction(`[${detailsRepository}/API] Save Detail Failure`, props());
|
|
31
|
-
}
|
|
32
|
-
export function createUpdateSaveDetailAction(detailsRepository) {
|
|
33
|
-
return createAction(`[${detailsRepository}/API] Update Detail `);
|
|
34
|
-
}
|
|
35
|
-
export function createResetStateAction(detailsRepository) {
|
|
36
|
-
return createAction(`[${detailsRepository}/API] Reset State`);
|
|
37
|
-
}
|
|
38
|
-
export function createDeleteDetailAction(detailsRepository) {
|
|
39
|
-
return createAction(`[${detailsRepository}/API] Delete Detail`);
|
|
40
|
-
}
|
|
41
|
-
export function createDeleteDetailSuccessAction(detailsRepository) {
|
|
42
|
-
return createAction(`[${detailsRepository}/API] Delete Detail Success`);
|
|
43
|
-
}
|
|
44
|
-
export function createDeleteDetailFailureAction(detailsRepository) {
|
|
45
|
-
return createAction(`[${detailsRepository}/API] Delete Detail Failure`, props());
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9zdG9yZS9zcmMvbGliL2RldGFpbC1zdGF0ZS9kZXRhaWwuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdsRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsaUJBQXlCO0lBQzlELE9BQU8sWUFBWSxDQUNqQixJQUFJLGlCQUFpQixhQUFhLEVBQ2xDLEtBQUssRUFBcUQsQ0FDM0QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsaUJBQXlCO0lBQ2pFLE9BQU8sWUFBWSxDQUFDLElBQUksaUJBQWlCLGlCQUFpQixDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBSSxpQkFBeUI7SUFDeEUsT0FBTyxZQUFZLENBQ2pCLElBQUksaUJBQWlCLGNBQWMsaUJBQWlCLFVBQVUsRUFDOUQsS0FBSyxFQUFlLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QixDQUFDLGlCQUF5QjtJQUNyRSxPQUFPLFlBQVksQ0FDakIsSUFBSSxpQkFBaUIsY0FBYyxpQkFBaUIsVUFBVSxFQUM5RCxLQUFLLEVBQWtCLENBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFJLGlCQUF5QjtJQUNuRSxPQUFPLFlBQVksQ0FDakIsSUFBSSxpQkFBaUIsZ0JBQWdCLGlCQUFpQixFQUFFLEVBQ3hELEtBQUssRUFBZSxDQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxpQkFBeUI7SUFDekUsT0FBTyxZQUFZLENBQ2pCLElBQUksaUJBQWlCLGtDQUFrQyxpQkFBaUIsRUFBRSxFQUMxRSxLQUFLLEVBQWtCLENBQ3hCLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLGlCQUF5QjtJQUNuRSxPQUFPLFlBQVksQ0FDakIsSUFBSSxpQkFBaUIseUJBQXlCLEVBQzlDLEtBQUssRUFBNEIsQ0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsaUJBQXlCO0lBQzlELE9BQU8sWUFBWSxDQUFDLElBQUksaUJBQWlCLG9CQUFvQixDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBSSxpQkFBeUI7SUFDeEUsT0FBTyxZQUFZLENBQ2pCLElBQUksaUJBQWlCLDJCQUEyQixFQUNoRCxLQUFLLEVBQWUsQ0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsaUJBQXlCO0lBQ3JFLE9BQU8sWUFBWSxDQUNqQixJQUFJLGlCQUFpQiwyQkFBMkIsRUFDaEQsS0FBSyxFQUFrQixDQUN4QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxpQkFBeUI7SUFDcEUsT0FBTyxZQUFZLENBQUMsSUFBSSxpQkFBaUIsc0JBQXNCLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLGlCQUF5QjtJQUM5RCxPQUFPLFlBQVksQ0FBQyxJQUFJLGlCQUFpQixtQkFBbUIsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsaUJBQXlCO0lBQ2hFLE9BQU8sWUFBWSxDQUFDLElBQUksaUJBQWlCLHFCQUFxQixDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxpQkFBeUI7SUFDdkUsT0FBTyxZQUFZLENBQUMsSUFBSSxpQkFBaUIsNkJBQTZCLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUFDLGlCQUF5QjtJQUN2RSxPQUFPLFlBQVksQ0FDakIsSUFBSSxpQkFBaUIsNkJBQTZCLEVBQ2xELEtBQUssRUFBa0IsQ0FDeEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRm9ybVN0YXRlIH0gZnJvbSAnLi9kZXRhaWwubW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluaXREZXRhaWxBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtkZXRhaWxzUmVwb3NpdG9yeX0gUGFnZV0gSW5pdGAsXG4gICAgcHJvcHM8eyBvYmo6IHN0cmluZyB8IG51bGwgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBhbnkgfT4oKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5pdE5ld0RldGFpbEFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oYFske2RldGFpbHNSZXBvc2l0b3J5fSBQYWdlXSBJbml0IE5ld2ApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9hZERldGFpbFN1Y2Nlc3NBY3Rpb248VD4oZGV0YWlsc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtkZXRhaWxzUmVwb3NpdG9yeX0vQVBJXSBMb2FkICR7ZGV0YWlsc1JlcG9zaXRvcnl9IFN1Y2Nlc3NgLFxuICAgIHByb3BzPHsgaXRlbTogVCB9PigpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2FkRGV0YWlsRmFpbHVyZUFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oXG4gICAgYFske2RldGFpbHNSZXBvc2l0b3J5fS9BUEldIExvYWQgJHtkZXRhaWxzUmVwb3NpdG9yeX0gRmFpbHVyZWAsXG4gICAgcHJvcHM8eyBlcnJvcjogYW55IH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZURldGFpbEFjdGlvbjxUPihkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oXG4gICAgYFske2RldGFpbHNSZXBvc2l0b3J5fS9BUEldIFVwZGF0ZSAke2RldGFpbHNSZXBvc2l0b3J5fWAsXG4gICAgcHJvcHM8eyBpdGVtOiBUIH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZURldGFpbFNldEVycm9yc0FjdGlvbihkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oXG4gICAgYFske2RldGFpbHNSZXBvc2l0b3J5fS9BUEldIFVwZGF0ZSBWYWxpZGF0aW9uIEVycm9ycyAke2RldGFpbHNSZXBvc2l0b3J5fWAsXG4gICAgcHJvcHM8eyBlcnJvcjogYW55IH0+KClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXBkYXRlRm9ybVN0YXRlQWN0aW9uKGRldGFpbHNSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihcbiAgICBgWyR7ZGV0YWlsc1JlcG9zaXRvcnl9L0FQSV0gVXBkYXRlIEZvcm0gU3RhdGVgLFxuICAgIHByb3BzPHsgZm9ybVN0YXRlOiBGb3JtU3RhdGUgfT4oKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2F2ZURldGFpbEFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oYFske2RldGFpbHNSZXBvc2l0b3J5fS9BUEldIFNhdmUgRGV0YWlsIGApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2F2ZURldGFpbFN1Y2Nlc3NBY3Rpb248VD4oZGV0YWlsc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtkZXRhaWxzUmVwb3NpdG9yeX0vQVBJXSBTYXZlIERldGFpbCBTdWNjZXNzYCxcbiAgICBwcm9wczx7IGl0ZW06IFQgfT4oKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2F2ZURldGFpbEZhaWx1cmVBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtkZXRhaWxzUmVwb3NpdG9yeX0vQVBJXSBTYXZlIERldGFpbCBGYWlsdXJlYCxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXBkYXRlU2F2ZURldGFpbEFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oYFske2RldGFpbHNSZXBvc2l0b3J5fS9BUEldIFVwZGF0ZSBEZXRhaWwgYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXNldFN0YXRlQWN0aW9uKGRldGFpbHNSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihgWyR7ZGV0YWlsc1JlcG9zaXRvcnl9L0FQSV0gUmVzZXQgU3RhdGVgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlbGV0ZURldGFpbEFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oYFske2RldGFpbHNSZXBvc2l0b3J5fS9BUEldIERlbGV0ZSBEZXRhaWxgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlbGV0ZURldGFpbFN1Y2Nlc3NBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKGBbJHtkZXRhaWxzUmVwb3NpdG9yeX0vQVBJXSBEZWxldGUgRGV0YWlsIFN1Y2Nlc3NgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlbGV0ZURldGFpbEZhaWx1cmVBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGBbJHtkZXRhaWxzUmVwb3NpdG9yeX0vQVBJXSBEZWxldGUgRGV0YWlsIEZhaWx1cmVgLFxuICAgIHByb3BzPHsgZXJyb3I6IGFueSB9PigpXG4gICk7XG59XG4iXX0=
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { createEffect, ofType } from '@ngrx/effects';
|
|
2
|
-
import { catchError, EMPTY, map, of, switchMap, tap, withLatestFrom, } from 'rxjs';
|
|
3
|
-
import { createDeleteDetailAction, createDeleteDetailFailureAction, createDeleteDetailSuccessAction, createInitDetailAction, createInitNewDetailAction, createLoadDetailFailureAction, createLoadDetailSuccessAction, createSaveDetailAction, createSaveDetailFailureAction, createSaveDetailSuccessAction, } from './detail.actions';
|
|
4
|
-
export function createInitDetailEffect(detailsRepository, actions$, config) {
|
|
5
|
-
return createEffect(() => {
|
|
6
|
-
return actions$.pipe(ofType(createInitDetailAction(detailsRepository)), switchMap(({ obj }) => {
|
|
7
|
-
const get$ = (config?.service?.get(obj) ??
|
|
8
|
-
config?.get?.(obj));
|
|
9
|
-
if (!get$)
|
|
10
|
-
return EMPTY;
|
|
11
|
-
return get$?.pipe(map((item) => {
|
|
12
|
-
return createLoadDetailSuccessAction(detailsRepository)({ item });
|
|
13
|
-
}), catchError((error) => {
|
|
14
|
-
if (error.status === 404) {
|
|
15
|
-
config?.snackbar?.showError(config?.notFoundMessage ?? error);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
config?.snackbar?.showError(config?.errorMessage ?? error);
|
|
19
|
-
}
|
|
20
|
-
console.error('Error', error);
|
|
21
|
-
return of(createLoadDetailFailureAction(detailsRepository)({ error }));
|
|
22
|
-
}));
|
|
23
|
-
}));
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
export function createInitNewDetailEffect(detailsRepository, actions$) {
|
|
27
|
-
return createEffect(() => actions$.pipe(ofType(createInitNewDetailAction(detailsRepository)), map(() => {
|
|
28
|
-
return createLoadDetailSuccessAction(detailsRepository)({ item: null });
|
|
29
|
-
})));
|
|
30
|
-
}
|
|
31
|
-
export function createSaveDetailEffect(detailsRepository, actions$, service, config) {
|
|
32
|
-
return createEffect(() => actions$.pipe(ofType(createSaveDetailAction(detailsRepository)), withLatestFrom(config.detail$), switchMap(([, savedItem]) => {
|
|
33
|
-
const isNew = !savedItem?.id;
|
|
34
|
-
const saveAction = isNew
|
|
35
|
-
? service.post(savedItem)
|
|
36
|
-
: service.put(savedItem.id, savedItem);
|
|
37
|
-
return saveAction.pipe(map((item) => {
|
|
38
|
-
if (isNew && config?.router && config?.redirectPath) {
|
|
39
|
-
const suffix = config?.useItemId ? '/' + item.id : '';
|
|
40
|
-
config.router.navigateByUrl(config.redirectPath + suffix);
|
|
41
|
-
}
|
|
42
|
-
if (isNew && config?.router && config?.navigationMap) {
|
|
43
|
-
const url = constructUrlFromNavigationMap(item, config.navigationMap);
|
|
44
|
-
config.router.navigateByUrl(url);
|
|
45
|
-
}
|
|
46
|
-
return createSaveDetailSuccessAction(detailsRepository)({
|
|
47
|
-
item: item,
|
|
48
|
-
});
|
|
49
|
-
}), catchError((error) => {
|
|
50
|
-
console.error('Error', error);
|
|
51
|
-
return of(createSaveDetailFailureAction(detailsRepository)({ error }));
|
|
52
|
-
}));
|
|
53
|
-
})));
|
|
54
|
-
}
|
|
55
|
-
export function createSaveDetailSuccessEffect(detailsRepository, actions$, config) {
|
|
56
|
-
return createEffect(() => actions$.pipe(ofType(createSaveDetailSuccessAction(detailsRepository)), map((data) => {
|
|
57
|
-
config?.snackbar?.showSuccess(config?.successMessge ?? `Item successfully saved.`);
|
|
58
|
-
return createInitDetailAction(detailsRepository)({ obj: data.item.id });
|
|
59
|
-
})));
|
|
60
|
-
}
|
|
61
|
-
export function createSaveDetailFailureEffect(detailsRepository, actions$, config) {
|
|
62
|
-
return createEffect(() => actions$.pipe(ofType(createSaveDetailFailureAction(detailsRepository)), tap(({ error }) => {
|
|
63
|
-
config?.snackbar?.showError(config.errorMessage ?? `Error saving item. ${error.message}`);
|
|
64
|
-
})), {
|
|
65
|
-
dispatch: false,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
export function createDeleteDetailEffect(detailsRepository, actions$, service, config) {
|
|
69
|
-
return createEffect(() => actions$.pipe(ofType(createDeleteDetailAction(detailsRepository)), withLatestFrom(config.detail$), switchMap(([, savedItem]) => {
|
|
70
|
-
const id = savedItem?.id;
|
|
71
|
-
if (!id) {
|
|
72
|
-
return of(createSaveDetailFailureAction(detailsRepository)({
|
|
73
|
-
error: 'Item has no id',
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
return service.delete(id).pipe(map(() => {
|
|
77
|
-
if (config?.router && config?.redirectPath) {
|
|
78
|
-
config.router.navigateByUrl(`${config.redirectPath}`);
|
|
79
|
-
}
|
|
80
|
-
if (config?.router && config?.navigationMap) {
|
|
81
|
-
const url = constructUrlFromNavigationMap(savedItem, config.navigationMap);
|
|
82
|
-
config.router.navigateByUrl(url);
|
|
83
|
-
}
|
|
84
|
-
return createDeleteDetailSuccessAction(detailsRepository)();
|
|
85
|
-
}), catchError((error) => {
|
|
86
|
-
console.error('Error', error);
|
|
87
|
-
config.snackbar?.showError('Failed to delete item.');
|
|
88
|
-
return of(createDeleteDetailFailureAction(detailsRepository)({ error }));
|
|
89
|
-
}));
|
|
90
|
-
})));
|
|
91
|
-
}
|
|
92
|
-
export function createDeleteDetailSuccessEffect(detailsRepository, actions$, config) {
|
|
93
|
-
return createEffect(() => actions$.pipe(ofType(createDeleteDetailSuccessAction(detailsRepository)), tap(() => {
|
|
94
|
-
config?.snackbar?.showSuccess(config.successMessge ?? `Item successfully deleted.`);
|
|
95
|
-
})), {
|
|
96
|
-
dispatch: false,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
export function createDeleteDetailFailureEffect(detailsRepository, actions$, config) {
|
|
100
|
-
return createEffect(() => actions$.pipe(ofType(createDeleteDetailFailureAction(detailsRepository)), tap(({ error }) => {
|
|
101
|
-
config?.snackbar?.showError(config.errorMessage ?? `Error deleting item. ${error.message}`);
|
|
102
|
-
})), {
|
|
103
|
-
dispatch: false,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
function constructUrlFromNavigationMap(item, navigationMap) {
|
|
107
|
-
let url = '';
|
|
108
|
-
navigationMap.forEach((urlPartValue, suffixPropertyKey) => {
|
|
109
|
-
const suffix = item[suffixPropertyKey];
|
|
110
|
-
if (suffix) {
|
|
111
|
-
url += `${urlPartValue}/${suffix}`;
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
return url;
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9zdG9yZS9zcmMvbGliL2RldGFpbC1zdGF0ZS9kZXRhaWwuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxHQUFHLEVBRUgsRUFBRSxFQUNGLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLDZCQUE2QixHQUM5QixNQUFNLGtCQUFrQixDQUFDO0FBb0IxQixNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLGlCQUF5QixFQUN6QixRQUFpQixFQUNqQixNQUErQjtJQUUvQixPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUU7UUFDdkIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNsQixNQUFNLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUNqRCxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEdBQW9CLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsR0FBVSxDQUFDO2dCQUM3RCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQW9CLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDeEIsT0FBTyxJQUFJLEVBQUUsSUFBSSxDQUNmLEdBQUcsQ0FBQyxDQUFDLElB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QyxJQUFJLENBQ1gsTUFBTSxDQUFDLCtCQUErQixDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFDMUQsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUN6QixNQUFNLENBQUMsWUFBWSxJQUFJLHdCQUF3QixLQUFLLENBQUMsT0FBTyxFQUFFLENBQy9ELENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxFQUNIO1FBQ0UsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLElBQU8sRUFDUCxhQUFtQztJQUVuQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEVBQUU7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLEdBQUcsSUFBSSxHQUFHLFlBQVksSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSB9IGZyb20gJ0B2ZXJpc29mdC9jb3JlJztcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIEVNUFRZLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlRGVsZXRlRGV0YWlsQWN0aW9uLFxuICBjcmVhdGVEZWxldGVEZXRhaWxGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVEZWxldGVEZXRhaWxTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVJbml0RGV0YWlsQWN0aW9uLFxuICBjcmVhdGVJbml0TmV3RGV0YWlsQWN0aW9uLFxuICBjcmVhdGVMb2FkRGV0YWlsRmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlTG9hZERldGFpbFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZVNhdmVEZXRhaWxBY3Rpb24sXG4gIGNyZWF0ZVNhdmVEZXRhaWxGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVTYXZlRGV0YWlsU3VjY2Vzc0FjdGlvbixcbn0gZnJvbSAnLi9kZXRhaWwuYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlSW5pdEZvcm1Db25maWc8VD4ge1xuICBzZXJ2aWNlPzogQmFzZUh0dHBTZXJ2aWNlPFQ+O1xuICBnZXQ/OiAob2JqOiBhbnkpID0+IE9ic2VydmFibGU8VD47XG4gIHNuYWNrYmFyPzogYW55O1xuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIG5vdEZvdW5kTWVzc2FnZT86IHN0cmluZztcbiAgc3VjY2Vzc01lc3NnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXRhaWxFZmZlY3RDb25maWc8VD4ge1xuICBkZXRhaWwkOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+O1xuICBzbmFja2Jhcj86IGFueTtcbiAgcm91dGVyPzogUm91dGVyO1xuICByZWRpcmVjdFBhdGg/OiBzdHJpbmc7XG4gIHVzZUl0ZW1JZD86IGJvb2xlYW47XG4gIG5hdmlnYXRpb25NYXA/OiBNYXA8a2V5b2YgVCwgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluaXREZXRhaWxFZmZlY3Q8VD4oXG4gIGRldGFpbHNSZXBvc2l0b3J5OiBzdHJpbmcsXG4gIGFjdGlvbnMkOiBBY3Rpb25zLFxuICBjb25maWc6IENyZWF0ZUluaXRGb3JtQ29uZmlnPFQ+XG4pIHtcbiAgcmV0dXJuIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlSW5pdERldGFpbEFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeSkpLFxuICAgICAgc3dpdGNoTWFwKCh7IG9iaiB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGdldCQ6IE9ic2VydmFibGU8YW55PiA9IChjb25maWc/LnNlcnZpY2U/LmdldChvYmogYXMgYW55KSA/P1xuICAgICAgICAgIGNvbmZpZz8uZ2V0Py4ob2JqKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICAgICAgICBpZiAoIWdldCQpIHJldHVybiBFTVBUWTtcbiAgICAgICAgcmV0dXJuIGdldCQ/LnBpcGUoXG4gICAgICAgICAgbWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlTG9hZERldGFpbFN1Y2Nlc3NBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKHsgaXRlbSB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgIGNvbmZpZz8uc25hY2tiYXI/LnNob3dFcnJvcihjb25maWc/Lm5vdEZvdW5kTWVzc2FnZSA/PyBlcnJvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25maWc/LnNuYWNrYmFyPy5zaG93RXJyb3IoY29uZmlnPy5lcnJvck1lc3NhZ2UgPz8gZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcicsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgICAgY3JlYXRlTG9hZERldGFpbEZhaWx1cmVBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKHsgZXJyb3IgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbml0TmV3RGV0YWlsRWZmZWN0KFxuICBkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9uc1xuKSB7XG4gIHJldHVybiBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICBhY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZUluaXROZXdEZXRhaWxBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKSxcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2FkRGV0YWlsU3VjY2Vzc0FjdGlvbihkZXRhaWxzUmVwb3NpdG9yeSkoeyBpdGVtOiBudWxsIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTYXZlRGV0YWlsRWZmZWN0PFxuICBUIGV4dGVuZHMgeyBpZDogbnVtYmVyIHwgc3RyaW5nIH0sXG4gIFNFUlZJQ0UgZXh0ZW5kcyBCYXNlSHR0cFNlcnZpY2U8VD5cbj4oXG4gIGRldGFpbHNSZXBvc2l0b3J5OiBzdHJpbmcsXG4gIGFjdGlvbnMkOiBBY3Rpb25zLFxuICBzZXJ2aWNlOiBTRVJWSUNFLFxuICBjb25maWc6IERldGFpbEVmZmVjdENvbmZpZzxUPlxuKSB7XG4gIHJldHVybiBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICBhY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVNhdmVEZXRhaWxBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKGNvbmZpZy5kZXRhaWwkKSxcbiAgICAgIHN3aXRjaE1hcCgoWywgc2F2ZWRJdGVtXSkgPT4ge1xuICAgICAgICBjb25zdCBpc05ldyA9ICFzYXZlZEl0ZW0/LmlkO1xuICAgICAgICBjb25zdCBzYXZlQWN0aW9uID0gaXNOZXdcbiAgICAgICAgICA/IHNlcnZpY2UucG9zdChzYXZlZEl0ZW0gYXMgVClcbiAgICAgICAgICA6IHNlcnZpY2UucHV0KHNhdmVkSXRlbS5pZCwgc2F2ZWRJdGVtKTtcbiAgICAgICAgcmV0dXJuIHNhdmVBY3Rpb24ucGlwZShcbiAgICAgICAgICBtYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc05ldyAmJiBjb25maWc/LnJvdXRlciAmJiBjb25maWc/LnJlZGlyZWN0UGF0aCkge1xuICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSBjb25maWc/LnVzZUl0ZW1JZCA/ICcvJyArIGl0ZW0uaWQgOiAnJztcbiAgICAgICAgICAgICAgY29uZmlnLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGNvbmZpZy5yZWRpcmVjdFBhdGggKyBzdWZmaXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNOZXcgJiYgY29uZmlnPy5yb3V0ZXIgJiYgY29uZmlnPy5uYXZpZ2F0aW9uTWFwKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IGNvbnN0cnVjdFVybEZyb21OYXZpZ2F0aW9uTWFwKGl0ZW0sIGNvbmZpZy5uYXZpZ2F0aW9uTWFwKVxuICAgICAgICAgICAgICBjb25maWcucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNhdmVEZXRhaWxTdWNjZXNzQWN0aW9uKGRldGFpbHNSZXBvc2l0b3J5KSh7XG4gICAgICAgICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gb2YoXG4gICAgICAgICAgICAgIGNyZWF0ZVNhdmVEZXRhaWxGYWlsdXJlQWN0aW9uKGRldGFpbHNSZXBvc2l0b3J5KSh7IGVycm9yIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNhdmVEZXRhaWxTdWNjZXNzRWZmZWN0KFxuICBkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgY29uZmlnPzogQ3JlYXRlSW5pdEZvcm1Db25maWc8dW5rbm93bj5cbikge1xuICByZXR1cm4gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBhY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoY3JlYXRlU2F2ZURldGFpbFN1Y2Nlc3NBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKSxcbiAgICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25maWc/LnNuYWNrYmFyPy5zaG93U3VjY2VzcyhcbiAgICAgICAgICAgIGNvbmZpZz8uc3VjY2Vzc01lc3NnZSA/PyBgSXRlbSBzdWNjZXNzZnVsbHkgc2F2ZWQuYFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZUluaXREZXRhaWxBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKHsgb2JqOiBkYXRhLml0ZW0uaWQgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTYXZlRGV0YWlsRmFpbHVyZUVmZmVjdChcbiAgZGV0YWlsc1JlcG9zaXRvcnk6IHN0cmluZyxcbiAgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gIGNvbmZpZz86IENyZWF0ZUluaXRGb3JtQ29uZmlnPHVua25vd24+XG4pIHtcbiAgcmV0dXJuIGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKGNyZWF0ZVNhdmVEZXRhaWxGYWlsdXJlQWN0aW9uKGRldGFpbHNSZXBvc2l0b3J5KSksXG4gICAgICAgIHRhcCgoeyBlcnJvciB9KSA9PiB7XG4gICAgICAgICAgY29uZmlnPy5zbmFja2Jhcj8uc2hvd0Vycm9yKFxuICAgICAgICAgICAgY29uZmlnLmVycm9yTWVzc2FnZSA/PyBgRXJyb3Igc2F2aW5nIGl0ZW0uICR7ZXJyb3IubWVzc2FnZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAge1xuICAgICAgZGlzcGF0Y2g6IGZhbHNlLFxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlbGV0ZURldGFpbEVmZmVjdDxcbiAgVCBleHRlbmRzIHsgaWQ6IG51bWJlciB8IHN0cmluZyB9LFxuICBTRVJWSUNFIGV4dGVuZHMgQmFzZUh0dHBTZXJ2aWNlPFQ+XG4+KFxuICBkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgc2VydmljZTogU0VSVklDRSxcbiAgY29uZmlnOiBEZXRhaWxFZmZlY3RDb25maWc8VD4sXG4pIHtcbiAgcmV0dXJuIGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIGFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlRGVsZXRlRGV0YWlsQWN0aW9uKGRldGFpbHNSZXBvc2l0b3J5KSksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShjb25maWcuZGV0YWlsJCksXG4gICAgICBzd2l0Y2hNYXAoKFssIHNhdmVkSXRlbV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBzYXZlZEl0ZW0/LmlkO1xuICAgICAgICBpZiAoIWlkKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKFxuICAgICAgICAgICAgY3JlYXRlU2F2ZURldGFpbEZhaWx1cmVBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKHtcbiAgICAgICAgICAgICAgZXJyb3I6ICdJdGVtIGhhcyBubyBpZCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VydmljZS5kZWxldGUoaWQpLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWc/LnJvdXRlciAmJiBjb25maWc/LnJlZGlyZWN0UGF0aCkge1xuICAgICAgICAgICAgICBjb25maWcucm91dGVyLm5hdmlnYXRlQnlVcmwoYCR7Y29uZmlnLnJlZGlyZWN0UGF0aH1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbmZpZz8ucm91dGVyICYmIGNvbmZpZz8ubmF2aWdhdGlvbk1hcCkge1xuICAgICAgICAgICAgICBjb25zdCB1cmwgPSBjb25zdHJ1Y3RVcmxGcm9tTmF2aWdhdGlvbk1hcChzYXZlZEl0ZW0sIGNvbmZpZy5uYXZpZ2F0aW9uTWFwKVxuICAgICAgICAgICAgICBjb25maWcucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZURlbGV0ZURldGFpbFN1Y2Nlc3NBY3Rpb24oZGV0YWlsc1JlcG9zaXRvcnkpKCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yJywgZXJyb3IpO1xuICAgICAgICAgICAgY29uZmlnLnNuYWNrYmFyPy5zaG93RXJyb3IoJ0ZhaWxlZCB0byBkZWxldGUgaXRlbS4nKTtcbiAgICAgICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgICAgY3JlYXRlRGVsZXRlRGV0YWlsRmFpbHVyZUFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeSkoeyBlcnJvciB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWxldGVEZXRhaWxTdWNjZXNzRWZmZWN0KFxuICBkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgY29uZmlnPzogQ3JlYXRlSW5pdEZvcm1Db25maWc8dW5rbm93bj5cbikge1xuICByZXR1cm4gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBhY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoY3JlYXRlRGVsZXRlRGV0YWlsU3VjY2Vzc0FjdGlvbihkZXRhaWxzUmVwb3NpdG9yeSkpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGNvbmZpZz8uc25hY2tiYXI/LnNob3dTdWNjZXNzKFxuICAgICAgICAgICAgY29uZmlnLnN1Y2Nlc3NNZXNzZ2UgPz8gYEl0ZW0gc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQuYFxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHtcbiAgICAgIGRpc3BhdGNoOiBmYWxzZSxcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWxldGVEZXRhaWxGYWlsdXJlRWZmZWN0KFxuICBkZXRhaWxzUmVwb3NpdG9yeTogc3RyaW5nLFxuICBhY3Rpb25zJDogQWN0aW9ucyxcbiAgY29uZmlnPzogQ3JlYXRlSW5pdEZvcm1Db25maWc8dW5rbm93bj5cbikge1xuICByZXR1cm4gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBhY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoY3JlYXRlRGVsZXRlRGV0YWlsRmFpbHVyZUFjdGlvbihkZXRhaWxzUmVwb3NpdG9yeSkpLFxuICAgICAgICB0YXAoKHsgZXJyb3IgfSkgPT4ge1xuICAgICAgICAgIGNvbmZpZz8uc25hY2tiYXI/LnNob3dFcnJvcihcbiAgICAgICAgICAgIGNvbmZpZy5lcnJvck1lc3NhZ2UgPz8gYEVycm9yIGRlbGV0aW5nIGl0ZW0uICR7ZXJyb3IubWVzc2FnZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAge1xuICAgICAgZGlzcGF0Y2g6IGZhbHNlLFxuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0VXJsRnJvbU5hdmlnYXRpb25NYXA8VCBleHRlbmRzIG9iamVjdD4oXG4gIGl0ZW06IFQsXG4gIG5hdmlnYXRpb25NYXA6IE1hcDxrZXlvZiBULCBzdHJpbmc+KVxuICA6IHN0cmluZyB7XG4gIGxldCB1cmwgPSAnJztcbiAgbmF2aWdhdGlvbk1hcC5mb3JFYWNoKCh1cmxQYXJ0VmFsdWUsIHN1ZmZpeFByb3BlcnR5S2V5KSA9PiB7XG4gICAgY29uc3Qgc3VmZml4ID0gaXRlbVtzdWZmaXhQcm9wZXJ0eUtleV07XG4gICAgaWYgKHN1ZmZpeCkge1xuICAgICAgdXJsICs9IGAke3VybFBhcnRWYWx1ZX0vJHtzdWZmaXh9YDtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1cmw7XG59XG4iXX0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export const INITIAL_SAVE_ITEM_STATE = {
|
|
2
|
-
saveInProgress: false,
|
|
3
|
-
};
|
|
4
|
-
export const INITIAL_CHOSEN_ROW_STATE = {
|
|
5
|
-
rows: []
|
|
6
|
-
};
|
|
7
|
-
export const INITIAL_DETAIL_STATE = {
|
|
8
|
-
loaded: false,
|
|
9
|
-
saveItemState: INITIAL_SAVE_ITEM_STATE,
|
|
10
|
-
backendValidationErrors: [],
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3N0b3JlL3NyYy9saWIvZGV0YWlsLXN0YXRlL2RldGFpbC5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0JBLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFrQjtJQUNwRCxjQUFjLEVBQUUsS0FBSztDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXlCO0lBQzVELElBQUksRUFBRSxFQUFFO0NBQ1QsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFxQjtJQUNwRCxNQUFNLEVBQUUsS0FBSztJQUNiLGFBQWEsRUFBRSx1QkFBdUI7SUFDdEMsdUJBQXVCLEVBQUUsRUFBRTtDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEZXRhaWxTdGF0ZTxUPiB7XG4gIGxvYWRlZDogYm9vbGVhbjtcbiAgaXRlbT86IFQ7XG4gIGZvcm1TdGF0ZT86IEZvcm1TdGF0ZTtcbiAgZXJyb3I/OiBzdHJpbmcgfCBudWxsO1xuICBzYXZlSXRlbVN0YXRlOiBTYXZlSXRlbVN0YXRlO1xuICBiYWNrZW5kVmFsaWRhdGlvbkVycm9yczogQmFja2VuZFZhbGlkYXRpb25FcnJvcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2tlbmRWYWxpZGF0aW9uRXJyb3Ige1xuICBjb2RlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgcGFyYW1ldGVyczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENob3NlblJvd3NTdGF0ZTxUPiB7IFxuICByb3dzOiBBcnJheTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYXZlSXRlbVN0YXRlIHtcbiAgc2F2ZUluUHJvZ3Jlc3M6IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IElOSVRJQUxfU0FWRV9JVEVNX1NUQVRFOiBTYXZlSXRlbVN0YXRlID0ge1xuICBzYXZlSW5Qcm9ncmVzczogZmFsc2UsXG59O1xuXG5leHBvcnQgY29uc3QgSU5JVElBTF9DSE9TRU5fUk9XX1NUQVRFOiBDaG9zZW5Sb3dzU3RhdGU8YW55PiA9IHtcbiAgcm93czogW11cbn1cblxuZXhwb3J0IGNvbnN0IElOSVRJQUxfREVUQUlMX1NUQVRFOiBEZXRhaWxTdGF0ZTxhbnk+ID0ge1xuICBsb2FkZWQ6IGZhbHNlLFxuICBzYXZlSXRlbVN0YXRlOiBJTklUSUFMX1NBVkVfSVRFTV9TVEFURSxcbiAgYmFja2VuZFZhbGlkYXRpb25FcnJvcnM6IFtdLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU3RhdGUge1xuICBkaXJ0eTogYm9vbGVhbjtcbiAgdmFsaWQ6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { createReducer, on } from '@ngrx/store';
|
|
2
|
-
import { createInitDetailAction, createInitNewDetailAction, createLoadDetailFailureAction, createLoadDetailSuccessAction, createResetStateAction, createSaveDetailAction, createSaveDetailFailureAction, createSaveDetailSuccessAction, createUpdateDetailAction, createUpdateDetailSetErrorsAction, createUpdateFormStateAction, } from './detail.actions';
|
|
3
|
-
import { INITIAL_DETAIL_STATE, INITIAL_SAVE_ITEM_STATE, } from './detail.models';
|
|
4
|
-
export function createDetailReducers(detailRepository, initialState = INITIAL_DETAIL_STATE, ...ons) {
|
|
5
|
-
return createReducer(initialState, on(createInitDetailAction(detailRepository), (state) => {
|
|
6
|
-
return {
|
|
7
|
-
...state,
|
|
8
|
-
loaded: false,
|
|
9
|
-
error: null,
|
|
10
|
-
};
|
|
11
|
-
}), on(createInitNewDetailAction(detailRepository), (state) => {
|
|
12
|
-
return {
|
|
13
|
-
...state,
|
|
14
|
-
loaded: false,
|
|
15
|
-
error: null,
|
|
16
|
-
};
|
|
17
|
-
}), on(createLoadDetailSuccessAction(detailRepository), (state, { item }) => {
|
|
18
|
-
return {
|
|
19
|
-
...state,
|
|
20
|
-
loaded: true,
|
|
21
|
-
item,
|
|
22
|
-
};
|
|
23
|
-
}), on(createLoadDetailFailureAction(detailRepository), (state, { error }) => {
|
|
24
|
-
return {
|
|
25
|
-
...state,
|
|
26
|
-
loaded: true,
|
|
27
|
-
error,
|
|
28
|
-
};
|
|
29
|
-
}), on(createUpdateDetailAction(detailRepository), (state, { item }) => {
|
|
30
|
-
return {
|
|
31
|
-
...state,
|
|
32
|
-
item,
|
|
33
|
-
formState: {
|
|
34
|
-
dirty: true,
|
|
35
|
-
valid: state.formState?.valid ?? true,
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
}), on(createUpdateDetailSetErrorsAction(detailRepository), (state, { error }) => {
|
|
39
|
-
return {
|
|
40
|
-
...state,
|
|
41
|
-
backendValidationErrors: error
|
|
42
|
-
};
|
|
43
|
-
}), on(createUpdateFormStateAction(detailRepository), (state, { formState }) => {
|
|
44
|
-
return {
|
|
45
|
-
...state,
|
|
46
|
-
formState,
|
|
47
|
-
};
|
|
48
|
-
}), on(createSaveDetailSuccessAction(detailRepository), (state) => {
|
|
49
|
-
return {
|
|
50
|
-
...state,
|
|
51
|
-
formState: {
|
|
52
|
-
dirty: false,
|
|
53
|
-
valid: state.formState?.valid ?? true,
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
}), on(createResetStateAction(detailRepository), () => {
|
|
57
|
-
return {
|
|
58
|
-
...initialState,
|
|
59
|
-
};
|
|
60
|
-
}), on(createSaveDetailFailureAction(detailRepository), (state, { error }) => {
|
|
61
|
-
return {
|
|
62
|
-
...state,
|
|
63
|
-
backendValidationErrors: error.error
|
|
64
|
-
};
|
|
65
|
-
}), ...ons);
|
|
66
|
-
}
|
|
67
|
-
export function createSaveDetailReducers(detailRepository, initialState = INITIAL_SAVE_ITEM_STATE) {
|
|
68
|
-
return createReducer(initialState, on(createSaveDetailAction(detailRepository), (state) => {
|
|
69
|
-
return {
|
|
70
|
-
...state,
|
|
71
|
-
saveInProgress: true,
|
|
72
|
-
};
|
|
73
|
-
}), on(createSaveDetailSuccessAction(detailRepository), (state, { item }) => {
|
|
74
|
-
return {
|
|
75
|
-
...state,
|
|
76
|
-
item,
|
|
77
|
-
saveInProgress: false,
|
|
78
|
-
};
|
|
79
|
-
}), on(createSaveDetailFailureAction(detailRepository), (state, { error }) => {
|
|
80
|
-
return {
|
|
81
|
-
...state,
|
|
82
|
-
error,
|
|
83
|
-
saveInProgress: false,
|
|
84
|
-
};
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9zdG9yZS9zcmMvbGliL2RldGFpbC1zdGF0ZS9kZXRhaWwucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxFQUFFLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQzdFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIseUJBQXlCLEVBQ3pCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLHdCQUF3QixFQUN4QixpQ0FBaUMsRUFDakMsMkJBQTJCLEdBQzVCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUVMLG9CQUFvQixFQUNwQix1QkFBdUIsR0FDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixNQUFNLFVBQVUsb0JBQW9CLENBSWxDLGdCQUF3QixFQUN4QixlQUF1QixvQkFBeUMsRUFDaEUsR0FBRyxHQUFxRDtJQUV4RCxPQUFPLGFBQWEsQ0FDbEIsWUFBWSxFQUNaLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDckQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxLQUFLO1lBQ2IsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO0lBQ0osQ0FBQyxDQUFDLEVBRUYsRUFBRSxDQUFDLHlCQUF5QixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN4RCxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQUMsNkJBQTZCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFDdEUsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSTtTQUNMLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQUMsNkJBQTZCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDdkUsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSztTQUNOLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFDakUsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLElBQUk7WUFDSixTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLElBQUk7YUFDdEM7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLEVBRUYsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzNFLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUix1QkFBdUIsRUFBRSxLQUFLO1NBQy9CLENBQUE7SUFDSCxDQUFDLENBQUMsRUFFRixFQUFFLENBQ0EsMkJBQTJCLENBQUMsZ0JBQWdCLENBQUMsRUFDN0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1FBQ3ZCLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixTQUFTO1NBQ1YsQ0FBQztJQUNKLENBQUMsQ0FDRixFQUVELEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDNUQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsS0FBSztnQkFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksSUFBSTthQUN0QztTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLEVBQUU7UUFDaEQsT0FBTztZQUNMLEdBQUksWUFBb0I7U0FDekIsQ0FBQztJQUNKLENBQUMsQ0FBQyxFQUVGLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUN2RSxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLEtBQUs7U0FDckMsQ0FBQTtJQUNILENBQUMsQ0FBQyxFQUNGLEdBQUcsR0FBRyxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxnQkFBd0IsRUFDeEIsWUFBWSxHQUFHLHVCQUF1QjtJQUV0QyxPQUFPLGFBQWEsQ0FDbEIsWUFBWSxFQUVaLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDckQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLGNBQWMsRUFBRSxJQUFJO1NBQ3JCLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQUMsNkJBQTZCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFDdEUsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLElBQUk7WUFDSixjQUFjLEVBQUUsS0FBSztTQUN0QixDQUFDO0lBQ0osQ0FBQyxDQUFDLEVBRUYsRUFBRSxDQUFDLDZCQUE2QixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixLQUFLO1lBQ0wsY0FBYyxFQUFFLEtBQUs7U0FDdEIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciwgY3JlYXRlUmVkdWNlciwgb24sIFJlZHVjZXJUeXBlcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIGNyZWF0ZUluaXREZXRhaWxBY3Rpb24sXG4gIGNyZWF0ZUluaXROZXdEZXRhaWxBY3Rpb24sXG4gIGNyZWF0ZUxvYWREZXRhaWxGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVMb2FkRGV0YWlsU3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlUmVzZXRTdGF0ZUFjdGlvbixcbiAgY3JlYXRlU2F2ZURldGFpbEFjdGlvbixcbiAgY3JlYXRlU2F2ZURldGFpbEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVNhdmVEZXRhaWxTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVVcGRhdGVEZXRhaWxBY3Rpb24sXG4gIGNyZWF0ZVVwZGF0ZURldGFpbFNldEVycm9yc0FjdGlvbixcbiAgY3JlYXRlVXBkYXRlRm9ybVN0YXRlQWN0aW9uLFxufSBmcm9tICcuL2RldGFpbC5hY3Rpb25zJztcbmltcG9ydCB7XG4gIERldGFpbFN0YXRlLFxuICBJTklUSUFMX0RFVEFJTF9TVEFURSxcbiAgSU5JVElBTF9TQVZFX0lURU1fU1RBVEUsXG59IGZyb20gJy4vZGV0YWlsLm1vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZXRhaWxSZWR1Y2VyczxcbiAgVCA9IGFueSxcbiAgVFN0YXRlIGV4dGVuZHMgRGV0YWlsU3RhdGU8VD4gPSBEZXRhaWxTdGF0ZTxUPlxuPihcbiAgZGV0YWlsUmVwb3NpdG9yeTogc3RyaW5nLFxuICBpbml0aWFsU3RhdGU6IFRTdGF0ZSA9IElOSVRJQUxfREVUQUlMX1NUQVRFIGFzIHVua25vd24gYXMgVFN0YXRlLFxuICAuLi5vbnM6IFJlZHVjZXJUeXBlczxUU3RhdGUsIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXT5bXVxuKSB7XG4gIHJldHVybiBjcmVhdGVSZWR1Y2VyKFxuICAgIGluaXRpYWxTdGF0ZSxcbiAgICBvbihjcmVhdGVJbml0RGV0YWlsQWN0aW9uKGRldGFpbFJlcG9zaXRvcnkpLCAoc3RhdGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG4gICAgfSksXG5cbiAgICBvbihjcmVhdGVJbml0TmV3RGV0YWlsQWN0aW9uKGRldGFpbFJlcG9zaXRvcnkpLCAoc3RhdGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG4gICAgfSksXG5cbiAgICBvbihjcmVhdGVMb2FkRGV0YWlsU3VjY2Vzc0FjdGlvbihkZXRhaWxSZXBvc2l0b3J5KSwgKHN0YXRlLCB7IGl0ZW0gfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXRlbSxcbiAgICAgIH07XG4gICAgfSksXG5cbiAgICBvbihjcmVhdGVMb2FkRGV0YWlsRmFpbHVyZUFjdGlvbihkZXRhaWxSZXBvc2l0b3J5KSwgKHN0YXRlLCB7IGVycm9yIH0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIGVycm9yLFxuICAgICAgfTtcbiAgICB9KSxcblxuICAgIG9uKGNyZWF0ZVVwZGF0ZURldGFpbEFjdGlvbihkZXRhaWxSZXBvc2l0b3J5KSwgKHN0YXRlLCB7IGl0ZW0gfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGl0ZW0sXG4gICAgICAgIGZvcm1TdGF0ZToge1xuICAgICAgICAgIGRpcnR5OiB0cnVlLFxuICAgICAgICAgIHZhbGlkOiBzdGF0ZS5mb3JtU3RhdGU/LnZhbGlkID8/IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pLFxuXG4gICAgb24oY3JlYXRlVXBkYXRlRGV0YWlsU2V0RXJyb3JzQWN0aW9uKGRldGFpbFJlcG9zaXRvcnkpLCAoc3RhdGUsIHsgZXJyb3IgfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGJhY2tlbmRWYWxpZGF0aW9uRXJyb3JzOiBlcnJvclxuICAgICAgfVxuICAgIH0pLFxuXG4gICAgb24oXG4gICAgICBjcmVhdGVVcGRhdGVGb3JtU3RhdGVBY3Rpb24oZGV0YWlsUmVwb3NpdG9yeSksXG4gICAgICAoc3RhdGUsIHsgZm9ybVN0YXRlIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBmb3JtU3RhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgKSxcblxuICAgIG9uKGNyZWF0ZVNhdmVEZXRhaWxTdWNjZXNzQWN0aW9uKGRldGFpbFJlcG9zaXRvcnkpLCAoc3RhdGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBmb3JtU3RhdGU6IHtcbiAgICAgICAgICBkaXJ0eTogZmFsc2UsXG4gICAgICAgICAgdmFsaWQ6IHN0YXRlLmZvcm1TdGF0ZT8udmFsaWQgPz8gdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSksXG4gICAgXG4gICAgb24oY3JlYXRlUmVzZXRTdGF0ZUFjdGlvbihkZXRhaWxSZXBvc2l0b3J5KSwgKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uKGluaXRpYWxTdGF0ZSBhcyBhbnkpLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBcbiAgICBvbihjcmVhdGVTYXZlRGV0YWlsRmFpbHVyZUFjdGlvbihkZXRhaWxSZXBvc2l0b3J5KSwgKHN0YXRlLCB7IGVycm9yIH0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBiYWNrZW5kVmFsaWRhdGlvbkVycm9yczogZXJyb3IuZXJyb3JcbiAgICAgIH1cbiAgICB9KSxcbiAgICAuLi5vbnNcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNhdmVEZXRhaWxSZWR1Y2VycyhcbiAgZGV0YWlsUmVwb3NpdG9yeTogc3RyaW5nLFxuICBpbml0aWFsU3RhdGUgPSBJTklUSUFMX1NBVkVfSVRFTV9TVEFURVxuKSB7XG4gIHJldHVybiBjcmVhdGVSZWR1Y2VyKFxuICAgIGluaXRpYWxTdGF0ZSxcblxuICAgIG9uKGNyZWF0ZVNhdmVEZXRhaWxBY3Rpb24oZGV0YWlsUmVwb3NpdG9yeSksIChzdGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNhdmVJblByb2dyZXNzOiB0cnVlLFxuICAgICAgfTtcbiAgICB9KSxcblxuICAgIG9uKGNyZWF0ZVNhdmVEZXRhaWxTdWNjZXNzQWN0aW9uKGRldGFpbFJlcG9zaXRvcnkpLCAoc3RhdGUsIHsgaXRlbSB9KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgaXRlbSxcbiAgICAgICAgc2F2ZUluUHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgfTtcbiAgICB9KSxcblxuICAgIG9uKGNyZWF0ZVNhdmVEZXRhaWxGYWlsdXJlQWN0aW9uKGRldGFpbFJlcG9zaXRvcnkpLCAoc3RhdGUsIHsgZXJyb3IgfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBzYXZlSW5Qcm9ncmVzczogZmFsc2UsXG4gICAgICB9O1xuICAgIH0pXG4gICk7XG59XG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { createAction, props } from '@ngrx/store';
|
|
2
|
-
var TablePageAction;
|
|
3
|
-
(function (TablePageAction) {
|
|
4
|
-
TablePageAction["GET_PAGE"] = "Get page";
|
|
5
|
-
TablePageAction["CREATE_STATIC_FILTER"] = "Create static filter";
|
|
6
|
-
TablePageAction["DATA_LOAD_SUCCESS"] = "Data load success";
|
|
7
|
-
TablePageAction["DATA_LOAD_ERROR"] = "Data load error";
|
|
8
|
-
TablePageAction["REFRESH_PAGE"] = "Refresh page";
|
|
9
|
-
TablePageAction["FILTER_PAGE"] = "Filter page";
|
|
10
|
-
TablePageAction["CHANGE_PAGE_SIZE"] = "Change page size";
|
|
11
|
-
TablePageAction["SORT_PAGE"] = "Sort page";
|
|
12
|
-
TablePageAction["DESTROY"] = "Destroy";
|
|
13
|
-
TablePageAction["SELECT_ITEMS"] = "Select items";
|
|
14
|
-
TablePageAction["REMOVE_RANGE"] = "Remove range";
|
|
15
|
-
})(TablePageAction || (TablePageAction = {}));
|
|
16
|
-
export function createGetPageTableAction(tableRepository) {
|
|
17
|
-
return createAction(`${tableRepository} ${TablePageAction.GET_PAGE}`, props());
|
|
18
|
-
}
|
|
19
|
-
export function createStaticFilterTableAction(tableRepository) {
|
|
20
|
-
return createAction(`${tableRepository} ${TablePageAction.CREATE_STATIC_FILTER}`, props());
|
|
21
|
-
}
|
|
22
|
-
export function createDataLoadSuccessTableAction(tableRepository) {
|
|
23
|
-
return createAction(`${tableRepository} ${TablePageAction.DATA_LOAD_SUCCESS}`, props());
|
|
24
|
-
}
|
|
25
|
-
export function createDataLoadErrorTableAction(tableRepository) {
|
|
26
|
-
return createAction(`${tableRepository} ${TablePageAction.DATA_LOAD_ERROR}`, props());
|
|
27
|
-
}
|
|
28
|
-
export function createChangePageSizeTableAction(tableRepository) {
|
|
29
|
-
return createAction(`${tableRepository} ${TablePageAction.CHANGE_PAGE_SIZE}`, props());
|
|
30
|
-
}
|
|
31
|
-
// TODO: use action in delete item effect
|
|
32
|
-
export function createRefreshPageTableAction(tableRepository) {
|
|
33
|
-
return createAction(`${tableRepository} ${TablePageAction.REFRESH_PAGE}`);
|
|
34
|
-
}
|
|
35
|
-
export function createFilterPageTableAction(tableRepository) {
|
|
36
|
-
return createAction(`${tableRepository} ${TablePageAction.REFRESH_PAGE}`, props());
|
|
37
|
-
}
|
|
38
|
-
export function createResetTableFilterAction(tableRepository) {
|
|
39
|
-
return createAction(`${tableRepository} ${TablePageAction.REFRESH_PAGE}`);
|
|
40
|
-
}
|
|
41
|
-
export function createDestroyTableAction(tableRepository) {
|
|
42
|
-
return createAction(`${tableRepository} ${TablePageAction.DESTROY}`);
|
|
43
|
-
}
|
|
44
|
-
export function createSelectItemsTableAction(tableRepository) {
|
|
45
|
-
return createAction(`${tableRepository} ${TablePageAction.SELECT_ITEMS}`, props());
|
|
46
|
-
}
|
|
47
|
-
export function createRemoveRangeTableAction(tableRepository) {
|
|
48
|
-
return createAction(`${tableRepository} ${TablePageAction.REMOVE_RANGE}`);
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3N0b3JlL3NyYy9saWIvdGFibGUtc3RhdGUvYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdsRCxJQUFLLGVBWUo7QUFaRCxXQUFLLGVBQWU7SUFDbEIsd0NBQXFCLENBQUE7SUFDckIsZ0VBQTZDLENBQUE7SUFDN0MsMERBQXVDLENBQUE7SUFDdkMsc0RBQW1DLENBQUE7SUFDbkMsZ0RBQTZCLENBQUE7SUFDN0IsOENBQTJCLENBQUE7SUFDM0Isd0RBQXFDLENBQUE7SUFDckMsMENBQXVCLENBQUE7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsZ0RBQTZCLENBQUE7SUFDN0IsZ0RBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVpJLGVBQWUsS0FBZixlQUFlLFFBWW5CO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFVLGVBQXVCO0lBQ3ZFLE9BQU8sWUFBWSxDQUNqQixHQUFHLGVBQWUsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQ2hELEtBQUssRUFNRCxDQUNMLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QixDQUMzQyxlQUF1QjtJQUV2QixPQUFPLFlBQVksQ0FDakIsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLG9CQUFvQixFQUFFLEVBQzVELEtBQUssRUFFRCxDQUNMLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGdDQUFnQyxDQUFJLGVBQXVCO0lBQ3pFLE9BQU8sWUFBWSxDQUNqQixHQUFHLGVBQWUsSUFBSSxlQUFlLENBQUMsaUJBQWlCLEVBQUUsRUFDekQsS0FBSyxFQUFzQixDQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxlQUF1QjtJQUNwRSxPQUFPLFlBQVksQ0FDakIsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLGVBQWUsRUFBRSxFQUN2RCxLQUFLLEVBQWtCLENBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUFDLGVBQXVCO0lBQ3JFLE9BQU8sWUFBWSxDQUNqQixHQUFHLGVBQWUsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsRUFDeEQsS0FBSyxFQUFvQixDQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELHlDQUF5QztBQUN6QyxNQUFNLFVBQVUsNEJBQTRCLENBQUMsZUFBdUI7SUFDbEUsT0FBTyxZQUFZLENBQUMsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBSSxlQUF1QjtJQUNwRSxPQUFPLFlBQVksQ0FDakIsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxFQUNwRCxLQUFLLEVBQTBCLENBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLGVBQXVCO0lBQ2xFLE9BQU8sWUFBWSxDQUFDLEdBQUcsZUFBZSxJQUFJLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsZUFBdUI7SUFDOUQsT0FBTyxZQUFZLENBQUMsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBSSxlQUF1QjtJQUNyRSxPQUFPLFlBQVksQ0FDakIsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxFQUNwRCxLQUFLLEVBQTBCLENBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLGVBQXVCO0lBQ2xFLE9BQU8sWUFBWSxDQUFDLEdBQUcsZUFBZSxJQUFJLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FDdkUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUGFnZSwgU29ydCB9IGZyb20gJ0B2ZXJpc29mdC9jb3JlJztcblxuZW51bSBUYWJsZVBhZ2VBY3Rpb24ge1xuICBHRVRfUEFHRSA9ICdHZXQgcGFnZScsXG4gIENSRUFURV9TVEFUSUNfRklMVEVSID0gJ0NyZWF0ZSBzdGF0aWMgZmlsdGVyJyxcbiAgREFUQV9MT0FEX1NVQ0NFU1MgPSAnRGF0YSBsb2FkIHN1Y2Nlc3MnLFxuICBEQVRBX0xPQURfRVJST1IgPSAnRGF0YSBsb2FkIGVycm9yJyxcbiAgUkVGUkVTSF9QQUdFID0gJ1JlZnJlc2ggcGFnZScsXG4gIEZJTFRFUl9QQUdFID0gJ0ZpbHRlciBwYWdlJyxcbiAgQ0hBTkdFX1BBR0VfU0laRSA9ICdDaGFuZ2UgcGFnZSBzaXplJyxcbiAgU09SVF9QQUdFID0gJ1NvcnQgcGFnZScsXG4gIERFU1RST1kgPSAnRGVzdHJveScsXG4gIFNFTEVDVF9JVEVNUyA9ICdTZWxlY3QgaXRlbXMnLFxuICBSRU1PVkVfUkFOR0UgPSAnUmVtb3ZlIHJhbmdlJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdldFBhZ2VUYWJsZUFjdGlvbjxUID0gYW55Pih0YWJsZVJlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGAke3RhYmxlUmVwb3NpdG9yeX0gJHtUYWJsZVBhZ2VBY3Rpb24uR0VUX1BBR0V9YCxcbiAgICBwcm9wczx7XG4gICAgICBwYWdlOiBudW1iZXI7XG4gICAgICBzaXplOiBudW1iZXI7XG4gICAgICBpZD86IHN0cmluZyB8IG51bGw7XG4gICAgICBmaWx0ZXI/OiBQYXJ0aWFsPFQ+O1xuICAgICAgc29ydD86IFNvcnRbXTtcbiAgICB9PigpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdGF0aWNGaWx0ZXJUYWJsZUFjdGlvbjxUID0gYW55PihcbiAgdGFibGVSZXBvc2l0b3J5OiBzdHJpbmdcbikge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGAke3RhYmxlUmVwb3NpdG9yeX0gJHtUYWJsZVBhZ2VBY3Rpb24uQ1JFQVRFX1NUQVRJQ19GSUxURVJ9YCxcbiAgICBwcm9wczx7XG4gICAgICBmaWx0ZXI/OiBQYXJ0aWFsPFQ+O1xuICAgIH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFMb2FkU3VjY2Vzc1RhYmxlQWN0aW9uPFQ+KHRhYmxlUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oXG4gICAgYCR7dGFibGVSZXBvc2l0b3J5fSAke1RhYmxlUGFnZUFjdGlvbi5EQVRBX0xPQURfU1VDQ0VTU31gLFxuICAgIHByb3BzPHsgZ1BhZ2U6IFBhZ2U8VD4gfT4oKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YUxvYWRFcnJvclRhYmxlQWN0aW9uKHRhYmxlUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oXG4gICAgYCR7dGFibGVSZXBvc2l0b3J5fSAke1RhYmxlUGFnZUFjdGlvbi5EQVRBX0xPQURfRVJST1J9YCxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2hhbmdlUGFnZVNpemVUYWJsZUFjdGlvbih0YWJsZVJlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKFxuICAgIGAke3RhYmxlUmVwb3NpdG9yeX0gJHtUYWJsZVBhZ2VBY3Rpb24uQ0hBTkdFX1BBR0VfU0laRX1gLFxuICAgIHByb3BzPHsgc2l6ZTogbnVtYmVyIH0+KClcbiAgKTtcbn1cblxuLy8gVE9ETzogdXNlIGFjdGlvbiBpbiBkZWxldGUgaXRlbSBlZmZlY3RcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWZyZXNoUGFnZVRhYmxlQWN0aW9uKHRhYmxlUmVwb3NpdG9yeTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oYCR7dGFibGVSZXBvc2l0b3J5fSAke1RhYmxlUGFnZUFjdGlvbi5SRUZSRVNIX1BBR0V9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWx0ZXJQYWdlVGFibGVBY3Rpb248VD4odGFibGVSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihcbiAgICBgJHt0YWJsZVJlcG9zaXRvcnl9ICR7VGFibGVQYWdlQWN0aW9uLlJFRlJFU0hfUEFHRX1gLFxuICAgIHByb3BzPHsgZmlsdGVyOiBQYXJ0aWFsPFQ+IH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlc2V0VGFibGVGaWx0ZXJBY3Rpb24odGFibGVSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihgJHt0YWJsZVJlcG9zaXRvcnl9ICR7VGFibGVQYWdlQWN0aW9uLlJFRlJFU0hfUEFHRX1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlc3Ryb3lUYWJsZUFjdGlvbih0YWJsZVJlcG9zaXRvcnk6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlQWN0aW9uKGAke3RhYmxlUmVwb3NpdG9yeX0gJHtUYWJsZVBhZ2VBY3Rpb24uREVTVFJPWX1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdEl0ZW1zVGFibGVBY3Rpb248VD4odGFibGVSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihcbiAgICBgJHt0YWJsZVJlcG9zaXRvcnl9ICR7VGFibGVQYWdlQWN0aW9uLlNFTEVDVF9JVEVNU31gLFxuICAgIHByb3BzPHsgc2VsZWN0ZWRJdGVtczogVFtdIH0+KClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlbW92ZVJhbmdlVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbihgJHt0YWJsZVJlcG9zaXRvcnl9ICR7VGFibGVQYWdlQWN0aW9uLlJFTU9WRV9SQU5HRX1gXG4gICk7XG59Il19
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { createEffect, ofType } from '@ngrx/effects';
|
|
2
|
-
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
3
|
-
import { DEFAULT_SEARCH_LIMIT } from '@verisoft/core';
|
|
4
|
-
import { catchError, map, of, switchMap, withLatestFrom } from 'rxjs';
|
|
5
|
-
import { createGetPageTableAction, createDataLoadSuccessTableAction, createDataLoadErrorTableAction, createRemoveRangeTableAction, } from './actions';
|
|
6
|
-
export function createGetPageTableEffect(tableRepository, actions$, config) {
|
|
7
|
-
return createEffect(() => {
|
|
8
|
-
return actions$.pipe(ofType(createGetPageTableAction(tableRepository)), switchMap(({ page, filter, sort, size }) => {
|
|
9
|
-
const requestParams = {
|
|
10
|
-
offset: page * size,
|
|
11
|
-
limit: size,
|
|
12
|
-
sort,
|
|
13
|
-
filter,
|
|
14
|
-
};
|
|
15
|
-
const params = config.service?.createParams(requestParams) ?? requestParams;
|
|
16
|
-
const fetchList$ = (config.service?.fetchList(params) ?? config.fetchList?.(params));
|
|
17
|
-
if (!fetchList$) {
|
|
18
|
-
throw new Error('Service or fetchList$ must by defined.');
|
|
19
|
-
}
|
|
20
|
-
return fetchList$.pipe(map((gPage) => {
|
|
21
|
-
const p = { ...gPage, number: page };
|
|
22
|
-
return createDataLoadSuccessTableAction(tableRepository)({
|
|
23
|
-
gPage: p,
|
|
24
|
-
});
|
|
25
|
-
}), catchError((error) => {
|
|
26
|
-
config.snackbar?.showError(error.message);
|
|
27
|
-
return of(createDataLoadErrorTableAction(tableRepository)({ error }));
|
|
28
|
-
}));
|
|
29
|
-
}));
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
export function createRemoveRangeTableEffect(tableRepository, ngrxFeatureKey, actions$, store$, config) {
|
|
33
|
-
return createEffect(() => {
|
|
34
|
-
if (!config?.service) {
|
|
35
|
-
throw new Error('Service must be defined!');
|
|
36
|
-
}
|
|
37
|
-
const selectedItems = createSelector(createFeatureSelector(ngrxFeatureKey), (state) => {
|
|
38
|
-
return state?.[tableRepository]?.selectedItems;
|
|
39
|
-
});
|
|
40
|
-
return actions$.pipe(ofType(createRemoveRangeTableAction(tableRepository)), withLatestFrom(selectedItems), switchMap(([, { selectedItems }]) => {
|
|
41
|
-
return config.service.removeRange(selectedItems).pipe(map(() => {
|
|
42
|
-
return createGetPageTableAction(tableRepository)({ page: 0, size: DEFAULT_SEARCH_LIMIT });
|
|
43
|
-
}), catchError(error => {
|
|
44
|
-
return of(createDataLoadErrorTableAction(tableRepository)({ error }));
|
|
45
|
-
}));
|
|
46
|
-
}));
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3N0b3JlL3NyYy9saWIvdGFibGUtc3RhdGUvZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUcscUJBQXFCLEVBQUUsY0FBYyxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBbUIsb0JBQW9CLEVBQXVCLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQzlCLDRCQUE0QixHQUM3QixNQUFNLFdBQVcsQ0FBQztBQVduQixNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLGVBQXVCLEVBQ3ZCLFFBQWlCLEVBQ2pCLE1BQW9DO0lBRXBDLE9BQU8sWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUN2QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2xCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUNqRCxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDekMsTUFBTSxhQUFhLEdBQXVCO2dCQUN4QyxNQUFNLEVBQUUsSUFBSSxHQUFHLElBQUk7Z0JBQ25CLEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUk7Z0JBQ0osTUFBTTthQUNQLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhLENBQUM7WUFFNUUsTUFBTSxVQUFVLEdBQXdCLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQ2hFLE1BQU0sQ0FDUCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBd0IsQ0FBQztZQUN4RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUNwQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWixNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxnQ0FBZ0MsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDdkQsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25CLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQ1AsOEJBQThCLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUMzRCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQzFDLGVBQXVCLEVBQ3ZCLGNBQXNCLEVBQ3RCLFFBQWlCLEVBQ2pCLE1BQWtCLEVBQ2xCLE1BQW9DO0lBRXBDLE9BQU8sWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUN2QixJQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUNsQyxxQkFBcUIsQ0FBTSxjQUFjLENBQUMsRUFDMUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNiLE9BQVEsS0FBSyxFQUFFLENBQUMsZUFBZSxDQUFxQixFQUFFLGFBQW9CLENBQUM7UUFDN0UsQ0FBQyxDQUNGLENBQUM7UUFFRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2xCLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUNyRCxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQzdCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxPQUFPLE1BQU0sQ0FBQyxPQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxPQUFPLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxDQUMvQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQTtZQUMzQyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3ZFLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7ICBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSwgREVGQVVMVF9TRUFSQ0hfTElNSVQsIFBhZ2UsIFJlcXVlc3RQYXJhbXMgfSBmcm9tICdAdmVyaXNvZnQvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjcmVhdGVHZXRQYWdlVGFibGVBY3Rpb24sXG4gIGNyZWF0ZURhdGFMb2FkU3VjY2Vzc1RhYmxlQWN0aW9uLFxuICBjcmVhdGVEYXRhTG9hZEVycm9yVGFibGVBY3Rpb24sXG4gIGNyZWF0ZVJlbW92ZVJhbmdlVGFibGVBY3Rpb24sXG59IGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBUYWJsZVN0YXRlIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUdldFBhZ2VBY3Rpb25Db25maWc8VD4ge1xuICBzZXJ2aWNlPzogQmFzZUh0dHBTZXJ2aWNlPFQ+O1xuICBmZXRjaExpc3Q/OiAocmVxdWVzdFBhcmFtczogUmVxdWVzdFBhcmFtczxhbnk+KSA9PiBPYnNlcnZhYmxlPFBhZ2U8VD4+O1xuICBzbmFja2Jhcj86IGFueTtcbiAgbmdyeEZlYXR1cmVLZXk/OiBzdHJpbmc7XG4gIHJlcXVpcmVGaWx0ZXJzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdldFBhZ2VUYWJsZUVmZmVjdDxUPihcbiAgdGFibGVSZXBvc2l0b3J5OiBzdHJpbmcsXG4gIGFjdGlvbnMkOiBBY3Rpb25zLFxuICBjb25maWc6IENyZWF0ZUdldFBhZ2VBY3Rpb25Db25maWc8VD5cbikge1xuICByZXR1cm4gY3JlYXRlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVHZXRQYWdlVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSksXG4gICAgICBzd2l0Y2hNYXAoKHsgcGFnZSwgZmlsdGVyLCBzb3J0LCBzaXplIH0pID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFBhcmFtczogUmVxdWVzdFBhcmFtczxhbnk+ID0ge1xuICAgICAgICAgIG9mZnNldDogcGFnZSAqIHNpemUsXG4gICAgICAgICAgbGltaXQ6IHNpemUsXG4gICAgICAgICAgc29ydCxcbiAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcGFyYW1zID0gY29uZmlnLnNlcnZpY2U/LmNyZWF0ZVBhcmFtcyhyZXF1ZXN0UGFyYW1zKSA/PyByZXF1ZXN0UGFyYW1zO1xuXG4gICAgICAgIGNvbnN0IGZldGNoTGlzdCQ6IE9ic2VydmFibGU8UGFnZTxUPj4gPSAoY29uZmlnLnNlcnZpY2U/LmZldGNoTGlzdChcbiAgICAgICAgICBwYXJhbXNcbiAgICAgICAgKSA/PyBjb25maWcuZmV0Y2hMaXN0Py4ocGFyYW1zKSkgYXMgT2JzZXJ2YWJsZTxQYWdlPFQ+PjtcbiAgICAgICAgaWYgKCFmZXRjaExpc3QkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXJ2aWNlIG9yIGZldGNoTGlzdCQgbXVzdCBieSBkZWZpbmVkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZldGNoTGlzdCQucGlwZShcbiAgICAgICAgICBtYXAoKGdQYWdlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwID0geyAuLi5nUGFnZSwgbnVtYmVyOiBwYWdlIH07XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRGF0YUxvYWRTdWNjZXNzVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSh7XG4gICAgICAgICAgICAgIGdQYWdlOiBwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbmZpZy5zbmFja2Jhcj8uc2hvd0Vycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKFxuICAgICAgICAgICAgICBjcmVhdGVEYXRhTG9hZEVycm9yVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSh7IGVycm9yIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVtb3ZlUmFuZ2VUYWJsZUVmZmVjdDxUPihcbiAgdGFibGVSZXBvc2l0b3J5OiBzdHJpbmcsXG4gIG5ncnhGZWF0dXJlS2V5OiBzdHJpbmcsXG4gIGFjdGlvbnMkOiBBY3Rpb25zLFxuICBzdG9yZSQ6IFN0b3JlPGFueT4sXG4gIGNvbmZpZzogQ3JlYXRlR2V0UGFnZUFjdGlvbkNvbmZpZzxUPlxuKSB7XG4gIHJldHVybiBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgIGlmKCFjb25maWc/LnNlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2VydmljZSBtdXN0IGJlIGRlZmluZWQhJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgY3JlYXRlRmVhdHVyZVNlbGVjdG9yPGFueT4obmdyeEZlYXR1cmVLZXkpLFxuICAgICAgKHN0YXRlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIChzdGF0ZT8uW3RhYmxlUmVwb3NpdG9yeV0gYXMgVGFibGVTdGF0ZTxhbnk+KT8uc2VsZWN0ZWRJdGVtcyBhcyBhbnk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiBhY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVJlbW92ZVJhbmdlVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShzZWxlY3RlZEl0ZW1zKSxcbiAgICAgIHN3aXRjaE1hcCgoWywgeyBzZWxlY3RlZEl0ZW1zIH1dKSA9PiB7XG4gICAgICAgIHJldHVybiBjb25maWcuc2VydmljZSEucmVtb3ZlUmFuZ2Uoc2VsZWN0ZWRJdGVtcykucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUdldFBhZ2VUYWJsZUFjdGlvbih0YWJsZVJlcG9zaXRvcnkpXG4gICAgICAgICAgICAoeyBwYWdlOiAwLCBzaXplOiBERUZBVUxUX1NFQVJDSF9MSU1JVCB9KVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGNyZWF0ZURhdGFMb2FkRXJyb3JUYWJsZUFjdGlvbih0YWJsZVJlcG9zaXRvcnkpKHsgZXJyb3IgfSkpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_SEARCH_LIMIT, DEFAULT_SEARCH_PARAMS } from "@verisoft/core";
|
|
2
|
-
export const INITIAL_TABLE_STATE = {
|
|
3
|
-
gPage: {
|
|
4
|
-
data: [],
|
|
5
|
-
size: DEFAULT_SEARCH_LIMIT,
|
|
6
|
-
total: 0.
|
|
7
|
-
},
|
|
8
|
-
dataLoading: false,
|
|
9
|
-
requestParams: DEFAULT_SEARCH_PARAMS,
|
|
10
|
-
selectedItems: []
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvc3RvcmUvc3JjL2xpYi90YWJsZS1zdGF0ZS9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUF1QixNQUFNLGdCQUFnQixDQUFDO0FBVWxHLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFvQjtJQUNsRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsRUFBRTtRQUNSLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsS0FBSyxFQUFFLEVBQUU7S0FDYztJQUN6QixXQUFXLEVBQUUsS0FBSztJQUNsQixhQUFhLEVBQUUscUJBQXFCO0lBQ3BDLGFBQWEsRUFBRSxFQUFFO0NBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX1NFQVJDSF9MSU1JVCwgREVGQVVMVF9TRUFSQ0hfUEFSQU1TLCBQYWdlLCBSZXF1ZXN0UGFyYW1zIH0gZnJvbSBcIkB2ZXJpc29mdC9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTdGF0ZTxUPiB7XG4gIGRhdGFMb2FkaW5nOiBib29sZWFuO1xuICByZXF1ZXN0UGFyYW1zOiBSZXF1ZXN0UGFyYW1zPFQ+O1xuICBnUGFnZT86IFBhZ2U8VD47XG4gIGVycm9yPzogc3RyaW5nIHwgbnVsbDtcbiAgc2VsZWN0ZWRJdGVtcz86IFRbXTtcbn1cblxuZXhwb3J0IGNvbnN0IElOSVRJQUxfVEFCTEVfU1RBVEU6IFRhYmxlU3RhdGU8YW55PiA9IHtcbiAgZ1BhZ2U6IHtcbiAgICBkYXRhOiBbXSxcbiAgICBzaXplOiBERUZBVUxUX1NFQVJDSF9MSU1JVCxcbiAgICB0b3RhbDogMC5cbiAgfSBhcyB1bmtub3duIGFzIFBhZ2U8YW55PixcbiAgZGF0YUxvYWRpbmc6IGZhbHNlLFxuICByZXF1ZXN0UGFyYW1zOiBERUZBVUxUX1NFQVJDSF9QQVJBTVMsXG4gIHNlbGVjdGVkSXRlbXM6IFtdXG59OyJdfQ==
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { createReducer, on } from '@ngrx/store';
|
|
3
|
-
import { createGetPageTableAction, createStaticFilterTableAction, createDataLoadSuccessTableAction, createDataLoadErrorTableAction, createFilterPageTableAction, createDestroyTableAction, createSelectItemsTableAction, createChangePageSizeTableAction, createResetTableFilterAction, } from './actions';
|
|
4
|
-
import { INITIAL_TABLE_STATE } from './models';
|
|
5
|
-
export function createTablePageReducers(tableRepository, initialState = INITIAL_TABLE_STATE, ...ons) {
|
|
6
|
-
return createReducer(initialState, on(createGetPageTableAction(tableRepository), (state, { page, id, filter, sort }) => {
|
|
7
|
-
return {
|
|
8
|
-
...state,
|
|
9
|
-
requestParams: {
|
|
10
|
-
...state.requestParams,
|
|
11
|
-
filter: filter ?? state.requestParams.filter,
|
|
12
|
-
sort: sort ?? state.requestParams.sort,
|
|
13
|
-
id: id ?? state.requestParams.id,
|
|
14
|
-
page,
|
|
15
|
-
},
|
|
16
|
-
dataLoading: true,
|
|
17
|
-
submitted: true,
|
|
18
|
-
};
|
|
19
|
-
}), on(createStaticFilterTableAction(tableRepository), (state, { filter }) => {
|
|
20
|
-
return {
|
|
21
|
-
...state,
|
|
22
|
-
requestParams: {
|
|
23
|
-
...state.requestParams,
|
|
24
|
-
filter: {
|
|
25
|
-
...state.requestParams?.filter,
|
|
26
|
-
filter,
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
}), on(createResetTableFilterAction(tableRepository), (state) => {
|
|
31
|
-
return {
|
|
32
|
-
...state,
|
|
33
|
-
requestParams: {
|
|
34
|
-
...state.requestParams,
|
|
35
|
-
filter: undefined,
|
|
36
|
-
page: 1
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
}), on(createDataLoadSuccessTableAction(tableRepository), (state, { gPage }) => {
|
|
40
|
-
return {
|
|
41
|
-
...state,
|
|
42
|
-
gPage,
|
|
43
|
-
dataLoading: false,
|
|
44
|
-
};
|
|
45
|
-
}), on(createDataLoadErrorTableAction(tableRepository), (state, { error }) => {
|
|
46
|
-
return {
|
|
47
|
-
...state,
|
|
48
|
-
error,
|
|
49
|
-
dataLoading: false,
|
|
50
|
-
};
|
|
51
|
-
}), on(createFilterPageTableAction(tableRepository), (state, { filter }) => {
|
|
52
|
-
return {
|
|
53
|
-
...state,
|
|
54
|
-
requestParams: {
|
|
55
|
-
...state.requestParams,
|
|
56
|
-
filter: filter,
|
|
57
|
-
page: 1,
|
|
58
|
-
},
|
|
59
|
-
dataLoading: true,
|
|
60
|
-
};
|
|
61
|
-
}), on(createDestroyTableAction(tableRepository), () => {
|
|
62
|
-
return {
|
|
63
|
-
...initialState,
|
|
64
|
-
};
|
|
65
|
-
}), on(createSelectItemsTableAction(tableRepository), (state, { selectedItems }) => {
|
|
66
|
-
return {
|
|
67
|
-
...state,
|
|
68
|
-
selectedItems,
|
|
69
|
-
};
|
|
70
|
-
}), on(createChangePageSizeTableAction(tableRepository), (state, { size }) => {
|
|
71
|
-
return {
|
|
72
|
-
...state,
|
|
73
|
-
requestParams: {
|
|
74
|
-
...state.requestParams,
|
|
75
|
-
size,
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
}), ...ons);
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9zdG9yZS9zcmMvbGliL3RhYmxlLXN0YXRlL3JlZHVjZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQStCLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0UsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBQ2hDLDhCQUE4QixFQUM5QiwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1QiwrQkFBK0IsRUFDL0IsNEJBQTRCLEdBQzdCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxtQkFBbUIsRUFBYyxNQUFNLFVBQVUsQ0FBQztBQUUzRCxNQUFNLFVBQVUsdUJBQXVCLENBSXJDLGVBQXVCLEVBQ3ZCLGVBQXVCLG1CQUF3QyxFQUMvRCxHQUFHLEdBQXFEO0lBRXhELE9BQU8sYUFBYSxDQUNsQixZQUFZLEVBQ1osRUFBRSxDQUNBLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxFQUN6QyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFDcEMsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLGFBQWEsRUFBRTtnQkFDYixHQUFHLEtBQUssQ0FBQyxhQUFhO2dCQUN0QixNQUFNLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTTtnQkFDNUMsSUFBSSxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQ3RDLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJO2FBQ0w7WUFDRCxXQUFXLEVBQUUsSUFBSTtZQUNqQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO0lBQ0osQ0FBQyxDQUNGLEVBRUQsRUFBRSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUN2RSxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsYUFBYSxFQUFFO2dCQUNiLEdBQUcsS0FBSyxDQUFDLGFBQWE7Z0JBQ3RCLE1BQU0sRUFBRTtvQkFDTixHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsTUFBTTtvQkFDOUIsTUFBTTtpQkFDUDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxFQUVGLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzFELE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUU7Z0JBQ2IsR0FBRyxLQUFLLENBQUMsYUFBYTtnQkFDdEIsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLElBQUksRUFBRSxDQUFDO2FBQ1I7U0FDRixDQUFBO0lBQ0gsQ0FBQyxDQUFDLEVBRUYsRUFBRSxDQUNBLGdDQUFnQyxDQUFDLGVBQWUsQ0FBQyxFQUNqRCxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDbkIsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEtBQUs7WUFDTCxXQUFXLEVBQUUsS0FBSztTQUNuQixDQUFDO0lBQ0osQ0FBQyxDQUNGLEVBRUQsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUN2RSxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsS0FBSztZQUNMLFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQUMsMkJBQTJCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1FBQ3JFLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUU7Z0JBQ2IsR0FBRyxLQUFLLENBQUMsYUFBYTtnQkFDdEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLENBQUM7YUFDUjtZQUNELFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFO1FBQ2pELE9BQU87WUFDTCxHQUFJLFlBQW9CO1NBQ3pCLENBQUM7SUFDSixDQUFDLENBQUMsRUFFRixFQUFFLENBQ0EsNEJBQTRCLENBQUMsZUFBZSxDQUFDLEVBQzdDLENBQUMsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtRQUMzQixPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsYUFBYTtTQUNkLENBQUM7SUFDSixDQUFDLENBQ0YsRUFFRCxFQUFFLENBQUMsK0JBQStCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUU7Z0JBQ2IsR0FBRyxLQUFLLENBQUMsYUFBYTtnQkFDdEIsSUFBSTthQUNMO1NBQ0YsQ0FBQTtJQUNILENBQUMsQ0FBQyxFQUNGLEdBQUcsR0FBRyxDQUNQLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciwgUmVkdWNlclR5cGVzLCBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIGNyZWF0ZUdldFBhZ2VUYWJsZUFjdGlvbixcbiAgY3JlYXRlU3RhdGljRmlsdGVyVGFibGVBY3Rpb24sXG4gIGNyZWF0ZURhdGFMb2FkU3VjY2Vzc1RhYmxlQWN0aW9uLFxuICBjcmVhdGVEYXRhTG9hZEVycm9yVGFibGVBY3Rpb24sXG4gIGNyZWF0ZUZpbHRlclBhZ2VUYWJsZUFjdGlvbixcbiAgY3JlYXRlRGVzdHJveVRhYmxlQWN0aW9uLFxuICBjcmVhdGVTZWxlY3RJdGVtc1RhYmxlQWN0aW9uLFxuICBjcmVhdGVDaGFuZ2VQYWdlU2l6ZVRhYmxlQWN0aW9uLFxuICBjcmVhdGVSZXNldFRhYmxlRmlsdGVyQWN0aW9uLFxufSBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0IHsgSU5JVElBTF9UQUJMRV9TVEFURSwgVGFibGVTdGF0ZSB9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRhYmxlUGFnZVJlZHVjZXJzPFxuICBUID0gYW55LFxuICBUU3RhdGUgZXh0ZW5kcyBUYWJsZVN0YXRlPFQ+ID0gVGFibGVTdGF0ZTxUPlxuPihcbiAgdGFibGVSZXBvc2l0b3J5OiBzdHJpbmcsXG4gIGluaXRpYWxTdGF0ZTogVFN0YXRlID0gSU5JVElBTF9UQUJMRV9TVEFURSBhcyB1bmtub3duIGFzIFRTdGF0ZSxcbiAgLi4ub25zOiBSZWR1Y2VyVHlwZXM8VFN0YXRlLCByZWFkb25seSBBY3Rpb25DcmVhdG9yW10+W11cbikge1xuICByZXR1cm4gY3JlYXRlUmVkdWNlcihcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgb24oXG4gICAgICBjcmVhdGVHZXRQYWdlVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSxcbiAgICAgIChzdGF0ZSwgeyBwYWdlLCBpZCwgZmlsdGVyLCBzb3J0IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICByZXF1ZXN0UGFyYW1zOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5yZXF1ZXN0UGFyYW1zLFxuICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXIgPz8gc3RhdGUucmVxdWVzdFBhcmFtcy5maWx0ZXIsXG4gICAgICAgICAgICBzb3J0OiBzb3J0ID8/IHN0YXRlLnJlcXVlc3RQYXJhbXMuc29ydCxcbiAgICAgICAgICAgIGlkOiBpZCA/PyBzdGF0ZS5yZXF1ZXN0UGFyYW1zLmlkLFxuICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRhdGFMb2FkaW5nOiB0cnVlLFxuICAgICAgICAgIHN1Ym1pdHRlZDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICApLFxuXG4gICAgb24oY3JlYXRlU3RhdGljRmlsdGVyVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSwgKHN0YXRlLCB7IGZpbHRlciB9KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVxdWVzdFBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlcXVlc3RQYXJhbXMsXG4gICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5yZXF1ZXN0UGFyYW1zPy5maWx0ZXIsXG4gICAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSksXG5cbiAgICBvbihjcmVhdGVSZXNldFRhYmxlRmlsdGVyQWN0aW9uKHRhYmxlUmVwb3NpdG9yeSksIChzdGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlcXVlc3RQYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXF1ZXN0UGFyYW1zLFxuICAgICAgICAgIGZpbHRlcjogdW5kZWZpbmVkLFxuICAgICAgICAgIHBhZ2U6IDFcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9KSxcblxuICAgIG9uKFxuICAgICAgY3JlYXRlRGF0YUxvYWRTdWNjZXNzVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSxcbiAgICAgIChzdGF0ZSwgeyBnUGFnZSB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgZ1BhZ2UsXG4gICAgICAgICAgZGF0YUxvYWRpbmc6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICksXG5cbiAgICBvbihjcmVhdGVEYXRhTG9hZEVycm9yVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSwgKHN0YXRlLCB7IGVycm9yIH0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgZGF0YUxvYWRpbmc6IGZhbHNlLFxuICAgICAgfTtcbiAgICB9KSxcblxuICAgIG9uKGNyZWF0ZUZpbHRlclBhZ2VUYWJsZUFjdGlvbih0YWJsZVJlcG9zaXRvcnkpLCAoc3RhdGUsIHsgZmlsdGVyIH0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXF1ZXN0UGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVxdWVzdFBhcmFtcyxcbiAgICAgICAgICBmaWx0ZXI6IGZpbHRlcixcbiAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhTG9hZGluZzogdHJ1ZSxcbiAgICAgIH07XG4gICAgfSksXG5cbiAgICBvbihjcmVhdGVEZXN0cm95VGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSwgKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uKGluaXRpYWxTdGF0ZSBhcyBhbnkpLFxuICAgICAgfTtcbiAgICB9KSxcblxuICAgIG9uKFxuICAgICAgY3JlYXRlU2VsZWN0SXRlbXNUYWJsZUFjdGlvbih0YWJsZVJlcG9zaXRvcnkpLFxuICAgICAgKHN0YXRlLCB7IHNlbGVjdGVkSXRlbXMgfSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgKSxcblxuICAgIG9uKGNyZWF0ZUNoYW5nZVBhZ2VTaXplVGFibGVBY3Rpb24odGFibGVSZXBvc2l0b3J5KSwgKHN0YXRlLCB7IHNpemUgfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlcXVlc3RQYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXF1ZXN0UGFyYW1zLFxuICAgICAgICAgIHNpemUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSxcbiAgICAuLi5vbnNcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaXNvZnQtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9zdG9yZS9zcmMvdmVyaXNvZnQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|