UNPKG

@hmcts/media-viewer

Version:
116 lines 14.9 kB
import * as fromRedaction from '../actions/redaction.actions'; import * as fromAnnotations from '../actions/annotation.actions'; import { StoreUtils } from '../store-utils'; export const initialRedactionState = { redactionEntities: {}, redactionPageEntities: {}, selectedRedaction: {}, redactedDocumentInfo: undefined, documentId: undefined }; export function redactionReducer(state = initialRedactionState, action) { switch (action.type) { case fromRedaction.LOAD_REDACTIONS: { return { ...state, ...initialRedactionState }; } case fromRedaction.LOAD_REDACTION_SUCCESS: { const payload = action.payload; if (payload) { const redactionEntities = StoreUtils.generateRedactionEntities(payload); const redactionPageEntities = StoreUtils.groupByKeyEntities(payload, 'page'); return { ...state, redactionEntities, redactionPageEntities }; } return { ...state }; } case fromRedaction.SAVE_REDACTION_SUCCESS: { const { payload } = action; const redactionEntities = { ...state.redactionEntities, [payload.redactionId]: payload }; const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]); const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page'); return { ...state, redactionEntities, redactionPageEntities }; } case fromRedaction.SAVE_BULK_REDACTION_SUCCESS: { const payloadResult = Object.assign({}, ...action.payload.searchRedactions.map((x) => ({ [x.redactionId]: x }))); const redactionEntities = { ...state.redactionEntities, ...payloadResult }; const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]); const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page'); return { ...state, redactionEntities, redactionPageEntities }; } case fromRedaction.SELECT_REDACTION: case fromAnnotations.SELECT_ANNOTATION: { return { ...state, selectedRedaction: action.payload }; } case fromRedaction.DELETE_REDACTION_SUCCESS: { const page = action.payload.page; const id = action.payload.redactionId; const redactionEntities = { ...state.redactionEntities }; delete redactionEntities[id]; const pageRedactionRemoved = [ ...state.redactionPageEntities[page].filter(redaction => redaction.redactionId !== id) ]; const redactionPageEntities = { ...state.redactionPageEntities, [page]: pageRedactionRemoved }; return { ...state, redactionPageEntities, redactionEntities, }; } case fromRedaction.REDACT_SUCCESS: { const redactedDocumentInfo = action.payload; return { ...state, ...initialRedactionState, redactedDocumentInfo }; } case fromRedaction.RESET_REDACTED_DOCUMENT: { return { ...state, redactedDocumentInfo: undefined }; } case fromRedaction.UNMARK_ALL_SUCCESS: { return { ...state, ...initialRedactionState }; } } return state; } export const getRedactionEnt = (state) => state.redactionEntities; export const getPageEnt = (state) => state.redactionPageEntities; export const getSelectedRedaction = (state) => state.selectedRedaction; export const getRedactedDocInfo = (state) => state.redactedDocumentInfo; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy9yZWRhY3Rpb24ucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssYUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sS0FBSyxlQUFlLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBYTVDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFtQjtJQUNuRCxpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLHFCQUFxQixFQUFFLEVBQUU7SUFDekIsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQixvQkFBb0IsRUFBRSxTQUFTO0lBQy9CLFVBQVUsRUFBRSxTQUFTO0NBQ3RCLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQUssR0FBRyxxQkFBcUIsRUFDN0IsTUFBMkU7SUFFM0UsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFcEIsS0FBSyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNuQyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixHQUFHLHFCQUFxQjthQUN6QixDQUFDO1FBQ0osQ0FBQztRQUVELEtBQUssYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUMxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hFLE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFD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QkFDTCxHQUFHLEtBQUs7Z0JBQ1IscUJBQXFCO2dCQUNyQixpQkFBaUI7YUFDbEIsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM1QyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixHQUFHLHFCQUFxQjtnQkFDeEIsb0JBQW9CO2FBQ3JCLENBQUM7UUFDSixDQUFDO1FBRUQsS0FBSyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLG9CQUFvQixFQUFFLFNBQVM7YUFDaEMsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7WUFDdEMsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsR0FBRyxxQkFBcUI7YUFDekIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBR0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztBQUNqRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztBQUN2RixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIGZyb21SZWRhY3Rpb24gZnJvbSAnLi4vYWN0aW9ucy9yZWRhY3Rpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub3RhdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgU3RvcmVVdGlscyB9IGZyb20gJy4uL3N0b3JlLXV0aWxzJztcbmltcG9ydCB7IFNlbGVjdGlvbkFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9tb2RlbHMvZXZlbnQtc2VsZWN0Lm1vZGVsJztcbmltcG9ydCB7IFJlZGFjdGlvbiB9IGZyb20gJy4uLy4uL3JlZGFjdGlvbi9zZXJ2aWNlcy9yZWRhY3Rpb24ubW9kZWwnOyAvLyB0b2RvIHJlbmFtZVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkYWN0aW9uU3RhdGUge1xuICByZWRhY3Rpb25FbnRpdGllczogeyBbaWQ6IHN0cmluZ106IFJlZGFjdGlvbiB9O1xuICByZWRhY3Rpb25QYWdlRW50aXRpZXM6IHsgW2lkOiBzdHJpbmddOiBhbnkgfTtcbiAgc2VsZWN0ZWRSZWRhY3Rpb246IFNlbGVjdGlvbkFubm90YXRpb24gfCB7fTtcbiAgcmVkYWN0ZWREb2N1bWVudEluZm86IHsgYmxvYjogQmxvYiwgZmlsZW5hbWU6IHN0cmluZyB9O1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsUmVkYWN0aW9uU3RhdGU6IFJlZGFjdGlvblN0YXRlID0ge1xuICByZWRhY3Rpb25FbnRpdGllczoge30sXG4gIHJlZGFjdGlvblBhZ2VFbnRpdGllczoge30sXG4gIHNlbGVjdGVkUmVkYWN0aW9uOiB7fSxcbiAgcmVkYWN0ZWREb2N1bWVudEluZm86IHVuZGVmaW5lZCxcbiAgZG9jdW1lbnRJZDogdW5kZWZpbmVkXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVkYWN0aW9uUmVkdWNlcihcbiAgc3RhdGUgPSBpbml0aWFsUmVkYWN0aW9uU3RhdGUsXG4gIGFjdGlvbjogZnJvbVJlZGFjdGlvbi5SZWRhY3Rpb25BY3Rpb25zIHwgZnJvbUFubm90YXRpb25zLkFubm90YXRpb25zQWN0aW9uc1xuKTogUmVkYWN0aW9uU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIGZyb21SZWRhY3Rpb24uTE9BRF9SRURBQ1RJT05TOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgLi4uaW5pdGlhbFJlZGFjdGlvblN0YXRlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbVJlZGFjdGlvbi5MT0FEX1JFREFDVElPTl9TVUNDRVNTOiB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBpZiAocGF5bG9hZCkge1xuICAgICAgICBjb25zdCByZWRhY3Rpb25FbnRpdGllcyA9IFN0b3JlVXRpbHMuZ2VuZXJhdGVSZWRhY3Rpb25FbnRpdGllcyhwYXlsb2FkKTtcbiAgICAgICAgY29uc3QgcmVkYWN0aW9uUGFnZUVudGl0aWVzID0gU3RvcmVVdGlscy5ncm91cEJ5S2V5RW50aXRpZXMocGF5bG9hZCwgJ3BhZ2UnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICByZWRhY3Rpb25FbnRpdGllcyxcbiAgICAgICAgICByZWRhY3Rpb25QYWdlRW50aXRpZXNcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbVJlZGFjdGlvbi5TQVZFX1JFREFDVElPTl9TVUNDRVNTOiB7XG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IGFjdGlvbjtcbiAgICAgIGNvbnN0IHJlZGFjdGlvbkVudGl0aWVzID0ge1xuICAgICAgICAuLi5zdGF0ZS5yZWRhY3Rpb25FbnRpdGllcyxcbiAgICAgICAgW3BheWxvYWQucmVkYWN0aW9uSWRdOiBwYXlsb2FkXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVkYWN0aW9uQXJyYXkgPSBPYmplY3Qua2V5cyhyZWRhY3Rpb25FbnRpdGllcykubWFwKGtleSA9PiByZWRhY3Rpb25FbnRpdGllc1trZXldKTtcbiAgICAgIGNvbnN0IHJlZGFjdGlvblBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKHJlZGFjdGlvbkFycmF5LCAncGFnZScpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlZGFjdGlvbkVudGl0aWVzLFxuICAgICAgICByZWRhY3Rpb25QYWdlRW50aXRpZXNcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgZnJvbVJlZGFjdGlvbi5TQVZFX0JVTEtfUkVEQUNUSU9OX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IHBheWxvYWRSZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCAuLi5hY3Rpb24ucGF5bG9hZC5zZWFyY2hSZWRhY3Rpb25zLm1hcCgoeCkgPT4gKHsgW3gucmVkYWN0aW9uSWRdOiB4IH0pKSk7XG4gICAgICBjb25zdCByZWRhY3Rpb25FbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUucmVkYWN0aW9uRW50aXRpZXMsXG4gICAgICAgIC4uLnBheWxvYWRSZXN1bHRcbiAgICAgIH07XG4gICAgICBjb25zdCByZWRhY3Rpb25BcnJheSA9IE9iamVjdC5rZXlzKHJlZGFjdGlvbkVudGl0aWVzKS5tYXAoa2V5ID0+IHJlZGFjdGlvbkVudGl0aWVzW2tleV0pO1xuICAgICAgY29uc3QgcmVkYWN0aW9uUGFnZUVudGl0aWVzID0gU3RvcmVVdGlscy5ncm91cEJ5S2V5RW50aXRpZXMocmVkYWN0aW9uQXJyYXksICdwYWdlJyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVkYWN0aW9uRW50aXRpZXMsXG4gICAgICAgIHJlZGFjdGlvblBhZ2VFbnRpdGllc1xuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBmcm9tUmVkYWN0aW9uLlNFTEVDVF9SRURBQ1RJT046XG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuU0VMRUNUX0FOTk9UQVRJT046IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlZGFjdGlvbjogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tUmVkYWN0aW9uLkRFTEVURV9SRURBQ1RJT05fU1VDQ0VTUzoge1xuICAgICAgY29uc3QgcGFnZSA9IGFjdGlvbi5wYXlsb2FkLnBhZ2U7XG4gICAgICBjb25zdCBpZCA9IGFjdGlvbi5wYXlsb2FkLnJlZGFjdGlvbklkO1xuICAgICAgY29uc3QgcmVkYWN0aW9uRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLnJlZGFjdGlvbkVudGl0aWVzXG4gICAgICB9O1xuICAgICAgZGVsZXRlIHJlZGFjdGlvbkVudGl0aWVzW2lkXTtcbiAgICAgIGNvbnN0IHBhZ2VSZWRhY3Rpb25SZW1vdmVkID0gW1xuICAgICAgICAuLi5zdGF0ZS5yZWRhY3Rpb25QYWdlRW50aXRpZXNbcGFnZV0uZmlsdGVyKHJlZGFjdGlvbiA9PiByZWRhY3Rpb24ucmVkYWN0aW9uSWQgIT09IGlkKVxuICAgICAgXTtcbiAgICAgIGNvbnN0IHJlZGFjdGlvblBhZ2VFbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUucmVkYWN0aW9uUGFnZUVudGl0aWVzLFxuICAgICAgICBbcGFnZV06IHBhZ2VSZWRhY3Rpb25SZW1vdmVkXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVkYWN0aW9uUGFnZUVudGl0aWVzLFxuICAgICAgICByZWRhY3Rpb25FbnRpdGllcyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tUmVkYWN0aW9uLlJFREFDVF9TVUNDRVNTOiB7XG4gICAgICBjb25zdCByZWRhY3RlZERvY3VtZW50SW5mbyA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIC4uLmluaXRpYWxSZWRhY3Rpb25TdGF0ZSxcbiAgICAgICAgcmVkYWN0ZWREb2N1bWVudEluZm9cbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tUmVkYWN0aW9uLlJFU0VUX1JFREFDVEVEX0RPQ1VNRU5UOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVkYWN0ZWREb2N1bWVudEluZm86IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21SZWRhY3Rpb24uVU5NQVJLX0FMTF9TVUNDRVNTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgLi4uaW5pdGlhbFJlZGFjdGlvblN0YXRlXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuXG5leHBvcnQgY29uc3QgZ2V0UmVkYWN0aW9uRW50ID0gKHN0YXRlOiBSZWRhY3Rpb25TdGF0ZSkgPT4gc3RhdGUucmVkYWN0aW9uRW50aXRpZXM7XG5leHBvcnQgY29uc3QgZ2V0UGFnZUVudCA9IChzdGF0ZTogUmVkYWN0aW9uU3RhdGUpID0+IHN0YXRlLnJlZGFjdGlvblBhZ2VFbnRpdGllcztcbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZFJlZGFjdGlvbiA9IChzdGF0ZTogUmVkYWN0aW9uU3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkUmVkYWN0aW9uO1xuZXhwb3J0IGNvbnN0IGdldFJlZGFjdGVkRG9jSW5mbyA9IChzdGF0ZTogUmVkYWN0aW9uU3RhdGUpID0+IHN0YXRlLnJlZGFjdGVkRG9jdW1lbnRJbmZvO1xuIl19