@cannyminds/dms-file-viewers 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/{chunk-DOOYIHGW.js → chunk-56PP5GHZ.js} +70 -18
  2. package/dist/chunk-56PP5GHZ.js.map +1 -0
  3. package/dist/{chunk-7BLEPGZ4.mjs → chunk-7AUCINV2.mjs} +70 -18
  4. package/dist/chunk-7AUCINV2.mjs.map +1 -0
  5. package/dist/chunk-A2MSWOEM.js +159 -0
  6. package/dist/chunk-A2MSWOEM.js.map +1 -0
  7. package/dist/{chunk-SBEFC7HP.js → chunk-CQ3HSM5S.js} +70 -18
  8. package/dist/chunk-CQ3HSM5S.js.map +1 -0
  9. package/dist/{chunk-DDT3GC3C.js → chunk-D7LXG67Z.js} +482 -510
  10. package/dist/chunk-D7LXG67Z.js.map +1 -0
  11. package/dist/chunk-EAM7CURM.js +334 -0
  12. package/dist/chunk-EAM7CURM.js.map +1 -0
  13. package/dist/{chunk-SNEIVT4R.js → chunk-ETHSDRF5.js} +70 -18
  14. package/dist/chunk-ETHSDRF5.js.map +1 -0
  15. package/dist/{chunk-RE4XRGSV.js → chunk-FA5L62Y5.js} +52 -32
  16. package/dist/chunk-FA5L62Y5.js.map +1 -0
  17. package/dist/chunk-GMDRDOWP.mjs +159 -0
  18. package/dist/chunk-GMDRDOWP.mjs.map +1 -0
  19. package/dist/{chunk-4DJJINTB.mjs → chunk-KBST5Z5H.mjs} +69 -17
  20. package/dist/chunk-KBST5Z5H.mjs.map +1 -0
  21. package/dist/{chunk-WP55NYFS.js → chunk-LQVHD4FS.js} +71 -19
  22. package/dist/chunk-LQVHD4FS.js.map +1 -0
  23. package/dist/chunk-M57PSU4O.mjs +36 -0
  24. package/dist/chunk-M57PSU4O.mjs.map +1 -0
  25. package/dist/{chunk-YHMHDPLQ.mjs → chunk-PFJKVNUA.mjs} +69 -17
  26. package/dist/chunk-PFJKVNUA.mjs.map +1 -0
  27. package/dist/{chunk-677DWENS.mjs → chunk-THFHTTQX.mjs} +64 -17
  28. package/dist/chunk-THFHTTQX.mjs.map +1 -0
  29. package/dist/chunk-U4W524VZ.mjs +334 -0
  30. package/dist/chunk-U4W524VZ.mjs.map +1 -0
  31. package/dist/{chunk-77UARJVQ.js → chunk-UUM656JE.js} +66 -19
  32. package/dist/chunk-UUM656JE.js.map +1 -0
  33. package/dist/{chunk-QQDQJ7TS.mjs → chunk-VJFXCN5Z.mjs} +50 -30
  34. package/dist/chunk-VJFXCN5Z.mjs.map +1 -0
  35. package/dist/{chunk-BHMFZTZ7.mjs → chunk-WNZHGFNC.mjs} +69 -17
  36. package/dist/chunk-WNZHGFNC.mjs.map +1 -0
  37. package/dist/chunk-YEPEMLM3.js +36 -0
  38. package/dist/chunk-YEPEMLM3.js.map +1 -0
  39. package/dist/{chunk-J2YW5DHC.mjs → chunk-ZKGWS327.mjs} +517 -545
  40. package/dist/chunk-ZKGWS327.mjs.map +1 -0
  41. package/dist/components/viewers/AudioViewer.d.mts +1 -1
  42. package/dist/components/viewers/AudioViewer.d.ts +1 -1
  43. package/dist/components/viewers/AudioViewer.js +4 -3
  44. package/dist/components/viewers/AudioViewer.js.map +1 -1
  45. package/dist/components/viewers/AudioViewer.mjs +3 -2
  46. package/dist/components/viewers/DefaultViewer.d.mts +1 -1
  47. package/dist/components/viewers/DefaultViewer.d.ts +1 -1
  48. package/dist/components/viewers/DefaultViewer.js +4 -3
  49. package/dist/components/viewers/DefaultViewer.js.map +1 -1
  50. package/dist/components/viewers/DefaultViewer.mjs +3 -2
  51. package/dist/components/viewers/ImageViewer.d.mts +1 -1
  52. package/dist/components/viewers/ImageViewer.d.ts +1 -1
  53. package/dist/components/viewers/ImageViewer.js +4 -4
  54. package/dist/components/viewers/ImageViewer.mjs +3 -3
  55. package/dist/components/viewers/PDFViewer.d.mts +1 -1
  56. package/dist/components/viewers/PDFViewer.d.ts +1 -1
  57. package/dist/components/viewers/PDFViewer.js +5 -3
  58. package/dist/components/viewers/PDFViewer.js.map +1 -1
  59. package/dist/components/viewers/PDFViewer.mjs +4 -2
  60. package/dist/components/viewers/TIFFViewer.d.mts +1 -1
  61. package/dist/components/viewers/TIFFViewer.d.ts +1 -1
  62. package/dist/components/viewers/TIFFViewer.js +4 -3
  63. package/dist/components/viewers/TIFFViewer.js.map +1 -1
  64. package/dist/components/viewers/TIFFViewer.mjs +3 -2
  65. package/dist/components/viewers/TextViewer.d.mts +1 -1
  66. package/dist/components/viewers/TextViewer.d.ts +1 -1
  67. package/dist/components/viewers/TextViewer.js +4 -3
  68. package/dist/components/viewers/TextViewer.js.map +1 -1
  69. package/dist/components/viewers/TextViewer.mjs +3 -2
  70. package/dist/components/viewers/VideoViewer.d.mts +1 -1
  71. package/dist/components/viewers/VideoViewer.d.ts +1 -1
  72. package/dist/components/viewers/VideoViewer.js +4 -3
  73. package/dist/components/viewers/VideoViewer.js.map +1 -1
  74. package/dist/components/viewers/VideoViewer.mjs +3 -2
  75. package/dist/index.d.mts +2 -2
  76. package/dist/index.d.ts +2 -2
  77. package/dist/index.js +14 -11
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.mjs +12 -9
  80. package/dist/index.mjs.map +1 -1
  81. package/dist/{types-C6IEfcTM.d.mts → types-BmZB9kkJ.d.mts} +13 -1
  82. package/dist/{types-C6IEfcTM.d.ts → types-BmZB9kkJ.d.ts} +13 -1
  83. package/package.json +1 -1
  84. package/dist/chunk-4DJJINTB.mjs.map +0 -1
  85. package/dist/chunk-677DWENS.mjs.map +0 -1
  86. package/dist/chunk-77UARJVQ.js.map +0 -1
  87. package/dist/chunk-7BLEPGZ4.mjs.map +0 -1
  88. package/dist/chunk-BHMFZTZ7.mjs.map +0 -1
  89. package/dist/chunk-BONT4K3R.mjs +0 -294
  90. package/dist/chunk-BONT4K3R.mjs.map +0 -1
  91. package/dist/chunk-DDT3GC3C.js.map +0 -1
  92. package/dist/chunk-DOOYIHGW.js.map +0 -1
  93. package/dist/chunk-J2YW5DHC.mjs.map +0 -1
  94. package/dist/chunk-QQDQJ7TS.mjs.map +0 -1
  95. package/dist/chunk-RE4XRGSV.js.map +0 -1
  96. package/dist/chunk-SBEFC7HP.js.map +0 -1
  97. package/dist/chunk-SNEIVT4R.js.map +0 -1
  98. package/dist/chunk-WP55NYFS.js.map +0 -1
  99. package/dist/chunk-YHMHDPLQ.mjs.map +0 -1
  100. package/dist/chunk-Z3IUTTJQ.js +0 -294
  101. package/dist/chunk-Z3IUTTJQ.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/viewers/PDFViewer.tsx","../src/components/viewers/pdf/SearchSidebar.tsx","../src/components/viewers/pdf/PasswordDialog.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState, forwardRef, useImperativeHandle } from 'react';\r\nimport { PDFViewer as HeadlessPDFViewerImport } from '@cannyminds/pdf-viewer';\r\nimport { FileViewerProps } from '../../types';\r\nimport { getFileExtension } from '../../utils/fileUtils';\r\nimport FileIcon from '../FileIcon';\r\n\r\n// Ensure we have a valid component\r\nconst HeadlessPDFViewer: any = HeadlessPDFViewerImport;\r\nimport FirstPageIcon from '@mui/icons-material/FirstPage';\r\nimport LastPageIcon from '@mui/icons-material/LastPage';\r\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\r\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\r\nimport ZoomInIcon from '@mui/icons-material/ZoomIn';\r\nimport ZoomOutIcon from '@mui/icons-material/ZoomOut';\r\nimport FitScreenIcon from '@mui/icons-material/FitScreen';\r\nimport AspectRatioIcon from '@mui/icons-material/AspectRatio';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport PrintIcon from '@mui/icons-material/Print';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport { SearchSidebar } from './pdf/SearchSidebar';\r\nimport { PasswordDialog } from './pdf/PasswordDialog';\r\n\r\ntype LoadingState = 'idle' | 'loading' | 'ready' | 'error';\r\n\r\n/**\r\n * IMPORTANT: The @cannyminds/pdf-viewer navigation API is not fully implemented.\r\n * Methods like getCurrentPage(), getTotalPages(), goToPage() return hardcoded values.\r\n * This component implements custom page tracking using DOM inspection and search detection.\r\n */\r\n\r\n// ============================================================================\r\n// Toolbar Styles\r\n// ============================================================================\r\nconst toolbarStyles = `\r\n @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Tamil:wght@400;500;600;700&family=Noto+Sans+Devanagari:wght@400;500;600;700&display=swap');\r\n \r\n * {\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\r\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\r\n 'Noto Sans Tamil', 'Noto Sans Devanagari', 'Lohit Tamil', 'Tamil MN', \r\n 'Arial Unicode MS', sans-serif !important;\r\n }\r\n \r\n /* Target PDF.js text layer */\r\n .textLayer,\r\n .textLayer span,\r\n .textLayer div,\r\n [class*=\"pdf\"],\r\n [class*=\"page\"],\r\n canvas + div,\r\n .embedpdf-viewport *,\r\n [data-pdf-viewer] *,\r\n [role=\"document\"] * {\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\r\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\r\n 'Noto Sans Tamil', 'Noto Sans Devanagari', 'Lohit Tamil', 'Tamil MN', \r\n 'Arial Unicode MS', sans-serif !important;\r\n }\r\n \r\n .pdf-viewer-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n gap: 8px;\r\n padding: 3px 16px 0 16px;\r\n background: #fff;\r\n min-height: 36px;\r\n }\r\n .header-file-name {\r\n font-size: 12px;\r\n font-weight: 500;\r\n color: #424242;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-width: 400px;\r\n }\r\n .pdf-viewer-toolbar {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0 16px 6px 16px;\r\n background: #fff;\r\n gap: 12px;\r\n flex-wrap: wrap;\r\n min-height: 44px;\r\n }\r\n .toolbar-section {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n }\r\n .toolbar-separator {\r\n width: 1px;\r\n height: 24px;\r\n background: #e0e0e0;\r\n margin: 0 4px;\r\n }\r\n .toolbar-button {\r\n padding: 8px;\r\n border: none;\r\n background: transparent;\r\n cursor: pointer;\r\n border-radius: 4px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: background 0.2s;\r\n }\r\n .toolbar-button:hover:not(:disabled) {\r\n background: #f5f5f5;\r\n }\r\n .toolbar-button:disabled {\r\n opacity: 0.4;\r\n cursor: not-allowed;\r\n }\r\n .toolbar-button svg {\r\n width: 20px;\r\n height: 20px;\r\n display: block;\r\n }\r\n .page-input {\r\n width: 60px;\r\n padding: 4px 8px;\r\n border: 1px solid #e0e0e0;\r\n border-radius: 4px;\r\n text-align: center;\r\n font-size: 14px;\r\n }\r\n .page-info {\r\n font-size: 14px;\r\n color: #666;\r\n white-space: nowrap;\r\n }\r\n .zoom-display {\r\n min-width: 60px;\r\n text-align: center;\r\n font-size: 14px;\r\n color: #666;\r\n }\r\n .search-input {\r\n padding: 4px 8px;\r\n border: 1px solid #e0e0e0;\r\n border-radius: 4px;\r\n font-size: 14px;\r\n min-width: 200px;\r\n }\r\n .pdf-viewer-content {\r\n flex: 1;\r\n overflow: hidden;\r\n position: relative;\r\n user-select: text;\r\n -webkit-user-select: text;\r\n -moz-user-select: text;\r\n -ms-user-select: text;\r\n }\r\n .pdf-viewer-container {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n width: 100%;\r\n }\r\n .pdf-viewer-main {\r\n display: flex;\r\n flex: 1;\r\n overflow: hidden;\r\n position: relative;\r\n }\r\n .pdf-viewer-viewer-area {\r\n flex: 1;\r\n overflow: hidden;\r\n position: relative;\r\n user-select: text;\r\n -webkit-user-select: text;\r\n -moz-user-select: text;\r\n -ms-user-select: text;\r\n }\r\n .pdf-viewer-viewer-area * {\r\n user-select: text !important;\r\n -webkit-user-select: text !important;\r\n -moz-user-select: text !important;\r\n -ms-user-select: text !important;\r\n }\r\n`;\r\n\r\n// Define the PDFViewerRef interface matching the upstream library\r\ninterface CannyMindsPDFViewerRef {\r\n zoom: {\r\n zoomIn: () => void;\r\n zoomOut: () => void;\r\n setZoom: (level: number) => void;\r\n resetZoom: () => void;\r\n getZoom: () => number | any;\r\n fitToWidth: () => void;\r\n fitToPage: () => void;\r\n };\r\n navigation: {\r\n goToPage: (page: number) => void;\r\n getCurrentPage: () => number;\r\n getTotalPages: () => number;\r\n nextPage: () => void;\r\n previousPage: () => void;\r\n goToFirstPage: () => void;\r\n goToLastPage: () => void;\r\n };\r\n selection: {\r\n clearSelection: () => void;\r\n getSelectedText: () => string;\r\n };\r\n search: {\r\n searchText: (keyword: string) => Promise<any>;\r\n nextResult: () => number;\r\n previousResult: () => number;\r\n goToResult: (index: number) => number;\r\n stopSearch: () => void;\r\n startSearch: () => void;\r\n getSearchState: () => any;\r\n setShowAllResults: (show: boolean) => void;\r\n };\r\n document?: {\r\n isReady: () => boolean;\r\n isLoading: () => boolean;\r\n hasPassword: () => boolean;\r\n getDocumentInfo: () => any;\r\n };\r\n scroll?: {\r\n scrollToPage: (page: number) => void;\r\n };\r\n}\r\n\r\ninterface PDFViewerContentProps extends FileViewerProps {\r\n sourceDescription: string;\r\n}\r\n\r\nexport interface PDFViewerMethods {\r\n zoomIn: () => void;\r\n zoomOut: () => void;\r\n setZoom: (level: number) => void;\r\n resetZoom: () => void;\r\n getZoom: () => number;\r\n goToPage: (page: number) => void;\r\n getCurrentPage: () => number;\r\n getTotalPages: () => number;\r\n nextPage: () => void;\r\n previousPage: () => void;\r\n goToFirstPage: () => void;\r\n goToLastPage: () => void;\r\n searchText: (keyword: string) => Promise<any>;\r\n nextResult: () => number;\r\n previousResult: () => number;\r\n goToResult: (index: number) => number;\r\n stopSearch: () => void;\r\n getSearchState: () => any;\r\n getSelectedText: () => string;\r\n clearSelection: () => void;\r\n}\r\n\r\nconst PDFViewerContent = forwardRef<PDFViewerMethods, PDFViewerContentProps>((props, ref) => {\r\n const { \r\n file, \r\n onLoad, \r\n onError, \r\n fileName, \r\n showPageCount = true,\r\n showPageNavigation = true,\r\n showZoomControls = true,\r\n showDownload = true,\r\n showPrint = true,\r\n showSearch = true,\r\n showMetadata = true,\r\n showProperties = true,\r\n onMetadataClick,\r\n onPropertiesClick,\r\n onDownloadClick,\r\n onPrintClick,\r\n initialSearchText,\r\n initialSearchPages\r\n } = props;\r\n const [pdfBuffer, setPdfBuffer] = useState<ArrayBuffer | null>(null);\r\n const [state, setState] = useState<LoadingState>('idle');\r\n const [error, setError] = useState<string | null>(null);\r\n const pdfViewerRef = useRef<CannyMindsPDFViewerRef>(null);\r\n \r\n // File info\r\n const resolvedFileName = useMemo(() => {\r\n if (fileName) return fileName;\r\n if (file instanceof File) return file.name;\r\n if (typeof file === 'string') {\r\n const urlParts = file.split('/');\r\n return urlParts[urlParts.length - 1] || 'document.pdf';\r\n }\r\n return 'document.pdf';\r\n }, [file, fileName]);\r\n\r\n const fileExtension = useMemo(\r\n () => getFileExtension(resolvedFileName),\r\n [resolvedFileName]\r\n );\r\n \r\n // Toolbar state\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [totalPages, setTotalPages] = useState(0);\r\n const [zoom, setZoom] = useState(100);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [isSearching, setIsSearching] = useState(false);\r\n const [pdfContainer, setPdfContainer] = useState<HTMLElement | null>(null);\r\n const [isSidebarOpen, setIsSidebarOpen] = useState(false);\r\n const [searchResults, setSearchResults] = useState<any[]>([]);\r\n const [currentSearchResultIndex, setCurrentSearchResultIndex] = useState(0);\r\n const [totalSearchResults, setTotalSearchResults] = useState(0);\r\n const [autoExecuteSearch, setAutoExecuteSearch] = useState(!!initialSearchText);\r\n\r\n // Password dialog state\r\n const [isPasswordDialogOpen, setIsPasswordDialogOpen] = useState(false);\r\n const [passwordError, setPasswordError] = useState<string>('');\r\n const [passwordResolve, setPasswordResolve] = useState<((password: string | null) => void) | null>(null);\r\n\r\n // Reset all state when file changes\r\n useEffect(() => {\r\n // Reset search state\r\n setSearchQuery('');\r\n setSearchResults([]);\r\n setCurrentSearchResultIndex(0);\r\n setTotalSearchResults(0);\r\n setIsSearching(false);\r\n setIsSidebarOpen(false);\r\n \r\n // Reset page state\r\n setCurrentPage(1);\r\n setTotalPages(0);\r\n setZoom(100);\r\n \r\n // Reset PDF state\r\n setState('idle');\r\n setError(null);\r\n setPdfBuffer(null);\r\n }, [file]);\r\n\r\n // Track the PDF container for page detection using MutationObserver\r\n useEffect(() => {\r\n if (state !== 'ready') return;\r\n\r\n const container = document.querySelector('[data-pdf-viewer], .embedpdf-viewport, [role=\"document\"]') as HTMLElement;\r\n if (container) {\r\n setPdfContainer(container);\r\n return;\r\n }\r\n\r\n // Use MutationObserver to wait for container to appear in DOM\r\n const observer = new MutationObserver(() => {\r\n const foundContainer = document.querySelector('[data-pdf-viewer], .embedpdf-viewport, [role=\"document\"]') as HTMLElement;\r\n if (foundContainer) {\r\n setPdfContainer(foundContainer);\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n return () => observer.disconnect();\r\n }, [state]);\r\n\r\n // Initialize page count after PDF loads - using async polling with exponential backoff\r\n useEffect(() => {\r\n if (state !== 'ready' || totalPages > 0) return;\r\n\r\n const initializePageCount = async () => {\r\n // Wait for viewer ref with exponential backoff\r\n const waitForViewer = async (maxAttempts = 10): Promise<typeof pdfViewerRef.current> => {\r\n for (let i = 0; i < maxAttempts; i++) {\r\n if (pdfViewerRef.current) return pdfViewerRef.current;\r\n await new Promise(resolve => requestAnimationFrame(() => \r\n setTimeout(resolve, Math.min(100 * Math.pow(2, i), 1000))\r\n ));\r\n }\r\n return null;\r\n };\r\n\r\n const viewer = await waitForViewer();\r\n if (!viewer) return;\r\n\r\n // Wait for pages to render using requestAnimationFrame\r\n await new Promise(resolve => requestAnimationFrame(resolve));\r\n\r\n // Try navigation API first\r\n try {\r\n const count = viewer.navigation?.getTotalPages?.();\r\n if (count && count > 1) {\r\n setTotalPages(count);\r\n return;\r\n }\r\n } catch (e) {\r\n // Continue to fallback methods\r\n }\r\n\r\n // Fallback: Search for common character and count unique pages\r\n try {\r\n const results = await viewer.search?.searchText?.('e');\r\n \r\n if (results?.results && results.results.length > 0) {\r\n const pageIndices = results.results\r\n .map((m: any) => m.pageIndex as number)\r\n .filter((idx: any): idx is number => typeof idx === 'number');\r\n const count = Math.max(...pageIndices) + 1;\r\n viewer.search?.stopSearch?.();\r\n setTotalPages(count);\r\n return;\r\n }\r\n } catch (error) {\r\n // Continue to next method\r\n }\r\n\r\n // DOM inspection fallback - count rendered pages\r\n try {\r\n const selectors = [\r\n '[data-page-index]',\r\n '[data-page-number]',\r\n '.embedpdf-page',\r\n '[role=\"article\"]',\r\n 'canvas[data-page]',\r\n '.react-pdf__Page'\r\n ];\r\n \r\n for (const selector of selectors) {\r\n const pages = document.querySelectorAll(selector);\r\n if (pages.length > 0) {\r\n setTotalPages(pages.length);\r\n return;\r\n }\r\n }\r\n } catch (error) {\r\n // Continue to fallback\r\n }\r\n\r\n // Ultimate fallback\r\n setTotalPages(1);\r\n };\r\n\r\n initializePageCount();\r\n }, [state, totalPages]);\r\n\r\n // Auto-execute search when initialSearchText is provided via props\r\n useEffect(() => {\r\n if (state !== 'ready' || !autoExecuteSearch || !initialSearchText) return;\r\n\r\n // Use requestIdleCallback for better performance, fallback to rAF\r\n const scheduleSearch = (callback: () => void) => {\r\n if ('requestIdleCallback' in window) {\r\n requestIdleCallback(callback, { timeout: 2000 });\r\n } else {\r\n requestAnimationFrame(() => setTimeout(callback, 0));\r\n }\r\n };\r\n\r\n scheduleSearch(() => {\r\n if (!pdfViewerRef.current) return;\r\n\r\n setIsSidebarOpen(true);\r\n setSearchQuery(initialSearchText);\r\n handleSidebarSearch(initialSearchText, initialSearchPages);\r\n setAutoExecuteSearch(false);\r\n });\r\n }, [state, autoExecuteSearch, initialSearchText, initialSearchPages]);\r\n\r\n // Update page info and search state periodically\r\n useEffect(() => {\r\n if (state === 'ready' && pdfViewerRef.current) {\r\n const updateInfo = () => {\r\n const current = pdfViewerRef.current?.navigation.getCurrentPage() || 1;\r\n const total = pdfViewerRef.current?.navigation.getTotalPages() || 0;\r\n const zoomValue = pdfViewerRef.current?.zoom.getZoom();\r\n const currentSearchState = pdfViewerRef.current?.search.getSearchState();\r\n \r\n setCurrentPage(current);\r\n \r\n // Update total pages if we got a valid count\r\n if (total > 0 && total !== totalPages) {\r\n setTotalPages(total);\r\n }\r\n \r\n if (typeof zoomValue === 'number') {\r\n setZoom(Math.round(zoomValue * 100));\r\n }\r\n };\r\n\r\n updateInfo();\r\n const interval = setInterval(updateInfo, 300);\r\n return () => clearInterval(interval);\r\n }\r\n }, [state, totalPages]);\r\n\r\n // Expose methods through ref\r\n useImperativeHandle(ref, () => ({\r\n zoomIn: () => {\r\n pdfViewerRef.current?.zoom.zoomIn();\r\n updateZoomDisplay();\r\n },\r\n zoomOut: () => {\r\n pdfViewerRef.current?.zoom.zoomOut();\r\n updateZoomDisplay();\r\n },\r\n setZoom: (level: number) => {\r\n pdfViewerRef.current?.zoom.setZoom(level);\r\n updateZoomDisplay();\r\n },\r\n resetZoom: () => {\r\n pdfViewerRef.current?.zoom.resetZoom();\r\n updateZoomDisplay();\r\n },\r\n getZoom: () => {\r\n const zoom = pdfViewerRef.current?.zoom.getZoom();\r\n return typeof zoom === 'number' ? zoom : 1.0;\r\n },\r\n goToPage: (page: number) => {\r\n pdfViewerRef.current?.navigation.goToPage(page);\r\n setCurrentPage(page);\r\n },\r\n getCurrentPage: () => pdfViewerRef.current?.navigation.getCurrentPage() || 1,\r\n getTotalPages: () => pdfViewerRef.current?.navigation.getTotalPages() || 0,\r\n nextPage: () => {\r\n pdfViewerRef.current?.navigation.nextPage();\r\n updatePageDisplay();\r\n },\r\n previousPage: () => {\r\n pdfViewerRef.current?.navigation.previousPage();\r\n updatePageDisplay();\r\n },\r\n goToFirstPage: () => {\r\n pdfViewerRef.current?.navigation.goToFirstPage();\r\n updatePageDisplay();\r\n },\r\n goToLastPage: () => {\r\n pdfViewerRef.current?.navigation.goToLastPage();\r\n updatePageDisplay();\r\n },\r\n searchText: async (keyword: string) => {\r\n setIsSearching(true);\r\n const results = await pdfViewerRef.current?.search.searchText(keyword);\r\n setIsSearching(false);\r\n setSearchQuery(keyword);\r\n // Search state will be updated by the interval\r\n return results;\r\n },\r\n nextResult: () => {\r\n const index = pdfViewerRef.current?.search.nextResult() || -1;\r\n return index;\r\n },\r\n previousResult: () => {\r\n const index = pdfViewerRef.current?.search.previousResult() || -1;\r\n return index;\r\n },\r\n goToResult: (index: number) => pdfViewerRef.current?.search.goToResult(index) || -1,\r\n stopSearch: () => {\r\n pdfViewerRef.current?.search.stopSearch();\r\n setSearchQuery('');\r\n },\r\n getSearchState: () => pdfViewerRef.current?.search.getSearchState() || null,\r\n getSelectedText: () => pdfViewerRef.current?.selection.getSelectedText() || '',\r\n clearSelection: () => pdfViewerRef.current?.selection.clearSelection(),\r\n }), []);\r\n\r\n const updatePageDisplay = () => {\r\n requestAnimationFrame(() => {\r\n const current = pdfViewerRef.current?.navigation.getCurrentPage() || 1;\r\n setCurrentPage(current);\r\n });\r\n };\r\n\r\n const updateZoomDisplay = () => {\r\n requestAnimationFrame(() => {\r\n const zoomValue = pdfViewerRef.current?.zoom.getZoom();\r\n if (typeof zoomValue === 'number') {\r\n setZoom(Math.round(zoomValue * 100));\r\n }\r\n });\r\n };\r\n\r\n // Toolbar handlers\r\n const handleZoomIn = () => {\r\n pdfViewerRef.current?.zoom.zoomIn();\r\n updateZoomDisplay();\r\n };\r\n\r\n const handleZoomOut = () => {\r\n pdfViewerRef.current?.zoom.zoomOut();\r\n updateZoomDisplay();\r\n };\r\n\r\n const handleFitToWidth = () => {\r\n pdfViewerRef.current?.zoom.fitToWidth();\r\n updateZoomDisplay();\r\n };\r\n\r\n const handleFitToPage = () => {\r\n pdfViewerRef.current?.zoom.fitToPage();\r\n updateZoomDisplay();\r\n };\r\n\r\n const handlePreviousPage = () => {\r\n pdfViewerRef.current?.navigation.previousPage();\r\n updatePageDisplay();\r\n };\r\n\r\n const handleNextPage = () => {\r\n pdfViewerRef.current?.navigation.nextPage();\r\n updatePageDisplay();\r\n };\r\n\r\n const handleFirstPage = () => {\r\n pdfViewerRef.current?.navigation.goToFirstPage();\r\n updatePageDisplay();\r\n };\r\n\r\n const handleLastPage = () => {\r\n pdfViewerRef.current?.navigation.goToLastPage();\r\n updatePageDisplay();\r\n };\r\n\r\n const handlePageInput = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n const page = parseInt(value, 10);\r\n \r\n // Allow typing (update input immediately)\r\n if (/^\\d*$/.test(value)) {\r\n // Valid number format - user is still typing\r\n return;\r\n }\r\n \r\n // Validate and navigate when complete\r\n if (!isNaN(page) && page >= 1 && (totalPages === 0 || page <= totalPages)) {\r\n pdfViewerRef.current?.navigation.goToPage(page);\r\n setCurrentPage(page);\r\n }\r\n };\r\n\r\n const handlePageInputKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n const value = (e.target as HTMLInputElement).value;\r\n const page = parseInt(value, 10);\r\n if (!isNaN(page) && page >= 1 && (totalPages === 0 || page <= totalPages)) {\r\n pdfViewerRef.current?.navigation.goToPage(page);\r\n setCurrentPage(page);\r\n }\r\n }\r\n };\r\n\r\n const handleSearch = async () => {\r\n if (searchQuery.trim()) {\r\n setIsSearching(true);\r\n const results = await pdfViewerRef.current?.search.searchText(searchQuery);\r\n setIsSearching(false);\r\n \r\n // Store search results for sidebar\r\n if (results && results.results) {\r\n const formattedResults = results.results.map((result: any, index: number) => {\r\n // Extract text content - try different possible properties\r\n let textContent = '';\r\n let contextContent = '';\r\n \r\n if (typeof result === 'string') {\r\n textContent = result;\r\n contextContent = result;\r\n } else if (result.text) {\r\n textContent = String(result.text);\r\n contextContent = result.context ? String(result.context) : String(result.text);\r\n } else if (result.str) {\r\n textContent = String(result.str);\r\n contextContent = String(result.str);\r\n } else if (result.match) {\r\n textContent = String(result.match);\r\n contextContent = String(result.match);\r\n } else {\r\n textContent = JSON.stringify(result);\r\n contextContent = textContent;\r\n }\r\n \r\n return {\r\n pageNumber: (result.pageIndex ?? result.pageNumber ?? 0) + 1,\r\n text: textContent,\r\n context: contextContent,\r\n index: index\r\n };\r\n });\r\n \r\n setSearchResults(formattedResults);\r\n setTotalSearchResults(formattedResults.length);\r\n setCurrentSearchResultIndex(0);\r\n } else {\r\n setSearchResults([]);\r\n setTotalSearchResults(0);\r\n setCurrentSearchResultIndex(0);\r\n }\r\n }\r\n };\r\n\r\n const handleSearchKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const handleSidebarSearch = async (keyword: string, pageNumbers?: number[]) => {\r\n setSearchQuery(keyword);\r\n if (keyword.trim()) {\r\n setIsSearching(true);\r\n const results = await pdfViewerRef.current?.search.searchText(keyword);\r\n setIsSearching(false);\r\n \r\n // Store search results for sidebar\r\n if (results && results.results && results.results.length > 0) {\r\n const formattedResults = results.results.map((result: any, index: number) => {\r\n // Extract text content from the context object\r\n let textContent = '';\r\n let contextContent = '';\r\n \r\n if (result.context && typeof result.context === 'object') {\r\n // Build the full context string\r\n const before = result.context.before || '';\r\n const match = result.context.match || '';\r\n const after = result.context.after || '';\r\n \r\n textContent = match;\r\n contextContent = `${before}${match}${after}`;\r\n } else if (typeof result === 'string') {\r\n textContent = result;\r\n contextContent = result;\r\n } else {\r\n textContent = String(result.match || result.text || '');\r\n contextContent = textContent;\r\n }\r\n \r\n return {\r\n pageNumber: (result.pageIndex ?? result.pageNumber ?? 0) + 1,\r\n text: textContent,\r\n context: contextContent,\r\n index: index\r\n };\r\n });\r\n \r\n setSearchResults(formattedResults);\r\n setTotalSearchResults(formattedResults.length);\r\n setCurrentSearchResultIndex(0);\r\n \r\n // Navigate to the first result's page\r\n if (formattedResults.length > 0) {\r\n const firstPageNumber = formattedResults[0].pageNumber;\r\n pdfViewerRef.current?.navigation.goToPage(firstPageNumber);\r\n setCurrentPage(firstPageNumber);\r\n }\r\n } else if (pageNumbers && pageNumbers.length > 0) {\r\n // If search didn't find results but we have page numbers from OCR, use them as fallback\r\n const fallbackResults = pageNumbers.map((pageNum, index) => ({\r\n pageNumber: pageNum,\r\n text: keyword,\r\n context: `\"${keyword}\" found on this page ${pageNum}`,\r\n index: index\r\n }));\r\n \r\n setSearchResults(fallbackResults);\r\n setTotalSearchResults(fallbackResults.length);\r\n setCurrentSearchResultIndex(0);\r\n \r\n // Navigate to the first fallback page\r\n pdfViewerRef.current?.navigation.goToPage(pageNumbers[0]);\r\n setCurrentPage(pageNumbers[0]);\r\n } else {\r\n setSearchResults([]);\r\n setTotalSearchResults(0);\r\n setCurrentSearchResultIndex(0);\r\n }\r\n } else {\r\n setSearchResults([]);\r\n pdfViewerRef.current?.search.stopSearch();\r\n setTotalSearchResults(0);\r\n setCurrentSearchResultIndex(0);\r\n }\r\n };\r\n\r\n const handleSearchResultClick = (pageNumber: number, resultIndex: number) => {\r\n // Navigate to the page first\r\n pdfViewerRef.current?.navigation.goToPage(pageNumber);\r\n setCurrentSearchResultIndex(resultIndex);\r\n setCurrentPage(pageNumber);\r\n \r\n // Then go to the specific result\r\n pdfViewerRef.current?.search.goToResult(resultIndex);\r\n };\r\n\r\n const toggleSidebar = () => {\r\n setIsSidebarOpen(!isSidebarOpen);\r\n };\r\n\r\n const handleNextSearchResult = () => {\r\n if (currentSearchResultIndex < totalSearchResults - 1) {\r\n const nextIndex = currentSearchResultIndex + 1;\r\n setCurrentSearchResultIndex(nextIndex);\r\n \r\n pdfViewerRef.current?.search.nextResult();\r\n \r\n // Navigate to the page of the next result\r\n if (searchResults[nextIndex]) {\r\n const pageNumber = searchResults[nextIndex].pageNumber;\r\n pdfViewerRef.current?.navigation.goToPage(pageNumber);\r\n setCurrentPage(pageNumber);\r\n }\r\n }\r\n };\r\n\r\n const handlePreviousSearchResult = () => {\r\n if (currentSearchResultIndex > 0) {\r\n const prevIndex = currentSearchResultIndex - 1;\r\n setCurrentSearchResultIndex(prevIndex);\r\n \r\n pdfViewerRef.current?.search.previousResult();\r\n \r\n // Navigate to the page of the previous result\r\n if (searchResults[prevIndex]) {\r\n const pageNumber = searchResults[prevIndex].pageNumber;\r\n pdfViewerRef.current?.navigation.goToPage(pageNumber);\r\n setCurrentPage(pageNumber);\r\n }\r\n }\r\n };\r\n\r\n const handlePrint = () => {\r\n if (onPrintClick) {\r\n onPrintClick();\r\n return;\r\n }\r\n \r\n if (!pdfBuffer) return;\r\n \r\n const blob = new Blob([pdfBuffer], { type: 'application/pdf' });\r\n const blobUrl = URL.createObjectURL(blob);\r\n \r\n // Create hidden iframe for printing\r\n const iframe = document.createElement('iframe');\r\n iframe.style.position = 'fixed';\r\n iframe.style.right = '0';\r\n iframe.style.bottom = '0';\r\n iframe.style.width = '0';\r\n iframe.style.height = '0';\r\n iframe.style.border = '0';\r\n \r\n document.body.appendChild(iframe);\r\n \r\n iframe.onload = () => {\r\n try {\r\n requestAnimationFrame(() => {\r\n const iframeWindow = iframe.contentWindow;\r\n if (!iframeWindow) return;\r\n \r\n iframeWindow.focus();\r\n iframeWindow.print();\r\n \r\n // Cleanup handler\r\n const cleanup = () => {\r\n requestAnimationFrame(() => {\r\n try {\r\n if (document.body.contains(iframe)) {\r\n document.body.removeChild(iframe);\r\n }\r\n URL.revokeObjectURL(blobUrl);\r\n } catch (e) {\r\n // Element might already be removed\r\n }\r\n });\r\n };\r\n \r\n // Use afterprint event or fallback to visibility change\r\n if ('onafterprint' in iframeWindow) {\r\n iframeWindow.onafterprint = cleanup;\r\n } else {\r\n // Fallback: listen for visibility change (better than arbitrary timeout)\r\n const visibilityHandler = () => {\r\n if (!document.hidden) {\r\n cleanup();\r\n document.removeEventListener('visibilitychange', visibilityHandler);\r\n }\r\n };\r\n document.addEventListener('visibilitychange', visibilityHandler);\r\n \r\n // Safety cleanup after 5 seconds\r\n setTimeout(() => {\r\n cleanup();\r\n document.removeEventListener('visibilitychange', visibilityHandler);\r\n }, 5000);\r\n }\r\n });\r\n } catch (error) {\r\n // Cleanup on error\r\n if (document.body.contains(iframe)) {\r\n document.body.removeChild(iframe);\r\n }\r\n URL.revokeObjectURL(blobUrl);\r\n }\r\n };\r\n\r\n iframe.onerror = () => {\r\n // Cleanup on load error\r\n document.body.removeChild(iframe);\r\n URL.revokeObjectURL(blobUrl);\r\n };\r\n \r\n iframe.src = blobUrl;\r\n };\r\n\r\n // Load PDF from file\r\n useEffect(() => {\r\n if (!file) {\r\n setState('error');\r\n setError('No file provided');\r\n return;\r\n }\r\n\r\n const loadPDF = async () => {\r\n try {\r\n setState('loading');\r\n setError(null);\r\n\r\n let arrayBuffer: ArrayBuffer;\r\n\r\n if (file instanceof File) {\r\n arrayBuffer = await file.arrayBuffer();\r\n } else if (typeof file === 'string') {\r\n // Load from URL\r\n const response = await fetch(file);\r\n if (!response.ok) {\r\n throw new Error(`Failed to load PDF: ${response.statusText}`);\r\n }\r\n arrayBuffer = await response.arrayBuffer();\r\n } else if (file instanceof ArrayBuffer) {\r\n arrayBuffer = file;\r\n } else {\r\n throw new Error('Unsupported file type');\r\n }\r\n\r\n setPdfBuffer(arrayBuffer);\r\n setState('ready');\r\n onLoad?.();\r\n\r\n } catch (err: any) {\r\n const errorMessage = err.message || 'Failed to load PDF';\r\n setState('error');\r\n setError(errorMessage);\r\n onError?.(err);\r\n }\r\n };\r\n\r\n loadPDF();\r\n }, [file, onLoad, onError]);\r\n\r\n // Handle password request for encrypted PDFs\r\n const handlePasswordRequest = useCallback(async (fileName?: string): Promise<string | null> => {\r\n return new Promise((resolve) => {\r\n setPasswordResolve(() => resolve);\r\n setPasswordError('');\r\n setIsPasswordDialogOpen(true);\r\n });\r\n }, []);\r\n\r\n const handlePasswordSubmit = useCallback((password: string) => {\r\n if (passwordResolve) {\r\n passwordResolve(password);\r\n setPasswordResolve(null);\r\n setIsPasswordDialogOpen(false);\r\n setPasswordError('');\r\n }\r\n }, [passwordResolve]);\r\n\r\n const handlePasswordCancel = useCallback(() => {\r\n if (passwordResolve) {\r\n passwordResolve(null);\r\n setPasswordResolve(null);\r\n setIsPasswordDialogOpen(false);\r\n setPasswordError('');\r\n }\r\n }, [passwordResolve]);\r\n\r\n if (state === 'loading') {\r\n return (\r\n <div style={{ \r\n display: 'flex', \r\n flexDirection: 'column', \r\n alignItems: 'center', \r\n justifyContent: 'center', \r\n height: '100%',\r\n gap: '16px'\r\n }}>\r\n <div className=\"spinner\" style={{ \r\n width: '48px', \r\n height: '48px', \r\n border: '4px solid #f3f3f3',\r\n borderTop: '4px solid #3498db',\r\n borderRadius: '50%',\r\n animation: 'spin 1s linear infinite'\r\n }} />\r\n <p>Loading PDF...</p>\r\n <style>{`\r\n @keyframes spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n }\r\n\r\n if (state === 'error' || error) {\r\n return (\r\n <div style={{ \r\n display: 'flex', \r\n flexDirection: 'column', \r\n alignItems: 'center', \r\n justifyContent: 'center', \r\n height: '100%',\r\n padding: '24px'\r\n }}>\r\n <div style={{ \r\n maxWidth: '400px',\r\n padding: '16px',\r\n backgroundColor: '#fee',\r\n border: '1px solid #fcc',\r\n borderRadius: '4px'\r\n }}>\r\n <h3 style={{ marginTop: 0 }}>Failed to Load PDF</h3>\r\n <p>{error || 'Unknown error occurred'}</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n if (!pdfBuffer || state !== 'ready') {\r\n return (\r\n <div style={{ \r\n display: 'flex', \r\n alignItems: 'center', \r\n justifyContent: 'center', \r\n height: '100%' \r\n }}>\r\n <p>Preparing PDF...</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"pdf-viewer-container\">\r\n <style>{toolbarStyles}</style>\r\n \r\n {/* Header - File Info */}\r\n <div className=\"pdf-viewer-header\">\r\n <FileIcon ext={fileExtension} size={26} />\r\n <div className=\"header-file-name\" title={resolvedFileName}>\r\n {resolvedFileName}\r\n </div>\r\n </div>\r\n \r\n {/* Toolbar */}\r\n <div className=\"pdf-viewer-toolbar\">\r\n\r\n {showPageNavigation && (\r\n <>\r\n <div className=\"toolbar-separator\"></div>\r\n\r\n {/* Page Navigation */}\r\n <div className=\"toolbar-section\">\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handleFirstPage}\r\n disabled={currentPage <= 1}\r\n title=\"First Page\"\r\n >\r\n <FirstPageIcon fontSize=\"small\" />\r\n </button>\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handlePreviousPage}\r\n disabled={currentPage <= 1}\r\n title=\"Previous Page\"\r\n >\r\n <ChevronLeftIcon fontSize=\"small\" />\r\n </button>\r\n \r\n <input\r\n type=\"number\"\r\n className=\"page-input\"\r\n value={currentPage}\r\n onChange={handlePageInput}\r\n onKeyPress={handlePageInputKeyPress}\r\n min={1}\r\n max={totalPages || undefined}\r\n />\r\n {showPageCount && <span className=\"page-info\">of {totalPages || '...'}</span>}\r\n \r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handleNextPage}\r\n disabled={currentPage >= totalPages}\r\n title=\"Next Page\"\r\n >\r\n <ChevronRightIcon fontSize=\"small\" />\r\n </button>\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handleLastPage}\r\n disabled={currentPage >= totalPages}\r\n title=\"Last Page\"\r\n >\r\n <LastPageIcon fontSize=\"small\" />\r\n </button>\r\n </div>\r\n </>\r\n )}\r\n\r\n {showZoomControls && (\r\n <>\r\n <div className=\"toolbar-separator\"></div>\r\n\r\n {/* Zoom Controls */}\r\n <div className=\"toolbar-section\">\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handleZoomOut}\r\n title=\"Zoom Out\"\r\n >\r\n <ZoomOutIcon fontSize=\"small\" />\r\n </button>\r\n \r\n <span className=\"zoom-display\">{zoom}%</span>\r\n \r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handleZoomIn}\r\n title=\"Zoom In\"\r\n >\r\n <ZoomInIcon fontSize=\"small\" />\r\n </button>\r\n \r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handleFitToWidth}\r\n title=\"Fit to Width\"\r\n >\r\n <AspectRatioIcon fontSize=\"small\" />\r\n </button>\r\n \r\n <button \r\n className=\"toolbar-button\" \r\n onClick={handleFitToPage}\r\n title=\"Fit to Page\"\r\n >\r\n <FitScreenIcon fontSize=\"small\" />\r\n </button>\r\n </div>\r\n </>\r\n )}\r\n\r\n {showSearch && (\r\n <>\r\n <div className=\"toolbar-separator\"></div>\r\n\r\n {/* Search */}\r\n <div className=\"toolbar-section\">\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={toggleSidebar}\r\n title=\"Search in PDF\"\r\n style={{ \r\n backgroundColor: isSidebarOpen ? '#e3f2fd' : 'transparent',\r\n color: isSidebarOpen ? '#1976d2' : 'inherit'\r\n }}\r\n >\r\n <SearchIcon fontSize=\"small\" />\r\n </button>\r\n </div>\r\n </>\r\n )}\r\n\r\n {(showMetadata || showProperties || showDownload || showPrint) && (\r\n <>\r\n <div className=\"toolbar-separator\"></div>\r\n\r\n {/* Metadata & Properties */}\r\n <div className=\"toolbar-section\">\r\n {showDownload && (\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={onDownloadClick}\r\n title=\"Download PDF\"\r\n >\r\n <DownloadIcon fontSize=\"small\" />\r\n </button>\r\n )}\r\n \r\n {showPrint && (\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={onPrintClick}\r\n title=\"Print PDF\"\r\n >\r\n <PrintIcon fontSize=\"small\" />\r\n </button>\r\n )}\r\n \r\n {showMetadata && (\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={onMetadataClick}\r\n title=\"Document Metadata\"\r\n >\r\n <InfoIcon fontSize=\"small\" />\r\n </button>\r\n )}\r\n \r\n {showProperties && (\r\n <button \r\n className=\"toolbar-button\" \r\n onClick={onPropertiesClick}\r\n title=\"Document Properties\"\r\n >\r\n <DescriptionIcon fontSize=\"small\" />\r\n </button>\r\n )}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n\r\n {/* Main Content Area with Sidebar */}\r\n <div className=\"pdf-viewer-main\">\r\n {/* PDF Viewer */}\r\n <div className=\"pdf-viewer-viewer-area\">\r\n <HeadlessPDFViewer\r\n ref={pdfViewerRef}\r\n pdfBuffer={pdfBuffer}\r\n onPasswordRequest={handlePasswordRequest}\r\n />\r\n </div>\r\n\r\n {/* Search Sidebar */}\r\n <SearchSidebar\r\n isOpen={isSidebarOpen}\r\n onClose={() => setIsSidebarOpen(false)}\r\n onSearch={handleSidebarSearch}\r\n onSearchResultClick={handleSearchResultClick}\r\n onNextResult={handleNextSearchResult}\r\n onPreviousResult={handlePreviousSearchResult}\r\n currentResultIndex={currentSearchResultIndex}\r\n totalResults={totalSearchResults}\r\n searchKeyword={searchQuery}\r\n searchResults={searchResults}\r\n isSearching={isSearching}\r\n />\r\n </div>\r\n\r\n {/* Password Dialog */}\r\n <PasswordDialog\r\n open={isPasswordDialogOpen}\r\n fileName={resolvedFileName}\r\n onSubmit={handlePasswordSubmit}\r\n onCancel={handlePasswordCancel}\r\n error={passwordError}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nPDFViewerContent.displayName = 'PDFViewerContent';\r\n\r\nexport const PDFViewer = forwardRef<PDFViewerMethods, FileViewerProps>((props, ref) => {\r\n return <PDFViewerContent {...props} sourceDescription=\"doc.pdf\" ref={ref} />;\r\n});\r\n\r\nPDFViewer.displayName = 'PDFViewer';\r\n","import React, { useState, useLayoutEffect, useEffect, useRef } from 'react';\r\nimport {\r\n Box,\r\n Typography,\r\n TextField,\r\n IconButton,\r\n InputAdornment,\r\n Divider\r\n} from '@mui/material';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';\r\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\r\nimport ClearIcon from '@mui/icons-material/Clear';\r\nimport FindInPageIcon from '@mui/icons-material/FindInPage';\r\n\r\ninterface SearchResult {\r\n pageNumber: number;\r\n text: string;\r\n context: string;\r\n index: number;\r\n}\r\n\r\ninterface SearchSidebarProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n onSearch: (keyword: string) => void;\r\n onSearchResultClick: (pageNumber: number, resultIndex: number) => void;\r\n onNextResult: () => void;\r\n onPreviousResult: () => void;\r\n currentResultIndex: number;\r\n totalResults: number;\r\n searchKeyword: string;\r\n searchResults?: SearchResult[];\r\n isSearching?: boolean;\r\n isSyntheticResults?: boolean; // Indicates results are from OCR/document analysis\r\n}\r\n\r\nexport const SearchSidebar: React.FC<SearchSidebarProps> = ({\r\n isOpen,\r\n onClose,\r\n onSearch,\r\n onSearchResultClick,\r\n onNextResult,\r\n onPreviousResult,\r\n currentResultIndex,\r\n totalResults,\r\n searchKeyword,\r\n searchResults = [],\r\n isSearching = false,\r\n isSyntheticResults = false\r\n}) => {\r\n const [searchTerm, setSearchTerm] = useState(searchKeyword || '');\r\n const [hasSearched, setHasSearched] = useState(false);\r\n const contentRef = useRef<HTMLDivElement>(null);\r\n\r\n // Sync local search term with prop changes (for URL-based auto-search)\r\n useEffect(() => {\r\n if (searchKeyword && searchKeyword !== searchTerm) {\r\n setSearchTerm(searchKeyword);\r\n }\r\n }, [searchKeyword]);\r\n\r\n // Scrollbar hover handler\r\n useLayoutEffect(() => {\r\n const element = contentRef.current;\r\n if (!element) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n const rect = element.getBoundingClientRect();\r\n const distanceFromRight = rect.right - e.clientX;\r\n const distanceFromBottom = rect.bottom - e.clientY;\r\n\r\n if (distanceFromRight <= 15 || distanceFromBottom <= 15) {\r\n element.classList.add('scrollbar-hover');\r\n } else {\r\n element.classList.remove('scrollbar-hover');\r\n }\r\n };\r\n\r\n const handleMouseLeave = () => element.classList.remove('scrollbar-hover');\r\n\r\n element.addEventListener('mousemove', handleMouseMove);\r\n element.addEventListener('mouseleave', handleMouseLeave);\r\n\r\n return () => {\r\n element.removeEventListener('mousemove', handleMouseMove);\r\n element.removeEventListener('mouseleave', handleMouseLeave);\r\n };\r\n }, []);\r\n\r\n // Inject scrollbar styles\r\n useLayoutEffect(() => {\r\n const style = document.createElement('style');\r\n style.id = 'search-sidebar-scrollbar';\r\n style.textContent = `\r\n @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Tamil:wght@400;600&family=Noto+Sans+Devanagari:wght@400;600&display=swap');\r\n \r\n .search-sidebar-content::-webkit-scrollbar {\r\n width: 12px;\r\n height: 12px;\r\n }\r\n .search-sidebar-content::-webkit-scrollbar-track {\r\n background-color: transparent;\r\n }\r\n .search-sidebar-content::-webkit-scrollbar-thumb {\r\n background-color: rgba(128, 128, 128, 0.3);\r\n border-radius: 8px;\r\n border: 4px solid transparent;\r\n background-clip: padding-box;\r\n transition: all 0.15s ease;\r\n }\r\n .search-sidebar-content.scrollbar-hover::-webkit-scrollbar-thumb {\r\n background-color: rgba(128, 128, 128, 0.5);\r\n border: 2px solid transparent;\r\n }\r\n .search-sidebar-content::-webkit-scrollbar-thumb:active {\r\n background-color: rgba(25, 118, 210, 0.8);\r\n border: 1px solid transparent;\r\n }\r\n\r\n @media (prefers-color-scheme: dark) {\r\n .search-sidebar-content::-webkit-scrollbar-thumb {\r\n background-color: rgba(255, 255, 255, 0.2);\r\n }\r\n .search-sidebar-content.scrollbar-hover::-webkit-scrollbar-thumb {\r\n background-color: rgba(255, 255, 255, 0.35);\r\n }\r\n }\r\n \r\n /* Tamil font support for search results */\r\n .search-result-text {\r\n font-family: 'Noto Sans Tamil', 'Noto Sans Devanagari', Arial, sans-serif !important;\r\n }\r\n `;\r\n document.head.appendChild(style);\r\n return () => {\r\n const el = document.getElementById('search-sidebar-scrollbar');\r\n if (el) el.remove();\r\n };\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n setSearchTerm(searchKeyword || '');\r\n if (searchKeyword) {\r\n setHasSearched(true);\r\n }\r\n }, [searchKeyword]);\r\n\r\n const handleSearchSubmit = (e?: React.FormEvent) => {\r\n if (e) e.preventDefault();\r\n\r\n if (searchTerm.trim()) {\r\n setHasSearched(true);\r\n onSearch(searchTerm.trim());\r\n }\r\n };\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setSearchTerm(value);\r\n\r\n if (!value.trim()) {\r\n setHasSearched(false);\r\n onSearch('');\r\n }\r\n };\r\n\r\n const handleClearSearch = () => {\r\n setSearchTerm('');\r\n setHasSearched(false);\r\n onSearch('');\r\n };\r\n\r\n // Group results by page\r\n const resultsByPage = searchResults.reduce((acc, result) => {\r\n if (!acc[result.pageNumber]) {\r\n acc[result.pageNumber] = [];\r\n }\r\n acc[result.pageNumber].push(result);\r\n return acc;\r\n }, {} as Record<number, SearchResult[]>);\r\n\r\n const highlightText = (text: any, keyword: string) => {\r\n if (!keyword) return text;\r\n\r\n const textString = typeof text === 'string' ? text : String(text || '');\r\n if (!textString) return text;\r\n\r\n try {\r\n const escapedKeyword = keyword.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n const regex = new RegExp(`(${escapedKeyword})`, 'gi');\r\n const parts = textString.split(regex);\r\n\r\n return parts.map((part, index) =>\r\n regex.test(part) ? (\r\n <Box\r\n component=\"span\"\r\n key={index}\r\n sx={{\r\n color: 'primary.main',\r\n fontWeight: 600,\r\n fontSize: 'inherit'\r\n }}\r\n >\r\n {part}\r\n </Box>\r\n ) : (\r\n part\r\n )\r\n );\r\n } catch (error) {\r\n // Return plain text if highlighting fails\r\n return textString;\r\n }\r\n };\r\n\r\n if (!isOpen) return null;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n width: '320px',\r\n backgroundColor: 'background.paper',\r\n borderLeft: '1px solid',\r\n borderColor: 'divider',\r\n overflow: 'hidden'\r\n }}\r\n >\r\n {/* Header */}\r\n <Box sx={{ px: 3, py: 2.5, backgroundColor: 'background.default' }}>\r\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\r\n <Typography variant=\"h6\" sx={{ fontSize: '1.125rem', fontWeight: 600, color: 'text.primary' }}>\r\n Search\r\n </Typography>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onClose}\r\n sx={{\r\n color: 'text.secondary',\r\n padding: '6px'\r\n }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n\r\n {/* Search Input */}\r\n <form onSubmit={handleSearchSubmit}>\r\n <TextField\r\n fullWidth\r\n size=\"medium\"\r\n placeholder=\"Search in document...\"\r\n value={searchTerm}\r\n onChange={handleSearchChange}\r\n autoComplete=\"off\"\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position=\"start\">\r\n <SearchIcon sx={{ color: 'text.disabled', fontSize: 20 }} />\r\n </InputAdornment>\r\n ),\r\n endAdornment: searchTerm && (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleClearSearch}\r\n sx={{\r\n color: 'text.secondary',\r\n padding: '4px',\r\n '&:hover': {\r\n backgroundColor: 'action.hover'\r\n }\r\n }}\r\n >\r\n <ClearIcon sx={{ fontSize: 18 }} />\r\n </IconButton>\r\n </InputAdornment>\r\n )\r\n }}\r\n sx={{\r\n '& .MuiOutlinedInput-root': {\r\n fontSize: '0.9375rem',\r\n backgroundColor: 'background.paper',\r\n borderRadius: '8px',\r\n '& fieldset': {\r\n borderColor: 'divider'\r\n },\r\n '&.Mui-focused fieldset': {\r\n borderColor: 'primary.main',\r\n borderWidth: '2px'\r\n }\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: '10px 14px'\r\n }\r\n }}\r\n />\r\n </form>\r\n\r\n {/* Results Summary and Navigation */}\r\n {totalResults > 0 && (\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n mt: 2,\r\n pt: 2,\r\n borderTop: '1px solid',\r\n borderColor: 'divider'\r\n }}\r\n >\r\n <Typography variant=\"body2\" sx={{ color: 'text.secondary', fontSize: '0.875rem', fontWeight: 500 }}>\r\n {currentResultIndex + 1} of {totalResults} results\r\n </Typography>\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPreviousResult}\r\n disabled={currentResultIndex <= 0}\r\n sx={{\r\n color: currentResultIndex <= 0 ? 'text.disabled' : 'primary.main',\r\n padding: '6px',\r\n borderRadius: '6px',\r\n border: '1px solid',\r\n borderColor: currentResultIndex <= 0 ? 'divider' : 'primary.main'\r\n }}\r\n >\r\n <KeyboardArrowUpIcon sx={{ fontSize: 20 }} />\r\n </IconButton>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onNextResult}\r\n disabled={currentResultIndex >= totalResults - 1}\r\n sx={{\r\n color: currentResultIndex >= totalResults - 1 ? 'text.disabled' : 'primary.main',\r\n padding: '6px',\r\n borderRadius: '6px',\r\n border: '1px solid',\r\n borderColor: currentResultIndex >= totalResults - 1 ? 'divider' : 'primary.main'\r\n }}\r\n >\r\n <KeyboardArrowDownIcon sx={{ fontSize: 20 }} />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n )}\r\n </Box>\r\n\r\n <Divider />\r\n\r\n {/* Search Results */}\r\n <Box ref={contentRef} className=\"search-sidebar-content\" sx={{\r\n flex: 1,\r\n overflow: 'auto',\r\n backgroundColor: 'background.default'\r\n }}>\r\n {!searchTerm && !hasSearched && (\r\n <Box sx={{ p: 4, textAlign: 'center', mt: 6 }}>\r\n <Box\r\n sx={{\r\n width: 80,\r\n height: 80,\r\n borderRadius: '50%',\r\n backgroundColor: 'action.hover',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n margin: '0 auto',\r\n mb: 3\r\n }}\r\n >\r\n <SearchIcon sx={{ fontSize: 40, color: 'text.disabled' }} />\r\n </Box>\r\n <Typography variant=\"body1\" sx={{ color: 'text.primary', fontWeight: 500, mb: 1 }}>\r\n Search in Document\r\n </Typography>\r\n <Typography variant=\"body2\" sx={{ color: 'text.secondary', lineHeight: 1.6 }}>\r\n Enter keywords to find text within the PDF document\r\n </Typography>\r\n </Box>\r\n )}\r\n\r\n {searchTerm && !hasSearched && (\r\n <Box sx={{ p: 4, textAlign: 'center', mt: 6 }}>\r\n <Box\r\n sx={{\r\n width: 80,\r\n height: 80,\r\n borderRadius: '50%',\r\n backgroundColor: 'primary.light',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n margin: '0 auto',\r\n mb: 3,\r\n opacity: 0.2\r\n }}\r\n >\r\n <FindInPageIcon sx={{ fontSize: 40, color: 'primary.main' }} />\r\n </Box>\r\n <Typography variant=\"body1\" sx={{ color: 'text.primary', fontWeight: 500, mb: 1 }}>\r\n Ready to Search\r\n </Typography>\r\n <Typography variant=\"body2\" sx={{ color: 'text.secondary', mb: 2, lineHeight: 1.6 }}>\r\n Press Enter to find\r\n </Typography>\r\n <Typography\r\n variant=\"body2\"\r\n sx={{\r\n color: 'white',\r\n fontWeight: 600,\r\n backgroundColor: (theme) => theme.palette.mode === 'dark'\r\n ? 'rgba(144, 202, 249, 0.16)'\r\n : 'primary.light',\r\n padding: '6px 16px',\r\n borderRadius: '16px',\r\n display: 'inline-block',\r\n opacity: 0.9\r\n }}\r\n >\r\n \"{searchTerm}\"\r\n </Typography>\r\n </Box>\r\n )}\r\n\r\n {hasSearched && totalResults === 0 && !isSearching && (\r\n <Box sx={{ p: 4, textAlign: 'center', mt: 6 }}>\r\n <Box\r\n sx={{\r\n width: 80,\r\n height: 80,\r\n borderRadius: '50%',\r\n backgroundColor: (theme) => theme.palette.mode === 'dark'\r\n ? 'rgba(255, 152, 0, 0.12)'\r\n : 'warning.light',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n margin: '0 auto',\r\n mb: 3,\r\n opacity: 0.6\r\n }}\r\n >\r\n <SearchIcon sx={{ fontSize: 40, color: 'warning.main' }} />\r\n </Box>\r\n <Typography variant=\"body1\" sx={{ color: 'text.primary', fontWeight: 500, mb: 1 }}>\r\n No Results Found\r\n </Typography>\r\n <Typography variant=\"body2\" sx={{ color: 'text.secondary', lineHeight: 1.6 }}>\r\n No matches found for <strong>\"{searchTerm}\"</strong>\r\n </Typography>\r\n </Box>\r\n )}\r\n\r\n {totalResults > 0 && (\r\n <Box sx={{ p: 2 }}>\r\n {Object.keys(resultsByPage)\r\n .sort((a, b) => parseInt(a) - parseInt(b))\r\n .map((pageNum) => {\r\n const pageNumber = parseInt(pageNum);\r\n const pageResults = resultsByPage[pageNumber];\r\n\r\n return (\r\n <Box key={pageNumber} sx={{ mb: 3 }}>\r\n {/* Page Header */}\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{\r\n color: 'text.secondary',\r\n mb: 1.5,\r\n px: 1,\r\n fontSize: '0.8125rem',\r\n fontWeight: 600,\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.5px'\r\n }}\r\n >\r\n Page {pageNumber}\r\n </Typography>\r\n\r\n {/* Results for this page */}\r\n {pageResults.map((result: SearchResult, index: number) => (\r\n <Box\r\n key={index}\r\n onClick={() => onSearchResultClick(result.pageNumber, result.index)}\r\n sx={{\r\n p: 2,\r\n mx: 1,\r\n mb: 1.5,\r\n borderRadius: '8px',\r\n border: '2px solid',\r\n borderColor: result.index === currentResultIndex ? 'primary.main' : 'divider',\r\n backgroundColor: 'background.paper',\r\n cursor: 'pointer',\r\n transition: 'all 0.2s ease',\r\n boxShadow: (theme) => theme.palette.mode === 'dark'\r\n ? '0 1px 3px rgba(0, 0, 0, 0.3)'\r\n : '0 1px 3px rgba(0, 0, 0, 0.05)',\r\n '&:hover': {\r\n borderColor: 'primary.main',\r\n boxShadow: (theme) => theme.palette.mode === 'dark'\r\n ? '0 2px 8px rgba(255, 255, 255, 0.15)'\r\n : '0 2px 8px rgba(0, 0, 0, 0.1)',\r\n transform: 'translateY(-1px)'\r\n }\r\n }}\r\n >\r\n <Typography\r\n variant=\"body2\"\r\n className=\"search-result-text\"\r\n sx={{\r\n fontSize: '0.875rem',\r\n lineHeight: 1.6,\r\n color: result.index === currentResultIndex ? 'text.primary' : 'text.secondary'\r\n }}\r\n >\r\n {highlightText(result.context, searchTerm)}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n TextField,\r\n Button,\r\n Typography,\r\n IconButton,\r\n InputAdornment,\r\n Box,\r\n Alert\r\n} from '@mui/material';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport LockIcon from '@mui/icons-material/Lock';\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\r\n\r\ninterface PasswordDialogProps {\r\n open: boolean;\r\n fileName?: string;\r\n onSubmit: (password: string) => void;\r\n onCancel: () => void;\r\n error?: string;\r\n}\r\n\r\nexport const PasswordDialog: React.FC<PasswordDialogProps> = ({\r\n open,\r\n fileName,\r\n onSubmit,\r\n onCancel,\r\n error\r\n}) => {\r\n const [password, setPassword] = useState('');\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n // Reset password when dialog opens/closes\r\n useEffect(() => {\r\n if (open) {\r\n setPassword('');\r\n setShowPassword(false);\r\n }\r\n }, [open]);\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (password.trim()) {\r\n onSubmit(password);\r\n }\r\n };\r\n\r\n const handleTogglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && password.trim()) {\r\n handleSubmit(e as any);\r\n }\r\n };\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={onCancel}\r\n maxWidth=\"sm\"\r\n fullWidth\r\n PaperProps={{\r\n sx: {\r\n borderRadius: 2\r\n }\r\n }}\r\n >\r\n <DialogTitle sx={{ pb: 1 }}>\r\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>\r\n <Box\r\n sx={{\r\n width: 40,\r\n height: 40,\r\n borderRadius: '50%',\r\n backgroundColor: 'primary.light',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n opacity: 0.9\r\n }}\r\n >\r\n <LockIcon sx={{ color: 'white', fontSize: 20 }} />\r\n </Box>\r\n <Typography variant=\"h6\" component=\"div\" sx={{ fontWeight: 600 }}>\r\n Password Protected\r\n </Typography>\r\n </Box>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onCancel}\r\n sx={{ color: 'text.secondary' }}\r\n aria-label=\"Close dialog\"\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </DialogTitle>\r\n\r\n <DialogContent sx={{ pt: 2 }}>\r\n <Typography variant=\"body2\" sx={{ color: 'text.secondary', mb: 3 }}>\r\n This PDF is password protected. Please enter the password to view{' '}\r\n {fileName && <strong>\"{fileName}\"</strong>}\r\n </Typography>\r\n\r\n {error && (\r\n <Alert severity=\"error\" sx={{ mb: 2 }}>\r\n {error}\r\n </Alert>\r\n )}\r\n\r\n <form onSubmit={handleSubmit}>\r\n <TextField\r\n fullWidth\r\n autoFocus\r\n type={showPassword ? 'text' : 'password'}\r\n label=\"Password\"\r\n placeholder=\"Enter password\"\r\n value={password}\r\n onChange={(e) => setPassword(e.target.value)}\r\n onKeyPress={handleKeyPress}\r\n error={Boolean(error)}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n onClick={handleTogglePasswordVisibility}\r\n edge=\"end\"\r\n size=\"small\"\r\n aria-label={showPassword ? 'Hide password' : 'Show password'}\r\n >\r\n {showPassword ? <VisibilityOffIcon /> : <VisibilityIcon />}\r\n </IconButton>\r\n </InputAdornment>\r\n )\r\n }}\r\n sx={{\r\n '& .MuiOutlinedInput-root': {\r\n borderRadius: 2\r\n }\r\n }}\r\n />\r\n </form>\r\n </DialogContent>\r\n\r\n <DialogActions sx={{ px: 3, pb: 3, pt: 2 }}>\r\n <Button\r\n onClick={onCancel}\r\n variant=\"outlined\"\r\n sx={{\r\n borderRadius: 2,\r\n textTransform: 'none',\r\n px: 3\r\n }}\r\n >\r\n Cancel\r\n </Button>\r\n <Button\r\n onClick={handleSubmit}\r\n variant=\"contained\"\r\n disabled={!password.trim()}\r\n sx={{\r\n borderRadius: 2,\r\n textTransform: 'none',\r\n px: 3,\r\n boxShadow: 2\r\n }}\r\n >\r\n Unlock PDF\r\n </Button>\r\n </DialogActions>\r\n </Dialog>\r\n );\r\n};"],"mappings":"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","names":["useEffect","useRef","useState","SearchIcon","useState","useEffect","TextField","Typography","IconButton","InputAdornment","Box","CloseIcon","jsx","jsxs","jsx","jsxs","useState","useRef","useEffect","error","zoom","fileName","SearchIcon"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/fileUtils.ts","../src/components/FileIcon.tsx"],"sourcesContent":["export const getFileExtension = (fileName: string): string => {\r\n const extension = fileName.toLowerCase().split('.').pop();\r\n return extension || '';\r\n};\r\n\r\nexport const getMimeTypeFromExtension = (extension: string): string => {\r\n const mimeTypes: Record<string, string> = {\r\n 'pdf': 'application/pdf',\r\n 'txt': 'text/plain',\r\n 'json': 'application/json',\r\n 'xml': 'text/xml',\r\n 'csv': 'text/csv',\r\n 'jpg': 'image/jpeg',\r\n 'jpeg': 'image/jpeg',\r\n 'png': 'image/png',\r\n 'gif': 'image/gif',\r\n 'svg': 'image/svg+xml',\r\n 'mp4': 'video/mp4',\r\n 'webm': 'video/webm',\r\n 'mp3': 'audio/mpeg',\r\n 'wav': 'audio/wav',\r\n 'doc': 'application/msword',\r\n 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'xls': 'application/vnd.ms-excel',\r\n 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n };\r\n\r\n return mimeTypes[extension] || 'application/octet-stream';\r\n};","import React from 'react';\r\n\r\ninterface FileIconProps {\r\n ext?: string;\r\n size?: number;\r\n sx?: React.CSSProperties;\r\n}\r\n\r\nconst FileIcon: React.FC<FileIconProps> = ({ ext, size = 48, sx = {} }) => {\r\n const extension = (ext?.toLowerCase().replace(/^\\./, '')) || '';\r\n\r\n const getIconConfig = (extension: string) => {\r\n switch (extension) {\r\n case 'pdf':\r\n return { color: '#d32f2f', bgColor: '#ffebee', label: 'PDF' };\r\n case 'doc':\r\n case 'docx':\r\n return { color: '#1976d2', bgColor: '#e3f2fd', label: extension.toUpperCase() };\r\n case 'xls':\r\n case 'xlsx':\r\n return { color: '#388e3c', bgColor: '#e8f5e8', label: extension.toUpperCase() };\r\n case 'ppt':\r\n case 'pptx':\r\n return { color: '#f57c00', bgColor: '#fff3e0', label: extension.toUpperCase() };\r\n case 'jpg':\r\n case 'jpeg':\r\n case 'png':\r\n case 'gif':\r\n case 'svg':\r\n case 'webp':\r\n case 'bmp':\r\n case 'tiff':\r\n case 'tif':\r\n return { color: '#7b1fa2', bgColor: '#f3e5f5', label: extension.toUpperCase() };\r\n case 'mp4':\r\n case 'avi':\r\n case 'mov':\r\n case 'wmv':\r\n case 'webm':\r\n case 'mkv':\r\n return { color: '#c2185b', bgColor: '#fce4ec', label: extension.toUpperCase() };\r\n case 'mp3':\r\n case 'wav':\r\n case 'flac':\r\n case 'aac':\r\n case 'ogg':\r\n case 'm4a':\r\n return { color: '#303f9f', bgColor: '#e8eaf6', label: extension.toUpperCase() };\r\n case 'zip':\r\n case 'rar':\r\n case '7z':\r\n case 'tar':\r\n case 'gz':\r\n return { color: '#f9a825', bgColor: '#fffde7', label: extension.toUpperCase() };\r\n case 'txt':\r\n case 'md':\r\n case 'csv':\r\n return { color: '#424242', bgColor: '#f5f5f5', label: extension.toUpperCase() };\r\n case 'js':\r\n case 'jsx':\r\n case 'ts':\r\n case 'tsx':\r\n case 'html':\r\n case 'css':\r\n case 'json':\r\n case 'xml':\r\n case 'py':\r\n case 'java':\r\n case 'cpp':\r\n case 'c':\r\n return { color: '#424242', bgColor: '#f5f5f5', label: extension.toUpperCase() };\r\n default:\r\n return { color: '#757575', bgColor: '#fafafa', label: extension ? extension.toUpperCase() : 'FILE' };\r\n }\r\n };\r\n\r\n const iconConfig = getIconConfig(extension);\r\n\r\n const getSVGIcon = (ext: string) => {\r\n const iconSize = size * 0.6;\r\n \r\n switch (ext) {\r\n case 'pdf':\r\n case 'doc':\r\n case 'docx':\r\n case 'ppt':\r\n case 'pptx':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n <polyline points=\"10,9 9,9 8,9\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n </svg>\r\n );\r\n case 'xls':\r\n case 'xlsx':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <line x1=\"8\" y1=\"13\" x2=\"16\" y2=\"13\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n <line x1=\"8\" y1=\"17\" x2=\"16\" y2=\"17\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"21\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n </svg>\r\n );\r\n case 'jpg':\r\n case 'jpeg':\r\n case 'png':\r\n case 'gif':\r\n case 'svg':\r\n case 'webp':\r\n case 'bmp':\r\n case 'tiff':\r\n case 'tif':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <polyline points=\"21,15 16,10 5,21\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n </svg>\r\n );\r\n case 'mp4':\r\n case 'avi':\r\n case 'mov':\r\n case 'wmv':\r\n case 'webm':\r\n case 'mkv':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <polygon points=\"23 12 8 2 8 22 23 12\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <rect x=\"1\" y=\"5\" width=\"6\" height=\"14\" rx=\"1\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n </svg>\r\n );\r\n case 'mp3':\r\n case 'wav':\r\n case 'flac':\r\n case 'aac':\r\n case 'ogg':\r\n case 'm4a':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M9 18V5l12-2v13\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <circle cx=\"6\" cy=\"18\" r=\"3\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <circle cx=\"18\" cy=\"16\" r=\"3\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n </svg>\r\n );\r\n case 'zip':\r\n case 'rar':\r\n case '7z':\r\n case 'tar':\r\n case 'gz':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"10\" rx=\"2\" ry=\"2\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n </svg>\r\n );\r\n case 'txt':\r\n case 'md':\r\n case 'csv':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" stroke={iconConfig.color} strokeWidth=\"2\"/>\r\n </svg>\r\n );\r\n case 'js':\r\n case 'jsx':\r\n case 'ts':\r\n case 'tsx':\r\n case 'html':\r\n case 'css':\r\n case 'json':\r\n case 'xml':\r\n case 'py':\r\n case 'java':\r\n case 'cpp':\r\n case 'c':\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <polyline points=\"16 18 22 12 16 6\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <polyline points=\"8 6 2 12 8 18\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n </svg>\r\n );\r\n default:\r\n return (\r\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\r\n </svg>\r\n );\r\n }\r\n };\r\n\r\n const containerStyle: React.CSSProperties = {\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n ...sx\r\n };\r\n\r\n const iconBoxStyle: React.CSSProperties = {\r\n position: 'relative',\r\n width: size,\r\n height: size,\r\n backgroundColor: iconConfig.bgColor,\r\n borderRadius: '8px',\r\n border: '1px solid rgba(0, 0, 0, 0.12)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n transition: 'all 0.2s ease-in-out',\r\n cursor: 'default'\r\n };\r\n\r\n const labelStyle: React.CSSProperties = {\r\n position: 'absolute',\r\n bottom: '-4px',\r\n right: '-4px',\r\n padding: '2px 4px',\r\n backgroundColor: '#ffffff',\r\n border: '1px solid rgba(0, 0, 0, 0.12)',\r\n borderRadius: '4px',\r\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',\r\n fontSize: '10px',\r\n fontWeight: 600,\r\n color: iconConfig.color,\r\n lineHeight: 1,\r\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif'\r\n };\r\n\r\n return (\r\n <div style={containerStyle}>\r\n <div \r\n style={iconBoxStyle}\r\n onMouseEnter={(e) => {\r\n e.currentTarget.style.boxShadow = '0px 4px 8px rgba(0, 0, 0, 0.12)';\r\n e.currentTarget.style.transform = 'translateY(-1px)';\r\n }}\r\n onMouseLeave={(e) => {\r\n e.currentTarget.style.boxShadow = 'none';\r\n e.currentTarget.style.transform = 'translateY(0)';\r\n }}\r\n >\r\n {getSVGIcon(extension)}\r\n <div style={labelStyle}>\r\n {iconConfig.label}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FileIcon;\r\n"],"mappings":"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","names":["extension","ext"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-RE4XRGSV.js"],"names":[],"mappings":"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","file":"D:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-RE4XRGSV.js","sourcesContent":[null]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-SBEFC7HP.js"],"names":[],"mappings":"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A;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,4BAAA;AACA,cAAA;AACA,cAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,cAAA;AACA,YAAA;AACA,4BAAA;AACA,cAAA;AACA,cAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,gBAAA;AACA,cAAA;AACA,YAAA;AACA,4BAAA;AACA,UAAA;AACA,0BAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,0BAAA;AACA,0BAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,0BAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,0BAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,0BAAA;AACA,0BAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,wBAAA;AACA,wBAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,gBAAA;AACA,gBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,gBAAA;AACA,gBAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA","file":"D:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-SBEFC7HP.js","sourcesContent":[null]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-SNEIVT4R.js"],"names":[],"mappings":"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","file":"D:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-SNEIVT4R.js","sourcesContent":[null]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-WP55NYFS.js"],"names":[],"mappings":"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","file":"D:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-WP55NYFS.js","sourcesContent":[null]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/viewers/TIFFViewer.tsx"],"sourcesContent":["import React, {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n Card,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n LinearProgress,\r\n Stack,\r\n Typography,\r\n IconButton,\r\n Tooltip\r\n} from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport FirstPageIcon from '@mui/icons-material/FirstPage';\r\nimport LastPageIcon from '@mui/icons-material/LastPage';\r\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\r\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\r\nimport ZoomInIcon from '@mui/icons-material/ZoomIn';\r\nimport ZoomOutIcon from '@mui/icons-material/ZoomOut';\r\nimport FitScreenIcon from '@mui/icons-material/FitScreen';\r\nimport AspectRatioIcon from '@mui/icons-material/AspectRatio';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport * as UTIF from 'utif';\r\nimport { FileViewerProps } from '../../types';\r\nimport { getFileExtension } from '../../utils/fileUtils';\r\nimport FileIcon from '../FileIcon';\r\n\r\ninterface TiffFrame {\r\n dataUrl: string;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nconst decodeTiff = (buffer: ArrayBuffer): TiffFrame[] => {\r\n if (typeof window === 'undefined') {\r\n return [];\r\n }\r\n\r\n const frames: TiffFrame[] = [];\r\n const images = UTIF.decode(buffer);\r\n\r\n images.forEach((image) => {\r\n try {\r\n UTIF.decodeImage(buffer, image);\r\n const rgba = UTIF.toRGBA8(image);\r\n const width = image.width || 0;\r\n const height = image.height || 0;\r\n\r\n if (!width || !height) {\r\n return;\r\n }\r\n\r\n const canvas = document.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n const context = canvas.getContext('2d');\r\n\r\n if (!context) {\r\n return;\r\n }\r\n\r\n const clamped = new Uint8ClampedArray(rgba.length);\r\n clamped.set(rgba);\r\n const imageData = new ImageData(clamped, width, height);\r\n context.putImageData(imageData, 0, 0);\r\n frames.push({ dataUrl: canvas.toDataURL('image/png'), width, height });\r\n } catch (error) {\r\n // Skip frames that fail to decode\r\n }\r\n });\r\n\r\n return frames;\r\n};\r\n\r\nconst resolveDocumentName = (file?: File, fileName?: string, url?: string) => {\r\n if (file?.name) {\r\n return file.name;\r\n }\r\n if (fileName) {\r\n return fileName;\r\n }\r\n if (url) {\r\n const parts = url.split('?')[0]?.split('#')[0]?.split('/') ?? [];\r\n return parts[parts.length - 1] || 'document.tiff';\r\n }\r\n return 'document.tiff';\r\n};\r\n\r\ninterface TIFFViewerContentProps extends FileViewerProps {\r\n sourceDescription: string;\r\n}\r\n\r\nconst TIFFViewerContent: React.FC<TIFFViewerContentProps> = ({\r\n sourceDescription,\r\n file,\r\n url,\r\n fileName,\r\n className = '',\r\n style = {},\r\n width = '100%',\r\n height = '100%',\r\n onLoad,\r\n onError,\r\n onDownloadClick,\r\n onMetadataClick,\r\n onPropertiesClick,\r\n showMetadata = true,\r\n showProperties = true,\r\n // Extract props that shouldn't be passed to DOM elements\r\n mimeType,\r\n fileSize,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n}) => {\r\n const [frames, setFrames] = useState<TiffFrame[]>([]);\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState<string | null>(null);\r\n const [fitMode, setFitMode] = useState<'fit-width' | 'fit-page' | 'zoom'>('fit-page');\r\n const [zoom, setZoom] = useState(1);\r\n const [viewportWidth, setViewportWidth] = useState<number>(0);\r\n const [viewportHeight, setViewportHeight] = useState<number>(0);\r\n const viewportRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const resolvedFileName = useMemo(\r\n () => fileName || sourceDescription,\r\n [fileName, sourceDescription]\r\n );\r\n\r\n const fileExtension = useMemo(\r\n () => getFileExtension(resolvedFileName || ''),\r\n [resolvedFileName]\r\n );\r\n\r\n const loadTiff = useCallback(async () => {\r\n if (!file && !url) {\r\n setFrames([]);\r\n setCurrentIndex(0);\r\n setError(null);\r\n return;\r\n }\r\n\r\n if (typeof window === 'undefined') {\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n setError(null);\r\n\r\n try {\r\n let buffer: ArrayBuffer;\r\n if (file) {\r\n buffer = await file.arrayBuffer();\r\n } else {\r\n const response = await fetch(url!);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch TIFF (${response.status})`);\r\n }\r\n buffer = await response.arrayBuffer();\r\n }\r\n\r\n const decodedFrames = decodeTiff(buffer);\r\n setFrames(decodedFrames);\r\n setCurrentIndex(0);\r\n setFitMode('fit-page');\r\n setZoom(1);\r\n\r\n if (decodedFrames.length > 0) {\r\n onLoad?.();\r\n } else {\r\n setError('No displayable frames detected in TIFF file.');\r\n }\r\n } catch (err) {\r\n const message = err instanceof Error ? err.message : 'Unable to load TIFF file';\r\n setError(message);\r\n setFrames([]);\r\n setCurrentIndex(0);\r\n setFitMode('fit-page');\r\n setZoom(1);\r\n onError?.(new Error(message));\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n }, [file, url, onLoad, onError]);\r\n\r\n useEffect(() => {\r\n void loadTiff();\r\n }, [loadTiff]);\r\n\r\n const currentFrame = frames[currentIndex];\r\n const hasFrames = frames.length > 0;\r\n const hasMultipleFrames = frames.length > 1;\r\n\r\n useEffect(() => {\r\n if (hasFrames) {\r\n setZoom(1);\r\n setFitMode('fit-page');\r\n }\r\n }, [currentIndex, hasFrames]);\r\n\r\n useEffect(() => {\r\n if (typeof window === 'undefined' || typeof ResizeObserver === 'undefined') {\r\n return undefined;\r\n }\r\n\r\n if (!viewportRef.current) {\r\n return undefined;\r\n }\r\n\r\n const updateSize = () => {\r\n const bounds = viewportRef.current?.getBoundingClientRect();\r\n if (bounds) {\r\n setViewportWidth(bounds.width);\r\n setViewportHeight(bounds.height);\r\n }\r\n };\r\n\r\n updateSize();\r\n const observer = new ResizeObserver(updateSize);\r\n observer.observe(viewportRef.current);\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, []);\r\n\r\n const handleZoomIn = useCallback(() => {\r\n setFitMode('zoom');\r\n setZoom((value) => Math.min(Math.round((value + 0.25) * 100) / 100, 5));\r\n }, []);\r\n\r\n const handleZoomOut = useCallback(() => {\r\n setFitMode('zoom');\r\n setZoom((value) => Math.max(Math.round((value - 0.25) * 100) / 100, 0.25));\r\n }, []);\r\n\r\n const handleFitWidth = useCallback(() => {\r\n setFitMode('fit-width');\r\n setZoom(1);\r\n }, []);\r\n\r\n const handleFitPage = useCallback(() => {\r\n setFitMode('fit-page');\r\n setZoom(1);\r\n }, []);\r\n\r\n const handleFirstPage = useCallback(() => {\r\n setCurrentIndex(0);\r\n }, []);\r\n\r\n const handleLastPage = useCallback(() => {\r\n setCurrentIndex(frames.length - 1);\r\n }, [frames.length]);\r\n\r\n const handlePreviousPage = useCallback(() => {\r\n setCurrentIndex((index) => Math.max(index - 1, 0));\r\n }, []);\r\n\r\n const handleNextPage = useCallback(() => {\r\n setCurrentIndex((index) => Math.min(index + 1, frames.length - 1));\r\n }, [frames.length]);\r\n\r\n const effectiveScale = useMemo(() => {\r\n if (!currentFrame) {\r\n return 1;\r\n }\r\n\r\n if (fitMode === 'zoom') {\r\n return zoom;\r\n }\r\n\r\n const frameWidth = currentFrame.width;\r\n const frameHeight = currentFrame.height;\r\n\r\n if (!viewportWidth || !viewportHeight || !frameWidth || !frameHeight) {\r\n return 1;\r\n }\r\n\r\n if (fitMode === 'fit-page') {\r\n const ratio = Math.min(viewportWidth / frameWidth, viewportHeight / frameHeight);\r\n return ratio || 1;\r\n }\r\n\r\n const widthRatio = viewportWidth / frameWidth;\r\n return widthRatio || 1;\r\n }, [currentFrame, fitMode, viewportWidth, viewportHeight, zoom]);\r\n\r\n const displayScale = useMemo(() => Math.round(effectiveScale * 100), [effectiveScale]);\r\n\r\n const renderImage = () => {\r\n if (!currentFrame) {\r\n return (\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n No TIFF frame available.\r\n </Typography>\r\n );\r\n }\r\n\r\n const widthPx = currentFrame.width * effectiveScale;\r\n const heightPx = currentFrame.height * effectiveScale;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n position: 'relative',\r\n width: widthPx,\r\n height: heightPx,\r\n borderRadius: 1,\r\n boxShadow: 1,\r\n backgroundColor: '#fff'\r\n }}\r\n >\r\n <Box\r\n component=\"img\"\r\n src={currentFrame.dataUrl}\r\n alt={`${resolvedFileName} page ${currentIndex + 1}`}\r\n sx={{\r\n width: widthPx,\r\n height: heightPx,\r\n display: 'block',\r\n borderRadius: 1\r\n }}\r\n />\r\n </Box>\r\n );\r\n };\r\n\r\n return (\r\n <Box\r\n className={`tiff-viewer ${className}`}\r\n sx={{\r\n width,\r\n height,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n overflow: 'hidden',\r\n ...style\r\n }}\r\n {...props}\r\n >\r\n <Card sx={{ height: '100%', width: '100%', display: 'flex', flexDirection: 'column', overflow: 'hidden' }} elevation={1}>\r\n <CardHeader\r\n avatar={<FileIcon ext={fileExtension} size={32} />}\r\n title={\r\n <Typography variant=\"subtitle1\" fontWeight={500}>\r\n {resolvedFileName}\r\n </Typography>\r\n }\r\n sx={{ pb: 1 }}\r\n />\r\n\r\n {/* Toolbar - All Controls at Top (Centered) */}\r\n <Box sx={{ px: 2, pb: 1, display: 'flex', justifyContent: 'center' }}>\r\n <Stack direction=\"row\" spacing={1} alignItems=\"center\" flexWrap=\"wrap\" gap={1}>\r\n {/* Page Navigation */}\r\n {hasMultipleFrames && (\r\n <>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleFirstPage}\r\n disabled={currentIndex === 0}\r\n title=\"First Page\"\r\n aria-label=\"Go to first page\"\r\n >\r\n <FirstPageIcon fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handlePreviousPage}\r\n disabled={currentIndex === 0}\r\n title=\"Previous Page\"\r\n aria-label=\"Go to previous page\"\r\n >\r\n <ChevronLeftIcon fontSize=\"small\" />\r\n </IconButton>\r\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ minWidth: 100, textAlign: 'center' }}>\r\n Page {currentIndex + 1} of {frames.length}\r\n </Typography>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleNextPage}\r\n disabled={currentIndex === frames.length - 1}\r\n title=\"Next Page\"\r\n aria-label=\"Go to next page\"\r\n >\r\n <ChevronRightIcon fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleLastPage}\r\n disabled={currentIndex === frames.length - 1}\r\n title=\"Last Page\"\r\n aria-label=\"Go to last page\"\r\n >\r\n <LastPageIcon fontSize=\"small\" />\r\n </IconButton>\r\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 1 }} />\r\n </>\r\n )}\r\n\r\n {/* Zoom Controls */}\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleZoomOut}\r\n disabled={!hasFrames || zoom <= 0.25}\r\n title=\"Zoom Out\"\r\n aria-label=\"Zoom out\"\r\n >\r\n <ZoomOutIcon fontSize=\"small\" />\r\n </IconButton>\r\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ minWidth: 64, textAlign: 'center' }}>\r\n {hasFrames ? `${displayScale}%` : '—'}\r\n </Typography>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleZoomIn}\r\n disabled={!hasFrames || zoom >= 5}\r\n title=\"Zoom In\"\r\n aria-label=\"Zoom in\"\r\n >\r\n <ZoomInIcon fontSize=\"small\" />\r\n </IconButton>\r\n\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleFitWidth}\r\n disabled={!hasFrames}\r\n title=\"Fit to Width\"\r\n aria-label=\"Fit to width\"\r\n color={fitMode === 'fit-width' ? 'primary' : 'default'}\r\n >\r\n <AspectRatioIcon fontSize=\"small\" />\r\n </IconButton>\r\n\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleFitPage}\r\n disabled={!hasFrames}\r\n title=\"Fit to Page\"\r\n aria-label=\"Fit to page\"\r\n color={fitMode === 'fit-page' ? 'primary' : 'default'}\r\n >\r\n <FitScreenIcon fontSize=\"small\" />\r\n </IconButton>\r\n\r\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 1 }} />\r\n\r\n {/* Actions */}\r\n <IconButton\r\n size=\"small\"\r\n onClick={onDownloadClick}\r\n title=\"Download\"\r\n aria-label=\"Download TIFF\"\r\n >\r\n <DownloadIcon fontSize=\"small\" />\r\n </IconButton>\r\n\r\n {showMetadata && (\r\n <IconButton\r\n size=\"small\"\r\n onClick={onMetadataClick}\r\n title=\"Document Metadata\"\r\n aria-label=\"View document metadata\"\r\n >\r\n <InfoIcon fontSize=\"small\" />\r\n </IconButton>\r\n )}\r\n\r\n {showProperties && (\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPropertiesClick}\r\n title=\"Document Properties\"\r\n aria-label=\"View document properties\"\r\n >\r\n <DescriptionIcon fontSize=\"small\" />\r\n </IconButton>\r\n )}\r\n </Stack>\r\n </Box>\r\n\r\n {isLoading && <LinearProgress sx={{ mx: 3, mb: 1 }} />}\r\n {error && (\r\n <Typography color=\"error\" variant=\"body2\" sx={{ px: 3, pb: 1 }}>\r\n {error}\r\n </Typography>\r\n )}\r\n <Divider />\r\n <CardContent\r\n sx={{\r\n flexGrow: 1,\r\n flexShrink: 1,\r\n minHeight: 0,\r\n p: 0,\r\n overflow: 'auto',\r\n backgroundColor: '#f6f8fa',\r\n position: 'relative'\r\n }}\r\n >\r\n <Box\r\n ref={viewportRef}\r\n sx={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n p: 3,\r\n overflow: 'auto'\r\n }}\r\n >\r\n {renderImage()}\r\n </Box>\r\n </CardContent>\r\n </Card>\r\n </Box>\r\n );\r\n};\r\n\r\nexport const TIFFViewer: React.FC<FileViewerProps> = (props) => {\r\n const sourceDescription = useMemo(\r\n () => resolveDocumentName(props.file, props.fileName, props.url),\r\n [props.file, props.fileName, props.url]\r\n );\r\n\r\n return <TIFFViewerContent {...props} sourceDescription={sourceDescription} />;\r\n};\r\n"],"mappings":"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","names":[]}