@hmcts/media-viewer
Version:
135 lines • 15.3 kB
JavaScript
import * as fromActions from '../actions/document.actions';
export const initialDocumentState = {
convertedDocument: undefined,
documentId: undefined,
pdfPosition: undefined,
pages: {},
hasDifferentPageSize: false,
rotation: undefined,
rotationLoaded: false,
loading: false,
loaded: false
};
export function docReducer(state = initialDocumentState, action) {
switch (action.type) {
case fromActions.CONVERT_SUCCESS: {
const convertedDocument = {
url: action.payload,
error: undefined
};
return {
...state,
convertedDocument
};
}
case fromActions.CONVERT_FAIL: {
const convertedDocument = {
url: undefined,
error: action.payload
};
return {
...state,
convertedDocument
};
}
case fromActions.CLEAR_CONVERT_DOC_URL: {
const convertedDocument = undefined;
return {
...state,
convertedDocument
};
}
case fromActions.LOAD_ROTATION: {
return {
...state,
rotationLoaded: false
};
}
case fromActions.LOAD_ROTATION_SUCCESS: {
const metadata = action.payload;
const rotation = metadata ? metadata.rotationAngle : 0;
return {
...state,
rotation,
rotationLoaded: true
};
}
case fromActions.LOAD_ROTATION_FAIL: {
return {
...state,
rotation: 0,
rotationLoaded: true
};
}
case fromActions.SAVE_ROTATION_SUCCESS: {
const metadata = action.payload;
const rotation = metadata.rotationAngle;
return {
...state,
rotation
};
}
case fromActions.SET_DOCUMENT_ID: {
return {
...state,
documentId: action.payload
};
}
case fromActions.ADD_PAGES: {
const payload = action.payload;
let pages = {};
let pageHeight;
let pageWidth;
let hasDifferentPageSize = state.hasDifferentPageSize;
payload.forEach(page => {
if (!hasDifferentPageSize && pageHeight && pageWidth &&
(pageHeight !== page.div['clientHeight'] || pageWidth !== page.div['clientWidth'])) {
hasDifferentPageSize = true;
}
else {
pageHeight = page.div['clientHeight'];
pageWidth = page.div['clientWidth'];
}
const styles = {
left: page.div['offsetLeft'],
height: page.div['clientHeight'],
width: page.div['clientWidth']
};
const scaleRotation = {
scale: page.scale,
rotation: page.rotation
};
const p = {
styles,
scaleRotation,
viewportScale: page.viewportScale
};
pages = {
...pages,
[page.id]: p
};
});
return {
...state,
pages,
hasDifferentPageSize
};
}
case fromActions.POSITION_UPDATED: {
const pdfPosition = action.payload;
return {
...state,
pdfPosition
};
}
}
return state;
}
export const getDocPages = (state) => state.pages;
export const getDocId = (state) => state.documentId;
export const getPdfPos = (state) => state.pdfPosition;
export const getHasDifferentPageSizes = (state) => state.hasDifferentPageSize;
export const getRotation = (state) => state.rotation;
export const rotationLoaded = (state) => state.rotationLoaded;
export const getConvertedDocument = (state) => state.convertedDocument;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2RvY3VtZW50LnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQWdDM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQWtCO0lBQ2pELGlCQUFpQixFQUFFLFNBQVM7SUFDNUIsVUFBVSxFQUFFLFNBQVM7SUFDckIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsS0FBSyxFQUFFLEVBQUU7SUFDVCxvQkFBb0IsRUFBRSxLQUFLO0lBQzNCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEtBQUs7Q0FDZCxDQUFDO0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBRSxLQUFLLEdBQUcsb0JBQW9CLEVBQzVCLE1BQW1DO0lBRTdELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXBCLEtBQUssV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxpQkFBaUIsR0FBRztnQkFDeEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUNuQixLQUFLLEVBQUUsU0FBUzthQUNqQixDQUFDO1lBQ0YsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsaUJBQWlCO2FBQ2xCLENBQUM7UUFDSixDQUFDO1FBRUQsS0FBSyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLGlCQUFpQixHQUFHO2dCQUN4QixHQUFHLEVBQUUsU0FBUztnQkFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDdEIsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLGlCQUFpQjthQUNs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QUFvQixHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnJvbUFjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFN0YXRlIHtcbiAgY29udmVydGVkRG9jdW1lbnQ6IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBlcnJvcjogc3RyaW5nO1xuICB9O1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG4gIHBkZlBvc2l0aW9uOiBQZGZQb3NpdGlvbjtcbiAgcGFnZXM6IHtbaWQ6IHN0cmluZ106IERvY3VtZW50UGFnZXN9O1xuICBoYXNEaWZmZXJlbnRQYWdlU2l6ZTogYm9vbGVhbjtcbiAgcm90YXRpb246IG51bWJlcjtcbiAgcm90YXRpb25Mb2FkZWQ6IGJvb2xlYW47XG4gIGxvYWRlZDogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFBhZ2VzIHtcbiBudW1iZXJPZlBhZ2VzOiBudW1iZXI7XG4gc3R5bGVzOiB7IGxlZnQ6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHdpZHRoOiBudW1iZXIgfTtcbiBzY2FsZVJvdGF0aW9uOiB7IHNjYWxlOiBzdHJpbmc7IHJvdGF0aW9uOiBzdHJpbmcgfTtcbiB2aWV3cG9ydFNjYWxlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRmUG9zaXRpb24ge1xuICBwYWdlTnVtYmVyOiBudW1iZXI7XG4gIHNjYWxlOiBudW1iZXI7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIHJvdGF0aW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsRG9jdW1lbnRTdGF0ZTogRG9jdW1lbnRTdGF0ZSA9IHtcbiAgY29udmVydGVkRG9jdW1lbnQ6IHVuZGVmaW5lZCxcbiAgZG9jdW1lbnRJZDogdW5kZWZpbmVkLFxuICBwZGZQb3NpdGlvbjogdW5kZWZpbmVkLFxuICBwYWdlczoge30sXG4gIGhhc0RpZmZlcmVudFBhZ2VTaXplOiBmYWxzZSxcbiAgcm90YXRpb246IHVuZGVmaW5lZCxcbiAgcm90YXRpb25Mb2FkZWQ6IGZhbHNlLFxuICBsb2FkaW5nOiBmYWxzZSxcbiAgbG9hZGVkOiBmYWxzZVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRvY1JlZHVjZXIgKHN0YXRlID0gaW5pdGlhbERvY3VtZW50U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBmcm9tQWN0aW9ucy5Eb2N1bWVudEFjdGlvbnMpOiBEb2N1bWVudFN0YXRlIHtcblxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLkNPTlZFUlRfU1VDQ0VTUzoge1xuICAgICAgY29uc3QgY29udmVydGVkRG9jdW1lbnQgPSB7XG4gICAgICAgIHVybDogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIGVycm9yOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29udmVydGVkRG9jdW1lbnRcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5DT05WRVJUX0ZBSUw6IHtcbiAgICAgIGNvbnN0IGNvbnZlcnRlZERvY3VtZW50ID0ge1xuICAgICAgICB1cmw6IHVuZGVmaW5lZCxcbiAgICAgICAgZXJyb3I6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbnZlcnRlZERvY3VtZW50XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuQ0xFQVJfQ09OVkVSVF9ET0NfVVJMOiB7XG4gICAgICBjb25zdCBjb252ZXJ0ZWREb2N1bWVudCA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb252ZXJ0ZWREb2N1bWVudFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLkxPQURfUk9UQVRJT046IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByb3RhdGlvbkxvYWRlZDogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5MT0FEX1JPVEFUSU9OX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCByb3RhdGlvbiA9IG1ldGFkYXRhID8gbWV0YWRhdGEucm90YXRpb25BbmdsZSA6IDA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcm90YXRpb24sXG4gICAgICAgIHJvdGF0aW9uTG9hZGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuTE9BRF9ST1RBVElPTl9GQUlMOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcm90YXRpb246IDAsXG4gICAgICAgIHJvdGF0aW9uTG9hZGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0FWRV9ST1RBVElPTl9TVUNDRVNTOiB7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3Qgcm90YXRpb24gPSBtZXRhZGF0YS5yb3RhdGlvbkFuZ2xlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJvdGF0aW9uXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0RPQ1VNRU5UX0lEIDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGRvY3VtZW50SWQ6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuQUREX1BBR0VTOiB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBsZXQgcGFnZXMgPSB7fTtcbiAgICAgIGxldCBwYWdlSGVpZ2h0O1xuICAgICAgbGV0IHBhZ2VXaWR0aDtcbiAgICAgIGxldCBoYXNEaWZmZXJlbnRQYWdlU2l6ZSA9IHN0YXRlLmhhc0RpZmZlcmVudFBhZ2VTaXplO1xuICAgICAgcGF5bG9hZC5mb3JFYWNoKHBhZ2UgPT4ge1xuICAgICAgICBpZiAoIWhhc0RpZmZlcmVudFBhZ2VTaXplICYmIHBhZ2VIZWlnaHQgJiYgcGFnZVdpZHRoICYmXG4gICAgICAgICAgKHBhZ2VIZWlnaHQgIT09IHBhZ2UuZGl2WydjbGllbnRIZWlnaHQnXSB8fCBwYWdlV2lkdGggIT09IHBhZ2UuZGl2WydjbGllbnRXaWR0aCddKSkge1xuICAgICAgICAgICAgaGFzRGlmZmVyZW50UGFnZVNpemUgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhZ2VIZWlnaHQgPSBwYWdlLmRpdlsnY2xpZW50SGVpZ2h0J107XG4gICAgICAgICAgcGFnZVdpZHRoID0gcGFnZS5kaXZbJ2NsaWVudFdpZHRoJ107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3R5bGVzID0ge1xuICAgICAgICAgIGxlZnQ6IHBhZ2UuZGl2WydvZmZzZXRMZWZ0J10sXG4gICAgICAgICAgaGVpZ2h0OiBwYWdlLmRpdlsnY2xpZW50SGVpZ2h0J10sXG4gICAgICAgICAgd2lkdGg6IHBhZ2UuZGl2WydjbGllbnRXaWR0aCddXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2NhbGVSb3RhdGlvbiA9IHtcbiAgICAgICAgICBzY2FsZTogcGFnZS5zY2FsZSxcbiAgICAgICAgICByb3RhdGlvbjogcGFnZS5yb3RhdGlvblxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHAgPSB7XG4gICAgICAgICAgc3R5bGVzLFxuICAgICAgICAgIHNjYWxlUm90YXRpb24sXG4gICAgICAgICAgdmlld3BvcnRTY2FsZTogcGFnZS52aWV3cG9ydFNjYWxlXG4gICAgICAgIH07XG5cbiAgICAgICAgcGFnZXMgPSB7XG4gICAgICAgICAgLi4ucGFnZXMsXG4gICAgICAgICAgW3BhZ2UuaWRdOiBwXG4gICAgICAgIH07XG5cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhZ2VzLFxuICAgICAgICBoYXNEaWZmZXJlbnRQYWdlU2l6ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLlBPU0lUSU9OX1VQREFURUQ6IHtcbiAgICAgIGNvbnN0IHBkZlBvc2l0aW9uID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGRmUG9zaXRpb25cbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZTtcbn1cbmV4cG9ydCBjb25zdCBnZXREb2NQYWdlcyA9IChzdGF0ZTogRG9jdW1lbnRTdGF0ZSkgPT4gc3RhdGUucGFnZXM7XG5leHBvcnQgY29uc3QgZ2V0RG9jSWQgPSAoc3RhdGU6IERvY3VtZW50U3RhdGUpID0+IHN0YXRlLmRvY3VtZW50SWQ7XG5leHBvcnQgY29uc3QgZ2V0UGRmUG9zID0gKHN0YXRlOiBEb2N1bWVudFN0YXRlKSA9PiBzdGF0ZS5wZGZQb3NpdGlvbjtcbmV4cG9ydCBjb25zdCBnZXRIYXNEaWZmZXJlbnRQYWdlU2l6ZXMgPSAoc3RhdGU6IERvY3VtZW50U3RhdGUpID0+IHN0YXRlLmhhc0RpZmZlcmVudFBhZ2VTaXplO1xuZXhwb3J0IGNvbnN0IGdldFJvdGF0aW9uID0gKHN0YXRlOiBEb2N1bWVudFN0YXRlKSA9PiBzdGF0ZS5yb3RhdGlvbjtcbmV4cG9ydCBjb25zdCByb3RhdGlvbkxvYWRlZCA9IChzdGF0ZTogRG9jdW1lbnRTdGF0ZSkgPT4gc3RhdGUucm90YXRpb25Mb2FkZWQ7XG5leHBvcnQgY29uc3QgZ2V0Q29udmVydGVkRG9jdW1lbnQgPSAoc3RhdGU6IERvY3VtZW50U3RhdGUpID0+IHN0YXRlLmNvbnZlcnRlZERvY3VtZW50O1xuIl19