import { Selector, createSelector } from '@ngrx/store'; import { StatusBulkInfo } from '@ucap-webmessenger/protocol-status'; import { EntityState, createEntityAdapter } from '@ngrx/entity'; export interface StatusBulkInfoState extends EntityState {} export interface State { statusBulkInfo: StatusBulkInfoState; } export const adapterStatusBulkInfo = createEntityAdapter({ selectId: statusBulkInfo => statusBulkInfo.userSeq }); const statusBulkInfoInitialState: StatusBulkInfoState = adapterStatusBulkInfo.getInitialState( {} ); export const initialState: State = { statusBulkInfo: statusBulkInfoInitialState }; const { selectAll: ngeSelectAllStatusBulkInfo, selectEntities: ngeSelectEntitiesStatusBulkInfo, selectIds: ngeSelectIdsStatusBulkInfo, selectTotal: ngeSelectTotalStatusBulkInfo } = adapterStatusBulkInfo.getSelectors(); export function selectors(selector: Selector) { const selectStatusBulkInfo = createSelector( selector, (state: State) => state.statusBulkInfo ); return { selectAllStatusBulkInfo: createSelector( selectStatusBulkInfo, ngeSelectAllStatusBulkInfo ), selectStatusBulkInfo: (userSeq: number) => createSelector( selectStatusBulkInfo, ngeSelectEntitiesStatusBulkInfo, (_, entities) => entities[userSeq] ) }; }