import { MemoizedSelector } from '@ngrx/store'; import { coreSelector, CoreState } from '../core.reducers'; import { JsonPatchOperationsEntry, JsonPatchOperationsResourceEntry } from './json-patch-operations.reducer'; import { keySelector, subStateSelector } from '../../submission/selectors'; /** * Return MemoizedSelector to select all jsonPatchOperations for a specified resource type, stored in the state * * @param resourceType * the resource type * @return MemoizedSelector * MemoizedSelector */ export function jsonPatchOperationsByResourceType(resourceType: string): MemoizedSelector { return keySelector(coreSelector,'json/patch', resourceType); } /** * Return MemoizedSelector to select all jsonPatchOperations for a specified resource id, stored in the state * * @param resourceType * the resource type * @param resourceId * the resourceId type * @return MemoizedSelector * MemoizedSelector */ export function jsonPatchOperationsByResourceId(resourceType: string, resourceId: string): MemoizedSelector { const resourceTypeSelector = jsonPatchOperationsByResourceType(resourceType); return subStateSelector(resourceTypeSelector, resourceId); }