@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,121 +1,270 @@
1
- import { BrowserCapabilities as e } from "../../../../kernal/web/BrowserCapabilities.mjs";
1
+ import { EventNames as e } from "../../../../kernal/EventNames.mjs";
2
2
  import { getUuid as t } from "../../../../kernal/common/uuid.mjs";
3
- import { EventNames as n } from "../../../../kernal/EventNames.mjs";
4
- import { readerPrefixName as r } from "../../../../kernal/Constants.mjs";
5
- import { getDocumentBody as i } from "../../../../kernal/html/finder.mjs";
6
- import { emptyElement as a, setElementHtml as o } from "../../../../kernal/html/dom.mjs";
7
- import { getOrderedElementsIntersectingRect as s, resolveVisibleViewportInContentWindow as c } from "../../../../kernal/html/geometry.mjs";
8
- import { HtmlSettings as l } from "../../HtmlSettings.mjs";
9
- import { BaseDocument as u } from "../../../base/renderer/BaseDocument.mjs";
10
- import { getEventKeyMap as d } from "../../../base/renderer/eventKeys.mjs";
11
- import { collectContentUnitElements as f } from "../visibilityCandidates.mjs";
12
- import { createIframe as p, getTooBigHtmlTemplate as m } from "../html/template.mjs";
13
- import { HtmlPageCalculator as h } from "./HtmlPageCalculator.mjs";
14
- import { HtmlDocumentResizeObserver as g } from "./HtmlDocumentResizeObserver.mjs";
3
+ import { BrowserCapabilities as n } from "../../../../kernal/web/BrowserCapabilities.mjs";
4
+ import { LastElementAttributeName as r, readerPrefixName as i } from "../../../../kernal/Constants.mjs";
5
+ import { getDocumentBody as a } from "../../../../kernal/html/finder.mjs";
6
+ import { emptyElement as o, setElementHtml as s } from "../../../../kernal/html/dom.mjs";
7
+ import { yieldToMain as c } from "../../../../kernal/web/scheduler.mjs";
8
+ import { getOrderedElementsIntersectingRect as l, resolveVisibleViewportInContentWindow as u } from "../../../../kernal/html/geometry.mjs";
9
+ import { BaseDocument as d } from "../../../base/renderer/BaseDocument.mjs";
10
+ import { HtmlSettings as f } from "../../HtmlSettings.mjs";
11
+ import { getEventKeyMap as p } from "../../../base/renderer/eventKeys.mjs";
12
+ import { collectContentUnitElements as m } from "../visibilityCandidates.mjs";
13
+ import { getLayoutGeometry as h } from "../layout/resolveLayoutRoute.mjs";
14
+ import { asHtmlFileParser as g } from "../../fileParser/IHtmlFileParser.mjs";
15
+ import { ViewportCssVariableNames as _ } from "../layout/ViewportCssVariableNames.mjs";
16
+ import { createIframe as v, getTooBigHtmlTemplate as y } from "../html/template.mjs";
17
+ import { HtmlPageCalculator as b } from "./HtmlPageCalculator.mjs";
18
+ import { HtmlSymbolCalclator as x } from "./HtmlSymbolCalclator.mjs";
19
+ import { HtmlDocumentResizeObserver as S } from "./HtmlDocumentResizeObserver.mjs";
20
+ import { HtmlLayoutStatePreserver as C } from "../location/HtmlLayoutStatePreserver.mjs";
21
+ import { shouldKeepPageEndOnContentGrow as w } from "../location/remapStoredPageNumber.mjs";
15
22
  //#region mediaTypes/html/renderer/document/HtmlDocument.ts
16
- var _ = class extends u {
17
- constructor(t, r, i, a, o, s) {
18
- super(t, i, a, o), this.options = s, this.eventKeyMap = d(), this.visibilityCandidates = null, this.callbacks = [], this.buildLoadingContent = async () => {
23
+ var T = class extends d {
24
+ constructor(t, n, r, i, a, o) {
25
+ super(t, r, i, a), this.options = o, this.eventKeyMap = p(), this.visibilityCandidates = null, this.callbacks = [], this.retainLoadingLayer = !1, this.waitForRevealPaint = async () => {
26
+ await c(), await new Promise((e) => {
27
+ requestAnimationFrame(() => {
28
+ requestAnimationFrame(() => e());
29
+ });
30
+ }), await new Promise((e) => {
31
+ window.setTimeout(e, 120);
32
+ }), await this.waitForVisibleImagesReady();
33
+ }, this.waitForVisibleImagesReady = async () => {
34
+ let e = this.getContentContainer(), t = e?.ownerDocument?.defaultView;
35
+ if (!e || !t) return;
36
+ let n = [...e.querySelectorAll("img"), ...e.getElementsByTagName("image")];
37
+ if (n.length == 0) return;
38
+ let r = t.innerHeight || e.clientHeight, i = n.filter((e) => {
39
+ let t = e.getBoundingClientRect();
40
+ return t.bottom > -200 && t.top < r + 200;
41
+ });
42
+ i.length != 0 && await Promise.race([Promise.all(i.map((e) => this.waitForImageReady(e))), new Promise((e) => {
43
+ window.setTimeout(e, 800);
44
+ })]);
45
+ }, this.waitForImageReady = (e) => this.isImageReady(e) ? Promise.resolve() : new Promise((t) => {
46
+ let n = !1, r = () => {
47
+ n || (n = !0, e.removeEventListener("load", r), e.removeEventListener("error", r), i.disconnect(), t());
48
+ }, i = new MutationObserver(() => {
49
+ this.isImageReady(e) && r();
50
+ });
51
+ i.observe(e, {
52
+ attributes: !0,
53
+ attributeFilter: [
54
+ "src",
55
+ "href",
56
+ "data-load-state"
57
+ ]
58
+ }), e.addEventListener("load", r), e.addEventListener("error", r), window.setTimeout(r, 800);
59
+ }), this.isImageReady = (e) => {
60
+ let t = e.getAttribute("data-load-state");
61
+ if (t == "loaded" || t == "fail") return !0;
62
+ let n = e.ownerDocument.defaultView?.window.HTMLImageElement;
63
+ if (!n || !(e instanceof n)) return !1;
64
+ let r = e.currentSrc || e.src;
65
+ return !r || r.startsWith("data:image/svg+xml") ? !1 : e.complete && e.naturalWidth > 0;
66
+ }, this.bringLoadingLayerToFront = () => {
67
+ let e = this.wrapperContainer.querySelector("div[data-type='loading-layer']");
68
+ e && this.wrapperContainer.appendChild(e);
69
+ }, this.fadeOutCover = async (e = 200) => {
70
+ let t = this.wrapperContainer.querySelector("div[data-type='loading-layer']");
71
+ if (!t) return;
72
+ let n = Math.max(0, e);
73
+ t.style.pointerEvents = "none", t.style.transition = `opacity ${n}ms ease`, t.style.opacity = "0", await new Promise((e) => {
74
+ let r = !1, i = () => {
75
+ r || (r = !0, t.removeEventListener("transitionend", i), e());
76
+ };
77
+ t.addEventListener("transitionend", i), window.setTimeout(i, n + 50);
78
+ });
79
+ }, this.releaseLoadingLayer = async () => {
80
+ this.loadingLayer?.removeLoadingLayer(), await this.loadingLayer?.dispose(), this.loadingLayer = void 0;
81
+ }, this.buildLoadingContent = async () => {
19
82
  let e = await this.getFormattedVirtualDocument(), t = this.owner.getRenderer()?.documentPreprocesses ?? [];
20
83
  for (let e of t) try {
21
84
  await e(this);
22
85
  } catch (t) {
23
86
  this.logger.error("preprocess", "function", e?.name, t);
24
87
  }
25
- let n = e.documentElement.outerHTML;
26
- return this.owner.onRenderingFileInject && (n = await this.owner.onRenderingFileInject(this.extension, n, this.url)), n = n.replace(/<([^<]*)\?xml([^>]*)\?.*?>/i, ""), n.match(/<!DOCTYPE[^>]*>/i) || (n = "<!DOCTYPE html>" + n), n;
88
+ let n = e.documentElement.outerHTML.replace(/<([^<]*)\?xml([^>]*)\?.*?>/i, "");
89
+ return n.match(/<!DOCTYPE[^>]*>/i) || (n = "<!DOCTYPE html>" + n), n;
27
90
  }, this.processAfterLoaded = async () => {
28
91
  let t = this.getContentContainer();
29
92
  if (!t) return;
30
- t.setAttribute("data-url", this.url), this.wrapperContainer.classList.remove(l.FileContentContainerHeightClassName);
31
- let r = this.owner.getRenderer()?.documentPostprocesses ?? [];
32
- for (let t of r) try {
33
- await t(this), await e.yieldToMain();
34
- } catch (e) {
35
- this.logger.error("postprocess", "function", t?.name, e);
93
+ t.setAttribute("data-url", this.url);
94
+ let n = this.captureLayoutState(), r = h(this.options).iframeGrow == "width";
95
+ r || this.wrapperContainer.classList.remove(f.FileContentContainerHeightClassName);
96
+ let i = this.owner.getRenderer()?.documentPostprocesses ?? [];
97
+ for (let e of i) try {
98
+ await e(this), await c();
99
+ } catch (t) {
100
+ this.logger.error("postprocess", "function", e?.name, t);
36
101
  }
37
- this.loadingLayer?.removeLoadingLayer(), this.loadStatus = "success", this.visibilityCandidates = null, this.bindDocumentEvents(), this.owner.events.emit(n.DocumentLoad, this), await this.internalResetSizes(), this.resizeObserver.observeIframeSize(async () => {
38
- await this.internalResetSizes(), this.getFlipMode() == "page" && this.pageCalculator.calcNumberOfPages(!0);
102
+ await this.layoutStatePreserver.waitUntilPageTransformStable(), this.resetLayoutSizes(), r && this.wrapperContainer.classList.remove(f.FileContentContainerHeightClassName), await this.restoreLayoutState(n), this.retainLoadingLayer || await this.releaseLoadingLayer(), this.loadStatus = "success", this.visibilityCandidates = null, this.bindDocumentEvents(), this.owner.events.emit(e.DocumentLoad, this), this.resizeObserver.observeIframeSize(async () => {
103
+ let e = w(this.owner.context.currentLocation, this.url), t = e ? this.captureLayoutState() : null;
104
+ if (this.resetLayoutSizes(), this.getFlipMode() == "page" && this.pageCalculator.calcNumberOfPages(!0), e && t) {
105
+ await this.restoreLayoutState(t);
106
+ let e = this.internalGetNumberOfPages(), n = this.owner.context.currentLocation;
107
+ n?.url == this.url && (n.current = e, n.total = e);
108
+ }
39
109
  }), this.loadCompleted(!0);
40
110
  }, this.loadCompleted = (e) => {
41
111
  for (let t = 0; t < this.callbacks.length; t++) try {
42
112
  e ? this.callbacks[t].resolve() : this.callbacks[t].reject();
43
113
  } catch {}
44
114
  this.callbacks = [];
45
- }, this.internalResetSizes = async () => {
46
- let e = this.getContentRootElement();
47
- if (!e) return;
48
- let t = this.getWritingMode();
49
- this.resetIframeMinWidthHeight(e, this.getFlipMode(), t);
50
115
  }, this.capture = !0, this.eventListener = (e) => {
51
116
  let t = this.eventKeyMap.get(e.type);
52
117
  t && this.owner.events.emit(t, e, this);
53
- }, this.pageCalculator = new h(this, r, s), this.logger = this.owner.loggerFactory.getLogger(this.constructor.name), this.resizeObserver = new g(this, this.owner.events);
118
+ }, this.pageCalculator = new b(this, n, o), this.symbolCalclator = new x(this, g(r).symbolMeasure), this.layoutStatePreserver = new C(this, n, o), this.logger = this.owner.loggerFactory.getLogger(this.constructor.name), this.resizeObserver = new S(this, this.owner.events);
54
119
  }
55
120
  get inIframe() {
56
121
  return !0;
57
122
  }
58
- getWritingMode() {
59
- return this.options.writingMode ?? "horizontal-tb";
60
- }
61
123
  async load() {
62
- await new Promise(async (i, s) => {
124
+ await new Promise(async (r, a) => {
63
125
  if (this.loadStatus == "success") {
64
- i();
126
+ r();
65
127
  return;
66
128
  }
67
129
  if (this.callbacks.push({
68
- resolve: i,
69
- reject: s
130
+ resolve: r,
131
+ reject: a
70
132
  }), this.loadStatus != "loading") {
71
- this.loadStatus = "loading", this.loadingLayer = await this.owner.services.get("loadLayer"), this.loadingLayer?.setDoc(this), a(this.wrapperContainer), this.loadingLayer.removeLoadingLayer(), this.loadingLayer.loadLoadingLayer();
133
+ this.loadStatus = "loading", this.loadingLayer = await this.owner.services.get("loadLayer"), this.loadingLayer?.setDoc(this), o(this.wrapperContainer), this.loadingLayer.removeLoadingLayer(), this.loadingLayer.loadLoadingLayer(), await c();
72
134
  try {
73
135
  if (this.inIframe) {
74
136
  if (!this.iframe) {
75
- let i = r + t(!0);
76
- this.iframe = p(this.wrapperContainer.ownerDocument, i, this.options.forceScroll), this.options.forceScroll ? this.iframe.removeAttribute("scrolling") : this.iframe.setAttribute("scrolling", "no");
137
+ let r = i + t(!0);
138
+ this.iframe = v(this.wrapperContainer.ownerDocument, r, this.options.forceScroll, h(this.options)), this.options.forceScroll ? this.iframe.removeAttribute("scrolling") : this.iframe.setAttribute("scrolling", "no");
77
139
  let a = await this.buildLoadingContent();
78
- await e.yieldToMain(), this.wrapperContainer.appendChild(this.iframe), await e.yieldToMain(), this.iframe.addEventListener("load", async () => {
140
+ await c(), this.wrapperContainer.appendChild(this.iframe), this.bringLoadingLayerToFront(), await c(), this.iframe.addEventListener("load", async () => {
79
141
  await this.processAfterLoaded();
80
- }, !1), this.iframe.addEventListener("error", (e) => {
81
- this.loadingLayer?.removeLoadingLayer(), this.loadStatus = "fail", this.iframe = void 0, this.loadingLayer?.setReloadButton(), this.logger.error(e), this.owner.events.emit(n.DocumentLoadFailed, this, e), this.loadCompleted(!0);
82
- }, !1);
142
+ }, !1), this.iframe.addEventListener("error", (t) => {
143
+ this.retainLoadingLayer = !1, this.loadingLayer?.removeLoadingLayer(), this.loadStatus = "fail", this.iframe = void 0, this.loadingLayer?.setReloadButton(), this.logger.error(t), this.owner.events.emit(e.DocumentLoadFailed, this, t), this.loadCompleted(!0);
144
+ }, !1), n.isFirefox() && (this.iframe.srcdoc = "<!DOCTYPE html><html><head></head><body></body></html>");
83
145
  let o = this.iframe.contentDocument;
84
- this.options.preferSrcdoc && "srcdoc" in this.iframe || !("write" in o) ? this.iframe.srcdoc = a : (o.open(), o.write(a), o.close(), await e.yieldToMain());
146
+ this.options.preferSrcdoc && "srcdoc" in this.iframe || !("write" in o) ? this.iframe.srcdoc = a : (o.open(), o.write(a), o.close(), await c());
85
147
  }
86
148
  } else {
87
- let t = await this.buildLoadingContent();
88
- o(this.wrapperContainer, t), await this.processAfterLoaded(), await e.yieldToMain();
149
+ let e = await this.buildLoadingContent();
150
+ s(this.wrapperContainer, e), await this.processAfterLoaded(), await c();
89
151
  }
90
- } catch (e) {
91
- this.logger.error(e), this.owner?.context ? (this.loadingLayer?.removeLoadingLayer(), this.loadStatus = "fail", this.iframe = void 0, this.loadingLayer?.setReloadButton(), this.owner.events.emit(n.DocumentLoadFailed, this, e?.toString()), this.loadCompleted(!0)) : this.loadCompleted(!0);
92
- } finally {
93
- await this.loadingLayer?.dispose(), this.loadingLayer = void 0;
152
+ } catch (t) {
153
+ this.logger.error(t), this.retainLoadingLayer = !1, this.owner?.context ? (this.loadingLayer?.removeLoadingLayer(), this.loadStatus = "fail", this.iframe = void 0, this.loadingLayer?.setReloadButton(), this.owner.events.emit(e.DocumentLoadFailed, this, t?.toString()), this.loadCompleted(!0)) : (await this.releaseLoadingLayer(), this.loadCompleted(!0));
94
154
  }
95
155
  }
96
156
  });
97
157
  }
98
- resetIframeMinWidthHeight(e, t, n) {
99
- if (e) {
100
- if (t == "scroll") {
101
- if (this.iframe) {
102
- if (this.isVerticalWriting(n)) {
103
- let t = e.scrollHeight;
104
- this.iframe.style.willChange = "transform", this.iframe.style.removeProperty("min-width"), this.iframe.style.minHeight = t + "px", this.iframe.style.removeProperty("will-change"), this.iframe.style.removeProperty("transform");
105
- } else {
106
- let t = e.getBoundingClientRect().height;
107
- this.iframe.style.willChange = "transform", this.iframe.style.removeProperty("min-width"), this.iframe.style.minHeight = Math.round(t) + "px", this.iframe.style.removeProperty("will-change"), this.iframe.style.removeProperty("transform");
108
- }
109
- }
110
- } else if (this.iframe) {
111
- this.iframe.style.removeProperty("min-height"), this.iframe.style.removeProperty("min-width");
112
- let t = e.scrollWidth, n = i(e.ownerDocument).getBoundingClientRect().width, r = Math.min(t, n);
113
- this.iframe.style.minWidth = r + "px";
158
+ prepareCoveredLoad() {
159
+ this.retainLoadingLayer = !0;
160
+ }
161
+ async revealCoveredLoad() {
162
+ this.retainLoadingLayer = !1;
163
+ try {
164
+ await this.waitForRevealPaint(), await this.fadeOutCover();
165
+ } finally {
166
+ await this.releaseLoadingLayer();
167
+ }
168
+ }
169
+ resetLayoutSizes() {
170
+ this.resetIframeMinSize();
171
+ }
172
+ captureLayoutState() {
173
+ return this.layoutStatePreserver.capture();
174
+ }
175
+ async restoreLayoutState(e) {
176
+ await this.layoutStatePreserver.restore(e);
177
+ }
178
+ resetIframeMinSize() {
179
+ let e = this.getContentRootElement();
180
+ if (!e || !this.iframe) return;
181
+ let t = h(this.options), n = a(e.ownerDocument);
182
+ if (this.iframe.style.removeProperty("transform"), this.iframe.style.removeProperty("will-change"), t.useColumnLayout) {
183
+ this.growIframeToColumnOverflow(e, n, t.pageAxis), this.pageCalculator.calcNumberOfPages(!0);
184
+ return;
185
+ }
186
+ if (t.iframeGrow == "width") {
187
+ this.iframe.style.removeProperty("min-height"), this.iframe.style.removeProperty("min-width");
188
+ let t = this.getParentContentHeight(this.iframe.parentElement) || this.iframe.clientHeight;
189
+ this.iframe.style.height = t ? t + "px" : `var(${_.ContentContainerHeight})`, this.iframe.style.width = "auto", t && (e.style.height = t + "px", e.style.maxHeight = t + "px", n && (n.style.height = t + "px", n.style.maxHeight = t + "px")), this.iframe.offsetWidth, this.iframe.style.minWidth = Math.max(1, e.scrollWidth) + "px";
190
+ return;
191
+ }
192
+ this.clearInlineContentBox(e, n), this.iframe.style.removeProperty("min-width"), this.iframe.style.removeProperty("min-height"), this.iframe.style.setProperty("width", this.options.forceScroll ? "100%" : `var(${_.ContentContainerWidth})`), this.iframe.style.height = "auto", this.iframe.offsetHeight;
193
+ let r = Math.max(1, e.scrollHeight, n?.scrollHeight ?? 0);
194
+ this.iframe.style.setProperty("height", `var(${_.ContentContainerHeight})`), this.iframe.style.minHeight = Math.round(r) + "px";
195
+ }
196
+ growIframeToColumnOverflow(e, t, n) {
197
+ this.clearInlineContentBox(e, t), this.iframe.style.removeProperty("min-width"), this.iframe.style.removeProperty("min-height");
198
+ let r = this.getPageBoxSize();
199
+ this.lockIframeToPageBox(r);
200
+ let i = this.iframe.parentElement, a = i?.style.width ?? "", o = i?.style.minWidth ?? "", s = r.width;
201
+ i && n == "x" && s > 0 && (i.style.width = `${s}px`, i.style.minWidth = `${s}px`);
202
+ let c = this.beginColumnOverflowMeasure(e, t, n);
203
+ try {
204
+ if (n == "y") {
205
+ this.iframe.offsetHeight, e.offsetHeight;
206
+ let n = this.measureOccupiedColumnLength(e, t, "y", r.height);
207
+ this.iframe.style.setProperty("height", `var(${_.ContentContainerHeight})`), this.iframe.style.minHeight = n + "px";
208
+ return;
114
209
  }
210
+ this.iframe.offsetWidth, e.offsetWidth;
211
+ let i = this.measureOccupiedColumnLength(e, t, "x", r.width);
212
+ this.iframe.style.setProperty("width", `var(${_.ContentContainerWidth})`), this.iframe.style.minWidth = i + "px";
213
+ } finally {
214
+ c(), i && (a ? i.style.width = a : i.style.removeProperty("width"), o ? i.style.minWidth = o : i.style.removeProperty("min-width"));
215
+ }
216
+ }
217
+ measureOccupiedColumnLength(e, t, n, r) {
218
+ let i = r > 0 ? r : 1, a = this.getColumnGap(), o = i + a, s = this.measureContentExtent(e, t, n), c = Math.max(1, Math.floor(((s > 1 ? s : i) - 1) / o) + 1);
219
+ return Math.round(c * i + Math.max(0, c - 1) * a);
220
+ }
221
+ measureContentExtent(e, t, n) {
222
+ let r = e.getBoundingClientRect(), i = this.getLastContentElement(t);
223
+ if (i) {
224
+ let e = i.getBoundingClientRect(), t = n == "y" ? e.bottom - r.top : e.right - r.left;
225
+ if (t > 1) return t;
226
+ }
227
+ if (t) {
228
+ let e = t.getBoundingClientRect();
229
+ return n == "y" ? e.height : e.width;
115
230
  }
231
+ return n == "y" ? e.scrollHeight : e.scrollWidth;
232
+ }
233
+ getLastContentElement(e) {
234
+ if (!e) return null;
235
+ let t = e.querySelector(`[${r}="true"]`);
236
+ return t instanceof HTMLElement ? t : e.lastElementChild instanceof HTMLElement ? e.lastElementChild : null;
237
+ }
238
+ getColumnGap() {
239
+ let e = this.owner.getRenderer()?.getRendererContainer(), t = parseFloat(e?.getAttribute("data-column-gap") ?? "");
240
+ return Number.isFinite(t) && t > 0 ? t : 0;
241
+ }
242
+ getPageBoxSize() {
243
+ let e = this.owner.getRenderer()?.getRendererContainer(), t = parseFloat(e?.getAttribute("data-column-width") ?? "") || Math.round(this.iframe.getBoundingClientRect().width), n = parseFloat(e?.getAttribute("data-page-height") ?? "") || Math.round(this.iframe.getBoundingClientRect().height);
244
+ return {
245
+ width: Number.isFinite(t) ? Math.round(t) : 0,
246
+ height: Number.isFinite(n) ? Math.round(n) : 0
247
+ };
248
+ }
249
+ lockIframeToPageBox(e = this.getPageBoxSize()) {
250
+ e.width > 0 ? this.iframe.style.width = `${e.width}px` : this.iframe.style.setProperty("width", `var(${_.ContentContainerWidth})`), e.height > 0 ? this.iframe.style.height = `${e.height}px` : this.iframe.style.setProperty("height", `var(${_.ContentContainerHeight})`), this.iframe.offsetWidth;
251
+ }
252
+ beginColumnOverflowMeasure(e, t, n) {
253
+ let r = e.style.minWidth, i = e.style.direction, a = t?.style.direction ?? "", o = e.classList.contains(f.RtlProgressionClassName), s = h(this.options).measureColumnsAsLtr;
254
+ return e.style.setProperty("min-width", "0", "important"), s && (e.style.setProperty("direction", "ltr", "important"), t?.style.setProperty("direction", "ltr", "important"), e.classList.remove(f.RtlProgressionClassName)), () => {
255
+ r ? e.style.minWidth = r : e.style.removeProperty("min-width"), s && (i ? e.style.direction = i : e.style.removeProperty("direction"), t && (a ? t.style.direction = a : t.style.removeProperty("direction")), o && e.classList.add(f.RtlProgressionClassName));
256
+ };
257
+ }
258
+ clearInlineContentBox(e, t) {
259
+ e.style.removeProperty("height"), e.style.removeProperty("max-height"), e.style.removeProperty("width"), t && (t.style.removeProperty("height"), t.style.removeProperty("max-height"), t.style.removeProperty("width"));
260
+ }
261
+ getParentContentHeight(e) {
262
+ if (!e) return 0;
263
+ let t = e.ownerDocument.defaultView?.getComputedStyle(e), n = parseFloat(t?.paddingTop ?? "0") || 0, r = parseFloat(t?.paddingBottom ?? "0") || 0;
264
+ return Math.max(0, Math.round(e.clientHeight - n - r));
116
265
  }
117
266
  async getContent() {
118
- return this.docContent ? this.docContent : (this.docContent = await (await this.fileParser.getTextDocument(this.url)).getPlaintext(), this.docContent.length > this.options.singleDocMaxSize ? m(this.docContent.length) : this.docContent);
267
+ return this.docContent ? this.docContent : (this.docContent = await (await this.fileParser.getTextDocument(this.url)).getPlaintext(), this.docContent.length > this.options.singleDocMaxSize ? y(this.docContent.length) : this.docContent);
119
268
  }
120
269
  async getFormattedVirtualDocument() {
121
270
  if (this.formattedVirtualDocument) return this.formattedVirtualDocument;
@@ -139,46 +288,44 @@ var _ = class extends u {
139
288
  return this.inIframe ? this.iframe?.contentDocument?.documentElement : this.wrapperContainer;
140
289
  }
141
290
  getContentContainer() {
142
- return this.inIframe ? i(this.iframe?.contentDocument) : this.wrapperContainer;
291
+ return this.inIframe ? a(this.iframe?.contentDocument) : this.wrapperContainer;
143
292
  }
144
293
  async getVirtualContentContainer(e) {
145
294
  if (e) {
146
295
  let e = await this.fileParser.getTextDocument(this.url);
147
- return i(await e.getFormattedDocument());
296
+ return a(await e.getFormattedDocument());
148
297
  }
149
298
  let t = await this.getFormattedVirtualDocument();
150
- return i(t);
299
+ return a(t);
151
300
  }
152
301
  getVisibleElements(e) {
153
302
  if (this.loadStatus != "success") return [];
154
303
  let t = this.getContentContainer(), n = t?.ownerDocument?.defaultView;
155
304
  if (!t || !n) return [];
156
- this.visibilityCandidates ||= f(t, { htmlBlockTags: this.options.htmlBlockTags });
157
- let r = this.getFlipMode() == "scroll" ? this.owner.optionsProvider.getHeaderHeight() : 0, i = c(n, { topInset: r });
158
- return i ? s(this.visibilityCandidates, i, {
159
- writingMode: this.getWritingMode(),
305
+ this.visibilityCandidates ||= m(t, { htmlBlockTags: this.options.htmlBlockTags });
306
+ let r = this.owner.getRenderer()?.getRendererContainer().getBoundingClientRect().top, i = u(n, { topInset: r });
307
+ return i ? l(this.visibilityCandidates, i, {
308
+ writingMode: h(this.options).writingMode,
160
309
  fullVisible: e
161
310
  }) : [];
162
311
  }
163
312
  async dispose() {
164
- this.owner.events.emit(n.DocumentDisposing, this), this.unbindDocumentEvents(), this.resizeObserver.unobserveIframeSize(), this.callbacks?.splice(0), this.visibilityCandidates = null;
165
- let e = this.getWrapperContainer();
166
- e.classList.add(l.FileContentContainerHeightClassName), e.removeChild(this.iframe), a(this.wrapperContainer), this.iframe = void 0, this.formattedVirtualDocument = null, await super.dispose();
313
+ let t = this.captureLayoutState();
314
+ this.owner.events.emit(e.DocumentDisposing, this), this.unbindDocumentEvents(), this.resizeObserver.unobserveIframeSize(), this.callbacks?.splice(0), this.visibilityCandidates = null, this.retainLoadingLayer = !1, await this.releaseLoadingLayer();
315
+ let n = this.getWrapperContainer();
316
+ n.classList.add(f.FileContentContainerHeightClassName), this.iframe && n.contains(this.iframe) && n.removeChild(this.iframe), o(this.wrapperContainer), this.iframe = void 0, this.formattedVirtualDocument = null, await this.symbolCalclator.dispose(), await this.restoreLayoutState(t), await super.dispose();
167
317
  }
168
318
  bindDocumentEvents() {
169
319
  let e = this.inIframe ? this.getContentContainer().ownerDocument : this.getContentRootElement();
170
320
  for (let t of this.eventKeyMap.keys()) e.addEventListener(t, this.eventListener, this.capture);
171
321
  }
172
322
  unbindDocumentEvents() {
173
- let e = this.inIframe ? this.getContentContainer().ownerDocument : this.getContentRootElement();
174
- for (let t of this.eventKeyMap.keys()) e.removeEventListener(t, this.eventListener, this.capture);
175
- }
176
- isVerticalWriting(e) {
177
- return e == "vertical-lr" || e == "vertical-rl";
323
+ let e = this.inIframe ? this.getContentContainer()?.ownerDocument : this.getContentRootElement();
324
+ if (e) for (let t of this.eventKeyMap.keys()) e?.removeEventListener(t, this.eventListener, this.capture);
178
325
  }
179
326
  getFlipMode() {
180
327
  return this.options.forceScroll ? "scroll" : this.options.flipMode;
181
328
  }
182
329
  };
183
330
  //#endregion
184
- export { _ as HtmlDocument };
331
+ export { T as HtmlDocument };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs");var t=class{constructor(e,t){this.doc=e,this.events=t,this.resizeObserver=null}observeIframeSize(t){this.resizeObserver=new ResizeObserver(async()=>{await t?.(),this.events.emit(e.EventNames.DocumentSizeChange,this.doc)});let n=this.getContentRootElement();n&&this.resizeObserver.observe(n);let r=this.doc.getContentContainer();r&&r!=n&&this.resizeObserver.observe(r)}unobserveIframeSize(){if(this.resizeObserver){let e=this.getContentRootElement();e&&this.resizeObserver.unobserve(e);let t=this.doc.getContentContainer();t&&t!=e&&this.resizeObserver.unobserve(t),this.resizeObserver.disconnect(),this.resizeObserver=null}}getContentRootElement(){return this.doc.inIframe?this.doc?.getContentContainer()?.ownerDocument?.documentElement:this.doc.getWrapperContainer()}};exports.HtmlDocumentResizeObserver=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../documents/documentHiddenState.cjs");var n=class{constructor(e,t){this.doc=e,this.events=t,this.resizeObserver=null,this.lastContentWidth=NaN,this.lastContentHeight=NaN,this.isHidden=!1}observeIframeSize(t){this.resizeObserver=new ResizeObserver(async n=>{this.shouldIgnoreResize(n)||(await t?.(),this.events.emit(e.EventNames.DocumentSizeChange,this.doc))});let n=this.getContentRootElement();n&&this.resizeObserver.observe(n);let r=this.doc.getContentContainer();r&&r!=n&&this.resizeObserver.observe(r)}unobserveIframeSize(){if(this.resizeObserver){let e=this.getContentRootElement();e&&this.resizeObserver.unobserve(e);let t=this.doc.getContentContainer();t&&t!=e&&this.resizeObserver.unobserve(t),this.resizeObserver.disconnect(),this.resizeObserver=null}this.isHidden=!1,this.lastContentWidth=NaN,this.lastContentHeight=NaN}shouldIgnoreResize(e){if(this.isHostCollapsed())return this.isHidden=!0,!0;let t=this.getObservedSize(e);if(this.isHidden){if(t.width==0&&t.height==0)return!0;this.isHidden=!1;let e=this.isSameSize(t.width,t.height);return this.rememberSize(t.width,t.height),e}return this.rememberSize(t.width,t.height),!1}isHostCollapsed(){let e=this.doc.getWrapperContainer();if(e&&e.clientWidth==0&&e.clientHeight==0)return!0;let n=this.doc.owner.getRenderer()?.getRendererContainer(),r=this.doc.owner.getHostViewport().mode!=`window`;return t.isHostContainerCollapsed(n,r)}getObservedSize(e){let t=0,n=0;for(let r of e){let e=r.contentRect?.width??0,i=r.contentRect?.height??0;e>t&&(t=e),i>n&&(n=i)}return{width:t,height:n}}isSameSize(e,t){return Number.isFinite(this.lastContentWidth)&&Math.abs(e-this.lastContentWidth)<1&&Math.abs(t-this.lastContentHeight)<1}rememberSize(e,t){this.lastContentWidth=e,this.lastContentHeight=t}getContentRootElement(){return this.doc.inIframe?this.doc?.getContentContainer()?.ownerDocument?.documentElement:this.doc.getWrapperContainer()}};exports.HtmlDocumentResizeObserver=n;
@@ -5,8 +5,16 @@ export declare class HtmlDocumentResizeObserver {
5
5
  private readonly doc;
6
6
  private readonly events;
7
7
  private resizeObserver;
8
+ private lastContentWidth;
9
+ private lastContentHeight;
10
+ private isHidden;
8
11
  constructor(doc: IHtmlDocument, events: IEventEmitter);
9
12
  observeIframeSize(callback?: () => Promise<void>): void;
10
13
  unobserveIframeSize(): void;
14
+ private shouldIgnoreResize;
15
+ private isHostCollapsed;
16
+ private getObservedSize;
17
+ private isSameSize;
18
+ private rememberSize;
11
19
  private getContentRootElement;
12
20
  }
@@ -1,12 +1,13 @@
1
1
  import { EventNames as e } from "../../../../kernal/EventNames.mjs";
2
+ import { isHostContainerCollapsed as t } from "../documents/documentHiddenState.mjs";
2
3
  //#region mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.ts
3
- var t = class {
4
+ var n = class {
4
5
  constructor(e, t) {
5
- this.doc = e, this.events = t, this.resizeObserver = null;
6
+ this.doc = e, this.events = t, this.resizeObserver = null, this.lastContentWidth = NaN, this.lastContentHeight = NaN, this.isHidden = !1;
6
7
  }
7
8
  observeIframeSize(t) {
8
- this.resizeObserver = new ResizeObserver(async () => {
9
- await t?.(), this.events.emit(e.DocumentSizeChange, this.doc);
9
+ this.resizeObserver = new ResizeObserver(async (n) => {
10
+ this.shouldIgnoreResize(n) || (await t?.(), this.events.emit(e.DocumentSizeChange, this.doc));
10
11
  });
11
12
  let n = this.getContentRootElement();
12
13
  n && this.resizeObserver.observe(n);
@@ -20,10 +21,45 @@ var t = class {
20
21
  let t = this.doc.getContentContainer();
21
22
  t && t != e && this.resizeObserver.unobserve(t), this.resizeObserver.disconnect(), this.resizeObserver = null;
22
23
  }
24
+ this.isHidden = !1, this.lastContentWidth = NaN, this.lastContentHeight = NaN;
25
+ }
26
+ shouldIgnoreResize(e) {
27
+ if (this.isHostCollapsed()) return this.isHidden = !0, !0;
28
+ let t = this.getObservedSize(e);
29
+ if (this.isHidden) {
30
+ if (t.width == 0 && t.height == 0) return !0;
31
+ this.isHidden = !1;
32
+ let e = this.isSameSize(t.width, t.height);
33
+ return this.rememberSize(t.width, t.height), e;
34
+ }
35
+ return this.rememberSize(t.width, t.height), !1;
36
+ }
37
+ isHostCollapsed() {
38
+ let e = this.doc.getWrapperContainer();
39
+ if (e && e.clientWidth == 0 && e.clientHeight == 0) return !0;
40
+ let n = this.doc.owner.getRenderer()?.getRendererContainer(), r = this.doc.owner.getHostViewport().mode != "window";
41
+ return t(n, r);
42
+ }
43
+ getObservedSize(e) {
44
+ let t = 0, n = 0;
45
+ for (let r of e) {
46
+ let e = r.contentRect?.width ?? 0, i = r.contentRect?.height ?? 0;
47
+ e > t && (t = e), i > n && (n = i);
48
+ }
49
+ return {
50
+ width: t,
51
+ height: n
52
+ };
53
+ }
54
+ isSameSize(e, t) {
55
+ return Number.isFinite(this.lastContentWidth) && Math.abs(e - this.lastContentWidth) < 1 && Math.abs(t - this.lastContentHeight) < 1;
56
+ }
57
+ rememberSize(e, t) {
58
+ this.lastContentWidth = e, this.lastContentHeight = t;
23
59
  }
24
60
  getContentRootElement() {
25
61
  return this.doc.inIframe ? this.doc?.getContentContainer()?.ownerDocument?.documentElement : this.doc.getWrapperContainer();
26
62
  }
27
63
  };
28
64
  //#endregion
29
- export { t as HtmlDocumentResizeObserver };
65
+ export { n as HtmlDocumentResizeObserver };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/number.cjs"),t=require("../../../../kernal/html/finder.cjs"),n=require("../../../../kernal/html/style.cjs"),r=require("../../HtmlSettings.cjs");var i=class{constructor(e,t,n){this.doc=e,this.layout=t,this.options=n}calcNumberOfPages(t){let i=1;if(this.options.flipMode==`scroll`)return i;let a=this.doc.getContentContainer()?.ownerDocument?.documentElement;if(!a||!a.firstElementChild)return 1;if(!t&&(i=e.parseNumber(a.getAttribute(r.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName),0,`parseInt`),i>1))return i;let o=this.layout.getLayoutMetrics(),s=this.options.writingMode??`horizontal-tb`,c=this.getIframe();if(this.isVerticalWriting(s)){let e=0,t=a.scrollHeight;t<1&&(t=1);let r=n.getTransformLength(a,`y`);if(Math.abs(r)>0&&c){let e=c.scrollHeight;if(t==e){this.transformCurrentDocument(this.getContentRootElement(),r-2,`y`);let e=a.scrollHeight;t==e?(this.transformCurrentDocument(this.getContentRootElement(),0,`y`),r=0,t=a.scrollHeight):this.transformCurrentDocument(this.getContentRootElement(),r,`y`)}}e=t+r,i=Math.floor(e/o.pageMoveLength),e%o.pageMoveLength>o.columnGap&&(i+=1)}else{let e=0,t=a.scrollWidth;t<1&&(t=1);let r=n.getTransformLength(a,`x`);if(Math.abs(r)>0&&c){let e=c.scrollWidth;if(t==e){this.transformCurrentDocument(this.getContentRootElement(),r-2,`x`);let e=a.scrollWidth;t==e?(this.transformCurrentDocument(this.getContentRootElement(),0,`x`),r=0,t=a.scrollWidth):this.transformCurrentDocument(this.getContentRootElement(),r,`x`)}}e=r+t,i=Math.floor(e/o.pageMoveLength),e%o.pageMoveLength>o.columnGap&&(i+=1)}return a.setAttribute(r.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName,i.toString()),i}getPageNumber(e){if(!e)return 1;let r=this.doc.getContentContainer()?.ownerDocument;if(!t.getDocumentBody(r)||t.compareTagName(`BODY`,e.tagName))return 1;let i=this.layout.getLayoutMetrics(),a=e.getBoundingClientRect(),o=1,s=this.options.writingMode??`horizontal-tb`,c=this.isVerticalWriting(s);if(c){let e=n.getTransformLength(r.documentElement,`y`),t=(a?.top??0)+e;o=Math.floor(t/i.pageMoveLength),t%i.pageMoveLength>=0&&(o+=1)}else{let e=n.getTransformLength(r.documentElement,`x`),t=(a?.left??0)+e;o=Math.floor(t/i.pageMoveLength),t>i.pageWidth&&t%i.pageMoveLength>=0&&(o+=1)}if(o==0&&(o=1),!c&&this.options.direction==`rtl`){let e=this.calcNumberOfPages();o=Math.max(1,e-o+1)}return o}getIframe(){return this.doc.getContentContainer()?.ownerDocument?.defaultView?.frameElement}getContentRootElement(){return this.doc.inIframe?this.doc.getContentContainer()?.ownerDocument?.documentElement:this.doc.getWrapperContainer()}transformCurrentDocument(e,t,n){!n||!e||(n==`x`?e.style.transform=`translateX(-`+parseFloat(t.toFixed(10))+`px)`:e.style.transform=`translateY(-`+parseFloat(t.toFixed(10))+`px)`)}isVerticalWriting(e){return e==`vertical-lr`||e==`vertical-rl`}};exports.HtmlPageCalculator=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/number.cjs"),t=require("../../../../kernal/html/finder.cjs"),n=require("../../../../kernal/html/style.cjs"),r=require("../../../../kernal/html/geometry.cjs"),i=require("../../HtmlSettings.cjs"),a=require("../layout/resolveLayoutRoute.cjs");var o=class{constructor(e,t,n){this.doc=e,this.layout=t,this.options=n}calcNumberOfPages(t){let r=1,o=a.getLayoutGeometry(this.options);if(o.flipMode==`scroll`)return r;let s=this.doc.getContentContainer()?.ownerDocument?.documentElement;if(!s||!s.firstElementChild)return 1;if(!t&&(r=e.parseNumber(s.getAttribute(i.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName),0,`parseInt`),r>1))return r;let c=this.layout.getLayoutMetrics(),l=this.getIframe(),u=o.getOccupiedLength(l,s),d=Math.max(1,u),f=n.getTransformLength(s,o.pageAxis);return Math.abs(f)>0&&(d=f+d),r=Math.floor(d/c.pageMoveLength),d%c.pageMoveLength>c.columnGap&&(r+=1),s.setAttribute(i.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName,r.toString()),r}getPageNumber(e){if(!e)return 1;let i=this.doc.getContentContainer()?.ownerDocument;if(!t.getDocumentBody(i)||!r.isDomRange(e)&&t.compareTagName(`BODY`,e.tagName))return 1;let o=this.layout.getLayoutMetrics(),s=a.getLayoutGeometry(this.options),c=r.getLocateClientRect(e),l=n.getTransformLength(i.documentElement,`x`),u=n.getTransformLength(i.documentElement,`y`),d=s.getLocateAxisOffset({left:c?.left??0,top:c?.top??0},l,u);return s.getPageNumberFromPoint({axisOffset:d,pageMoveLength:o.pageMoveLength,pageLength:s.getPageBoxLength(o),numberOfPages:this.calcNumberOfPages()})}getIframe(){return this.doc.getContentContainer()?.ownerDocument?.defaultView?.frameElement}};exports.HtmlPageCalculator=o;
@@ -1,3 +1,4 @@
1
+ import { LocateTarget } from '../../../../kernal/html/geometry';
1
2
  import { IRendererViewport } from '../../../../kernal/IRendererViewport';
2
3
  import { IHtmlDocument } from '../IHtmlDocument';
3
4
  import { HtmlLayoutMetrics } from '../layout/HtmlLayoutMetrics';
@@ -9,9 +10,6 @@ export declare class HtmlPageCalculator {
9
10
  private readonly options;
10
11
  constructor(doc: IHtmlDocument, layout: IRendererViewport<HtmlLayoutMetrics>, options: HtmlOptions);
11
12
  calcNumberOfPages(update?: boolean): number;
12
- getPageNumber(element: Element): number;
13
+ getPageNumber(target: LocateTarget): number;
13
14
  private getIframe;
14
- private getContentRootElement;
15
- private transformCurrentDocument;
16
- private isVerticalWriting;
17
15
  }