@foxycape/core 1.1.5 → 1.1.7

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 (516) hide show
  1. package/README.MD +0 -2
  2. package/README.zh.md +0 -2
  3. package/dist/ReaderHub.cjs +1 -0
  4. package/dist/ReaderHub.d.ts +20 -0
  5. package/dist/ReaderHub.mjs +59 -0
  6. package/dist/kernal/ContentRange.d.ts +1 -0
  7. package/dist/kernal/Context.cjs +1 -1
  8. package/dist/kernal/Context.mjs +13 -8
  9. package/dist/kernal/EventNames.cjs +1 -1
  10. package/dist/kernal/EventNames.d.ts +2 -0
  11. package/dist/kernal/EventNames.mjs +6 -0
  12. package/dist/kernal/FileLoader.cjs +1 -1
  13. package/dist/kernal/FileLoader.d.ts +3 -11
  14. package/dist/kernal/FileLoader.mjs +27 -22
  15. package/dist/kernal/JsonConvert.cjs +1 -1
  16. package/dist/kernal/JsonConvert.d.ts +0 -1
  17. package/dist/kernal/JsonConvert.mjs +17 -25
  18. package/dist/kernal/LifecycleHooks.d.ts +2 -1
  19. package/dist/kernal/Metadata.cjs +1 -1
  20. package/dist/kernal/Metadata.d.ts +34 -0
  21. package/dist/kernal/Metadata.mjs +47 -2
  22. package/dist/kernal/OpenOptions.d.ts +1 -0
  23. package/dist/kernal/Options.cjs +1 -1
  24. package/dist/kernal/Options.d.ts +2 -12
  25. package/dist/kernal/Options.mjs +1 -13
  26. package/dist/kernal/OptionsProvider.cjs +1 -1
  27. package/dist/kernal/OptionsProvider.d.ts +0 -2
  28. package/dist/kernal/OptionsProvider.mjs +6 -14
  29. package/dist/kernal/Reader.cjs +1 -1
  30. package/dist/kernal/Reader.d.ts +13 -12
  31. package/dist/kernal/Reader.mjs +119 -89
  32. package/dist/kernal/Theme.cjs +1 -1
  33. package/dist/kernal/Theme.mjs +1 -1
  34. package/dist/kernal/common/url.cjs +1 -1
  35. package/dist/kernal/common/url.d.ts +2 -0
  36. package/dist/kernal/common/url.mjs +2 -2
  37. package/dist/kernal/common/uuid.cjs +1 -1
  38. package/dist/kernal/common/uuid.mjs +7 -7
  39. package/dist/kernal/common/xxh64.cjs +1 -0
  40. package/dist/kernal/common/xxh64.d.ts +1 -0
  41. package/dist/kernal/common/xxh64.mjs +30 -0
  42. package/dist/kernal/crypto/MD5.cjs +1 -1
  43. package/dist/kernal/crypto/MD5.d.ts +0 -1
  44. package/dist/kernal/crypto/MD5.mjs +8 -9
  45. package/dist/kernal/crypto/WebCrypto.cjs +1 -1
  46. package/dist/kernal/crypto/WebCrypto.mjs +38 -35
  47. package/dist/kernal/deepClone/buffer.cjs +1 -1
  48. package/dist/kernal/deepClone/buffer.d.ts +8 -2
  49. package/dist/kernal/deepClone/buffer.mjs +1 -5
  50. package/dist/kernal/device/IDevice.d.ts +8 -2
  51. package/dist/kernal/device/WebBrowser.cjs +1 -1
  52. package/dist/kernal/device/WebBrowser.d.ts +12 -6
  53. package/dist/kernal/device/WebBrowser.mjs +70 -6
  54. package/dist/kernal/hostViewport.cjs +1 -0
  55. package/dist/kernal/hostViewport.d.ts +16 -0
  56. package/dist/kernal/hostViewport.mjs +44 -0
  57. package/dist/kernal/html/events.cjs +1 -1
  58. package/dist/kernal/html/events.mjs +35 -34
  59. package/dist/kernal/html/finder.cjs +1 -1
  60. package/dist/kernal/html/finder.d.ts +6 -2
  61. package/dist/kernal/html/finder.mjs +62 -51
  62. package/dist/kernal/html/geometry.cjs +1 -1
  63. package/dist/kernal/html/geometry.d.ts +26 -1
  64. package/dist/kernal/html/geometry.mjs +182 -121
  65. package/dist/kernal/html/manipulator.cjs +1 -1
  66. package/dist/kernal/html/manipulator.d.ts +1 -3
  67. package/dist/kernal/html/manipulator.mjs +34 -59
  68. package/dist/kernal/html/parser.cjs +1 -1
  69. package/dist/kernal/html/parser.mjs +3 -3
  70. package/dist/kernal/html/position.cjs +1 -1
  71. package/dist/kernal/html/position.d.ts +0 -18
  72. package/dist/kernal/html/position.mjs +2 -141
  73. package/dist/kernal/html/realm.cjs +1 -0
  74. package/dist/kernal/html/realm.d.ts +7 -0
  75. package/dist/kernal/html/realm.mjs +8 -0
  76. package/dist/kernal/html/selection.cjs +1 -1
  77. package/dist/kernal/html/selection.d.ts +1 -0
  78. package/dist/kernal/html/selection.mjs +33 -12
  79. package/dist/kernal/html/text.cjs +1 -1
  80. package/dist/kernal/html/text.d.ts +4 -3
  81. package/dist/kernal/html/text.mjs +24 -21
  82. package/dist/kernal/html/translationAnchor.cjs +1 -0
  83. package/dist/kernal/html/translationAnchor.d.ts +3 -0
  84. package/dist/kernal/html/translationAnchor.mjs +71 -0
  85. package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
  86. package/dist/kernal/i18n/DefaultLocale.d.ts +2 -2
  87. package/dist/kernal/i18n/DefaultLocale.mjs +7 -12
  88. package/dist/kernal/i18n/ILocale.d.ts +0 -1
  89. package/dist/kernal/i18n/applyNamed.cjs +1 -0
  90. package/dist/kernal/i18n/applyNamed.d.ts +1 -0
  91. package/dist/kernal/i18n/applyNamed.mjs +9 -0
  92. package/dist/kernal/i18n/textDirection.cjs +1 -0
  93. package/dist/kernal/i18n/textDirection.d.ts +6 -0
  94. package/dist/kernal/i18n/textDirection.mjs +7 -0
  95. package/dist/kernal/index.cjs +1 -1
  96. package/dist/kernal/index.d.ts +6 -5
  97. package/dist/kernal/index.mjs +50 -45
  98. package/dist/kernal/mark/IHighlighter.cjs +1 -0
  99. package/dist/kernal/mark/IHighlighter.d.ts +43 -0
  100. package/dist/kernal/mark/IHighlighter.mjs +13 -0
  101. package/dist/kernal/mark/Mark.cjs +1 -1
  102. package/dist/kernal/mark/Mark.d.ts +33 -4
  103. package/dist/kernal/mark/Mark.mjs +43 -6
  104. package/dist/kernal/mark/index.cjs +1 -1
  105. package/dist/kernal/mark/index.d.ts +2 -0
  106. package/dist/kernal/mark/index.mjs +6 -3
  107. package/dist/kernal/mark/overlay.cjs +1 -0
  108. package/dist/kernal/mark/overlay.d.ts +31 -0
  109. package/dist/kernal/mark/overlay.mjs +102 -0
  110. package/dist/kernal/mark/types.cjs +1 -0
  111. package/dist/kernal/mark/types.d.ts +11 -2
  112. package/dist/kernal/mark/types.mjs +4 -0
  113. package/dist/kernal/navigator/INavigator.d.ts +3 -2
  114. package/dist/kernal/network/HttpClient.cjs +1 -1
  115. package/dist/kernal/network/HttpClient.mjs +80 -56
  116. package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
  117. package/dist/kernal/pipelines/FileLoadPipeline.mjs +55 -56
  118. package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
  119. package/dist/kernal/pipelines/InputFormatter.mjs +43 -41
  120. package/dist/kernal/pipelines/metadata.cjs +1 -1
  121. package/dist/kernal/pipelines/metadata.d.ts +2 -1
  122. package/dist/kernal/pipelines/metadata.mjs +21 -30
  123. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
  124. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +7 -6
  125. package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
  126. package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +12 -11
  127. package/dist/kernal/progress/Progress.cjs +1 -1
  128. package/dist/kernal/progress/Progress.d.ts +5 -3
  129. package/dist/kernal/progress/Progress.mjs +2 -2
  130. package/dist/kernal/progress/userChangedProgress.cjs +1 -0
  131. package/dist/kernal/progress/userChangedProgress.d.ts +9 -0
  132. package/dist/kernal/progress/userChangedProgress.mjs +11 -0
  133. package/dist/kernal/screen/BrowserFullscreen.cjs +1 -0
  134. package/dist/kernal/screen/BrowserFullscreen.d.ts +9 -0
  135. package/dist/kernal/screen/BrowserFullscreen.mjs +47 -0
  136. package/dist/kernal/screen/IFullscreen.d.ts +6 -0
  137. package/dist/kernal/services/ServiceCollection.cjs +1 -1
  138. package/dist/kernal/services/ServiceCollection.d.ts +4 -6
  139. package/dist/kernal/services/ServiceCollection.mjs +18 -9
  140. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
  141. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +4 -2
  142. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +31 -23
  143. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
  144. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +52 -51
  145. package/dist/kernal/services/fileUrlParser/IFileUrlParser.d.ts +0 -1
  146. package/dist/kernal/services/font/IFontProvider.cjs +1 -1
  147. package/dist/kernal/services/font/IFontProvider.d.ts +3 -0
  148. package/dist/kernal/services/font/IFontProvider.mjs +1 -1
  149. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
  150. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +8 -8
  151. package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
  152. package/dist/kernal/services/loading/DefaultLoading.d.ts +4 -0
  153. package/dist/kernal/services/loading/DefaultLoading.mjs +23 -24
  154. package/dist/kernal/services/text/splitter.cjs +1 -1
  155. package/dist/kernal/services/text/splitter.mjs +3 -3
  156. package/dist/kernal/types.d.ts +0 -5
  157. package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
  158. package/dist/kernal/web/BrowserCapabilities.d.ts +0 -9
  159. package/dist/kernal/web/BrowserCapabilities.mjs +0 -49
  160. package/dist/kernal/{Debounce.mjs → web/debounce.mjs} +1 -1
  161. package/dist/kernal/web/scheduler.cjs +1 -0
  162. package/dist/kernal/web/scheduler.d.ts +3 -0
  163. package/dist/kernal/web/scheduler.mjs +7 -0
  164. package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
  165. package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +59 -59
  166. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -0
  167. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.d.ts +13 -0
  168. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +109 -0
  169. package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
  170. package/dist/mediaTypes/html/HtmlOptions.d.ts +6 -12
  171. package/dist/mediaTypes/html/HtmlOptions.mjs +3 -14
  172. package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
  173. package/dist/mediaTypes/html/HtmlSettings.d.ts +16 -1
  174. package/dist/mediaTypes/html/HtmlSettings.mjs +46 -1
  175. package/dist/mediaTypes/html/IHtmlContentNormalizer.cjs +1 -0
  176. package/dist/mediaTypes/html/IHtmlContentNormalizer.d.ts +4 -0
  177. package/dist/mediaTypes/html/IHtmlContentNormalizer.mjs +4 -0
  178. package/dist/mediaTypes/html/IHtmlSymbolMeasure.d.ts +11 -0
  179. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.cjs +1 -0
  180. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.d.ts +5 -0
  181. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.mjs +8 -0
  182. package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
  183. package/dist/mediaTypes/html/fileParser/HtmlFileParser.d.ts +5 -1
  184. package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +15 -18
  185. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
  186. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +25 -25
  187. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +1 -0
  188. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.d.ts +7 -3
  189. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +4 -0
  190. package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
  191. package/dist/mediaTypes/html/renderer/HtmlRenderer.d.ts +7 -1
  192. package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +65 -41
  193. package/dist/mediaTypes/html/renderer/IHtmlDocument.d.ts +6 -2
  194. package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.d.ts +5 -0
  195. package/dist/mediaTypes/html/renderer/IHtmlRenderer.d.ts +3 -0
  196. package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
  197. package/dist/mediaTypes/html/renderer/document/HtmlDocument.d.ts +29 -6
  198. package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +233 -86
  199. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
  200. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.d.ts +8 -0
  201. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +41 -5
  202. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
  203. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.d.ts +2 -4
  204. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +22 -59
  205. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
  206. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.d.ts +3 -5
  207. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +7 -25
  208. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
  209. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.d.ts +0 -2
  210. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +18 -42
  211. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
  212. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.d.ts +2 -0
  213. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +17 -4
  214. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
  215. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.d.ts +16 -1
  216. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +128 -54
  217. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
  218. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +26 -3
  219. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +227 -101
  220. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
  221. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -0
  222. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +45 -25
  223. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.cjs +1 -0
  224. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.d.ts +6 -0
  225. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.mjs +6 -0
  226. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.cjs +1 -0
  227. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.d.ts +2 -0
  228. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.mjs +13 -0
  229. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.cjs +1 -0
  230. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.d.ts +11 -0
  231. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.mjs +8 -0
  232. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
  233. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +62 -62
  234. package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
  235. package/dist/mediaTypes/html/renderer/html/template.d.ts +3 -1
  236. package/dist/mediaTypes/html/renderer/html/template.mjs +9 -9
  237. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
  238. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.d.ts +22 -12
  239. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +380 -270
  240. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
  241. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +27 -27
  242. package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.d.ts +8 -0
  243. package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -1
  244. package/dist/mediaTypes/html/renderer/image/error-image.mjs +1 -1
  245. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.cjs +1 -0
  246. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.d.ts +10 -0
  247. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.mjs +15 -0
  248. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.cjs +1 -0
  249. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.d.ts +2 -0
  250. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.mjs +12 -0
  251. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
  252. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.d.ts +6 -10
  253. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +71 -62
  254. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
  255. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.d.ts +4 -1
  256. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +113 -68
  257. package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.d.ts +8 -3
  258. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
  259. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.d.ts +5 -1
  260. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +15 -3
  261. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.cjs +1 -0
  262. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.d.ts +8 -0
  263. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.mjs +28 -0
  264. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.cjs +30 -0
  265. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.mjs +4 -0
  266. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.cjs +31 -0
  267. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.mjs +4 -0
  268. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.cjs +30 -0
  269. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.mjs +4 -0
  270. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.cjs +30 -0
  271. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.mjs +4 -0
  272. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.cjs +30 -0
  273. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.mjs +4 -0
  274. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.cjs +30 -0
  275. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.mjs +4 -0
  276. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.cjs +6 -0
  277. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.mjs +4 -0
  278. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.cjs +10 -0
  279. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.mjs +4 -0
  280. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.cjs +10 -0
  281. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.mjs +4 -0
  282. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.cjs +10 -0
  283. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.mjs +4 -0
  284. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.cjs +10 -0
  285. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.mjs +4 -0
  286. package/dist/mediaTypes/html/renderer/layout/css/document-default.cjs +19 -0
  287. package/dist/mediaTypes/html/renderer/layout/css/document-default.mjs +4 -0
  288. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.cjs +3 -0
  289. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.d.ts +2 -0
  290. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.mjs +56 -0
  291. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.cjs +64 -0
  292. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.mjs +4 -0
  293. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.cjs +33 -0
  294. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.mjs +4 -0
  295. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.cjs +33 -0
  296. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.mjs +4 -0
  297. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.cjs +47 -0
  298. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.mjs +4 -0
  299. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.cjs +47 -0
  300. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.mjs +4 -0
  301. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.cjs +46 -0
  302. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.mjs +4 -0
  303. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.cjs +46 -0
  304. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.mjs +4 -0
  305. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.cjs +7 -0
  306. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.mjs +4 -0
  307. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.cjs +28 -0
  308. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.mjs +4 -0
  309. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.cjs +28 -0
  310. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.mjs +4 -0
  311. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.cjs +28 -0
  312. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.mjs +4 -0
  313. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.cjs +28 -0
  314. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.mjs +4 -0
  315. package/dist/mediaTypes/html/renderer/layout/css/root-direction.cjs +8 -0
  316. package/dist/mediaTypes/html/renderer/layout/css/root-direction.mjs +4 -0
  317. package/dist/mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.d.ts +128 -0
  318. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.cjs +1 -0
  319. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.d.ts +4 -0
  320. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.mjs +7 -0
  321. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.cjs +1 -0
  322. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.d.ts +1 -0
  323. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.mjs +13 -0
  324. package/dist/mediaTypes/html/renderer/layout/geometry/index.cjs +1 -0
  325. package/dist/mediaTypes/html/renderer/layout/geometry/index.d.ts +18 -0
  326. package/dist/mediaTypes/html/renderer/layout/geometry/index.mjs +30 -0
  327. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.cjs +1 -0
  328. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.d.ts +3 -0
  329. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.mjs +71 -0
  330. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.cjs +1 -0
  331. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.d.ts +3 -0
  332. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.mjs +74 -0
  333. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.cjs +1 -0
  334. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.d.ts +3 -0
  335. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.mjs +71 -0
  336. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.cjs +1 -0
  337. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.d.ts +3 -0
  338. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.mjs +71 -0
  339. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.cjs +1 -0
  340. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.d.ts +3 -0
  341. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.mjs +71 -0
  342. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.cjs +1 -0
  343. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.d.ts +3 -0
  344. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.mjs +71 -0
  345. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.cjs +1 -0
  346. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.d.ts +41 -0
  347. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.mjs +53 -0
  348. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.cjs +1 -0
  349. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.d.ts +3 -0
  350. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.mjs +71 -0
  351. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.cjs +1 -0
  352. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.d.ts +3 -0
  353. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.mjs +74 -0
  354. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.cjs +1 -0
  355. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.d.ts +3 -0
  356. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.mjs +71 -0
  357. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.cjs +1 -0
  358. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.d.ts +3 -0
  359. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.mjs +71 -0
  360. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.cjs +1 -0
  361. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.d.ts +3 -0
  362. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.mjs +74 -0
  363. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.cjs +1 -0
  364. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.d.ts +3 -0
  365. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.mjs +74 -0
  366. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.cjs +1 -0
  367. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.d.ts +10 -0
  368. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.mjs +17 -0
  369. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -0
  370. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.d.ts +6 -0
  371. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +24 -0
  372. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.cjs +1 -0
  373. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.d.ts +9 -0
  374. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.mjs +4 -0
  375. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.cjs +1 -0
  376. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.d.ts +11 -0
  377. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.mjs +9 -0
  378. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
  379. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +32 -34
  380. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -0
  381. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.d.ts +23 -0
  382. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +164 -0
  383. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.cjs +1 -0
  384. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.d.ts +4 -0
  385. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.mjs +13 -0
  386. package/dist/mediaTypes/html/renderer/location/scrollActivity.cjs +1 -0
  387. package/dist/mediaTypes/html/renderer/location/scrollActivity.d.ts +14 -0
  388. package/dist/mediaTypes/html/renderer/location/scrollActivity.mjs +18 -0
  389. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
  390. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +2 -2
  391. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
  392. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +3 -3
  393. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
  394. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +55 -59
  395. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
  396. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.d.ts +1 -0
  397. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +40 -39
  398. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
  399. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.d.ts +2 -1
  400. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +36 -24
  401. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
  402. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.d.ts +4 -0
  403. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +19 -1
  404. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
  405. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.d.ts +3 -0
  406. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +9 -0
  407. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
  408. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +3 -0
  409. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +28 -16
  410. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
  411. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.d.ts +2 -0
  412. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +39 -34
  413. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.cjs +0 -0
  414. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.d.ts +6 -0
  415. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.mjs +0 -0
  416. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.cjs +1 -0
  417. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.d.ts +18 -0
  418. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.mjs +52 -0
  419. package/dist/mediaTypes/html/renderer/style/html-content.cjs +38 -7
  420. package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
  421. package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
  422. package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +6 -13
  423. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  424. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.d.ts +5 -4
  425. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -3
  426. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
  427. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.d.ts +4 -4
  428. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +24 -14
  429. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.cjs +1 -0
  430. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.d.ts +6 -0
  431. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.mjs +4 -0
  432. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.cjs +1 -0
  433. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.d.ts +10 -0
  434. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.mjs +33 -0
  435. package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
  436. package/dist/mediaTypes/pdf/loadPdfDocument.mjs +18 -19
  437. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.d.ts +2 -0
  438. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +1 -1
  439. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
  440. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +2 -2
  441. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
  442. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.d.ts +0 -1
  443. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +0 -3
  444. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  445. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +3 -3
  446. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
  447. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +3 -3
  448. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
  449. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.d.ts +3 -3
  450. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +20 -19
  451. package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
  452. package/dist/mediaTypes/pdf/renderer/PdfRenderer.d.ts +1 -0
  453. package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +20 -20
  454. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
  455. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +51 -50
  456. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
  457. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +55 -56
  458. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.cjs +1 -0
  459. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.d.ts +3 -0
  460. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.mjs +12 -0
  461. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
  462. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.d.ts +4 -0
  463. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +24 -5
  464. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
  465. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +32 -32
  466. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
  467. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +1 -1
  468. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
  469. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +5 -5
  470. package/dist/mediaTypes/pdf/shared/geometry/index.cjs +1 -1
  471. package/dist/mediaTypes/pdf/shared/geometry/index.mjs +2 -2
  472. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.cjs +1 -1
  473. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.d.ts +14 -4
  474. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.mjs +56 -24
  475. package/dist/mediaTypes/pdf/shared/text/pageText.cjs +2 -2
  476. package/dist/mediaTypes/pdf/shared/text/pageText.d.ts +14 -0
  477. package/dist/mediaTypes/pdf/shared/text/pageText.mjs +139 -47
  478. package/dist/node_modules/highlight.js/styles/github-dark.cjs +118 -0
  479. package/dist/node_modules/highlight.js/styles/github-dark.mjs +4 -0
  480. package/dist/node_modules/highlight.js/styles/github.cjs +118 -0
  481. package/dist/node_modules/highlight.js/styles/github.mjs +4 -0
  482. package/dist/pdfjs/package.json +1 -0
  483. package/global.d.ts +3 -1
  484. package/package.json +11 -5
  485. package/types.d.ts +48 -13
  486. package/dist/kernal/device/IEnvironment.d.ts +0 -5
  487. package/dist/kernal/device/IPlatform.d.ts +0 -7
  488. package/dist/kernal/device/WebEnvironment.cjs +0 -1
  489. package/dist/kernal/device/WebEnvironment.d.ts +0 -7
  490. package/dist/kernal/device/WebEnvironment.mjs +0 -22
  491. package/dist/kernal/device/WebPlatform.cjs +0 -1
  492. package/dist/kernal/device/WebPlatform.d.ts +0 -12
  493. package/dist/kernal/device/WebPlatform.mjs +0 -49
  494. package/dist/kernal/progress/IReadingProgressStore.d.ts +0 -7
  495. package/dist/kernal/progress/ReadingProgressStore.cjs +0 -1
  496. package/dist/kernal/progress/ReadingProgressStore.d.ts +0 -12
  497. package/dist/kernal/progress/ReadingProgressStore.mjs +0 -17
  498. package/dist/kernal/storage/IStorage.cjs +0 -1
  499. package/dist/kernal/storage/IStorage.d.ts +0 -21
  500. package/dist/kernal/storage/IStorage.mjs +0 -4
  501. package/dist/kernal/storage/WebStorage.cjs +0 -1
  502. package/dist/kernal/storage/WebStorage.d.ts +0 -31
  503. package/dist/kernal/storage/WebStorage.mjs +0 -165
  504. package/dist/mediaTypes/adjacent.cjs +0 -1
  505. package/dist/mediaTypes/adjacent.d.ts +0 -5
  506. package/dist/mediaTypes/adjacent.mjs +0 -42
  507. package/dist/mediaTypes/html/renderer/image/placeholder.cjs +0 -1
  508. package/dist/mediaTypes/html/renderer/image/placeholder.mjs +0 -4
  509. /package/dist/kernal/{device/IEnvironment.cjs → screen/IFullscreen.cjs} +0 -0
  510. /package/dist/kernal/{device/IEnvironment.mjs → screen/IFullscreen.mjs} +0 -0
  511. /package/dist/kernal/{Debounce.cjs → web/debounce.cjs} +0 -0
  512. /package/dist/kernal/{Debounce.d.ts → web/debounce.d.ts} +0 -0
  513. /package/dist/{kernal/device/IPlatform.cjs → mediaTypes/html/IHtmlSymbolMeasure.cjs} +0 -0
  514. /package/dist/{kernal/device/IPlatform.mjs → mediaTypes/html/IHtmlSymbolMeasure.mjs} +0 -0
  515. /package/dist/{kernal/progress/IReadingProgressStore.cjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.cjs} +0 -0
  516. /package/dist/{kernal/progress/IReadingProgressStore.mjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.mjs} +0 -0
@@ -0,0 +1,33 @@
1
+ //#region mediaTypes/pdf/highlighter/pdfHighlightStyles.ts
2
+ var e = [
3
+ "bottom",
4
+ "left",
5
+ "top",
6
+ "right"
7
+ ], t = (e, t) => e > t ? "bottom" : "right", n = (t, n) => {
8
+ let r = (Math.round(n / 90) % 4 + 4) % 4;
9
+ return e[(e.indexOf(t) + r) % 4] ?? t;
10
+ }, r = (e) => e === "left" ? "vertical-rl" : e === "right" ? "vertical-lr" : e === "top" ? "horizontal-bt" : "horizontal-tb", i = (e, i, a) => r(n(t(e, i), a)), a = (e, t = "horizontal-tb") => t === "horizontal-tb" ? e : `${e}-${t}`, o = (e) => typeof btoa == "function" ? btoa(e) : "", s = (e) => o(`<svg xmlns="http://www.w3.org/2000/svg" width="9" height="4" viewBox="0 0 9 4"><path d="M0 2 Q 2.25 0 4.5 2 T 9 2" fill="none" stroke="${e}" stroke-width="1.2"/></svg>`), c = (e, t) => o(`<svg xmlns="http://www.w3.org/2000/svg" width="4" height="9" viewBox="0 0 4 9"><path d="${t === "vertical-lr" ? "M2 0 Q 4 2.25 2 4.5 T 2 9" : "M2 0 Q 0 2.25 2 4.5 T 2 9"}" fill="none" stroke="${e}" stroke-width="1.2"/></svg>`), l = (e, t = "horizontal-tb") => t === "vertical-lr" ? `url("data:image/svg+xml;base64,${c(e, "vertical-lr")}")` : t === "vertical-rl" ? `url("data:image/svg+xml;base64,${c(e, "vertical-rl")}")` : `url("data:image/svg+xml;base64,${s(e)}")`, u = (e) => o(`<svg xmlns="http://www.w3.org/2000/svg" width="9" height="3" viewBox="0 0 9 3"><path d="M0 1.5 H9" fill="none" stroke="${e}" stroke-width="1.5"/></svg>`), d = (e) => o(`<svg xmlns="http://www.w3.org/2000/svg" width="3" height="9" viewBox="0 0 3 9"><path d="M1.5 0 V9" fill="none" stroke="${e}" stroke-width="1.5"/></svg>`), f = (e, t = "horizontal-tb") => t === "vertical-lr" || t === "vertical-rl" ? `url("data:image/svg+xml;base64,${d(e)}")` : `url("data:image/svg+xml;base64,${u(e)}")`, p = (e, t) => {
11
+ let n = e.replace("#", "").trim();
12
+ if (n.length !== 6) return e;
13
+ let r = Number.parseInt(n.slice(0, 2), 16), i = Number.parseInt(n.slice(2, 4), 16), a = Number.parseInt(n.slice(4, 6), 16);
14
+ return [
15
+ r,
16
+ i,
17
+ a
18
+ ].some((e) => Number.isNaN(e)) ? e : `rgba(${r},${i},${a},${t})`;
19
+ }, m = (e, t) => {
20
+ if (!t) return "";
21
+ if (e === "mark_pen" || e.startsWith("mark_pen")) return `background-color:${p(t, .27)};`;
22
+ if (e === "wavy_line" || e.startsWith("wavy_line")) {
23
+ let n = p(t, .85), r = "horizontal-tb";
24
+ return e.endsWith("vertical-lr") ? r = "vertical-lr" : e.endsWith("vertical-rl") ? r = "vertical-rl" : e.endsWith("horizontal-bt") && (r = "horizontal-bt"), `background-image:${l(n, r)};`;
25
+ }
26
+ if (e === "underline_straight" || e.startsWith("underline_straight")) {
27
+ let n = p(t, .6), r = "horizontal-tb";
28
+ return e.endsWith("vertical-lr") ? r = "vertical-lr" : e.endsWith("vertical-rl") ? r = "vertical-rl" : e.endsWith("horizontal-bt") && (r = "horizontal-bt"), `background-image:${f(n, r)};`;
29
+ }
30
+ return "";
31
+ };
32
+ //#endregion
33
+ export { m as getCustomColorStyleText, a as resolveMarkStyleType, i as resolveWritingMode, f as straightBackground, l as wavyBackground, p as withAlpha };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../kernal/common/url.cjs"),n=require("./ensurePdfWebWorker.cjs");let r=require("../../pdfjs/legacy/build/pdf.mjs");r=e.__toESM(r,1);let i=require("../../pdfjs/legacy/build/pdf.worker.min.js?url");i=e.__toESM(i,1);async function a(e,a){n.ensurePdfWebWorker(i.default);let o=a?.cMapUrl;o||(o=new URL(`../../pdfjs/cmaps/`,``+{}.url).href,o.indexOf(`/core/pdfjs/cmaps`)<0&&(o=a?.internalUrlBuilder?await a.internalUrlBuilder.getAbsoluteUrl(`pdfjs/cmaps/`,!0):t.getCurrentBaseUrl()+`/pdfjs/cmaps/`)),o&&!o.endsWith(`/`)&&(o+=`/`);let s=a?.standardFontDataUrl;s||(s=new URL(`../../pdfjs/standard_fonts/`,``+{}.url).href,s.indexOf(`/core/pdfjs/standard_fonts`)<0&&(s=a?.internalUrlBuilder?await a.internalUrlBuilder.getAbsoluteUrl(`pdfjs/standard_fonts/`,!0):t.getCurrentBaseUrl()+`/pdfjs/standard_fonts/`)),s&&!s.endsWith(`/`)&&(s+=`/`);let c={cMapUrl:o,standardFontDataUrl:s,cMapPacked:!0,useWorkerFetch:!0,useSystemFonts:!0,password:a?.password};typeof e==`string`?c.url=e:c.data=e instanceof Blob?await e.arrayBuffer():e,a?.documentInitParametersCallback&&a.documentInitParametersCallback(c);let l=r.getDocument(c);return!l._worker&&c.worker&&(l._worker=c.worker),a?.showPasswordPrompt&&(l.onPassword=a?.passwordPrompt),await l.promise}exports.loadPdfDocument=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../kernal/common/url.cjs");let n=require("../../pdfjs/legacy/build/pdf.mjs");n=e.__toESM(n,1);let r=require("../../pdfjs/legacy/build/pdf.worker.min.js?url");r=e.__toESM(r,1);async function i(e,i){(await Promise.resolve().then(()=>require("./ensurePdfWebWorker.cjs")).then(e=>e.ensurePdfWebWorker))(r.default);let a=i?.cMapUrl;a||(a=new URL(`../../pdfjs/cmaps/`,``+{}.url).href,a.indexOf(`/core/pdfjs/cmaps`)<0&&(a=i?.internalUrlBuilder?await i.internalUrlBuilder.getAbsoluteUrl(`pdfjs/cmaps/`,!0):t.getCurrentBaseUrl()+`/pdfjs/cmaps/`)),a&&!a.endsWith(`/`)&&(a+=`/`);let o=i?.standardFontDataUrl;o||(o=new URL(`../../pdfjs/standard_fonts/`,``+{}.url).href,o.indexOf(`/core/pdfjs/standard_fonts`)<0&&(o=i?.internalUrlBuilder?await i.internalUrlBuilder.getAbsoluteUrl(`pdfjs/standard_fonts/`,!0):t.getCurrentBaseUrl()+`/pdfjs/standard_fonts/`)),o&&!o.endsWith(`/`)&&(o+=`/`);let s={cMapUrl:a,standardFontDataUrl:o,cMapPacked:!0,useWorkerFetch:!0,useSystemFonts:!0,password:i?.password};typeof e==`string`?s.url=e:s.data=e instanceof Blob?await e.arrayBuffer():e,i?.documentInitParametersCallback&&i.documentInitParametersCallback(s);let c=n.getDocument(s);return!c._worker&&s.worker&&(c._worker=s.worker),i?.showPasswordPrompt&&(c.onPassword=i?.passwordPrompt),await c.promise}exports.loadPdfDocument=i;
@@ -1,29 +1,28 @@
1
1
  import { getCurrentBaseUrl as e } from "../../kernal/common/url.mjs";
2
- import { ensurePdfWebWorker as t } from "./ensurePdfWebWorker.mjs";
3
- import * as n from "../../pdfjs/legacy/build/pdf.mjs";
4
- import r from "../../pdfjs/legacy/build/pdf.worker.min.js?url";
2
+ import * as t from "../../pdfjs/legacy/build/pdf.mjs";
3
+ import n from "../../pdfjs/legacy/build/pdf.worker.min.js?url";
5
4
  //#region mediaTypes/pdf/loadPdfDocument.ts
6
- async function i(i, a) {
7
- t(r);
8
- let o = a?.cMapUrl;
9
- o ||
5
+ async function r(r, i) {
6
+ (await import("./ensurePdfWebWorker.mjs").then((e) => e.ensurePdfWebWorker))(n);
7
+ let a = i?.cMapUrl;
8
+ a ||
10
9
  /* @vite-ignore */
11
- (o = new URL("../../pdfjs/cmaps/", "" + import.meta.url).href, o.indexOf("/core/pdfjs/cmaps") < 0 && (o = a?.internalUrlBuilder ? await a.internalUrlBuilder.getAbsoluteUrl("pdfjs/cmaps/", !0) : e() + "/pdfjs/cmaps/")), o && !o.endsWith("/") && (o += "/");
12
- let s = a?.standardFontDataUrl;
13
- s ||
10
+ (a = new URL("../../pdfjs/cmaps/", "" + import.meta.url).href, a.indexOf("/core/pdfjs/cmaps") < 0 && (a = i?.internalUrlBuilder ? await i.internalUrlBuilder.getAbsoluteUrl("pdfjs/cmaps/", !0) : e() + "/pdfjs/cmaps/")), a && !a.endsWith("/") && (a += "/");
11
+ let o = i?.standardFontDataUrl;
12
+ o ||
14
13
  /* @vite-ignore */
15
- (s = new URL("../../pdfjs/standard_fonts/", "" + import.meta.url).href, s.indexOf("/core/pdfjs/standard_fonts") < 0 && (s = a?.internalUrlBuilder ? await a.internalUrlBuilder.getAbsoluteUrl("pdfjs/standard_fonts/", !0) : e() + "/pdfjs/standard_fonts/")), s && !s.endsWith("/") && (s += "/");
16
- let c = {
17
- cMapUrl: o,
18
- standardFontDataUrl: s,
14
+ (o = new URL("../../pdfjs/standard_fonts/", "" + import.meta.url).href, o.indexOf("/core/pdfjs/standard_fonts") < 0 && (o = i?.internalUrlBuilder ? await i.internalUrlBuilder.getAbsoluteUrl("pdfjs/standard_fonts/", !0) : e() + "/pdfjs/standard_fonts/")), o && !o.endsWith("/") && (o += "/");
15
+ let s = {
16
+ cMapUrl: a,
17
+ standardFontDataUrl: o,
19
18
  cMapPacked: !0,
20
19
  useWorkerFetch: !0,
21
20
  useSystemFonts: !0,
22
- password: a?.password
21
+ password: i?.password
23
22
  };
24
- typeof i == "string" ? c.url = i : c.data = i instanceof Blob ? await i.arrayBuffer() : i, a?.documentInitParametersCallback && a.documentInitParametersCallback(c);
25
- let l = n.getDocument(c);
26
- return !l._worker && c.worker && (l._worker = c.worker), a?.showPasswordPrompt && (l.onPassword = a?.passwordPrompt), await l.promise;
23
+ typeof r == "string" ? s.url = r : s.data = r instanceof Blob ? await r.arrayBuffer() : r, i?.documentInitParametersCallback && i.documentInitParametersCallback(s);
24
+ let c = t.getDocument(s);
25
+ return !c._worker && s.worker && (c._worker = s.worker), i?.showPasswordPrompt && (c.onPassword = i?.passwordPrompt), await c.promise;
27
26
  }
28
27
  //#endregion
29
- export { i as loadPdfDocument };
28
+ export { r as loadPdfDocument };
@@ -4,6 +4,7 @@ import { IPdfRendererLayout } from './layout/IPdfRendererLayout';
4
4
  import { IPdfScalable } from './zoom/IPdfScalable';
5
5
  import { IPdfFileParser } from '../fileParser/IPdfFileParser';
6
6
  import { IPdfProgressTracker } from './progress/IPdfProgressTracker';
7
+ import { PdfOptions } from '../PdfOptions';
7
8
 
8
9
  import type * as pdfjsLib from "../../../pdfjs/legacy/build/pdf.mjs";
9
10
  import type * as pdfjsViewer from "../../../pdfjs/legacy/web/pdf_viewer.mjs";
@@ -27,4 +28,5 @@ export interface IPdfRenderer<T extends IPdfDocument = IPdfDocument, W extends I
27
28
  getEventBus(): pdfjsViewer.EventBus;
28
29
  getFindController(): pdfjsViewer.PDFFindController;
29
30
  getPdfPage(pageNumber: number): Promise<pdfjsLib.PDFPageProxy | undefined>;
31
+ readonly pdfOptions: PdfOptions;
30
32
  }
@@ -1,4 +1,4 @@
1
- import { asyncDebounce as e } from "../../../kernal/Debounce.mjs";
1
+ import { asyncDebounce as e } from "../../../kernal/web/debounce.mjs";
2
2
  import { getPageText as t } from "../shared/text/pageText.mjs";
3
3
  import * as n from "../../../pdfjs/legacy/build/pdf.mjs";
4
4
  import * as r from "../../../pdfjs/legacy/web/pdf_viewer.mjs";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/progress/Progress.cjs");var t=class{constructor(e){this.documentsProvider=e}async goto(e){await this.documentsProvider.load(e)}async gotoUrl(t){let n=new e.FileLocation(t,1,`ratio`);n.storeCurrent=!0,await this.goto(n)}async gotoPercentage(t,n){let r=new e.FileLocation(void 0,1,`ratio`);r.current=t,r.storeCurrent=!0,r.symbolType=n?.percentageSymbolType??`custom`,r.from=`drag`,await this.goto(r)}};exports.PdfCoreNavigator=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/progress/Progress.cjs");var t=class{constructor(e){this.documentsProvider=e}async goto(e){await this.documentsProvider.load(e)}async gotoUrl(t){let n=new e.FileLocation(t,1,`ratio`);n.storeCurrent=!0,n.from=`toc`,await this.goto(n)}async gotoPercentage(t,n){let r=new e.FileLocation(void 0,1,`ratio`);r.current=t,r.storeCurrent=!0,r.symbolType=n?.percentageSymbolType??`custom`,r.from=n?.from??`drag`,await this.goto(r)}};exports.PdfCoreNavigator=t;
@@ -9,11 +9,11 @@ var t = class {
9
9
  }
10
10
  async gotoUrl(t) {
11
11
  let n = new e(t, 1, "ratio");
12
- n.storeCurrent = !0, await this.goto(n);
12
+ n.storeCurrent = !0, n.from = "toc", await this.goto(n);
13
13
  }
14
14
  async gotoPercentage(t, n) {
15
15
  let r = new e(void 0, 1, "ratio");
16
- r.current = t, r.storeCurrent = !0, r.symbolType = n?.percentageSymbolType ?? "custom", r.from = "drag", await this.goto(r);
16
+ r.current = t, r.storeCurrent = !0, r.symbolType = n?.percentageSymbolType ?? "custom", r.from = n?.from ?? "drag", await this.goto(r);
17
17
  }
18
18
  };
19
19
  //#endregion
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{static{this.ContentsContainerWidth=`--pdf-contents-container-width`}static{this.ContentsContainerOffsetLeft=`--pdf-contents-container-offsetleft`}static{this.ScrollElementOverflow=`--pdf-scroll-element-overflow`}static{this.ScrollElementVerticalScrollBarWidth=`--pdf-scroll-element-vertial-scrollbar-width`}static{this.ScrollElementHorizontalScrollBarHeight=`--pdf-scroll-element-horizontal-scrollbar-height`}static{this.ContentContainerWidth=`--pdf-content-container-width`}static{this.ContentWrapperBorderRadius=`--pdf-content-wrapper-border-radius`}};exports.PdfCssVariableNames=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{static{this.ContentsContainerWidth=`--pdf-contents-container-width`}static{this.ScrollElementOverflow=`--pdf-scroll-element-overflow`}static{this.ScrollElementVerticalScrollBarWidth=`--pdf-scroll-element-vertial-scrollbar-width`}static{this.ScrollElementHorizontalScrollBarHeight=`--pdf-scroll-element-horizontal-scrollbar-height`}static{this.ContentContainerWidth=`--pdf-content-container-width`}static{this.ContentWrapperBorderRadius=`--pdf-content-wrapper-border-radius`}};exports.PdfCssVariableNames=e;
@@ -1,6 +1,5 @@
1
1
  export declare class PdfCssVariableNames {
2
2
  static readonly ContentsContainerWidth = "--pdf-contents-container-width";
3
- static readonly ContentsContainerOffsetLeft = "--pdf-contents-container-offsetleft";
4
3
  static readonly ScrollElementOverflow = "--pdf-scroll-element-overflow";
5
4
  static readonly ScrollElementVerticalScrollBarWidth = "--pdf-scroll-element-vertial-scrollbar-width";
6
5
  static readonly ScrollElementHorizontalScrollBarHeight = "--pdf-scroll-element-horizontal-scrollbar-height";
@@ -3,9 +3,6 @@ var e = class {
3
3
  static {
4
4
  this.ContentsContainerWidth = "--pdf-contents-container-width";
5
5
  }
6
- static {
7
- this.ContentsContainerOffsetLeft = "--pdf-contents-container-offsetleft";
8
- }
9
6
  static {
10
7
  this.ScrollElementOverflow = "--pdf-scroll-element-overflow";
11
8
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/common/uuid.cjs"),t=require("../../../kernal/IFileParser.cjs"),n=require("../../../kernal/html/geometry.cjs"),r=require("../../base/renderer/BaseDocument.cjs");var i=`custom-text-layer`,a=class extends r.BaseDocument{constructor(e,n,r,i,a,o){super(e,r,i,new t.SpineFile(null,a||`${o}.pdf`,`.pdf`)),this.pdfViewer=n,this.texts=new Map,this.currentPageNumber=o,this.loadStatus=`success`}get pageNumber(){return this.currentPageNumber}getPageGeometry(){let e=this.resolvePageView();if(!(!e?.viewport||!e.div))return{rawWidth:e.viewport.viewBox[2],rawHeight:e.viewport.viewBox[3],rotation:Math.abs(e.viewport.rotation)%360,displayWidth:e.width,displayHeight:e.height,pageRect:e.div.getBoundingClientRect(),ref:e.pdfPage.ref}}getVisibleElements(e){if(this.loadStatus!=`success`)return[];let t=this.getContentContainer();if(!t)return[];let r=this.collectTextLayerElements(t);if(r.length===0)return[];let i=this.owner.getRenderer()?.getScrollElement()??this.owner.getReaderContainer();if(!i)return[];let a=i.getBoundingClientRect(),o=this.owner.optionsProvider.getHeaderHeight(),s={left:a.left,top:a.top+o,right:a.right,bottom:a.bottom};return s.right<=s.left||s.bottom<=s.top?[]:n.getOrderedElementsIntersectingRect(r,s,{fullVisible:e})}collectTextLayerElements(e){let t=e.querySelectorAll(`svg.${i} text`);return t.length>0?Array.from(t):Array.from(e.querySelectorAll(`.textLayer span`))}resolvePageView(){return this.pdfViewer._pages.find(e=>e.id==this.pageNumber)}async load(){this.loadStatus=`success`}async getText(t){let n=e.computeUniqueId(JSON.stringify(t??{}));if(this.texts.has(n))return this.texts.get(n);let r=await this.pdfViewer.getPageText(this.pageNumber,t);return this.texts.set(n,r),r}async dispose(){this.texts.clear(),await super.dispose()}};exports.PdfDocument=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/common/uuid.cjs"),t=require("../../../kernal/IFileParser.cjs"),n=require("../../../kernal/html/geometry.cjs"),r=require("../../base/renderer/BaseDocument.cjs");var i=`custom-text-layer`,a=class extends r.BaseDocument{constructor(e,n,r,i,a,o){super(e,r,i,new t.SpineFile(null,a||`${o}.pdf`,`.pdf`)),this.pdfViewer=n,this.texts=new Map,this.currentPageNumber=o,this.loadStatus=`success`}get pageNumber(){return this.currentPageNumber}getPageGeometry(){let e=this.resolvePageView();if(!(!e?.viewport||!e.div))return{rawWidth:e.viewport.viewBox[2],rawHeight:e.viewport.viewBox[3],rotation:Math.abs(e.viewport.rotation)%360,displayWidth:e.width,displayHeight:e.height,pageRect:e.div.getBoundingClientRect(),ref:e.pdfPage.ref}}getVisibleElements(e){if(this.loadStatus!=`success`)return[];let t=this.getContentContainer();if(!t)return[];let r=this.collectTextLayerElements(t);if(r.length===0)return[];let i=this.owner.getRenderer()?.getScrollElement()??this.owner.getReaderContainer();if(!i)return[];let a=i.getBoundingClientRect(),o={left:a.left,top:a.top,right:a.right,bottom:a.bottom};return o.right<=o.left||o.bottom<=o.top?[]:n.getOrderedElementsIntersectingRect(r,o,{fullVisible:e})}collectTextLayerElements(e){let t=e.querySelectorAll(`svg.${i} text`);return t.length>0?Array.from(t):Array.from(e.querySelectorAll(`.textLayer span`))}resolvePageView(){return this.pdfViewer._pages.find(e=>e.id==this.pageNumber)}async load(){this.loadStatus=`success`}async getText(t){let n=e.computeUniqueId(JSON.stringify(t??{}));if(this.texts.has(n))return this.texts.get(n);let r=await this.pdfViewer.getPageText(this.pageNumber,t);return this.texts.set(n,r),r}async dispose(){this.texts.clear(),await super.dispose()}};exports.PdfDocument=a;
@@ -30,13 +30,13 @@ var i = "custom-text-layer", a = class extends r {
30
30
  if (r.length === 0) return [];
31
31
  let i = this.owner.getRenderer()?.getScrollElement() ?? this.owner.getReaderContainer();
32
32
  if (!i) return [];
33
- let a = i.getBoundingClientRect(), o = this.owner.optionsProvider.getHeaderHeight(), s = {
33
+ let a = i.getBoundingClientRect(), o = {
34
34
  left: a.left,
35
- top: a.top + o,
35
+ top: a.top,
36
36
  right: a.right,
37
37
  bottom: a.bottom
38
38
  };
39
- return s.right <= s.left || s.bottom <= s.top ? [] : n(r, s, { fullVisible: e });
39
+ return o.right <= o.left || o.bottom <= o.top ? [] : n(r, o, { fullVisible: e });
40
40
  }
41
41
  collectTextLayerElements(e) {
42
42
  let t = e.querySelectorAll(`svg.${i} text`);
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{constructor(e,t,n){this.documentsProvider=e,this.pdfCoreNavigator=t,this.navPointProvider=n,this.owner=e.owner,this.locale=this.owner.locale}async getNavPointProgress(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>1){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return null;let n=e.findIndex(e=>e.key==t.key);return{total:e.length,current:n,type:`navpoint`}}{let e=this.documentsProvider.getFirstVisibleDocument(),t=this.documentsProvider.getDocuments(),n=t.findIndex(t=>t.url==e.url);return{total:t.length,current:n,type:`file`}}}async gotoNavPoint(e){await this.pdfCoreNavigator.gotoUrl(e.url)}async gotoNextNavPointOrFile(e){let t=await this.navPointProvider.getFlattingNavPoints();if(t.length>1){let e=await this.navPointProvider.getCurrentNavPoint();if(!e)return;let n=t.findIndex(t=>t.key==e.key);if(n<0)return;let r=this.documentsProvider.getDocuments().length;if(n==t.length-1||e?.url==r.toString()){this.owner.notifier.info(this.locale.getText(`navigator_alreadyislastnavPoint`,`Already at the last chapter`));return}let i=await this.getNextNavPoint(e,n,t);if(i)await this.gotoNavPoint(i);else{if(n<t.length-1){let e=t[t.length-1];if(e){await this.gotoNavPoint(e);return}}this.owner.notifier.info(this.locale.getText(`navigator_alreadyislastnavPoint`,`Already at the last chapter`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==t.length-1){this.owner.notifier.info(this.locale.getText(`navigator_alreadyislastnavPoint`,`Already at the last chapter`));return}await this.pdfCoreNavigator.gotoUrl(t[n+1].url)}}async getNextNavPoint(e,t,n){let r=n[t+1];if(r){let i=this.documentsProvider.getFirstVisibleDocument();if(i&&i.url==r.url||r.url==e.url)return await this.getNextNavPoint(r,t+1,n)}return r}async gotoPreviousNavPointOrFile(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>0){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return;let n=e.findIndex(e=>e.key==t.key);if(n<0)return;if(n==0||t.url==`1`){this.owner.notifier.info(this.locale.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}let r=await this.getPrevousNavPoint(t,n,e);if(r)await this.gotoNavPoint(r);else{if(n>0){let t=e[0];if(t){await this.gotoNavPoint(t);return}}this.owner.notifier.info(this.locale.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==0){this.owner.notifier.info(this.locale.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}await this.pdfCoreNavigator.gotoUrl(t[n-1].url)}}async getPrevousNavPoint(e,t,n){let r=n[t-1];if(r){let i=this.documentsProvider.getFirstVisibleDocument();if(i&&i.url==r.url||r.url==e.url)return await this.getPrevousNavPoint(r,t-1,n)}return r}};exports.PdfNavPointNavigator=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{constructor(e,t,n){this.documentsProvider=e,this.pdfCoreNavigator=t,this.navPointProvider=n,this.owner=e.owner,this.locale=this.owner.locale}async getNavPointProgress(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>1){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return null;let n=e.findIndex(e=>e.key==t.key);return{total:e.length,current:n,type:`navpoint`}}{let e=this.documentsProvider.getFirstVisibleDocument(),t=this.documentsProvider.getDocuments(),n=t.findIndex(t=>t.url==e.url);return{total:t.length,current:n,type:`file`}}}async gotoNavPoint(e){await this.pdfCoreNavigator.gotoUrl(e.url)}async gotoNextNavPointOrFile(e){let t=await this.navPointProvider.getFlattingNavPoints();if(t.length>1){let e=await this.navPointProvider.getCurrentNavPoint();if(!e)return;let n=t.findIndex(t=>t.key==e.key);if(n<0)return;let r=this.documentsProvider.getDocuments().length;if(n==t.length-1||e?.url==r.toString()){this.owner.notifier.info(this.locale.getText(`navigator_alreadyislastnavPoint`,`You have finished this chapter.`));return}let i=await this.getNextNavPoint(e,n,t);if(i)await this.gotoNavPoint(i);else{if(n<t.length-1){let e=t[t.length-1];if(e){await this.gotoNavPoint(e);return}}this.owner.notifier.info(this.locale.getText(`navigator_alreadyislastnavPoint`,`You have finished this chapter.`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==t.length-1){this.owner.notifier.info(this.locale.getText(`navigator_alreadyislastnavPoint`,`You have finished this chapter.`));return}await this.pdfCoreNavigator.gotoUrl(t[n+1].url)}}async getNextNavPoint(e,t,n){let r=n[t+1];if(r){let i=this.documentsProvider.getFirstVisibleDocument();if(i&&i.url==r.url||r.url==e.url)return await this.getNextNavPoint(r,t+1,n)}return r}async gotoPreviousNavPointOrFile(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>0){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return;let n=e.findIndex(e=>e.key==t.key);if(n<0)return;if(n==0||t.url==`1`){this.owner.notifier.info(this.locale.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}let r=await this.getPrevousNavPoint(t,n,e);if(r)await this.gotoNavPoint(r);else{if(n>0){let t=e[0];if(t){await this.gotoNavPoint(t);return}}this.owner.notifier.info(this.locale.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==0){this.owner.notifier.info(this.locale.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}await this.pdfCoreNavigator.gotoUrl(t[n-1].url)}}async getPrevousNavPoint(e,t,n){let r=n[t-1];if(r){let i=this.documentsProvider.getFirstVisibleDocument();if(i&&i.url==r.url||r.url==e.url)return await this.getPrevousNavPoint(r,t-1,n)}return r}};exports.PdfNavPointNavigator=e;
@@ -36,7 +36,7 @@ var e = class {
36
36
  if (n < 0) return;
37
37
  let r = this.documentsProvider.getDocuments().length;
38
38
  if (n == t.length - 1 || e?.url == r.toString()) {
39
- this.owner.notifier.info(this.locale.getText("navigator_alreadyislastnavPoint", "Already at the last chapter"));
39
+ this.owner.notifier.info(this.locale.getText("navigator_alreadyislastnavPoint", "You have finished this chapter."));
40
40
  return;
41
41
  }
42
42
  let i = await this.getNextNavPoint(e, n, t);
@@ -49,7 +49,7 @@ var e = class {
49
49
  return;
50
50
  }
51
51
  }
52
- this.owner.notifier.info(this.locale.getText("navigator_alreadyislastnavPoint", "Already at the last chapter"));
52
+ this.owner.notifier.info(this.locale.getText("navigator_alreadyislastnavPoint", "You have finished this chapter."));
53
53
  return;
54
54
  }
55
55
  } else {
@@ -57,7 +57,7 @@ var e = class {
57
57
  if (!e) return;
58
58
  let t = this.documentsProvider.getDocuments(), n = t.indexOf(e);
59
59
  if (n == t.length - 1) {
60
- this.owner.notifier.info(this.locale.getText("navigator_alreadyislastnavPoint", "Already at the last chapter"));
60
+ this.owner.notifier.info(this.locale.getText("navigator_alreadyislastnavPoint", "You have finished this chapter."));
61
61
  return;
62
62
  }
63
63
  await this.pdfCoreNavigator.gotoUrl(t[n + 1].url);
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/progress/Progress.cjs");var t=class{constructor(e,t,n){this.locale=e,this.notifier=t,this.documentsProvider=n}async dispose(){}async gotoPage(t,n,r){let i=new e.FileLocation(n.toString(),this.documentsProvider.numberOfPages,`page`);return i.current=n,await this.documentsProvider.load(i),!0}async gotoNextPage(t){let n=this.documentsProvider.currentPage,r=this.documentsProvider.numberOfPages,i=this.documentsProvider.isSpreadMode;if(n>=r||i&&n>=r-1)return this.notifier.info(this.locale?.getText(`navigotor_alreadyislastpage`,`Already at the last page`)),!1;let a=i?n+2:n+1;a>=r&&(a=r);let o=new e.FileLocation(a.toString(),r,`page`);return o.current=a,await this.documentsProvider.load(o),!0}async gotoPreviousPage(t){let n=this.documentsProvider.currentPage,r=this.documentsProvider.isSpreadMode;if(n<=1||r&&n<2)return this.notifier.info(this.locale?.getText(`navigotor_alreadyisfirstpage`,`Already at the first page`)),!1;let i=r?n-2:n-1;i<=0&&(i=1);let a=new e.FileLocation(i.toString(),this.documentsProvider.numberOfPages,`page`);return a.current=i,await this.documentsProvider.load(a),!0}};exports.PdfPagingNavigator=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/progress/Progress.cjs"),t=require("../../../kernal/progress/userChangedProgress.cjs");var n=class{constructor(e,t,n){this.locale=e,this.notifier=t,this.documentsProvider=n}async dispose(){}async gotoPage(n,r,i){let a=new e.FileLocation(r.toString(),this.documentsProvider.numberOfPages,`page`);return a.current=r,t.applyPagingLocationFrom(a,i),await this.documentsProvider.load(a),!0}async gotoNextPage(n){let r=this.documentsProvider.currentPage,i=this.documentsProvider.numberOfPages,a=this.documentsProvider.isSpreadMode;if(r>=i||a&&r>=i-1)return this.notifier.info(this.locale?.getText(`navigotor_alreadyislastpage`,`You have reached the end of the book.`)),!1;let o=a?r+2:r+1;o>=i&&(o=i);let s=new e.FileLocation(o.toString(),i,`page`);return s.current=o,t.applyPagingLocationFrom(s,n),await this.documentsProvider.load(s),!0}async gotoPreviousPage(n){let r=this.documentsProvider.currentPage,i=this.documentsProvider.isSpreadMode;if(r<=1||i&&r<2)return this.notifier.info(this.locale?.getText(`navigotor_alreadyisfirstpage`,`Already at the first page`)),!1;let a=i?r-2:r-1;a<=0&&(a=1);let o=new e.FileLocation(a.toString(),this.documentsProvider.numberOfPages,`page`);return o.current=a,t.applyPagingLocationFrom(o,n),await this.documentsProvider.load(o),!0}};exports.PdfPagingNavigator=n;
@@ -7,7 +7,7 @@ export declare class PdfPagingNavigator implements IPagingNavigator {
7
7
  private readonly documentsProvider;
8
8
  constructor(locale: ILocale, notifier: INotifier, documentsProvider: IPdfDocumentsProvider);
9
9
  dispose(): Promise<void>;
10
- gotoPage(_doc: IDocument, pageNumber: number, _extra?: PagingExtra): Promise<boolean>;
11
- gotoNextPage(_extra?: PagingExtra): Promise<boolean>;
12
- gotoPreviousPage(_extra?: PagingExtra): Promise<boolean>;
10
+ gotoPage(_doc: IDocument, pageNumber: number, extra?: PagingExtra): Promise<boolean>;
11
+ gotoNextPage(extra?: PagingExtra): Promise<boolean>;
12
+ gotoPreviousPage(extra?: PagingExtra): Promise<boolean>;
13
13
  }
@@ -1,30 +1,31 @@
1
1
  import { FileLocation as e } from "../../../kernal/progress/Progress.mjs";
2
+ import { applyPagingLocationFrom as t } from "../../../kernal/progress/userChangedProgress.mjs";
2
3
  //#region mediaTypes/pdf/renderer/PdfPagingNavigator.ts
3
- var t = class {
4
+ var n = class {
4
5
  constructor(e, t, n) {
5
6
  this.locale = e, this.notifier = t, this.documentsProvider = n;
6
7
  }
7
8
  async dispose() {}
8
- async gotoPage(t, n, r) {
9
- let i = new e(n.toString(), this.documentsProvider.numberOfPages, "page");
10
- return i.current = n, await this.documentsProvider.load(i), !0;
9
+ async gotoPage(n, r, i) {
10
+ let a = new e(r.toString(), this.documentsProvider.numberOfPages, "page");
11
+ return a.current = r, t(a, i), await this.documentsProvider.load(a), !0;
11
12
  }
12
- async gotoNextPage(t) {
13
- let n = this.documentsProvider.currentPage, r = this.documentsProvider.numberOfPages, i = this.documentsProvider.isSpreadMode;
14
- if (n >= r || i && n >= r - 1) return this.notifier.info(this.locale?.getText("navigotor_alreadyislastpage", "Already at the last page")), !1;
15
- let a = i ? n + 2 : n + 1;
16
- a >= r && (a = r);
17
- let o = new e(a.toString(), r, "page");
18
- return o.current = a, await this.documentsProvider.load(o), !0;
13
+ async gotoNextPage(n) {
14
+ let r = this.documentsProvider.currentPage, i = this.documentsProvider.numberOfPages, a = this.documentsProvider.isSpreadMode;
15
+ if (r >= i || a && r >= i - 1) return this.notifier.info(this.locale?.getText("navigotor_alreadyislastpage", "You have reached the end of the book.")), !1;
16
+ let o = a ? r + 2 : r + 1;
17
+ o >= i && (o = i);
18
+ let s = new e(o.toString(), i, "page");
19
+ return s.current = o, t(s, n), await this.documentsProvider.load(s), !0;
19
20
  }
20
- async gotoPreviousPage(t) {
21
- let n = this.documentsProvider.currentPage, r = this.documentsProvider.isSpreadMode;
22
- if (n <= 1 || r && n < 2) return this.notifier.info(this.locale?.getText("navigotor_alreadyisfirstpage", "Already at the first page")), !1;
23
- let i = r ? n - 2 : n - 1;
24
- i <= 0 && (i = 1);
25
- let a = new e(i.toString(), this.documentsProvider.numberOfPages, "page");
26
- return a.current = i, await this.documentsProvider.load(a), !0;
21
+ async gotoPreviousPage(n) {
22
+ let r = this.documentsProvider.currentPage, i = this.documentsProvider.isSpreadMode;
23
+ if (r <= 1 || i && r < 2) return this.notifier.info(this.locale?.getText("navigotor_alreadyisfirstpage", "Already at the first page")), !1;
24
+ let a = i ? r - 2 : r - 1;
25
+ a <= 0 && (a = 1);
26
+ let o = new e(a.toString(), this.documentsProvider.numberOfPages, "page");
27
+ return o.current = a, t(o, n), await this.documentsProvider.load(o), !0;
27
28
  }
28
29
  };
29
30
  //#endregion
30
- export { t as PdfPagingNavigator };
31
+ export { n as PdfPagingNavigator };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/Options.cjs"),t=require("../../../kernal/Theme.cjs"),n=require("../../../kernal/common/uuid.cjs"),r=require("../../../kernal/EventNames.cjs"),i=require("../../../kernal/html/events.cjs"),a=require("./PdfNavPointProvider.cjs"),o=require("./PdfNavPointNavigator.cjs"),s=require("./PdfCoreNavigator.cjs"),c=require("./PdfPagingNavigator.cjs"),l=require("./layout/PdfRendererLayout.cjs"),u=require("./style/PdfThemeApplier.cjs"),d=require("./progress/PdfProgressTracker.cjs"),f=require("./location/PdfDestinationBuilder.cjs"),p=require("./input/PdfDocumentEvents.cjs"),m=require("./input/PdfViewerEvents.cjs"),h=require("./input/PdfZoomInputController.cjs"),g=require("./input/PdfKeyboardController.cjs"),_=require("./documents/PdfDocumentsProvider.cjs"),v=require("./zoom/PdfScalable.cjs");require("../../../pdfjs/legacy/build/pdf.mjs");let y=require("perfect-debounce");var b=class extends _.PdfDocumentsProvider{constructor(t,n,_,b){super(t,n,_,b),this.isRendererReady=!1,this.onScaleChanging=async(e,t)=>{await this.delayApplyCssVariables()},this.delayApplyCssVariables=(0,y.debounce)(async()=>{this.rendererViewport.applyCssVariables()},200),this.onOptionsChange=async t=>{e.isOptionKey(t)&&this.rendererViewport.applyCssVariables()},this.layout=new l.PdfRendererLayout(this.pdfViewer,this.owner.events),this.scalable=new v.PdfScalable(this.pdfViewer,this.options),this.themeApplier=new u.PdfThemeApplier(this.readerContainer),this.destinationBuilder=new f.PdfDestinationBuilder(this),this.progressTracker=new d.PdfProgressTracker(this,this.pdfViewer,this.destinationBuilder),this.documentEventBridge=new p.PdfDocumentEvents(this.pdfViewer,this),this.viewerEvents=new m.PdfViewerEvents(this.owner.events,this.eventBus,this,this.pdfViewer);let x=this.getRendererContainer();this.zoomInputController=new h.PdfZoomInputController(this.pdfViewer,x),this.keyboardController=new g.PdfKeyboardController(this.pdfViewer,x),this.keyboardController.setFindRequestHandler(()=>{this.owner.events.emit(r.EventNames.RequestOpenFind)}),this.navPointProvider=new a.PdfNavPointProvider(this),this.navigator=new s.PdfCoreNavigator(this),this.navPointNavigator=new o.PdfNavPointNavigator(this,this.navigator,this.navPointProvider),this.pagingNavigator=new c.PdfPagingNavigator(this.owner.locale,this.owner.notifier,this),this.bindEvents(),i.watchScroll(this.getScrollElement(),this.owner.options.calcScrollDirection,async(e,t)=>{this.owner.events.emit(r.EventNames.ReaderDebounceScroll,e,t)},e=>{this.owner.onProgressChangeGuard&&this.owner.context?.progress?.current&&(this.owner.onProgressChangeGuard(this.owner.context.progress.current)||e.preventDefault()),this.owner.events.emit(r.EventNames.ReaderOriginalScroll,e)})}get id(){return this.currentInstanceId||=n.getRandomId(!0),this.currentInstanceId}async load(e,t){if(!this.isRendererReady){if(await this.ensureRendererReady(),this.options.textLayerMode===2){let{PdfSvgBuilder:e}=await Promise.resolve().then(()=>require("./PdfSvgBuilder.cjs"));this.svgBuilder=new e(this,this.options),await this.svgBuilder.initialize()}this.isRendererReady=!0}await super.load(e,t)}async ensureRendererReady(){let e=await this.owner.services.get(`themeProvider`),n;e?(n=e.getCurrentTheme(),this.themeApplier.applyTheme(n)):n=new t.Theme,this.themeApplier.applyTheme(n),this.rendererViewport.applyCssVariables()}bindEvents(){this.owner.events.on(r.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.on(r.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.bind(),this.viewerEvents.bind(),this.zoomInputController.bind(),this.keyboardController.bind()}unbindEvents(){this.owner.events.off(r.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.off(r.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.unbind(),this.viewerEvents.unbind(),this.zoomInputController.unbind(),this.keyboardController.unbind()}buildDest(e,t){return this.destinationBuilder.buildDest(e,t)}async getProgress(e){return this.progressTracker.getProgress(e)}async applyTheme(e){this.themeApplier.applyTheme(e)}async dispose(){this.unbindEvents(),this.currentInstanceId=null,await this.svgBuilder?.dispose(),await this.progressTracker.dispose(),await this.pagingNavigator.dispose(),await this.navPointProvider?.dispose(),await super.dispose()}};exports.PdfRenderer=b;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/EventNames.cjs"),t=require("../../../kernal/common/uuid.cjs"),n=require("../../../kernal/Options.cjs"),r=require("../../../kernal/Theme.cjs"),i=require("../../../kernal/html/events.cjs"),a=require("./PdfNavPointProvider.cjs"),o=require("./PdfNavPointNavigator.cjs"),s=require("./PdfCoreNavigator.cjs"),c=require("./PdfPagingNavigator.cjs"),l=require("./layout/PdfRendererLayout.cjs"),u=require("./style/PdfThemeApplier.cjs"),d=require("./progress/PdfProgressTracker.cjs"),f=require("./location/PdfDestinationBuilder.cjs"),p=require("./input/PdfDocumentEvents.cjs"),m=require("./input/PdfViewerEvents.cjs"),h=require("./input/PdfZoomInputController.cjs"),g=require("./input/PdfKeyboardController.cjs"),_=require("./documents/PdfDocumentsProvider.cjs"),v=require("./zoom/PdfScalable.cjs");require("../../../pdfjs/legacy/build/pdf.mjs");let y=require("perfect-debounce");var b=class extends _.PdfDocumentsProvider{constructor(t,r,_,b){super(t,r,_,b),this.isRendererReady=!1,this.onScaleChanging=async(e,t)=>{await this.delayApplyCssVariables()},this.delayApplyCssVariables=(0,y.debounce)(async()=>{this.rendererViewport.applyCssVariables()},200),this.onOptionsChange=async e=>{n.isOptionKey(e)&&this.rendererViewport.applyCssVariables()},this.pdfOptions=b,this.layout=new l.PdfRendererLayout(this.pdfViewer,this.owner.events),this.scalable=new v.PdfScalable(this.pdfViewer,this.options),this.themeApplier=new u.PdfThemeApplier(this.readerContainer),this.destinationBuilder=new f.PdfDestinationBuilder(this),this.progressTracker=new d.PdfProgressTracker(this,this.pdfViewer,this.destinationBuilder),this.documentEventBridge=new p.PdfDocumentEvents(this.pdfViewer,this),this.viewerEvents=new m.PdfViewerEvents(this.owner.events,this.eventBus,this,this.pdfViewer);let x=this.getRendererContainer();this.zoomInputController=new h.PdfZoomInputController(this.pdfViewer,x),this.keyboardController=new g.PdfKeyboardController(this.pdfViewer,x),this.keyboardController.setFindRequestHandler(()=>{this.owner.events.emit(e.EventNames.RequestOpenFind)}),this.navPointProvider=new a.PdfNavPointProvider(this),this.navigator=new s.PdfCoreNavigator(this),this.navPointNavigator=new o.PdfNavPointNavigator(this,this.navigator,this.navPointProvider),this.pagingNavigator=new c.PdfPagingNavigator(this.owner.locale,this.owner.notifier,this),this.bindEvents(),i.watchScroll(this.getScrollElement(),this.owner.options.calcScrollDirection,async(t,n)=>{this.owner.events.emit(e.EventNames.ReaderDebounceScroll,t,n)},t=>{this.owner.onProgressChangeGuard&&this.owner.context?.progress?.current&&(this.owner.onProgressChangeGuard(this.owner.context.progress.current)||t.preventDefault()),this.owner.events.emit(e.EventNames.ReaderOriginalScroll,t)})}get id(){return this.currentInstanceId||=t.getRandomId(!0),this.currentInstanceId}async load(e,t){if(!this.isRendererReady){if(await this.ensureRendererReady(),this.options.textLayerMode===2){let{PdfSvgBuilder:e}=await Promise.resolve().then(()=>require("./PdfSvgBuilder.cjs"));this.svgBuilder=new e(this,this.options),await this.svgBuilder.initialize()}this.isRendererReady=!0}await super.load(e,t)}async ensureRendererReady(){let e=await this.owner.services.get(`themeProvider`),t;e?(t=e.getCurrentTheme(),this.themeApplier.applyTheme(t)):t=new r.Theme,this.themeApplier.applyTheme(t),this.rendererViewport.applyCssVariables()}bindEvents(){this.owner.events.on(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.on(e.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.bind(),this.viewerEvents.bind(),this.zoomInputController.bind(),this.keyboardController.bind()}unbindEvents(){this.owner.events.off(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.off(e.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.unbind(),this.viewerEvents.unbind(),this.zoomInputController.unbind(),this.keyboardController.unbind()}buildDest(e,t){return this.destinationBuilder.buildDest(e,t)}async getProgress(e){return this.progressTracker.getProgress(e)}async applyTheme(e){this.themeApplier.applyTheme(e)}async dispose(){this.unbindEvents(),this.currentInstanceId=null,await this.svgBuilder?.dispose(),await this.progressTracker.dispose(),await this.pagingNavigator.dispose(),await this.navPointProvider?.dispose(),await super.dispose()}};exports.PdfRenderer=b;
@@ -24,6 +24,7 @@ export declare class PdfRenderer extends PdfDocumentsProvider implements IPdfRen
24
24
  private readonly keyboardController;
25
25
  private svgBuilder?;
26
26
  constructor(owner: Reader, fileParser: IFileParser, readerContainer: HTMLElement, options: PdfOptions);
27
+ readonly pdfOptions: PdfOptions;
27
28
  get id(): string;
28
29
  private isRendererReady;
29
30
  load(location?: Parameters<PdfDocumentsProvider["load"]>[0], isReload?: boolean): Promise<void>;
@@ -1,8 +1,8 @@
1
- import { isOptionKey as e } from "../../../kernal/Options.mjs";
2
- import { Theme as t } from "../../../kernal/Theme.mjs";
3
- import { getRandomId as n } from "../../../kernal/common/uuid.mjs";
4
- import { EventNames as r } from "../../../kernal/EventNames.mjs";
5
- import { asyncDebounce as i } from "../../../kernal/Debounce.mjs";
1
+ import { EventNames as e } from "../../../kernal/EventNames.mjs";
2
+ import { getRandomId as t } from "../../../kernal/common/uuid.mjs";
3
+ import { isOptionKey as n } from "../../../kernal/Options.mjs";
4
+ import { Theme as r } from "../../../kernal/Theme.mjs";
5
+ import { asyncDebounce as i } from "../../../kernal/web/debounce.mjs";
6
6
  import { watchScroll as a } from "../../../kernal/html/events.mjs";
7
7
  import { PdfNavPointProvider as o } from "./PdfNavPointProvider.mjs";
8
8
  import { PdfNavPointNavigator as s } from "./PdfNavPointNavigator.mjs";
@@ -21,25 +21,25 @@ import { PdfScalable as y } from "./zoom/PdfScalable.mjs";
21
21
  import "../../../pdfjs/legacy/build/pdf.mjs";
22
22
  //#region mediaTypes/pdf/renderer/PdfRenderer.ts
23
23
  var b = class extends v {
24
- constructor(t, n, v, b) {
25
- super(t, n, v, b), this.isRendererReady = !1, this.onScaleChanging = async (e, t) => {
24
+ constructor(t, r, v, b) {
25
+ super(t, r, v, b), this.isRendererReady = !1, this.onScaleChanging = async (e, t) => {
26
26
  await this.delayApplyCssVariables();
27
27
  }, this.delayApplyCssVariables = i(async () => {
28
28
  this.rendererViewport.applyCssVariables();
29
- }, 200), this.onOptionsChange = async (t) => {
30
- e(t) && this.rendererViewport.applyCssVariables();
31
- }, this.layout = new u(this.pdfViewer, this.owner.events), this.scalable = new y(this.pdfViewer, this.options), this.themeApplier = new d(this.readerContainer), this.destinationBuilder = new p(this), this.progressTracker = new f(this, this.pdfViewer, this.destinationBuilder), this.documentEventBridge = new m(this.pdfViewer, this), this.viewerEvents = new h(this.owner.events, this.eventBus, this, this.pdfViewer);
29
+ }, 200), this.onOptionsChange = async (e) => {
30
+ n(e) && this.rendererViewport.applyCssVariables();
31
+ }, this.pdfOptions = b, this.layout = new u(this.pdfViewer, this.owner.events), this.scalable = new y(this.pdfViewer, this.options), this.themeApplier = new d(this.readerContainer), this.destinationBuilder = new p(this), this.progressTracker = new f(this, this.pdfViewer, this.destinationBuilder), this.documentEventBridge = new m(this.pdfViewer, this), this.viewerEvents = new h(this.owner.events, this.eventBus, this, this.pdfViewer);
32
32
  let x = this.getRendererContainer();
33
33
  this.zoomInputController = new g(this.pdfViewer, x), this.keyboardController = new _(this.pdfViewer, x), this.keyboardController.setFindRequestHandler(() => {
34
- this.owner.events.emit(r.RequestOpenFind);
35
- }), this.navPointProvider = new o(this), this.navigator = new c(this), this.navPointNavigator = new s(this, this.navigator, this.navPointProvider), this.pagingNavigator = new l(this.owner.locale, this.owner.notifier, this), this.bindEvents(), a(this.getScrollElement(), this.owner.options.calcScrollDirection, async (e, t) => {
36
- this.owner.events.emit(r.ReaderDebounceScroll, e, t);
37
- }, (e) => {
38
- this.owner.onProgressChangeGuard && this.owner.context?.progress?.current && (this.owner.onProgressChangeGuard(this.owner.context.progress.current) || e.preventDefault()), this.owner.events.emit(r.ReaderOriginalScroll, e);
34
+ this.owner.events.emit(e.RequestOpenFind);
35
+ }), this.navPointProvider = new o(this), this.navigator = new c(this), this.navPointNavigator = new s(this, this.navigator, this.navPointProvider), this.pagingNavigator = new l(this.owner.locale, this.owner.notifier, this), this.bindEvents(), a(this.getScrollElement(), this.owner.options.calcScrollDirection, async (t, n) => {
36
+ this.owner.events.emit(e.ReaderDebounceScroll, t, n);
37
+ }, (t) => {
38
+ this.owner.onProgressChangeGuard && this.owner.context?.progress?.current && (this.owner.onProgressChangeGuard(this.owner.context.progress.current) || t.preventDefault()), this.owner.events.emit(e.ReaderOriginalScroll, t);
39
39
  });
40
40
  }
41
41
  get id() {
42
- return this.currentInstanceId ||= n(!0), this.currentInstanceId;
42
+ return this.currentInstanceId ||= t(!0), this.currentInstanceId;
43
43
  }
44
44
  async load(e, t) {
45
45
  if (!this.isRendererReady) {
@@ -52,14 +52,14 @@ var b = class extends v {
52
52
  await super.load(e, t);
53
53
  }
54
54
  async ensureRendererReady() {
55
- let e = await this.owner.services.get("themeProvider"), n;
56
- e ? (n = e.getCurrentTheme(), this.themeApplier.applyTheme(n)) : n = new t(), this.themeApplier.applyTheme(n), this.rendererViewport.applyCssVariables();
55
+ let e = await this.owner.services.get("themeProvider"), t;
56
+ e ? (t = e.getCurrentTheme(), this.themeApplier.applyTheme(t)) : t = new r(), this.themeApplier.applyTheme(t), this.rendererViewport.applyCssVariables();
57
57
  }
58
58
  bindEvents() {
59
- this.owner.events.on(r.OptionsChange, this.onOptionsChange), this.owner.events.on(r.PdfScaleChanging, this.onScaleChanging), this.documentEventBridge.bind(), this.viewerEvents.bind(), this.zoomInputController.bind(), this.keyboardController.bind();
59
+ this.owner.events.on(e.OptionsChange, this.onOptionsChange), this.owner.events.on(e.PdfScaleChanging, this.onScaleChanging), this.documentEventBridge.bind(), this.viewerEvents.bind(), this.zoomInputController.bind(), this.keyboardController.bind();
60
60
  }
61
61
  unbindEvents() {
62
- this.owner.events.off(r.OptionsChange, this.onOptionsChange), this.owner.events.off(r.PdfScaleChanging, this.onScaleChanging), this.documentEventBridge.unbind(), this.viewerEvents.unbind(), this.zoomInputController.unbind(), this.keyboardController.unbind();
62
+ this.owner.events.off(e.OptionsChange, this.onOptionsChange), this.owner.events.off(e.PdfScaleChanging, this.onScaleChanging), this.documentEventBridge.unbind(), this.viewerEvents.unbind(), this.zoomInputController.unbind(), this.keyboardController.unbind();
63
63
  }
64
64
  buildDest(e, t) {
65
65
  return this.destinationBuilder.buildDest(e, t);
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../kernal/web/BrowserCapabilities.cjs"),n=require("../../../kernal/Theme.cjs"),r=require("../../../kernal/EventNames.cjs"),i=require("../../../kernal/common/text.cjs");let a=require("../../../pdfjs/legacy/build/pdf.mjs");a=e.__toESM(a,1);let o=require("perfect-debounce");var s=class e{static{this.svgClassName=`custom-text-layer`}constructor(s,c){this.SVG_NS=`http://www.w3.org/2000/svg`,this.pageTasks=[],this.builtPages=new Map,this.textContentCache=new Map,this.isScrolling=!1,this.scrollingTimer=null,this.disposed=!1,this.batchSize=64,this.measureContext=null,this.isFirefox=t.BrowserCapabilities.isFirefox(),this.isSafari=t.BrowserCapabilities.isSafari(),this.renderLoopPromise=null,this.onReaderOriginalScroll=()=>{this.isScrolling=!0,this.scrollingTimer&&clearTimeout(this.scrollingTimer),this.scrollingTimer=setTimeout(async()=>{this.isScrolling=!1,await this.delayRenderVisiblePageTexts()},500)},this.onPageChange=async()=>{await this.delayRenderVisiblePageTexts()},this.getVisiblePageIdSet=()=>{let e=this.renderer.getVisibleDocuments(),t=new Set;for(let n=0;n<e.length;n++)t.add(e[n].pageNumber);return t},this.renderVisiblePageTexts=async()=>{if(!this.disposed&&!this.isScrolling){let e=this.getVisiblePageIdSet();this.removeInvisibleBuiltPages(e),await this.appendSvgs([...e])}},this.delayRenderVisiblePageTexts=(0,o.debounce)(this.renderVisiblePageTexts,1),this.onPageRendered=async()=>{let e=this.getVisiblePageIdSet();this.removeInvisibleBuiltPages(e),await this.delayRenderVisiblePageTexts()},this.removeInvisibleBuiltPages=e=>{for(let t of[...this.builtPages.keys()])e.has(t)||this.removePageSvg(t);this.pruneInvisibleTasks(e)},this.removePageSvg=e=>{let t=this.builtPages.get(e);if(t?.parentElement)t.parentElement.removeChild(t);else{let t=this.getTextLayerContainer(e);t?.parentElement?.removeChild(t)}this.builtPages.delete(e)},this.pruneInvisibleTasks=e=>{let t=0;for(let n=0;n<this.pageTasks.length;n++)e.has(this.pageTasks[n].pageNumber)&&(this.pageTasks[t++]=this.pageTasks[n]);this.pageTasks.length=t},this.getMeasureContext=()=>{if(!this.measureContext){let e=document.createElement(`canvas`);this.measureContext=e.getContext(`2d`)}return this.measureContext},this.ensureTextContent=async e=>{let t=this.textContentCache.get(e);if(t)return t;let n=this.renderer.getPageView(e);if(!n?.pdfPage)return null;let r=await n.pdfPage.getTextContent({disableNormalization:!0});return this.textContentCache.set(e,r),r},this.appendSvg=async e=>{let t=this.renderer.getPageView(e);if(!t||this.options.textLayerMode!=2||!t.canvas?.parentElement)return;t.canvas.parentElement.style.background=`var(${n.Theme.ContentBackground})`;let i=this.getTextLayerContainer(t);if(i){let t=i.getAttribute(`data-state`);if(t==`loading`||t==`loaded`){this.builtPages.set(e,i);return}}if(!i){if(i=await this.buildSVG(t.viewport),!i)return;t.div.appendChild(i)}this.builtPages.set(e,i),await this.appendTexts(i,e);let a=this.renderer.getDocument((e-1).toString());this.renderer.owner.events.emit(r.EventNames.PdfPageTextRendered,a,e)},this.appendSvgs=async e=>{await Promise.all(e.map(e=>this.ensureTextContent(e)));for(let t of e)await this.appendSvg(t)},this.appendTexts=async(e,t)=>{let n=this.renderer.getPageView(t);if(!n?.pdfPage)return;let r=await this.ensureTextContent(t);if(!r)return;let i=r.items.length,a=Math.ceil(i/this.batchSize)||0,o=i%this.batchSize,s=this.getVisiblePageIdSet();this.pruneInvisibleTasks(s);let c=!1;for(let n of this.pageTasks)n.pageNumber==t&&(n.svg=e,c=!0);if(!c&&a>0)for(let i=0;i<a;i++){let s=this.batchSize;i==a-1&&o>0&&(s=o),this.pageTasks.push({svg:e,batchLength:a,current:i,pageNumber:t,textContent:r,viewportTransform:n.viewport.transform,start:i*this.batchSize,size:s})}await this.renderSvgTexts()},this.renderSvgTexts=async()=>{if(this.renderLoopPromise){await this.renderLoopPromise,this.pageTasks.length>0&&!this.renderLoopPromise&&await this.renderSvgTexts();return}this.renderLoopPromise=this.runRenderLoop();try{await this.renderLoopPromise}finally{this.renderLoopPromise=null}this.pageTasks.length>0&&!this.isScrolling&&!this.disposed&&await this.renderSvgTexts()},this.runRenderLoop=async()=>{for(;this.pageTasks.length>0;){if(this.disposed)return;if(this.isScrolling){let e=this.pageTasks[0];e.svg.getAttribute(`data-state`)!=`pause`&&e.svg.setAttribute(`data-state`,`pause`);return}let e=this.pageTasks.shift();if(e?.svg.parentElement){if(e.svg.getAttribute(`data-state`)!=`loading`&&e.svg.setAttribute(`data-state`,`loading`),await t.BrowserCapabilities.yieldToMain(),this.disposed||!this.renderer.owner.context)return;await this.appendPartialText(e.pageNumber,e.svg,e.viewportTransform,e.textContent,e.start,e.size),e.batchLength-1==e.current&&e.svg.setAttribute(`data-state`,`loaded`)}}},this.calcTextWidth=(e,t,n,r,a)=>{let o=i.getByteLength(t)-t.length;return e.font=t.length<=2&&o==0?a==`monospace`?`1px `+n+`,sans-serif`:`1px `+n+`,`+r:`1px `+r,e.measureText(t).width},this.applyOrientedTextScale=(e,t,n,r,i,o,s)=>{let c=o?a.Util.transform(e,o):e,l=o?a.Util.transform(t,o):t,u=n*(l[0]==0?Math.abs(l[1]):Math.abs(l[0])),d=u>0?r/u/i:1;return c=a.Util.transform(c,[d,0,0,d,0,0]),s?a.Util.transform(c,s):c},this.extractFontSizeFromTransform=(e,t)=>{let n=Math.hypot(e[0],e[1]);return n>1e-6?{tx:[e[0]/n,e[1]/n,e[2]/n,e[3]/n,e[4],e[5]],fontSize:Math.max(t*n,1)}:{tx:e,fontSize:1}},this.appendPartialText=async(e,t,n,r,i,o)=>{let s=this.getMeasureContext();if(!s)return;let c=this.isFirefox,l=this.isSafari,u=document.createDocumentFragment(),d=this.renderer.getRendererContainer().ownerDocument,f=this.renderer.owner.context?.id??`pdf`,p=new Map,m=[1,0,0,-1,0,0],h=[0,-1,1,0,0,0],g=[0,1,-1,0,0,0],_=[-1,0,0,-1,0,0],v=[0,1,-1,0,0,0],y=[0,-1,1,0,0,0];for(let t=i;t<i+o;t++){let i=r.items[t];if(!i||typeof i.str!=`string`)continue;let o=i.str,b=r.styles[i.fontName];if(!b)continue;let x=a.Util.transform(a.Util.transform(n,i.transform),m),S=Math.atan2(i.transform[1],i.transform[0])*(180/Math.PI);b.vertical&&(S+=90);let C=S<0?S+360:S;C=Math.round(C);let w=p.get(b.fontFamily);if(w===void 0&&(w=b.fontFamily.replace(/^serif/,`Times`),p.set(b.fontFamily,w)),o.length>0){let e=i.textMetricsWidth;switch(e||(e=this.calcTextWidth(s,o,i.fontName,w,b.fontName),i.textMetricsWidth=e),C){case 90:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,h,g);break;case 180:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,_,_);break;case 270:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,v,y);break;default:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,null,null)}}let T=`p-`+f+`-`+e+`-t-`+t;if(c||l){let e=this.extractFontSizeFromTransform(x,12);x=e.tx;let n=e.fontSize,r=d.createElementNS(this.SVG_NS,`svg:g`);r.setAttribute(`transform`,`matrix(`+x.join(` `)+`)`),r.setAttribute(`style`,`font-family:`+w+`;`);let i=d.createElementNS(this.SVG_NS,`svg:text`);i.setAttribute(`font-size`,n+`px`),l&&(i.setAttribute(`transform`,`translate(0,-`+n+`)`),i.setAttribute(`x`,`0`),i.setAttribute(`y`,n.toString())),i.textContent=o,i.setAttribute(`id`,T),i.setAttribute(`data-text-index`,String(t)),r.appendChild(i),u.appendChild(r)}else{let e=d.createElementNS(this.SVG_NS,`svg:text`);e.setAttribute(`transform`,`matrix(`+x.join(` `)+`)`),e.setAttribute(`style`,`font-size:12px;font-family:`+w+`;`),e.textContent=o,e.setAttribute(`id`,T),e.setAttribute(`data-text-index`,String(t)),u.appendChild(e)}}t.appendChild(u)},this.buildSVG=async t=>{if(t.width<=0||t.height<=0)return null;let n=this.renderer.getRendererContainer().ownerDocument.createElementNS(this.SVG_NS,`svg:svg`);return n.setAttribute(`version`,`1.1`),n.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),n.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`),n.setAttribute(`class`,e.svgClassName),n.setAttribute(`data-loaded`,`false`),n.setAttribute(`style`,`fill:transparent;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;contain:size layout paint;`),n},this.renderer=s,this.options=c}async initialize(){this.bindEvents()}bindEvents(){let e=this.renderer.owner.events;e.on(r.EventNames.PdfPageRendered,this.onPageRendered),e.on(r.EventNames.PageChange,this.onPageChange),e.on(r.EventNames.ReaderOriginalScroll,this.onReaderOriginalScroll)}unbindEvents(){let e=this.renderer.owner.events;e.off(r.EventNames.PdfPageRendered,this.onPageRendered),e.off(r.EventNames.PageChange,this.onPageChange),e.off(r.EventNames.ReaderOriginalScroll,this.onReaderOriginalScroll)}async dispose(){this.disposed=!0,this.unbindEvents(),this.scrollingTimer&&=(clearTimeout(this.scrollingTimer),null),this.pageTasks.length=0,this.builtPages.clear(),this.textContentCache.clear(),this.measureContext=null,this.renderLoopPromise=null}getTextLayerContainer(t){let n=e.svgClassName;return typeof t==`number`?this.builtPages.get(t)??this.renderer.getPageView(t)?.div?.querySelector(`svg.${n}`)??null:`tagName`in t?t.querySelector(`svg.${n}`):t.div?.querySelector(`svg.${n}`)??null}};exports.PdfSvgBuilder=s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../kernal/EventNames.cjs"),n=require("../../../kernal/web/BrowserCapabilities.cjs"),r=require("../../../kernal/common/text.cjs"),i=require("../../../kernal/Theme.cjs"),a=require("../../../kernal/web/scheduler.cjs");let o=require("../../../pdfjs/legacy/build/pdf.mjs");o=e.__toESM(o,1);let s=require("perfect-debounce");var c=class e{static{this.svgClassName=`custom-text-layer`}constructor(c,l){this.SVG_NS=`http://www.w3.org/2000/svg`,this.pageTasks=[],this.builtPages=new Map,this.textContentCache=new Map,this.isScrolling=!1,this.scrollingTimer=null,this.disposed=!1,this.batchSize=64,this.measureContext=null,this.isFirefox=n.BrowserCapabilities.isFirefox(),this.isSafari=n.BrowserCapabilities.isSafari(),this.renderLoopPromise=null,this.onReaderOriginalScroll=()=>{this.isScrolling=!0,this.scrollingTimer&&clearTimeout(this.scrollingTimer),this.scrollingTimer=setTimeout(async()=>{this.isScrolling=!1,await this.delayRenderVisiblePageTexts()},500)},this.onPageChange=async()=>{await this.delayRenderVisiblePageTexts()},this.getVisiblePageIdSet=()=>{let e=this.renderer.getVisibleDocuments(),t=new Set;for(let n=0;n<e.length;n++)t.add(e[n].pageNumber);return t},this.renderVisiblePageTexts=async()=>{if(!this.disposed&&!this.isScrolling){let e=this.getVisiblePageIdSet();this.removeInvisibleBuiltPages(e),await this.appendSvgs([...e])}},this.delayRenderVisiblePageTexts=(0,s.debounce)(this.renderVisiblePageTexts,1),this.onPageRendered=async()=>{let e=this.getVisiblePageIdSet();this.removeInvisibleBuiltPages(e),await this.delayRenderVisiblePageTexts()},this.removeInvisibleBuiltPages=e=>{for(let t of[...this.builtPages.keys()])e.has(t)||this.removePageSvg(t);this.pruneInvisibleTasks(e)},this.removePageSvg=e=>{let t=this.builtPages.get(e);if(t?.parentElement)t.parentElement.removeChild(t);else{let t=this.getTextLayerContainer(e);t?.parentElement?.removeChild(t)}this.builtPages.delete(e)},this.pruneInvisibleTasks=e=>{let t=0;for(let n=0;n<this.pageTasks.length;n++)e.has(this.pageTasks[n].pageNumber)&&(this.pageTasks[t++]=this.pageTasks[n]);this.pageTasks.length=t},this.getMeasureContext=()=>{if(!this.measureContext){let e=document.createElement(`canvas`);this.measureContext=e.getContext(`2d`)}return this.measureContext},this.ensureTextContent=async e=>{let t=this.textContentCache.get(e);if(t)return t;let n=this.renderer.getPageView(e);if(!n?.pdfPage)return null;let r=await n.pdfPage.getTextContent({disableNormalization:!0});return this.textContentCache.set(e,r),r},this.appendSvg=async e=>{let n=this.renderer.getPageView(e);if(!n||this.options.textLayerMode!=2||!n.canvas?.parentElement)return;n.canvas.parentElement.style.background=`var(${i.Theme.ContentBackground})`;let r=this.getTextLayerContainer(n);if(r){let t=r.getAttribute(`data-state`);if(t==`loading`||t==`loaded`){this.builtPages.set(e,r);return}}if(!r){if(r=await this.buildSVG(n.viewport),!r)return;n.div.appendChild(r)}this.builtPages.set(e,r),await this.appendTexts(r,e);let a=this.renderer.getDocument((e-1).toString());this.renderer.owner.events.emit(t.EventNames.PdfPageTextRendered,a,e)},this.appendSvgs=async e=>{await Promise.all(e.map(e=>this.ensureTextContent(e)));for(let t of e)await this.appendSvg(t)},this.appendTexts=async(e,t)=>{let n=this.renderer.getPageView(t);if(!n?.pdfPage)return;let r=await this.ensureTextContent(t);if(!r)return;let i=r.items.length,a=Math.ceil(i/this.batchSize)||0,o=i%this.batchSize,s=this.getVisiblePageIdSet();this.pruneInvisibleTasks(s);let c=!1;for(let n of this.pageTasks)n.pageNumber==t&&(n.svg=e,c=!0);if(!c&&a>0)for(let i=0;i<a;i++){let s=this.batchSize;i==a-1&&o>0&&(s=o),this.pageTasks.push({svg:e,batchLength:a,current:i,pageNumber:t,textContent:r,viewportTransform:n.viewport.transform,start:i*this.batchSize,size:s})}await this.renderSvgTexts()},this.renderSvgTexts=async()=>{if(this.renderLoopPromise){await this.renderLoopPromise,this.pageTasks.length>0&&!this.renderLoopPromise&&await this.renderSvgTexts();return}this.renderLoopPromise=this.runRenderLoop();try{await this.renderLoopPromise}finally{this.renderLoopPromise=null}this.pageTasks.length>0&&!this.isScrolling&&!this.disposed&&await this.renderSvgTexts()},this.runRenderLoop=async()=>{for(;this.pageTasks.length>0;){if(this.disposed)return;if(this.isScrolling){let e=this.pageTasks[0];e.svg.getAttribute(`data-state`)!=`pause`&&e.svg.setAttribute(`data-state`,`pause`);return}let e=this.pageTasks.shift();if(e?.svg.parentElement){if(e.svg.getAttribute(`data-state`)!=`loading`&&e.svg.setAttribute(`data-state`,`loading`),await a.yieldToMain(),this.disposed||!this.renderer.owner.context)return;await this.appendPartialText(e.pageNumber,e.svg,e.viewportTransform,e.textContent,e.start,e.size),e.batchLength-1==e.current&&e.svg.setAttribute(`data-state`,`loaded`)}}},this.calcTextWidth=(e,t,n,i,a)=>{let o=r.getByteLength(t)-t.length;return e.font=t.length<=2&&o==0?a==`monospace`?`1px `+n+`,sans-serif`:`1px `+n+`,`+i:`1px `+i,e.measureText(t).width},this.applyOrientedTextScale=(e,t,n,r,i,a,s)=>{let c=a?o.Util.transform(e,a):e,l=a?o.Util.transform(t,a):t,u=n*(l[0]==0?Math.abs(l[1]):Math.abs(l[0])),d=u>0?r/u/i:1;return c=o.Util.transform(c,[d,0,0,d,0,0]),s?o.Util.transform(c,s):c},this.extractFontSizeFromTransform=(e,t)=>{let n=Math.hypot(e[0],e[1]);return n>1e-6?{tx:[e[0]/n,e[1]/n,e[2]/n,e[3]/n,e[4],e[5]],fontSize:Math.max(t*n,1)}:{tx:e,fontSize:1}},this.appendPartialText=async(e,t,n,r,i,a)=>{let s=this.getMeasureContext();if(!s)return;let c=this.isFirefox,l=this.isSafari,u=document.createDocumentFragment(),d=this.renderer.getRendererContainer().ownerDocument,f=this.renderer.owner.context?.id??`pdf`,p=new Map,m=[1,0,0,-1,0,0],h=[0,-1,1,0,0,0],g=[0,1,-1,0,0,0],_=[-1,0,0,-1,0,0],v=[0,1,-1,0,0,0],y=[0,-1,1,0,0,0];for(let t=i;t<i+a;t++){let i=r.items[t];if(!i||typeof i.str!=`string`)continue;let a=i.str,b=r.styles[i.fontName];if(!b)continue;let x=o.Util.transform(o.Util.transform(n,i.transform),m),S=Math.atan2(i.transform[1],i.transform[0])*(180/Math.PI);b.vertical&&(S+=90);let C=S<0?S+360:S;C=Math.round(C);let w=p.get(b.fontFamily);if(w===void 0&&(w=b.fontFamily.replace(/^serif/,`Times`),p.set(b.fontFamily,w)),a.length>0){let e=i.textMetricsWidth;switch(e||(e=this.calcTextWidth(s,a,i.fontName,w,b.fontName),i.textMetricsWidth=e),C){case 90:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,h,g);break;case 180:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,_,_);break;case 270:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,v,y);break;default:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,null,null)}}let T=`p-`+f+`-`+e+`-t-`+t;if(c||l){let e=this.extractFontSizeFromTransform(x,12);x=e.tx;let n=e.fontSize,r=d.createElementNS(this.SVG_NS,`svg:g`);r.setAttribute(`transform`,`matrix(`+x.join(` `)+`)`),r.setAttribute(`style`,`font-family:`+w+`;`);let i=d.createElementNS(this.SVG_NS,`svg:text`);i.setAttribute(`font-size`,n+`px`),l&&(i.setAttribute(`transform`,`translate(0,-`+n+`)`),i.setAttribute(`x`,`0`),i.setAttribute(`y`,n.toString())),i.textContent=a,i.setAttribute(`id`,T),i.setAttribute(`data-text-index`,String(t)),r.appendChild(i),u.appendChild(r)}else{let e=d.createElementNS(this.SVG_NS,`svg:text`);e.setAttribute(`transform`,`matrix(`+x.join(` `)+`)`),e.setAttribute(`style`,`font-size:12px;font-family:`+w+`;`),e.textContent=a,e.setAttribute(`id`,T),e.setAttribute(`data-text-index`,String(t)),u.appendChild(e)}}t.appendChild(u)},this.buildSVG=async t=>{if(t.width<=0||t.height<=0)return null;let n=this.renderer.getRendererContainer().ownerDocument.createElementNS(this.SVG_NS,`svg:svg`);return n.setAttribute(`version`,`1.1`),n.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),n.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`),n.setAttribute(`class`,e.svgClassName),n.setAttribute(`data-loaded`,`false`),n.setAttribute(`style`,`fill:transparent;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;contain:size layout paint;`),n},this.renderer=c,this.options=l}async initialize(){this.bindEvents()}bindEvents(){let e=this.renderer.owner.events;e.on(t.EventNames.PdfPageRendered,this.onPageRendered),e.on(t.EventNames.PageChange,this.onPageChange),e.on(t.EventNames.ReaderOriginalScroll,this.onReaderOriginalScroll)}unbindEvents(){let e=this.renderer.owner.events;e.off(t.EventNames.PdfPageRendered,this.onPageRendered),e.off(t.EventNames.PageChange,this.onPageChange),e.off(t.EventNames.ReaderOriginalScroll,this.onReaderOriginalScroll)}async dispose(){this.disposed=!0,this.unbindEvents(),this.scrollingTimer&&=(clearTimeout(this.scrollingTimer),null),this.pageTasks.length=0,this.builtPages.clear(),this.textContentCache.clear(),this.measureContext=null,this.renderLoopPromise=null}getTextLayerContainer(t){let n=e.svgClassName;return typeof t==`number`?this.builtPages.get(t)??this.renderer.getPageView(t)?.div?.querySelector(`svg.${n}`)??null:`tagName`in t?t.querySelector(`svg.${n}`):t.div?.querySelector(`svg.${n}`)??null}};exports.PdfSvgBuilder=c;