@eternalheart/react-file-preview 1.3.11 → 1.3.12

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 (215) hide show
  1. package/lib/chunks/{index-CdmkF0CO.mjs → index-BBvL23cc.mjs} +2 -2
  2. package/lib/chunks/{index-CdmkF0CO.mjs.map → index-BBvL23cc.mjs.map} +1 -1
  3. package/lib/chunks/{index-CuAALtwC.mjs → index-BCbSb9Ob.mjs} +500 -476
  4. package/lib/chunks/index-BCbSb9Ob.mjs.map +1 -0
  5. package/lib/chunks/{index-CCkHAeLh.mjs → index-BPsJtP6e.mjs} +2 -2
  6. package/lib/chunks/{index-CCkHAeLh.mjs.map → index-BPsJtP6e.mjs.map} +1 -1
  7. package/lib/chunks/{index-nVblatyi.mjs → index-CA8OvqPT.mjs} +3 -3
  8. package/lib/chunks/{index-nVblatyi.mjs.map → index-CA8OvqPT.mjs.map} +1 -1
  9. package/lib/chunks/{index-D660ENHx.mjs → index-CJGtdAy7.mjs} +2 -2
  10. package/lib/chunks/{index-D660ENHx.mjs.map → index-CJGtdAy7.mjs.map} +1 -1
  11. package/lib/chunks/{index-nLTQXCV7.mjs → index-CeQf1qNC.mjs} +3 -3
  12. package/lib/chunks/{index-nLTQXCV7.mjs.map → index-CeQf1qNC.mjs.map} +1 -1
  13. package/lib/chunks/{index-ow-nGpuu.mjs → index-Cxf4CLJZ.mjs} +2 -2
  14. package/lib/chunks/{index-ow-nGpuu.mjs.map → index-Cxf4CLJZ.mjs.map} +1 -1
  15. package/lib/chunks/{index-qOC5xQyK.mjs → index-D2t64h6I.mjs} +2 -2
  16. package/lib/chunks/{index-qOC5xQyK.mjs.map → index-D2t64h6I.mjs.map} +1 -1
  17. package/lib/chunks/{index-BYdqrqnR.mjs → index-DAo4n3Mq.mjs} +2 -2
  18. package/lib/chunks/{index-BYdqrqnR.mjs.map → index-DAo4n3Mq.mjs.map} +1 -1
  19. package/lib/chunks/{index-DaFlk9dd.mjs → index-DCTwUpKS.mjs} +2 -2
  20. package/lib/chunks/{index-DaFlk9dd.mjs.map → index-DCTwUpKS.mjs.map} +1 -1
  21. package/lib/chunks/{index-BiyghBxu.mjs → index-DJZWizxK.mjs} +2 -2
  22. package/lib/chunks/{index-BiyghBxu.mjs.map → index-DJZWizxK.mjs.map} +1 -1
  23. package/lib/chunks/{index-DBEG73K1.mjs → index-DRCA7PhQ.mjs} +2 -2
  24. package/lib/chunks/{index-DBEG73K1.mjs.map → index-DRCA7PhQ.mjs.map} +1 -1
  25. package/lib/chunks/{index-rUfsiVR8.mjs → index-DdkkEzw3.mjs} +2 -2
  26. package/lib/chunks/{index-rUfsiVR8.mjs.map → index-DdkkEzw3.mjs.map} +1 -1
  27. package/lib/chunks/{index-BJ6vTNxc.mjs → index-DlptjfMf.mjs} +2 -2
  28. package/lib/chunks/{index-BJ6vTNxc.mjs.map → index-DlptjfMf.mjs.map} +1 -1
  29. package/lib/chunks/{index-C8CyS_sj.mjs → index-DrgP7cc7.mjs} +3 -3
  30. package/lib/chunks/{index-C8CyS_sj.mjs.map → index-DrgP7cc7.mjs.map} +1 -1
  31. package/lib/chunks/{index-_mP0FkqE.mjs → index-Dx8aLIDX.mjs} +2 -2
  32. package/lib/chunks/{index-_mP0FkqE.mjs.map → index-Dx8aLIDX.mjs.map} +1 -1
  33. package/lib/chunks/{index-BCuRRLYt.mjs → index-fhiaa9rv.mjs} +2 -2
  34. package/lib/chunks/{index-BCuRRLYt.mjs.map → index-fhiaa9rv.mjs.map} +1 -1
  35. package/lib/chunks/{index-C8OrFLd5.mjs → index-qEUWJYQ5.mjs} +2 -2
  36. package/lib/chunks/{index-C8OrFLd5.mjs.map → index-qEUWJYQ5.mjs.map} +1 -1
  37. package/lib/chunks/{index-B57rEPin.mjs → index-vaILKWGV.mjs} +3 -3
  38. package/lib/chunks/{index-B57rEPin.mjs.map → index-vaILKWGV.mjs.map} +1 -1
  39. package/lib/chunks/{useShikiHighlight-ClbUXJ2p.mjs → useShikiHighlight-Cq02e63J.mjs} +2 -2
  40. package/lib/chunks/{useShikiHighlight-ClbUXJ2p.mjs.map → useShikiHighlight-Cq02e63J.mjs.map} +1 -1
  41. package/lib/index.cjs +25 -25
  42. package/lib/index.cjs.map +1 -1
  43. package/lib/index.mjs +1 -1
  44. package/package.json +1 -1
  45. package/lib/chunks/index-CuAALtwC.mjs.map +0 -1
  46. package/lib/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
  47. package/lib/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
  48. package/lib/pdfjs/cmaps/78-H.bcmap +0 -0
  49. package/lib/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
  50. package/lib/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
  51. package/lib/pdfjs/cmaps/78-V.bcmap +0 -0
  52. package/lib/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
  53. package/lib/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
  54. package/lib/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
  55. package/lib/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
  56. package/lib/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
  57. package/lib/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
  58. package/lib/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
  59. package/lib/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
  60. package/lib/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
  61. package/lib/pdfjs/cmaps/Add-H.bcmap +0 -0
  62. package/lib/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
  63. package/lib/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
  64. package/lib/pdfjs/cmaps/Add-V.bcmap +0 -0
  65. package/lib/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
  66. package/lib/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
  67. package/lib/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
  68. package/lib/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
  69. package/lib/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
  70. package/lib/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
  71. package/lib/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
  72. package/lib/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  73. package/lib/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
  74. package/lib/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
  75. package/lib/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
  76. package/lib/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
  77. package/lib/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
  78. package/lib/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
  79. package/lib/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  80. package/lib/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
  81. package/lib/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
  82. package/lib/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
  83. package/lib/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
  84. package/lib/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
  85. package/lib/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
  86. package/lib/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
  87. package/lib/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  88. package/lib/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
  89. package/lib/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
  90. package/lib/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
  91. package/lib/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  92. package/lib/pdfjs/cmaps/B5-H.bcmap +0 -0
  93. package/lib/pdfjs/cmaps/B5-V.bcmap +0 -0
  94. package/lib/pdfjs/cmaps/B5pc-H.bcmap +0 -0
  95. package/lib/pdfjs/cmaps/B5pc-V.bcmap +0 -0
  96. package/lib/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
  97. package/lib/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
  98. package/lib/pdfjs/cmaps/CNS1-H.bcmap +0 -0
  99. package/lib/pdfjs/cmaps/CNS1-V.bcmap +0 -0
  100. package/lib/pdfjs/cmaps/CNS2-H.bcmap +0 -0
  101. package/lib/pdfjs/cmaps/CNS2-V.bcmap +0 -3
  102. package/lib/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
  103. package/lib/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
  104. package/lib/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
  105. package/lib/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
  106. package/lib/pdfjs/cmaps/ETenms-B5-H.bcmap +0 -3
  107. package/lib/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
  108. package/lib/pdfjs/cmaps/EUC-H.bcmap +0 -0
  109. package/lib/pdfjs/cmaps/EUC-V.bcmap +0 -0
  110. package/lib/pdfjs/cmaps/Ext-H.bcmap +0 -0
  111. package/lib/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
  112. package/lib/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
  113. package/lib/pdfjs/cmaps/Ext-V.bcmap +0 -0
  114. package/lib/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
  115. package/lib/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
  116. package/lib/pdfjs/cmaps/GB-H.bcmap +0 -4
  117. package/lib/pdfjs/cmaps/GB-V.bcmap +0 -0
  118. package/lib/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
  119. package/lib/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
  120. package/lib/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
  121. package/lib/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
  122. package/lib/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
  123. package/lib/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
  124. package/lib/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
  125. package/lib/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
  126. package/lib/pdfjs/cmaps/GBT-H.bcmap +0 -0
  127. package/lib/pdfjs/cmaps/GBT-V.bcmap +0 -0
  128. package/lib/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
  129. package/lib/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
  130. package/lib/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
  131. package/lib/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
  132. package/lib/pdfjs/cmaps/H.bcmap +0 -0
  133. package/lib/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
  134. package/lib/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
  135. package/lib/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
  136. package/lib/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
  137. package/lib/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
  138. package/lib/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
  139. package/lib/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
  140. package/lib/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
  141. package/lib/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
  142. package/lib/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
  143. package/lib/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
  144. package/lib/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
  145. package/lib/pdfjs/cmaps/Hankaku.bcmap +0 -0
  146. package/lib/pdfjs/cmaps/Hiragana.bcmap +0 -0
  147. package/lib/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
  148. package/lib/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
  149. package/lib/pdfjs/cmaps/KSC-H.bcmap +0 -0
  150. package/lib/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
  151. package/lib/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
  152. package/lib/pdfjs/cmaps/KSC-V.bcmap +0 -0
  153. package/lib/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
  154. package/lib/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  155. package/lib/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  156. package/lib/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
  157. package/lib/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
  158. package/lib/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
  159. package/lib/pdfjs/cmaps/Katakana.bcmap +0 -0
  160. package/lib/pdfjs/cmaps/LICENSE +0 -36
  161. package/lib/pdfjs/cmaps/NWP-H.bcmap +0 -0
  162. package/lib/pdfjs/cmaps/NWP-V.bcmap +0 -0
  163. package/lib/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
  164. package/lib/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
  165. package/lib/pdfjs/cmaps/Roman.bcmap +0 -0
  166. package/lib/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  167. package/lib/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  168. package/lib/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  169. package/lib/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  170. package/lib/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  171. package/lib/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  172. package/lib/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  173. package/lib/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  174. package/lib/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
  175. package/lib/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
  176. package/lib/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
  177. package/lib/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
  178. package/lib/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
  179. package/lib/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
  180. package/lib/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
  181. package/lib/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
  182. package/lib/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  183. package/lib/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  184. package/lib/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  185. package/lib/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  186. package/lib/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  187. package/lib/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  188. package/lib/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  189. package/lib/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  190. package/lib/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  191. package/lib/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  192. package/lib/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  193. package/lib/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  194. package/lib/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  195. package/lib/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  196. package/lib/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  197. package/lib/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  198. package/lib/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  199. package/lib/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  200. package/lib/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  201. package/lib/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  202. package/lib/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  203. package/lib/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  204. package/lib/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  205. package/lib/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
  206. package/lib/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
  207. package/lib/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
  208. package/lib/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
  209. package/lib/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
  210. package/lib/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
  211. package/lib/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
  212. package/lib/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
  213. package/lib/pdfjs/cmaps/V.bcmap +0 -0
  214. package/lib/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
  215. package/lib/pdfjs/pdf.worker.min.mjs +0 -21
@@ -1,7 +1,7 @@
1
1
  import { jsx as t, jsxs as G } from "react/jsx-runtime";
2
2
  import { useState as l, useRef as P, useEffect as E, useCallback as T } from "react";
3
3
  import D from "mammoth";
4
- import { u as N, a as I } from "./index-CuAALtwC.mjs";
4
+ import { u as N, a as I } from "./index-BCbSb9Ob.mjs";
5
5
  import { R as S } from "./RendererError-BH6fzLrN.mjs";
6
6
  const H = 1123, b = 60, _ = 50, k = H - b * 2, R = 24, v = {
7
7
  fontFamily: "system-ui, -apple-system, sans-serif",
@@ -102,4 +102,4 @@ const H = 1123, b = 60, _ = 50, k = H - b * 2, R = 24, v = {
102
102
  export {
103
103
  B as DocxRenderer
104
104
  };
105
- //# sourceMappingURL=index-CdmkF0CO.mjs.map
105
+ //# sourceMappingURL=index-BBvL23cc.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CdmkF0CO.mjs","sources":["../../src/renderers/Docx/index.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from 'react';\nimport mammoth from 'mammoth';\nimport { useTranslator } from '../../i18n/LocaleContext';\nimport { useFetcher } from '../../RequestContext';\nimport { RendererError } from '../RendererError';\n\ninterface DocxRendererProps {\n url: string;\n}\n\n// A4 page dimensions (96dpi)\nconst PAGE_HEIGHT = 1123;\nconst PAGE_PADDING_Y = 60;\nconst PAGE_PADDING_X = 50;\nconst PAGE_CONTENT_HEIGHT = PAGE_HEIGHT - PAGE_PADDING_Y * 2;\nconst PAGE_GAP = 24;\n\nconst contentStyle: React.CSSProperties = {\n fontFamily: 'system-ui, -apple-system, sans-serif',\n lineHeight: '1.8',\n color: '#333',\n};\n\nexport const DocxRenderer: React.FC<DocxRendererProps> = ({ url }) => {\n const t = useTranslator();\n const fetcher = useFetcher();\n const [html, setHtml] = useState<string>('');\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n const [pages, setPages] = useState<string[]>([]);\n const measureRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n // 只有 URL 有效时才加载(避免空字符串或已 revoke 的 blob URL)\n if (!url) return;\n\n const loadDocx = async () => {\n setLoading(true);\n setError(null);\n setHtml('');\n\n try {\n const response = await fetcher(url);\n if (!response.ok) {\n throw new Error('文件加载失败');\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const result = await mammoth.convertToHtml({ arrayBuffer });\n setHtml(result.value);\n } catch (err) {\n console.error('Docx 解析错误:', err);\n setError(t('docx.parse_failed'));\n } finally {\n setLoading(false);\n }\n };\n\n loadDocx();\n }, [url, fetcher, t]);\n\n const paginate = useCallback(() => {\n const container = measureRef.current;\n if (!container || !html) return;\n\n const children = Array.from(container.children) as HTMLElement[];\n if (children.length === 0) {\n setPages([html]);\n return;\n }\n\n const result: string[][] = [[]];\n let currentPageUsed = 0;\n\n for (const child of children) {\n const h = child.offsetHeight;\n\n // If adding this block would exceed page content area and page isn't empty,\n // start a new page\n if (currentPageUsed > 0 && currentPageUsed + h > PAGE_CONTENT_HEIGHT) {\n result.push([]);\n currentPageUsed = 0;\n }\n\n result[result.length - 1].push(child.outerHTML);\n currentPageUsed += h;\n }\n\n // At least one page\n if (result.length === 0) result.push([]);\n\n setPages(result.map(blocks => blocks.join('')));\n }, [html]);\n\n useEffect(() => {\n if (!html || !measureRef.current) return;\n requestAnimationFrame(() => {\n paginate();\n });\n }, [html, paginate]);\n\n if (loading) {\n return (\n <div className=\"rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full\">\n <div className=\"rfp-w-12 rfp-h-12 rfp-border-4 rfp-border-line-strong rfp-border-t-spinner-head rfp-rounded-full rfp-animate-spin\" />\n </div>\n );\n }\n\n if (error) {\n return <RendererError message={error} />;\n }\n\n return (\n <div\n className=\"rfp-w-full rfp-h-full rfp-overflow-auto\"\n style={{ background: 'rgba(0, 0, 0, 0.15)' }}\n >\n {/* Hidden measurement div — same width as page content area */}\n <div\n ref={measureRef}\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n ...contentStyle,\n position: 'absolute',\n visibility: 'hidden',\n width: `${794 - PAGE_PADDING_X * 2}px`,\n pointerEvents: 'none',\n }}\n />\n\n {/* Visible pages */}\n <div\n className=\"rfp-py-6 md:rfp-py-10 rfp-flex rfp-flex-col rfp-items-center\"\n style={{ gap: `${PAGE_GAP}px` }}\n >\n {(pages.length > 0 ? pages : ['']).map((pageHtml, i) => (\n <div\n key={i}\n style={{\n width: '100%',\n maxWidth: '794px',\n minHeight: `${PAGE_HEIGHT}px`,\n background: 'white',\n boxShadow: '0 2px 12px rgba(0, 0, 0, 0.15)',\n flexShrink: 0,\n padding: `${PAGE_PADDING_Y}px ${PAGE_PADDING_X}px`,\n }}\n >\n <div\n dangerouslySetInnerHTML={{ __html: pageHtml }}\n style={contentStyle}\n />\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["PAGE_HEIGHT","PAGE_PADDING_Y","PAGE_PADDING_X","PAGE_CONTENT_HEIGHT","PAGE_GAP","contentStyle","DocxRenderer","url","t","useTranslator","fetcher","useFetcher","html","setHtml","useState","loading","setLoading","error","setError","pages","setPages","measureRef","useRef","useEffect","response","arrayBuffer","result","mammoth","err","paginate","useCallback","container","children","currentPageUsed","child","h","blocks","jsx","RendererError","jsxs","pageHtml","i"],"mappings":"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"}
1
+ {"version":3,"file":"index-BBvL23cc.mjs","sources":["../../src/renderers/Docx/index.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from 'react';\nimport mammoth from 'mammoth';\nimport { useTranslator } from '../../i18n/LocaleContext';\nimport { useFetcher } from '../../RequestContext';\nimport { RendererError } from '../RendererError';\n\ninterface DocxRendererProps {\n url: string;\n}\n\n// A4 page dimensions (96dpi)\nconst PAGE_HEIGHT = 1123;\nconst PAGE_PADDING_Y = 60;\nconst PAGE_PADDING_X = 50;\nconst PAGE_CONTENT_HEIGHT = PAGE_HEIGHT - PAGE_PADDING_Y * 2;\nconst PAGE_GAP = 24;\n\nconst contentStyle: React.CSSProperties = {\n fontFamily: 'system-ui, -apple-system, sans-serif',\n lineHeight: '1.8',\n color: '#333',\n};\n\nexport const DocxRenderer: React.FC<DocxRendererProps> = ({ url }) => {\n const t = useTranslator();\n const fetcher = useFetcher();\n const [html, setHtml] = useState<string>('');\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n const [pages, setPages] = useState<string[]>([]);\n const measureRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n // 只有 URL 有效时才加载(避免空字符串或已 revoke 的 blob URL)\n if (!url) return;\n\n const loadDocx = async () => {\n setLoading(true);\n setError(null);\n setHtml('');\n\n try {\n const response = await fetcher(url);\n if (!response.ok) {\n throw new Error('文件加载失败');\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const result = await mammoth.convertToHtml({ arrayBuffer });\n setHtml(result.value);\n } catch (err) {\n console.error('Docx 解析错误:', err);\n setError(t('docx.parse_failed'));\n } finally {\n setLoading(false);\n }\n };\n\n loadDocx();\n }, [url, fetcher, t]);\n\n const paginate = useCallback(() => {\n const container = measureRef.current;\n if (!container || !html) return;\n\n const children = Array.from(container.children) as HTMLElement[];\n if (children.length === 0) {\n setPages([html]);\n return;\n }\n\n const result: string[][] = [[]];\n let currentPageUsed = 0;\n\n for (const child of children) {\n const h = child.offsetHeight;\n\n // If adding this block would exceed page content area and page isn't empty,\n // start a new page\n if (currentPageUsed > 0 && currentPageUsed + h > PAGE_CONTENT_HEIGHT) {\n result.push([]);\n currentPageUsed = 0;\n }\n\n result[result.length - 1].push(child.outerHTML);\n currentPageUsed += h;\n }\n\n // At least one page\n if (result.length === 0) result.push([]);\n\n setPages(result.map(blocks => blocks.join('')));\n }, [html]);\n\n useEffect(() => {\n if (!html || !measureRef.current) return;\n requestAnimationFrame(() => {\n paginate();\n });\n }, [html, paginate]);\n\n if (loading) {\n return (\n <div className=\"rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full\">\n <div className=\"rfp-w-12 rfp-h-12 rfp-border-4 rfp-border-line-strong rfp-border-t-spinner-head rfp-rounded-full rfp-animate-spin\" />\n </div>\n );\n }\n\n if (error) {\n return <RendererError message={error} />;\n }\n\n return (\n <div\n className=\"rfp-w-full rfp-h-full rfp-overflow-auto\"\n style={{ background: 'rgba(0, 0, 0, 0.15)' }}\n >\n {/* Hidden measurement div — same width as page content area */}\n <div\n ref={measureRef}\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n ...contentStyle,\n position: 'absolute',\n visibility: 'hidden',\n width: `${794 - PAGE_PADDING_X * 2}px`,\n pointerEvents: 'none',\n }}\n />\n\n {/* Visible pages */}\n <div\n className=\"rfp-py-6 md:rfp-py-10 rfp-flex rfp-flex-col rfp-items-center\"\n style={{ gap: `${PAGE_GAP}px` }}\n >\n {(pages.length > 0 ? pages : ['']).map((pageHtml, i) => (\n <div\n key={i}\n style={{\n width: '100%',\n maxWidth: '794px',\n minHeight: `${PAGE_HEIGHT}px`,\n background: 'white',\n boxShadow: '0 2px 12px rgba(0, 0, 0, 0.15)',\n flexShrink: 0,\n padding: `${PAGE_PADDING_Y}px ${PAGE_PADDING_X}px`,\n }}\n >\n <div\n dangerouslySetInnerHTML={{ __html: pageHtml }}\n style={contentStyle}\n />\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["PAGE_HEIGHT","PAGE_PADDING_Y","PAGE_PADDING_X","PAGE_CONTENT_HEIGHT","PAGE_GAP","contentStyle","DocxRenderer","url","t","useTranslator","fetcher","useFetcher","html","setHtml","useState","loading","setLoading","error","setError","pages","setPages","measureRef","useRef","useEffect","response","arrayBuffer","result","mammoth","err","paginate","useCallback","container","children","currentPageUsed","child","h","blocks","jsx","RendererError","jsxs","pageHtml","i"],"mappings":"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"}