"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _entry = require("react-pdf/dist/esm/entry.webpack");
require("react-pdf/dist/esm/Page/AnnotationLayer.css");
require("./PDFViewer.css");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
// // // // // // import React, { useState } from "react";
// // // // // // import { Document, Page } from "react-pdf";
// // // // // // import "react-pdf/dist/esm/Page/AnnotationLayer.css";

// // // // // // const PDFViewer = () => {
// // // // // //   const [numPages, setNumPages] = useState(null);
// // // // // //   const [pageNumber, setPageNumber] = useState(1);
// // // // // //   const [selectedPdf, setSelectedPdf] = useState(null);

// // // // // //   const onDocumentLoadSuccess = ({ numPages }) => {
// // // // // //     setNumPages(numPages);
// // // // // //   };

// // // // // //   const goToPrevPage = () =>
// // // // // //     setPageNumber(pageNumber - 1 <= 1 ? 1 : pageNumber - 1);

// // // // // //   const goToNextPage = () =>
// // // // // //     setPageNumber(pageNumber + 1 >= numPages ? numPages : pageNumber + 1);

// // // // // //   const handleFileChange = (event) => {
// // // // // //     const file = event.target.files[0];
// // // // // //     setSelectedPdf(file);
// // // // // //     setPageNumber(1); // Reset page number when selecting a new PDF
// // // // // //   };

// // // // // //   return (
// // // // // //     <div className="pdf-viewer">
// // // // // //       <label htmlFor="fileInput">Select a PDF:</label>
// // // // // //       <input
// // // // // //         type="file"
// // // // // //         id="fileInput"
// // // // // //         accept=".pdf"
// // // // // //         onChange={handleFileChange}
// // // // // //       />
// // // // // //       {selectedPdf && (
// // // // // //         <div className="pdf-container">
// // // // // //           <nav>
// // // // // //             <button onClick={goToPrevPage} className="previous">
// // // // // //               Prev
// // // // // //             </button>
// // // // // //             <button onClick={goToNextPage} className="next">
// // // // // //               Next
// // // // // //             </button>
// // // // // //             <p>
// // // // // //               Page {pageNumber} of {numPages}
// // // // // //             </p>
// // // // // //           </nav>
// // // // // //           <div className="pdf-content">
// // // // // //             <Document file={selectedPdf} onLoadSuccess={onDocumentLoadSuccess}>
// // // // // //               <Page pageNumber={pageNumber} />
// // // // // //             </Document>
// // // // // //           </div>
// // // // // //         </div>
// // // // // //       )}
// // // // // //     </div>
// // // // // //   );
// // // // // // };

// // // // // // export default PDFViewer;
// // // // // import React, { useState } from "react";
// // // // // import { Document, Page, pdfjs } from "react-pdf/dist/esm/entry.webpack";
// // // // // import "react-pdf/dist/esm/Page/AnnotationLayer.css";

// // // // // // Set workerSrc globally
// // // // // pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;

// // // // // const PDFViewer = () => {
// // // // //   const [numPages, setNumPages] = useState(null);
// // // // //   const [pageNumber, setPageNumber] = useState(1);
// // // // //   const [selectedPdf, setSelectedPdf] = useState(null);

// // // // //   const onDocumentLoadSuccess = ({ numPages }) => {
// // // // //     setNumPages(numPages);
// // // // //   };

// // // // //   const goToPrevPage = () =>
// // // // //     setPageNumber(pageNumber - 1 <= 1 ? 1 : pageNumber - 1);

// // // // //   const goToNextPage = () =>
// // // // //     setPageNumber(pageNumber + 1 >= numPages ? numPages : pageNumber + 1);

// // // // //   const handleFileChange = (event) => {
// // // // //     const file = event.target.files[0];
// // // // //     setSelectedPdf(file);
// // // // //     setPageNumber(1); // Reset page number when selecting a new PDF
// // // // //   };

// // // // //   return (
// // // // //     <div className="pdf-viewer">
// // // // //       <label htmlFor="fileInput">Select a PDF:</label>
// // // // //       <input
// // // // //         type="file"
// // // // //         id="fileInput"
// // // // //         accept=".pdf"
// // // // //         onChange={handleFileChange}
// // // // //       />
// // // // //       {selectedPdf && (
// // // // //         <div className="pdf-container">
// // // // //           <nav>
// // // // //             <button onClick={goToPrevPage} className="previous">
// // // // //               Prev
// // // // //             </button>
// // // // //             <button onClick={goToNextPage} className="next">
// // // // //               Next
// // // // //             </button>
// // // // //             <p>
// // // // //               Page {pageNumber} of {numPages}
// // // // //             </p>
// // // // //           </nav>
// // // // //           <div className="pdf-content">
// // // // //             <Document file={selectedPdf} onLoadSuccess={onDocumentLoadSuccess}>
// // // // //               <Page pageNumber={pageNumber} />
// // // // //             </Document>
// // // // //           </div>
// // // // //         </div>
// // // // //       )}
// // // // //     </div>
// // // // //   );
// // // // // };

// // // // // export default PDFViewer;

// // // // import React, { useState, useEffect } from "react";
// // // // import { Document, Page, pdfjs } from "react-pdf";
// // // // import "react-pdf/dist/esm/Page/AnnotationLayer.css";
// // // // import jsPDF from 'jspdf';

// // // // const PDFViewer = () => {
// // // //   const [numPages, setNumPages] = useState(null);
// // // //   const [pageNumber, setPageNumber] = useState(1);
// // // //   const [selectedPdf, setSelectedPdf] = useState(null);

// // // //   useEffect(() => {
// // // //     // Dynamically load workerSrc for pdfjs
// // // //     pdfjs
// // // //       .getDocument({ url: 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/web/compressed.tracemonkey-pldi-09.pdf' }) // Replace URL with your PDF file
// // // //       .promise.then(() => {
// // // //         const workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.worker.min.js';
// // // //         pdfjs.GlobalWorkerOptions.workerSrc = workerSrc;
// // // //       })
// // // //       .catch((error) => {
// // // //         console.error('Error loading pdfjs worker:', error);
// // // //       });
// // // //   }, []);

// // // //   const onDocumentLoadSuccess = ({ numPages }) => {
// // // //     setNumPages(numPages);
// // // //   };

// // // //   const goToPrevPage = () =>
// // // //     setPageNumber(pageNumber - 1 <= 1 ? 1 : pageNumber - 1);

// // // //   const goToNextPage = () =>
// // // //     setPageNumber(pageNumber + 1 >= numPages ? numPages : pageNumber + 1);

// // // //   const handleFileChange = (event) => {
// // // //     const file = event.target.files[0];
// // // //     setSelectedPdf(file);
// // // //     setPageNumber(1); // Reset page number when selecting a new PDF
// // // //   };

// // // //   const exportAsPDF = () => {
// // // //     if (!selectedPdf) return;

// // // //     const pdf = new jsPDF();
// // // //     for (let page = 1; page <= numPages; page++) {
// // // //       pdf.addPage();
// // // //       pdf.setPage(page);
// // // //       const canvas = document.getElementById(`pdf-page-${page}`);
// // // //       const imageData = canvas.toDataURL('image/png');
// // // //       pdf.addImage(imageData, 'PNG', 0, 0);
// // // //     }
// // // //     pdf.save('document.pdf');
// // // //   };

// // // //   return (
// // // //     <div className="pdf-viewer">
// // // //       <label htmlFor="fileInput">Select a PDF:</label>
// // // //       <input
// // // //         type="file"
// // // //         id="fileInput"
// // // //         accept=".pdf"
// // // //         onChange={handleFileChange}
// // // //       />
// // // //       {selectedPdf && (
// // // //         <div className="pdf-container">
// // // //           <nav>
// // // //             <button onClick={goToPrevPage} className="previous">
// // // //               Prev
// // // //             </button>
// // // //             <button onClick={goToNextPage} className="next">
// // // //               Next
// // // //             </button>
// // // //             <button onClick={exportAsPDF} className="export">
// // // //               Export as PDF
// // // //             </button>
// // // //             <p>
// // // //               Page {pageNumber} of {numPages}
// // // //             </p>
// // // //           </nav>
// // // //           <div className="pdf-content">
// // // //             <Document file={selectedPdf} onLoadSuccess={onDocumentLoadSuccess}>
// // // //               <Page pageNumber={pageNumber} id={`pdf-page-${pageNumber}`} />
// // // //             </Document>
// // // //           </div>
// // // //         </div>
// // // //       )}
// // // //     </div>
// // // //   );
// // // // };

// // // // export default PDFViewer;
// // // import { useState } from "react";
// // // import { Document, Page } from "react-pdf/dist/esm/entry.webpack";
// // // import "react-pdf/dist/esm/Page/AnnotationLayer.css";

// // // const PDFViewer = () => {
// // //   const [numPages, setNumPages] = useState(null);
// // //   const [pageNumber, setPageNumber] = useState(1);

// // //   const onDocumentLoadSuccess = ({ numPages }) => {
// // //     setNumPages(numPages);
// // //   };

// // //   const goToPrevPage = () =>
// // //     setPageNumber(pageNumber - 1 <= 1 ? 1 : pageNumber - 1);

// // //   const goToNextPage = () =>
// // //     setPageNumber(pageNumber + 1 >= numPages ? numPages : pageNumber + 1);

// // //   return (
// // //     <div className="page">
// // //       <nav>
// // //         <button onClick={goToPrevPage} className="previous">
// // //           Prev
// // //         </button>
// // //         <button onClick={goToNextPage} className="next">
// // //           Next
// // //         </button>
// // //         <p>
// // //           Page {pageNumber} of {numPages}
// // //         </p>
// // //       </nav>

// // //       <Document file="document.pdf" onLoadSuccess={onDocumentLoadSuccess}>
// // //         <Page pageNumber={pageNumber} />
// // //       </Document>
// // //     </div>
// // //   );
// // // };

// // // export default PDFViewer;

// // import React, { useState } from "react";
// // import { Document, Page } from "react-pdf/dist/esm/entry.webpack";
// // import "react-pdf/dist/esm/Page/AnnotationLayer.css";

// // const PDFViewer = () => {
// //   const [numPages, setNumPages] = useState(null);
// //   const [pageNumber, setPageNumber] = useState(1);
// //   const [selectedPdf, setSelectedPdf] = useState(null);

// //   const onDocumentLoadSuccess = ({ numPages }) => {
// //     setNumPages(numPages);
// //   };

// //   const goToPrevPage = () =>
// //     setPageNumber(pageNumber - 1 <= 1 ? 1 : pageNumber - 1);

// //   const goToNextPage = () =>
// //     setPageNumber(pageNumber + 1 >= numPages ? numPages : pageNumber + 1);

// //   const handleFileChange = (event) => {
// //     const file = event.target.files[0];
// //     setSelectedPdf(file);
// //     setPageNumber(1); // Reset page number when selecting a new PDF
// //   };

// //   return (
// //     <div className="pdf-viewer">
// //       <label htmlFor="fileInput">Select a PDF:</label>
// //       <input
// //         type="file"
// //         id="fileInput"
// //         accept=".pdf"
// //         onChange={handleFileChange}
// //       />
// //       {selectedPdf && (
// //         <div className="pdf-container">
// //           <nav>
// //             <button onClick={goToPrevPage} className="previous">
// //               Prev
// //             </button>
// //             <button onClick={goToNextPage} className="next">
// //               Next
// //             </button>
// //             <p>
// //               Page {pageNumber} of {numPages}
// //             </p>
// //           </nav>
// //           <div className="pdf-content">
// //             <Document file={selectedPdf} onLoadSuccess={onDocumentLoadSuccess}>
// //               <Page pageNumber={pageNumber} />
// //             </Document>
// //           </div>
// //         </div>
// //       )}
// //     </div>
// //   );
// // };

// // export default PDFViewer;

// import React, { useState } from "react";
// import { Document, Page } from "react-pdf/dist/esm/entry.webpack";
// import "react-pdf/dist/esm/Page/AnnotationLayer.css";
// import "./PDFViewer.css";  // Import the CSS file

// const PDFViewer = () => {
//   const [numPages, setNumPages] = useState(null);
//   const [pageNumber, setPageNumber] = useState(1);
//   const [selectedPdf, setSelectedPdf] = useState(null);

//   const onDocumentLoadSuccess = ({ numPages }) => {
//     setNumPages(numPages);
//   };

//   const goToPrevPage = () =>
//     setPageNumber(pageNumber - 1 <= 1 ? 1 : pageNumber - 1);

//   const goToNextPage = () =>
//     setPageNumber(pageNumber + 1 >= numPages ? numPages : pageNumber + 1);

//   const handleFileChange = (event) => {
//     const file = event.target.files[0];
//     setSelectedPdf(file);
//     setPageNumber(1); // Reset page number when selecting a new PDF
//   };

//   return (
//     <div className="pdf-viewer">
//       <label htmlFor="fileInput">Select a PDF:</label>
//       <input
//         type="file"
//         id="fileInput"
//         accept=".pdf"
//         onChange={handleFileChange}
//       />
//       {selectedPdf && (
//         <div className="pdf-container">
//           <nav>
//             <button onClick={goToPrevPage} className="previous">
//               Prev
//             </button>
//             <button onClick={goToNextPage} className="next">
//               Next
//             </button>
//             <p>
//               Page {pageNumber} of {numPages}
//             </p>
//           </nav>
//           <div className="pdf-content">
//             <Document file={selectedPdf} onLoadSuccess={onDocumentLoadSuccess}>
//               <Page pageNumber={pageNumber} />
//             </Document>
//           </div>
//         </div>
//       )}
//     </div>
//   );
// };

// export default PDFViewer;

// Import the CSS file

const PDFViewer = () => {
  const [numPages, setNumPages] = (0, _react.useState)(null);
  const [pageNumber, setPageNumber] = (0, _react.useState)(1);
  const [selectedPdf, setSelectedPdf] = (0, _react.useState)(null);
  const pdfContentRef = (0, _react.useRef)(null);
  const onDocumentLoadSuccess = _ref => {
    let {
      numPages
    } = _ref;
    setNumPages(numPages);
  };
  const handleFileChange = event => {
    const file = event.target.files[0];
    setSelectedPdf(file);
    setPageNumber(1); // Reset page number when selecting a new PDF
  };
  const handleScroll = () => {
    if (pdfContentRef.current) {
      const {
        scrollTop,
        scrollHeight,
        clientHeight
      } = pdfContentRef.current;
      if (scrollTop + clientHeight >= scrollHeight) {
        setPageNumber(prevPageNumber => Math.min(prevPageNumber + 1, numPages));
      }
      if (scrollTop === 0) {
        setPageNumber(prevPageNumber => Math.max(prevPageNumber - 1, 1));
      }
    }
  };
  (0, _react.useEffect)(() => {
    const pdfContent = pdfContentRef.current;
    if (pdfContent) {
      pdfContent.addEventListener('scroll', handleScroll);
    }
    return () => {
      if (pdfContent) {
        pdfContent.removeEventListener('scroll', handleScroll);
      }
    };
  }, [numPages]);
  return /*#__PURE__*/_react.default.createElement("div", {
    className: "pdf-viewer"
  }, /*#__PURE__*/_react.default.createElement("label", {
    htmlFor: "fileInput"
  }, "Select a PDF:"), /*#__PURE__*/_react.default.createElement("input", {
    type: "file",
    id: "fileInput",
    accept: ".pdf",
    onChange: handleFileChange
  }), selectedPdf && /*#__PURE__*/_react.default.createElement("div", {
    className: "pdf-container"
  }, /*#__PURE__*/_react.default.createElement("div", {
    className: "pdf-content",
    ref: pdfContentRef
  }, /*#__PURE__*/_react.default.createElement(_entry.Document, {
    file: selectedPdf,
    onLoadSuccess: onDocumentLoadSuccess
  }, /*#__PURE__*/_react.default.createElement(_entry.Page, {
    pageNumber: pageNumber
  }))), /*#__PURE__*/_react.default.createElement("nav", null, /*#__PURE__*/_react.default.createElement("p", null, "Page ", pageNumber, " of ", numPages))));
};
var _default = exports.default = PDFViewer;