@foxycape/core 1.1.6 → 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 (508) 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/Context.cjs +1 -1
  7. package/dist/kernal/Context.mjs +13 -8
  8. package/dist/kernal/EventNames.cjs +1 -1
  9. package/dist/kernal/EventNames.d.ts +2 -0
  10. package/dist/kernal/EventNames.mjs +6 -0
  11. package/dist/kernal/FileLoader.cjs +1 -1
  12. package/dist/kernal/FileLoader.d.ts +3 -11
  13. package/dist/kernal/FileLoader.mjs +27 -22
  14. package/dist/kernal/JsonConvert.cjs +1 -1
  15. package/dist/kernal/JsonConvert.d.ts +0 -1
  16. package/dist/kernal/JsonConvert.mjs +17 -25
  17. package/dist/kernal/LifecycleHooks.d.ts +2 -1
  18. package/dist/kernal/Metadata.cjs +1 -1
  19. package/dist/kernal/Metadata.d.ts +34 -0
  20. package/dist/kernal/Metadata.mjs +47 -2
  21. package/dist/kernal/OpenOptions.d.ts +1 -0
  22. package/dist/kernal/Options.cjs +1 -1
  23. package/dist/kernal/Options.d.ts +2 -12
  24. package/dist/kernal/Options.mjs +1 -13
  25. package/dist/kernal/OptionsProvider.cjs +1 -1
  26. package/dist/kernal/OptionsProvider.d.ts +0 -2
  27. package/dist/kernal/OptionsProvider.mjs +6 -14
  28. package/dist/kernal/Reader.cjs +1 -1
  29. package/dist/kernal/Reader.d.ts +13 -12
  30. package/dist/kernal/Reader.mjs +119 -89
  31. package/dist/kernal/Theme.cjs +1 -1
  32. package/dist/kernal/Theme.mjs +1 -1
  33. package/dist/kernal/common/url.cjs +1 -1
  34. package/dist/kernal/common/url.d.ts +2 -0
  35. package/dist/kernal/common/url.mjs +2 -2
  36. package/dist/kernal/common/uuid.cjs +1 -1
  37. package/dist/kernal/common/uuid.mjs +7 -7
  38. package/dist/kernal/common/xxh64.cjs +1 -0
  39. package/dist/kernal/common/xxh64.d.ts +1 -0
  40. package/dist/kernal/common/xxh64.mjs +30 -0
  41. package/dist/kernal/crypto/MD5.cjs +1 -1
  42. package/dist/kernal/crypto/MD5.d.ts +0 -1
  43. package/dist/kernal/crypto/MD5.mjs +8 -9
  44. package/dist/kernal/crypto/WebCrypto.cjs +1 -1
  45. package/dist/kernal/crypto/WebCrypto.mjs +38 -35
  46. package/dist/kernal/deepClone/buffer.cjs +1 -1
  47. package/dist/kernal/deepClone/buffer.d.ts +8 -2
  48. package/dist/kernal/deepClone/buffer.mjs +1 -5
  49. package/dist/kernal/device/IDevice.d.ts +8 -2
  50. package/dist/kernal/device/WebBrowser.cjs +1 -1
  51. package/dist/kernal/device/WebBrowser.d.ts +12 -6
  52. package/dist/kernal/device/WebBrowser.mjs +70 -6
  53. package/dist/kernal/hostViewport.cjs +1 -0
  54. package/dist/kernal/hostViewport.d.ts +16 -0
  55. package/dist/kernal/hostViewport.mjs +44 -0
  56. package/dist/kernal/html/events.cjs +1 -1
  57. package/dist/kernal/html/events.mjs +35 -34
  58. package/dist/kernal/html/finder.cjs +1 -1
  59. package/dist/kernal/html/finder.d.ts +6 -2
  60. package/dist/kernal/html/finder.mjs +62 -51
  61. package/dist/kernal/html/geometry.cjs +1 -1
  62. package/dist/kernal/html/geometry.d.ts +26 -1
  63. package/dist/kernal/html/geometry.mjs +182 -121
  64. package/dist/kernal/html/manipulator.cjs +1 -1
  65. package/dist/kernal/html/manipulator.d.ts +1 -3
  66. package/dist/kernal/html/manipulator.mjs +34 -59
  67. package/dist/kernal/html/parser.cjs +1 -1
  68. package/dist/kernal/html/parser.mjs +3 -3
  69. package/dist/kernal/html/position.cjs +1 -1
  70. package/dist/kernal/html/position.d.ts +0 -18
  71. package/dist/kernal/html/position.mjs +2 -141
  72. package/dist/kernal/html/realm.cjs +1 -0
  73. package/dist/kernal/html/realm.d.ts +7 -0
  74. package/dist/kernal/html/realm.mjs +8 -0
  75. package/dist/kernal/html/selection.cjs +1 -1
  76. package/dist/kernal/html/selection.d.ts +1 -0
  77. package/dist/kernal/html/selection.mjs +33 -12
  78. package/dist/kernal/html/text.cjs +1 -1
  79. package/dist/kernal/html/text.d.ts +4 -3
  80. package/dist/kernal/html/text.mjs +24 -21
  81. package/dist/kernal/html/translationAnchor.cjs +1 -0
  82. package/dist/kernal/html/translationAnchor.d.ts +3 -0
  83. package/dist/kernal/html/translationAnchor.mjs +71 -0
  84. package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
  85. package/dist/kernal/i18n/DefaultLocale.d.ts +2 -2
  86. package/dist/kernal/i18n/DefaultLocale.mjs +7 -12
  87. package/dist/kernal/i18n/ILocale.d.ts +0 -1
  88. package/dist/kernal/i18n/applyNamed.cjs +1 -0
  89. package/dist/kernal/i18n/applyNamed.d.ts +1 -0
  90. package/dist/kernal/i18n/applyNamed.mjs +9 -0
  91. package/dist/kernal/i18n/textDirection.cjs +1 -0
  92. package/dist/kernal/i18n/textDirection.d.ts +6 -0
  93. package/dist/kernal/i18n/textDirection.mjs +7 -0
  94. package/dist/kernal/index.cjs +1 -1
  95. package/dist/kernal/index.d.ts +6 -5
  96. package/dist/kernal/index.mjs +50 -45
  97. package/dist/kernal/mark/IHighlighter.cjs +1 -0
  98. package/dist/kernal/mark/IHighlighter.d.ts +43 -0
  99. package/dist/kernal/mark/IHighlighter.mjs +13 -0
  100. package/dist/kernal/mark/Mark.cjs +1 -1
  101. package/dist/kernal/mark/Mark.d.ts +33 -4
  102. package/dist/kernal/mark/Mark.mjs +43 -6
  103. package/dist/kernal/mark/index.cjs +1 -1
  104. package/dist/kernal/mark/index.d.ts +2 -0
  105. package/dist/kernal/mark/index.mjs +6 -3
  106. package/dist/kernal/mark/overlay.cjs +1 -0
  107. package/dist/kernal/mark/overlay.d.ts +31 -0
  108. package/dist/kernal/mark/overlay.mjs +102 -0
  109. package/dist/kernal/mark/types.cjs +1 -0
  110. package/dist/kernal/mark/types.d.ts +11 -2
  111. package/dist/kernal/mark/types.mjs +4 -0
  112. package/dist/kernal/navigator/INavigator.d.ts +3 -2
  113. package/dist/kernal/network/HttpClient.cjs +1 -1
  114. package/dist/kernal/network/HttpClient.mjs +80 -56
  115. package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
  116. package/dist/kernal/pipelines/FileLoadPipeline.mjs +55 -56
  117. package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
  118. package/dist/kernal/pipelines/InputFormatter.mjs +43 -41
  119. package/dist/kernal/pipelines/metadata.cjs +1 -1
  120. package/dist/kernal/pipelines/metadata.d.ts +2 -1
  121. package/dist/kernal/pipelines/metadata.mjs +21 -30
  122. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
  123. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +7 -6
  124. package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
  125. package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +12 -11
  126. package/dist/kernal/progress/Progress.cjs +1 -1
  127. package/dist/kernal/progress/Progress.d.ts +5 -3
  128. package/dist/kernal/progress/Progress.mjs +2 -2
  129. package/dist/kernal/progress/userChangedProgress.cjs +1 -0
  130. package/dist/kernal/progress/userChangedProgress.d.ts +9 -0
  131. package/dist/kernal/progress/userChangedProgress.mjs +11 -0
  132. package/dist/kernal/screen/BrowserFullscreen.cjs +1 -0
  133. package/dist/kernal/screen/BrowserFullscreen.d.ts +9 -0
  134. package/dist/kernal/screen/BrowserFullscreen.mjs +47 -0
  135. package/dist/kernal/screen/IFullscreen.d.ts +6 -0
  136. package/dist/kernal/services/ServiceCollection.cjs +1 -1
  137. package/dist/kernal/services/ServiceCollection.d.ts +4 -6
  138. package/dist/kernal/services/ServiceCollection.mjs +18 -9
  139. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
  140. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +4 -2
  141. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +31 -23
  142. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
  143. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +52 -51
  144. package/dist/kernal/services/fileUrlParser/IFileUrlParser.d.ts +0 -1
  145. package/dist/kernal/services/font/IFontProvider.cjs +1 -1
  146. package/dist/kernal/services/font/IFontProvider.d.ts +3 -0
  147. package/dist/kernal/services/font/IFontProvider.mjs +1 -1
  148. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
  149. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +8 -8
  150. package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
  151. package/dist/kernal/services/loading/DefaultLoading.d.ts +4 -0
  152. package/dist/kernal/services/loading/DefaultLoading.mjs +23 -24
  153. package/dist/kernal/services/text/splitter.cjs +1 -1
  154. package/dist/kernal/services/text/splitter.mjs +3 -3
  155. package/dist/kernal/types.d.ts +0 -5
  156. package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
  157. package/dist/kernal/web/BrowserCapabilities.d.ts +0 -9
  158. package/dist/kernal/web/BrowserCapabilities.mjs +0 -49
  159. package/dist/kernal/{Debounce.mjs → web/debounce.mjs} +1 -1
  160. package/dist/kernal/web/scheduler.cjs +1 -0
  161. package/dist/kernal/web/scheduler.d.ts +3 -0
  162. package/dist/kernal/web/scheduler.mjs +7 -0
  163. package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
  164. package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +59 -59
  165. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -0
  166. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.d.ts +13 -0
  167. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +109 -0
  168. package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
  169. package/dist/mediaTypes/html/HtmlOptions.d.ts +6 -12
  170. package/dist/mediaTypes/html/HtmlOptions.mjs +3 -14
  171. package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
  172. package/dist/mediaTypes/html/HtmlSettings.d.ts +16 -1
  173. package/dist/mediaTypes/html/HtmlSettings.mjs +46 -1
  174. package/dist/mediaTypes/html/IHtmlContentNormalizer.cjs +1 -0
  175. package/dist/mediaTypes/html/IHtmlContentNormalizer.d.ts +4 -0
  176. package/dist/mediaTypes/html/IHtmlContentNormalizer.mjs +4 -0
  177. package/dist/mediaTypes/html/IHtmlSymbolMeasure.d.ts +11 -0
  178. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.cjs +1 -0
  179. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.d.ts +5 -0
  180. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.mjs +8 -0
  181. package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
  182. package/dist/mediaTypes/html/fileParser/HtmlFileParser.d.ts +5 -1
  183. package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +15 -18
  184. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
  185. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +25 -25
  186. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +1 -0
  187. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.d.ts +7 -3
  188. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +4 -0
  189. package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
  190. package/dist/mediaTypes/html/renderer/HtmlRenderer.d.ts +7 -1
  191. package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +65 -41
  192. package/dist/mediaTypes/html/renderer/IHtmlDocument.d.ts +6 -2
  193. package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.d.ts +5 -0
  194. package/dist/mediaTypes/html/renderer/IHtmlRenderer.d.ts +3 -0
  195. package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
  196. package/dist/mediaTypes/html/renderer/document/HtmlDocument.d.ts +29 -6
  197. package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +233 -86
  198. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
  199. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.d.ts +8 -0
  200. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +41 -5
  201. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
  202. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.d.ts +2 -4
  203. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +22 -59
  204. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
  205. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.d.ts +3 -5
  206. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +7 -25
  207. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
  208. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.d.ts +0 -2
  209. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +18 -42
  210. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
  211. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.d.ts +2 -0
  212. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +17 -4
  213. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
  214. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.d.ts +16 -1
  215. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +128 -54
  216. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
  217. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +26 -3
  218. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +227 -101
  219. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
  220. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -0
  221. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +45 -25
  222. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.cjs +1 -0
  223. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.d.ts +6 -0
  224. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.mjs +6 -0
  225. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.cjs +1 -0
  226. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.d.ts +2 -0
  227. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.mjs +13 -0
  228. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.cjs +1 -0
  229. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.d.ts +11 -0
  230. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.mjs +8 -0
  231. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
  232. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +62 -62
  233. package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
  234. package/dist/mediaTypes/html/renderer/html/template.d.ts +3 -1
  235. package/dist/mediaTypes/html/renderer/html/template.mjs +9 -9
  236. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
  237. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.d.ts +22 -12
  238. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +380 -270
  239. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
  240. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +27 -27
  241. package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.d.ts +8 -0
  242. package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -1
  243. package/dist/mediaTypes/html/renderer/image/error-image.mjs +1 -1
  244. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.cjs +1 -0
  245. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.d.ts +10 -0
  246. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.mjs +15 -0
  247. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.cjs +1 -0
  248. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.d.ts +2 -0
  249. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.mjs +12 -0
  250. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
  251. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.d.ts +6 -10
  252. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +71 -62
  253. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
  254. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.d.ts +4 -1
  255. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +113 -68
  256. package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.d.ts +8 -3
  257. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
  258. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.d.ts +5 -1
  259. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +15 -3
  260. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.cjs +1 -0
  261. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.d.ts +8 -0
  262. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.mjs +28 -0
  263. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.cjs +30 -0
  264. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.mjs +4 -0
  265. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.cjs +31 -0
  266. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.mjs +4 -0
  267. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.cjs +30 -0
  268. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.mjs +4 -0
  269. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.cjs +30 -0
  270. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.mjs +4 -0
  271. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.cjs +30 -0
  272. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.mjs +4 -0
  273. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.cjs +30 -0
  274. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.mjs +4 -0
  275. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.cjs +6 -0
  276. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.mjs +4 -0
  277. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.cjs +10 -0
  278. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.mjs +4 -0
  279. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.cjs +10 -0
  280. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.mjs +4 -0
  281. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.cjs +10 -0
  282. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.mjs +4 -0
  283. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.cjs +10 -0
  284. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.mjs +4 -0
  285. package/dist/mediaTypes/html/renderer/layout/css/document-default.cjs +19 -0
  286. package/dist/mediaTypes/html/renderer/layout/css/document-default.mjs +4 -0
  287. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.cjs +3 -0
  288. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.d.ts +2 -0
  289. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.mjs +56 -0
  290. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.cjs +64 -0
  291. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.mjs +4 -0
  292. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.cjs +33 -0
  293. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.mjs +4 -0
  294. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.cjs +33 -0
  295. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.mjs +4 -0
  296. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.cjs +47 -0
  297. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.mjs +4 -0
  298. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.cjs +47 -0
  299. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.mjs +4 -0
  300. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.cjs +46 -0
  301. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.mjs +4 -0
  302. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.cjs +46 -0
  303. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.mjs +4 -0
  304. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.cjs +7 -0
  305. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.mjs +4 -0
  306. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.cjs +28 -0
  307. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.mjs +4 -0
  308. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.cjs +28 -0
  309. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.mjs +4 -0
  310. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.cjs +28 -0
  311. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.mjs +4 -0
  312. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.cjs +28 -0
  313. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.mjs +4 -0
  314. package/dist/mediaTypes/html/renderer/layout/css/root-direction.cjs +8 -0
  315. package/dist/mediaTypes/html/renderer/layout/css/root-direction.mjs +4 -0
  316. package/dist/mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.d.ts +128 -0
  317. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.cjs +1 -0
  318. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.d.ts +4 -0
  319. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.mjs +7 -0
  320. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.cjs +1 -0
  321. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.d.ts +1 -0
  322. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.mjs +13 -0
  323. package/dist/mediaTypes/html/renderer/layout/geometry/index.cjs +1 -0
  324. package/dist/mediaTypes/html/renderer/layout/geometry/index.d.ts +18 -0
  325. package/dist/mediaTypes/html/renderer/layout/geometry/index.mjs +30 -0
  326. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.cjs +1 -0
  327. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.d.ts +3 -0
  328. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.mjs +71 -0
  329. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.cjs +1 -0
  330. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.d.ts +3 -0
  331. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.mjs +74 -0
  332. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.cjs +1 -0
  333. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.d.ts +3 -0
  334. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.mjs +71 -0
  335. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.cjs +1 -0
  336. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.d.ts +3 -0
  337. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.mjs +71 -0
  338. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.cjs +1 -0
  339. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.d.ts +3 -0
  340. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.mjs +71 -0
  341. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.cjs +1 -0
  342. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.d.ts +3 -0
  343. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.mjs +71 -0
  344. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.cjs +1 -0
  345. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.d.ts +41 -0
  346. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.mjs +53 -0
  347. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.cjs +1 -0
  348. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.d.ts +3 -0
  349. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.mjs +71 -0
  350. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.cjs +1 -0
  351. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.d.ts +3 -0
  352. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.mjs +74 -0
  353. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.cjs +1 -0
  354. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.d.ts +3 -0
  355. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.mjs +71 -0
  356. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.cjs +1 -0
  357. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.d.ts +3 -0
  358. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.mjs +71 -0
  359. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.cjs +1 -0
  360. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.d.ts +3 -0
  361. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.mjs +74 -0
  362. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.cjs +1 -0
  363. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.d.ts +3 -0
  364. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.mjs +74 -0
  365. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.cjs +1 -0
  366. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.d.ts +10 -0
  367. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.mjs +17 -0
  368. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -0
  369. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.d.ts +6 -0
  370. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +24 -0
  371. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.cjs +1 -0
  372. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.d.ts +9 -0
  373. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.mjs +4 -0
  374. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.cjs +1 -0
  375. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.d.ts +11 -0
  376. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.mjs +9 -0
  377. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
  378. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +32 -34
  379. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -0
  380. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.d.ts +23 -0
  381. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +164 -0
  382. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.cjs +1 -0
  383. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.d.ts +4 -0
  384. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.mjs +13 -0
  385. package/dist/mediaTypes/html/renderer/location/scrollActivity.cjs +1 -0
  386. package/dist/mediaTypes/html/renderer/location/scrollActivity.d.ts +14 -0
  387. package/dist/mediaTypes/html/renderer/location/scrollActivity.mjs +18 -0
  388. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
  389. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +2 -2
  390. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
  391. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +3 -3
  392. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
  393. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +55 -59
  394. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
  395. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.d.ts +1 -0
  396. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +40 -39
  397. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
  398. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.d.ts +2 -1
  399. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +36 -24
  400. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
  401. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.d.ts +4 -0
  402. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +19 -1
  403. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
  404. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.d.ts +3 -0
  405. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +9 -0
  406. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
  407. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +3 -0
  408. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +28 -16
  409. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
  410. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.d.ts +2 -0
  411. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +39 -34
  412. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.cjs +0 -0
  413. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.d.ts +6 -0
  414. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.mjs +0 -0
  415. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.cjs +1 -0
  416. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.d.ts +18 -0
  417. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.mjs +52 -0
  418. package/dist/mediaTypes/html/renderer/style/html-content.cjs +38 -7
  419. package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
  420. package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
  421. package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +6 -13
  422. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  423. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.d.ts +5 -4
  424. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -3
  425. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
  426. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.d.ts +4 -4
  427. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +24 -14
  428. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.cjs +1 -0
  429. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.d.ts +6 -0
  430. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.mjs +4 -0
  431. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.cjs +1 -0
  432. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.d.ts +10 -0
  433. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.mjs +33 -0
  434. package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
  435. package/dist/mediaTypes/pdf/loadPdfDocument.mjs +18 -19
  436. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.d.ts +2 -0
  437. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +1 -1
  438. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
  439. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +2 -2
  440. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
  441. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.d.ts +0 -1
  442. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +0 -3
  443. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  444. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +3 -3
  445. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
  446. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +3 -3
  447. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
  448. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.d.ts +3 -3
  449. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +20 -19
  450. package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
  451. package/dist/mediaTypes/pdf/renderer/PdfRenderer.d.ts +1 -0
  452. package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +20 -20
  453. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
  454. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +51 -50
  455. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
  456. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +55 -56
  457. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.cjs +1 -0
  458. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.d.ts +3 -0
  459. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.mjs +12 -0
  460. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
  461. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.d.ts +4 -0
  462. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +24 -5
  463. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
  464. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +32 -32
  465. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
  466. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +1 -1
  467. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
  468. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +5 -5
  469. package/dist/mediaTypes/pdf/shared/text/pageText.cjs +2 -2
  470. package/dist/mediaTypes/pdf/shared/text/pageText.d.ts +14 -0
  471. package/dist/mediaTypes/pdf/shared/text/pageText.mjs +139 -47
  472. package/dist/node_modules/highlight.js/styles/github-dark.cjs +118 -0
  473. package/dist/node_modules/highlight.js/styles/github-dark.mjs +4 -0
  474. package/dist/node_modules/highlight.js/styles/github.cjs +118 -0
  475. package/dist/node_modules/highlight.js/styles/github.mjs +4 -0
  476. package/dist/pdfjs/package.json +1 -0
  477. package/package.json +11 -5
  478. package/dist/kernal/device/IEnvironment.d.ts +0 -5
  479. package/dist/kernal/device/IPlatform.d.ts +0 -7
  480. package/dist/kernal/device/WebEnvironment.cjs +0 -1
  481. package/dist/kernal/device/WebEnvironment.d.ts +0 -7
  482. package/dist/kernal/device/WebEnvironment.mjs +0 -22
  483. package/dist/kernal/device/WebPlatform.cjs +0 -1
  484. package/dist/kernal/device/WebPlatform.d.ts +0 -12
  485. package/dist/kernal/device/WebPlatform.mjs +0 -49
  486. package/dist/kernal/progress/IReadingProgressStore.d.ts +0 -7
  487. package/dist/kernal/progress/ReadingProgressStore.cjs +0 -1
  488. package/dist/kernal/progress/ReadingProgressStore.d.ts +0 -12
  489. package/dist/kernal/progress/ReadingProgressStore.mjs +0 -17
  490. package/dist/kernal/storage/IStorage.cjs +0 -1
  491. package/dist/kernal/storage/IStorage.d.ts +0 -21
  492. package/dist/kernal/storage/IStorage.mjs +0 -4
  493. package/dist/kernal/storage/WebStorage.cjs +0 -1
  494. package/dist/kernal/storage/WebStorage.d.ts +0 -31
  495. package/dist/kernal/storage/WebStorage.mjs +0 -165
  496. package/dist/mediaTypes/adjacent.cjs +0 -1
  497. package/dist/mediaTypes/adjacent.d.ts +0 -5
  498. package/dist/mediaTypes/adjacent.mjs +0 -42
  499. package/dist/mediaTypes/html/renderer/image/placeholder.cjs +0 -1
  500. package/dist/mediaTypes/html/renderer/image/placeholder.mjs +0 -4
  501. /package/dist/kernal/{device/IEnvironment.cjs → screen/IFullscreen.cjs} +0 -0
  502. /package/dist/kernal/{device/IEnvironment.mjs → screen/IFullscreen.mjs} +0 -0
  503. /package/dist/kernal/{Debounce.cjs → web/debounce.cjs} +0 -0
  504. /package/dist/kernal/{Debounce.d.ts → web/debounce.d.ts} +0 -0
  505. /package/dist/{kernal/device/IPlatform.cjs → mediaTypes/html/IHtmlSymbolMeasure.cjs} +0 -0
  506. /package/dist/{kernal/device/IPlatform.mjs → mediaTypes/html/IHtmlSymbolMeasure.mjs} +0 -0
  507. /package/dist/{kernal/progress/IReadingProgressStore.cjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.cjs} +0 -0
  508. /package/dist/{kernal/progress/IReadingProgressStore.mjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.mjs} +0 -0
@@ -1,20 +1,25 @@
1
1
  import { EventNames as e } from "../../../../kernal/EventNames.mjs";
2
2
  import { FileLocation as t } from "../../../../kernal/progress/Progress.mjs";
3
- import { PageChangeOptions as n } from "../../../../kernal/navigator/IPagingNavigator.mjs";
3
+ import { applyPagingLocationFrom as n } from "../../../../kernal/progress/userChangedProgress.mjs";
4
+ import { PageChangeOptions as r } from "../../../../kernal/navigator/IPagingNavigator.mjs";
5
+ import { getLayoutGeometry as i } from "../layout/resolveLayoutRoute.mjs";
4
6
  //#region mediaTypes/html/renderer/navigator/HtmlPagingNavigator.ts
5
- var r = class {
6
- constructor(t, r, i) {
7
- this.documentsProvider = t, this.htmlCoreNavigator = r, this.options = i, this.notify = async (t, r, i) => {
8
- let a = new n();
9
- if (a.doc = t, a.pageNumber = r, a.extra = i, this.state) {
10
- let n = this.documentsProvider.getDocuments(), i = n.indexOf(this.state.doc), o = n.indexOf(t);
11
- a.direction = i == o ? r > this.state.pageNumber ? "next" : "previous" : o > i ? "next" : "previous", this.owner.events.emit(e.PageChange, a), this.state = {
7
+ var a = class {
8
+ constructor(t, n, i) {
9
+ this.documentsProvider = t, this.htmlCoreNavigator = n, this.options = i, this.resolveCurrentDocument = (e) => {
10
+ let t = this.owner.context.currentLocation?.url, n = t ? this.documentsProvider.getDocument(t) : null;
11
+ return n?.getLoadStatus() === "success" ? n : e === "next" ? this.documentsProvider.getFirstVisibleDocument() : this.documentsProvider.getLastVisibleDocument();
12
+ }, this.notify = async (t, n, i) => {
13
+ let a = new r();
14
+ if (a.doc = t, a.pageNumber = n, a.extra = i, this.state) {
15
+ let r = this.documentsProvider.getDocuments(), i = r.indexOf(this.state.doc), o = r.indexOf(t);
16
+ a.direction = i == o ? n > this.state.pageNumber ? "next" : "previous" : o > i ? "next" : "previous", this.owner.events.emit(e.PageChange, a), this.state = {
12
17
  doc: t,
13
- pageNumber: r
18
+ pageNumber: n
14
19
  };
15
20
  } else this.state = {
16
21
  doc: t,
17
- pageNumber: r
22
+ pageNumber: n
18
23
  }, a.direction = "next", this.owner.events.emit(e.PageChange, a);
19
24
  }, this.owner = t.owner, this.locale = this.owner.locale, this.logger = this.owner.loggerFactory.getLogger(this.constructor.name);
20
25
  }
@@ -24,56 +29,52 @@ var r = class {
24
29
  async gotoPage(e, t, n) {
25
30
  return await this.internalGotoPage(e, t, null, n);
26
31
  }
27
- async internalGotoPage(e, n, r, i) {
28
- if (this.options.flipMode == "scroll") return this.logger.warn(this.locale?.getText("unsupportTurnPageWhenScrolling", "Page turning is not supported in scroll mode")), !1;
32
+ async internalGotoPage(e, r, a, o) {
33
+ if (i(this.options).flipMode == "scroll") return this.logger.warn(this.locale?.getText("unsupportTurnPageWhenScrolling", "Page turning is not supported in scroll mode")), !1;
29
34
  await e.load();
30
- let a = await e.getNumberOfPages(), o = new t(e.url, a, "page");
31
- if (o.current = n, o.direction = r, n <= 0) {
32
- let n = this.documentsProvider.getDocuments(), r = n.indexOf(e);
33
- if (r == 0) return this.owner.notifier.info(this.locale.getText("navigotor_alreadyisfirstpage", "Already at the first page")), !1;
34
- let a = n[r - 1];
35
+ let s = await e.getNumberOfPages(), c = new t(e.url, s, "page");
36
+ if (c.current = r, c.direction = a, n(c, o), r <= 0) {
37
+ let r = this.documentsProvider.getDocuments(), i = r.indexOf(e);
38
+ if (i == 0) return this.owner.notifier.info(this.locale.getText("navigotor_alreadyisfirstpage", "Already at the first page")), !1;
39
+ let a = r[i - 1];
35
40
  await a.load();
36
41
  let s = await a.getNumberOfPages();
37
- return o = new t(a.url, s, "page"), o.current = s, o.direction = "previous", await this.htmlCoreNavigator.goto(o), await this.notify(a, s, i), !0;
42
+ return c = new t(a.url, s, "page"), c.current = s, c.direction = "previous", n(c, o), await this.htmlCoreNavigator.goto(c), await this.notify(a, s, o), !0;
38
43
  }
39
- if (n > a) {
40
- let n = this.documentsProvider.getDocuments(), r = n.indexOf(e);
41
- if (r == n.length - 1) return this.owner.notifier.info(this.locale.getText("navigotor_alreadyislastpage", "Already at the last page")), !1;
42
- let a = n[r + 1];
44
+ if (r > s) {
45
+ let r = this.documentsProvider.getDocuments(), i = r.indexOf(e);
46
+ if (i == r.length - 1) return this.owner.notifier.info(this.locale.getText("navigotor_alreadyislastpage", "You have reached the end of the book.")), !1;
47
+ let a = r[i + 1];
43
48
  await a.load();
44
49
  let s = await a.getNumberOfPages();
45
- return o = new t(a.url, s, "page"), o.current = 1, o.direction = "next", await this.htmlCoreNavigator.goto(o), await this.notify(a, 1, i), !0;
50
+ return c = new t(a.url, s, "page"), c.current = 1, c.direction = "next", n(c, o), await this.htmlCoreNavigator.goto(c), await this.notify(a, 1, o), !0;
46
51
  }
47
- return await this.htmlCoreNavigator.goto(o), await this.notify(e, n, i), !0;
52
+ return await this.htmlCoreNavigator.goto(c), await this.notify(e, r, o), !0;
48
53
  }
49
54
  async gotoNextPage(e) {
50
- if (this.options.flipMode == "scroll") return !1;
51
- let t = this.documentsProvider.getFirstVisibleDocument();
55
+ if (i(this.options).flipMode == "scroll") return !1;
56
+ let t = this.resolveCurrentDocument("next");
52
57
  if (!t) {
53
58
  let e = this.documentsProvider.getDocuments();
54
59
  t = e[e.length - 1];
55
60
  }
56
61
  await t.load();
57
- let n = this.documentsProvider.getCurrentPageNumber(t);
58
- this.state = {
62
+ let { current: n } = await this.documentsProvider.syncPageState(t);
63
+ return this.state = {
59
64
  doc: t,
60
65
  pageNumber: n
61
- };
62
- let r = n + 1;
63
- return await this.internalGotoPage(t, r, "next", e);
66
+ }, await this.internalGotoPage(t, n + 1, "next", e);
64
67
  }
65
68
  async gotoPreviousPage(e) {
66
- if (this.options.flipMode == "scroll") return !1;
67
- let t = this.documentsProvider.getLastVisibleDocument();
69
+ if (i(this.options).flipMode == "scroll") return !1;
70
+ let t = this.resolveCurrentDocument("previous");
68
71
  t ||= this.documentsProvider.getDocuments()[0], await t.load();
69
- let n = this.documentsProvider.getCurrentPageNumber(t);
70
- this.state = {
72
+ let { current: n } = await this.documentsProvider.syncPageState(t);
73
+ return this.state = {
71
74
  doc: t,
72
75
  pageNumber: n
73
- };
74
- let r = n - 1;
75
- return await this.internalGotoPage(t, r, "previous", e);
76
+ }, await this.internalGotoPage(t, n - 1, "previous", e);
76
77
  }
77
78
  };
78
79
  //#endregion
79
- export { r as HtmlPagingNavigator };
80
+ export { a as HtmlPagingNavigator };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/common/url.cjs"),r=require("../../../../kernal/progress/Progress.cjs"),i=require("../../../../kernal/Constants.cjs"),a=require("../../../../kernal/html/finder.cjs"),o=require("../../../../kernal/Debounce.cjs"),s=require("../document/HtmlSymbolCalclator.cjs"),c=require("./adjacent.cjs");var l=class{constructor(t,n,r){this.owner=t,this.documentsProvider=n,this.options=r,this.updateProgress=async()=>{if(!this.owner.context.userChangedProgress)return;let t=await this.getProgress(!0);t&&(this.owner.context.progress=t,this.owner.context.currentLocation=t.location,!(this.owner.onProgressChangeGuard&&!this.owner.onProgressChangeGuard(t.current))&&this.owner.events.emit(e.EventNames.ProgressChange,t))},this.delayUpdateProgress=o.throttle(this.updateProgress,300,!0),this.logger=t.loggerFactory.getLogger(this.constructor.name)}notifyProgressChange(){this.delayUpdateProgress()}async calcProgress(e){try{let t=await this.getTotalPercentage(e);if(t>=0){let n=new r.Progress(1,t);return n.location=e,n}return null}catch(e){return this.logger.error(e),null}}async getTotalPercentage(e){try{if(!e?.url)return null;let r,i=n.getUrlFragment(e.url),o=i.urlWithoutAnchor,s=i.anchor;if(e.tagName)r=await this.getPassedPercentage(o,{tagName:e.tagName,tagIndex:e.tagIndex},!0);else if(e.current>=0){let t=e.current;r=await this.getPassedPercentage(o,t,!0)}else{let e=this.documentsProvider.getDocument(o).getContentContainer().ownerDocument,n=a.getDocumentBody(e);if(!t.isNullOrWhiteSpace(s)){let t=e.getElementById(s);t!=null&&(n=t)}r=await this.getPassedPercentage(o,n,!0)}return r}catch(e){return this.logger.error(e),null}}async getProgress(e){if(!e&&this.owner.context.progress)return this.owner.context.progress;let t=this.documentsProvider.getFirstVisibleDocument(!0);if(!t)return null;let n=t.getVisibleElements(!0);if(n.length===0)return null;let i=n[0],a=i.getBoundingClientRect();if(a.width===0&&a.height===0)return null;let o=t.getContentContainer()?.ownerDocument?.fullscreenElement;o&&(i=o);let s=this.createElementLocation(t,i);if(s.offsetTop=this.calcVisibleElementOffsetTop(i,t,!!o),s.precise=!0,s.ignoreOverlayHeader=!0,s.scrollBehavior=`smooth`,s.text=c.getAdjacentText(this.documentsProvider,this.options.htmlBlockTags,t.extension,i),this.options.flipMode===`page`){let e=this.documentsProvider.getCurrentPageNumber(t),n=await t.getNumberOfPages();s.unit=`page`,s.current=e,s.total=n}let l,u=this.documentsProvider.getLastVisibleDocument(!0),d=u?.getVisibleElements()??[],f=d[d.length-1];l=u&&f?await this.getPassedPercentage(u.url,f,!0):await this.getTotalPercentage(s);let p=new r.Progress(1,l);return p.location=s,p}createElementLocation(e,t){let n=new r.FileLocation(e.url,1,`ratio`);return n.tagName=t.tagName,n.tagIndex=a.getElementIndex(t.ownerDocument,t),n}calcVisibleElementOffsetTop(e,t,n){if(n)return 50;let r=e.getBoundingClientRect(),i=(t.getContentContainer()?.ownerDocument?.defaultView?.frameElement)?.getBoundingClientRect().top??0,a=this.options.flipMode===`scroll`?r.top+i:r.top,o=this.documentsProvider.getScrollElement();return o&&(a-=o.getBoundingClientRect().top),a||void 0}async getPassedPercentage(e,n,r){let o=await this.documentsProvider.fileParser.getSpineFiles(),s=!t.isNullOrWhiteSpace(e)&&!isNaN(e)?parseInt(e):o.findIndex(t=>t.url==e),c=o[s],l=this.documentsProvider.getDocument(e),u=s==o.length-1,d=await this.getDocumentPercentage(l,n);if(u&&typeof n!=`number`&&r){let e=l.getContentContainer();e||=a.getDocumentBody((await l.getVirtualContentContainer())?.ownerDocument);let t=e?.querySelector(`[`+i.LastElementAttributeName+`='true']`),n=l.getVisibleElements(!0);if(t&&n.includes(t)||d>=1)return 1}let f=d*c.ratio;return u&&d>=1?1:c.startProgress+f}async getDocumentPercentage(e,t){if(typeof t==`number`){if(t<1)return t;if(this.options.flipMode===`scroll`)return t<=1?t:0;await e.load();let n=await e.getNumberOfPages();return n<=0?0:Math.min(Math.max(t,0),n)/n}let n=new s.HtmlSymbolCalclator(e,this.options);try{return await n.getProgressByElement(t,this.options.symbolType)}finally{await n.dispose()}}async getPercentage(e,n){if(t.isNullOrWhiteSpace(e))throw Error(this.owner.locale?.getText(`missingLocationUrl`,`missing location url`));return await this.getPassedPercentage(e,n)}async dispose(){}};exports.HtmlProgressTracker=l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/common/url.cjs"),r=require("../../../../kernal/progress/Progress.cjs"),i=require("../../../../kernal/Constants.cjs"),a=require("../../../../kernal/html/finder.cjs"),o=require("../../../../kernal/web/debounce.cjs"),s=require("../../../../kernal/html/geometry.cjs"),c=require("../layout/resolveLayoutRoute.cjs"),l=require("../../fileParser/IHtmlFileParser.cjs"),u=require("./adjacent.cjs");var d=class{constructor(t,n,r){this.owner=t,this.documentsProvider=n,this.options=r,this.updateProgress=async()=>{if(!this.owner.context.userChangedProgress)return;let t=await this.getProgress(!0);t&&(this.owner.context.progress=t,this.owner.context.currentLocation=t.location,!(this.owner.onProgressChangeGuard&&!this.owner.onProgressChangeGuard(t.current))&&this.owner.events.emit(e.EventNames.ProgressChange,t))},this.delayUpdateProgress=o.debounce(this.updateProgress,300),this.logger=t.loggerFactory.getLogger(this.constructor.name)}notifyProgressChange(){this.delayUpdateProgress()}async calcProgress(e){try{let t=await this.getTotalPercentage(e);if(t>=0){let n=new r.Progress(1,t);return n.location=e,n}return null}catch(e){return this.logger.error(e),null}}async getTotalPercentage(e){try{if(!e?.url)return null;let r,i=n.getUrlFragment(e.url),o=i.urlWithoutAnchor,s=i.anchor;if(e.tagName)r=await this.getPassedPercentage(o,{tagName:e.tagName,tagIndex:e.tagIndex},!0);else if(e.current>=0){let t=e.current;r=await this.getPassedPercentage(o,t,!0)}else{let e=this.documentsProvider.getDocument(o).getContentContainer().ownerDocument,n=a.getDocumentBody(e);if(!t.isNullOrWhiteSpace(s)){let t=e.getElementById(s);t!=null&&(n=t)}r=await this.getPassedPercentage(o,n,!0)}return r}catch(e){return this.logger.error(e),null}}async getProgress(e){if(!e&&this.owner.context.progress)return this.owner.context.progress;let t=this.documentsProvider.getFirstVisibleDocument(!0);if(!t)return null;let n=t.getVisibleElements();if(n.length===0)return null;let i=n[0],a=i.getBoundingClientRect();if(a.width===0&&a.height===0)return null;let o=t.getContentContainer()?.ownerDocument?.fullscreenElement;o&&(i=o);let s=this.createElementLocation(t,i),l=c.getLayoutGeometry(this.options),d=!!o,f=d?void 0:this.findVisibleTextAnchor(i,t,l.writingMode);f&&(s.textOffset=f.textOffset);let p=f?.rect??a;if(l.blockAxis==`x`?s.offsetLeft=this.calcVisibleRectOffset(p,t,d,`x`):s.offsetTop=this.calcVisibleRectOffset(p,t,d,`y`),s.precise=!0,s.ignoreOverlayHeader=!0,s.scrollBehavior=`smooth`,s.text=u.getAdjacentText(this.documentsProvider,this.options.htmlBlockTags,t.extension,i),l.flipMode===`page`&&s.textOffset==null){let e=this.documentsProvider.getCurrentPageNumber(t),n=await t.getNumberOfPages();s.unit=`page`,s.current=e,s.total=n}let m,h=this.documentsProvider.getLastVisibleDocument(!0),g=h?.getVisibleElements()??[],_=g[g.length-1];m=h&&_?await this.getPassedPercentage(h.url,_,!0):await this.getTotalPercentage(s);let v=new r.Progress(1,m);return v.location=s,v}createElementLocation(e,t){let n=new r.FileLocation(e.url,1,`ratio`);return n.tagName=t.tagName,n.tagIndex=a.getElementIndex(t.ownerDocument,t),n}findVisibleTextAnchor(e,t,n){let r=e.ownerDocument?.defaultView??t.getContentContainer()?.ownerDocument?.defaultView;if(!r)return;let i=this.documentsProvider.getRendererContainer()?.getBoundingClientRect().top??0,a=s.resolveVisibleViewportInContentWindow(r,{topInset:i});if(a)return s.findFirstVisibleTextOffset(e,a,n)}calcVisibleRectOffset(e,t,n,r){if(n)return 50;let i=(t.getContentContainer()?.ownerDocument?.defaultView?.frameElement)?.getBoundingClientRect(),a=c.getLayoutGeometry(this.options).flipMode===`scroll`,o=r==`x`?a?e.left+(i?.left??0):e.left:a?e.top+(i?.top??0):e.top,s=this.documentsProvider.getScrollElement();if(s){let e=s.getBoundingClientRect();o-=r==`x`?e.left:e.top}return o||void 0}async getPassedPercentage(e,n,r){let o=await this.documentsProvider.fileParser.getSpineFiles(),s=!t.isNullOrWhiteSpace(e)&&!isNaN(e)?parseInt(e):o.findIndex(t=>t.url==e),c=o[s],l=this.documentsProvider.getDocument(e),u=s==o.length-1,d=await this.getDocumentPercentage(l,n);if(u&&typeof n!=`number`&&r){let e=l.getContentContainer();e||=a.getDocumentBody((await l.getVirtualContentContainer())?.ownerDocument);let t=e?.querySelector(`[`+i.LastElementAttributeName+`='true']`),n=l.getVisibleElements(!0);if(t&&n.includes(t)||d>=1)return 1}let f=d*c.ratio;return u&&d>=1?1:c.startProgress+f}async getDocumentPercentage(e,t){if(typeof t==`number`){if(t<1)return t;if(c.getLayoutGeometry(this.options).flipMode===`scroll`)return t<=1?t:0;await e.load();let n=await e.getNumberOfPages();return n<=0?0:Math.min(Math.max(t,0),n)/n}let n=l.asHtmlFileParser(this.documentsProvider.fileParser).symbolMeasure.defaultSymbolType;return await e.symbolCalclator.getProgressByElement(t,n)}async getPercentage(e,n){if(t.isNullOrWhiteSpace(e))throw Error(this.owner.locale?.getText(`missingLocationUrl`,`missing location url`));return await this.getPassedPercentage(e,n)}async dispose(){await this.updateProgress()}};exports.HtmlProgressTracker=d;
@@ -14,7 +14,8 @@ export declare class HtmlProgressTracker implements IHtmlProgressTracker {
14
14
  private getTotalPercentage;
15
15
  getProgress(precise?: boolean): Promise<Progress>;
16
16
  private createElementLocation;
17
- private calcVisibleElementOffsetTop;
17
+ private findVisibleTextAnchor;
18
+ private calcVisibleRectOffset;
18
19
  private getPassedPercentage;
19
20
  private getDocumentPercentage;
20
21
  getPercentage(url: string, target: Element | number | {
@@ -4,17 +4,19 @@ import { getUrlFragment as n } from "../../../../kernal/common/url.mjs";
4
4
  import { FileLocation as r, Progress as i } from "../../../../kernal/progress/Progress.mjs";
5
5
  import { LastElementAttributeName as a } from "../../../../kernal/Constants.mjs";
6
6
  import { getDocumentBody as o, getElementIndex as s } from "../../../../kernal/html/finder.mjs";
7
- import { throttle as c } from "../../../../kernal/Debounce.mjs";
8
- import { HtmlSymbolCalclator as l } from "../document/HtmlSymbolCalclator.mjs";
9
- import { getAdjacentText as u } from "./adjacent.mjs";
7
+ import { debounce as c } from "../../../../kernal/web/debounce.mjs";
8
+ import { findFirstVisibleTextOffset as l, resolveVisibleViewportInContentWindow as u } from "../../../../kernal/html/geometry.mjs";
9
+ import { getLayoutGeometry as d } from "../layout/resolveLayoutRoute.mjs";
10
+ import { asHtmlFileParser as f } from "../../fileParser/IHtmlFileParser.mjs";
11
+ import { getAdjacentText as p } from "./adjacent.mjs";
10
12
  //#region mediaTypes/html/renderer/progress/HtmlProgressTracker.ts
11
- var d = class {
13
+ var m = class {
12
14
  constructor(t, n, r) {
13
15
  this.owner = t, this.documentsProvider = n, this.options = r, this.updateProgress = async () => {
14
16
  if (!this.owner.context.userChangedProgress) return;
15
17
  let t = await this.getProgress(!0);
16
18
  t && (this.owner.context.progress = t, this.owner.context.currentLocation = t.location, !(this.owner.onProgressChangeGuard && !this.owner.onProgressChangeGuard(t.current)) && this.owner.events.emit(e.ProgressChange, t));
17
- }, this.delayUpdateProgress = c(this.updateProgress, 300, !0), this.logger = t.loggerFactory.getLogger(this.constructor.name);
19
+ }, this.delayUpdateProgress = c(this.updateProgress, 300), this.logger = t.loggerFactory.getLogger(this.constructor.name);
18
20
  }
19
21
  notifyProgressChange() {
20
22
  this.delayUpdateProgress();
@@ -59,30 +61,42 @@ var d = class {
59
61
  if (!e && this.owner.context.progress) return this.owner.context.progress;
60
62
  let t = this.documentsProvider.getFirstVisibleDocument(!0);
61
63
  if (!t) return null;
62
- let n = t.getVisibleElements(!0);
64
+ let n = t.getVisibleElements();
63
65
  if (n.length === 0) return null;
64
66
  let r = n[0], a = r.getBoundingClientRect();
65
67
  if (a.width === 0 && a.height === 0) return null;
66
68
  let o = t.getContentContainer()?.ownerDocument?.fullscreenElement;
67
69
  o && (r = o);
68
- let s = this.createElementLocation(t, r);
69
- if (s.offsetTop = this.calcVisibleElementOffsetTop(r, t, !!o), s.precise = !0, s.ignoreOverlayHeader = !0, s.scrollBehavior = "smooth", s.text = u(this.documentsProvider, this.options.htmlBlockTags, t.extension, r), this.options.flipMode === "page") {
70
+ let s = this.createElementLocation(t, r), c = d(this.options), l = !!o, u = l ? void 0 : this.findVisibleTextAnchor(r, t, c.writingMode);
71
+ u && (s.textOffset = u.textOffset);
72
+ let f = u?.rect ?? a;
73
+ if (c.blockAxis == "x" ? s.offsetLeft = this.calcVisibleRectOffset(f, t, l, "x") : s.offsetTop = this.calcVisibleRectOffset(f, t, l, "y"), s.precise = !0, s.ignoreOverlayHeader = !0, s.scrollBehavior = "smooth", s.text = p(this.documentsProvider, this.options.htmlBlockTags, t.extension, r), c.flipMode === "page" && s.textOffset == null) {
70
74
  let e = this.documentsProvider.getCurrentPageNumber(t), n = await t.getNumberOfPages();
71
75
  s.unit = "page", s.current = e, s.total = n;
72
76
  }
73
- let c, l = this.documentsProvider.getLastVisibleDocument(!0), d = l?.getVisibleElements() ?? [], f = d[d.length - 1];
74
- c = l && f ? await this.getPassedPercentage(l.url, f, !0) : await this.getTotalPercentage(s);
75
- let p = new i(1, c);
76
- return p.location = s, p;
77
+ let m, h = this.documentsProvider.getLastVisibleDocument(!0), g = h?.getVisibleElements() ?? [], _ = g[g.length - 1];
78
+ m = h && _ ? await this.getPassedPercentage(h.url, _, !0) : await this.getTotalPercentage(s);
79
+ let v = new i(1, m);
80
+ return v.location = s, v;
77
81
  }
78
82
  createElementLocation(e, t) {
79
83
  let n = new r(e.url, 1, "ratio");
80
84
  return n.tagName = t.tagName, n.tagIndex = s(t.ownerDocument, t), n;
81
85
  }
82
- calcVisibleElementOffsetTop(e, t, n) {
86
+ findVisibleTextAnchor(e, t, n) {
87
+ let r = e.ownerDocument?.defaultView ?? t.getContentContainer()?.ownerDocument?.defaultView;
88
+ if (!r) return;
89
+ let i = this.documentsProvider.getRendererContainer()?.getBoundingClientRect().top ?? 0, a = u(r, { topInset: i });
90
+ if (a) return l(e, a, n);
91
+ }
92
+ calcVisibleRectOffset(e, t, n, r) {
83
93
  if (n) return 50;
84
- let r = e.getBoundingClientRect(), i = (t.getContentContainer()?.ownerDocument?.defaultView?.frameElement)?.getBoundingClientRect().top ?? 0, a = this.options.flipMode === "scroll" ? r.top + i : r.top, o = this.documentsProvider.getScrollElement();
85
- return o && (a -= o.getBoundingClientRect().top), a || void 0;
94
+ let i = (t.getContentContainer()?.ownerDocument?.defaultView?.frameElement)?.getBoundingClientRect(), a = d(this.options).flipMode === "scroll", o = r == "x" ? a ? e.left + (i?.left ?? 0) : e.left : a ? e.top + (i?.top ?? 0) : e.top, s = this.documentsProvider.getScrollElement();
95
+ if (s) {
96
+ let e = s.getBoundingClientRect();
97
+ o -= r == "x" ? e.left : e.top;
98
+ }
99
+ return o || void 0;
86
100
  }
87
101
  async getPassedPercentage(e, n, r) {
88
102
  let i = await this.documentsProvider.fileParser.getSpineFiles(), s = !t(e) && !isNaN(e) ? parseInt(e) : i.findIndex((t) => t.url == e), c = i[s], l = this.documentsProvider.getDocument(e), u = s == i.length - 1, d = await this.getDocumentPercentage(l, n);
@@ -98,23 +112,21 @@ var d = class {
98
112
  async getDocumentPercentage(e, t) {
99
113
  if (typeof t == "number") {
100
114
  if (t < 1) return t;
101
- if (this.options.flipMode === "scroll") return t <= 1 ? t : 0;
115
+ if (d(this.options).flipMode === "scroll") return t <= 1 ? t : 0;
102
116
  await e.load();
103
117
  let n = await e.getNumberOfPages();
104
118
  return n <= 0 ? 0 : Math.min(Math.max(t, 0), n) / n;
105
119
  }
106
- let n = new l(e, this.options);
107
- try {
108
- return await n.getProgressByElement(t, this.options.symbolType);
109
- } finally {
110
- await n.dispose();
111
- }
120
+ let n = f(this.documentsProvider.fileParser).symbolMeasure.defaultSymbolType;
121
+ return await e.symbolCalclator.getProgressByElement(t, n);
112
122
  }
113
123
  async getPercentage(e, n) {
114
124
  if (t(e)) throw Error(this.owner.locale?.getText("missingLocationUrl", "missing location url"));
115
125
  return await this.getPassedPercentage(e, n);
116
126
  }
117
- async dispose() {}
127
+ async dispose() {
128
+ await this.updateProgress();
129
+ }
118
130
  };
119
131
  //#endregion
120
- export { d as HtmlProgressTracker };
132
+ export { m as HtmlProgressTracker };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class e{static{this.FontSize=`--font-size`}static{this.FontFamily=`--font-family`}static{this.FontWeight=`--font-weight`}static{this.TextLineHeight=`--text-line-height`}static{this.ParagraphMarginTop=`--paragraph-margin-top`}static{this.ParagraphMarginBottom=`--paragraph-margin-bottom`}static{this.HeadMarginTop=`--head-margin-top`}static{this.HeadMarginBottom=`--head-margin-bottom`}static{this.HeadLineHeight=`--head-line-height`}static{this.TextIndent=`--text-indent`}static{this.TextAlign=`--text-align`}static getDefaultVariables(){return this.defaultValues||(this.defaultValues=new Map,this.defaultValues.set(e.FontSize,`18px`),this.defaultValues.set(e.FontFamily,`inherit`),this.defaultValues.set(e.FontWeight,`normal`),this.defaultValues.set(e.ParagraphMarginTop,`0.5em`),this.defaultValues.set(e.ParagraphMarginBottom,`0.5em`),this.defaultValues.set(e.TextLineHeight,`1.65em`),this.defaultValues.set(e.HeadMarginTop,`0.5em`),this.defaultValues.set(e.HeadMarginBottom,`0.5em`),this.defaultValues.set(e.HeadLineHeight,`1.5em`),this.defaultValues.set(e.TextIndent,`2em`),this.defaultValues.set(e.TextAlign,`start`)),this.defaultValues}};exports.ContentCssVariables=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class e{static{this.FontSize=`--font-size`}static{this.FontFamily=`--font-family`}static{this.FallbackFontFamily=`-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"`}static{this.FontWeight=`--font-weight`}static{this.TextLineHeight=`--text-line-height`}static{this.ParagraphMarginTop=`--paragraph-margin-top`}static{this.ParagraphMarginBottom=`--paragraph-margin-bottom`}static{this.HeadMarginTop=`--head-margin-top`}static{this.HeadMarginBottom=`--head-margin-bottom`}static{this.HeadLineHeight=`--head-line-height`}static{this.TextIndent=`--text-indent`}static{this.TextAlign=`--text-align`}static isUserSpecifiedFontFamily(t){let n=t.trim();return!n||n===`inherit`||n==="default"?!1:n!==e.FallbackFontFamily}static initializeDefaultVariables(e){let t=this.ensureBuiltinDefaults();if(e){let n=e instanceof Map?e.entries():Object.entries(e);for(let[e,r]of n)t.set(e,r)}return t}static getDefaultVariables(){return this.initializeDefaultVariables()}static ensureBuiltinDefaults(){return this.defaultValues||(this.defaultValues=new Map,this.defaultValues.set(e.FontSize,`20px`),this.defaultValues.set(e.FontFamily,e.FallbackFontFamily),this.defaultValues.set(e.FontWeight,`normal`),this.defaultValues.set(e.ParagraphMarginTop,`0.5em`),this.defaultValues.set(e.ParagraphMarginBottom,`0.5em`),this.defaultValues.set(e.TextLineHeight,`1.65em`),this.defaultValues.set(e.HeadMarginTop,`0.5em`),this.defaultValues.set(e.HeadMarginBottom,`0.5em`),this.defaultValues.set(e.HeadLineHeight,`1.5em`),this.defaultValues.set(e.TextIndent,`2em`),this.defaultValues.set(e.TextAlign,`start`)),this.defaultValues}};exports.ContentCssVariables=e;
@@ -1,6 +1,7 @@
1
1
  export declare class ContentCssVariables {
2
2
  static readonly FontSize = "--font-size";
3
3
  static readonly FontFamily = "--font-family";
4
+ static readonly FallbackFontFamily = "-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",\"Noto Sans\",\"Liberation Sans\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"";
4
5
  static readonly FontWeight = "--font-weight";
5
6
  static readonly TextLineHeight = "--text-line-height";
6
7
  static readonly ParagraphMarginTop = "--paragraph-margin-top";
@@ -11,5 +12,8 @@ export declare class ContentCssVariables {
11
12
  static readonly TextIndent = "--text-indent";
12
13
  static readonly TextAlign = "--text-align";
13
14
  private static defaultValues;
15
+ static isUserSpecifiedFontFamily(value: string): boolean;
16
+ static initializeDefaultVariables(overrides?: Map<string, string> | Record<string, string>): Map<string, string>;
14
17
  static getDefaultVariables(): Map<string, string>;
18
+ private static ensureBuiltinDefaults;
15
19
  }
@@ -6,6 +6,9 @@ var e = class e {
6
6
  static {
7
7
  this.FontFamily = "--font-family";
8
8
  }
9
+ static {
10
+ this.FallbackFontFamily = "-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",\"Noto Sans\",\"Liberation Sans\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"";
11
+ }
9
12
  static {
10
13
  this.FontWeight = "--font-weight";
11
14
  }
@@ -33,8 +36,23 @@ var e = class e {
33
36
  static {
34
37
  this.TextAlign = "--text-align";
35
38
  }
39
+ static isUserSpecifiedFontFamily(t) {
40
+ let n = t.trim();
41
+ return !n || n === "inherit" || n === "default" ? !1 : n !== e.FallbackFontFamily;
42
+ }
43
+ static initializeDefaultVariables(e) {
44
+ let t = this.ensureBuiltinDefaults();
45
+ if (e) {
46
+ let n = e instanceof Map ? e.entries() : Object.entries(e);
47
+ for (let [e, r] of n) t.set(e, r);
48
+ }
49
+ return t;
50
+ }
36
51
  static getDefaultVariables() {
37
- return this.defaultValues || (this.defaultValues = /* @__PURE__ */ new Map(), this.defaultValues.set(e.FontSize, "18px"), this.defaultValues.set(e.FontFamily, "inherit"), this.defaultValues.set(e.FontWeight, "normal"), this.defaultValues.set(e.ParagraphMarginTop, "0.5em"), this.defaultValues.set(e.ParagraphMarginBottom, "0.5em"), this.defaultValues.set(e.TextLineHeight, "1.65em"), this.defaultValues.set(e.HeadMarginTop, "0.5em"), this.defaultValues.set(e.HeadMarginBottom, "0.5em"), this.defaultValues.set(e.HeadLineHeight, "1.5em"), this.defaultValues.set(e.TextIndent, "2em"), this.defaultValues.set(e.TextAlign, "start")), this.defaultValues;
52
+ return this.initializeDefaultVariables();
53
+ }
54
+ static ensureBuiltinDefaults() {
55
+ return this.defaultValues || (this.defaultValues = /* @__PURE__ */ new Map(), this.defaultValues.set(e.FontSize, "20px"), this.defaultValues.set(e.FontFamily, e.FallbackFontFamily), this.defaultValues.set(e.FontWeight, "normal"), this.defaultValues.set(e.ParagraphMarginTop, "0.5em"), this.defaultValues.set(e.ParagraphMarginBottom, "0.5em"), this.defaultValues.set(e.TextLineHeight, "1.65em"), this.defaultValues.set(e.HeadMarginTop, "0.5em"), this.defaultValues.set(e.HeadMarginBottom, "0.5em"), this.defaultValues.set(e.HeadLineHeight, "1.5em"), this.defaultValues.set(e.TextIndent, "2em"), this.defaultValues.set(e.TextAlign, "start")), this.defaultValues;
38
56
  }
39
57
  };
40
58
  //#endregion
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{static{this.ColumnWidth=`--column-width`}static{this.ColumnHeight=`--column-height`}static{this.ColumnMaxHeight=`--column-max-height`}static{this.ColumnGap=`--column-gap`}static{this.ContentShadowWidth=`--content-shadow-width`}static{this.ColumnWidthNumber=`--column-width-number`}static{this.ColumnHeightNumber=`--column-height-number`}static{this.PageWidth=`--page-width`}static{this.PageHeight=`--page-height`}static{this.PageMoveLength=`--page-move-length`}static{this.MaxImageHeightRatio=`--max-image-height-ratio`}static{this.MaxImageWidthRatio=`--max-image-width-ratio`}};exports.ContentLayoutCssVariableNames=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{static{this.ColumnWidth=`--column-width`}static{this.ColumnHeight=`--column-height`}static{this.ColumnMaxHeight=`--column-max-height`}static{this.ColumnGap=`--column-gap`}static{this.ContentShadowWidth=`--content-shadow-width`}static{this.ColumnWidthNumber=`--column-width-number`}static{this.ColumnHeightNumber=`--column-height-number`}static{this.ColumnBoxWidth=`--column-box-width`}static{this.ColumnBoxHeight=`--column-box-height`}static{this.PageWidth=`--page-width`}static{this.PageHeight=`--page-height`}static{this.PageMoveLength=`--page-move-length`}static{this.MaxImageHeightRatio=`--max-image-height-ratio`}static{this.MaxImageWidthRatio=`--max-image-width-ratio`}static{this.ImagePlaceholderColor=`--image-placeholder-color`}};exports.ContentLayoutCssVariableNames=e;
@@ -6,9 +6,12 @@ export declare class ContentLayoutCssVariableNames {
6
6
  static readonly ContentShadowWidth = "--content-shadow-width";
7
7
  static readonly ColumnWidthNumber = "--column-width-number";
8
8
  static readonly ColumnHeightNumber = "--column-height-number";
9
+ static readonly ColumnBoxWidth = "--column-box-width";
10
+ static readonly ColumnBoxHeight = "--column-box-height";
9
11
  static readonly PageWidth = "--page-width";
10
12
  static readonly PageHeight = "--page-height";
11
13
  static readonly PageMoveLength = "--page-move-length";
12
14
  static readonly MaxImageHeightRatio = "--max-image-height-ratio";
13
15
  static readonly MaxImageWidthRatio = "--max-image-width-ratio";
16
+ static readonly ImagePlaceholderColor = "--image-placeholder-color";
14
17
  }
@@ -21,6 +21,12 @@ var e = class {
21
21
  static {
22
22
  this.ColumnHeightNumber = "--column-height-number";
23
23
  }
24
+ static {
25
+ this.ColumnBoxWidth = "--column-box-width";
26
+ }
27
+ static {
28
+ this.ColumnBoxHeight = "--column-box-height";
29
+ }
24
30
  static {
25
31
  this.PageWidth = "--page-width";
26
32
  }
@@ -36,6 +42,9 @@ var e = class {
36
42
  static {
37
43
  this.MaxImageWidthRatio = "--max-image-width-ratio";
38
44
  }
45
+ static {
46
+ this.ImagePlaceholderColor = "--image-placeholder-color";
47
+ }
39
48
  };
40
49
  //#endregion
41
50
  export { e as ContentLayoutCssVariableNames };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/html/injector.cjs"),t=require("./ContentCssVariables.cjs");var n=class{constructor(e){this.documentsProvider=e,this.defaultVariables=new Map,this.currentVariables=new Map,this.contentStyleId=`html-content-css-variables-style`,this.defaultVariables.clear();for(let[e,n]of t.ContentCssVariables.getDefaultVariables())this.defaultVariables.set(e,n)}initialize(e){if(this.currentVariables.clear(),e)for(let[t,n]of e)this.currentVariables.set(t,n)}async getCss(){let{default:e}=await Promise.resolve().then(()=>require("./html-content.cjs"));return e.toString()}getDefaultVariables(){return this.defaultVariables}getCurrentVariables(){return this.currentVariables}getDefaultVariableValue(e){return this.defaultVariables.get(e)??``}getVariableValue(e){return this.currentVariables.get(e)??this.defaultVariables.get(e)??``}async injectStyles(t){let n=t.getContentContainer();if(n||=await t.getVirtualContentContainer(),!n?.ownerDocument)return;let r=n.ownerDocument,i=r.documentElement;for(let[e,t]of this.defaultVariables)this.currentVariables.has(e)||i.style.setProperty(e,t);for(let[e,t]of this.currentVariables)i.style.setProperty(e,t);let a=await this.getCss();e.injectCssContent(r,a,!0,this.contentStyleId)}async changeStyles(e){for(let[t,n]of e)this.currentVariables.set(t,n);let t=this.documentsProvider.getLoadedDocuments();for(let n of t){let t=n.getContentContainer()?.ownerDocument?.documentElement;if(t)for(let[n,r]of e)t.style.setProperty(n,r)}}async changeStyle(e,t){this.currentVariables.set(e,t);let n=this.documentsProvider.getLoadedDocuments();for(let r of n){let n=r.getContentContainer()?.ownerDocument?.documentElement;n&&n.style.setProperty(e,t)}}async resetStyles(){this.currentVariables.clear();let e=this.documentsProvider.getLoadedDocuments();for(let t of e)await this.injectStyles(t)}async dispose(){this.defaultVariables.clear(),this.currentVariables.clear()}};exports.HtmlStyleProvider=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/html/injector.cjs"),t=require("../../HtmlSettings.cjs"),n=require("./ContentCssVariables.cjs");var r=class{constructor(e){this.documentsProvider=e,this.defaultVariables=new Map,this.currentVariables=new Map,this.contentStyleId=`html-content-css-variables-style`,this.defaultVariables.clear();for(let[e,t]of n.ContentCssVariables.getDefaultVariables())this.defaultVariables.set(e,t)}initialize(e){if(this.currentVariables.clear(),e)for(let[t,n]of e)this.currentVariables.set(t,n)}async getCss(){let{default:e}=await Promise.resolve().then(()=>require("./html-content.cjs"));return e.toString()}getDefaultVariables(){return this.defaultVariables}getCurrentVariables(){return this.currentVariables}getDefaultVariableValue(e){return this.defaultVariables.get(e)??``}getVariableValue(e){return this.currentVariables.get(e)??this.defaultVariables.get(e)??``}async injectStyles(t){let n=t.getContentContainer();if(n||=await t.getVirtualContentContainer(),!n?.ownerDocument)return;let r=n.ownerDocument,i=r.documentElement;for(let[e,t]of this.defaultVariables)this.currentVariables.has(e)||i.style.setProperty(e,t);for(let[e,t]of this.currentVariables)i.style.setProperty(e,this.normalizeVariableValue(e,t));this.syncUserSpecifiedFontClass(i);let a=await this.getCss();e.injectCssContent(r,a,!0,this.contentStyleId)}syncUserSpecifiedFontClass(e){let r=this.normalizeVariableValue(n.ContentCssVariables.FontFamily,this.getVariableValue(n.ContentCssVariables.FontFamily));e.classList.toggle(t.HtmlSettings.UserSpecifiedFontClassName,n.ContentCssVariables.isUserSpecifiedFontFamily(r))}normalizeVariableValue(e,t){return e===n.ContentCssVariables.FontFamily&&t.trim()===`inherit`?n.ContentCssVariables.FallbackFontFamily:t}async changeStyles(e){for(let[t,n]of e)this.currentVariables.set(t,this.normalizeVariableValue(t,n));let t=this.documentsProvider.getLoadedDocuments(),n=t.filter(e=>e.getWrapperContainer()?.isVisible),r=t.filter(e=>!e.getWrapperContainer()?.isVisible);for(let t of n)this.applyVariablesToDocument(t,e);for(let t of r)this.applyVariablesToDocument(t,e);for(let e of t)e.resetLayoutSizes();let i=this.documentsProvider.restoreReadingPosition;i&&await i()}async changeStyle(e,t){await this.changeStyles(new Map([[e,t]]))}applyVariablesToDocument(e,t){let n=e.getContentContainer()?.ownerDocument?.documentElement;if(n){for(let[e,r]of t)n.style.setProperty(e,this.normalizeVariableValue(e,r));this.syncUserSpecifiedFontClass(n)}}async resetStyles(){this.currentVariables.clear();let e=this.documentsProvider.getLoadedDocuments();for(let t of e)await this.injectStyles(t)}async dispose(){this.defaultVariables.clear(),this.currentVariables.clear()}};exports.HtmlStyleProvider=r;
@@ -14,8 +14,11 @@ export declare class HtmlStyleProvider implements IStyleProvider {
14
14
  getDefaultVariableValue(variableName: string): string;
15
15
  getVariableValue(variableName: string): string;
16
16
  injectStyles(doc: IDocument): Promise<void>;
17
+ private syncUserSpecifiedFontClass;
18
+ private normalizeVariableValue;
17
19
  changeStyles(variableNameValues: Map<string, string>): Promise<void>;
18
20
  changeStyle(variableName: string, variableValue: string): Promise<void>;
21
+ private applyVariablesToDocument;
19
22
  resetStyles(): Promise<void>;
20
23
  dispose(): Promise<void>;
21
24
  }
@@ -1,10 +1,11 @@
1
1
  import { injectCssContent as e } from "../../../../kernal/html/injector.mjs";
2
- import { ContentCssVariables as t } from "./ContentCssVariables.mjs";
2
+ import { HtmlSettings as t } from "../../HtmlSettings.mjs";
3
+ import { ContentCssVariables as n } from "./ContentCssVariables.mjs";
3
4
  //#region mediaTypes/html/renderer/style/HtmlStyleProvider.ts
4
- var n = class {
5
+ var r = class {
5
6
  constructor(e) {
6
7
  this.documentsProvider = e, this.defaultVariables = /* @__PURE__ */ new Map(), this.currentVariables = /* @__PURE__ */ new Map(), this.contentStyleId = "html-content-css-variables-style", this.defaultVariables.clear();
7
- for (let [e, n] of t.getDefaultVariables()) this.defaultVariables.set(e, n);
8
+ for (let [e, t] of n.getDefaultVariables()) this.defaultVariables.set(e, t);
8
9
  }
9
10
  initialize(e) {
10
11
  if (this.currentVariables.clear(), e) for (let [t, n] of e) this.currentVariables.set(t, n);
@@ -30,24 +31,35 @@ var n = class {
30
31
  if (n ||= await t.getVirtualContentContainer(), !n?.ownerDocument) return;
31
32
  let r = n.ownerDocument, i = r.documentElement;
32
33
  for (let [e, t] of this.defaultVariables) this.currentVariables.has(e) || i.style.setProperty(e, t);
33
- for (let [e, t] of this.currentVariables) i.style.setProperty(e, t);
34
+ for (let [e, t] of this.currentVariables) i.style.setProperty(e, this.normalizeVariableValue(e, t));
35
+ this.syncUserSpecifiedFontClass(i);
34
36
  let a = await this.getCss();
35
37
  e(r, a, !0, this.contentStyleId);
36
38
  }
39
+ syncUserSpecifiedFontClass(e) {
40
+ let r = this.normalizeVariableValue(n.FontFamily, this.getVariableValue(n.FontFamily));
41
+ e.classList.toggle(t.UserSpecifiedFontClassName, n.isUserSpecifiedFontFamily(r));
42
+ }
43
+ normalizeVariableValue(e, t) {
44
+ return e === n.FontFamily && t.trim() === "inherit" ? n.FallbackFontFamily : t;
45
+ }
37
46
  async changeStyles(e) {
38
- for (let [t, n] of e) this.currentVariables.set(t, n);
39
- let t = this.documentsProvider.getLoadedDocuments();
40
- for (let n of t) {
41
- let t = n.getContentContainer()?.ownerDocument?.documentElement;
42
- if (t) for (let [n, r] of e) t.style.setProperty(n, r);
43
- }
47
+ for (let [t, n] of e) this.currentVariables.set(t, this.normalizeVariableValue(t, n));
48
+ let t = this.documentsProvider.getLoadedDocuments(), n = t.filter((e) => e.getWrapperContainer()?.isVisible), r = t.filter((e) => !e.getWrapperContainer()?.isVisible);
49
+ for (let t of n) this.applyVariablesToDocument(t, e);
50
+ for (let t of r) this.applyVariablesToDocument(t, e);
51
+ for (let e of t) e.resetLayoutSizes();
52
+ let i = this.documentsProvider.restoreReadingPosition;
53
+ i && await i();
44
54
  }
45
55
  async changeStyle(e, t) {
46
- this.currentVariables.set(e, t);
47
- let n = this.documentsProvider.getLoadedDocuments();
48
- for (let r of n) {
49
- let n = r.getContentContainer()?.ownerDocument?.documentElement;
50
- n && n.style.setProperty(e, t);
56
+ await this.changeStyles(/* @__PURE__ */ new Map([[e, t]]));
57
+ }
58
+ applyVariablesToDocument(e, t) {
59
+ let n = e.getContentContainer()?.ownerDocument?.documentElement;
60
+ if (n) {
61
+ for (let [e, r] of t) n.style.setProperty(e, this.normalizeVariableValue(e, r));
62
+ this.syncUserSpecifiedFontClass(n);
51
63
  }
52
64
  }
53
65
  async resetStyles() {
@@ -60,4 +72,4 @@ var n = class {
60
72
  }
61
73
  };
62
74
  //#endregion
63
- export { n as HtmlStyleProvider };
75
+ export { r as HtmlStyleProvider };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/Theme.cjs"),n=require("../../../../kernal/Constants.cjs"),r=require("../../../../kernal/html/finder.cjs"),i=require("../../../../kernal/html/injector.cjs"),a=require("../../HtmlSettings.cjs");var o=class{constructor(e){this.documentsProvider=e,this.holderClassName=n.readerPrefixName+`t`,this.holderSelector=`.${this.holderClassName}.${this.holderClassName}.${this.holderClassName}`,this.animationHolderSelector=`.${this.holderClassName}.${this.holderClassName}.${this.holderClassName}.${this.holderClassName}`,this.allElementSelectorPrefix=`html body *${this.holderSelector}`,this.documentElementSelectorPrefix=`html,body${this.holderSelector}`,this.preElementSelectorPrefix=`html body pre${this.holderSelector}`,this.preAllElementSelectorPrefix=`html body pre *${this.holderSelector}`,this.animationElementSelectorPrefix=`html body *${this.animationHolderSelector}`,this.specialColorCssName=n.readerPrefixName+`reader-special-color`,this.specialBackgroundCssName=n.readerPrefixName+`reader-special-background`,this.specialColorCssId=n.readerPrefixName+`reader-special-variables-color-css`,this.specialBackgroundCssId=n.readerPrefixName+`reader-special-variables-background-css`,this.preBackgroundCssId=n.readerPrefixName+`reader-pre-variables-background-css`,this.themeDynamicCssId=n.readerPrefixName+`html-theme-dynamic-css`,this.holdersMarkedAttr=n.readerPrefixName+`theme-holders`}async applyTheme(e){let t=this.documentsProvider.getLoadedDocuments();for(let n of t)await this.applyToDocument(n,e)}async applyToDocument(e,t){let n=e.getContentContainer();if(n||=await e.getVirtualContentContainer(),!n?.ownerDocument?.documentElement)return;let r=n.ownerDocument.documentElement;this.applyCssVariables(r,t),await this.ensureHolderClasses(n),this.injectThemeStyles(r,t)}applyCssVariables(e,n){if(e.style.setProperty(t.Theme.GotoTargetAnimationColor,n.gotoTargetAnimationColor),e.style.setProperty(t.Theme.ContentBackground,n.contentBackground),e.style.setProperty(t.Theme.ContentTextColor,n.contentTextColor),e.style.setProperty(t.Theme.CodeblockBackgroundColor,n.codeblockBackgroundColor),e.style.setProperty(t.Theme.SelectionBackground,n.selectionBackground),e.style.setProperty(t.Theme.SelectionColor,n.selectionColor),e.style.setProperty(t.Theme.ColumnRuleColor,n.columnRuleColor),n.vars)for(let[t,r]of Object.entries(n.vars))t&&e.style.setProperty(t,r)}async ensureHolderClasses(t){let n=t.ownerDocument.documentElement;if(n.getAttribute(this.holdersMarkedAttr)===`1`)return;let i=e.BrowserCapabilities.supportScheduler(),a=t.getElementsByTagName(`*`),o=[];for(let e=0;e<a.length;e++){let t=a[e];if(!o.includes(t)&&!r.compareTagName(t.tagName,`MT`)){if(r.compareTagName(t.tagName,`PRE`)){t.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),t.firstElementChild&&r.compareTagName(t.firstElementChild.tagName,`CODE`)&&t.firstElementChild.classList.add(this.holderClassName,this.specialBackgroundCssName),o.push(...Array.from(t.getElementsByTagName(`*`)));continue}t.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),e%100==0&&i&&await scheduler.yield()}}t.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),n.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),n.setAttribute(this.holdersMarkedAttr,`1`)}injectThemeStyles(e,n){if(n.colorMode===`dark`&&n.contentTextColor!==`inherit`){let n=`${this.documentElementSelectorPrefix}.${this.specialColorCssName},${this.allElementSelectorPrefix}.${this.specialColorCssName}{color:var(${t.Theme.ContentTextColor}) !important;}`;i.injectCssContent(e,n,!0,this.specialColorCssId)}else i.removeElement(e,this.specialColorCssId);let r=n.colorMode===`light`?``:`!important`;if(n.colorMode===`light`)i.removeElement(e,this.specialBackgroundCssId);else{let n=`${this.documentElementSelectorPrefix}.${this.specialBackgroundCssName},${this.allElementSelectorPrefix}.${this.specialBackgroundCssName}{background-color:var(${t.Theme.ContentBackground}) ${r};}`;i.injectCssContent(e,n,!0,this.specialBackgroundCssId)}let o=`${this.preElementSelectorPrefix}.${this.specialBackgroundCssName},${this.preAllElementSelectorPrefix}.${this.specialBackgroundCssName}{background-color:var(${t.Theme.CodeblockBackgroundColor}) ${r};}`;i.injectCssContent(e,o,!0,this.preBackgroundCssId);let s=``;s+=`::selection{background:var(${t.Theme.SelectionBackground});color:var(${t.Theme.SelectionColor});}`,s+=`@keyframes bg {`,s+=`0% {background: transparent;}`,s+=`50% {background: var(${t.Theme.GotoTargetAnimationColor});}`,s+=`100% {background: transparent;}`,s+=`}`,s+=`${this.animationElementSelectorPrefix}.${a.HtmlSettings.HtmlDocumentGotoAnimationCssName}{`,s+=`animation:bg 2s !important;`,s+=`}`,s+=`.${a.HtmlSettings.HtmlDocumentGotoAnimationCssName}{`,s+=`animation:bg 2s !important;`,s+=`}`,i.injectCssContent(e,s,!0,this.themeDynamicCssId)}};exports.HtmlThemeApplier=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/Options.cjs"),t=require("../../../../kernal/Constants.cjs"),n=require("../../../../kernal/html/finder.cjs"),r=require("../../../../kernal/html/injector.cjs"),i=require("../../../../kernal/Theme.cjs"),a=require("../../../../kernal/web/scheduler.cjs"),o=require("../../HtmlSettings.cjs");var s=class{constructor(e){this.documentsProvider=e,this.holderClassName=t.readerPrefixName+`t`,this.holderSelector=`.${this.holderClassName}.${this.holderClassName}.${this.holderClassName}`,this.animationHolderSelector=`.${this.holderClassName}.${this.holderClassName}.${this.holderClassName}.${this.holderClassName}`,this.allElementSelectorPrefix=`html body *${this.holderSelector}`,this.documentElementSelectorPrefix=`html,body${this.holderSelector}`,this.preElementSelectorPrefix=`html body pre${this.holderSelector}`,this.preAllElementSelectorPrefix=`html body pre *${this.holderSelector}`,this.animationElementSelectorPrefix=`html body *${this.animationHolderSelector}`,this.specialColorCssName=t.readerPrefixName+`reader-special-color`,this.specialBackgroundCssName=t.readerPrefixName+`reader-special-background`,this.specialColorCssId=t.readerPrefixName+`reader-special-variables-color-css`,this.specialBackgroundCssId=t.readerPrefixName+`reader-special-variables-background-css`,this.preBackgroundCssId=t.readerPrefixName+`reader-pre-variables-background-css`,this.themeDynamicCssId=t.readerPrefixName+`html-theme-dynamic-css`,this.scrollbarCssId=t.readerPrefixName+`reader-scrollbar-css`,this.holdersMarkedAttr=t.readerPrefixName+`theme-holders`,this.iframeScrollbarSelectors=[`pre`,`code`]}async applyTheme(e){let t=this.documentsProvider.getLoadedDocuments();for(let n of t)await this.applyToDocument(n,e)}async applyToDocument(e,t){let n=e.getContentContainer();if(n||=await e.getVirtualContentContainer(),!n?.ownerDocument?.documentElement)return;let r=n.ownerDocument.documentElement;this.applyCssVariables(r,t),await this.ensureHolderClasses(n),this.injectThemeStyles(r,t)}applyCssVariables(t,n){t.style.setProperty(i.Theme.GotoTargetAnimationColor,n.gotoTargetAnimationColor),t.style.setProperty(i.Theme.ContentBackground,n.contentBackground),t.style.setProperty(i.Theme.ContentTextColor,n.contentTextColor),t.style.setProperty(i.Theme.CodeblockBackgroundColor,n.codeblockBackgroundColor),t.style.setProperty(i.Theme.SelectionBackground,n.selectionBackground),t.style.setProperty(i.Theme.SelectionColor,n.selectionColor),t.style.setProperty(i.Theme.ColumnRuleColor,n.columnRuleColor),t.style.setProperty(i.Theme.ScrollbarThumbColor,n.scrollbarThumbColor),t.style.setProperty(i.Theme.ScrollbarThumbHoverColor,n.scrollbarThumbHoverColor),t.style.setProperty(i.Theme.ScrollbarTrackColor,n.scrollbarTrackColor);let r=this.documentsProvider.owner.options;if(t.style.setProperty(e.Options.ScrollbarSize,r.scrollbarSize),t.style.setProperty(e.Options.ScrollbarRadius,r.scrollbarRadius),t.style.setProperty(e.Options.ScrollbarBorder,r.scrollbarBorder),n.vars)for(let[e,r]of Object.entries(n.vars))e&&t.style.setProperty(e,r)}async ensureHolderClasses(e){let t=e.ownerDocument.documentElement;if(t.getAttribute(this.holdersMarkedAttr)===`1`)return;let r=a.supportScheduler(),i=e.getElementsByTagName(`*`),o=[];for(let e=0;e<i.length;e++){let t=i[e];if(!o.includes(t)&&!n.compareTagName(t.tagName,`MT`)){if(n.compareTagName(t.tagName,`PRE`)){t.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),t.firstElementChild&&n.compareTagName(t.firstElementChild.tagName,`CODE`)&&t.firstElementChild.classList.add(this.holderClassName,this.specialBackgroundCssName),o.push(...Array.from(t.getElementsByTagName(`*`)));continue}t.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),e%100==0&&r&&await scheduler.yield()}}e.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),t.classList.add(this.holderClassName,this.specialColorCssName,this.specialBackgroundCssName),t.setAttribute(this.holdersMarkedAttr,`1`)}injectThemeStyles(e,t){if(t.colorMode===`dark`&&t.contentTextColor!==`inherit`){let t=`${this.documentElementSelectorPrefix}.${this.specialColorCssName},${this.allElementSelectorPrefix}.${this.specialColorCssName}{color:var(${i.Theme.ContentTextColor}) !important;}`;r.injectCssContent(e,t,!0,this.specialColorCssId)}else r.removeElement(e,this.specialColorCssId);let n=t.colorMode===`light`?``:`!important`;if(t.colorMode===`light`)r.removeElement(e,this.specialBackgroundCssId);else{let t=`${this.documentElementSelectorPrefix}.${this.specialBackgroundCssName},${this.allElementSelectorPrefix}.${this.specialBackgroundCssName}{background-color:var(${i.Theme.ContentBackground}) ${n};}`;r.injectCssContent(e,t,!0,this.specialBackgroundCssId)}let a=`${this.preElementSelectorPrefix}.${this.specialBackgroundCssName},${this.preAllElementSelectorPrefix}.${this.specialBackgroundCssName}{background-color:var(${i.Theme.CodeblockBackgroundColor}) ${n};}`;r.injectCssContent(e,a,!0,this.preBackgroundCssId);let s=``;s+=`::selection{background:var(${i.Theme.SelectionBackground});color:var(${i.Theme.SelectionColor});}`,s+=`@keyframes bg {`,s+=`0% {background: transparent;}`,s+=`50% {background: var(${i.Theme.GotoTargetAnimationColor});}`,s+=`100% {background: transparent;}`,s+=`}`,s+=`${this.animationElementSelectorPrefix}.${o.HtmlSettings.HtmlDocumentGotoAnimationCssName}{`,s+=`animation:bg 2s !important;`,s+=`}`,s+=`.${o.HtmlSettings.HtmlDocumentGotoAnimationCssName}{`,s+=`animation:bg 2s !important;`,s+=`}`,r.injectCssContent(e,s,!0,this.themeDynamicCssId);let c=i.Theme.getScrollStyles(this.iframeScrollbarSelectors);r.injectCssContent(e,c,!0,this.scrollbarCssId)}};exports.HtmlThemeApplier=s;
@@ -18,7 +18,9 @@ export declare class HtmlThemeApplier implements IHtmlThemeApplier {
18
18
  private readonly specialBackgroundCssId;
19
19
  private readonly preBackgroundCssId;
20
20
  private readonly themeDynamicCssId;
21
+ private readonly scrollbarCssId;
21
22
  private readonly holdersMarkedAttr;
23
+ private readonly iframeScrollbarSelectors;
22
24
  constructor(documentsProvider: IDocumentsProvider<IHtmlDocument>);
23
25
  applyTheme(theme: Theme): Promise<void>;
24
26
  applyToDocument(doc: IHtmlDocument, theme: Theme): Promise<void>;