From 3e939786a51510cb6da986a46a377db91dc7037b Mon Sep 17 00:00:00 2001 From: Andreas Otten Date: Wed, 17 Nov 2021 12:19:17 +0100 Subject: [PATCH 1/4] with-build --- .gitignore | 4 +- build/components/DocumentNav.d.ts | 2 + build/components/DocumentNav.js | 59 ++ build/components/FileName.d.ts | 2 + build/components/FileName.js | 50 ++ build/components/HeaderBar.d.ts | 2 + build/components/HeaderBar.js | 53 ++ build/components/ProxyRenderer.d.ts | 2 + build/components/ProxyRenderer.js | 75 +++ build/components/common/Button.d.ts | 11 + build/components/common/Button.js | 34 + build/components/common/index.d.ts | 1 + build/components/common/index.js | 13 + build/components/icons/index.d.ts | 9 + build/components/icons/index.js | 42 ++ build/index.d.ts | 26 + build/index.js | 87 +++ build/plugins/bmp/index.d.ts | 3 + build/plugins/bmp/index.js | 22 + build/plugins/html/index.d.ts | 3 + build/plugins/html/index.js | 56 ++ build/plugins/image/index.d.ts | 3 + build/plugins/image/index.js | 34 + build/plugins/index.d.ts | 1 + build/plugins/index.js | 26 + build/plugins/jpg/index.d.ts | 3 + build/plugins/jpg/index.js | 22 + build/plugins/msdoc/index.d.ts | 3 + build/plugins/msdoc/index.js | 52 ++ build/plugins/msg/index.d.ts | 3 + build/plugins/msg/index.js | 89 +++ build/plugins/pdf/components/PDFControls.d.ts | 3 + build/plugins/pdf/components/PDFControls.js | 57 ++ .../plugins/pdf/components/PDFPagination.d.ts | 3 + build/plugins/pdf/components/PDFPagination.js | 53 ++ build/plugins/pdf/components/icons/index.d.ts | 9 + build/plugins/pdf/components/icons/index.js | 66 ++ .../pdf/components/pages/PDFAllPages.d.ts | 6 + .../pdf/components/pages/PDFAllPages.js | 36 ++ .../pdf/components/pages/PDFPages.d.ts | 3 + .../plugins/pdf/components/pages/PDFPages.js | 52 ++ .../pdf/components/pages/PDFSinglePage.d.ts | 6 + .../pdf/components/pages/PDFSinglePage.js | 49 ++ build/plugins/pdf/index.d.ts | 3 + build/plugins/pdf/index.js | 52 ++ build/plugins/pdf/state/actions.d.ts | 25 + build/plugins/pdf/state/actions.js | 27 + build/plugins/pdf/state/index.d.ts | 12 + build/plugins/pdf/state/index.js | 43 ++ build/plugins/pdf/state/reducer.d.ts | 12 + build/plugins/pdf/state/reducer.js | 44 ++ build/plugins/png/index.d.ts | 3 + build/plugins/png/index.js | 29 + build/plugins/tiff/index.d.ts | 3 + build/plugins/tiff/index.js | 73 +++ build/plugins/tiff/tiffToCanvas.d.ts | 1 + build/plugins/tiff/tiffToCanvas.js | 601 ++++++++++++++++++ build/plugins/txt/index.d.ts | 3 + build/plugins/txt/index.js | 22 + build/state/actions.d.ts | 42 ++ build/state/actions.js | 38 ++ build/state/index.d.ts | 10 + build/state/index.js | 51 ++ build/state/reducer.d.ts | 14 + build/state/reducer.js | 63 ++ build/theme/index.d.ts | 2 + build/theme/index.js | 12 + build/types/index.d.ts | 39 ++ build/types/index.js | 2 + build/utils/fileLoaders.d.ts | 12 + build/utils/fileLoaders.js | 101 +++ build/utils/useDocumentLoader.d.ts | 12 + build/utils/useDocumentLoader.js | 81 +++ build/utils/useRendererSelector.d.ts | 7 + build/utils/useRendererSelector.js | 39 ++ build/utils/useWindowSize.d.ts | 4 + build/utils/useWindowSize.js | 33 + package.json | 22 +- 78 files changed, 2659 insertions(+), 13 deletions(-) create mode 100644 build/components/DocumentNav.d.ts create mode 100644 build/components/DocumentNav.js create mode 100644 build/components/FileName.d.ts create mode 100644 build/components/FileName.js create mode 100644 build/components/HeaderBar.d.ts create mode 100644 build/components/HeaderBar.js create mode 100644 build/components/ProxyRenderer.d.ts create mode 100644 build/components/ProxyRenderer.js create mode 100644 build/components/common/Button.d.ts create mode 100644 build/components/common/Button.js create mode 100644 build/components/common/index.d.ts create mode 100644 build/components/common/index.js create mode 100644 build/components/icons/index.d.ts create mode 100644 build/components/icons/index.js create mode 100644 build/index.d.ts create mode 100644 build/index.js create mode 100644 build/plugins/bmp/index.d.ts create mode 100644 build/plugins/bmp/index.js create mode 100644 build/plugins/html/index.d.ts create mode 100644 build/plugins/html/index.js create mode 100644 build/plugins/image/index.d.ts create mode 100644 build/plugins/image/index.js create mode 100644 build/plugins/index.d.ts create mode 100644 build/plugins/index.js create mode 100644 build/plugins/jpg/index.d.ts create mode 100644 build/plugins/jpg/index.js create mode 100644 build/plugins/msdoc/index.d.ts create mode 100644 build/plugins/msdoc/index.js create mode 100644 build/plugins/msg/index.d.ts create mode 100644 build/plugins/msg/index.js create mode 100644 build/plugins/pdf/components/PDFControls.d.ts create mode 100644 build/plugins/pdf/components/PDFControls.js create mode 100644 build/plugins/pdf/components/PDFPagination.d.ts create mode 100644 build/plugins/pdf/components/PDFPagination.js create mode 100644 build/plugins/pdf/components/icons/index.d.ts create mode 100644 build/plugins/pdf/components/icons/index.js create mode 100644 build/plugins/pdf/components/pages/PDFAllPages.d.ts create mode 100644 build/plugins/pdf/components/pages/PDFAllPages.js create mode 100644 build/plugins/pdf/components/pages/PDFPages.d.ts create mode 100644 build/plugins/pdf/components/pages/PDFPages.js create mode 100644 build/plugins/pdf/components/pages/PDFSinglePage.d.ts create mode 100644 build/plugins/pdf/components/pages/PDFSinglePage.js create mode 100644 build/plugins/pdf/index.d.ts create mode 100644 build/plugins/pdf/index.js create mode 100644 build/plugins/pdf/state/actions.d.ts create mode 100644 build/plugins/pdf/state/actions.js create mode 100644 build/plugins/pdf/state/index.d.ts create mode 100644 build/plugins/pdf/state/index.js create mode 100644 build/plugins/pdf/state/reducer.d.ts create mode 100644 build/plugins/pdf/state/reducer.js create mode 100644 build/plugins/png/index.d.ts create mode 100644 build/plugins/png/index.js create mode 100644 build/plugins/tiff/index.d.ts create mode 100644 build/plugins/tiff/index.js create mode 100644 build/plugins/tiff/tiffToCanvas.d.ts create mode 100644 build/plugins/tiff/tiffToCanvas.js create mode 100644 build/plugins/txt/index.d.ts create mode 100644 build/plugins/txt/index.js create mode 100644 build/state/actions.d.ts create mode 100644 build/state/actions.js create mode 100644 build/state/index.d.ts create mode 100644 build/state/index.js create mode 100644 build/state/reducer.d.ts create mode 100644 build/state/reducer.js create mode 100644 build/theme/index.d.ts create mode 100644 build/theme/index.js create mode 100644 build/types/index.d.ts create mode 100644 build/types/index.js create mode 100644 build/utils/fileLoaders.d.ts create mode 100644 build/utils/fileLoaders.js create mode 100644 build/utils/useDocumentLoader.d.ts create mode 100644 build/utils/useDocumentLoader.js create mode 100644 build/utils/useRendererSelector.d.ts create mode 100644 build/utils/useRendererSelector.js create mode 100644 build/utils/useWindowSize.d.ts create mode 100644 build/utils/useWindowSize.js diff --git a/.gitignore b/.gitignore index 3c1c63c..2ec07e7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ # lock files package-lock.json yarn.lock - +/.idea # dev /.vscode @@ -16,7 +16,7 @@ yarn.lock /coverage # production -/build +#/build # misc .DS_Store diff --git a/build/components/DocumentNav.d.ts b/build/components/DocumentNav.d.ts new file mode 100644 index 0000000..dd10e68 --- /dev/null +++ b/build/components/DocumentNav.d.ts @@ -0,0 +1,2 @@ +import { FC } from "react"; +export declare const DocumentNav: FC<{}>; diff --git a/build/components/DocumentNav.js b/build/components/DocumentNav.js new file mode 100644 index 0000000..48f1343 --- /dev/null +++ b/build/components/DocumentNav.js @@ -0,0 +1,59 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DocumentNav = void 0; +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var state_1 = require("../state"); +var actions_1 = require("../state/actions"); +var Button_1 = require("./common/Button"); +var icons_1 = require("./icons"); +exports.DocumentNav = function () { + var _a = react_1.useContext(state_1.DocViewerContext), _b = _a.state, currentDocument = _b.currentDocument, currentFileNo = _b.currentFileNo, documents = _b.documents, dispatch = _a.dispatch; + if (documents.length <= 1 || !currentDocument) + return null; + var fileName = currentDocument.uri; + var splitURL = fileName.split("/"); + if (splitURL.length) { + fileName = splitURL[splitURL.length - 1]; + } + return (react_1.default.createElement(Container, { id: "doc-nav" }, + react_1.default.createElement("p", { id: "doc-nav-info" }, + "Doc ", + currentFileNo + 1, + " of ", + documents.length), + react_1.default.createElement(ButtonPrev, { id: "doc-nav-prev", onClick: function () { return dispatch(actions_1.previousDocument()); }, disabled: currentFileNo === 0 }, + react_1.default.createElement(icons_1.PrevDocIcon, { color: "#fff", size: "60%" })), + react_1.default.createElement(ButtonNext, { id: "doc-nav-next", onClick: function () { return dispatch(actions_1.nextDocument()); }, disabled: currentFileNo >= documents.length - 1 }, + react_1.default.createElement(icons_1.NextDocIcon, { color: "#fff", size: "60%" })))); +}; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n min-width: 150px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n margin: 0 10px;\n color: ", ";\n"], ["\n min-width: 150px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n margin: 0 10px;\n color: ", ";\n"])), function (props) { return props.theme.text_primary; }); +var ButtonPrev = styled_components_1.default(Button_1.ButtonSecondary)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n margin: 0 5px 0 10px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n margin: 0 5px 0 10px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); +var ButtonNext = styled_components_1.default(ButtonPrev)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin: 0 5px;\n"], ["\n margin: 0 5px;\n"]))); +var templateObject_1, templateObject_2, templateObject_3; diff --git a/build/components/FileName.d.ts b/build/components/FileName.d.ts new file mode 100644 index 0000000..9fa75b0 --- /dev/null +++ b/build/components/FileName.d.ts @@ -0,0 +1,2 @@ +import { FC } from "react"; +export declare const FileName: FC<{}>; diff --git a/build/components/FileName.js b/build/components/FileName.js new file mode 100644 index 0000000..8d39250 --- /dev/null +++ b/build/components/FileName.js @@ -0,0 +1,50 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FileName = void 0; +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var state_1 = require("../state"); +exports.FileName = function () { + var _a, _b; + var _c = react_1.useContext(state_1.DocViewerContext).state, config = _c.config, currentDocument = _c.currentDocument; + if (!currentDocument || ((_a = config === null || config === void 0 ? void 0 : config.header) === null || _a === void 0 ? void 0 : _a.disableFileName)) + return null; + var fileName = currentDocument.uri || ""; + fileName = decodeURI(fileName); + if (!((_b = config === null || config === void 0 ? void 0 : config.header) === null || _b === void 0 ? void 0 : _b.retainURLParams)) { + fileName = fileName.split("?")[0]; + } + var splitURL = fileName.split("/"); + if (splitURL.length) { + fileName = splitURL[splitURL.length - 1]; + } + return (react_1.default.createElement(Container, { id: "file-name", "data-testid": "file-name" }, fileName)); +}; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex: 1;\n text-align: left;\n color: ", ";\n font-weight: bold;\n margin: 0 10px;\n overflow: hidden;\n"], ["\n flex: 1;\n text-align: left;\n color: ", ";\n font-weight: bold;\n margin: 0 10px;\n overflow: hidden;\n"])), function (props) { return props.theme.text_primary; }); +var templateObject_1; diff --git a/build/components/HeaderBar.d.ts b/build/components/HeaderBar.d.ts new file mode 100644 index 0000000..10ee642 --- /dev/null +++ b/build/components/HeaderBar.d.ts @@ -0,0 +1,2 @@ +import { FC } from "react"; +export declare const HeaderBar: FC<{}>; diff --git a/build/components/HeaderBar.js b/build/components/HeaderBar.js new file mode 100644 index 0000000..6acaa4e --- /dev/null +++ b/build/components/HeaderBar.js @@ -0,0 +1,53 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HeaderBar = void 0; +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var state_1 = require("../state"); +var actions_1 = require("../state/actions"); +var DocumentNav_1 = require("./DocumentNav"); +var FileName_1 = require("./FileName"); +exports.HeaderBar = function () { + var _a, _b, _c; + var _d = react_1.useContext(state_1.DocViewerContext), state = _d.state, dispatch = _d.dispatch; + var config = state.config; + if ((_a = config === null || config === void 0 ? void 0 : config.header) === null || _a === void 0 ? void 0 : _a.disableHeader) + return null; + var override = (_c = (_b = config === null || config === void 0 ? void 0 : config.header) === null || _b === void 0 ? void 0 : _b.overrideComponent) === null || _c === void 0 ? void 0 : _c.call(_b, state, function () { return dispatch(actions_1.previousDocument()); }, function () { return dispatch(actions_1.nextDocument()); }); + if (override) { + return override; + } + else { + return (react_1.default.createElement(Container, { id: "header-bar", "data-testid": "header-bar" }, + react_1.default.createElement(FileName_1.FileName, null), + react_1.default.createElement(DocumentNav_1.DocumentNav, null))); + } +}; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n align-items: center;\n z-index: 1;\n padding: 0 10px;\n background-color: ", ";\n font-size: 16px;\n min-height: 50px;\n\n @media (max-width: 768px) {\n min-height: 30px;\n padding: 5px;\n font-size: 10px;\n }\n"], ["\n display: flex;\n justify-content: flex-end;\n align-items: center;\n z-index: 1;\n padding: 0 10px;\n background-color: ", ";\n font-size: 16px;\n min-height: 50px;\n\n @media (max-width: 768px) {\n min-height: 30px;\n padding: 5px;\n font-size: 10px;\n }\n"])), function (props) { return props.theme.primary; }); +var templateObject_1; diff --git a/build/components/ProxyRenderer.d.ts b/build/components/ProxyRenderer.d.ts new file mode 100644 index 0000000..9a76b12 --- /dev/null +++ b/build/components/ProxyRenderer.d.ts @@ -0,0 +1,2 @@ +import { FC } from "react"; +export declare const ProxyRenderer: FC<{}>; diff --git a/build/components/ProxyRenderer.js b/build/components/ProxyRenderer.js new file mode 100644 index 0000000..d0cfab5 --- /dev/null +++ b/build/components/ProxyRenderer.js @@ -0,0 +1,75 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ProxyRenderer = void 0; +var react_1 = __importStar(require("react")); +var styled_components_1 = __importStar(require("styled-components")); +var actions_1 = require("../state/actions"); +var useDocumentLoader_1 = require("../utils/useDocumentLoader"); +var useWindowSize_1 = require("../utils/useWindowSize"); +var common_1 = require("./common"); +var icons_1 = require("./icons"); +exports.ProxyRenderer = function () { + var _a = useDocumentLoader_1.useDocumentLoader(), state = _a.state, dispatch = _a.dispatch, CurrentRenderer = _a.CurrentRenderer; + var documents = state.documents, documentLoading = state.documentLoading, currentDocument = state.currentDocument; + var size = useWindowSize_1.useWindowSize(); + var containerRef = react_1.useCallback(function (node) { + node && dispatch(actions_1.setRendererRect(node === null || node === void 0 ? void 0 : node.getBoundingClientRect())); + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [size]); + var Contents = function () { + if (!documents.length) { + return react_1.default.createElement("div", { id: "no-documents" }); + } + else if (documentLoading) { + return (react_1.default.createElement(LoadingContainer, { id: "loading-renderer", "data-testid": "loading-renderer" }, + react_1.default.createElement(LoadingIconContainer, null, + react_1.default.createElement(icons_1.LoadingIcon, { color: "#444", size: 40 })))); + } + else { + if (CurrentRenderer) { + return react_1.default.createElement(CurrentRenderer, { mainState: state }); + } + else if (CurrentRenderer === undefined) { + return null; + } + else { + return (react_1.default.createElement("div", { id: "no-renderer", "data-testid": "no-renderer" }, + "No Renderer for file type ", currentDocument === null || currentDocument === void 0 ? void 0 : + currentDocument.fileType, + react_1.default.createElement(DownloadButton, { id: "no-renderer-download", href: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri, download: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri }, "Download File"))); + } + } + }; + return (react_1.default.createElement(Container, { id: "proxy-renderer", ref: containerRef }, + react_1.default.createElement(Contents, null))); +}; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n overflow-y: auto;\n"], ["\n display: flex;\n flex: 1;\n overflow-y: auto;\n"]))); +var LoadingContainer = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n height: 75px;\n align-items: center;\n justify-content: center;\n"], ["\n display: flex;\n flex: 1;\n height: 75px;\n align-items: center;\n justify-content: center;\n"]))); +var spinAnim = styled_components_1.keyframes(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n"], ["\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n"]))); +var LoadingIconContainer = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n animation-name: ", ";\n animation-duration: 4s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n"], ["\n animation-name: ", ";\n animation-duration: 4s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n"])), spinAnim); +var DownloadButton = styled_components_1.default(common_1.LinkButton)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: 130px;\n height: 30px;\n background-color: ", ";\n @media (max-width: 768px) {\n width: 125px;\n height: 25px;\n }\n"], ["\n width: 130px;\n height: 30px;\n background-color: ", ";\n @media (max-width: 768px) {\n width: 125px;\n height: 25px;\n }\n"])), function (props) { return props.theme.primary; }); +var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5; diff --git a/build/components/common/Button.d.ts b/build/components/common/Button.d.ts new file mode 100644 index 0000000..cf90c8a --- /dev/null +++ b/build/components/common/Button.d.ts @@ -0,0 +1,11 @@ +import { IStyledProps } from "../../types"; +interface ButtonProps extends IStyledProps { + disabled?: boolean; +} +export declare const ButtonPrimaryStyle: import("styled-components").FlattenInterpolation>; +export declare const ButtonSecondaryStyle: import("styled-components").FlattenInterpolation>; +export declare const Button: import("styled-components").StyledComponent<"button", any, ButtonProps, never>; +export declare const LinkButton: import("styled-components").StyledComponent<"a", any, {}, never>; +export declare const ButtonPrimary: import("styled-components").StyledComponent<"button", any, ButtonProps, never>; +export declare const ButtonSecondary: import("styled-components").StyledComponent<"button", any, ButtonProps, never>; +export {}; diff --git a/build/components/common/Button.js b/build/components/common/Button.js new file mode 100644 index 0000000..c9753d9 --- /dev/null +++ b/build/components/common/Button.js @@ -0,0 +1,34 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ButtonSecondary = exports.ButtonPrimary = exports.LinkButton = exports.Button = exports.ButtonSecondaryStyle = exports.ButtonPrimaryStyle = void 0; +var styled_components_1 = __importStar(require("styled-components")); +exports.ButtonPrimaryStyle = styled_components_1.css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n color: ", ";\n"], ["\n background-color: ", ";\n color: ", ";\n"])), function (props) { return props.theme.primary; }, function (props) { return props.theme.text_primary; }); +exports.ButtonSecondaryStyle = styled_components_1.css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n color: ", ";\n"], ["\n background-color: ", ";\n color: ", ";\n"])), function (props) { return props.theme.secondary; }, function (props) { return props.theme.text_secondary; }); +exports.Button = styled_components_1.default.button(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n display: flex;\n justify-content: center;\n align-items: center;\n width: 35px;\n height: 35px;\n padding: 0;\n margin: 0 0 0 5px;\n text-align: center;\n font-size: 18px;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n opacity: ", ";\n pointer-events: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"], ["\n ", "\n display: flex;\n justify-content: center;\n align-items: center;\n width: 35px;\n height: 35px;\n padding: 0;\n margin: 0 0 0 5px;\n text-align: center;\n font-size: 18px;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n opacity: ", ";\n pointer-events: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"])), exports.ButtonPrimaryStyle, function (props) { return (props.disabled ? 0.4 : 1); }, function (props) { return (props.disabled ? "none" : "all"); }); +exports.LinkButton = styled_components_1.default.a(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n align-items: center;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n background-color: ", ";\n color: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n width: 35px;\n height: 35px;\n font-size: 18px;\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"], ["\n display: flex;\n justify-content: center;\n align-items: center;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n background-color: ", ";\n color: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n width: 35px;\n height: 35px;\n font-size: 18px;\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"])), function (props) { return props.theme.primary; }, function (props) { return props.theme.text_primary; }); +exports.ButtonPrimary = styled_components_1.default(exports.Button)(templateObject_5 || (templateObject_5 = __makeTemplateObject([""], [""]))); +exports.ButtonSecondary = styled_components_1.default(exports.Button)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.ButtonSecondaryStyle); +var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6; diff --git a/build/components/common/index.d.ts b/build/components/common/index.d.ts new file mode 100644 index 0000000..e22c29a --- /dev/null +++ b/build/components/common/index.d.ts @@ -0,0 +1 @@ +export * from "./Button"; diff --git a/build/components/common/index.js b/build/components/common/index.js new file mode 100644 index 0000000..344b492 --- /dev/null +++ b/build/components/common/index.js @@ -0,0 +1,13 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Button"), exports); diff --git a/build/components/icons/index.d.ts b/build/components/icons/index.d.ts new file mode 100644 index 0000000..0ddb7ff --- /dev/null +++ b/build/components/icons/index.d.ts @@ -0,0 +1,9 @@ +/// +export interface IIconProps { + color?: string; + size?: string | number | (string & {}) | undefined; + reverse?: boolean; +} +export declare const PrevDocIcon: (props: IIconProps) => JSX.Element; +export declare const NextDocIcon: (props: IIconProps) => JSX.Element; +export declare const LoadingIcon: (props: IIconProps) => JSX.Element; diff --git a/build/components/icons/index.js b/build/components/icons/index.js new file mode 100644 index 0000000..9093932 --- /dev/null +++ b/build/components/icons/index.js @@ -0,0 +1,42 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LoadingIcon = exports.NextDocIcon = exports.PrevDocIcon = void 0; +var react_1 = __importDefault(require("react")); +exports.PrevDocIcon = function (props) { + return react_1.default.createElement(DocNavIcon, __assign({}, props)); +}; +exports.NextDocIcon = function (props) { + return react_1.default.createElement(DocNavIcon, __assign({}, props, { reverse: true })); +}; +var DocNavIcon = function (props) { + var color = props.color, size = props.size, reverse = props.reverse; + return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(180deg)" : "") }, id: "arrow_left", version: "1.1", viewBox: "0 0 32 32", xmlSpace: "preserve" }, + react_1.default.createElement("path", { clipRule: "evenodd", d: "M31.106,15H3.278l8.325-8.293 c0.391-0.391,0.391-1.024,0-1.414c-0.391-0.391-1.024-0.391-1.414,0l-9.9,9.899c-0.385,0.385-0.385,1.029,0,1.414l9.9,9.9 c0.391,0.391,1.024,0.391,1.414,0c0.391-0.391,0.391-1.024,0-1.414L3.278,17h27.828c0.552,0,1-0.448,1-1 C32.106,15.448,31.658,15,31.106,15z", fill: color || "#aaa", fillRule: "evenodd", id: "Arrow_Back" }))); +}; +exports.LoadingIcon = function (props) { + var color = props.color, size = props.size; + return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", version: "1.1", id: "Icons", viewBox: "0 0 32 32", xmlSpace: "preserve", style: { alignSelf: "center", justifySelf: "center" } }, + react_1.default.createElement("g", null, + react_1.default.createElement("path", { fill: color || "#aaa", d: "M16,2c-0.6,0-1,0.4-1,1v5c0,0.6,0.4,1,1,1s1-0.4,1-1V3C17,2.4,16.6,2,16,2z" }), + react_1.default.createElement("path", { fill: color || "#aaa", d: "M7.5,6.1c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l3.5,3.5c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.5,6.1\n\t\tz" }), + react_1.default.createElement("path", { fill: color || "#aaa", d: "M9,16c0-0.6-0.4-1-1-1H3c-0.6,0-1,0.4-1,1s0.4,1,1,1h5C8.6,17,9,16.6,9,16z" }), + react_1.default.createElement("path", { fill: color || "#aaa", d: "M9.6,20.9l-3.5,3.5c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l3.5-3.5c0.4-0.4,0.4-1,0-1.4\n\t\tS10,20.6,9.6,20.9z" }), + react_1.default.createElement("path", { fill: color || "#aaa", d: "M16,23c-0.6,0-1,0.4-1,1v5c0,0.6,0.4,1,1,1s1-0.4,1-1v-5C17,23.4,16.6,23,16,23z" }), + react_1.default.createElement("path", { fill: color || "#aaa", d: "M22.4,20.9c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l3.5,3.5c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4\n\t\tL22.4,20.9z" }), + react_1.default.createElement("path", { fill: color || "#aaa", d: "M29,15h-5c-0.6,0-1,0.4-1,1s0.4,1,1,1h5c0.6,0,1-0.4,1-1S29.6,15,29,15z" }), + react_1.default.createElement("path", { fill: color || "#aaa", d: "M21.7,11.3c0.3,0,0.5-0.1,0.7-0.3l3.5-3.5c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-3.5,3.5c-0.4,0.4-0.4,1,0,1.4\n\t\tC21.1,11.2,21.4,11.3,21.7,11.3z" })))); +}; diff --git a/build/index.d.ts b/build/index.d.ts new file mode 100644 index 0000000..bd8db23 --- /dev/null +++ b/build/index.d.ts @@ -0,0 +1,26 @@ +import { CSSProperties, FC } from "react"; +import BMPRenderer from "./plugins/bmp"; +import HTMLRenderer from "./plugins/html"; +import ImageProxyRenderer from "./plugins/image"; +import JPGRenderer from "./plugins/jpg"; +import MSDocRenderer from "./plugins/msdoc"; +import MSGRenderer from "./plugins/msg"; +import PDFRenderer from "./plugins/pdf"; +import PNGRenderer from "./plugins/png"; +import TIFFRenderer from "./plugins/tiff"; +import TXTRenderer from "./plugins/txt"; +import { DocRenderer, IConfig, IDocument, ITheme } from "./types"; +export interface DocViewerProps { + documents: IDocument[]; + className?: string; + style?: CSSProperties; + config?: IConfig; + theme?: ITheme; + pluginRenderers?: DocRenderer[]; +} +declare const DocViewer: FC; +export default DocViewer; +export { DocViewerRenderers } from "./plugins"; +export * from "./types"; +export * from "./utils/fileLoaders"; +export { BMPRenderer, HTMLRenderer, ImageProxyRenderer, JPGRenderer, MSDocRenderer, MSGRenderer, PDFRenderer, PNGRenderer, TIFFRenderer, TXTRenderer, }; diff --git a/build/index.js b/build/index.js new file mode 100644 index 0000000..1f17d12 --- /dev/null +++ b/build/index.js @@ -0,0 +1,87 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TXTRenderer = exports.TIFFRenderer = exports.PNGRenderer = exports.PDFRenderer = exports.MSGRenderer = exports.MSDocRenderer = exports.JPGRenderer = exports.ImageProxyRenderer = exports.HTMLRenderer = exports.BMPRenderer = void 0; +var react_1 = __importDefault(require("react")); +var styled_components_1 = __importStar(require("styled-components")); +var HeaderBar_1 = require("./components/HeaderBar"); +var ProxyRenderer_1 = require("./components/ProxyRenderer"); +var bmp_1 = __importDefault(require("./plugins/bmp")); +exports.BMPRenderer = bmp_1.default; +var html_1 = __importDefault(require("./plugins/html")); +exports.HTMLRenderer = html_1.default; +var image_1 = __importDefault(require("./plugins/image")); +exports.ImageProxyRenderer = image_1.default; +var jpg_1 = __importDefault(require("./plugins/jpg")); +exports.JPGRenderer = jpg_1.default; +var msdoc_1 = __importDefault(require("./plugins/msdoc")); +exports.MSDocRenderer = msdoc_1.default; +var msg_1 = __importDefault(require("./plugins/msg")); +exports.MSGRenderer = msg_1.default; +var pdf_1 = __importDefault(require("./plugins/pdf")); +exports.PDFRenderer = pdf_1.default; +var png_1 = __importDefault(require("./plugins/png")); +exports.PNGRenderer = png_1.default; +var tiff_1 = __importDefault(require("./plugins/tiff")); +exports.TIFFRenderer = tiff_1.default; +var txt_1 = __importDefault(require("./plugins/txt")); +exports.TXTRenderer = txt_1.default; +var state_1 = require("./state"); +var theme_1 = require("./theme"); +var DocViewer = function (props) { + var documents = props.documents, theme = props.theme; + if (!documents || documents === undefined) { + throw new Error("Please provide an array of documents to DocViewer.\ne.g. "); + } + return (react_1.default.createElement(state_1.AppProvider, __assign({}, props), + react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme ? __assign(__assign({}, theme_1.defaultTheme), theme) : theme_1.defaultTheme }, + react_1.default.createElement(Container, __assign({ id: "react-doc-viewer", "data-testid": "react-doc-viewer" }, props), + react_1.default.createElement(HeaderBar_1.HeaderBar, null), + react_1.default.createElement(ProxyRenderer_1.ProxyRenderer, null))))); +}; +exports.default = DocViewer; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: #eee;\n"], ["\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: #eee;\n"]))); +var plugins_1 = require("./plugins"); +Object.defineProperty(exports, "DocViewerRenderers", { enumerable: true, get: function () { return plugins_1.DocViewerRenderers; } }); +__exportStar(require("./types"), exports); +__exportStar(require("./utils/fileLoaders"), exports); +var templateObject_1; diff --git a/build/plugins/bmp/index.d.ts b/build/plugins/bmp/index.d.ts new file mode 100644 index 0000000..cd12da0 --- /dev/null +++ b/build/plugins/bmp/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const BMPRenderer: DocRenderer; +export default BMPRenderer; diff --git a/build/plugins/bmp/index.js b/build/plugins/bmp/index.js new file mode 100644 index 0000000..a474945 --- /dev/null +++ b/build/plugins/bmp/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var image_1 = __importDefault(require("../image")); +var BMPRenderer = function (props) { return react_1.default.createElement(image_1.default, __assign({}, props)); }; +BMPRenderer.fileTypes = ["bmp", "image/bmp"]; +BMPRenderer.weight = 0; +exports.default = BMPRenderer; diff --git a/build/plugins/html/index.d.ts b/build/plugins/html/index.d.ts new file mode 100644 index 0000000..4bf5a19 --- /dev/null +++ b/build/plugins/html/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const HTMLRenderer: DocRenderer; +export default HTMLRenderer; diff --git a/build/plugins/html/index.js b/build/plugins/html/index.js new file mode 100644 index 0000000..a371954 --- /dev/null +++ b/build/plugins/html/index.js @@ -0,0 +1,56 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var fileLoaders_1 = require("../../utils/fileLoaders"); +var HTMLRenderer = function (_a) { + var currentDocument = _a.mainState.currentDocument; + react_1.useEffect(function () { + var b64String = currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData; + var bodyBase64 = (b64String === null || b64String === void 0 ? void 0 : b64String.replace("data:text/html;base64,", "")) || ""; + var body = window.atob(bodyBase64); + var iframeCont = document.getElementById("html-body"); + var iframe = (iframeCont === null || iframeCont === void 0 ? void 0 : iframeCont.contentWindow) && iframeCont.contentWindow; + if (!iframe) + return; + var iframeDoc = iframe.document; + iframeDoc.open(); + iframeDoc.write("" + body); + iframeDoc.close(); + }, []); + return (react_1.default.createElement(Container, { id: "html-renderer" }, + react_1.default.createElement(BodyIFrame, { id: "html-body", sandbox: "allow-same-origin" }))); +}; +exports.default = HTMLRenderer; +HTMLRenderer.fileTypes = ["htm", "html", "text/htm", "text/html"]; +HTMLRenderer.weight = 0; +HTMLRenderer.fileLoader = fileLoaders_1.dataURLFileLoader; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"], ["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"]))); +var BodyIFrame = styled_components_1.default.iframe(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"], ["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); +var templateObject_1, templateObject_2; diff --git a/build/plugins/image/index.d.ts b/build/plugins/image/index.d.ts new file mode 100644 index 0000000..c605ca3 --- /dev/null +++ b/build/plugins/image/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const ImageProxyRenderer: DocRenderer; +export default ImageProxyRenderer; diff --git a/build/plugins/image/index.js b/build/plugins/image/index.js new file mode 100644 index 0000000..47694de --- /dev/null +++ b/build/plugins/image/index.js @@ -0,0 +1,34 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var ImageProxyRenderer = function (props) { + var currentDocument = props.mainState.currentDocument, children = props.children; + if (!currentDocument) + return null; + return (react_1.default.createElement(Container, __assign({ id: "image-renderer" }, props), children || (react_1.default.createElement(Img, { id: "image-img", src: currentDocument.fileData })))); +}; +exports.default = ImageProxyRenderer; +ImageProxyRenderer.fileTypes = []; +ImageProxyRenderer.weight = 0; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background-color: #fff;\n"], ["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background-color: #fff;\n"]))); +var Img = styled_components_1.default.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-width: 95%;\n max-height: 95%;\n"], ["\n max-width: 95%;\n max-height: 95%;\n"]))); +var templateObject_1, templateObject_2; diff --git a/build/plugins/index.d.ts b/build/plugins/index.d.ts new file mode 100644 index 0000000..4648606 --- /dev/null +++ b/build/plugins/index.d.ts @@ -0,0 +1 @@ +export declare const DocViewerRenderers: import("..").DocRenderer[]; diff --git a/build/plugins/index.js b/build/plugins/index.js new file mode 100644 index 0000000..b630160 --- /dev/null +++ b/build/plugins/index.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DocViewerRenderers = void 0; +var bmp_1 = __importDefault(require("./bmp")); +var html_1 = __importDefault(require("./html")); +var jpg_1 = __importDefault(require("./jpg")); +var msdoc_1 = __importDefault(require("./msdoc")); +var msg_1 = __importDefault(require("./msg")); +var pdf_1 = __importDefault(require("./pdf")); +var png_1 = __importDefault(require("./png")); +var tiff_1 = __importDefault(require("./tiff")); +var txt_1 = __importDefault(require("./txt")); +exports.DocViewerRenderers = [ + bmp_1.default, + html_1.default, + jpg_1.default, + msdoc_1.default, + msg_1.default, + pdf_1.default, + png_1.default, + tiff_1.default, + txt_1.default, +]; diff --git a/build/plugins/jpg/index.d.ts b/build/plugins/jpg/index.d.ts new file mode 100644 index 0000000..bcbef96 --- /dev/null +++ b/build/plugins/jpg/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const JPGRenderer: DocRenderer; +export default JPGRenderer; diff --git a/build/plugins/jpg/index.js b/build/plugins/jpg/index.js new file mode 100644 index 0000000..1d36b26 --- /dev/null +++ b/build/plugins/jpg/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var image_1 = __importDefault(require("../image")); +var JPGRenderer = function (props) { return react_1.default.createElement(image_1.default, __assign({}, props)); }; +JPGRenderer.fileTypes = ["jpg", "jpeg", "image/jpg", "image/jpeg"]; +JPGRenderer.weight = 0; +exports.default = JPGRenderer; diff --git a/build/plugins/msdoc/index.d.ts b/build/plugins/msdoc/index.d.ts new file mode 100644 index 0000000..ff7d15f --- /dev/null +++ b/build/plugins/msdoc/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const MSDocRenderer: DocRenderer; +export default MSDocRenderer; diff --git a/build/plugins/msdoc/index.js b/build/plugins/msdoc/index.js new file mode 100644 index 0000000..61657b7 --- /dev/null +++ b/build/plugins/msdoc/index.js @@ -0,0 +1,52 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __spreadArrays = (this && this.__spreadArrays) || function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var MSDocRenderer = function (_a) { + var currentDocument = _a.mainState.currentDocument; + if (!currentDocument) + return null; + return (react_1.default.createElement(Container, { id: "msdoc-renderer" }, + react_1.default.createElement(IFrame, { id: "msdoc-iframe", title: "msdoc-iframe", src: "https://view.officeapps.live.com/op/embed.aspx?src=" + encodeURIComponent(currentDocument.uri), frameBorder: "0" }))); +}; +exports.default = MSDocRenderer; +var MSDocFTMaps = { + doc: ["doc", "application/msword"], + docx: [ + "docx", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + ], + xls: ["xls", "application/vnd.ms-excel"], + xlsx: [ + "xlsx", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ], + ppt: ["ppt", "application/vnd.ms-powerpoint"], + pptx: [ + "pptx", + "application/vnd.openxmlformats-officedocument.presentationml.presentation", + ], +}; +MSDocRenderer.fileTypes = __spreadArrays(MSDocFTMaps.doc, MSDocFTMaps.docx, MSDocFTMaps.xls, MSDocFTMaps.xlsx, MSDocFTMaps.ppt, MSDocFTMaps.pptx); +MSDocRenderer.weight = 0; +MSDocRenderer.fileLoader = function (_a) { + var fileLoaderComplete = _a.fileLoaderComplete; + return fileLoaderComplete(); +}; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n"], ["\n width: 100%;\n"]))); +var IFrame = styled_components_1.default.iframe(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n border: 0;\n"], ["\n width: 100%;\n height: 100%;\n border: 0;\n"]))); +var templateObject_1, templateObject_2; diff --git a/build/plugins/msg/index.d.ts b/build/plugins/msg/index.d.ts new file mode 100644 index 0000000..1d32d7e --- /dev/null +++ b/build/plugins/msg/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const MSGRenderer: DocRenderer; +export default MSGRenderer; diff --git a/build/plugins/msg/index.js b/build/plugins/msg/index.js new file mode 100644 index 0000000..eda7e7e --- /dev/null +++ b/build/plugins/msg/index.js @@ -0,0 +1,89 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var wl_msg_reader_1 = require("wl-msg-reader"); +var fileLoaders_1 = require("../../utils/fileLoaders"); +var MSGRenderer = function (_a) { + var _b; + var currentDocument = _a.mainState.currentDocument; + var _c = react_1.useState(), fileData = _c[0], setFileData = _c[1]; + react_1.useEffect(function () { + if (!currentDocument || !currentDocument.fileData) + return; + var _fd = new wl_msg_reader_1.MSGReader(currentDocument.fileData).getFileData(); + setFileData(_fd); + }, [currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData]); + react_1.useEffect(function () { + if (!fileData || fileData.hasOwnProperty("error")) + return; + var iframeCont = document.getElementById("msg-body"); + var iframe = (iframeCont === null || iframeCont === void 0 ? void 0 : iframeCont.contentWindow) && iframeCont.contentWindow; + if (!iframe) + return; + var iframeDoc = iframe.document; + var body = fileData.body.replace(/(\r\n|\n|\r)/gm, "
"); + iframeDoc.open(); + iframeDoc.write("" + body); + iframeDoc.close(); + }, [fileData]); + if (!fileData || fileData.hasOwnProperty("error")) { + return react_1.default.createElement("span", null, (_b = fileData) === null || _b === void 0 ? void 0 : _b.error); + } + var _d = fileData, recipients = _d.recipients, subject = _d.subject, senderEmail = _d.senderEmail, senderName = _d.senderName; + return (react_1.default.createElement(Container, { id: "msg-renderer" }, + react_1.default.createElement("h2", { id: "msg-subject-title", style: { marginBottom: 0 } }, subject), + react_1.default.createElement(Sender, { name: senderName, email: senderEmail }), + react_1.default.createElement(RecipientContainer, { id: "msg-recipient" }, + react_1.default.createElement("h3", { id: "msg-recipient-title" }, "Recipients"), + react_1.default.createElement("ul", { id: "msg-recipient-ul" }, recipients.map(function (r, i) { return (react_1.default.createElement("li", { key: i, id: "msg-recipient-li" }, + react_1.default.createElement("span", { id: "msg-recipient-name" }, r.name), + r.hasOwnProperty("email") && (react_1.default.createElement("span", { id: "msg-recipient-email" }, + " - ", + r.email)))); }))), + react_1.default.createElement(BodyIFrame, { id: "msg-body", sandbox: "allow-same-origin" }))); +}; +var Sender = function (_a) { + var name = _a.name, email = _a.email; + if (!name && !email) + return null; + return (react_1.default.createElement(SenderContainer, { id: "msg-sender" }, + react_1.default.createElement("h3", { id: "msg-sender-title" }, "Sender"), + name !== undefined && react_1.default.createElement("div", { id: "msg-sender-name" }, name), + email !== undefined && react_1.default.createElement("div", { id: "msg-sender-email" }, email))); +}; +exports.default = MSGRenderer; +MSGRenderer.fileTypes = ["msg", "application/vnd.ms-outlook"]; +MSGRenderer.weight = 0; +MSGRenderer.fileLoader = fileLoaders_1.arrayBufferFileLoader; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"], ["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"]))); +var SenderContainer = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 0 15px 15px 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"], ["\n padding: 0 15px 15px 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); +var RecipientContainer = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n padding: 0 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"], ["\n padding: 0 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); +var BodyIFrame = styled_components_1.default.iframe(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"], ["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); +var templateObject_1, templateObject_2, templateObject_3, templateObject_4; diff --git a/build/plugins/pdf/components/PDFControls.d.ts b/build/plugins/pdf/components/PDFControls.d.ts new file mode 100644 index 0000000..0d3e451 --- /dev/null +++ b/build/plugins/pdf/components/PDFControls.d.ts @@ -0,0 +1,3 @@ +import { FC } from "react"; +declare const PDFControls: FC<{}>; +export default PDFControls; diff --git a/build/plugins/pdf/components/PDFControls.js b/build/plugins/pdf/components/PDFControls.js new file mode 100644 index 0000000..7681bb5 --- /dev/null +++ b/build/plugins/pdf/components/PDFControls.js @@ -0,0 +1,57 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var common_1 = require("../../../components/common"); +var state_1 = require("../state"); +var actions_1 = require("../state/actions"); +var reducer_1 = require("../state/reducer"); +var icons_1 = require("./icons"); +var PDFPagination_1 = __importDefault(require("./PDFPagination")); +var PDFControls = function () { + var _a = react_1.useContext(state_1.PDFContext), _b = _a.state, mainState = _b.mainState, paginated = _b.paginated, zoomLevel = _b.zoomLevel, numPages = _b.numPages, dispatch = _a.dispatch; + var currentDocument = (mainState === null || mainState === void 0 ? void 0 : mainState.currentDocument) || null; + return (react_1.default.createElement(Container, { id: "pdf-controls" }, + paginated && numPages > 1 && react_1.default.createElement(PDFPagination_1.default, null), + (currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData) && (react_1.default.createElement(DownloadButton, { id: "pdf-download", href: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData, download: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri }, + react_1.default.createElement(icons_1.DownloadPDFIcon, { color: "#000", size: "75%" }))), + react_1.default.createElement(ControlButton, { id: "pdf-zoom-out", onMouseDown: function () { return dispatch(actions_1.setZoomLevel(zoomLevel - 0.1)); } }, + react_1.default.createElement(icons_1.ZoomOutPDFIcon, { color: "#000", size: "80%" })), + react_1.default.createElement(ControlButton, { id: "pdf-zoom-in", onMouseDown: function () { return dispatch(actions_1.setZoomLevel(zoomLevel + 0.1)); } }, + react_1.default.createElement(icons_1.ZoomInPDFIcon, { color: "#000", size: "80%" })), + react_1.default.createElement(ControlButton, { id: "pdf-zoom-reset", onMouseDown: function () { return dispatch(actions_1.setZoomLevel(reducer_1.initialPDFState.zoomLevel)); }, disabled: zoomLevel === reducer_1.initialPDFState.zoomLevel }, + react_1.default.createElement(icons_1.ResetZoomPDFIcon, { color: "#000", size: "70%" })), + numPages > 1 && (react_1.default.createElement(ControlButton, { id: "pdf-toggle-pagination", onMouseDown: function () { return dispatch(actions_1.setPDFPaginated(!paginated)); } }, + react_1.default.createElement(icons_1.TogglePaginationPDFIcon, { color: "#000", size: "70%", reverse: paginated }))))); +}; +exports.default = PDFControls; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n justify-content: flex-end;\n padding: 8px;\n background-color: ", ";\n box-shadow: 0px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n padding: 6px;\n }\n"], ["\n display: flex;\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n justify-content: flex-end;\n padding: 8px;\n background-color: ", ";\n box-shadow: 0px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n padding: 6px;\n }\n"])), function (props) { return props.theme.tertiary; }); +var ControlButton = styled_components_1.default(common_1.Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); +var DownloadButton = styled_components_1.default(common_1.LinkButton)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); +var templateObject_1, templateObject_2, templateObject_3; diff --git a/build/plugins/pdf/components/PDFPagination.d.ts b/build/plugins/pdf/components/PDFPagination.d.ts new file mode 100644 index 0000000..bac8658 --- /dev/null +++ b/build/plugins/pdf/components/PDFPagination.d.ts @@ -0,0 +1,3 @@ +import { FC } from "react"; +declare const PDFPagination: FC<{}>; +export default PDFPagination; diff --git a/build/plugins/pdf/components/PDFPagination.js b/build/plugins/pdf/components/PDFPagination.js new file mode 100644 index 0000000..fdec41b --- /dev/null +++ b/build/plugins/pdf/components/PDFPagination.js @@ -0,0 +1,53 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var common_1 = require("../../../components/common"); +var state_1 = require("../state"); +var actions_1 = require("../state/actions"); +var icons_1 = require("./icons"); +var PDFPagination = function () { + var _a = react_1.useContext(state_1.PDFContext), _b = _a.state, currentPage = _b.currentPage, numPages = _b.numPages, dispatch = _a.dispatch; + return (react_1.default.createElement(Container, { id: "pdf-pagination" }, + react_1.default.createElement(PageNavButtonLeft, { id: "pdf-pagination-prev", onClick: function () { return dispatch(actions_1.setCurrentPage(currentPage - 1)); }, disabled: currentPage === 1 }, + react_1.default.createElement(icons_1.PrevPDFNavIcon, { color: "#000", size: "50%" })), + react_1.default.createElement(PageTag, { id: "pdf-pagination-info" }, + "Page ", + currentPage, + "/", + numPages), + react_1.default.createElement(PageNavButtonRight, { id: "pdf-pagination-next", onClick: function () { return dispatch(actions_1.setCurrentPage(currentPage + 1)); }, disabled: currentPage >= numPages }, + react_1.default.createElement(icons_1.NextPDFNavIcon, { color: "#000", size: "50%" })))); +}; +exports.default = PDFPagination; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n"], ["\n display: flex;\n align-items: center;\n"]))); +var PageNavButtonLeft = styled_components_1.default(common_1.Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n margin: 0 5px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n margin: 0 5px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); +var PageNavButtonRight = styled_components_1.default(PageNavButtonLeft)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin: 0 20px 0 5px;\n"], ["\n margin: 0 20px 0 5px;\n"]))); +var PageTag = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"], ["\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"])), function (props) { return props.theme.text_primary; }); +var templateObject_1, templateObject_2, templateObject_3, templateObject_4; diff --git a/build/plugins/pdf/components/icons/index.d.ts b/build/plugins/pdf/components/icons/index.d.ts new file mode 100644 index 0000000..291af6a --- /dev/null +++ b/build/plugins/pdf/components/icons/index.d.ts @@ -0,0 +1,9 @@ +/// +import { IIconProps } from "../../../../components/icons"; +export declare const PrevPDFNavIcon: (props: IIconProps) => JSX.Element; +export declare const NextPDFNavIcon: (props: IIconProps) => JSX.Element; +export declare const DownloadPDFIcon: (props: IIconProps) => JSX.Element; +export declare const ZoomInPDFIcon: (props: IIconProps) => JSX.Element; +export declare const ZoomOutPDFIcon: (props: IIconProps) => JSX.Element; +export declare const ResetZoomPDFIcon: (props: IIconProps) => JSX.Element; +export declare const TogglePaginationPDFIcon: (props: IIconProps) => JSX.Element; diff --git a/build/plugins/pdf/components/icons/index.js b/build/plugins/pdf/components/icons/index.js new file mode 100644 index 0000000..ec70fc6 --- /dev/null +++ b/build/plugins/pdf/components/icons/index.js @@ -0,0 +1,66 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TogglePaginationPDFIcon = exports.ResetZoomPDFIcon = exports.ZoomOutPDFIcon = exports.ZoomInPDFIcon = exports.DownloadPDFIcon = exports.NextPDFNavIcon = exports.PrevPDFNavIcon = void 0; +var react_1 = __importDefault(require("react")); +exports.PrevPDFNavIcon = function (props) { + return react_1.default.createElement(PDFNavArrow, __assign({}, props, { reverse: true })); +}; +exports.NextPDFNavIcon = function (props) { + return react_1.default.createElement(PDFNavArrow, __assign({}, props)); +}; +var PDFNavArrow = function (props) { + var color = props.color, size = props.size, reverse = props.reverse; + return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(180deg)" : "") }, viewBox: "0 0 12 12", version: "1.1" }, + react_1.default.createElement("g", { id: "Icons", stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" }, + react_1.default.createElement("g", { id: "Rounded", transform: "translate(-548.000000, -1000.000000)" }, + react_1.default.createElement("g", { id: "AV", transform: "translate(100.000000, 852.000000)" }, + react_1.default.createElement("g", { id: "-Round-/-AV-/-skip_next", transform: "translate(442.000000, 142.000000)" }, + react_1.default.createElement("g", null, + react_1.default.createElement("rect", { id: "Rectangle-Copy-52", x: "0", y: "0", width: "24", height: "24" }), + react_1.default.createElement("path", { d: "M7.58,16.89 L13.35,12.82 C13.91,12.42 13.91,11.58 13.35,11.19 L7.58,7.11 C6.91,6.65 6,7.12 6,7.93 L6,16.07 C6,16.88 6.91,17.35 7.58,16.89 Z M16,7 L16,17 C16,17.55 16.45,18 17,18 C17.55,18 18,17.55 18,17 L18,7 C18,6.45 17.55,6 17,6 C16.45,6 16,6.45 16,7 Z", id: "icon_color", fill: color || "#aaa" })))))))); +}; +exports.DownloadPDFIcon = function (props) { + var color = props.color, size = props.size, reverse = props.reverse; + return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(180deg)" : "") }, id: "Layer_1", viewBox: "0 0 24 24" }, + react_1.default.createElement("path", { d: "M20.57,9.43A8,8,0,0,0,5.26,10,5,5,0,1,0,5,20h5V18H5a3,3,0,0,1,0-6,3.1,3.1,0,0,1,.79.12l1.12.31.14-1.15a6,6,0,0,1,11.74-.82l.15.54.54.16A3.46,3.46,0,0,1,22,14.5,3.5,3.5,0,0,1,18.5,18H16v2h2.5A5.48,5.48,0,0,0,20.57,9.43Z", fill: color || "#aaa" }), + react_1.default.createElement("polygon", { points: "12 11 12 15.59 10.71 14.29 9.29 15.71 13 19.41 16.71 15.71 15.29 14.29 14 15.59 14 11 12 11", fill: color || "#aaa" }))); +}; +exports.ZoomInPDFIcon = function (props) { + return react_1.default.createElement(ZoomPDFIcon, __assign({}, props)); +}; +exports.ZoomOutPDFIcon = function (props) { + return react_1.default.createElement(ZoomPDFIcon, __assign({}, props, { reverse: true })); +}; +var ZoomPDFIcon = function (props) { + var color = props.color, size = props.size, reverse = props.reverse; + return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", viewBox: "0 0 32 32", version: "1.1" }, + react_1.default.createElement("g", { id: "Page-1", stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" }, + react_1.default.createElement("g", { id: "search-plus-icon", fill: color || "#aaa" }, + react_1.default.createElement("path", { id: "search-plus", d: reverse + ? "M 13 13 L 16 13 L 19 13 L 19 16 L 16 16 L 13 16 L 10 16 L 10 13 Z M 19.4271 21.4271 C 18.0372 22.4175 16.3367 23 14.5 23 C 9.8056 23 6 19.1944 6 14.5 C 6 9.8056 9.8056 6 14.5 6 C 19.1944 6 23 9.8056 23 14.5 C 23 16.3367 22.4175 18.0372 21.4271 19.4271 L 27.0119 25.0119 C 27.5621 25.5621 27.5575 26.4425 27.0117 26.9883 L 26.9883 27.0117 C 26.4439 27.5561 25.5576 27.5576 25.0119 27.0119 L 19.4271 21.4271 L 19.4271 21.4271 L 19.4271 21.4271 Z M 14.5 21 C 18.0899 21 21 18.0899 21 14.5 C 21 10.9101 18.0899 8 14.5 8 C 10.9101 8 8 10.9101 8 14.5 C 8 18.0899 10.9101 21 14.5 21 L 14.5 21 Z" + : "M 13 13 L 13 10 L 16 10 L 16 13 L 19 13 L 19 16 L 16 16 L 16 19 L 13 19 L 13 16 L 10 16 L 10 13 Z M 19.4271 21.4271 C 18.0372 22.4175 16.3367 23 14.5 23 C 9.8056 23 6 19.1944 6 14.5 C 6 9.8056 9.8056 6 14.5 6 C 19.1944 6 23 9.8056 23 14.5 C 23 16.3367 22.4175 18.0372 21.4271 19.4271 L 27.0119 25.0119 C 27.5621 25.5621 27.5575 26.4425 27.0117 26.9883 L 26.9883 27.0117 C 26.4439 27.5561 25.5576 27.5576 25.0119 27.0119 L 19.4271 21.4271 L 19.4271 21.4271 L 19.4271 21.4271 Z M 14.5 21 C 18.0899 21 21 18.0899 21 14.5 C 21 10.9101 18.0899 8 14.5 8 C 10.9101 8 8 10.9101 8 14.5 C 8 18.0899 10.9101 21 14.5 21 L 14.5 21 Z" }))))); +}; +exports.ResetZoomPDFIcon = function (props) { + var color = props.color, size = props.size; + return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", viewBox: "0 0 24 24" }, + react_1.default.createElement("path", { fill: color || "#aaa", d: "M9.29,13.29,4,18.59V17a1,1,0,0,0-2,0v4a1,1,0,0,0,.08.38,1,1,0,0,0,.54.54A1,1,0,0,0,3,22H7a1,1,0,0,0,0-2H5.41l5.3-5.29a1,1,0,0,0-1.42-1.42ZM5.41,4H7A1,1,0,0,0,7,2H3a1,1,0,0,0-.38.08,1,1,0,0,0-.54.54A1,1,0,0,0,2,3V7A1,1,0,0,0,4,7V5.41l5.29,5.3a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42ZM21,16a1,1,0,0,0-1,1v1.59l-5.29-5.3a1,1,0,0,0-1.42,1.42L18.59,20H17a1,1,0,0,0,0,2h4a1,1,0,0,0,.38-.08,1,1,0,0,0,.54-.54A1,1,0,0,0,22,21V17A1,1,0,0,0,21,16Zm.92-13.38a1,1,0,0,0-.54-.54A1,1,0,0,0,21,2H17a1,1,0,0,0,0,2h1.59l-5.3,5.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L20,5.41V7a1,1,0,0,0,2,0V3A1,1,0,0,0,21.92,2.62Z" }))); +}; +exports.TogglePaginationPDFIcon = function (props) { + var color = props.color, size = props.size, reverse = props.reverse; + return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(90deg)" : "") }, version: "1.1", id: "Scroll_1", viewBox: "0 0 297 297", xmlSpace: "preserve" }, + react_1.default.createElement("path", { fill: color || "#aaa", d: "M206.004,200.723h-31.231V96.277h31.231c0.005,0,0.014,0,0.019,0c5.289,0,9.575-4.287,9.575-9.574\n c0-2.342-0.841-4.488-2.236-6.151L156.168,3.851C154.36,1.428,151.515,0,148.492,0c-3.023,0-5.868,1.428-7.675,3.851L83.302,80.98\n c-2.166,2.902-2.507,6.779-0.883,10.017c1.624,3.236,4.936,5.28,8.559,5.28h31.231v104.445H90.978c-3.623,0-6.934,2.044-8.559,5.28\n c-1.624,3.237-1.283,7.114,0.883,10.017l57.513,77.129c1.808,2.424,4.652,3.852,7.675,3.852c3.023,0,5.868-1.428,7.676-3.852\n l57.514-77.129c2.164-2.902,2.507-6.779,0.883-10.017C212.938,202.767,209.627,200.723,206.004,200.723z" }))); +}; diff --git a/build/plugins/pdf/components/pages/PDFAllPages.d.ts b/build/plugins/pdf/components/pages/PDFAllPages.d.ts new file mode 100644 index 0000000..df2a8a8 --- /dev/null +++ b/build/plugins/pdf/components/pages/PDFAllPages.d.ts @@ -0,0 +1,6 @@ +import { FC } from "react"; +interface Props { + pageNum?: number; +} +export declare const PDFAllPages: FC; +export {}; diff --git a/build/plugins/pdf/components/pages/PDFAllPages.js b/build/plugins/pdf/components/pages/PDFAllPages.js new file mode 100644 index 0000000..a62d162 --- /dev/null +++ b/build/plugins/pdf/components/pages/PDFAllPages.js @@ -0,0 +1,36 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PDFAllPages = void 0; +var react_1 = __importStar(require("react")); +var state_1 = require("../../state"); +var PDFSinglePage_1 = __importDefault(require("./PDFSinglePage")); +exports.PDFAllPages = function (props) { + var numPages = react_1.useContext(state_1.PDFContext).state.numPages; + var PagesArray = []; + for (var i = 0; i < numPages; i++) { + PagesArray.push(react_1.default.createElement(PDFSinglePage_1.default, { key: i + 1, pageNum: i + 1 })); + } + return react_1.default.createElement(react_1.default.Fragment, null, PagesArray); +}; diff --git a/build/plugins/pdf/components/pages/PDFPages.d.ts b/build/plugins/pdf/components/pages/PDFPages.d.ts new file mode 100644 index 0000000..3540477 --- /dev/null +++ b/build/plugins/pdf/components/pages/PDFPages.d.ts @@ -0,0 +1,3 @@ +import { FC } from "react"; +declare const PDFPages: FC<{}>; +export default PDFPages; diff --git a/build/plugins/pdf/components/pages/PDFPages.js b/build/plugins/pdf/components/pages/PDFPages.js new file mode 100644 index 0000000..5f3c782 --- /dev/null +++ b/build/plugins/pdf/components/pages/PDFPages.js @@ -0,0 +1,52 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var react_pdf_1 = require("react-pdf"); +var styled_components_1 = __importDefault(require("styled-components")); +var state_1 = require("../../state"); +var actions_1 = require("../../state/actions"); +var reducer_1 = require("../../state/reducer"); +var PDFAllPages_1 = require("./PDFAllPages"); +var PDFSinglePage_1 = __importDefault(require("./PDFSinglePage")); +var PDFPages = function () { + var _a = react_1.useContext(state_1.PDFContext), _b = _a.state, mainState = _b.mainState, paginated = _b.paginated, dispatch = _a.dispatch; + var currentDocument = (mainState === null || mainState === void 0 ? void 0 : mainState.currentDocument) || null; + react_1.useEffect(function () { + dispatch(actions_1.setNumPages(reducer_1.initialPDFState.numPages)); + }, [currentDocument]); + if (!currentDocument || currentDocument.fileData === undefined) + return null; + return (react_1.default.createElement(DocumentPDF, { file: currentDocument.fileData, onLoadSuccess: function (_a) { + var numPages = _a.numPages; + return dispatch(actions_1.setNumPages(numPages)); + }, loading: react_1.default.createElement("span", null, "Loading...") }, paginated ? react_1.default.createElement(PDFSinglePage_1.default, null) : react_1.default.createElement(PDFAllPages_1.PDFAllPages, null))); +}; +var DocumentPDF = styled_components_1.default(react_pdf_1.Document)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n"], ["\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n"]))); +exports.default = PDFPages; +var templateObject_1; diff --git a/build/plugins/pdf/components/pages/PDFSinglePage.d.ts b/build/plugins/pdf/components/pages/PDFSinglePage.d.ts new file mode 100644 index 0000000..b06264d --- /dev/null +++ b/build/plugins/pdf/components/pages/PDFSinglePage.d.ts @@ -0,0 +1,6 @@ +import { FC } from "react"; +interface Props { + pageNum?: number; +} +declare const PDFSinglePage: FC; +export default PDFSinglePage; diff --git a/build/plugins/pdf/components/pages/PDFSinglePage.js b/build/plugins/pdf/components/pages/PDFSinglePage.js new file mode 100644 index 0000000..8f005a8 --- /dev/null +++ b/build/plugins/pdf/components/pages/PDFSinglePage.js @@ -0,0 +1,49 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var react_pdf_1 = require("react-pdf"); +var styled_components_1 = __importDefault(require("styled-components")); +var state_1 = require("../../state"); +var PDFSinglePage = function (props) { + var pageNum = props.pageNum; + var _a = react_1.useContext(state_1.PDFContext).state, mainState = _a.mainState, paginated = _a.paginated, zoomLevel = _a.zoomLevel, numPages = _a.numPages, currentPage = _a.currentPage; + var rendererRect = (mainState === null || mainState === void 0 ? void 0 : mainState.rendererRect) || null; + var _pageNum = pageNum || currentPage; + return (react_1.default.createElement(PageWrapper, { id: "pdf-page-wrapper", last: _pageNum >= numPages }, + !paginated && (react_1.default.createElement(PageTag, { id: "pdf-page-info" }, + "Page ", + _pageNum, + "/", + numPages)), + react_1.default.createElement(react_pdf_1.Page, { pageNumber: _pageNum || currentPage, scale: zoomLevel, height: ((rendererRect === null || rendererRect === void 0 ? void 0 : rendererRect.height) || 100) - 100, width: ((rendererRect === null || rendererRect === void 0 ? void 0 : rendererRect.width) || 100) - 100 }))); +}; +exports.default = PDFSinglePage; +var PageWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin: 20px 0;\n"], ["\n margin: 20px 0;\n"]))); +var PageTag = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 0 0 10px 10px;\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"], ["\n padding: 0 0 10px 10px;\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"])), function (props) { return props.theme.text_tertiary; }); +var templateObject_1, templateObject_2; diff --git a/build/plugins/pdf/index.d.ts b/build/plugins/pdf/index.d.ts new file mode 100644 index 0000000..6330068 --- /dev/null +++ b/build/plugins/pdf/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const PDFRenderer: DocRenderer; +export default PDFRenderer; diff --git a/build/plugins/pdf/index.js b/build/plugins/pdf/index.js new file mode 100644 index 0000000..a5b8053 --- /dev/null +++ b/build/plugins/pdf/index.js @@ -0,0 +1,52 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// @ts-ignore +var pdfjsWorker = __importStar(require("pdfjs-dist/build/pdf.worker.entry")); +var react_1 = __importDefault(require("react")); +var react_pdf_1 = require("react-pdf"); +var styled_components_1 = __importDefault(require("styled-components")); +var PDFPages_1 = __importDefault(require("./components/pages/PDFPages")); +var PDFControls_1 = __importDefault(require("./components/PDFControls")); +var state_1 = require("./state"); +react_pdf_1.pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker; +var PDFRenderer = function (_a) { + var mainState = _a.mainState; + return (react_1.default.createElement(state_1.PDFProvider, { mainState: mainState }, + react_1.default.createElement(Container, { id: "pdf-renderer", "data-testid": "pdf-renderer" }, + react_1.default.createElement(PDFControls_1.default, null), + react_1.default.createElement(PDFPages_1.default, null)))); +}; +exports.default = PDFRenderer; +PDFRenderer.fileTypes = ["pdf", "application/pdf"]; +PDFRenderer.weight = 0; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n\n /* width */\n &::-webkit-scrollbar {\n ", ";\n }\n /* Track */\n &::-webkit-scrollbar-track {\n /* background: ", "; */\n }\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: ", ";\n }\n /* Handle on hover */\n &::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"], ["\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n\n /* width */\n &::-webkit-scrollbar {\n ", + ";\n }\n /* Track */\n &::-webkit-scrollbar-track {\n /* background: ", "; */\n }\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: ", ";\n }\n /* Handle on hover */\n &::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"])), function (props) { + return props.theme.disableThemeScrollbar ? "" : "width: 10px"; +}, function (props) { return props.theme.secondary; }, function (props) { return props.theme.tertiary; }, function (props) { return props.theme.primary; }); +var templateObject_1; diff --git a/build/plugins/pdf/state/actions.d.ts b/build/plugins/pdf/state/actions.d.ts new file mode 100644 index 0000000..5199104 --- /dev/null +++ b/build/plugins/pdf/state/actions.d.ts @@ -0,0 +1,25 @@ +export declare const SET_ZOOM_LEVEL: string; +export interface SetZoomLevel { + type: typeof SET_ZOOM_LEVEL; + value: number; +} +export declare const setZoomLevel: (value: number) => SetZoomLevel; +export declare const SET_PDF_PAGINATED: string; +export interface SetPDFPaginated { + type: typeof SET_PDF_PAGINATED; + value: boolean; +} +export declare const setPDFPaginated: (value: boolean) => SetPDFPaginated; +export declare const SET_NUM_PAGES: string; +export interface SetNumPages { + type: typeof SET_NUM_PAGES; + value: number; +} +export declare const setNumPages: (value: number) => SetNumPages; +export declare const SET_CURRENT_PAGE: string; +export interface SetCurrentPage { + type: typeof SET_CURRENT_PAGE; + value: number; +} +export declare const setCurrentPage: (value: number) => SetCurrentPage; +export declare type PDFActions = SetZoomLevel | SetPDFPaginated | SetNumPages | SetCurrentPage; diff --git a/build/plugins/pdf/state/actions.js b/build/plugins/pdf/state/actions.js new file mode 100644 index 0000000..7644b0d --- /dev/null +++ b/build/plugins/pdf/state/actions.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setCurrentPage = exports.SET_CURRENT_PAGE = exports.setNumPages = exports.SET_NUM_PAGES = exports.setPDFPaginated = exports.SET_PDF_PAGINATED = exports.setZoomLevel = exports.SET_ZOOM_LEVEL = void 0; +// SET_ZOOM_LEVEL +exports.SET_ZOOM_LEVEL = "SET_ZOOM_LEVEL"; +exports.setZoomLevel = function (value) { return ({ + type: exports.SET_ZOOM_LEVEL, + value: value, +}); }; +// SET_PAGINATED +exports.SET_PDF_PAGINATED = "SET_PDF_PAGINATED"; +exports.setPDFPaginated = function (value) { return ({ + type: exports.SET_PDF_PAGINATED, + value: value, +}); }; +// SET_NUM_PAGES +exports.SET_NUM_PAGES = "SET_NUM_PAGES"; +exports.setNumPages = function (value) { return ({ + type: exports.SET_NUM_PAGES, + value: value, +}); }; +// SET_CURRENT_PAGE +exports.SET_CURRENT_PAGE = "SET_CURRENT_PAGE"; +exports.setCurrentPage = function (value) { return ({ + type: exports.SET_CURRENT_PAGE, + value: value, +}); }; diff --git a/build/plugins/pdf/state/index.d.ts b/build/plugins/pdf/state/index.d.ts new file mode 100644 index 0000000..53b0dcc --- /dev/null +++ b/build/plugins/pdf/state/index.d.ts @@ -0,0 +1,12 @@ +import React, { Dispatch, FC } from "react"; +import { IMainState } from "../../../state/reducer"; +import { PDFActions } from "./actions"; +import { IPDFState } from "./reducer"; +declare const PDFContext: React.Context<{ + state: IPDFState; + dispatch: Dispatch; +}>; +declare const PDFProvider: FC<{ + mainState: IMainState; +}>; +export { PDFContext, PDFProvider }; diff --git a/build/plugins/pdf/state/index.js b/build/plugins/pdf/state/index.js new file mode 100644 index 0000000..628e2c0 --- /dev/null +++ b/build/plugins/pdf/state/index.js @@ -0,0 +1,43 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PDFProvider = exports.PDFContext = void 0; +var react_1 = __importStar(require("react")); +var reducer_1 = require("./reducer"); +var PDFContext = react_1.createContext({ state: reducer_1.initialPDFState, dispatch: function () { return null; } }); +exports.PDFContext = PDFContext; +var PDFProvider = function (_a) { + var children = _a.children, mainState = _a.mainState; + var _b = react_1.useReducer(reducer_1.reducer, __assign(__assign({}, reducer_1.initialPDFState), { mainState: mainState })), state = _b[0], dispatch = _b[1]; + return (react_1.default.createElement(PDFContext.Provider, { value: { state: state, dispatch: dispatch } }, children)); +}; +exports.PDFProvider = PDFProvider; diff --git a/build/plugins/pdf/state/reducer.d.ts b/build/plugins/pdf/state/reducer.d.ts new file mode 100644 index 0000000..512d73b --- /dev/null +++ b/build/plugins/pdf/state/reducer.d.ts @@ -0,0 +1,12 @@ +import { IMainState } from "../../../state/reducer"; +import { PDFActions as PDFStateActions } from "./actions"; +export declare type IPDFState = { + zoomLevel: number; + paginated: boolean; + numPages: number; + currentPage: number; + mainState?: IMainState; +}; +export declare const initialPDFState: IPDFState; +export declare type PDFStateReducer = (state: IPDFState, action: PDFStateActions) => IPDFState; +export declare const reducer: PDFStateReducer; diff --git a/build/plugins/pdf/state/reducer.js b/build/plugins/pdf/state/reducer.js new file mode 100644 index 0000000..30963b7 --- /dev/null +++ b/build/plugins/pdf/state/reducer.js @@ -0,0 +1,44 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.reducer = exports.initialPDFState = void 0; +var actions_1 = require("./actions"); +exports.initialPDFState = { + zoomLevel: 1, + paginated: true, + numPages: 0, + currentPage: 1, +}; +exports.reducer = function (state, action) { + if (state === void 0) { state = exports.initialPDFState; } + switch (action.type) { + case actions_1.SET_ZOOM_LEVEL: { + var value = action.value; + return __assign(__assign({}, state), { zoomLevel: value }); + } + case actions_1.SET_PDF_PAGINATED: { + var value = action.value; + return __assign(__assign({}, state), { paginated: value }); + } + case actions_1.SET_NUM_PAGES: { + var value = action.value; + return __assign(__assign({}, state), { numPages: value }); + } + case actions_1.SET_CURRENT_PAGE: { + var value = action.value; + return __assign(__assign({}, state), { currentPage: value }); + } + default: + return state; + } +}; diff --git a/build/plugins/png/index.d.ts b/build/plugins/png/index.d.ts new file mode 100644 index 0000000..8a56877 --- /dev/null +++ b/build/plugins/png/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const PNGRenderer: DocRenderer; +export default PNGRenderer; diff --git a/build/plugins/png/index.js b/build/plugins/png/index.js new file mode 100644 index 0000000..80af914 --- /dev/null +++ b/build/plugins/png/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var image_1 = __importDefault(require("../image")); +var StyledImageRenderer = styled_components_1.default(image_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n height: 100%;\n background-color: white;\n background-image: linear-gradient(45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(-45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #e0e0e0 75%),\n linear-gradient(-45deg, transparent 75%, #e0e0e0 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n"], ["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n height: 100%;\n background-color: white;\n background-image: linear-gradient(45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(-45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #e0e0e0 75%),\n linear-gradient(-45deg, transparent 75%, #e0e0e0 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n"]))); +var PNGRenderer = function (props) { return react_1.default.createElement(StyledImageRenderer, __assign({}, props)); }; +PNGRenderer.fileTypes = ["png", "image/png"]; +PNGRenderer.weight = 0; +exports.default = PNGRenderer; +var templateObject_1; diff --git a/build/plugins/tiff/index.d.ts b/build/plugins/tiff/index.d.ts new file mode 100644 index 0000000..60bbff7 --- /dev/null +++ b/build/plugins/tiff/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const TIFFRenderer: DocRenderer; +export default TIFFRenderer; diff --git a/build/plugins/tiff/index.js b/build/plugins/tiff/index.js new file mode 100644 index 0000000..9226722 --- /dev/null +++ b/build/plugins/tiff/index.js @@ -0,0 +1,73 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var fileLoaders_1 = require("../../utils/fileLoaders"); +var image_1 = __importDefault(require("../image")); +var tiffToCanvas_1 = require("./tiffToCanvas"); +var TIFFRenderer = function (props) { + var currentDocument = props.mainState.currentDocument; + var _a = react_1.useState(false), loadedCanvas = _a[0], setLoadedCanvas = _a[1]; + var _b = react_1.useState(false), corruptedFile = _b[0], setCorruptedFile = _b[1]; + react_1.useEffect(function () { + if (!currentDocument || loadedCanvas) + return; + var canvas = document.getElementById("tiff-img"); + try { + canvas && tiffToCanvas_1.parseTIFF(currentDocument.fileData, canvas); + setLoadedCanvas(true); + } + catch (error) { + setCorruptedFile(true); + } + }, []); + if (corruptedFile) { + return (react_1.default.createElement(image_1.default, __assign({}, props), + react_1.default.createElement("div", null, "Your file is corrupted. Please check it on your machine."))); + } + return (react_1.default.createElement(image_1.default, __assign({}, props), + react_1.default.createElement(Canvas, { id: "tiff-img" }))); +}; +TIFFRenderer.fileTypes = ["tif", "tiff", "image/tif", "image/tiff"]; +TIFFRenderer.weight = 0; +TIFFRenderer.fileLoader = fileLoaders_1.arrayBufferFileLoader; +exports.default = TIFFRenderer; +var Canvas = styled_components_1.default.canvas(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n max-width: 95%;\n max-height: 95%;\n"], ["\n max-width: 95%;\n max-height: 95%;\n"]))); +var templateObject_1; diff --git a/build/plugins/tiff/tiffToCanvas.d.ts b/build/plugins/tiff/tiffToCanvas.d.ts new file mode 100644 index 0000000..4c5b05c --- /dev/null +++ b/build/plugins/tiff/tiffToCanvas.d.ts @@ -0,0 +1 @@ +export function parseTIFF(tiffArrayBuffer: any, _canvas: any): HTMLCanvasElement | undefined; diff --git a/build/plugins/tiff/tiffToCanvas.js b/build/plugins/tiff/tiffToCanvas.js new file mode 100644 index 0000000..17c159c --- /dev/null +++ b/build/plugins/tiff/tiffToCanvas.js @@ -0,0 +1,601 @@ +"use strict"; +var _this = this; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseTIFF = void 0; +var tiffDataView = undefined; +var littleEndian = undefined; +var fileDirectories = []; +var isLittleEndian = function () { + // Get byte order mark. + var BOM = getBytes(2, 0); + // Find out the endianness. + if (BOM === 0x4949) { + littleEndian = true; + } + else if (BOM === 0x4d4d) { + littleEndian = false; + } + else { + throw TypeError("Invalid byte order value."); + } + return littleEndian; +}; +var hasTowel = function () { + // Check for towel. + if (getBytes(2, 2) !== 42) { + throw RangeError("You forgot your towel!"); + return false; + } + return true; +}; +var getFieldTagName = function (fieldTag) { + // See: http://www.digitizationguidelines.gov/guidelines/TIFF_Metadata_Final.pdf + // See: http://www.digitalpreservation.gov/formats/content/tiff_tags.shtml + var fieldTagNames = { + // TIFF Baseline + 0x013b: "Artist", + 0x0102: "BitsPerSample", + 0x0109: "CellLength", + 0x0108: "CellWidth", + 0x0140: "ColorMap", + 0x0103: "Compression", + 0x8298: "Copyright", + 0x0132: "DateTime", + 0x0152: "ExtraSamples", + 0x010a: "FillOrder", + 0x0121: "FreeByteCounts", + 0x0120: "FreeOffsets", + 0x0123: "GrayResponseCurve", + 0x0122: "GrayResponseUnit", + 0x013c: "HostComputer", + 0x010e: "ImageDescription", + 0x0101: "ImageLength", + 0x0100: "ImageWidth", + 0x010f: "Make", + 0x0119: "MaxSampleValue", + 0x0118: "MinSampleValue", + 0x0110: "Model", + 0x00fe: "NewSubfileType", + 0x0112: "Orientation", + 0x0106: "PhotometricInterpretation", + 0x011c: "PlanarConfiguration", + 0x0128: "ResolutionUnit", + 0x0116: "RowsPerStrip", + 0x0115: "SamplesPerPixel", + 0x0131: "Software", + 0x0117: "StripByteCounts", + 0x0111: "StripOffsets", + 0x00ff: "SubfileType", + 0x0107: "Threshholding", + 0x011a: "XResolution", + 0x011b: "YResolution", + // TIFF Extended + 0x0146: "BadFaxLines", + 0x0147: "CleanFaxData", + 0x0157: "ClipPath", + 0x0148: "ConsecutiveBadFaxLines", + 0x01b1: "Decode", + 0x01b2: "DefaultImageColor", + 0x010d: "DocumentName", + 0x0150: "DotRange", + 0x0141: "HalftoneHints", + 0x015a: "Indexed", + 0x015b: "JPEGTables", + 0x011d: "PageName", + 0x0129: "PageNumber", + 0x013d: "Predictor", + 0x013f: "PrimaryChromaticities", + 0x0214: "ReferenceBlackWhite", + 0x0153: "SampleFormat", + 0x022f: "StripRowCounts", + 0x014a: "SubIFDs", + 0x0124: "T4Options", + 0x0125: "T6Options", + 0x0145: "TileByteCounts", + 0x0143: "TileLength", + 0x0144: "TileOffsets", + 0x0142: "TileWidth", + 0x012d: "TransferFunction", + 0x013e: "WhitePoint", + 0x0158: "XClipPathUnits", + 0x011e: "XPosition", + 0x0211: "YCbCrCoefficients", + 0x0213: "YCbCrPositioning", + 0x0212: "YCbCrSubSampling", + 0x0159: "YClipPathUnits", + 0x011f: "YPosition", + // EXIF + 0x9202: "ApertureValue", + 0xa001: "ColorSpace", + 0x9004: "DateTimeDigitized", + 0x9003: "DateTimeOriginal", + 0x8769: "Exif IFD", + 0x9000: "ExifVersion", + 0x829a: "ExposureTime", + 0xa300: "FileSource", + 0x9209: "Flash", + 0xa000: "FlashpixVersion", + 0x829d: "FNumber", + 0xa420: "ImageUniqueID", + 0x9208: "LightSource", + 0x927c: "MakerNote", + 0x9201: "ShutterSpeedValue", + 0x9286: "UserComment", + // IPTC + 0x83bb: "IPTC", + // ICC + 0x8773: "ICC Profile", + // XMP + 0x02bc: "XMP", + // GDAL + 0xa480: "GDAL_METADATA", + 0xa481: "GDAL_NODATA", + // Photoshop + 0x8649: "Photoshop", + }; + var fieldTagName; + if (fieldTag in fieldTagNames) { + fieldTagName = fieldTagNames[fieldTag]; + } + else { + fieldTagName = "Tag" + fieldTag; + } + return fieldTagName; +}; +var getFieldTypeName = function (fieldType) { + var fieldTypeNames = { + 0x0001: "BYTE", + 0x0002: "ASCII", + 0x0003: "SHORT", + 0x0004: "LONG", + 0x0005: "RATIONAL", + 0x0006: "SBYTE", + 0x0007: "UNDEFINED", + 0x0008: "SSHORT", + 0x0009: "SLONG", + 0x000a: "SRATIONAL", + 0x000b: "FLOAT", + 0x000c: "DOUBLE", + }; + var fieldTypeName; + if (fieldType in fieldTypeNames) { + fieldTypeName = fieldTypeNames[fieldType]; + } + return fieldTypeName; +}; +var getFieldTypeLength = function (fieldTypeName) { + var fieldTypeLength; + if (["BYTE", "ASCII", "SBYTE", "UNDEFINED"].indexOf(fieldTypeName) !== -1) { + fieldTypeLength = 1; + } + else if (["SHORT", "SSHORT"].indexOf(fieldTypeName) !== -1) { + fieldTypeLength = 2; + } + else if (["LONG", "SLONG", "FLOAT"].indexOf(fieldTypeName) !== -1) { + fieldTypeLength = 4; + } + else if (["RATIONAL", "SRATIONAL", "DOUBLE"].indexOf(fieldTypeName) !== -1) { + fieldTypeLength = 8; + } + return fieldTypeLength; +}; +var getBits = function (numBits, byteOffset, bitOffset) { + bitOffset = bitOffset || 0; + var extraBytes = Math.floor(bitOffset / 8); + var newByteOffset = byteOffset + extraBytes; + var totalBits = bitOffset + numBits; + var shiftRight = 32 - numBits; + if (totalBits <= 0) { + throw RangeError("No bits requested"); + } + else if (totalBits <= 8) { + var shiftLeft = 24 + bitOffset; + var rawBits = tiffDataView.getUint8(newByteOffset, littleEndian); + } + else if (totalBits <= 16) { + var shiftLeft = 16 + bitOffset; + var rawBits = tiffDataView.getUint16(newByteOffset, littleEndian); + } + else if (totalBits <= 32) { + var shiftLeft = bitOffset; + var rawBits = tiffDataView.getUint32(newByteOffset, littleEndian); + } + else { + throw RangeError("Too many bits requested"); + } + var chunkInfo = { + bits: (rawBits << shiftLeft) >>> shiftRight, + byteOffset: newByteOffset + Math.floor(totalBits / 8), + bitOffset: totalBits % 8, + }; + return chunkInfo; +}; +var getBytes = function (numBytes, offset) { + if (numBytes <= 0) { + throw RangeError("No bytes requested"); + } + else if (numBytes <= 1) { + return tiffDataView.getUint8(offset, littleEndian); + } + else if (numBytes <= 2) { + return tiffDataView.getUint16(offset, littleEndian); + } + else if (numBytes <= 3) { + return tiffDataView.getUint32(offset, littleEndian) >>> 8; + } + else if (numBytes <= 4) { + return tiffDataView.getUint32(offset, littleEndian); + } + else { + throw RangeError("Too many bytes requested"); + } +}; +var getFieldValues = function (fieldTagName, fieldTypeName, typeCount, valueOffset) { + var fieldValues = []; + var fieldTypeLength = getFieldTypeLength(fieldTypeName); + var fieldValueSize = fieldTypeLength * typeCount; + if (fieldValueSize <= 4) { + // The value is stored at the big end of the valueOffset. + if (littleEndian === false) { + var value = valueOffset >>> ((4 - fieldTypeLength) * 8); + } + else { + var value = valueOffset; + } + fieldValues.push(value); + } + else { + for (var i = 0; i < typeCount; i++) { + var indexOffset = fieldTypeLength * i; + if (fieldTypeLength >= 8) { + if (["RATIONAL", "SRATIONAL"].indexOf(fieldTypeName) !== -1) { + // Numerator + fieldValues.push(getBytes(4, valueOffset + indexOffset)); + // Denominator + fieldValues.push(getBytes(4, valueOffset + indexOffset + 4)); + // } else if (['DOUBLE'].indexOf(fieldTypeName) !== -1) { + // fieldValues.push(getBytes(4, valueOffset + indexOffset) + getBytes(4, valueOffset + indexOffset + 4)); + } + else { + throw TypeError("Can't handle this field type or size"); + } + } + else { + fieldValues.push(getBytes(fieldTypeLength, valueOffset + indexOffset)); + } + } + } + if (fieldTypeName === "ASCII") { + fieldValues.forEach(function (e, i, a) { + a[i] = String.fromCharCode(e); + }); + } + return fieldValues; +}; +var clampColorSample = function (colorSample, bitsPerSample) { + var multiplier = Math.pow(2, 8 - bitsPerSample); + return Math.floor(colorSample * multiplier + (multiplier - 1)); +}; +var makeRGBAFillValue = function (r, g, b, a) { + if (typeof a === "undefined") { + a = 1.0; + } + return "rgba(" + r + ", " + g + ", " + b + ", " + a + ")"; +}; +var parseFileDirectory = function (byteOffset) { + var numDirEntries = getBytes(2, byteOffset); + var tiffFields = []; + for (var i = byteOffset + 2, entryCount = 0; entryCount < numDirEntries; i += 12, entryCount++) { + var fieldTag = getBytes(2, i); + var fieldType = getBytes(2, i + 2); + var typeCount = getBytes(4, i + 4); + var valueOffset = getBytes(4, i + 8); + var fieldTagName = getFieldTagName(fieldTag); + var fieldTypeName = getFieldTypeName(fieldType); + var fieldValues = getFieldValues(fieldTagName, fieldTypeName, typeCount, valueOffset); + tiffFields[fieldTagName] = { type: fieldTypeName, values: fieldValues }; + } + fileDirectories.push(tiffFields); + var nextIFDByteOffset = getBytes(4, i); + if (nextIFDByteOffset === 0x00000000) { + return fileDirectories; + } + else { + return parseFileDirectory(nextIFDByteOffset); + } +}; +exports.parseTIFF = function (tiffArrayBuffer, _canvas) { + var canvas = _canvas || document.createElement("canvas"); + if (!tiffArrayBuffer) + return; + tiffDataView = new DataView(tiffArrayBuffer); + // canvas = _canvas; + littleEndian = isLittleEndian(tiffDataView); + if (!hasTowel(tiffDataView, littleEndian)) + return; + var firstIFDByteOffset = getBytes(4, 4); + fileDirectories = parseFileDirectory(firstIFDByteOffset); + var fileDirectory = fileDirectories[0]; + var imageWidth = fileDirectory.ImageWidth.values[0]; + var imageLength = fileDirectory.ImageLength.values[0]; + canvas.width = imageWidth; + canvas.height = imageLength; + var strips = []; + var compression = fileDirectory.Compression + ? fileDirectory.Compression.values[0] + : 1; + var samplesPerPixel = fileDirectory.SamplesPerPixel.values[0]; + var sampleProperties = []; + var bitsPerPixel = 0; + var hasBytesPerPixel = false; + fileDirectory.BitsPerSample.values.forEach(function (bitsPerSample, i, bitsPerSampleValues) { + sampleProperties[i] = { + bitsPerSample: bitsPerSample, + hasBytesPerSample: false, + bytesPerSample: undefined, + }; + if (bitsPerSample % 8 === 0) { + sampleProperties[i].hasBytesPerSample = true; + sampleProperties[i].bytesPerSample = bitsPerSample / 8; + } + bitsPerPixel += bitsPerSample; + }, _this); + if (bitsPerPixel % 8 === 0) { + hasBytesPerPixel = true; + var bytesPerPixel = bitsPerPixel / 8; + } + var stripOffsetValues = fileDirectory.StripOffsets.values; + var numStripOffsetValues = stripOffsetValues.length; + // StripByteCounts is supposed to be required, but see if we can recover anyway. + if (fileDirectory.StripByteCounts) { + var stripByteCountValues = fileDirectory.StripByteCounts.values; + } + else { + // Infer StripByteCounts, if possible. + if (numStripOffsetValues === 1) { + var stripByteCountValues = [ + Math.ceil((imageWidth * imageLength * bitsPerPixel) / 8), + ]; + } + else { + throw Error("Cannot recover from missing StripByteCounts"); + } + } + // Loop through strips and decompress as necessary. + for (var i = 0; i < numStripOffsetValues; i++) { + var stripOffset = stripOffsetValues[i]; + strips[i] = []; + var stripByteCount = stripByteCountValues[i]; + // Loop through pixels. + for (var byteOffset = 0, bitOffset = 0, jIncrement = 1, getHeader = true, pixel = [], numBytes = 0, sample = 0, currentSample = 0; byteOffset < stripByteCount; byteOffset += jIncrement) { + // Decompress strip. + switch (compression) { + // Uncompressed + case 1: + // Loop through samples (sub-pixels). + for (var m = 0, pixel = []; m < samplesPerPixel; m++) { + if (sampleProperties[m].hasBytesPerSample) { + // XXX: This is wrong! + var sampleOffset = sampleProperties[m].bytesPerSample * m; + pixel.push(getBytes(sampleProperties[m].bytesPerSample, stripOffset + byteOffset + sampleOffset)); + } + else { + var sampleInfo = getBits(sampleProperties[m].bitsPerSample, stripOffset + byteOffset, bitOffset); + pixel.push(sampleInfo.bits); + byteOffset = sampleInfo.byteOffset - stripOffset; + bitOffset = sampleInfo.bitOffset; + throw RangeError("Cannot handle sub-byte bits per sample"); + } + } + strips[i].push(pixel); + if (hasBytesPerPixel) { + jIncrement = bytesPerPixel; + } + else { + jIncrement = 0; + throw RangeError("Cannot handle sub-byte bits per pixel"); + } + break; + // CITT Group 3 1-Dimensional Modified Huffman run-length encoding + case 2: + // XXX: Use PDF.js code? + break; + // Group 3 Fax + case 3: + // XXX: Use PDF.js code? + break; + // Group 4 Fax + case 4: + // XXX: Use PDF.js code? + break; + // LZW + case 5: + // XXX: Use PDF.js code? + break; + // Old-style JPEG (TIFF 6.0) + case 6: + // XXX: Use PDF.js code? + break; + // New-style JPEG (TIFF Specification Supplement 2) + case 7: + // XXX: Use PDF.js code? + break; + // PackBits + case 32773: + // Are we ready for a new block? + if (getHeader) { + getHeader = false; + var blockLength = 1; + var iterations = 1; + // The header byte is signed. + var header = tiffDataView.getInt8(stripOffset + byteOffset, littleEndian); + if (header >= 0 && header <= 127) { + // Normal pixels. + blockLength = header + 1; + } + else if (header >= -127 && header <= -1) { + // Collapsed pixels. + iterations = -header + 1; + } /*if (header === -128)*/ + else { + // Placeholder byte? + getHeader = true; + } + } + else { + var currentByte = getBytes(1, stripOffset + byteOffset); + // Duplicate bytes, if necessary. + for (var m = 0; m < iterations; m++) { + if (sampleProperties[sample].hasBytesPerSample) { + // We're reading one byte at a time, so we need to handle multi-byte samples. + currentSample = (currentSample << (8 * numBytes)) | currentByte; + numBytes++; + // Is our sample complete? + if (numBytes === sampleProperties[sample].bytesPerSample) { + pixel.push(currentSample); + currentSample = numBytes = 0; + sample++; + } + } + else { + throw RangeError("Cannot handle sub-byte bits per sample"); + } + // Is our pixel complete? + if (sample === samplesPerPixel) { + strips[i].push(pixel); + pixel = []; + sample = 0; + } + } + blockLength--; + // Is our block complete? + if (blockLength === 0) { + getHeader = true; + } + } + jIncrement = 1; + break; + // Unknown compression algorithm + default: + // Do not attempt to parse the image data. + break; + } + } + } + if (canvas.getContext) { + var ctx = canvas.getContext("2d"); + // Set a default fill style. + ctx.fillStyle = makeRGBAFillValue(255, 255, 255, 0); + // If RowsPerStrip is missing, the whole image is in one strip. + if (fileDirectory.RowsPerStrip) { + var rowsPerStrip = fileDirectory.RowsPerStrip.values[0]; + } + else { + var rowsPerStrip = imageLength; + } + var numStrips = strips.length; + var imageLengthModRowsPerStrip = imageLength % rowsPerStrip; + var rowsInLastStrip = imageLengthModRowsPerStrip === 0 + ? rowsPerStrip + : imageLengthModRowsPerStrip; + var numRowsInStrip = rowsPerStrip; + var numRowsInPreviousStrip = 0; + var photometricInterpretation = fileDirectory.PhotometricInterpretation.values[0]; + var extraSamplesValues = []; + var numExtraSamples = 0; + if (fileDirectory.ExtraSamples) { + extraSamplesValues = fileDirectory.ExtraSamples.values; + numExtraSamples = extraSamplesValues.length; + } + if (fileDirectory.ColorMap) { + var colorMapValues = fileDirectory.ColorMap.values; + var colorMapSampleSize = Math.pow(2, sampleProperties[0].bitsPerSample); + } + // Loop through the strips in the image. + for (var i = 0; i < numStrips; i++) { + // The last strip may be short. + if (i + 1 === numStrips) { + numRowsInStrip = rowsInLastStrip; + } + var numPixels = strips[i].length; + var yPadding = numRowsInPreviousStrip * i; + // Loop through the rows in the strip. + for (var y = 0, j = 0; y < numRowsInStrip, j < numPixels; y++) { + // Loop through the pixels in the row. + for (var x = 0; x < imageWidth; x++, j++) { + var pixelSamples = strips[i][j]; + var red = 0; + var green = 0; + var blue = 0; + var opacity = 1.0; + if (numExtraSamples > 0) { + for (var k = 0; k < numExtraSamples; k++) { + if (extraSamplesValues[k] === 1 || extraSamplesValues[k] === 2) { + // Clamp opacity to the range [0,1]. + opacity = pixelSamples[3 + k] / 256; + break; + } + } + } + switch (photometricInterpretation) { + // Bilevel or Grayscale + // WhiteIsZero + case 0: + if (sampleProperties[0].hasBytesPerSample) { + var invertValue = Math.pow(0x10, sampleProperties[0].bytesPerSample * 2); + } + // Invert samples. + pixelSamples.forEach(function (sample, index, samples) { + samples[index] = invertValue - sample; + }); + // Bilevel or Grayscale + // BlackIsZero + case 1: + red = green = blue = clampColorSample(pixelSamples[0], sampleProperties[0].bitsPerSample); + break; + // RGB Full Color + case 2: + red = clampColorSample(pixelSamples[0], sampleProperties[0].bitsPerSample); + green = clampColorSample(pixelSamples[1], sampleProperties[1].bitsPerSample); + blue = clampColorSample(pixelSamples[2], sampleProperties[2].bitsPerSample); + break; + // RGB Color Palette + case 3: + if (colorMapValues === undefined) { + throw Error("Palette image missing color map"); + } + var colorMapIndex = pixelSamples[0]; + red = clampColorSample(colorMapValues[colorMapIndex], 16); + green = clampColorSample(colorMapValues[colorMapSampleSize + colorMapIndex], 16); + blue = clampColorSample(colorMapValues[2 * colorMapSampleSize + colorMapIndex], 16); + break; + // Transparency mask + case 4: + throw RangeError("Not Yet Implemented: Transparency mask"); + break; + // CMYK + case 5: + throw RangeError("Not Yet Implemented: CMYK"); + break; + // YCbCr + case 6: + throw RangeError("Not Yet Implemented: YCbCr"); + break; + // CIELab + case 8: + throw RangeError("Not Yet Implemented: CIELab"); + break; + // Unknown Photometric Interpretation + default: + throw RangeError("Unknown Photometric Interpretation:", photometricInterpretation); + break; + } + ctx.fillStyle = makeRGBAFillValue(red, green, blue, opacity); + ctx.fillRect(x, yPadding + y, 1, 1); + } + } + numRowsInPreviousStrip = numRowsInStrip; + } + } + return canvas; +}; diff --git a/build/plugins/txt/index.d.ts b/build/plugins/txt/index.d.ts new file mode 100644 index 0000000..dd18a5d --- /dev/null +++ b/build/plugins/txt/index.d.ts @@ -0,0 +1,3 @@ +import { DocRenderer } from "../../types"; +declare const TXTRenderer: DocRenderer; +export default TXTRenderer; diff --git a/build/plugins/txt/index.js b/build/plugins/txt/index.js new file mode 100644 index 0000000..3a5382b --- /dev/null +++ b/build/plugins/txt/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var styled_components_1 = __importDefault(require("styled-components")); +var fileLoaders_1 = require("../../utils/fileLoaders"); +var TXTRenderer = function (_a) { + var currentDocument = _a.mainState.currentDocument; + return react_1.default.createElement(Container, { id: "txt-renderer" }, currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData); +}; +exports.default = TXTRenderer; +TXTRenderer.fileTypes = ["txt", "text/plain"]; +TXTRenderer.weight = 0; +TXTRenderer.fileLoader = fileLoaders_1.textFileLoader; +var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 30px;\n"], ["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 30px;\n"]))); +var templateObject_1; diff --git a/build/state/actions.d.ts b/build/state/actions.d.ts new file mode 100644 index 0000000..0b71448 --- /dev/null +++ b/build/state/actions.d.ts @@ -0,0 +1,42 @@ +import { IConfig, IDocument } from "../types"; +export declare const SET_ALL_DOCUMENTS: string; +export interface SetAllDocuments { + type: typeof SET_ALL_DOCUMENTS; + documents: IDocument[]; +} +export declare const setAllDocuments: (documents: IDocument[]) => SetAllDocuments; +export declare const SET_DOCUMENT_LOADING: string; +export interface SetDocumentLoading { + type: typeof SET_DOCUMENT_LOADING; + value: boolean; +} +export declare const setDocumentLoading: (value: boolean) => SetDocumentLoading; +export declare const NEXT_DOCUMENT: string; +export interface NextDocument { + type: typeof NEXT_DOCUMENT; +} +export declare const nextDocument: () => NextDocument; +export declare const PREVIOUS_DOCUMENT: string; +export interface PreviousDocument { + type: typeof PREVIOUS_DOCUMENT; +} +export declare const previousDocument: () => PreviousDocument; +export declare const UPDATE_CURRENT_DOCUMENT: string; +export interface UpdateCurrentDocument { + type: typeof UPDATE_CURRENT_DOCUMENT; + document: IDocument; +} +export declare const updateCurrentDocument: (document: IDocument) => UpdateCurrentDocument; +export declare const SET_RENDERER_RECT: string; +export interface SetRendererRect { + type: typeof SET_RENDERER_RECT; + rect: DOMRect; +} +export declare const setRendererRect: (rect: DOMRect) => SetRendererRect; +export declare const SET_MAIN_CONFIG: string; +export interface SetMainConfig { + type: typeof SET_MAIN_CONFIG; + config: IConfig; +} +export declare const setMainConfig: (config: IConfig) => SetMainConfig; +export declare type MainStateActions = SetAllDocuments | SetDocumentLoading | NextDocument | PreviousDocument | UpdateCurrentDocument | SetRendererRect | SetMainConfig; diff --git a/build/state/actions.js b/build/state/actions.js new file mode 100644 index 0000000..ced4314 --- /dev/null +++ b/build/state/actions.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setMainConfig = exports.SET_MAIN_CONFIG = exports.setRendererRect = exports.SET_RENDERER_RECT = exports.updateCurrentDocument = exports.UPDATE_CURRENT_DOCUMENT = exports.previousDocument = exports.PREVIOUS_DOCUMENT = exports.nextDocument = exports.NEXT_DOCUMENT = exports.setDocumentLoading = exports.SET_DOCUMENT_LOADING = exports.setAllDocuments = exports.SET_ALL_DOCUMENTS = void 0; +// SET_DOCUMENTS +exports.SET_ALL_DOCUMENTS = "SET_ALL_DOCUMENTS"; +exports.setAllDocuments = function (documents) { return ({ + type: exports.SET_ALL_DOCUMENTS, + documents: documents, +}); }; +// SET_DOCUMENT_LOADING +exports.SET_DOCUMENT_LOADING = "SET_DOCUMENT_LOADING"; +exports.setDocumentLoading = function (value) { return ({ + type: exports.SET_DOCUMENT_LOADING, + value: value, +}); }; +// NEXT_DOCUMENT +exports.NEXT_DOCUMENT = "NEXT_DOCUMENT"; +exports.nextDocument = function () { return ({ type: exports.NEXT_DOCUMENT }); }; +// PREVIOUS_DOCUMENT +exports.PREVIOUS_DOCUMENT = "PREVIOUS_DOCUMENT"; +exports.previousDocument = function () { return ({ + type: exports.PREVIOUS_DOCUMENT, +}); }; +// UPDATE_CURRENT_DOCUMENT +exports.UPDATE_CURRENT_DOCUMENT = "UPDATE_CURRENT_DOCUMENT"; +exports.updateCurrentDocument = function (document) { return ({ type: exports.UPDATE_CURRENT_DOCUMENT, document: document }); }; +// SET_RENDERER_RECT +exports.SET_RENDERER_RECT = "SET_RENDERER_RECT"; +exports.setRendererRect = function (rect) { return ({ + type: exports.SET_RENDERER_RECT, + rect: rect, +}); }; +// SET_MAIN_CONFIG +exports.SET_MAIN_CONFIG = "SET_MAIN_CONFIG"; +exports.setMainConfig = function (config) { return ({ + type: exports.SET_MAIN_CONFIG, + config: config, +}); }; diff --git a/build/state/index.d.ts b/build/state/index.d.ts new file mode 100644 index 0000000..92c33f2 --- /dev/null +++ b/build/state/index.d.ts @@ -0,0 +1,10 @@ +import React, { Dispatch, FC } from "react"; +import { DocViewerProps } from ".."; +import { MainStateActions } from "./actions"; +import { IMainState } from "./reducer"; +declare const DocViewerContext: React.Context<{ + state: IMainState; + dispatch: Dispatch; +}>; +declare const AppProvider: FC; +export { DocViewerContext, AppProvider }; diff --git a/build/state/index.js b/build/state/index.js new file mode 100644 index 0000000..d0b1ddd --- /dev/null +++ b/build/state/index.js @@ -0,0 +1,51 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppProvider = exports.DocViewerContext = void 0; +var react_1 = __importStar(require("react")); +var actions_1 = require("./actions"); +var reducer_1 = require("./reducer"); +var DocViewerContext = react_1.createContext({ state: reducer_1.initialState, dispatch: function () { return null; } }); +exports.DocViewerContext = DocViewerContext; +var AppProvider = function (props) { + var children = props.children, documents = props.documents, config = props.config, pluginRenderers = props.pluginRenderers; + var _a = react_1.useReducer(reducer_1.mainStateReducer, __assign(__assign({}, reducer_1.initialState), { documents: documents || [], currentDocument: documents && documents.length ? documents[0] : undefined, config: config, + pluginRenderers: pluginRenderers })), state = _a[0], dispatch = _a[1]; + // On inital load, and whenever they change, + // replace documents with the new props passed in + react_1.useEffect(function () { + dispatch(actions_1.setAllDocuments(documents)); + config && dispatch(actions_1.setMainConfig(config)); + }, [documents]); + return (react_1.default.createElement(DocViewerContext.Provider, { value: { state: state, dispatch: dispatch } }, children)); +}; +exports.AppProvider = AppProvider; diff --git a/build/state/reducer.d.ts b/build/state/reducer.d.ts new file mode 100644 index 0000000..a1a7678 --- /dev/null +++ b/build/state/reducer.d.ts @@ -0,0 +1,14 @@ +import { DocRenderer, IConfig, IDocument } from "../types"; +import { MainStateActions } from "./actions"; +export declare type IMainState = { + currentFileNo: number; + documents: IDocument[]; + documentLoading?: boolean; + currentDocument?: IDocument; + rendererRect?: DOMRect; + config?: IConfig; + pluginRenderers?: DocRenderer[]; +}; +export declare const initialState: IMainState; +export declare type MainStateReducer = (state: IMainState, action: MainStateActions) => IMainState; +export declare const mainStateReducer: MainStateReducer; diff --git a/build/state/reducer.js b/build/state/reducer.js new file mode 100644 index 0000000..db7365a --- /dev/null +++ b/build/state/reducer.js @@ -0,0 +1,63 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.mainStateReducer = exports.initialState = void 0; +var actions_1 = require("./actions"); +exports.initialState = { + currentFileNo: 0, + documents: [], + documentLoading: true, + currentDocument: undefined, + rendererRect: undefined, + config: {}, + pluginRenderers: [], +}; +exports.mainStateReducer = function (state, action) { + if (state === void 0) { state = exports.initialState; } + switch (action.type) { + case actions_1.SET_ALL_DOCUMENTS: { + var documents = action.documents; + return __assign(__assign({}, state), { documents: documents, currentDocument: documents[0] || null }); + } + case actions_1.SET_DOCUMENT_LOADING: { + var value = action.value; + return __assign(__assign({}, state), { documentLoading: value }); + } + case actions_1.NEXT_DOCUMENT: { + if (state.currentFileNo >= state.documents.length - 1) + return state; + var nextDocumentNo = state.currentFileNo + 1; + return __assign(__assign({}, state), { currentFileNo: nextDocumentNo, currentDocument: state.documents[nextDocumentNo], documentLoading: true }); + } + case actions_1.PREVIOUS_DOCUMENT: { + if (state.currentFileNo <= 0) + return state; + var prevDocumentNo = state.currentFileNo - 1; + return __assign(__assign({}, state), { currentFileNo: state.currentFileNo - 1, currentDocument: state.documents[prevDocumentNo], documentLoading: true }); + } + case actions_1.UPDATE_CURRENT_DOCUMENT: { + var document_1 = action.document; + return __assign(__assign({}, state), { currentDocument: document_1 }); + } + case actions_1.SET_RENDERER_RECT: { + var rect = action.rect; + return __assign(__assign({}, state), { rendererRect: rect }); + } + case actions_1.SET_MAIN_CONFIG: { + var config = action.config; + return __assign(__assign({}, state), { config: config }); + } + default: + return state; + } +}; diff --git a/build/theme/index.d.ts b/build/theme/index.d.ts new file mode 100644 index 0000000..7c794d1 --- /dev/null +++ b/build/theme/index.d.ts @@ -0,0 +1,2 @@ +import { ITheme } from "../types"; +export declare const defaultTheme: ITheme; diff --git a/build/theme/index.js b/build/theme/index.js new file mode 100644 index 0000000..48ca7e7 --- /dev/null +++ b/build/theme/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultTheme = void 0; +exports.defaultTheme = { + primary: "#fff", + secondary: "#000", + tertiary: "#ffffff99", + text_primary: "#000", + text_secondary: "#fff", + text_tertiary: "#00000044", + disableThemeScrollbar: false, +}; diff --git a/build/types/index.d.ts b/build/types/index.d.ts new file mode 100644 index 0000000..df98a8b --- /dev/null +++ b/build/types/index.d.ts @@ -0,0 +1,39 @@ +import { FC, ReactElement } from "react"; +import { ThemedStyledProps } from "styled-components"; +import { IMainState } from "../state/reducer"; +import { FileLoaderFunction } from "../utils/fileLoaders"; +export interface IConfig { + header?: IHeaderConfig; +} +export interface IHeaderConfig { + disableHeader?: boolean; + disableFileName?: boolean; + retainURLParams?: boolean; + overrideComponent?: IHeaderOverride; +} +export declare type IHeaderOverride = (state: IMainState, previousDocument: () => void, nextDocument: () => void) => ReactElement | null; +export interface ITheme { + primary?: string; + secondary?: string; + tertiary?: string; + text_primary?: string; + text_secondary?: string; + text_tertiary?: string; + disableThemeScrollbar?: boolean; +} +export interface IStyledProps extends ThemedStyledProps { + theme: ITheme; +} +export interface IDocument { + uri: string; + fileType?: string; + fileData?: string | ArrayBuffer; +} +export interface DocRendererProps { + mainState: IMainState; +} +export interface DocRenderer extends FC { + fileTypes: string[]; + weight: number; + fileLoader?: FileLoaderFunction | null | undefined; +} diff --git a/build/types/index.js b/build/types/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/build/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/utils/fileLoaders.d.ts b/build/utils/fileLoaders.d.ts new file mode 100644 index 0000000..a1fd945 --- /dev/null +++ b/build/utils/fileLoaders.d.ts @@ -0,0 +1,12 @@ +export interface FileLoaderFuncProps { + documentURI: string; + signal: AbortSignal; + fileLoaderComplete: FileLoaderComplete; +} +export declare type FileLoaderComplete = (fileReader?: FileReader) => void; +export declare type FileLoaderFunction = (props: FileLoaderFuncProps) => void; +export declare const arrayBufferFileLoader: FileLoaderFunction; +export declare const dataURLFileLoader: FileLoaderFunction; +export declare const textFileLoader: FileLoaderFunction; +export declare const binaryStringFileLoader: FileLoaderFunction; +export declare const defaultFileLoader: FileLoaderFunction; diff --git a/build/utils/fileLoaders.js b/build/utils/fileLoaders.js new file mode 100644 index 0000000..a9e1368 --- /dev/null +++ b/build/utils/fileLoaders.js @@ -0,0 +1,101 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultFileLoader = exports.binaryStringFileLoader = exports.textFileLoader = exports.dataURLFileLoader = exports.arrayBufferFileLoader = void 0; +var _fileLoader = function (_a) { + var documentURI = _a.documentURI, signal = _a.signal, fileLoaderComplete = _a.fileLoaderComplete, readerTypeFunction = _a.readerTypeFunction; + return fetch(documentURI, { signal: signal }) + .then(function (res) { return __awaiter(void 0, void 0, void 0, function () { + var blob, fileReader; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, res.blob()]; + case 1: + blob = _a.sent(); + fileReader = new FileReader(); + fileReader.addEventListener("loadend", function () { + return fileLoaderComplete(fileReader); + }); + switch (readerTypeFunction) { + case "arrayBuffer": + fileReader.readAsArrayBuffer(blob); + break; + case "binaryString": + fileReader.readAsBinaryString(blob); + break; + case "dataURL": + fileReader.readAsDataURL(blob); + break; + case "text": + fileReader.readAsText(blob); + break; + default: + break; + } + return [2 /*return*/]; + } + }); + }); }) + .catch(function (e) { + return e; + }); +}; +exports.arrayBufferFileLoader = function (props) { + return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "arrayBuffer" })); +}; +exports.dataURLFileLoader = function (props) { + return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "dataURL" })); +}; +exports.textFileLoader = function (props) { + return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "text" })); +}; +exports.binaryStringFileLoader = function (props) { + return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "binaryString" })); +}; +exports.defaultFileLoader = exports.dataURLFileLoader; diff --git a/build/utils/useDocumentLoader.d.ts b/build/utils/useDocumentLoader.d.ts new file mode 100644 index 0000000..7a01ec4 --- /dev/null +++ b/build/utils/useDocumentLoader.d.ts @@ -0,0 +1,12 @@ +import { Dispatch } from "react"; +import { MainStateActions } from "../state/actions"; +import { IMainState } from "../state/reducer"; +import { DocRenderer } from "../types"; +/** + * Custom Hook for loading the current document into context + */ +export declare const useDocumentLoader: () => { + state: IMainState; + dispatch: Dispatch; + CurrentRenderer: DocRenderer | null | undefined; +}; diff --git a/build/utils/useDocumentLoader.js b/build/utils/useDocumentLoader.js new file mode 100644 index 0000000..869052e --- /dev/null +++ b/build/utils/useDocumentLoader.js @@ -0,0 +1,81 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useDocumentLoader = void 0; +var react_1 = require("react"); +var state_1 = require("../state"); +var actions_1 = require("../state/actions"); +var fileLoaders_1 = require("./fileLoaders"); +var useRendererSelector_1 = require("./useRendererSelector"); +/** + * Custom Hook for loading the current document into context + */ +exports.useDocumentLoader = function () { + var _a = react_1.useContext(state_1.DocViewerContext), state = _a.state, dispatch = _a.dispatch; + var currentFileNo = state.currentFileNo, currentDocument = state.currentDocument; + var CurrentRenderer = useRendererSelector_1.useRendererSelector().CurrentRenderer; + var documentURI = (currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri) || ""; + react_1.useEffect(function () { + if (!currentDocument) + return; + if (currentDocument.fileType !== undefined) + return; + var controller = new AbortController(); + var signal = controller.signal; + fetch(documentURI, { method: "HEAD", signal: signal }).then(function (response) { + var contentTypeRaw = response.headers.get("content-type"); + var contentTypes = (contentTypeRaw === null || contentTypeRaw === void 0 ? void 0 : contentTypeRaw.split(";")) || []; + var contentType = contentTypes.length ? contentTypes[0] : undefined; + dispatch(actions_1.updateCurrentDocument(__assign(__assign({}, currentDocument), { fileType: contentType || undefined }))); + }); + return function () { + controller.abort(); + }; + }, + // eslint ignore added, because a warning appears for dispatch to + // be a dependancy of the useEffect + // eslint-disable-next-line react-hooks/exhaustive-deps + [currentFileNo, documentURI]); + react_1.useEffect(function () { + var _a; + if (!currentDocument || CurrentRenderer === undefined) + return; + var controller = new AbortController(); + var signal = controller.signal; + var fileLoaderComplete = function (fileReader) { + if (!currentDocument || !fileReader) { + dispatch(actions_1.setDocumentLoading(false)); + return; + } + var updatedDocument = __assign({}, currentDocument); + if (fileReader.result !== null) { + updatedDocument.fileData = fileReader.result; + } + dispatch(actions_1.updateCurrentDocument(updatedDocument)); + dispatch(actions_1.setDocumentLoading(false)); + }; + if (CurrentRenderer === null) { + dispatch(actions_1.setDocumentLoading(false)); + } + else if (CurrentRenderer.fileLoader !== undefined) { + (_a = CurrentRenderer.fileLoader) === null || _a === void 0 ? void 0 : _a.call(CurrentRenderer, { documentURI: documentURI, signal: signal, fileLoaderComplete: fileLoaderComplete }); + } + else { + fileLoaders_1.defaultFileLoader({ documentURI: documentURI, signal: signal, fileLoaderComplete: fileLoaderComplete }); + } + return function () { + controller.abort(); + }; + }, [CurrentRenderer]); + return { state: state, dispatch: dispatch, CurrentRenderer: CurrentRenderer }; +}; diff --git a/build/utils/useRendererSelector.d.ts b/build/utils/useRendererSelector.d.ts new file mode 100644 index 0000000..fa3fc34 --- /dev/null +++ b/build/utils/useRendererSelector.d.ts @@ -0,0 +1,7 @@ +import { DocRenderer } from "../types"; +/** + * Custom Hook for loading the current document into context + */ +export declare const useRendererSelector: () => { + CurrentRenderer: DocRenderer | null | undefined; +}; diff --git a/build/utils/useRendererSelector.js b/build/utils/useRendererSelector.js new file mode 100644 index 0000000..4e9278f --- /dev/null +++ b/build/utils/useRendererSelector.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useRendererSelector = void 0; +var react_1 = require("react"); +var state_1 = require("../state"); +/** + * Custom Hook for loading the current document into context + */ +exports.useRendererSelector = function () { + var _a = react_1.useContext(state_1.DocViewerContext).state, currentDocument = _a.currentDocument, pluginRenderers = _a.pluginRenderers; + var _b = react_1.useState(), CurrentRenderer = _b[0], setCurrentRenderer = _b[1]; + react_1.useEffect(function () { + if (!currentDocument) + return; + // Do not advance if the document does not yet have a fileType + // This prevents prematurely showing 'no renderer' message + if (!currentDocument.fileType) { + setCurrentRenderer(undefined); + return; + } + var matchingRenderers = []; + pluginRenderers === null || pluginRenderers === void 0 ? void 0 : pluginRenderers.map(function (r) { + if (currentDocument.fileType === undefined) + return; + if (r.fileTypes.indexOf(currentDocument.fileType) >= 0) { + matchingRenderers.push(r); + } + }); + // Compute prefered Renderer based on weight + var SelectedRenderer = matchingRenderers.sort(function (a, b) { return b.weight - a.weight; })[0]; + if (SelectedRenderer && SelectedRenderer !== undefined) { + setCurrentRenderer(function () { return SelectedRenderer; }); + } + else { + setCurrentRenderer(null); + } + }, [currentDocument]); + return { CurrentRenderer: CurrentRenderer }; +}; diff --git a/build/utils/useWindowSize.d.ts b/build/utils/useWindowSize.d.ts new file mode 100644 index 0000000..3ceca9c --- /dev/null +++ b/build/utils/useWindowSize.d.ts @@ -0,0 +1,4 @@ +export declare const useWindowSize: () => { + width: number | undefined; + height: number | undefined; +}; diff --git a/build/utils/useWindowSize.js b/build/utils/useWindowSize.js new file mode 100644 index 0000000..a2bb3c6 --- /dev/null +++ b/build/utils/useWindowSize.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useWindowSize = void 0; +var react_1 = require("react"); +// Hook +exports.useWindowSize = function () { + // Initialize state with undefined width/height so server and client renders match + // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/ + var _a = react_1.useState({ + width: undefined, + height: undefined, + }), windowSize = _a[0], setWindowSize = _a[1]; + react_1.useEffect(function () { + // Handler to call on window resize + function handleResize() { + // Set window width/height to state + setWindowSize({ + width: window.innerWidth, + height: window.innerHeight, + }); + } + // Add event listener + window.addEventListener("resize", handleResize); + // Call handler right away so state gets updated with initial window size + handleResize(); + // setTimeout(() => { + // handleResize(); + // }, 500); + // Remove event listener on cleanup + return function () { return window.removeEventListener("resize", handleResize); }; + }, []); // Empty array ensures that effect is only run on mount + return windowSize; +}; diff --git a/package.json b/package.json index 176914b..fcf494e 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "main": "build/index.js", "types": "build/index.d.ts", "dependencies": { - "pdfjs-dist": "2.4.456", - "react-pdf": "5.0.0", - "styled-components": "^5.1.1", - "wl-msg-reader": "^0.2.0" + "pdfjs-dist": "2.10.377", + "react-pdf": "5.5.0", + "styled-components": "5.3.3", + "wl-msg-reader": "0.2.0" }, "devDependencies": { "@testing-library/jest-dom": "^4.2.4", @@ -22,14 +22,14 @@ "@types/jest": "^24.0.0", "@types/node": "^12.0.0", "@types/pdfjs-dist": "2.1.5", - "@types/react": "^16.9.46", - "@types/react-dom": "^16.9.8", - "@types/react-pdf": "4.0.5", - "@types/styled-components": "^5.1.2", + "@types/react": "17.0.35", + "@types/react-dom": "17.0.11", + "@types/react-pdf": "4.0.6", + "@types/styled-components": "5.1.15", "generate-changelog": "^1.8.0", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-scripts": "3.4.3", + "react": "17.0.2", + "react-dom": "17.0.2", + "react-scripts": "4.0.3", "typescript": "^3.9.7" }, "scripts": { From 360998739994ae1ee7c85d9c1b7f95ad523308a4 Mon Sep 17 00:00:00 2001 From: Andreas Otten Date: Wed, 17 Nov 2021 12:35:20 +0100 Subject: [PATCH 2/4] added updateds for security --- package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index fcf494e..2c6beba 100644 --- a/package.json +++ b/package.json @@ -16,17 +16,17 @@ "wl-msg-reader": "0.2.0" }, "devDependencies": { - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.3.2", - "@testing-library/user-event": "^7.1.2", - "@types/jest": "^24.0.0", - "@types/node": "^12.0.0", - "@types/pdfjs-dist": "2.1.5", + "@testing-library/jest-dom": "5.15.0", + "@testing-library/react": "12.1.2", + "@testing-library/user-event": "13.5.0", + "@types/jest": "27.0.2", + "@types/node": "16.11.7", + "@types/pdfjs-dist": "2.10.378", "@types/react": "17.0.35", "@types/react-dom": "17.0.11", - "@types/react-pdf": "4.0.6", + "@types/react-pdf": "5.0.9", "@types/styled-components": "5.1.15", - "generate-changelog": "^1.8.0", + "generate-changelog": "1.8.0", "react": "17.0.2", "react-dom": "17.0.2", "react-scripts": "4.0.3", From 2de01f2ac9ed2d806e673cfa870aa7a945aa545d Mon Sep 17 00:00:00 2001 From: Andreas Otten Date: Wed, 17 Nov 2021 13:36:07 +0100 Subject: [PATCH 3/4] added --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2c6beba..a6d97e1 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "generate-changelog": "1.8.0", "react": "17.0.2", "react-dom": "17.0.2", - "react-scripts": "4.0.3", + "react-scripts": "5.0.0-next.47", "typescript": "^3.9.7" }, "scripts": { From c79cecd34d462e8140e8e912c0f37f8f37f8d8ad Mon Sep 17 00:00:00 2001 From: Andreas Otten Date: Wed, 17 Nov 2021 19:52:19 +0100 Subject: [PATCH 4/4] remove build and gitignore --- .gitignore | 2 +- build/components/DocumentNav.d.ts | 2 - build/components/DocumentNav.js | 59 -- build/components/FileName.d.ts | 2 - build/components/FileName.js | 50 -- build/components/HeaderBar.d.ts | 2 - build/components/HeaderBar.js | 53 -- build/components/ProxyRenderer.d.ts | 2 - build/components/ProxyRenderer.js | 75 --- build/components/common/Button.d.ts | 11 - build/components/common/Button.js | 34 - build/components/common/index.d.ts | 1 - build/components/common/index.js | 13 - build/components/icons/index.d.ts | 9 - build/components/icons/index.js | 42 -- build/index.d.ts | 26 - build/index.js | 87 --- build/plugins/bmp/index.d.ts | 3 - build/plugins/bmp/index.js | 22 - build/plugins/html/index.d.ts | 3 - build/plugins/html/index.js | 56 -- build/plugins/image/index.d.ts | 3 - build/plugins/image/index.js | 34 - build/plugins/index.d.ts | 1 - build/plugins/index.js | 26 - build/plugins/jpg/index.d.ts | 3 - build/plugins/jpg/index.js | 22 - build/plugins/msdoc/index.d.ts | 3 - build/plugins/msdoc/index.js | 52 -- build/plugins/msg/index.d.ts | 3 - build/plugins/msg/index.js | 89 --- build/plugins/pdf/components/PDFControls.d.ts | 3 - build/plugins/pdf/components/PDFControls.js | 57 -- .../plugins/pdf/components/PDFPagination.d.ts | 3 - build/plugins/pdf/components/PDFPagination.js | 53 -- build/plugins/pdf/components/icons/index.d.ts | 9 - build/plugins/pdf/components/icons/index.js | 66 -- .../pdf/components/pages/PDFAllPages.d.ts | 6 - .../pdf/components/pages/PDFAllPages.js | 36 -- .../pdf/components/pages/PDFPages.d.ts | 3 - .../plugins/pdf/components/pages/PDFPages.js | 52 -- .../pdf/components/pages/PDFSinglePage.d.ts | 6 - .../pdf/components/pages/PDFSinglePage.js | 49 -- build/plugins/pdf/index.d.ts | 3 - build/plugins/pdf/index.js | 52 -- build/plugins/pdf/state/actions.d.ts | 25 - build/plugins/pdf/state/actions.js | 27 - build/plugins/pdf/state/index.d.ts | 12 - build/plugins/pdf/state/index.js | 43 -- build/plugins/pdf/state/reducer.d.ts | 12 - build/plugins/pdf/state/reducer.js | 44 -- build/plugins/png/index.d.ts | 3 - build/plugins/png/index.js | 29 - build/plugins/tiff/index.d.ts | 3 - build/plugins/tiff/index.js | 73 --- build/plugins/tiff/tiffToCanvas.d.ts | 1 - build/plugins/tiff/tiffToCanvas.js | 601 ------------------ build/plugins/txt/index.d.ts | 3 - build/plugins/txt/index.js | 22 - build/state/actions.d.ts | 42 -- build/state/actions.js | 38 -- build/state/index.d.ts | 10 - build/state/index.js | 51 -- build/state/reducer.d.ts | 14 - build/state/reducer.js | 63 -- build/theme/index.d.ts | 2 - build/theme/index.js | 12 - build/types/index.d.ts | 39 -- build/types/index.js | 2 - build/utils/fileLoaders.d.ts | 12 - build/utils/fileLoaders.js | 101 --- build/utils/useDocumentLoader.d.ts | 12 - build/utils/useDocumentLoader.js | 81 --- build/utils/useRendererSelector.d.ts | 7 - build/utils/useRendererSelector.js | 39 -- build/utils/useWindowSize.d.ts | 4 - build/utils/useWindowSize.js | 33 - 77 files changed, 1 insertion(+), 2647 deletions(-) delete mode 100644 build/components/DocumentNav.d.ts delete mode 100644 build/components/DocumentNav.js delete mode 100644 build/components/FileName.d.ts delete mode 100644 build/components/FileName.js delete mode 100644 build/components/HeaderBar.d.ts delete mode 100644 build/components/HeaderBar.js delete mode 100644 build/components/ProxyRenderer.d.ts delete mode 100644 build/components/ProxyRenderer.js delete mode 100644 build/components/common/Button.d.ts delete mode 100644 build/components/common/Button.js delete mode 100644 build/components/common/index.d.ts delete mode 100644 build/components/common/index.js delete mode 100644 build/components/icons/index.d.ts delete mode 100644 build/components/icons/index.js delete mode 100644 build/index.d.ts delete mode 100644 build/index.js delete mode 100644 build/plugins/bmp/index.d.ts delete mode 100644 build/plugins/bmp/index.js delete mode 100644 build/plugins/html/index.d.ts delete mode 100644 build/plugins/html/index.js delete mode 100644 build/plugins/image/index.d.ts delete mode 100644 build/plugins/image/index.js delete mode 100644 build/plugins/index.d.ts delete mode 100644 build/plugins/index.js delete mode 100644 build/plugins/jpg/index.d.ts delete mode 100644 build/plugins/jpg/index.js delete mode 100644 build/plugins/msdoc/index.d.ts delete mode 100644 build/plugins/msdoc/index.js delete mode 100644 build/plugins/msg/index.d.ts delete mode 100644 build/plugins/msg/index.js delete mode 100644 build/plugins/pdf/components/PDFControls.d.ts delete mode 100644 build/plugins/pdf/components/PDFControls.js delete mode 100644 build/plugins/pdf/components/PDFPagination.d.ts delete mode 100644 build/plugins/pdf/components/PDFPagination.js delete mode 100644 build/plugins/pdf/components/icons/index.d.ts delete mode 100644 build/plugins/pdf/components/icons/index.js delete mode 100644 build/plugins/pdf/components/pages/PDFAllPages.d.ts delete mode 100644 build/plugins/pdf/components/pages/PDFAllPages.js delete mode 100644 build/plugins/pdf/components/pages/PDFPages.d.ts delete mode 100644 build/plugins/pdf/components/pages/PDFPages.js delete mode 100644 build/plugins/pdf/components/pages/PDFSinglePage.d.ts delete mode 100644 build/plugins/pdf/components/pages/PDFSinglePage.js delete mode 100644 build/plugins/pdf/index.d.ts delete mode 100644 build/plugins/pdf/index.js delete mode 100644 build/plugins/pdf/state/actions.d.ts delete mode 100644 build/plugins/pdf/state/actions.js delete mode 100644 build/plugins/pdf/state/index.d.ts delete mode 100644 build/plugins/pdf/state/index.js delete mode 100644 build/plugins/pdf/state/reducer.d.ts delete mode 100644 build/plugins/pdf/state/reducer.js delete mode 100644 build/plugins/png/index.d.ts delete mode 100644 build/plugins/png/index.js delete mode 100644 build/plugins/tiff/index.d.ts delete mode 100644 build/plugins/tiff/index.js delete mode 100644 build/plugins/tiff/tiffToCanvas.d.ts delete mode 100644 build/plugins/tiff/tiffToCanvas.js delete mode 100644 build/plugins/txt/index.d.ts delete mode 100644 build/plugins/txt/index.js delete mode 100644 build/state/actions.d.ts delete mode 100644 build/state/actions.js delete mode 100644 build/state/index.d.ts delete mode 100644 build/state/index.js delete mode 100644 build/state/reducer.d.ts delete mode 100644 build/state/reducer.js delete mode 100644 build/theme/index.d.ts delete mode 100644 build/theme/index.js delete mode 100644 build/types/index.d.ts delete mode 100644 build/types/index.js delete mode 100644 build/utils/fileLoaders.d.ts delete mode 100644 build/utils/fileLoaders.js delete mode 100644 build/utils/useDocumentLoader.d.ts delete mode 100644 build/utils/useDocumentLoader.js delete mode 100644 build/utils/useRendererSelector.d.ts delete mode 100644 build/utils/useRendererSelector.js delete mode 100644 build/utils/useWindowSize.d.ts delete mode 100644 build/utils/useWindowSize.js diff --git a/.gitignore b/.gitignore index 2ec07e7..2fbb6af 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,7 @@ yarn.lock /coverage # production -#/build +/build # misc .DS_Store diff --git a/build/components/DocumentNav.d.ts b/build/components/DocumentNav.d.ts deleted file mode 100644 index dd10e68..0000000 --- a/build/components/DocumentNav.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FC } from "react"; -export declare const DocumentNav: FC<{}>; diff --git a/build/components/DocumentNav.js b/build/components/DocumentNav.js deleted file mode 100644 index 48f1343..0000000 --- a/build/components/DocumentNav.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.DocumentNav = void 0; -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var state_1 = require("../state"); -var actions_1 = require("../state/actions"); -var Button_1 = require("./common/Button"); -var icons_1 = require("./icons"); -exports.DocumentNav = function () { - var _a = react_1.useContext(state_1.DocViewerContext), _b = _a.state, currentDocument = _b.currentDocument, currentFileNo = _b.currentFileNo, documents = _b.documents, dispatch = _a.dispatch; - if (documents.length <= 1 || !currentDocument) - return null; - var fileName = currentDocument.uri; - var splitURL = fileName.split("/"); - if (splitURL.length) { - fileName = splitURL[splitURL.length - 1]; - } - return (react_1.default.createElement(Container, { id: "doc-nav" }, - react_1.default.createElement("p", { id: "doc-nav-info" }, - "Doc ", - currentFileNo + 1, - " of ", - documents.length), - react_1.default.createElement(ButtonPrev, { id: "doc-nav-prev", onClick: function () { return dispatch(actions_1.previousDocument()); }, disabled: currentFileNo === 0 }, - react_1.default.createElement(icons_1.PrevDocIcon, { color: "#fff", size: "60%" })), - react_1.default.createElement(ButtonNext, { id: "doc-nav-next", onClick: function () { return dispatch(actions_1.nextDocument()); }, disabled: currentFileNo >= documents.length - 1 }, - react_1.default.createElement(icons_1.NextDocIcon, { color: "#fff", size: "60%" })))); -}; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n min-width: 150px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n margin: 0 10px;\n color: ", ";\n"], ["\n min-width: 150px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n margin: 0 10px;\n color: ", ";\n"])), function (props) { return props.theme.text_primary; }); -var ButtonPrev = styled_components_1.default(Button_1.ButtonSecondary)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n margin: 0 5px 0 10px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n margin: 0 5px 0 10px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); -var ButtonNext = styled_components_1.default(ButtonPrev)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin: 0 5px;\n"], ["\n margin: 0 5px;\n"]))); -var templateObject_1, templateObject_2, templateObject_3; diff --git a/build/components/FileName.d.ts b/build/components/FileName.d.ts deleted file mode 100644 index 9fa75b0..0000000 --- a/build/components/FileName.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FC } from "react"; -export declare const FileName: FC<{}>; diff --git a/build/components/FileName.js b/build/components/FileName.js deleted file mode 100644 index 8d39250..0000000 --- a/build/components/FileName.js +++ /dev/null @@ -1,50 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.FileName = void 0; -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var state_1 = require("../state"); -exports.FileName = function () { - var _a, _b; - var _c = react_1.useContext(state_1.DocViewerContext).state, config = _c.config, currentDocument = _c.currentDocument; - if (!currentDocument || ((_a = config === null || config === void 0 ? void 0 : config.header) === null || _a === void 0 ? void 0 : _a.disableFileName)) - return null; - var fileName = currentDocument.uri || ""; - fileName = decodeURI(fileName); - if (!((_b = config === null || config === void 0 ? void 0 : config.header) === null || _b === void 0 ? void 0 : _b.retainURLParams)) { - fileName = fileName.split("?")[0]; - } - var splitURL = fileName.split("/"); - if (splitURL.length) { - fileName = splitURL[splitURL.length - 1]; - } - return (react_1.default.createElement(Container, { id: "file-name", "data-testid": "file-name" }, fileName)); -}; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex: 1;\n text-align: left;\n color: ", ";\n font-weight: bold;\n margin: 0 10px;\n overflow: hidden;\n"], ["\n flex: 1;\n text-align: left;\n color: ", ";\n font-weight: bold;\n margin: 0 10px;\n overflow: hidden;\n"])), function (props) { return props.theme.text_primary; }); -var templateObject_1; diff --git a/build/components/HeaderBar.d.ts b/build/components/HeaderBar.d.ts deleted file mode 100644 index 10ee642..0000000 --- a/build/components/HeaderBar.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FC } from "react"; -export declare const HeaderBar: FC<{}>; diff --git a/build/components/HeaderBar.js b/build/components/HeaderBar.js deleted file mode 100644 index 6acaa4e..0000000 --- a/build/components/HeaderBar.js +++ /dev/null @@ -1,53 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HeaderBar = void 0; -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var state_1 = require("../state"); -var actions_1 = require("../state/actions"); -var DocumentNav_1 = require("./DocumentNav"); -var FileName_1 = require("./FileName"); -exports.HeaderBar = function () { - var _a, _b, _c; - var _d = react_1.useContext(state_1.DocViewerContext), state = _d.state, dispatch = _d.dispatch; - var config = state.config; - if ((_a = config === null || config === void 0 ? void 0 : config.header) === null || _a === void 0 ? void 0 : _a.disableHeader) - return null; - var override = (_c = (_b = config === null || config === void 0 ? void 0 : config.header) === null || _b === void 0 ? void 0 : _b.overrideComponent) === null || _c === void 0 ? void 0 : _c.call(_b, state, function () { return dispatch(actions_1.previousDocument()); }, function () { return dispatch(actions_1.nextDocument()); }); - if (override) { - return override; - } - else { - return (react_1.default.createElement(Container, { id: "header-bar", "data-testid": "header-bar" }, - react_1.default.createElement(FileName_1.FileName, null), - react_1.default.createElement(DocumentNav_1.DocumentNav, null))); - } -}; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n align-items: center;\n z-index: 1;\n padding: 0 10px;\n background-color: ", ";\n font-size: 16px;\n min-height: 50px;\n\n @media (max-width: 768px) {\n min-height: 30px;\n padding: 5px;\n font-size: 10px;\n }\n"], ["\n display: flex;\n justify-content: flex-end;\n align-items: center;\n z-index: 1;\n padding: 0 10px;\n background-color: ", ";\n font-size: 16px;\n min-height: 50px;\n\n @media (max-width: 768px) {\n min-height: 30px;\n padding: 5px;\n font-size: 10px;\n }\n"])), function (props) { return props.theme.primary; }); -var templateObject_1; diff --git a/build/components/ProxyRenderer.d.ts b/build/components/ProxyRenderer.d.ts deleted file mode 100644 index 9a76b12..0000000 --- a/build/components/ProxyRenderer.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FC } from "react"; -export declare const ProxyRenderer: FC<{}>; diff --git a/build/components/ProxyRenderer.js b/build/components/ProxyRenderer.js deleted file mode 100644 index d0cfab5..0000000 --- a/build/components/ProxyRenderer.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ProxyRenderer = void 0; -var react_1 = __importStar(require("react")); -var styled_components_1 = __importStar(require("styled-components")); -var actions_1 = require("../state/actions"); -var useDocumentLoader_1 = require("../utils/useDocumentLoader"); -var useWindowSize_1 = require("../utils/useWindowSize"); -var common_1 = require("./common"); -var icons_1 = require("./icons"); -exports.ProxyRenderer = function () { - var _a = useDocumentLoader_1.useDocumentLoader(), state = _a.state, dispatch = _a.dispatch, CurrentRenderer = _a.CurrentRenderer; - var documents = state.documents, documentLoading = state.documentLoading, currentDocument = state.currentDocument; - var size = useWindowSize_1.useWindowSize(); - var containerRef = react_1.useCallback(function (node) { - node && dispatch(actions_1.setRendererRect(node === null || node === void 0 ? void 0 : node.getBoundingClientRect())); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [size]); - var Contents = function () { - if (!documents.length) { - return react_1.default.createElement("div", { id: "no-documents" }); - } - else if (documentLoading) { - return (react_1.default.createElement(LoadingContainer, { id: "loading-renderer", "data-testid": "loading-renderer" }, - react_1.default.createElement(LoadingIconContainer, null, - react_1.default.createElement(icons_1.LoadingIcon, { color: "#444", size: 40 })))); - } - else { - if (CurrentRenderer) { - return react_1.default.createElement(CurrentRenderer, { mainState: state }); - } - else if (CurrentRenderer === undefined) { - return null; - } - else { - return (react_1.default.createElement("div", { id: "no-renderer", "data-testid": "no-renderer" }, - "No Renderer for file type ", currentDocument === null || currentDocument === void 0 ? void 0 : - currentDocument.fileType, - react_1.default.createElement(DownloadButton, { id: "no-renderer-download", href: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri, download: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri }, "Download File"))); - } - } - }; - return (react_1.default.createElement(Container, { id: "proxy-renderer", ref: containerRef }, - react_1.default.createElement(Contents, null))); -}; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n overflow-y: auto;\n"], ["\n display: flex;\n flex: 1;\n overflow-y: auto;\n"]))); -var LoadingContainer = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n height: 75px;\n align-items: center;\n justify-content: center;\n"], ["\n display: flex;\n flex: 1;\n height: 75px;\n align-items: center;\n justify-content: center;\n"]))); -var spinAnim = styled_components_1.keyframes(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n"], ["\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n"]))); -var LoadingIconContainer = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n animation-name: ", ";\n animation-duration: 4s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n"], ["\n animation-name: ", ";\n animation-duration: 4s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n"])), spinAnim); -var DownloadButton = styled_components_1.default(common_1.LinkButton)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: 130px;\n height: 30px;\n background-color: ", ";\n @media (max-width: 768px) {\n width: 125px;\n height: 25px;\n }\n"], ["\n width: 130px;\n height: 30px;\n background-color: ", ";\n @media (max-width: 768px) {\n width: 125px;\n height: 25px;\n }\n"])), function (props) { return props.theme.primary; }); -var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5; diff --git a/build/components/common/Button.d.ts b/build/components/common/Button.d.ts deleted file mode 100644 index cf90c8a..0000000 --- a/build/components/common/Button.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { IStyledProps } from "../../types"; -interface ButtonProps extends IStyledProps { - disabled?: boolean; -} -export declare const ButtonPrimaryStyle: import("styled-components").FlattenInterpolation>; -export declare const ButtonSecondaryStyle: import("styled-components").FlattenInterpolation>; -export declare const Button: import("styled-components").StyledComponent<"button", any, ButtonProps, never>; -export declare const LinkButton: import("styled-components").StyledComponent<"a", any, {}, never>; -export declare const ButtonPrimary: import("styled-components").StyledComponent<"button", any, ButtonProps, never>; -export declare const ButtonSecondary: import("styled-components").StyledComponent<"button", any, ButtonProps, never>; -export {}; diff --git a/build/components/common/Button.js b/build/components/common/Button.js deleted file mode 100644 index c9753d9..0000000 --- a/build/components/common/Button.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ButtonSecondary = exports.ButtonPrimary = exports.LinkButton = exports.Button = exports.ButtonSecondaryStyle = exports.ButtonPrimaryStyle = void 0; -var styled_components_1 = __importStar(require("styled-components")); -exports.ButtonPrimaryStyle = styled_components_1.css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n color: ", ";\n"], ["\n background-color: ", ";\n color: ", ";\n"])), function (props) { return props.theme.primary; }, function (props) { return props.theme.text_primary; }); -exports.ButtonSecondaryStyle = styled_components_1.css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n color: ", ";\n"], ["\n background-color: ", ";\n color: ", ";\n"])), function (props) { return props.theme.secondary; }, function (props) { return props.theme.text_secondary; }); -exports.Button = styled_components_1.default.button(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n display: flex;\n justify-content: center;\n align-items: center;\n width: 35px;\n height: 35px;\n padding: 0;\n margin: 0 0 0 5px;\n text-align: center;\n font-size: 18px;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n opacity: ", ";\n pointer-events: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"], ["\n ", "\n display: flex;\n justify-content: center;\n align-items: center;\n width: 35px;\n height: 35px;\n padding: 0;\n margin: 0 0 0 5px;\n text-align: center;\n font-size: 18px;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n opacity: ", ";\n pointer-events: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"])), exports.ButtonPrimaryStyle, function (props) { return (props.disabled ? 0.4 : 1); }, function (props) { return (props.disabled ? "none" : "all"); }); -exports.LinkButton = styled_components_1.default.a(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n align-items: center;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n background-color: ", ";\n color: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n width: 35px;\n height: 35px;\n font-size: 18px;\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"], ["\n display: flex;\n justify-content: center;\n align-items: center;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n background-color: ", ";\n color: ", ";\n box-shadow: 2px 2px 3px #00000033;\n\n width: 35px;\n height: 35px;\n font-size: 18px;\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n"])), function (props) { return props.theme.primary; }, function (props) { return props.theme.text_primary; }); -exports.ButtonPrimary = styled_components_1.default(exports.Button)(templateObject_5 || (templateObject_5 = __makeTemplateObject([""], [""]))); -exports.ButtonSecondary = styled_components_1.default(exports.Button)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.ButtonSecondaryStyle); -var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6; diff --git a/build/components/common/index.d.ts b/build/components/common/index.d.ts deleted file mode 100644 index e22c29a..0000000 --- a/build/components/common/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./Button"; diff --git a/build/components/common/index.js b/build/components/common/index.js deleted file mode 100644 index 344b492..0000000 --- a/build/components/common/index.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./Button"), exports); diff --git a/build/components/icons/index.d.ts b/build/components/icons/index.d.ts deleted file mode 100644 index 0ddb7ff..0000000 --- a/build/components/icons/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/// -export interface IIconProps { - color?: string; - size?: string | number | (string & {}) | undefined; - reverse?: boolean; -} -export declare const PrevDocIcon: (props: IIconProps) => JSX.Element; -export declare const NextDocIcon: (props: IIconProps) => JSX.Element; -export declare const LoadingIcon: (props: IIconProps) => JSX.Element; diff --git a/build/components/icons/index.js b/build/components/icons/index.js deleted file mode 100644 index 9093932..0000000 --- a/build/components/icons/index.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LoadingIcon = exports.NextDocIcon = exports.PrevDocIcon = void 0; -var react_1 = __importDefault(require("react")); -exports.PrevDocIcon = function (props) { - return react_1.default.createElement(DocNavIcon, __assign({}, props)); -}; -exports.NextDocIcon = function (props) { - return react_1.default.createElement(DocNavIcon, __assign({}, props, { reverse: true })); -}; -var DocNavIcon = function (props) { - var color = props.color, size = props.size, reverse = props.reverse; - return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(180deg)" : "") }, id: "arrow_left", version: "1.1", viewBox: "0 0 32 32", xmlSpace: "preserve" }, - react_1.default.createElement("path", { clipRule: "evenodd", d: "M31.106,15H3.278l8.325-8.293 c0.391-0.391,0.391-1.024,0-1.414c-0.391-0.391-1.024-0.391-1.414,0l-9.9,9.899c-0.385,0.385-0.385,1.029,0,1.414l9.9,9.9 c0.391,0.391,1.024,0.391,1.414,0c0.391-0.391,0.391-1.024,0-1.414L3.278,17h27.828c0.552,0,1-0.448,1-1 C32.106,15.448,31.658,15,31.106,15z", fill: color || "#aaa", fillRule: "evenodd", id: "Arrow_Back" }))); -}; -exports.LoadingIcon = function (props) { - var color = props.color, size = props.size; - return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", version: "1.1", id: "Icons", viewBox: "0 0 32 32", xmlSpace: "preserve", style: { alignSelf: "center", justifySelf: "center" } }, - react_1.default.createElement("g", null, - react_1.default.createElement("path", { fill: color || "#aaa", d: "M16,2c-0.6,0-1,0.4-1,1v5c0,0.6,0.4,1,1,1s1-0.4,1-1V3C17,2.4,16.6,2,16,2z" }), - react_1.default.createElement("path", { fill: color || "#aaa", d: "M7.5,6.1c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l3.5,3.5c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.5,6.1\n\t\tz" }), - react_1.default.createElement("path", { fill: color || "#aaa", d: "M9,16c0-0.6-0.4-1-1-1H3c-0.6,0-1,0.4-1,1s0.4,1,1,1h5C8.6,17,9,16.6,9,16z" }), - react_1.default.createElement("path", { fill: color || "#aaa", d: "M9.6,20.9l-3.5,3.5c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l3.5-3.5c0.4-0.4,0.4-1,0-1.4\n\t\tS10,20.6,9.6,20.9z" }), - react_1.default.createElement("path", { fill: color || "#aaa", d: "M16,23c-0.6,0-1,0.4-1,1v5c0,0.6,0.4,1,1,1s1-0.4,1-1v-5C17,23.4,16.6,23,16,23z" }), - react_1.default.createElement("path", { fill: color || "#aaa", d: "M22.4,20.9c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l3.5,3.5c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4\n\t\tL22.4,20.9z" }), - react_1.default.createElement("path", { fill: color || "#aaa", d: "M29,15h-5c-0.6,0-1,0.4-1,1s0.4,1,1,1h5c0.6,0,1-0.4,1-1S29.6,15,29,15z" }), - react_1.default.createElement("path", { fill: color || "#aaa", d: "M21.7,11.3c0.3,0,0.5-0.1,0.7-0.3l3.5-3.5c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-3.5,3.5c-0.4,0.4-0.4,1,0,1.4\n\t\tC21.1,11.2,21.4,11.3,21.7,11.3z" })))); -}; diff --git a/build/index.d.ts b/build/index.d.ts deleted file mode 100644 index bd8db23..0000000 --- a/build/index.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { CSSProperties, FC } from "react"; -import BMPRenderer from "./plugins/bmp"; -import HTMLRenderer from "./plugins/html"; -import ImageProxyRenderer from "./plugins/image"; -import JPGRenderer from "./plugins/jpg"; -import MSDocRenderer from "./plugins/msdoc"; -import MSGRenderer from "./plugins/msg"; -import PDFRenderer from "./plugins/pdf"; -import PNGRenderer from "./plugins/png"; -import TIFFRenderer from "./plugins/tiff"; -import TXTRenderer from "./plugins/txt"; -import { DocRenderer, IConfig, IDocument, ITheme } from "./types"; -export interface DocViewerProps { - documents: IDocument[]; - className?: string; - style?: CSSProperties; - config?: IConfig; - theme?: ITheme; - pluginRenderers?: DocRenderer[]; -} -declare const DocViewer: FC; -export default DocViewer; -export { DocViewerRenderers } from "./plugins"; -export * from "./types"; -export * from "./utils/fileLoaders"; -export { BMPRenderer, HTMLRenderer, ImageProxyRenderer, JPGRenderer, MSDocRenderer, MSGRenderer, PDFRenderer, PNGRenderer, TIFFRenderer, TXTRenderer, }; diff --git a/build/index.js b/build/index.js deleted file mode 100644 index 1f17d12..0000000 --- a/build/index.js +++ /dev/null @@ -1,87 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TXTRenderer = exports.TIFFRenderer = exports.PNGRenderer = exports.PDFRenderer = exports.MSGRenderer = exports.MSDocRenderer = exports.JPGRenderer = exports.ImageProxyRenderer = exports.HTMLRenderer = exports.BMPRenderer = void 0; -var react_1 = __importDefault(require("react")); -var styled_components_1 = __importStar(require("styled-components")); -var HeaderBar_1 = require("./components/HeaderBar"); -var ProxyRenderer_1 = require("./components/ProxyRenderer"); -var bmp_1 = __importDefault(require("./plugins/bmp")); -exports.BMPRenderer = bmp_1.default; -var html_1 = __importDefault(require("./plugins/html")); -exports.HTMLRenderer = html_1.default; -var image_1 = __importDefault(require("./plugins/image")); -exports.ImageProxyRenderer = image_1.default; -var jpg_1 = __importDefault(require("./plugins/jpg")); -exports.JPGRenderer = jpg_1.default; -var msdoc_1 = __importDefault(require("./plugins/msdoc")); -exports.MSDocRenderer = msdoc_1.default; -var msg_1 = __importDefault(require("./plugins/msg")); -exports.MSGRenderer = msg_1.default; -var pdf_1 = __importDefault(require("./plugins/pdf")); -exports.PDFRenderer = pdf_1.default; -var png_1 = __importDefault(require("./plugins/png")); -exports.PNGRenderer = png_1.default; -var tiff_1 = __importDefault(require("./plugins/tiff")); -exports.TIFFRenderer = tiff_1.default; -var txt_1 = __importDefault(require("./plugins/txt")); -exports.TXTRenderer = txt_1.default; -var state_1 = require("./state"); -var theme_1 = require("./theme"); -var DocViewer = function (props) { - var documents = props.documents, theme = props.theme; - if (!documents || documents === undefined) { - throw new Error("Please provide an array of documents to DocViewer.\ne.g. "); - } - return (react_1.default.createElement(state_1.AppProvider, __assign({}, props), - react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme ? __assign(__assign({}, theme_1.defaultTheme), theme) : theme_1.defaultTheme }, - react_1.default.createElement(Container, __assign({ id: "react-doc-viewer", "data-testid": "react-doc-viewer" }, props), - react_1.default.createElement(HeaderBar_1.HeaderBar, null), - react_1.default.createElement(ProxyRenderer_1.ProxyRenderer, null))))); -}; -exports.default = DocViewer; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: #eee;\n"], ["\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: #eee;\n"]))); -var plugins_1 = require("./plugins"); -Object.defineProperty(exports, "DocViewerRenderers", { enumerable: true, get: function () { return plugins_1.DocViewerRenderers; } }); -__exportStar(require("./types"), exports); -__exportStar(require("./utils/fileLoaders"), exports); -var templateObject_1; diff --git a/build/plugins/bmp/index.d.ts b/build/plugins/bmp/index.d.ts deleted file mode 100644 index cd12da0..0000000 --- a/build/plugins/bmp/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const BMPRenderer: DocRenderer; -export default BMPRenderer; diff --git a/build/plugins/bmp/index.js b/build/plugins/bmp/index.js deleted file mode 100644 index a474945..0000000 --- a/build/plugins/bmp/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importDefault(require("react")); -var image_1 = __importDefault(require("../image")); -var BMPRenderer = function (props) { return react_1.default.createElement(image_1.default, __assign({}, props)); }; -BMPRenderer.fileTypes = ["bmp", "image/bmp"]; -BMPRenderer.weight = 0; -exports.default = BMPRenderer; diff --git a/build/plugins/html/index.d.ts b/build/plugins/html/index.d.ts deleted file mode 100644 index 4bf5a19..0000000 --- a/build/plugins/html/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const HTMLRenderer: DocRenderer; -export default HTMLRenderer; diff --git a/build/plugins/html/index.js b/build/plugins/html/index.js deleted file mode 100644 index a371954..0000000 --- a/build/plugins/html/index.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var fileLoaders_1 = require("../../utils/fileLoaders"); -var HTMLRenderer = function (_a) { - var currentDocument = _a.mainState.currentDocument; - react_1.useEffect(function () { - var b64String = currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData; - var bodyBase64 = (b64String === null || b64String === void 0 ? void 0 : b64String.replace("data:text/html;base64,", "")) || ""; - var body = window.atob(bodyBase64); - var iframeCont = document.getElementById("html-body"); - var iframe = (iframeCont === null || iframeCont === void 0 ? void 0 : iframeCont.contentWindow) && iframeCont.contentWindow; - if (!iframe) - return; - var iframeDoc = iframe.document; - iframeDoc.open(); - iframeDoc.write("" + body); - iframeDoc.close(); - }, []); - return (react_1.default.createElement(Container, { id: "html-renderer" }, - react_1.default.createElement(BodyIFrame, { id: "html-body", sandbox: "allow-same-origin" }))); -}; -exports.default = HTMLRenderer; -HTMLRenderer.fileTypes = ["htm", "html", "text/htm", "text/html"]; -HTMLRenderer.weight = 0; -HTMLRenderer.fileLoader = fileLoaders_1.dataURLFileLoader; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"], ["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"]))); -var BodyIFrame = styled_components_1.default.iframe(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"], ["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); -var templateObject_1, templateObject_2; diff --git a/build/plugins/image/index.d.ts b/build/plugins/image/index.d.ts deleted file mode 100644 index c605ca3..0000000 --- a/build/plugins/image/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const ImageProxyRenderer: DocRenderer; -export default ImageProxyRenderer; diff --git a/build/plugins/image/index.js b/build/plugins/image/index.js deleted file mode 100644 index 47694de..0000000 --- a/build/plugins/image/index.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importDefault(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var ImageProxyRenderer = function (props) { - var currentDocument = props.mainState.currentDocument, children = props.children; - if (!currentDocument) - return null; - return (react_1.default.createElement(Container, __assign({ id: "image-renderer" }, props), children || (react_1.default.createElement(Img, { id: "image-img", src: currentDocument.fileData })))); -}; -exports.default = ImageProxyRenderer; -ImageProxyRenderer.fileTypes = []; -ImageProxyRenderer.weight = 0; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background-color: #fff;\n"], ["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background-color: #fff;\n"]))); -var Img = styled_components_1.default.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-width: 95%;\n max-height: 95%;\n"], ["\n max-width: 95%;\n max-height: 95%;\n"]))); -var templateObject_1, templateObject_2; diff --git a/build/plugins/index.d.ts b/build/plugins/index.d.ts deleted file mode 100644 index 4648606..0000000 --- a/build/plugins/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const DocViewerRenderers: import("..").DocRenderer[]; diff --git a/build/plugins/index.js b/build/plugins/index.js deleted file mode 100644 index b630160..0000000 --- a/build/plugins/index.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.DocViewerRenderers = void 0; -var bmp_1 = __importDefault(require("./bmp")); -var html_1 = __importDefault(require("./html")); -var jpg_1 = __importDefault(require("./jpg")); -var msdoc_1 = __importDefault(require("./msdoc")); -var msg_1 = __importDefault(require("./msg")); -var pdf_1 = __importDefault(require("./pdf")); -var png_1 = __importDefault(require("./png")); -var tiff_1 = __importDefault(require("./tiff")); -var txt_1 = __importDefault(require("./txt")); -exports.DocViewerRenderers = [ - bmp_1.default, - html_1.default, - jpg_1.default, - msdoc_1.default, - msg_1.default, - pdf_1.default, - png_1.default, - tiff_1.default, - txt_1.default, -]; diff --git a/build/plugins/jpg/index.d.ts b/build/plugins/jpg/index.d.ts deleted file mode 100644 index bcbef96..0000000 --- a/build/plugins/jpg/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const JPGRenderer: DocRenderer; -export default JPGRenderer; diff --git a/build/plugins/jpg/index.js b/build/plugins/jpg/index.js deleted file mode 100644 index 1d36b26..0000000 --- a/build/plugins/jpg/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importDefault(require("react")); -var image_1 = __importDefault(require("../image")); -var JPGRenderer = function (props) { return react_1.default.createElement(image_1.default, __assign({}, props)); }; -JPGRenderer.fileTypes = ["jpg", "jpeg", "image/jpg", "image/jpeg"]; -JPGRenderer.weight = 0; -exports.default = JPGRenderer; diff --git a/build/plugins/msdoc/index.d.ts b/build/plugins/msdoc/index.d.ts deleted file mode 100644 index ff7d15f..0000000 --- a/build/plugins/msdoc/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const MSDocRenderer: DocRenderer; -export default MSDocRenderer; diff --git a/build/plugins/msdoc/index.js b/build/plugins/msdoc/index.js deleted file mode 100644 index 61657b7..0000000 --- a/build/plugins/msdoc/index.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __spreadArrays = (this && this.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importDefault(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var MSDocRenderer = function (_a) { - var currentDocument = _a.mainState.currentDocument; - if (!currentDocument) - return null; - return (react_1.default.createElement(Container, { id: "msdoc-renderer" }, - react_1.default.createElement(IFrame, { id: "msdoc-iframe", title: "msdoc-iframe", src: "https://view.officeapps.live.com/op/embed.aspx?src=" + encodeURIComponent(currentDocument.uri), frameBorder: "0" }))); -}; -exports.default = MSDocRenderer; -var MSDocFTMaps = { - doc: ["doc", "application/msword"], - docx: [ - "docx", - "application/vnd.openxmlformats-officedocument.wordprocessingml.document", - ], - xls: ["xls", "application/vnd.ms-excel"], - xlsx: [ - "xlsx", - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", - ], - ppt: ["ppt", "application/vnd.ms-powerpoint"], - pptx: [ - "pptx", - "application/vnd.openxmlformats-officedocument.presentationml.presentation", - ], -}; -MSDocRenderer.fileTypes = __spreadArrays(MSDocFTMaps.doc, MSDocFTMaps.docx, MSDocFTMaps.xls, MSDocFTMaps.xlsx, MSDocFTMaps.ppt, MSDocFTMaps.pptx); -MSDocRenderer.weight = 0; -MSDocRenderer.fileLoader = function (_a) { - var fileLoaderComplete = _a.fileLoaderComplete; - return fileLoaderComplete(); -}; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n"], ["\n width: 100%;\n"]))); -var IFrame = styled_components_1.default.iframe(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n border: 0;\n"], ["\n width: 100%;\n height: 100%;\n border: 0;\n"]))); -var templateObject_1, templateObject_2; diff --git a/build/plugins/msg/index.d.ts b/build/plugins/msg/index.d.ts deleted file mode 100644 index 1d32d7e..0000000 --- a/build/plugins/msg/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const MSGRenderer: DocRenderer; -export default MSGRenderer; diff --git a/build/plugins/msg/index.js b/build/plugins/msg/index.js deleted file mode 100644 index eda7e7e..0000000 --- a/build/plugins/msg/index.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var wl_msg_reader_1 = require("wl-msg-reader"); -var fileLoaders_1 = require("../../utils/fileLoaders"); -var MSGRenderer = function (_a) { - var _b; - var currentDocument = _a.mainState.currentDocument; - var _c = react_1.useState(), fileData = _c[0], setFileData = _c[1]; - react_1.useEffect(function () { - if (!currentDocument || !currentDocument.fileData) - return; - var _fd = new wl_msg_reader_1.MSGReader(currentDocument.fileData).getFileData(); - setFileData(_fd); - }, [currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData]); - react_1.useEffect(function () { - if (!fileData || fileData.hasOwnProperty("error")) - return; - var iframeCont = document.getElementById("msg-body"); - var iframe = (iframeCont === null || iframeCont === void 0 ? void 0 : iframeCont.contentWindow) && iframeCont.contentWindow; - if (!iframe) - return; - var iframeDoc = iframe.document; - var body = fileData.body.replace(/(\r\n|\n|\r)/gm, "
"); - iframeDoc.open(); - iframeDoc.write("" + body); - iframeDoc.close(); - }, [fileData]); - if (!fileData || fileData.hasOwnProperty("error")) { - return react_1.default.createElement("span", null, (_b = fileData) === null || _b === void 0 ? void 0 : _b.error); - } - var _d = fileData, recipients = _d.recipients, subject = _d.subject, senderEmail = _d.senderEmail, senderName = _d.senderName; - return (react_1.default.createElement(Container, { id: "msg-renderer" }, - react_1.default.createElement("h2", { id: "msg-subject-title", style: { marginBottom: 0 } }, subject), - react_1.default.createElement(Sender, { name: senderName, email: senderEmail }), - react_1.default.createElement(RecipientContainer, { id: "msg-recipient" }, - react_1.default.createElement("h3", { id: "msg-recipient-title" }, "Recipients"), - react_1.default.createElement("ul", { id: "msg-recipient-ul" }, recipients.map(function (r, i) { return (react_1.default.createElement("li", { key: i, id: "msg-recipient-li" }, - react_1.default.createElement("span", { id: "msg-recipient-name" }, r.name), - r.hasOwnProperty("email") && (react_1.default.createElement("span", { id: "msg-recipient-email" }, - " - ", - r.email)))); }))), - react_1.default.createElement(BodyIFrame, { id: "msg-body", sandbox: "allow-same-origin" }))); -}; -var Sender = function (_a) { - var name = _a.name, email = _a.email; - if (!name && !email) - return null; - return (react_1.default.createElement(SenderContainer, { id: "msg-sender" }, - react_1.default.createElement("h3", { id: "msg-sender-title" }, "Sender"), - name !== undefined && react_1.default.createElement("div", { id: "msg-sender-name" }, name), - email !== undefined && react_1.default.createElement("div", { id: "msg-sender-email" }, email))); -}; -exports.default = MSGRenderer; -MSGRenderer.fileTypes = ["msg", "application/vnd.ms-outlook"]; -MSGRenderer.weight = 0; -MSGRenderer.fileLoader = fileLoaders_1.arrayBufferFileLoader; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"], ["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n"]))); -var SenderContainer = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 0 15px 15px 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"], ["\n padding: 0 15px 15px 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); -var RecipientContainer = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n padding: 0 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"], ["\n padding: 0 15px;\n margin-top: 20px;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); -var BodyIFrame = styled_components_1.default.iframe(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"], ["\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ", ";\n"])), function (props) { return props.theme.secondary; }); -var templateObject_1, templateObject_2, templateObject_3, templateObject_4; diff --git a/build/plugins/pdf/components/PDFControls.d.ts b/build/plugins/pdf/components/PDFControls.d.ts deleted file mode 100644 index 0d3e451..0000000 --- a/build/plugins/pdf/components/PDFControls.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { FC } from "react"; -declare const PDFControls: FC<{}>; -export default PDFControls; diff --git a/build/plugins/pdf/components/PDFControls.js b/build/plugins/pdf/components/PDFControls.js deleted file mode 100644 index 7681bb5..0000000 --- a/build/plugins/pdf/components/PDFControls.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var common_1 = require("../../../components/common"); -var state_1 = require("../state"); -var actions_1 = require("../state/actions"); -var reducer_1 = require("../state/reducer"); -var icons_1 = require("./icons"); -var PDFPagination_1 = __importDefault(require("./PDFPagination")); -var PDFControls = function () { - var _a = react_1.useContext(state_1.PDFContext), _b = _a.state, mainState = _b.mainState, paginated = _b.paginated, zoomLevel = _b.zoomLevel, numPages = _b.numPages, dispatch = _a.dispatch; - var currentDocument = (mainState === null || mainState === void 0 ? void 0 : mainState.currentDocument) || null; - return (react_1.default.createElement(Container, { id: "pdf-controls" }, - paginated && numPages > 1 && react_1.default.createElement(PDFPagination_1.default, null), - (currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData) && (react_1.default.createElement(DownloadButton, { id: "pdf-download", href: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData, download: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri }, - react_1.default.createElement(icons_1.DownloadPDFIcon, { color: "#000", size: "75%" }))), - react_1.default.createElement(ControlButton, { id: "pdf-zoom-out", onMouseDown: function () { return dispatch(actions_1.setZoomLevel(zoomLevel - 0.1)); } }, - react_1.default.createElement(icons_1.ZoomOutPDFIcon, { color: "#000", size: "80%" })), - react_1.default.createElement(ControlButton, { id: "pdf-zoom-in", onMouseDown: function () { return dispatch(actions_1.setZoomLevel(zoomLevel + 0.1)); } }, - react_1.default.createElement(icons_1.ZoomInPDFIcon, { color: "#000", size: "80%" })), - react_1.default.createElement(ControlButton, { id: "pdf-zoom-reset", onMouseDown: function () { return dispatch(actions_1.setZoomLevel(reducer_1.initialPDFState.zoomLevel)); }, disabled: zoomLevel === reducer_1.initialPDFState.zoomLevel }, - react_1.default.createElement(icons_1.ResetZoomPDFIcon, { color: "#000", size: "70%" })), - numPages > 1 && (react_1.default.createElement(ControlButton, { id: "pdf-toggle-pagination", onMouseDown: function () { return dispatch(actions_1.setPDFPaginated(!paginated)); } }, - react_1.default.createElement(icons_1.TogglePaginationPDFIcon, { color: "#000", size: "70%", reverse: paginated }))))); -}; -exports.default = PDFControls; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n justify-content: flex-end;\n padding: 8px;\n background-color: ", ";\n box-shadow: 0px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n padding: 6px;\n }\n"], ["\n display: flex;\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n justify-content: flex-end;\n padding: 8px;\n background-color: ", ";\n box-shadow: 0px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n padding: 6px;\n }\n"])), function (props) { return props.theme.tertiary; }); -var ControlButton = styled_components_1.default(common_1.Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); -var DownloadButton = styled_components_1.default(common_1.LinkButton)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); -var templateObject_1, templateObject_2, templateObject_3; diff --git a/build/plugins/pdf/components/PDFPagination.d.ts b/build/plugins/pdf/components/PDFPagination.d.ts deleted file mode 100644 index bac8658..0000000 --- a/build/plugins/pdf/components/PDFPagination.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { FC } from "react"; -declare const PDFPagination: FC<{}>; -export default PDFPagination; diff --git a/build/plugins/pdf/components/PDFPagination.js b/build/plugins/pdf/components/PDFPagination.js deleted file mode 100644 index fdec41b..0000000 --- a/build/plugins/pdf/components/PDFPagination.js +++ /dev/null @@ -1,53 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var common_1 = require("../../../components/common"); -var state_1 = require("../state"); -var actions_1 = require("../state/actions"); -var icons_1 = require("./icons"); -var PDFPagination = function () { - var _a = react_1.useContext(state_1.PDFContext), _b = _a.state, currentPage = _b.currentPage, numPages = _b.numPages, dispatch = _a.dispatch; - return (react_1.default.createElement(Container, { id: "pdf-pagination" }, - react_1.default.createElement(PageNavButtonLeft, { id: "pdf-pagination-prev", onClick: function () { return dispatch(actions_1.setCurrentPage(currentPage - 1)); }, disabled: currentPage === 1 }, - react_1.default.createElement(icons_1.PrevPDFNavIcon, { color: "#000", size: "50%" })), - react_1.default.createElement(PageTag, { id: "pdf-pagination-info" }, - "Page ", - currentPage, - "/", - numPages), - react_1.default.createElement(PageNavButtonRight, { id: "pdf-pagination-next", onClick: function () { return dispatch(actions_1.setCurrentPage(currentPage + 1)); }, disabled: currentPage >= numPages }, - react_1.default.createElement(icons_1.NextPDFNavIcon, { color: "#000", size: "50%" })))); -}; -exports.default = PDFPagination; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n"], ["\n display: flex;\n align-items: center;\n"]))); -var PageNavButtonLeft = styled_components_1.default(common_1.Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 30px;\n height: 30px;\n margin: 0 5px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"], ["\n width: 30px;\n height: 30px;\n margin: 0 5px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n"]))); -var PageNavButtonRight = styled_components_1.default(PageNavButtonLeft)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin: 0 20px 0 5px;\n"], ["\n margin: 0 20px 0 5px;\n"]))); -var PageTag = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"], ["\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"])), function (props) { return props.theme.text_primary; }); -var templateObject_1, templateObject_2, templateObject_3, templateObject_4; diff --git a/build/plugins/pdf/components/icons/index.d.ts b/build/plugins/pdf/components/icons/index.d.ts deleted file mode 100644 index 291af6a..0000000 --- a/build/plugins/pdf/components/icons/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/// -import { IIconProps } from "../../../../components/icons"; -export declare const PrevPDFNavIcon: (props: IIconProps) => JSX.Element; -export declare const NextPDFNavIcon: (props: IIconProps) => JSX.Element; -export declare const DownloadPDFIcon: (props: IIconProps) => JSX.Element; -export declare const ZoomInPDFIcon: (props: IIconProps) => JSX.Element; -export declare const ZoomOutPDFIcon: (props: IIconProps) => JSX.Element; -export declare const ResetZoomPDFIcon: (props: IIconProps) => JSX.Element; -export declare const TogglePaginationPDFIcon: (props: IIconProps) => JSX.Element; diff --git a/build/plugins/pdf/components/icons/index.js b/build/plugins/pdf/components/icons/index.js deleted file mode 100644 index ec70fc6..0000000 --- a/build/plugins/pdf/components/icons/index.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TogglePaginationPDFIcon = exports.ResetZoomPDFIcon = exports.ZoomOutPDFIcon = exports.ZoomInPDFIcon = exports.DownloadPDFIcon = exports.NextPDFNavIcon = exports.PrevPDFNavIcon = void 0; -var react_1 = __importDefault(require("react")); -exports.PrevPDFNavIcon = function (props) { - return react_1.default.createElement(PDFNavArrow, __assign({}, props, { reverse: true })); -}; -exports.NextPDFNavIcon = function (props) { - return react_1.default.createElement(PDFNavArrow, __assign({}, props)); -}; -var PDFNavArrow = function (props) { - var color = props.color, size = props.size, reverse = props.reverse; - return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(180deg)" : "") }, viewBox: "0 0 12 12", version: "1.1" }, - react_1.default.createElement("g", { id: "Icons", stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" }, - react_1.default.createElement("g", { id: "Rounded", transform: "translate(-548.000000, -1000.000000)" }, - react_1.default.createElement("g", { id: "AV", transform: "translate(100.000000, 852.000000)" }, - react_1.default.createElement("g", { id: "-Round-/-AV-/-skip_next", transform: "translate(442.000000, 142.000000)" }, - react_1.default.createElement("g", null, - react_1.default.createElement("rect", { id: "Rectangle-Copy-52", x: "0", y: "0", width: "24", height: "24" }), - react_1.default.createElement("path", { d: "M7.58,16.89 L13.35,12.82 C13.91,12.42 13.91,11.58 13.35,11.19 L7.58,7.11 C6.91,6.65 6,7.12 6,7.93 L6,16.07 C6,16.88 6.91,17.35 7.58,16.89 Z M16,7 L16,17 C16,17.55 16.45,18 17,18 C17.55,18 18,17.55 18,17 L18,7 C18,6.45 17.55,6 17,6 C16.45,6 16,6.45 16,7 Z", id: "icon_color", fill: color || "#aaa" })))))))); -}; -exports.DownloadPDFIcon = function (props) { - var color = props.color, size = props.size, reverse = props.reverse; - return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(180deg)" : "") }, id: "Layer_1", viewBox: "0 0 24 24" }, - react_1.default.createElement("path", { d: "M20.57,9.43A8,8,0,0,0,5.26,10,5,5,0,1,0,5,20h5V18H5a3,3,0,0,1,0-6,3.1,3.1,0,0,1,.79.12l1.12.31.14-1.15a6,6,0,0,1,11.74-.82l.15.54.54.16A3.46,3.46,0,0,1,22,14.5,3.5,3.5,0,0,1,18.5,18H16v2h2.5A5.48,5.48,0,0,0,20.57,9.43Z", fill: color || "#aaa" }), - react_1.default.createElement("polygon", { points: "12 11 12 15.59 10.71 14.29 9.29 15.71 13 19.41 16.71 15.71 15.29 14.29 14 15.59 14 11 12 11", fill: color || "#aaa" }))); -}; -exports.ZoomInPDFIcon = function (props) { - return react_1.default.createElement(ZoomPDFIcon, __assign({}, props)); -}; -exports.ZoomOutPDFIcon = function (props) { - return react_1.default.createElement(ZoomPDFIcon, __assign({}, props, { reverse: true })); -}; -var ZoomPDFIcon = function (props) { - var color = props.color, size = props.size, reverse = props.reverse; - return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", viewBox: "0 0 32 32", version: "1.1" }, - react_1.default.createElement("g", { id: "Page-1", stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" }, - react_1.default.createElement("g", { id: "search-plus-icon", fill: color || "#aaa" }, - react_1.default.createElement("path", { id: "search-plus", d: reverse - ? "M 13 13 L 16 13 L 19 13 L 19 16 L 16 16 L 13 16 L 10 16 L 10 13 Z M 19.4271 21.4271 C 18.0372 22.4175 16.3367 23 14.5 23 C 9.8056 23 6 19.1944 6 14.5 C 6 9.8056 9.8056 6 14.5 6 C 19.1944 6 23 9.8056 23 14.5 C 23 16.3367 22.4175 18.0372 21.4271 19.4271 L 27.0119 25.0119 C 27.5621 25.5621 27.5575 26.4425 27.0117 26.9883 L 26.9883 27.0117 C 26.4439 27.5561 25.5576 27.5576 25.0119 27.0119 L 19.4271 21.4271 L 19.4271 21.4271 L 19.4271 21.4271 Z M 14.5 21 C 18.0899 21 21 18.0899 21 14.5 C 21 10.9101 18.0899 8 14.5 8 C 10.9101 8 8 10.9101 8 14.5 C 8 18.0899 10.9101 21 14.5 21 L 14.5 21 Z" - : "M 13 13 L 13 10 L 16 10 L 16 13 L 19 13 L 19 16 L 16 16 L 16 19 L 13 19 L 13 16 L 10 16 L 10 13 Z M 19.4271 21.4271 C 18.0372 22.4175 16.3367 23 14.5 23 C 9.8056 23 6 19.1944 6 14.5 C 6 9.8056 9.8056 6 14.5 6 C 19.1944 6 23 9.8056 23 14.5 C 23 16.3367 22.4175 18.0372 21.4271 19.4271 L 27.0119 25.0119 C 27.5621 25.5621 27.5575 26.4425 27.0117 26.9883 L 26.9883 27.0117 C 26.4439 27.5561 25.5576 27.5576 25.0119 27.0119 L 19.4271 21.4271 L 19.4271 21.4271 L 19.4271 21.4271 Z M 14.5 21 C 18.0899 21 21 18.0899 21 14.5 C 21 10.9101 18.0899 8 14.5 8 C 10.9101 8 8 10.9101 8 14.5 C 8 18.0899 10.9101 21 14.5 21 L 14.5 21 Z" }))))); -}; -exports.ResetZoomPDFIcon = function (props) { - var color = props.color, size = props.size; - return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", viewBox: "0 0 24 24" }, - react_1.default.createElement("path", { fill: color || "#aaa", d: "M9.29,13.29,4,18.59V17a1,1,0,0,0-2,0v4a1,1,0,0,0,.08.38,1,1,0,0,0,.54.54A1,1,0,0,0,3,22H7a1,1,0,0,0,0-2H5.41l5.3-5.29a1,1,0,0,0-1.42-1.42ZM5.41,4H7A1,1,0,0,0,7,2H3a1,1,0,0,0-.38.08,1,1,0,0,0-.54.54A1,1,0,0,0,2,3V7A1,1,0,0,0,4,7V5.41l5.29,5.3a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42ZM21,16a1,1,0,0,0-1,1v1.59l-5.29-5.3a1,1,0,0,0-1.42,1.42L18.59,20H17a1,1,0,0,0,0,2h4a1,1,0,0,0,.38-.08,1,1,0,0,0,.54-.54A1,1,0,0,0,22,21V17A1,1,0,0,0,21,16Zm.92-13.38a1,1,0,0,0-.54-.54A1,1,0,0,0,21,2H17a1,1,0,0,0,0,2h1.59l-5.3,5.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L20,5.41V7a1,1,0,0,0,2,0V3A1,1,0,0,0,21.92,2.62Z" }))); -}; -exports.TogglePaginationPDFIcon = function (props) { - var color = props.color, size = props.size, reverse = props.reverse; - return (react_1.default.createElement("svg", { width: size || "100%", height: size || "100%", style: { transform: "" + (reverse ? "rotate(90deg)" : "") }, version: "1.1", id: "Scroll_1", viewBox: "0 0 297 297", xmlSpace: "preserve" }, - react_1.default.createElement("path", { fill: color || "#aaa", d: "M206.004,200.723h-31.231V96.277h31.231c0.005,0,0.014,0,0.019,0c5.289,0,9.575-4.287,9.575-9.574\n c0-2.342-0.841-4.488-2.236-6.151L156.168,3.851C154.36,1.428,151.515,0,148.492,0c-3.023,0-5.868,1.428-7.675,3.851L83.302,80.98\n c-2.166,2.902-2.507,6.779-0.883,10.017c1.624,3.236,4.936,5.28,8.559,5.28h31.231v104.445H90.978c-3.623,0-6.934,2.044-8.559,5.28\n c-1.624,3.237-1.283,7.114,0.883,10.017l57.513,77.129c1.808,2.424,4.652,3.852,7.675,3.852c3.023,0,5.868-1.428,7.676-3.852\n l57.514-77.129c2.164-2.902,2.507-6.779,0.883-10.017C212.938,202.767,209.627,200.723,206.004,200.723z" }))); -}; diff --git a/build/plugins/pdf/components/pages/PDFAllPages.d.ts b/build/plugins/pdf/components/pages/PDFAllPages.d.ts deleted file mode 100644 index df2a8a8..0000000 --- a/build/plugins/pdf/components/pages/PDFAllPages.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FC } from "react"; -interface Props { - pageNum?: number; -} -export declare const PDFAllPages: FC; -export {}; diff --git a/build/plugins/pdf/components/pages/PDFAllPages.js b/build/plugins/pdf/components/pages/PDFAllPages.js deleted file mode 100644 index a62d162..0000000 --- a/build/plugins/pdf/components/pages/PDFAllPages.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PDFAllPages = void 0; -var react_1 = __importStar(require("react")); -var state_1 = require("../../state"); -var PDFSinglePage_1 = __importDefault(require("./PDFSinglePage")); -exports.PDFAllPages = function (props) { - var numPages = react_1.useContext(state_1.PDFContext).state.numPages; - var PagesArray = []; - for (var i = 0; i < numPages; i++) { - PagesArray.push(react_1.default.createElement(PDFSinglePage_1.default, { key: i + 1, pageNum: i + 1 })); - } - return react_1.default.createElement(react_1.default.Fragment, null, PagesArray); -}; diff --git a/build/plugins/pdf/components/pages/PDFPages.d.ts b/build/plugins/pdf/components/pages/PDFPages.d.ts deleted file mode 100644 index 3540477..0000000 --- a/build/plugins/pdf/components/pages/PDFPages.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { FC } from "react"; -declare const PDFPages: FC<{}>; -export default PDFPages; diff --git a/build/plugins/pdf/components/pages/PDFPages.js b/build/plugins/pdf/components/pages/PDFPages.js deleted file mode 100644 index 5f3c782..0000000 --- a/build/plugins/pdf/components/pages/PDFPages.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importStar(require("react")); -var react_pdf_1 = require("react-pdf"); -var styled_components_1 = __importDefault(require("styled-components")); -var state_1 = require("../../state"); -var actions_1 = require("../../state/actions"); -var reducer_1 = require("../../state/reducer"); -var PDFAllPages_1 = require("./PDFAllPages"); -var PDFSinglePage_1 = __importDefault(require("./PDFSinglePage")); -var PDFPages = function () { - var _a = react_1.useContext(state_1.PDFContext), _b = _a.state, mainState = _b.mainState, paginated = _b.paginated, dispatch = _a.dispatch; - var currentDocument = (mainState === null || mainState === void 0 ? void 0 : mainState.currentDocument) || null; - react_1.useEffect(function () { - dispatch(actions_1.setNumPages(reducer_1.initialPDFState.numPages)); - }, [currentDocument]); - if (!currentDocument || currentDocument.fileData === undefined) - return null; - return (react_1.default.createElement(DocumentPDF, { file: currentDocument.fileData, onLoadSuccess: function (_a) { - var numPages = _a.numPages; - return dispatch(actions_1.setNumPages(numPages)); - }, loading: react_1.default.createElement("span", null, "Loading...") }, paginated ? react_1.default.createElement(PDFSinglePage_1.default, null) : react_1.default.createElement(PDFAllPages_1.PDFAllPages, null))); -}; -var DocumentPDF = styled_components_1.default(react_pdf_1.Document)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n"], ["\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n"]))); -exports.default = PDFPages; -var templateObject_1; diff --git a/build/plugins/pdf/components/pages/PDFSinglePage.d.ts b/build/plugins/pdf/components/pages/PDFSinglePage.d.ts deleted file mode 100644 index b06264d..0000000 --- a/build/plugins/pdf/components/pages/PDFSinglePage.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FC } from "react"; -interface Props { - pageNum?: number; -} -declare const PDFSinglePage: FC; -export default PDFSinglePage; diff --git a/build/plugins/pdf/components/pages/PDFSinglePage.js b/build/plugins/pdf/components/pages/PDFSinglePage.js deleted file mode 100644 index 8f005a8..0000000 --- a/build/plugins/pdf/components/pages/PDFSinglePage.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importStar(require("react")); -var react_pdf_1 = require("react-pdf"); -var styled_components_1 = __importDefault(require("styled-components")); -var state_1 = require("../../state"); -var PDFSinglePage = function (props) { - var pageNum = props.pageNum; - var _a = react_1.useContext(state_1.PDFContext).state, mainState = _a.mainState, paginated = _a.paginated, zoomLevel = _a.zoomLevel, numPages = _a.numPages, currentPage = _a.currentPage; - var rendererRect = (mainState === null || mainState === void 0 ? void 0 : mainState.rendererRect) || null; - var _pageNum = pageNum || currentPage; - return (react_1.default.createElement(PageWrapper, { id: "pdf-page-wrapper", last: _pageNum >= numPages }, - !paginated && (react_1.default.createElement(PageTag, { id: "pdf-page-info" }, - "Page ", - _pageNum, - "/", - numPages)), - react_1.default.createElement(react_pdf_1.Page, { pageNumber: _pageNum || currentPage, scale: zoomLevel, height: ((rendererRect === null || rendererRect === void 0 ? void 0 : rendererRect.height) || 100) - 100, width: ((rendererRect === null || rendererRect === void 0 ? void 0 : rendererRect.width) || 100) - 100 }))); -}; -exports.default = PDFSinglePage; -var PageWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin: 20px 0;\n"], ["\n margin: 20px 0;\n"]))); -var PageTag = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 0 0 10px 10px;\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"], ["\n padding: 0 0 10px 10px;\n color: ", ";\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n"])), function (props) { return props.theme.text_tertiary; }); -var templateObject_1, templateObject_2; diff --git a/build/plugins/pdf/index.d.ts b/build/plugins/pdf/index.d.ts deleted file mode 100644 index 6330068..0000000 --- a/build/plugins/pdf/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const PDFRenderer: DocRenderer; -export default PDFRenderer; diff --git a/build/plugins/pdf/index.js b/build/plugins/pdf/index.js deleted file mode 100644 index a5b8053..0000000 --- a/build/plugins/pdf/index.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// @ts-ignore -var pdfjsWorker = __importStar(require("pdfjs-dist/build/pdf.worker.entry")); -var react_1 = __importDefault(require("react")); -var react_pdf_1 = require("react-pdf"); -var styled_components_1 = __importDefault(require("styled-components")); -var PDFPages_1 = __importDefault(require("./components/pages/PDFPages")); -var PDFControls_1 = __importDefault(require("./components/PDFControls")); -var state_1 = require("./state"); -react_pdf_1.pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker; -var PDFRenderer = function (_a) { - var mainState = _a.mainState; - return (react_1.default.createElement(state_1.PDFProvider, { mainState: mainState }, - react_1.default.createElement(Container, { id: "pdf-renderer", "data-testid": "pdf-renderer" }, - react_1.default.createElement(PDFControls_1.default, null), - react_1.default.createElement(PDFPages_1.default, null)))); -}; -exports.default = PDFRenderer; -PDFRenderer.fileTypes = ["pdf", "application/pdf"]; -PDFRenderer.weight = 0; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n\n /* width */\n &::-webkit-scrollbar {\n ", ";\n }\n /* Track */\n &::-webkit-scrollbar-track {\n /* background: ", "; */\n }\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: ", ";\n }\n /* Handle on hover */\n &::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"], ["\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n\n /* width */\n &::-webkit-scrollbar {\n ", - ";\n }\n /* Track */\n &::-webkit-scrollbar-track {\n /* background: ", "; */\n }\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: ", ";\n }\n /* Handle on hover */\n &::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"])), function (props) { - return props.theme.disableThemeScrollbar ? "" : "width: 10px"; -}, function (props) { return props.theme.secondary; }, function (props) { return props.theme.tertiary; }, function (props) { return props.theme.primary; }); -var templateObject_1; diff --git a/build/plugins/pdf/state/actions.d.ts b/build/plugins/pdf/state/actions.d.ts deleted file mode 100644 index 5199104..0000000 --- a/build/plugins/pdf/state/actions.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -export declare const SET_ZOOM_LEVEL: string; -export interface SetZoomLevel { - type: typeof SET_ZOOM_LEVEL; - value: number; -} -export declare const setZoomLevel: (value: number) => SetZoomLevel; -export declare const SET_PDF_PAGINATED: string; -export interface SetPDFPaginated { - type: typeof SET_PDF_PAGINATED; - value: boolean; -} -export declare const setPDFPaginated: (value: boolean) => SetPDFPaginated; -export declare const SET_NUM_PAGES: string; -export interface SetNumPages { - type: typeof SET_NUM_PAGES; - value: number; -} -export declare const setNumPages: (value: number) => SetNumPages; -export declare const SET_CURRENT_PAGE: string; -export interface SetCurrentPage { - type: typeof SET_CURRENT_PAGE; - value: number; -} -export declare const setCurrentPage: (value: number) => SetCurrentPage; -export declare type PDFActions = SetZoomLevel | SetPDFPaginated | SetNumPages | SetCurrentPage; diff --git a/build/plugins/pdf/state/actions.js b/build/plugins/pdf/state/actions.js deleted file mode 100644 index 7644b0d..0000000 --- a/build/plugins/pdf/state/actions.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setCurrentPage = exports.SET_CURRENT_PAGE = exports.setNumPages = exports.SET_NUM_PAGES = exports.setPDFPaginated = exports.SET_PDF_PAGINATED = exports.setZoomLevel = exports.SET_ZOOM_LEVEL = void 0; -// SET_ZOOM_LEVEL -exports.SET_ZOOM_LEVEL = "SET_ZOOM_LEVEL"; -exports.setZoomLevel = function (value) { return ({ - type: exports.SET_ZOOM_LEVEL, - value: value, -}); }; -// SET_PAGINATED -exports.SET_PDF_PAGINATED = "SET_PDF_PAGINATED"; -exports.setPDFPaginated = function (value) { return ({ - type: exports.SET_PDF_PAGINATED, - value: value, -}); }; -// SET_NUM_PAGES -exports.SET_NUM_PAGES = "SET_NUM_PAGES"; -exports.setNumPages = function (value) { return ({ - type: exports.SET_NUM_PAGES, - value: value, -}); }; -// SET_CURRENT_PAGE -exports.SET_CURRENT_PAGE = "SET_CURRENT_PAGE"; -exports.setCurrentPage = function (value) { return ({ - type: exports.SET_CURRENT_PAGE, - value: value, -}); }; diff --git a/build/plugins/pdf/state/index.d.ts b/build/plugins/pdf/state/index.d.ts deleted file mode 100644 index 53b0dcc..0000000 --- a/build/plugins/pdf/state/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import React, { Dispatch, FC } from "react"; -import { IMainState } from "../../../state/reducer"; -import { PDFActions } from "./actions"; -import { IPDFState } from "./reducer"; -declare const PDFContext: React.Context<{ - state: IPDFState; - dispatch: Dispatch; -}>; -declare const PDFProvider: FC<{ - mainState: IMainState; -}>; -export { PDFContext, PDFProvider }; diff --git a/build/plugins/pdf/state/index.js b/build/plugins/pdf/state/index.js deleted file mode 100644 index 628e2c0..0000000 --- a/build/plugins/pdf/state/index.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PDFProvider = exports.PDFContext = void 0; -var react_1 = __importStar(require("react")); -var reducer_1 = require("./reducer"); -var PDFContext = react_1.createContext({ state: reducer_1.initialPDFState, dispatch: function () { return null; } }); -exports.PDFContext = PDFContext; -var PDFProvider = function (_a) { - var children = _a.children, mainState = _a.mainState; - var _b = react_1.useReducer(reducer_1.reducer, __assign(__assign({}, reducer_1.initialPDFState), { mainState: mainState })), state = _b[0], dispatch = _b[1]; - return (react_1.default.createElement(PDFContext.Provider, { value: { state: state, dispatch: dispatch } }, children)); -}; -exports.PDFProvider = PDFProvider; diff --git a/build/plugins/pdf/state/reducer.d.ts b/build/plugins/pdf/state/reducer.d.ts deleted file mode 100644 index 512d73b..0000000 --- a/build/plugins/pdf/state/reducer.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { IMainState } from "../../../state/reducer"; -import { PDFActions as PDFStateActions } from "./actions"; -export declare type IPDFState = { - zoomLevel: number; - paginated: boolean; - numPages: number; - currentPage: number; - mainState?: IMainState; -}; -export declare const initialPDFState: IPDFState; -export declare type PDFStateReducer = (state: IPDFState, action: PDFStateActions) => IPDFState; -export declare const reducer: PDFStateReducer; diff --git a/build/plugins/pdf/state/reducer.js b/build/plugins/pdf/state/reducer.js deleted file mode 100644 index 30963b7..0000000 --- a/build/plugins/pdf/state/reducer.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.reducer = exports.initialPDFState = void 0; -var actions_1 = require("./actions"); -exports.initialPDFState = { - zoomLevel: 1, - paginated: true, - numPages: 0, - currentPage: 1, -}; -exports.reducer = function (state, action) { - if (state === void 0) { state = exports.initialPDFState; } - switch (action.type) { - case actions_1.SET_ZOOM_LEVEL: { - var value = action.value; - return __assign(__assign({}, state), { zoomLevel: value }); - } - case actions_1.SET_PDF_PAGINATED: { - var value = action.value; - return __assign(__assign({}, state), { paginated: value }); - } - case actions_1.SET_NUM_PAGES: { - var value = action.value; - return __assign(__assign({}, state), { numPages: value }); - } - case actions_1.SET_CURRENT_PAGE: { - var value = action.value; - return __assign(__assign({}, state), { currentPage: value }); - } - default: - return state; - } -}; diff --git a/build/plugins/png/index.d.ts b/build/plugins/png/index.d.ts deleted file mode 100644 index 8a56877..0000000 --- a/build/plugins/png/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const PNGRenderer: DocRenderer; -export default PNGRenderer; diff --git a/build/plugins/png/index.js b/build/plugins/png/index.js deleted file mode 100644 index 80af914..0000000 --- a/build/plugins/png/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importDefault(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var image_1 = __importDefault(require("../image")); -var StyledImageRenderer = styled_components_1.default(image_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n height: 100%;\n background-color: white;\n background-image: linear-gradient(45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(-45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #e0e0e0 75%),\n linear-gradient(-45deg, transparent 75%, #e0e0e0 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n"], ["\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n height: 100%;\n background-color: white;\n background-image: linear-gradient(45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(-45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #e0e0e0 75%),\n linear-gradient(-45deg, transparent 75%, #e0e0e0 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n"]))); -var PNGRenderer = function (props) { return react_1.default.createElement(StyledImageRenderer, __assign({}, props)); }; -PNGRenderer.fileTypes = ["png", "image/png"]; -PNGRenderer.weight = 0; -exports.default = PNGRenderer; -var templateObject_1; diff --git a/build/plugins/tiff/index.d.ts b/build/plugins/tiff/index.d.ts deleted file mode 100644 index 60bbff7..0000000 --- a/build/plugins/tiff/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const TIFFRenderer: DocRenderer; -export default TIFFRenderer; diff --git a/build/plugins/tiff/index.js b/build/plugins/tiff/index.js deleted file mode 100644 index 9226722..0000000 --- a/build/plugins/tiff/index.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importStar(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var fileLoaders_1 = require("../../utils/fileLoaders"); -var image_1 = __importDefault(require("../image")); -var tiffToCanvas_1 = require("./tiffToCanvas"); -var TIFFRenderer = function (props) { - var currentDocument = props.mainState.currentDocument; - var _a = react_1.useState(false), loadedCanvas = _a[0], setLoadedCanvas = _a[1]; - var _b = react_1.useState(false), corruptedFile = _b[0], setCorruptedFile = _b[1]; - react_1.useEffect(function () { - if (!currentDocument || loadedCanvas) - return; - var canvas = document.getElementById("tiff-img"); - try { - canvas && tiffToCanvas_1.parseTIFF(currentDocument.fileData, canvas); - setLoadedCanvas(true); - } - catch (error) { - setCorruptedFile(true); - } - }, []); - if (corruptedFile) { - return (react_1.default.createElement(image_1.default, __assign({}, props), - react_1.default.createElement("div", null, "Your file is corrupted. Please check it on your machine."))); - } - return (react_1.default.createElement(image_1.default, __assign({}, props), - react_1.default.createElement(Canvas, { id: "tiff-img" }))); -}; -TIFFRenderer.fileTypes = ["tif", "tiff", "image/tif", "image/tiff"]; -TIFFRenderer.weight = 0; -TIFFRenderer.fileLoader = fileLoaders_1.arrayBufferFileLoader; -exports.default = TIFFRenderer; -var Canvas = styled_components_1.default.canvas(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n max-width: 95%;\n max-height: 95%;\n"], ["\n max-width: 95%;\n max-height: 95%;\n"]))); -var templateObject_1; diff --git a/build/plugins/tiff/tiffToCanvas.d.ts b/build/plugins/tiff/tiffToCanvas.d.ts deleted file mode 100644 index 4c5b05c..0000000 --- a/build/plugins/tiff/tiffToCanvas.d.ts +++ /dev/null @@ -1 +0,0 @@ -export function parseTIFF(tiffArrayBuffer: any, _canvas: any): HTMLCanvasElement | undefined; diff --git a/build/plugins/tiff/tiffToCanvas.js b/build/plugins/tiff/tiffToCanvas.js deleted file mode 100644 index 17c159c..0000000 --- a/build/plugins/tiff/tiffToCanvas.js +++ /dev/null @@ -1,601 +0,0 @@ -"use strict"; -var _this = this; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.parseTIFF = void 0; -var tiffDataView = undefined; -var littleEndian = undefined; -var fileDirectories = []; -var isLittleEndian = function () { - // Get byte order mark. - var BOM = getBytes(2, 0); - // Find out the endianness. - if (BOM === 0x4949) { - littleEndian = true; - } - else if (BOM === 0x4d4d) { - littleEndian = false; - } - else { - throw TypeError("Invalid byte order value."); - } - return littleEndian; -}; -var hasTowel = function () { - // Check for towel. - if (getBytes(2, 2) !== 42) { - throw RangeError("You forgot your towel!"); - return false; - } - return true; -}; -var getFieldTagName = function (fieldTag) { - // See: http://www.digitizationguidelines.gov/guidelines/TIFF_Metadata_Final.pdf - // See: http://www.digitalpreservation.gov/formats/content/tiff_tags.shtml - var fieldTagNames = { - // TIFF Baseline - 0x013b: "Artist", - 0x0102: "BitsPerSample", - 0x0109: "CellLength", - 0x0108: "CellWidth", - 0x0140: "ColorMap", - 0x0103: "Compression", - 0x8298: "Copyright", - 0x0132: "DateTime", - 0x0152: "ExtraSamples", - 0x010a: "FillOrder", - 0x0121: "FreeByteCounts", - 0x0120: "FreeOffsets", - 0x0123: "GrayResponseCurve", - 0x0122: "GrayResponseUnit", - 0x013c: "HostComputer", - 0x010e: "ImageDescription", - 0x0101: "ImageLength", - 0x0100: "ImageWidth", - 0x010f: "Make", - 0x0119: "MaxSampleValue", - 0x0118: "MinSampleValue", - 0x0110: "Model", - 0x00fe: "NewSubfileType", - 0x0112: "Orientation", - 0x0106: "PhotometricInterpretation", - 0x011c: "PlanarConfiguration", - 0x0128: "ResolutionUnit", - 0x0116: "RowsPerStrip", - 0x0115: "SamplesPerPixel", - 0x0131: "Software", - 0x0117: "StripByteCounts", - 0x0111: "StripOffsets", - 0x00ff: "SubfileType", - 0x0107: "Threshholding", - 0x011a: "XResolution", - 0x011b: "YResolution", - // TIFF Extended - 0x0146: "BadFaxLines", - 0x0147: "CleanFaxData", - 0x0157: "ClipPath", - 0x0148: "ConsecutiveBadFaxLines", - 0x01b1: "Decode", - 0x01b2: "DefaultImageColor", - 0x010d: "DocumentName", - 0x0150: "DotRange", - 0x0141: "HalftoneHints", - 0x015a: "Indexed", - 0x015b: "JPEGTables", - 0x011d: "PageName", - 0x0129: "PageNumber", - 0x013d: "Predictor", - 0x013f: "PrimaryChromaticities", - 0x0214: "ReferenceBlackWhite", - 0x0153: "SampleFormat", - 0x022f: "StripRowCounts", - 0x014a: "SubIFDs", - 0x0124: "T4Options", - 0x0125: "T6Options", - 0x0145: "TileByteCounts", - 0x0143: "TileLength", - 0x0144: "TileOffsets", - 0x0142: "TileWidth", - 0x012d: "TransferFunction", - 0x013e: "WhitePoint", - 0x0158: "XClipPathUnits", - 0x011e: "XPosition", - 0x0211: "YCbCrCoefficients", - 0x0213: "YCbCrPositioning", - 0x0212: "YCbCrSubSampling", - 0x0159: "YClipPathUnits", - 0x011f: "YPosition", - // EXIF - 0x9202: "ApertureValue", - 0xa001: "ColorSpace", - 0x9004: "DateTimeDigitized", - 0x9003: "DateTimeOriginal", - 0x8769: "Exif IFD", - 0x9000: "ExifVersion", - 0x829a: "ExposureTime", - 0xa300: "FileSource", - 0x9209: "Flash", - 0xa000: "FlashpixVersion", - 0x829d: "FNumber", - 0xa420: "ImageUniqueID", - 0x9208: "LightSource", - 0x927c: "MakerNote", - 0x9201: "ShutterSpeedValue", - 0x9286: "UserComment", - // IPTC - 0x83bb: "IPTC", - // ICC - 0x8773: "ICC Profile", - // XMP - 0x02bc: "XMP", - // GDAL - 0xa480: "GDAL_METADATA", - 0xa481: "GDAL_NODATA", - // Photoshop - 0x8649: "Photoshop", - }; - var fieldTagName; - if (fieldTag in fieldTagNames) { - fieldTagName = fieldTagNames[fieldTag]; - } - else { - fieldTagName = "Tag" + fieldTag; - } - return fieldTagName; -}; -var getFieldTypeName = function (fieldType) { - var fieldTypeNames = { - 0x0001: "BYTE", - 0x0002: "ASCII", - 0x0003: "SHORT", - 0x0004: "LONG", - 0x0005: "RATIONAL", - 0x0006: "SBYTE", - 0x0007: "UNDEFINED", - 0x0008: "SSHORT", - 0x0009: "SLONG", - 0x000a: "SRATIONAL", - 0x000b: "FLOAT", - 0x000c: "DOUBLE", - }; - var fieldTypeName; - if (fieldType in fieldTypeNames) { - fieldTypeName = fieldTypeNames[fieldType]; - } - return fieldTypeName; -}; -var getFieldTypeLength = function (fieldTypeName) { - var fieldTypeLength; - if (["BYTE", "ASCII", "SBYTE", "UNDEFINED"].indexOf(fieldTypeName) !== -1) { - fieldTypeLength = 1; - } - else if (["SHORT", "SSHORT"].indexOf(fieldTypeName) !== -1) { - fieldTypeLength = 2; - } - else if (["LONG", "SLONG", "FLOAT"].indexOf(fieldTypeName) !== -1) { - fieldTypeLength = 4; - } - else if (["RATIONAL", "SRATIONAL", "DOUBLE"].indexOf(fieldTypeName) !== -1) { - fieldTypeLength = 8; - } - return fieldTypeLength; -}; -var getBits = function (numBits, byteOffset, bitOffset) { - bitOffset = bitOffset || 0; - var extraBytes = Math.floor(bitOffset / 8); - var newByteOffset = byteOffset + extraBytes; - var totalBits = bitOffset + numBits; - var shiftRight = 32 - numBits; - if (totalBits <= 0) { - throw RangeError("No bits requested"); - } - else if (totalBits <= 8) { - var shiftLeft = 24 + bitOffset; - var rawBits = tiffDataView.getUint8(newByteOffset, littleEndian); - } - else if (totalBits <= 16) { - var shiftLeft = 16 + bitOffset; - var rawBits = tiffDataView.getUint16(newByteOffset, littleEndian); - } - else if (totalBits <= 32) { - var shiftLeft = bitOffset; - var rawBits = tiffDataView.getUint32(newByteOffset, littleEndian); - } - else { - throw RangeError("Too many bits requested"); - } - var chunkInfo = { - bits: (rawBits << shiftLeft) >>> shiftRight, - byteOffset: newByteOffset + Math.floor(totalBits / 8), - bitOffset: totalBits % 8, - }; - return chunkInfo; -}; -var getBytes = function (numBytes, offset) { - if (numBytes <= 0) { - throw RangeError("No bytes requested"); - } - else if (numBytes <= 1) { - return tiffDataView.getUint8(offset, littleEndian); - } - else if (numBytes <= 2) { - return tiffDataView.getUint16(offset, littleEndian); - } - else if (numBytes <= 3) { - return tiffDataView.getUint32(offset, littleEndian) >>> 8; - } - else if (numBytes <= 4) { - return tiffDataView.getUint32(offset, littleEndian); - } - else { - throw RangeError("Too many bytes requested"); - } -}; -var getFieldValues = function (fieldTagName, fieldTypeName, typeCount, valueOffset) { - var fieldValues = []; - var fieldTypeLength = getFieldTypeLength(fieldTypeName); - var fieldValueSize = fieldTypeLength * typeCount; - if (fieldValueSize <= 4) { - // The value is stored at the big end of the valueOffset. - if (littleEndian === false) { - var value = valueOffset >>> ((4 - fieldTypeLength) * 8); - } - else { - var value = valueOffset; - } - fieldValues.push(value); - } - else { - for (var i = 0; i < typeCount; i++) { - var indexOffset = fieldTypeLength * i; - if (fieldTypeLength >= 8) { - if (["RATIONAL", "SRATIONAL"].indexOf(fieldTypeName) !== -1) { - // Numerator - fieldValues.push(getBytes(4, valueOffset + indexOffset)); - // Denominator - fieldValues.push(getBytes(4, valueOffset + indexOffset + 4)); - // } else if (['DOUBLE'].indexOf(fieldTypeName) !== -1) { - // fieldValues.push(getBytes(4, valueOffset + indexOffset) + getBytes(4, valueOffset + indexOffset + 4)); - } - else { - throw TypeError("Can't handle this field type or size"); - } - } - else { - fieldValues.push(getBytes(fieldTypeLength, valueOffset + indexOffset)); - } - } - } - if (fieldTypeName === "ASCII") { - fieldValues.forEach(function (e, i, a) { - a[i] = String.fromCharCode(e); - }); - } - return fieldValues; -}; -var clampColorSample = function (colorSample, bitsPerSample) { - var multiplier = Math.pow(2, 8 - bitsPerSample); - return Math.floor(colorSample * multiplier + (multiplier - 1)); -}; -var makeRGBAFillValue = function (r, g, b, a) { - if (typeof a === "undefined") { - a = 1.0; - } - return "rgba(" + r + ", " + g + ", " + b + ", " + a + ")"; -}; -var parseFileDirectory = function (byteOffset) { - var numDirEntries = getBytes(2, byteOffset); - var tiffFields = []; - for (var i = byteOffset + 2, entryCount = 0; entryCount < numDirEntries; i += 12, entryCount++) { - var fieldTag = getBytes(2, i); - var fieldType = getBytes(2, i + 2); - var typeCount = getBytes(4, i + 4); - var valueOffset = getBytes(4, i + 8); - var fieldTagName = getFieldTagName(fieldTag); - var fieldTypeName = getFieldTypeName(fieldType); - var fieldValues = getFieldValues(fieldTagName, fieldTypeName, typeCount, valueOffset); - tiffFields[fieldTagName] = { type: fieldTypeName, values: fieldValues }; - } - fileDirectories.push(tiffFields); - var nextIFDByteOffset = getBytes(4, i); - if (nextIFDByteOffset === 0x00000000) { - return fileDirectories; - } - else { - return parseFileDirectory(nextIFDByteOffset); - } -}; -exports.parseTIFF = function (tiffArrayBuffer, _canvas) { - var canvas = _canvas || document.createElement("canvas"); - if (!tiffArrayBuffer) - return; - tiffDataView = new DataView(tiffArrayBuffer); - // canvas = _canvas; - littleEndian = isLittleEndian(tiffDataView); - if (!hasTowel(tiffDataView, littleEndian)) - return; - var firstIFDByteOffset = getBytes(4, 4); - fileDirectories = parseFileDirectory(firstIFDByteOffset); - var fileDirectory = fileDirectories[0]; - var imageWidth = fileDirectory.ImageWidth.values[0]; - var imageLength = fileDirectory.ImageLength.values[0]; - canvas.width = imageWidth; - canvas.height = imageLength; - var strips = []; - var compression = fileDirectory.Compression - ? fileDirectory.Compression.values[0] - : 1; - var samplesPerPixel = fileDirectory.SamplesPerPixel.values[0]; - var sampleProperties = []; - var bitsPerPixel = 0; - var hasBytesPerPixel = false; - fileDirectory.BitsPerSample.values.forEach(function (bitsPerSample, i, bitsPerSampleValues) { - sampleProperties[i] = { - bitsPerSample: bitsPerSample, - hasBytesPerSample: false, - bytesPerSample: undefined, - }; - if (bitsPerSample % 8 === 0) { - sampleProperties[i].hasBytesPerSample = true; - sampleProperties[i].bytesPerSample = bitsPerSample / 8; - } - bitsPerPixel += bitsPerSample; - }, _this); - if (bitsPerPixel % 8 === 0) { - hasBytesPerPixel = true; - var bytesPerPixel = bitsPerPixel / 8; - } - var stripOffsetValues = fileDirectory.StripOffsets.values; - var numStripOffsetValues = stripOffsetValues.length; - // StripByteCounts is supposed to be required, but see if we can recover anyway. - if (fileDirectory.StripByteCounts) { - var stripByteCountValues = fileDirectory.StripByteCounts.values; - } - else { - // Infer StripByteCounts, if possible. - if (numStripOffsetValues === 1) { - var stripByteCountValues = [ - Math.ceil((imageWidth * imageLength * bitsPerPixel) / 8), - ]; - } - else { - throw Error("Cannot recover from missing StripByteCounts"); - } - } - // Loop through strips and decompress as necessary. - for (var i = 0; i < numStripOffsetValues; i++) { - var stripOffset = stripOffsetValues[i]; - strips[i] = []; - var stripByteCount = stripByteCountValues[i]; - // Loop through pixels. - for (var byteOffset = 0, bitOffset = 0, jIncrement = 1, getHeader = true, pixel = [], numBytes = 0, sample = 0, currentSample = 0; byteOffset < stripByteCount; byteOffset += jIncrement) { - // Decompress strip. - switch (compression) { - // Uncompressed - case 1: - // Loop through samples (sub-pixels). - for (var m = 0, pixel = []; m < samplesPerPixel; m++) { - if (sampleProperties[m].hasBytesPerSample) { - // XXX: This is wrong! - var sampleOffset = sampleProperties[m].bytesPerSample * m; - pixel.push(getBytes(sampleProperties[m].bytesPerSample, stripOffset + byteOffset + sampleOffset)); - } - else { - var sampleInfo = getBits(sampleProperties[m].bitsPerSample, stripOffset + byteOffset, bitOffset); - pixel.push(sampleInfo.bits); - byteOffset = sampleInfo.byteOffset - stripOffset; - bitOffset = sampleInfo.bitOffset; - throw RangeError("Cannot handle sub-byte bits per sample"); - } - } - strips[i].push(pixel); - if (hasBytesPerPixel) { - jIncrement = bytesPerPixel; - } - else { - jIncrement = 0; - throw RangeError("Cannot handle sub-byte bits per pixel"); - } - break; - // CITT Group 3 1-Dimensional Modified Huffman run-length encoding - case 2: - // XXX: Use PDF.js code? - break; - // Group 3 Fax - case 3: - // XXX: Use PDF.js code? - break; - // Group 4 Fax - case 4: - // XXX: Use PDF.js code? - break; - // LZW - case 5: - // XXX: Use PDF.js code? - break; - // Old-style JPEG (TIFF 6.0) - case 6: - // XXX: Use PDF.js code? - break; - // New-style JPEG (TIFF Specification Supplement 2) - case 7: - // XXX: Use PDF.js code? - break; - // PackBits - case 32773: - // Are we ready for a new block? - if (getHeader) { - getHeader = false; - var blockLength = 1; - var iterations = 1; - // The header byte is signed. - var header = tiffDataView.getInt8(stripOffset + byteOffset, littleEndian); - if (header >= 0 && header <= 127) { - // Normal pixels. - blockLength = header + 1; - } - else if (header >= -127 && header <= -1) { - // Collapsed pixels. - iterations = -header + 1; - } /*if (header === -128)*/ - else { - // Placeholder byte? - getHeader = true; - } - } - else { - var currentByte = getBytes(1, stripOffset + byteOffset); - // Duplicate bytes, if necessary. - for (var m = 0; m < iterations; m++) { - if (sampleProperties[sample].hasBytesPerSample) { - // We're reading one byte at a time, so we need to handle multi-byte samples. - currentSample = (currentSample << (8 * numBytes)) | currentByte; - numBytes++; - // Is our sample complete? - if (numBytes === sampleProperties[sample].bytesPerSample) { - pixel.push(currentSample); - currentSample = numBytes = 0; - sample++; - } - } - else { - throw RangeError("Cannot handle sub-byte bits per sample"); - } - // Is our pixel complete? - if (sample === samplesPerPixel) { - strips[i].push(pixel); - pixel = []; - sample = 0; - } - } - blockLength--; - // Is our block complete? - if (blockLength === 0) { - getHeader = true; - } - } - jIncrement = 1; - break; - // Unknown compression algorithm - default: - // Do not attempt to parse the image data. - break; - } - } - } - if (canvas.getContext) { - var ctx = canvas.getContext("2d"); - // Set a default fill style. - ctx.fillStyle = makeRGBAFillValue(255, 255, 255, 0); - // If RowsPerStrip is missing, the whole image is in one strip. - if (fileDirectory.RowsPerStrip) { - var rowsPerStrip = fileDirectory.RowsPerStrip.values[0]; - } - else { - var rowsPerStrip = imageLength; - } - var numStrips = strips.length; - var imageLengthModRowsPerStrip = imageLength % rowsPerStrip; - var rowsInLastStrip = imageLengthModRowsPerStrip === 0 - ? rowsPerStrip - : imageLengthModRowsPerStrip; - var numRowsInStrip = rowsPerStrip; - var numRowsInPreviousStrip = 0; - var photometricInterpretation = fileDirectory.PhotometricInterpretation.values[0]; - var extraSamplesValues = []; - var numExtraSamples = 0; - if (fileDirectory.ExtraSamples) { - extraSamplesValues = fileDirectory.ExtraSamples.values; - numExtraSamples = extraSamplesValues.length; - } - if (fileDirectory.ColorMap) { - var colorMapValues = fileDirectory.ColorMap.values; - var colorMapSampleSize = Math.pow(2, sampleProperties[0].bitsPerSample); - } - // Loop through the strips in the image. - for (var i = 0; i < numStrips; i++) { - // The last strip may be short. - if (i + 1 === numStrips) { - numRowsInStrip = rowsInLastStrip; - } - var numPixels = strips[i].length; - var yPadding = numRowsInPreviousStrip * i; - // Loop through the rows in the strip. - for (var y = 0, j = 0; y < numRowsInStrip, j < numPixels; y++) { - // Loop through the pixels in the row. - for (var x = 0; x < imageWidth; x++, j++) { - var pixelSamples = strips[i][j]; - var red = 0; - var green = 0; - var blue = 0; - var opacity = 1.0; - if (numExtraSamples > 0) { - for (var k = 0; k < numExtraSamples; k++) { - if (extraSamplesValues[k] === 1 || extraSamplesValues[k] === 2) { - // Clamp opacity to the range [0,1]. - opacity = pixelSamples[3 + k] / 256; - break; - } - } - } - switch (photometricInterpretation) { - // Bilevel or Grayscale - // WhiteIsZero - case 0: - if (sampleProperties[0].hasBytesPerSample) { - var invertValue = Math.pow(0x10, sampleProperties[0].bytesPerSample * 2); - } - // Invert samples. - pixelSamples.forEach(function (sample, index, samples) { - samples[index] = invertValue - sample; - }); - // Bilevel or Grayscale - // BlackIsZero - case 1: - red = green = blue = clampColorSample(pixelSamples[0], sampleProperties[0].bitsPerSample); - break; - // RGB Full Color - case 2: - red = clampColorSample(pixelSamples[0], sampleProperties[0].bitsPerSample); - green = clampColorSample(pixelSamples[1], sampleProperties[1].bitsPerSample); - blue = clampColorSample(pixelSamples[2], sampleProperties[2].bitsPerSample); - break; - // RGB Color Palette - case 3: - if (colorMapValues === undefined) { - throw Error("Palette image missing color map"); - } - var colorMapIndex = pixelSamples[0]; - red = clampColorSample(colorMapValues[colorMapIndex], 16); - green = clampColorSample(colorMapValues[colorMapSampleSize + colorMapIndex], 16); - blue = clampColorSample(colorMapValues[2 * colorMapSampleSize + colorMapIndex], 16); - break; - // Transparency mask - case 4: - throw RangeError("Not Yet Implemented: Transparency mask"); - break; - // CMYK - case 5: - throw RangeError("Not Yet Implemented: CMYK"); - break; - // YCbCr - case 6: - throw RangeError("Not Yet Implemented: YCbCr"); - break; - // CIELab - case 8: - throw RangeError("Not Yet Implemented: CIELab"); - break; - // Unknown Photometric Interpretation - default: - throw RangeError("Unknown Photometric Interpretation:", photometricInterpretation); - break; - } - ctx.fillStyle = makeRGBAFillValue(red, green, blue, opacity); - ctx.fillRect(x, yPadding + y, 1, 1); - } - } - numRowsInPreviousStrip = numRowsInStrip; - } - } - return canvas; -}; diff --git a/build/plugins/txt/index.d.ts b/build/plugins/txt/index.d.ts deleted file mode 100644 index dd18a5d..0000000 --- a/build/plugins/txt/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DocRenderer } from "../../types"; -declare const TXTRenderer: DocRenderer; -export default TXTRenderer; diff --git a/build/plugins/txt/index.js b/build/plugins/txt/index.js deleted file mode 100644 index 3a5382b..0000000 --- a/build/plugins/txt/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = __importDefault(require("react")); -var styled_components_1 = __importDefault(require("styled-components")); -var fileLoaders_1 = require("../../utils/fileLoaders"); -var TXTRenderer = function (_a) { - var currentDocument = _a.mainState.currentDocument; - return react_1.default.createElement(Container, { id: "txt-renderer" }, currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData); -}; -exports.default = TXTRenderer; -TXTRenderer.fileTypes = ["txt", "text/plain"]; -TXTRenderer.weight = 0; -TXTRenderer.fileLoader = fileLoaders_1.textFileLoader; -var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 30px;\n"], ["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 30px;\n"]))); -var templateObject_1; diff --git a/build/state/actions.d.ts b/build/state/actions.d.ts deleted file mode 100644 index 0b71448..0000000 --- a/build/state/actions.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { IConfig, IDocument } from "../types"; -export declare const SET_ALL_DOCUMENTS: string; -export interface SetAllDocuments { - type: typeof SET_ALL_DOCUMENTS; - documents: IDocument[]; -} -export declare const setAllDocuments: (documents: IDocument[]) => SetAllDocuments; -export declare const SET_DOCUMENT_LOADING: string; -export interface SetDocumentLoading { - type: typeof SET_DOCUMENT_LOADING; - value: boolean; -} -export declare const setDocumentLoading: (value: boolean) => SetDocumentLoading; -export declare const NEXT_DOCUMENT: string; -export interface NextDocument { - type: typeof NEXT_DOCUMENT; -} -export declare const nextDocument: () => NextDocument; -export declare const PREVIOUS_DOCUMENT: string; -export interface PreviousDocument { - type: typeof PREVIOUS_DOCUMENT; -} -export declare const previousDocument: () => PreviousDocument; -export declare const UPDATE_CURRENT_DOCUMENT: string; -export interface UpdateCurrentDocument { - type: typeof UPDATE_CURRENT_DOCUMENT; - document: IDocument; -} -export declare const updateCurrentDocument: (document: IDocument) => UpdateCurrentDocument; -export declare const SET_RENDERER_RECT: string; -export interface SetRendererRect { - type: typeof SET_RENDERER_RECT; - rect: DOMRect; -} -export declare const setRendererRect: (rect: DOMRect) => SetRendererRect; -export declare const SET_MAIN_CONFIG: string; -export interface SetMainConfig { - type: typeof SET_MAIN_CONFIG; - config: IConfig; -} -export declare const setMainConfig: (config: IConfig) => SetMainConfig; -export declare type MainStateActions = SetAllDocuments | SetDocumentLoading | NextDocument | PreviousDocument | UpdateCurrentDocument | SetRendererRect | SetMainConfig; diff --git a/build/state/actions.js b/build/state/actions.js deleted file mode 100644 index ced4314..0000000 --- a/build/state/actions.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setMainConfig = exports.SET_MAIN_CONFIG = exports.setRendererRect = exports.SET_RENDERER_RECT = exports.updateCurrentDocument = exports.UPDATE_CURRENT_DOCUMENT = exports.previousDocument = exports.PREVIOUS_DOCUMENT = exports.nextDocument = exports.NEXT_DOCUMENT = exports.setDocumentLoading = exports.SET_DOCUMENT_LOADING = exports.setAllDocuments = exports.SET_ALL_DOCUMENTS = void 0; -// SET_DOCUMENTS -exports.SET_ALL_DOCUMENTS = "SET_ALL_DOCUMENTS"; -exports.setAllDocuments = function (documents) { return ({ - type: exports.SET_ALL_DOCUMENTS, - documents: documents, -}); }; -// SET_DOCUMENT_LOADING -exports.SET_DOCUMENT_LOADING = "SET_DOCUMENT_LOADING"; -exports.setDocumentLoading = function (value) { return ({ - type: exports.SET_DOCUMENT_LOADING, - value: value, -}); }; -// NEXT_DOCUMENT -exports.NEXT_DOCUMENT = "NEXT_DOCUMENT"; -exports.nextDocument = function () { return ({ type: exports.NEXT_DOCUMENT }); }; -// PREVIOUS_DOCUMENT -exports.PREVIOUS_DOCUMENT = "PREVIOUS_DOCUMENT"; -exports.previousDocument = function () { return ({ - type: exports.PREVIOUS_DOCUMENT, -}); }; -// UPDATE_CURRENT_DOCUMENT -exports.UPDATE_CURRENT_DOCUMENT = "UPDATE_CURRENT_DOCUMENT"; -exports.updateCurrentDocument = function (document) { return ({ type: exports.UPDATE_CURRENT_DOCUMENT, document: document }); }; -// SET_RENDERER_RECT -exports.SET_RENDERER_RECT = "SET_RENDERER_RECT"; -exports.setRendererRect = function (rect) { return ({ - type: exports.SET_RENDERER_RECT, - rect: rect, -}); }; -// SET_MAIN_CONFIG -exports.SET_MAIN_CONFIG = "SET_MAIN_CONFIG"; -exports.setMainConfig = function (config) { return ({ - type: exports.SET_MAIN_CONFIG, - config: config, -}); }; diff --git a/build/state/index.d.ts b/build/state/index.d.ts deleted file mode 100644 index 92c33f2..0000000 --- a/build/state/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import React, { Dispatch, FC } from "react"; -import { DocViewerProps } from ".."; -import { MainStateActions } from "./actions"; -import { IMainState } from "./reducer"; -declare const DocViewerContext: React.Context<{ - state: IMainState; - dispatch: Dispatch; -}>; -declare const AppProvider: FC; -export { DocViewerContext, AppProvider }; diff --git a/build/state/index.js b/build/state/index.js deleted file mode 100644 index d0b1ddd..0000000 --- a/build/state/index.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.AppProvider = exports.DocViewerContext = void 0; -var react_1 = __importStar(require("react")); -var actions_1 = require("./actions"); -var reducer_1 = require("./reducer"); -var DocViewerContext = react_1.createContext({ state: reducer_1.initialState, dispatch: function () { return null; } }); -exports.DocViewerContext = DocViewerContext; -var AppProvider = function (props) { - var children = props.children, documents = props.documents, config = props.config, pluginRenderers = props.pluginRenderers; - var _a = react_1.useReducer(reducer_1.mainStateReducer, __assign(__assign({}, reducer_1.initialState), { documents: documents || [], currentDocument: documents && documents.length ? documents[0] : undefined, config: config, - pluginRenderers: pluginRenderers })), state = _a[0], dispatch = _a[1]; - // On inital load, and whenever they change, - // replace documents with the new props passed in - react_1.useEffect(function () { - dispatch(actions_1.setAllDocuments(documents)); - config && dispatch(actions_1.setMainConfig(config)); - }, [documents]); - return (react_1.default.createElement(DocViewerContext.Provider, { value: { state: state, dispatch: dispatch } }, children)); -}; -exports.AppProvider = AppProvider; diff --git a/build/state/reducer.d.ts b/build/state/reducer.d.ts deleted file mode 100644 index a1a7678..0000000 --- a/build/state/reducer.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { DocRenderer, IConfig, IDocument } from "../types"; -import { MainStateActions } from "./actions"; -export declare type IMainState = { - currentFileNo: number; - documents: IDocument[]; - documentLoading?: boolean; - currentDocument?: IDocument; - rendererRect?: DOMRect; - config?: IConfig; - pluginRenderers?: DocRenderer[]; -}; -export declare const initialState: IMainState; -export declare type MainStateReducer = (state: IMainState, action: MainStateActions) => IMainState; -export declare const mainStateReducer: MainStateReducer; diff --git a/build/state/reducer.js b/build/state/reducer.js deleted file mode 100644 index db7365a..0000000 --- a/build/state/reducer.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mainStateReducer = exports.initialState = void 0; -var actions_1 = require("./actions"); -exports.initialState = { - currentFileNo: 0, - documents: [], - documentLoading: true, - currentDocument: undefined, - rendererRect: undefined, - config: {}, - pluginRenderers: [], -}; -exports.mainStateReducer = function (state, action) { - if (state === void 0) { state = exports.initialState; } - switch (action.type) { - case actions_1.SET_ALL_DOCUMENTS: { - var documents = action.documents; - return __assign(__assign({}, state), { documents: documents, currentDocument: documents[0] || null }); - } - case actions_1.SET_DOCUMENT_LOADING: { - var value = action.value; - return __assign(__assign({}, state), { documentLoading: value }); - } - case actions_1.NEXT_DOCUMENT: { - if (state.currentFileNo >= state.documents.length - 1) - return state; - var nextDocumentNo = state.currentFileNo + 1; - return __assign(__assign({}, state), { currentFileNo: nextDocumentNo, currentDocument: state.documents[nextDocumentNo], documentLoading: true }); - } - case actions_1.PREVIOUS_DOCUMENT: { - if (state.currentFileNo <= 0) - return state; - var prevDocumentNo = state.currentFileNo - 1; - return __assign(__assign({}, state), { currentFileNo: state.currentFileNo - 1, currentDocument: state.documents[prevDocumentNo], documentLoading: true }); - } - case actions_1.UPDATE_CURRENT_DOCUMENT: { - var document_1 = action.document; - return __assign(__assign({}, state), { currentDocument: document_1 }); - } - case actions_1.SET_RENDERER_RECT: { - var rect = action.rect; - return __assign(__assign({}, state), { rendererRect: rect }); - } - case actions_1.SET_MAIN_CONFIG: { - var config = action.config; - return __assign(__assign({}, state), { config: config }); - } - default: - return state; - } -}; diff --git a/build/theme/index.d.ts b/build/theme/index.d.ts deleted file mode 100644 index 7c794d1..0000000 --- a/build/theme/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { ITheme } from "../types"; -export declare const defaultTheme: ITheme; diff --git a/build/theme/index.js b/build/theme/index.js deleted file mode 100644 index 48ca7e7..0000000 --- a/build/theme/index.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultTheme = void 0; -exports.defaultTheme = { - primary: "#fff", - secondary: "#000", - tertiary: "#ffffff99", - text_primary: "#000", - text_secondary: "#fff", - text_tertiary: "#00000044", - disableThemeScrollbar: false, -}; diff --git a/build/types/index.d.ts b/build/types/index.d.ts deleted file mode 100644 index df98a8b..0000000 --- a/build/types/index.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FC, ReactElement } from "react"; -import { ThemedStyledProps } from "styled-components"; -import { IMainState } from "../state/reducer"; -import { FileLoaderFunction } from "../utils/fileLoaders"; -export interface IConfig { - header?: IHeaderConfig; -} -export interface IHeaderConfig { - disableHeader?: boolean; - disableFileName?: boolean; - retainURLParams?: boolean; - overrideComponent?: IHeaderOverride; -} -export declare type IHeaderOverride = (state: IMainState, previousDocument: () => void, nextDocument: () => void) => ReactElement | null; -export interface ITheme { - primary?: string; - secondary?: string; - tertiary?: string; - text_primary?: string; - text_secondary?: string; - text_tertiary?: string; - disableThemeScrollbar?: boolean; -} -export interface IStyledProps extends ThemedStyledProps { - theme: ITheme; -} -export interface IDocument { - uri: string; - fileType?: string; - fileData?: string | ArrayBuffer; -} -export interface DocRendererProps { - mainState: IMainState; -} -export interface DocRenderer extends FC { - fileTypes: string[]; - weight: number; - fileLoader?: FileLoaderFunction | null | undefined; -} diff --git a/build/types/index.js b/build/types/index.js deleted file mode 100644 index c8ad2e5..0000000 --- a/build/types/index.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/utils/fileLoaders.d.ts b/build/utils/fileLoaders.d.ts deleted file mode 100644 index a1fd945..0000000 --- a/build/utils/fileLoaders.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface FileLoaderFuncProps { - documentURI: string; - signal: AbortSignal; - fileLoaderComplete: FileLoaderComplete; -} -export declare type FileLoaderComplete = (fileReader?: FileReader) => void; -export declare type FileLoaderFunction = (props: FileLoaderFuncProps) => void; -export declare const arrayBufferFileLoader: FileLoaderFunction; -export declare const dataURLFileLoader: FileLoaderFunction; -export declare const textFileLoader: FileLoaderFunction; -export declare const binaryStringFileLoader: FileLoaderFunction; -export declare const defaultFileLoader: FileLoaderFunction; diff --git a/build/utils/fileLoaders.js b/build/utils/fileLoaders.js deleted file mode 100644 index a9e1368..0000000 --- a/build/utils/fileLoaders.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultFileLoader = exports.binaryStringFileLoader = exports.textFileLoader = exports.dataURLFileLoader = exports.arrayBufferFileLoader = void 0; -var _fileLoader = function (_a) { - var documentURI = _a.documentURI, signal = _a.signal, fileLoaderComplete = _a.fileLoaderComplete, readerTypeFunction = _a.readerTypeFunction; - return fetch(documentURI, { signal: signal }) - .then(function (res) { return __awaiter(void 0, void 0, void 0, function () { - var blob, fileReader; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, res.blob()]; - case 1: - blob = _a.sent(); - fileReader = new FileReader(); - fileReader.addEventListener("loadend", function () { - return fileLoaderComplete(fileReader); - }); - switch (readerTypeFunction) { - case "arrayBuffer": - fileReader.readAsArrayBuffer(blob); - break; - case "binaryString": - fileReader.readAsBinaryString(blob); - break; - case "dataURL": - fileReader.readAsDataURL(blob); - break; - case "text": - fileReader.readAsText(blob); - break; - default: - break; - } - return [2 /*return*/]; - } - }); - }); }) - .catch(function (e) { - return e; - }); -}; -exports.arrayBufferFileLoader = function (props) { - return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "arrayBuffer" })); -}; -exports.dataURLFileLoader = function (props) { - return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "dataURL" })); -}; -exports.textFileLoader = function (props) { - return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "text" })); -}; -exports.binaryStringFileLoader = function (props) { - return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: "binaryString" })); -}; -exports.defaultFileLoader = exports.dataURLFileLoader; diff --git a/build/utils/useDocumentLoader.d.ts b/build/utils/useDocumentLoader.d.ts deleted file mode 100644 index 7a01ec4..0000000 --- a/build/utils/useDocumentLoader.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Dispatch } from "react"; -import { MainStateActions } from "../state/actions"; -import { IMainState } from "../state/reducer"; -import { DocRenderer } from "../types"; -/** - * Custom Hook for loading the current document into context - */ -export declare const useDocumentLoader: () => { - state: IMainState; - dispatch: Dispatch; - CurrentRenderer: DocRenderer | null | undefined; -}; diff --git a/build/utils/useDocumentLoader.js b/build/utils/useDocumentLoader.js deleted file mode 100644 index 869052e..0000000 --- a/build/utils/useDocumentLoader.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.useDocumentLoader = void 0; -var react_1 = require("react"); -var state_1 = require("../state"); -var actions_1 = require("../state/actions"); -var fileLoaders_1 = require("./fileLoaders"); -var useRendererSelector_1 = require("./useRendererSelector"); -/** - * Custom Hook for loading the current document into context - */ -exports.useDocumentLoader = function () { - var _a = react_1.useContext(state_1.DocViewerContext), state = _a.state, dispatch = _a.dispatch; - var currentFileNo = state.currentFileNo, currentDocument = state.currentDocument; - var CurrentRenderer = useRendererSelector_1.useRendererSelector().CurrentRenderer; - var documentURI = (currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri) || ""; - react_1.useEffect(function () { - if (!currentDocument) - return; - if (currentDocument.fileType !== undefined) - return; - var controller = new AbortController(); - var signal = controller.signal; - fetch(documentURI, { method: "HEAD", signal: signal }).then(function (response) { - var contentTypeRaw = response.headers.get("content-type"); - var contentTypes = (contentTypeRaw === null || contentTypeRaw === void 0 ? void 0 : contentTypeRaw.split(";")) || []; - var contentType = contentTypes.length ? contentTypes[0] : undefined; - dispatch(actions_1.updateCurrentDocument(__assign(__assign({}, currentDocument), { fileType: contentType || undefined }))); - }); - return function () { - controller.abort(); - }; - }, - // eslint ignore added, because a warning appears for dispatch to - // be a dependancy of the useEffect - // eslint-disable-next-line react-hooks/exhaustive-deps - [currentFileNo, documentURI]); - react_1.useEffect(function () { - var _a; - if (!currentDocument || CurrentRenderer === undefined) - return; - var controller = new AbortController(); - var signal = controller.signal; - var fileLoaderComplete = function (fileReader) { - if (!currentDocument || !fileReader) { - dispatch(actions_1.setDocumentLoading(false)); - return; - } - var updatedDocument = __assign({}, currentDocument); - if (fileReader.result !== null) { - updatedDocument.fileData = fileReader.result; - } - dispatch(actions_1.updateCurrentDocument(updatedDocument)); - dispatch(actions_1.setDocumentLoading(false)); - }; - if (CurrentRenderer === null) { - dispatch(actions_1.setDocumentLoading(false)); - } - else if (CurrentRenderer.fileLoader !== undefined) { - (_a = CurrentRenderer.fileLoader) === null || _a === void 0 ? void 0 : _a.call(CurrentRenderer, { documentURI: documentURI, signal: signal, fileLoaderComplete: fileLoaderComplete }); - } - else { - fileLoaders_1.defaultFileLoader({ documentURI: documentURI, signal: signal, fileLoaderComplete: fileLoaderComplete }); - } - return function () { - controller.abort(); - }; - }, [CurrentRenderer]); - return { state: state, dispatch: dispatch, CurrentRenderer: CurrentRenderer }; -}; diff --git a/build/utils/useRendererSelector.d.ts b/build/utils/useRendererSelector.d.ts deleted file mode 100644 index fa3fc34..0000000 --- a/build/utils/useRendererSelector.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { DocRenderer } from "../types"; -/** - * Custom Hook for loading the current document into context - */ -export declare const useRendererSelector: () => { - CurrentRenderer: DocRenderer | null | undefined; -}; diff --git a/build/utils/useRendererSelector.js b/build/utils/useRendererSelector.js deleted file mode 100644 index 4e9278f..0000000 --- a/build/utils/useRendererSelector.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.useRendererSelector = void 0; -var react_1 = require("react"); -var state_1 = require("../state"); -/** - * Custom Hook for loading the current document into context - */ -exports.useRendererSelector = function () { - var _a = react_1.useContext(state_1.DocViewerContext).state, currentDocument = _a.currentDocument, pluginRenderers = _a.pluginRenderers; - var _b = react_1.useState(), CurrentRenderer = _b[0], setCurrentRenderer = _b[1]; - react_1.useEffect(function () { - if (!currentDocument) - return; - // Do not advance if the document does not yet have a fileType - // This prevents prematurely showing 'no renderer' message - if (!currentDocument.fileType) { - setCurrentRenderer(undefined); - return; - } - var matchingRenderers = []; - pluginRenderers === null || pluginRenderers === void 0 ? void 0 : pluginRenderers.map(function (r) { - if (currentDocument.fileType === undefined) - return; - if (r.fileTypes.indexOf(currentDocument.fileType) >= 0) { - matchingRenderers.push(r); - } - }); - // Compute prefered Renderer based on weight - var SelectedRenderer = matchingRenderers.sort(function (a, b) { return b.weight - a.weight; })[0]; - if (SelectedRenderer && SelectedRenderer !== undefined) { - setCurrentRenderer(function () { return SelectedRenderer; }); - } - else { - setCurrentRenderer(null); - } - }, [currentDocument]); - return { CurrentRenderer: CurrentRenderer }; -}; diff --git a/build/utils/useWindowSize.d.ts b/build/utils/useWindowSize.d.ts deleted file mode 100644 index 3ceca9c..0000000 --- a/build/utils/useWindowSize.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare const useWindowSize: () => { - width: number | undefined; - height: number | undefined; -}; diff --git a/build/utils/useWindowSize.js b/build/utils/useWindowSize.js deleted file mode 100644 index a2bb3c6..0000000 --- a/build/utils/useWindowSize.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.useWindowSize = void 0; -var react_1 = require("react"); -// Hook -exports.useWindowSize = function () { - // Initialize state with undefined width/height so server and client renders match - // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/ - var _a = react_1.useState({ - width: undefined, - height: undefined, - }), windowSize = _a[0], setWindowSize = _a[1]; - react_1.useEffect(function () { - // Handler to call on window resize - function handleResize() { - // Set window width/height to state - setWindowSize({ - width: window.innerWidth, - height: window.innerHeight, - }); - } - // Add event listener - window.addEventListener("resize", handleResize); - // Call handler right away so state gets updated with initial window size - handleResize(); - // setTimeout(() => { - // handleResize(); - // }, 500); - // Remove event listener on cleanup - return function () { return window.removeEventListener("resize", handleResize); }; - }, []); // Empty array ensures that effect is only run on mount - return windowSize; -};