@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
@@ -1,77 +1,151 @@
1
- import { BrowserCapabilities as e } from "../../../../kernal/web/BrowserCapabilities.mjs";
2
- import { EventNames as t } from "../../../../kernal/EventNames.mjs";
3
- import { asyncDebounce as n } from "../../../../kernal/Debounce.mjs";
1
+ import { EventNames as e } from "../../../../kernal/EventNames.mjs";
2
+ import { yieldToMain as t } from "../../../../kernal/web/scheduler.mjs";
3
+ import { asyncDebounce as n } from "../../../../kernal/web/debounce.mjs";
4
+ import { HtmlSettings as r } from "../../HtmlSettings.mjs";
5
+ import { pickVisibleCompensationDocument as i } from "../layout/geometry/restoreLayoutState.mjs";
6
+ import { getLayoutGeometry as a } from "../layout/resolveLayoutRoute.mjs";
7
+ import { isProgrammaticScroll as o, isUserScrollSettling as s, markUserScroll as c, releaseAbsoluteLocate as l } from "../location/scrollActivity.mjs";
8
+ import { collectPreloadNeighbors as u } from "./preloadNeighbors.mjs";
9
+ import { isSubstantialWrapperRect as d, rectsIntersect as f } from "./wrapperVisibility.mjs";
4
10
  //#region mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.ts
5
- var r = class {
6
- constructor(e, t, r, i) {
7
- this.events = e, this.documentsProvider = t, this.getLoadingDocument = r, this.htmlOptions = i, this.onDocumentVisibleChange = async (e, t) => {
8
- await this.delayPreloadDocuments();
9
- }, this.delayPreloadDocuments = n(this.preloadDocuments, 500), this.checkContainFullscreenElement = (e) => !!e?.getContentContainer()?.ownerDocument?.fullscreenElement, this.bindEvents();
11
+ var p = 160, m = (e, t) => e === t.scrollingElement || e === t.documentElement || e === t.body, h = class {
12
+ constructor(e, t, i, u) {
13
+ this.events = e, this.documentsProvider = t, this.getLoadingDocument = i, this.htmlOptions = u, this.preloadToken = 0, this.onDocumentVisibleChange = () => {
14
+ o() || this.schedulePreload();
15
+ }, this.onReaderScroll = (e, t) => {
16
+ o() || t && !t.isTrusted || (c(), l(), this.schedulePreload());
17
+ }, this.onPageChange = () => {
18
+ this.schedulePreload();
19
+ }, this.preloadDocuments = async () => {
20
+ if (this.isPageMoving()) {
21
+ this.preloadToken++, this.delayPreloadAfterMove();
22
+ return;
23
+ }
24
+ let e = ++this.preloadToken;
25
+ try {
26
+ let t = this.resolveVisibleDocuments(), n = a(this.htmlOptions).preloadRangeMode == "visual-edge", r = n ? this.resolvePreloadAnchor(t) : t[0], i = n ? r : t[t.length - 1];
27
+ if (!r || !i) return;
28
+ let o = t.length > 0 ? t : [r];
29
+ for (let t of o) {
30
+ if (this.shouldAbortPreload(e)) return;
31
+ await t.load();
32
+ }
33
+ if (this.shouldAbortPreload(e)) return;
34
+ await this.preloadRelatedDocuments(r, i, e);
35
+ } catch {}
36
+ }, this.delayPreloadDocuments = n(() => this.preloadDocuments(), 500), this.delayPreloadAfterMove = n(() => this.preloadDocuments(), 80), this.schedulePreload = () => {
37
+ if (this.abortPreloadIfPageMoving(), this.isPageMoving()) {
38
+ this.delayPreloadAfterMove();
39
+ return;
40
+ }
41
+ this.delayPreloadDocuments();
42
+ }, this.shouldPreloadPreviousFirst = () => {
43
+ let e = this.documentsProvider.owner?.context?.currentLocation?.direction;
44
+ return a(this.htmlOptions).preloadRangeMode == "page-fill" ? e != "next" : e == "previous";
45
+ }, this.isPageMoving = () => !!(this.documentsProvider.getRendererContainer()?.querySelector?.(`.${r.TransformContainerCssName}`))?.hasAttribute(r.PageMovingAttributeName), this.isScrollSettling = () => a(this.htmlOptions).flipMode == "scroll" && s(), this.abortPreloadIfPageMoving = () => {
46
+ this.isPageMoving() && this.preloadToken++;
47
+ }, this.shouldAbortPreload = (e) => e === this.preloadToken ? this.isPageMoving() ? (this.preloadToken++, !0) : !1 : !0, this.checkContainFullscreenElement = (e) => !!e?.getContentContainer()?.ownerDocument?.fullscreenElement, this.bindEvents();
10
48
  }
11
49
  bindEvents() {
12
- this.events.on(t.DocumentVisibleChange, this.onDocumentVisibleChange);
50
+ this.events.on(e.DocumentVisibleChange, this.onDocumentVisibleChange), this.events.on(e.ReaderDebounceScroll, this.onReaderScroll), this.events.on(e.PageChange, this.onPageChange);
13
51
  }
14
52
  unbindEvents() {
15
- this.events.off(t.DocumentVisibleChange, this.onDocumentVisibleChange);
53
+ this.events.off(e.DocumentVisibleChange, this.onDocumentVisibleChange), this.events.off(e.ReaderDebounceScroll, this.onReaderScroll), this.events.off(e.PageChange, this.onPageChange);
16
54
  }
17
55
  async dispose() {
18
- this.unbindEvents();
56
+ this.preloadToken++, this.unbindEvents();
57
+ }
58
+ resolveVisibleDocuments() {
59
+ let e = a(this.htmlOptions);
60
+ return e.preloadRangeMode == "visible-span" ? this.resolveIntersectingDocuments(!1) : e.rewritesWrapperVisibility ? this.resolveIntersectingDocuments(!0) : this.documentsProvider.getVisibleDocuments();
61
+ }
62
+ resolveIntersectingDocuments(e) {
63
+ let t = this.getViewportRect();
64
+ if (!t) {
65
+ let t = this.documentsProvider.getVisibleDocuments();
66
+ return e ? t.filter((e) => d(e.getWrapperContainer()?.getBoundingClientRect())) : t;
67
+ }
68
+ let n = [];
69
+ for (let r of this.documentsProvider.getDocuments()) {
70
+ let i = r.getWrapperContainer();
71
+ if (!i) continue;
72
+ let a = i.getBoundingClientRect(), o = f(a, t) && (!e || d(a));
73
+ i.isVisible = o, o && n.push(r);
74
+ }
75
+ return n;
19
76
  }
20
- async preloadDocuments() {
21
- try {
22
- let e = this.documentsProvider.getVisibleDocuments();
23
- if (!e || e.length == 0) return;
24
- for (let t of e) await t.load();
25
- await this.preloadRelatedDocuments(e[0], e[e.length - 1]);
26
- } catch {}
77
+ resolvePreloadAnchor(e) {
78
+ let t = a(this.htmlOptions);
79
+ return i(e, t.compensationAnchorEdge, (e) => {
80
+ let n = e.getWrapperContainer()?.getBoundingClientRect();
81
+ if (!(!n || !d(n))) return t.getCompensationRect(n);
82
+ }) ?? this.documentsProvider.getDocuments()[0];
27
83
  }
28
- async preloadRelatedDocuments(t, n) {
29
- let r = this.documentsProvider.getDocuments(), i = r.indexOf(t), a = r.indexOf(n), o = r.length, s = [];
30
- for (let e = i; e <= a; e++) {
31
- let t = r[e];
32
- t && !s.includes(t) && s.push(t);
84
+ getViewportRect() {
85
+ let e = this.documentsProvider.getScrollElement(), t = this.documentsProvider.getRendererContainer(), n = (e ?? t)?.ownerDocument;
86
+ if (e && n && m(e, n)) {
87
+ let e = n.defaultView;
88
+ return e ? {
89
+ left: 0,
90
+ top: 0,
91
+ right: e.innerWidth,
92
+ bottom: e.innerHeight
93
+ } : void 0;
33
94
  }
34
- let c = [], l = this.htmlOptions.preloadFileCount;
35
- l > 10 && (l = 10), l < 1 && (l = 1);
36
- for (let e = 1; e <= l; e++) {
37
- let t = a + e;
38
- t > 0 && t <= o - 1 && c.push(r[t]);
39
- let n = i - e;
40
- n >= 0 && c.push(r[n]);
95
+ return (e ?? t)?.getBoundingClientRect();
96
+ }
97
+ async preloadRelatedDocuments(e, n, r) {
98
+ let i = this.documentsProvider.getDocuments(), o = i.indexOf(e), s = i.indexOf(n), c = i.length, l = [];
99
+ for (let e = o; e <= s; e++) {
100
+ let t = i[e];
101
+ t && !l.includes(t) && l.push(t);
41
102
  }
42
- for (let t = 0; t < c.length; t++) {
43
- let n = c[t];
44
- await n.load(), n && !s.includes(n) && s.push(n), await e.yieldToMain();
103
+ let f = u(i, o, s, this.htmlOptions.preloadFileCount, this.shouldPreloadPreviousFirst());
104
+ for (let e = 0; e < f.length; e++) {
105
+ if (this.shouldAbortPreload(r)) return;
106
+ let n = f[e];
107
+ await n.load(), n && !l.includes(n) && l.push(n), await t();
45
108
  }
46
- let u = this.documentsProvider.getRendererContainer().clientWidth;
47
- if (this.htmlOptions.flipMode == "page") {
48
- let t = 0;
49
- for (let n = i - 1; n >= 0; n--) {
50
- let i = r[n];
51
- if (await i.load(), i && !s.includes(i) && s.push(i), t += i.getWrapperContainer().clientWidth, t >= u) break;
52
- await e.yieldToMain();
109
+ let p = this.documentsProvider.getRendererContainer().clientWidth;
110
+ if (a(this.htmlOptions).preloadRangeMode == "page-fill") {
111
+ let e = 0;
112
+ for (let n = o - 1; n >= 0; n--) {
113
+ if (this.shouldAbortPreload(r)) return;
114
+ let a = i[n];
115
+ if (await a.load(), a && !l.includes(a) && l.push(a), e += a.getWrapperContainer().clientWidth, e >= p) break;
116
+ await t();
53
117
  }
54
118
  let n = 0;
55
- for (let t = a + 1; t < o - 1; t++) {
56
- let i = r[t];
57
- if (await i.load(), i && !s.includes(i) && s.push(i), n += i.getWrapperContainer().clientWidth, n >= u) break;
58
- await e.yieldToMain();
119
+ for (let e = s + 1; e < c; e++) {
120
+ if (this.shouldAbortPreload(r)) return;
121
+ let a = i[e];
122
+ if (await a.load(), a && !l.includes(a) && l.push(a), n += a.getWrapperContainer().clientWidth, n >= p) break;
123
+ await t();
59
124
  }
60
125
  }
61
- let d = this.getLoadingDocument();
62
- d && !s.includes(d) && s.push(d);
63
- let f = this.documentsProvider.getVisibleDocuments();
64
- for (let e of f) s.includes(e) || s.push(e);
65
- await this.removeUnnecessaryDocuments(s), s.splice(0);
126
+ let m = this.getLoadingDocument();
127
+ m && !l.includes(m) && l.push(m), l.includes(e) || l.push(e);
128
+ let h = a(this.htmlOptions).preloadRangeMode == "visual-edge" ? this.documentsProvider.getVisibleDocuments().filter((e) => d(e.getWrapperContainer()?.getBoundingClientRect())) : this.documentsProvider.getVisibleDocuments();
129
+ for (let e of h) l.includes(e) || l.push(e);
130
+ if (!this.shouldAbortPreload(r)) {
131
+ if (this.isScrollSettling()) {
132
+ this.delayPreloadAfterMove();
133
+ return;
134
+ }
135
+ await this.removeUnnecessaryDocuments(l, r), l.splice(0);
136
+ }
66
137
  }
67
- async removeUnnecessaryDocuments(t) {
68
- if (!t) return;
69
- let n = this.documentsProvider.getLoadedDocuments();
70
- for (let r of n) t.includes(r) || (await this.disposeDocument(r), await e.yieldToMain());
138
+ async removeUnnecessaryDocuments(e, n) {
139
+ if (!e) return;
140
+ let r = this.documentsProvider.getLoadedDocuments();
141
+ for (let i of r) {
142
+ if (this.shouldAbortPreload(n)) return;
143
+ e.includes(i) || (await this.disposeDocument(i), await t());
144
+ }
71
145
  }
72
146
  async disposeDocument(e) {
73
147
  this.checkContainFullscreenElement(e) || await e.dispose();
74
148
  }
75
149
  };
76
150
  //#endregion
77
- export { r as HtmlDocumentsPreloader };
151
+ export { h as HtmlDocumentsPreloader, p as SCROLL_PRELOAD_SETTLE_MS };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/progress/Progress.cjs");require("../../../../kernal/Constants.cjs");const r=require("../../../../kernal/common/number.cjs"),i=require("../../../../kernal/html/finder.cjs"),a=require("../../../../kernal/html/dom.cjs"),o=require("../../../../kernal/html/style.cjs"),s=require("../../../../kernal/html/manipulator.cjs"),c=require("../../HtmlSettings.cjs"),l=require("../../../base/renderer/BaseDocumentsProvider.cjs"),u=require("../document/HtmlDocument.cjs"),d=require("./HtmlDocumentsPreloader.cjs"),f=require("./HtmlDocumentsIntersectionObserver.cjs"),p=require("../location/HtmlElementLocator.cjs"),m=require("../layout/HtmlRendererViewport.cjs");let h=require("perfect-debounce");var g=class extends l.BaseDocumentsProvider{constructor(e,n,r,i){super(e,n),this.readerContainer=r,this.htmlOptions=i,this.isInit=!1,this.isFirstLoad=!0,this.hangTasks=[],this.resetTransformContainer=()=>{let e=this.getTransformContainer();e&&(e.style.removeProperty(`transition`),e.style.transform=`translate3d(0px,0,0)`,e.setAttribute(`data-target-transform`,`0`),e.offsetWidth)},this.removeElementTransitionEvent=async e=>{let t=e.target;for(t.style.removeProperty(`transition`),t.style.removeProperty(`will-change`),t.removeAttribute(c.HtmlSettings.PageMovingAttributeName),t.removeEventListener(`transitionend`,this.removeElementTransitionEvent);this.hangTasks.length>0;)await this.hangTasks.shift()()},this.scrollWrapperIntoView=(e,t)=>{let n=e.getWrapperContainer();if(this.htmlOptions.flipMode==`page`){let e=n.offsetLeft,t=this.getTransformContainer();t.style.transform=`translateX(`+-e+`px)`}else(!n.isVisible||t)&&o.scrollElementIntoView(n,void 0,void 0,this.owner.getRootContainer()?.ownerDocument);this.setDocumentVisible(n,!0)},this.setDocumentVisible=(e,t)=>{e.isVisible=t},this.reload=async()=>{let e=this.owner.context.currentLocation;t.isNullOrWhiteSpace(e?.url)||(e.scrollBehavior=`smooth`,await this.load(e,!0),e.scrollBehavior=void 0)},this.delayReloadTime=300,this.delayReload=(0,h.debounce)(this.reload,this.delayReloadTime),this.logger=this.owner.loggerFactory.getLogger(this.constructor.name),this.elementLocator=new p.HtmlElementLocator(this),this.rendererViewport=new m.HtmlRendererViewport(e,this.readerContainer,this.owner.optionsProvider,i),this.documentsIntersectionObserver=new f.HtmlDocumentsIntersectionObserver(this),this.documentPreloader=new d.HtmlDocumentsPreloader(this.owner.events,this,()=>this.loadingDoc,i)}getTransformContainer(){return this.getRendererContainer().querySelector(`.`+c.HtmlSettings.TransformContainerCssName)}getRendererContainer(){return this.rendererViewport.getRendererContainer()}getScrollElement(){return this.rendererViewport.getScrollElement()}getLoadingDocument(){return this.loadingDoc}async createDocument(e,t,n){return new u.HtmlDocument(this.owner,this.rendererViewport,this.fileParser,e,t,this.htmlOptions)}async initialize(e){this.rendererViewport.applyCssVariables(),await super.initialize(e);let t=this.getDocuments();for(let e of t)e.getWrapperContainer().classList.add(c.HtmlSettings.FileContentContainerClassName,c.HtmlSettings.FileContentContainerHeightClassName)}async load(e,t){this.isInit||=(await this.initialize(this.getTransformContainer()),this.documentsIntersectionObserver.register(),!0),e?.storeCurrent&&await this.owner.onBeforeRedirect?.(this),t??=!1;let r=e?.url,i=this.getDocument(r);if(!i){let t=this.getDocuments();i=t[0],(t.length>1||!e)&&(e=new n.FileLocation(i.url,1,`ratio`),e.current=0)}this.htmlOptions.flipMode==`page`?this.appendPageStyles():this.removePageStyles(),this.loadingDoc=i,this.owner.context.redirectingDocUrl=i.url;try{this.delayHideLoadingLayerTimer=setTimeout(async()=>{await this.owner.loading?.hide()},2e3),this.owner.context.setUserChangedProgress(!t,e?.from),await this.gotoDoc(i,e,t),this.isFirstLoad&&!t&&(this.isFirstLoad=!1),await this.documentPreloader.preloadDocuments()}finally{setTimeout(()=>{this.loadingDoc=null,this.owner.context.redirectingDocUrl=void 0},166)}}async gotoDoc(e,n,r){if(!n||(await e.load(),!e.getContentContainer()))return;r??=!1;let a=this.htmlOptions.flipMode,o,c;try{let l=await this.findTarget(e,n);c=l?.target;let u=l?.pageNumber,d=l?.isDocumentStart;if(!c&&!u)return;if(c&&n?.textOffset>=0){let e=c.textContent;if(n?.textOffset<e.length&&e.length<3e3){s.wrapperCharacters(c,`m`);let e=c.querySelectorAll(`m`);o=i.compareTagName(c.firstElementChild?.tagName,`ST`)&&c.firstElementChild.getBoundingClientRect().width==0?e.item(c.firstElementChild.textContent.length):e.item(n.textOffset)}}if(o??=c,a==`scroll`)await this.gotoScroll(e,n,o,d);else{if(r&&o&&!t.isNullOrWhiteSpace(n.tagName))this.resetTransformContainer(),u=await e.getPageNumber(o);else if(n.unit===`page`&&n.current!=null&&n.current>0){u=n.current;let t=await e.getNumberOfPages();n.total>1&&n.total!=t&&(u=Math.ceil(t*(n.current/n.total)))}else u||=await e.getPageNumber(o);await this.transformPage(e,u,r?void 0:n.direction)}}finally{c&&s.recoverWrapperCharacters(c)}}async gotoScroll(t,n,r,i){let a=r.getBoundingClientRect(),s=0;n?.ignoreOverlayHeader||(s=this.owner.optionsProvider.getHeaderHeight()+this.owner.options.redirectPositionOffset,r.clientHeight==0&&a.height==0&&(s+=50)),n.offsetTop&&(s+=n.offsetTop);let c=this.getScrollElement(),l=a.y,u=t.getContentContainer().ownerDocument.defaultView?.frameElement,d=u?.getBoundingClientRect()?.y??0,f=l+d,p=c.scrollTop;if(n.useAbsoluteScrollTop){let e=p+f-s;c.scrollTo(0,e)}else if(i)this.scrollWrapperIntoView(t,!0);else{if(e.BrowserCapabilities.isSafari()){o.scrollElementIntoView(t.getWrapperContainer(),void 0,void 0,this.owner.getRootContainer()?.ownerDocument),p=c.scrollTop;let e=u?.offsetTop??0;if(Math.abs(e+l-p)>5){let e=p+t.getWrapperContainer().getBoundingClientRect().y+l;c.scrollTo(0,e)}d=u?.getBoundingClientRect()?.y??0,f=l+d}else s=f-s-c.getBoundingClientRect().top;s>0?c.scrollHeight-c.scrollTop-c.clientHeight>0?c.scrollBy(0,s):o.scrollElementIntoView(r,void 0,n?.scrollIntoViewIfNeeded,this.owner.getRootContainer()?.ownerDocument):c.scrollBy(0,s),this.setDocumentVisible(t.getWrapperContainer(),!0)}}async findTarget(e,t){return this.elementLocator.locateElement(e,t,this.htmlOptions)}async transformPage(e,t,n){let i=this.getTransformContainer(),a=i.getAttribute(`data-target-transform`),s=0;s=a?r.parseNumber(a,0,`parseFloat`):o.getTransformLength(i,`x`);let c=this.rendererViewport.getLayoutMetrics(),l=c.columnWidth+c.columnGap,u=e.getWrapperContainer().offsetLeft,d=Math.abs(u-s),f=d==0?0:d%l,p=s;f>0&&(p=n==`previous`?s-f:s+l-f);let m=p;try{if(n==`previous`){let e=p-c.pageMoveLength>=0,n=u+(t-1)*c.pageMoveLength;m=e?p-c.pageMoveLength:p<=c.pageMoveLength?0:n}else if(n==`next`){m=p+c.pageMoveLength;let e=this.getDocuments(),t=e[e.length-1];if(t.getWrapperContainer().offsetLeft+t.getWrapperContainer().scrollWidth-m<=0)return}else m=u+(t-1)*c.pageMoveLength;m<0&&(m=0);let r=this.htmlOptions.writingMode??`horizontal-tb`;if((this.isVerticalWriting(r)?`y`:`x`)==`x`)!i.style.transition&&this.htmlOptions.flipPageStyle==`slide`&&(n==`next`||n==`previous`)&&(i.style.transition=`transform 0.2s ease`),i.style.transition&&i.addEventListener(`transitionend`,this.removeElementTransitionEvent),i.setAttribute(`data-target-transform`,`${m}`),i.style.transform=`translate3d(-`+parseFloat(m.toFixed(10))+`px,0,0)`;else{i.style.transform=`translateX(`+-u+`px)`;let n=e.getContentContainer().ownerDocument.documentElement,r=o.getTransformLength(n,`y`)+(t-1)*c.columnWidth;n.style.transform=`translateY(-`+parseFloat(r.toFixed(10))+`px)`}this.setCurrentPageNumber(e,t)}finally{}}setCurrentPageNumber(e,t){let n=e.getContentContainer()?.ownerDocument?.documentElement;n&&n.setAttribute(c.HtmlSettings.HtmlDocumentCurrentPagePropertyName,t.toFixed(0))}getCurrentPageNumber(e){let t=e.getContentContainer()?.ownerDocument?.documentElement;if(!t)return 1;let n=t.getAttribute(c.HtmlSettings.HtmlDocumentCurrentPagePropertyName);return r.parseNumber(n,1,`parseInt`)}isVerticalWriting(e){return e==`vertical-lr`||e==`vertical-rl`}appendPageStyles(){this.getRendererContainer().classList.add(c.HtmlSettings.TransformPagesClassName)}removePageStyles(){this.getRendererContainer().classList.remove(c.HtmlSettings.TransformPagesClassName);let e=this.getTransformContainer();e&&e.style.removeProperty(`transform`)}async dispose(){this.delayHideLoadingLayerTimer&&=(clearTimeout(this.delayHideLoadingLayerTimer),null),await this.documentsIntersectionObserver.dispose(),await this.documentPreloader.dispose(),await super.dispose(),this.readerContainer&&a.emptyElement(this.readerContainer),this.isInit=!1}};exports.HtmlDocumentsProvider=g;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/progress/Progress.cjs");require("../../../../kernal/Constants.cjs");const r=require("../../../../kernal/common/number.cjs"),i=require("../../../../kernal/html/finder.cjs"),a=require("../../../../kernal/html/dom.cjs"),o=require("../../../../kernal/web/scheduler.cjs"),s=require("../../../../kernal/html/style.cjs"),c=require("../../../../kernal/html/selection.cjs"),l=require("../../../../kernal/html/geometry.cjs"),u=require("../../../base/renderer/BaseDocumentsProvider.cjs"),d=require("../../HtmlSettings.cjs"),f=require("../layout/resolveLayoutRoute.cjs"),p=require("../location/scrollActivity.cjs"),m=require("../location/remapStoredPageNumber.cjs"),h=require("../document/HtmlDocument.cjs"),g=require("./HtmlDocumentsPreloader.cjs"),_=require("./HtmlDocumentsIntersectionObserver.cjs"),v=require("../location/HtmlElementLocator.cjs"),y=require("../layout/HtmlRendererViewport.cjs"),b=require("../layout/geometry/getLayoutOffsetLeft.cjs");let x=require("perfect-debounce");var S=class extends u.BaseDocumentsProvider{constructor(e,n,r,i){super(e,n),this.readerContainer=r,this.htmlOptions=i,this.isInit=!1,this.isFirstLoad=!0,this.hangTasks=[],this.resetTransformContainer=()=>{let e=this.getTransformContainer();e&&(e.style.removeProperty(`transition`),e.style.transform=`translate3d(0px,0,0)`,e.setAttribute(`data-target-transform`,`0`),e.offsetWidth)},this.removeElementTransitionEvent=async e=>{let t=e.target;for(t.style.removeProperty(`transition`),t.style.removeProperty(`will-change`),t.removeAttribute(d.HtmlSettings.PageMovingAttributeName),t.removeEventListener(`transitionend`,this.removeElementTransitionEvent);this.hangTasks.length>0;)await this.hangTasks.shift()()},this.scrollWrapperIntoView=(e,t)=>{let n=e.getWrapperContainer(),r=f.getLayoutGeometry(this.htmlOptions);if(r.flipMode==`page`){let t=this.rendererViewport.getLayoutMetrics(),i=this.getTransformContainer();if(r.pageAxis==`y`){let e=Math.max(0,n.offsetTop);i.style.transform=r.getPageTranslateCss(e),i.setAttribute(`data-target-transform`,`${e}`)}else{let n=this.getDocumentPageBox(e),a=r.getPageTransformOffset(n,1,t.pageMoveLength);i.style.transform=r.getPageTranslateCss(a),i.setAttribute(`data-target-transform`,`${a}`)}}else(!n.isVisible||t)&&r.alignWrapperToViewport({wrapper:n,scrollElement:this.getScrollElement(),rootDocument:this.owner.getRootContainer()?.ownerDocument});this.setCurrentVisibleDocument(e)},this.setDocumentVisible=(e,t)=>{e.isVisible=t},this.reload=async()=>{let e=this.owner.context.currentLocation;t.isNullOrWhiteSpace(e?.url)||await this.load(e,!0)},this.restoreReadingPosition=async()=>{let e=this.owner.context.currentLocation;if(t.isNullOrWhiteSpace(e?.url))return;let n=this.getDocument(e.url)??this.getFirstVisibleDocument();n&&await this.gotoDoc(n,e,!0)},this.delayRestoreReadingPosition=(0,x.debounce)(this.restoreReadingPosition,100),this.delayReloadTime=300,this.delayReload=(0,x.debounce)(this.reload,this.delayReloadTime),i.documentLanguage=e.context?.metadata?.language,this.logger=this.owner.loggerFactory.getLogger(this.constructor.name),this.elementLocator=new v.HtmlElementLocator(this),this.rendererViewport=new y.HtmlRendererViewport(e,this.readerContainer,this.owner.optionsProvider,i),this.documentsIntersectionObserver=new _.HtmlDocumentsIntersectionObserver(this),this.documentPreloader=new g.HtmlDocumentsPreloader(this.owner.events,this,()=>this.loadingDoc,i)}getTransformContainer(){return this.getRendererContainer().querySelector(`.`+d.HtmlSettings.TransformContainerCssName)}getRendererContainer(){return this.rendererViewport.getRendererContainer()}getScrollElement(){return this.rendererViewport.getScrollElement()}getLoadingDocument(){return this.loadingDoc}getLoadedDocuments(){return this.getDocuments().filter(e=>e.getLoadStatus()==`success`)}getVisibleDocuments(){return this.getDocuments().filter(e=>e.getWrapperContainer()?.isVisible)}getFirstVisibleDocument(e){let t=this.getVisibleDocuments();if(e){let e=t.find(e=>e.getVisibleElements(!0).length>0);if(e)return e}if(t[0])return t[0];let n=this.owner.context.currentLocation?.url;return n&&this.getDocument(n)||this.getDocuments()[0]||null}getLastVisibleDocument(e){let t=this.getVisibleDocuments();if(e){let e=[...t].reverse().find(e=>e.getVisibleElements().length>0);if(e)return e}if(t.length>0)return t[t.length-1];let n=this.owner.context.currentLocation?.url,r=this.getDocuments();return n&&this.getDocument(n)||r[r.length-1]||null}async createDocument(e,t,n){return new h.HtmlDocument(this.owner,this.rendererViewport,this.fileParser,e,t,this.htmlOptions)}async initialize(e){this.rendererViewport.applyCssVariables(),await super.initialize(e);let t=this.getDocuments();for(let e of t)e.getWrapperContainer().classList.add(d.HtmlSettings.FileContentContainerClassName,d.HtmlSettings.FileContentContainerHeightClassName)}async load(e,t){this.htmlOptions.documentLanguage=this.owner.context?.metadata?.language,this.isInit||=(await this.initialize(this.getTransformContainer()),this.documentsIntersectionObserver.register(),!0),e?.storeCurrent&&await this.owner.onBeforeRedirect?.(this),t??=!1;let r=e?.url,i=this.getDocument(r);if(!i){let t=this.getDocuments();i=t[0],(t.length>1||!e)&&(e=new n.FileLocation(i.url,1,`ratio`),e.current=0)}f.getLayoutGeometry(this.htmlOptions).flipMode==`page`?this.appendPageStyles():this.removePageStyles(),this.loadingDoc=i,this.owner.context.redirectingDocUrl=i.url,p.shouldBeginAbsoluteLocate(e?.direction,f.getLayoutGeometry(this.htmlOptions).holdsAbsoluteLocate)&&p.beginAbsoluteLocate();try{this.owner.context.setUserChangedProgress(!t,e?.from),!t&&e?.url&&(this.owner.context.currentLocation=e),await this.gotoDoc(i,e,t),this.isFirstLoad&&!t&&(await this.owner.loading?.hide(),this.isFirstLoad=!1),await this.documentPreloader.preloadDocuments(),this.shouldRealignAfterPreload(e,t)&&await this.gotoDoc(i,e,!0)}finally{setTimeout(()=>{this.loadingDoc=null,this.owner.context.redirectingDocUrl=void 0},166)}}async gotoDoc(e,n,r){if(!n)return;r??=!1;let i=f.getLayoutGeometry(this.htmlOptions).flipMode,a=e instanceof h.HtmlDocument?e:null,s=!!a&&i==`scroll`&&!r&&!n.suppressScroll&&e.getLoadStatus()!=`success`;s&&a&&(a.prepareCoveredLoad(),this.scrollWrapperIntoView(e,!0),await o.yieldToMain());try{if(await e.load(),!e.getContentContainer())return;let a=await this.findTarget(e,n),o=a?.target,s=a?.pageNumber,c=a?.isDocumentStart;if(!o&&!s)return;let u=this.resolveRedirectTarget(o,n);i==`scroll`?n.suppressScroll?this.setDocumentVisible(e.getWrapperContainer(),!0):u&&await this.gotoScroll(e,n,u,c):(r&&u&&!t.isNullOrWhiteSpace(n.tagName)?s=await e.getPageNumber(u):n.unit===`page`&&n.current!=null&&n.current>0?s=m.remapStoredPageNumber(n,await e.getNumberOfPages()):(l.isDomRange(u)||!s&&u)&&(s=await e.getPageNumber(u)),await this.transformPage(e,s,r?void 0:n.direction))}finally{s&&a&&await a.revealCoveredLoad()}}resolveRedirectTarget(e,t){if(!e||!(t?.textOffset>=0))return e;let n=e.textContent??``;if(t.textOffset>=n.length)return e;let r=t.textOffset,a=e.firstElementChild;return a&&i.compareTagName(a.tagName,`ST`)&&a.getBoundingClientRect().width==0&&(r=a.textContent?.length??0),r>=n.length?e:c.createRange(e,e,r,Math.min(r+1,n.length))??e}async gotoScroll(t,n,r,i){if(f.getLayoutGeometry(this.htmlOptions).blockAxis==`x`){await this.gotoScrollX(t,n,r,i);return}let a=l.getLocateElement(r),o=l.getLocateClientRect(r),c=0;n?.ignoreOverlayHeader||(c=this.owner.options.redirectPositionOffset,o.height==0&&(!a||a.clientHeight==0)&&(c+=50)),n.offsetTop&&(c+=n.offsetTop);let u=this.getScrollElement(),d=o.y,p=t.getContentContainer().ownerDocument.defaultView?.frameElement,m=p?.getBoundingClientRect()?.y??0,h=d+m,g=u.scrollTop;if(n.useAbsoluteScrollTop){let e=g+h-c;u.scrollTo(0,e)}else if(i)this.scrollWrapperIntoView(t,!0);else{if(e.BrowserCapabilities.isSafari()){s.scrollElementIntoView(t.getWrapperContainer(),void 0,void 0,this.owner.getRootContainer()?.ownerDocument),g=u.scrollTop;let e=p?.offsetTop??0;if(Math.abs(e+d-g)>5){let e=g+t.getWrapperContainer().getBoundingClientRect().y+d;u.scrollTo(0,e)}m=p?.getBoundingClientRect()?.y??0,h=d+m}else c=h-c-u.getBoundingClientRect().top;c>0?u.scrollHeight-u.scrollTop-u.clientHeight>0?u.scrollBy(0,c):a&&s.scrollElementIntoView(a,void 0,n?.scrollIntoViewIfNeeded,this.owner.getRootContainer()?.ownerDocument):u.scrollBy(0,c),this.setDocumentVisible(t.getWrapperContainer(),!0)}}async gotoScrollX(e,t,n,r){let i=this.getScrollElement();if(r){this.scrollWrapperIntoView(e,!0);return}let a=l.getLocateClientRect(n),o=(e.getContentContainer().ownerDocument.defaultView?.frameElement)?.getBoundingClientRect()?.x??0,s=i.getBoundingClientRect(),c=t.offsetLeft??0,u=a.x+o-c,d=a.right+o-c,p=f.getLayoutGeometry(this.htmlOptions).getScrollLocateDelta({targetStart:u,viewportStart:s.left,targetEnd:d,viewportEnd:s.right});if(t.useAbsoluteScrollTop){i.scrollTo(i.scrollLeft+p,i.scrollTop),this.setDocumentVisible(e.getWrapperContainer(),!0);return}i.scrollBy(p,0),this.setDocumentVisible(e.getWrapperContainer(),!0)}async findTarget(e,t){return this.elementLocator.locateElement(e,t,this.htmlOptions)}async transformPage(e,t,n){if(this.setCurrentVisibleDocument(e),f.getLayoutGeometry(this.htmlOptions).pageAxis==`y`){this.transformVerticalPage(e,t,n);return}this.transformHorizontalPage(e,t,n)}transformHorizontalPage(e,t,n){let r=this.resolveRelativePageTransform(e,t,n,`x`);if(!r){this.syncPageNumberWhenTransformBlocked(e,n);return}this.applyPageTransform(r.transformContainer,r.newTransformLength,n,`x`),this.setCurrentPageNumber(e,t)}transformVerticalPage(e,t,n){let r=this.resolveRelativePageTransform(e,t,n,`y`);if(!r){this.syncPageNumberWhenTransformBlocked(e,n);return}this.applyPageTransform(r.transformContainer,r.newTransformLength,n,`y`),this.setCurrentPageNumber(e,t)}resolveRelativePageTransform(e,t,n,i){let a=this.getTransformContainer();if(!a)return null;let o=s.getTransformLength(a,i),c=a.getAttribute(`data-target-transform`),l=0;l=c?r.parseNumber(c,0,`parseFloat`):o;let u=this.rendererViewport.getLayoutMetrics(),d=Math.max(1,u.pageMoveLength);if(n==`previous`)return{transformContainer:a,newTransformLength:Math.max(0,l-d)};if(n==`next`){let e=l+d;return this.wouldExceedLastContent(e,i,a)?null:{transformContainer:a,newTransformLength:e}}let f=this.getDocumentPageStartOffset(e,i),p=f+(t-1)*u.pageMoveLength,m=i==`y`?e.getWrapperContainer()?.scrollHeight??0:this.getDocumentPageBox(e).contentWidth,h=i==`y`?u.pageHeight:u.pageWidth,g=Number.isFinite(h)&&h>0?h:u.pageMoveLength,_=Math.max(0,f+m-g);return p>_&&(p=_),p<0&&(p=0),{transformContainer:a,newTransformLength:p}}canAdvancePageTransform(e){let t=f.getLayoutGeometry(this.htmlOptions),n=this.getCurrentPageNumber(e)+1;return this.resolveRelativePageTransform(e,n,`next`,t.pageAxis)!=null}wouldExceedLastContent(e,t,n){return this.getLastContentExtent(t,n)-e<=0}getLastContentExtent(e,t){let n=this.getDocuments(),r=n[n.length-1]?.getWrapperContainer();return r?f.getLayoutGeometry(this.htmlOptions).getLastContentExtent(r,t):0}syncPageNumberWhenTransformBlocked(e,t){if(t!=`next`)return;let n=e.getContentContainer()?.ownerDocument?.documentElement,i=r.parseNumber(n?.getAttribute(d.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName),this.getCurrentPageNumber(e),`parseInt`);this.setCurrentPageNumber(e,i)}getDocumentPageStartOffset(e,t){let n=e.getWrapperContainer(),r=this.getDocumentPageBox(e);return f.getLayoutGeometry(this.htmlOptions).getDocumentPageStartOffset(n,r)}getDocumentPageBox(e){let t=e.getWrapperContainer(),n=(e.getContentContainer()?.ownerDocument?.documentElement)?.ownerDocument?.defaultView?.frameElement,r=n?.offsetWidth||(t?.clientWidth??0),i=this.getTransformContainer(),a=n&&i?b.getLayoutOffsetLeft(n,i):t?.offsetLeft??0,o=i?.offsetWidth??0;return{offsetLeft:a,contentWidth:r,startOffset:f.getLayoutGeometry(this.htmlOptions).getPageStartOffset({offsetLeft:a,contentWidth:r,containerWidth:o}),containerWidth:o}}applyPageTransform(e,t,n,r=`x`){let i=f.getLayoutGeometry(this.htmlOptions),a=parseFloat(t.toFixed(10)),o=i.getPageTranslateCss(a),c=i.getSignedTranslateLength(a),l=s.getTransformLength(e,r,!0);e.setAttribute(`data-target-transform`,`${a}`),!(n&&Math.abs(c-l)<=.5)&&(!e.style.transition&&this.htmlOptions.flipPageStyle==`slide`&&(n==`next`||n==`previous`)&&(e.style.transition=`transform 0.2s ease`),e.style.transition&&e.addEventListener(`transitionend`,this.removeElementTransitionEvent),e.style.transform=o)}setCurrentPageNumber(e,t){let n=e.getContentContainer()?.ownerDocument?.documentElement;n&&n.setAttribute(d.HtmlSettings.HtmlDocumentCurrentPagePropertyName,t.toFixed(0))}getCurrentPageNumber(e){let t=e.getContentContainer()?.ownerDocument?.documentElement;if(!t)return 1;let n=t.getAttribute(d.HtmlSettings.HtmlDocumentCurrentPagePropertyName);return r.parseNumber(n,1,`parseInt`)}async syncPageState(e){(e.getContentContainer()?.ownerDocument?.documentElement)?.removeAttribute(d.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName);let t=Math.max(1,await e.getNumberOfPages()),n=f.getLayoutGeometry(this.htmlOptions),i=this.rendererViewport.getLayoutMetrics(),a=Math.max(1,i.pageMoveLength),o=this.getTransformContainer(),s=r.parseNumber(o?.getAttribute(`data-target-transform`),0,`parseFloat`),c=this.getDocumentPageStartOffset(e,n.pageAxis),l=Math.min(t,Math.max(1,Math.round(Math.abs(s-c)/a)+1));return this.setCurrentPageNumber(e,l),{current:l,total:t}}setCurrentVisibleDocument(e){for(let t of this.getDocuments())this.setDocumentVisible(t.getWrapperContainer(),t===e)}shouldRealignAfterPreload(e,t){return t||e?.direction==`next`||e?.direction==`previous`?!1:f.getLayoutGeometry(this.htmlOptions).flipMode==`page`}appendPageStyles(){}clearPageTransform(){let e=this.getTransformContainer();e&&(e.style.removeProperty(`transition`),e.style.removeProperty(`transform`),e.removeAttribute(`data-target-transform`),e.offsetWidth)}removePageStyles(){this.getRendererContainer().classList.remove(d.HtmlSettings.TransformPagesClassName),this.clearPageTransform()}async dispose(){await this.documentsIntersectionObserver.dispose(),await this.documentPreloader.dispose(),await super.dispose(),this.readerContainer&&a.emptyElement(this.readerContainer),this.isInit=!1}};exports.HtmlDocumentsProvider=S;
@@ -10,11 +10,10 @@ import { DebouncedReturn } from 'perfect-debounce';
10
10
 
11
11
  export declare class HtmlDocumentsProvider extends BaseDocumentsProvider<IHtmlDocument> implements IHtmlDocumentsProvider {
12
12
  protected readonly readerContainer: HTMLElement;
13
- protected readonly htmlOptions: HtmlOptions;
13
+ readonly htmlOptions: HtmlOptions;
14
14
  protected logger: ILogger;
15
15
  private isInit;
16
16
  private isFirstLoad;
17
- private delayHideLoadingLayerTimer;
18
17
  private loadingDoc;
19
18
  private readonly documentsIntersectionObserver;
20
19
  private readonly documentPreloader;
@@ -26,24 +25,48 @@ export declare class HtmlDocumentsProvider extends BaseDocumentsProvider<IHtmlDo
26
25
  getRendererContainer(): HTMLElement;
27
26
  getScrollElement(): HTMLElement;
28
27
  getLoadingDocument(): IHtmlDocument;
28
+ getLoadedDocuments(): IHtmlDocument[];
29
+ getVisibleDocuments(): IHtmlDocument[];
30
+ getFirstVisibleDocument(containVisibleElements?: boolean): IHtmlDocument;
31
+ getLastVisibleDocument(containVisibleElements?: boolean): IHtmlDocument;
29
32
  createDocument(documentContainer: HTMLElement, spineFile: SpineFile, fileIndex: number): Promise<IHtmlDocument>;
30
33
  protected initialize(documentsWrapper: HTMLElement): Promise<void>;
31
34
  load(location?: FileLocation, isReload?: boolean): Promise<void>;
32
35
  private gotoDoc;
36
+ private resolveRedirectTarget;
33
37
  private gotoScroll;
38
+ private gotoScrollX;
34
39
  private findTarget;
35
40
  private transformPage;
41
+ private transformHorizontalPage;
42
+ private transformVerticalPage;
43
+ private resolveRelativePageTransform;
44
+ canAdvancePageTransform(doc: IHtmlDocument): boolean;
45
+ private wouldExceedLastContent;
46
+ private getLastContentExtent;
47
+ private syncPageNumberWhenTransformBlocked;
48
+ private getDocumentPageStartOffset;
49
+ private getDocumentPageBox;
50
+ private applyPageTransform;
36
51
  private resetTransformContainer;
37
52
  private removeElementTransitionEvent;
38
53
  private setCurrentPageNumber;
39
54
  private scrollWrapperIntoView;
40
55
  getCurrentPageNumber(doc: IHtmlDocument): number;
56
+ syncPageState(doc: IHtmlDocument): Promise<{
57
+ current: number;
58
+ total: number;
59
+ }>;
41
60
  private setDocumentVisible;
42
- private isVerticalWriting;
61
+ private setCurrentVisibleDocument;
43
62
  reload: () => Promise<void>;
63
+ private shouldRealignAfterPreload;
64
+ restoreReadingPosition: () => Promise<void>;
65
+ delayRestoreReadingPosition: DebouncedReturn<[], void>;
44
66
  protected readonly delayReloadTime = 300;
45
67
  protected delayReload: DebouncedReturn<[], void>;
46
68
  private appendPageStyles;
69
+ private clearPageTransform;
47
70
  private removePageStyles;
48
71
  dispose(): Promise<void>;
49
72
  }