@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
@@ -0,0 +1,164 @@
1
+ import { parseNumber as e } from "../../../../kernal/common/number.mjs";
2
+ import { getElementByNameAndIndex as t } from "../../../../kernal/html/finder.mjs";
3
+ import { isHtmlElement as n } from "../../../../kernal/html/realm.mjs";
4
+ import { resolveVisibleTranslationAnchor as r } from "../../../../kernal/html/translationAnchor.mjs";
5
+ import { getTransformLength as i } from "../../../../kernal/html/style.mjs";
6
+ import { HtmlSettings as a } from "../../HtmlSettings.mjs";
7
+ import { excludeResizingCompensationDocument as o, pickAbsoluteCompensationUrl as s, pickVisibleCompensationDocument as c, resolveRestoreCompensationAnchor as l } from "../layout/geometry/restoreLayoutState.mjs";
8
+ import { getLayoutGeometry as u } from "../layout/resolveLayoutRoute.mjs";
9
+ import { beginProgrammaticScroll as d, endProgrammaticScroll as f, isHoldingAbsoluteAnchor as p, isUserScrollSettling as m } from "./scrollActivity.mjs";
10
+ //#region mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.ts
11
+ var h = 1, g = class {
12
+ constructor(e, t, n) {
13
+ this.doc = e, this.viewport = t, this.options = n;
14
+ }
15
+ capture() {
16
+ let e = this.doc.owner.getRenderer(), t = this.viewport.getScrollElement() ?? e?.getScrollElement(), n = this.getTransformContainer(), r = this.doc.getWrapperContainer(), a = u(this.options), o = this.findLocationAnchor(), s = r ? a.getCaptureExtent(r) : {
17
+ width: 0,
18
+ height: 0
19
+ };
20
+ return {
21
+ scrollLeft: t?.scrollLeft ?? 0,
22
+ scrollTop: t?.scrollTop ?? 0,
23
+ width: s.width,
24
+ height: s.height,
25
+ transformLeft: n ? i(n, "x") : 0,
26
+ transformTop: n ? i(n, "y") : 0,
27
+ firstVisibleDocument: this.resolveCompensationAnchor() ?? e?.getFirstVisibleDocument(),
28
+ offsetLeft: o?.offsetLeft ?? 0,
29
+ offsetTop: o?.offsetTop ?? 0,
30
+ foundElement: !!o
31
+ };
32
+ }
33
+ async restore(e) {
34
+ let t = this.doc.owner.getRenderer();
35
+ if (!t || !e) return;
36
+ let n = t.getDocuments(), r = n.indexOf(this.doc);
37
+ if (r < 0) return;
38
+ let i = u(this.options);
39
+ if (i.flipMode == "page") {
40
+ let t = n.indexOf(e.firstVisibleDocument);
41
+ if (t < 0 || r > t) return;
42
+ await this.waitUntilPageTransformStable(), this.restorePageTransform(e, r === t, i.pageAxis);
43
+ return;
44
+ }
45
+ let a = i.holdsAbsoluteLocate && p() ? this.resolveCompensationAnchor() : void 0, o = l(e.firstVisibleDocument, a, !!(i.holdsAbsoluteLocate && p())), s = n.indexOf(o);
46
+ s < 0 || (this.clearPageTransformIfNeeded(), this.restoreScroll(e, r, s, i.blockAxis));
47
+ }
48
+ async waitUntilPageTransformStable() {
49
+ if (u(this.options).flipMode != "page") return;
50
+ let e = this.getTransformContainer();
51
+ if (!e) return;
52
+ let t = Date.now() + 400;
53
+ for (; this.hasActiveTransformTransition(e) && !(Date.now() >= t);) await new Promise((t) => {
54
+ let n = () => {
55
+ e.removeEventListener("transitionend", r), clearTimeout(i);
56
+ }, r = (r) => {
57
+ r.target === e && (n(), t());
58
+ };
59
+ e.addEventListener("transitionend", r);
60
+ let i = setTimeout(() => {
61
+ n(), t();
62
+ }, 120);
63
+ });
64
+ }
65
+ restorePageTransform(t, n, r) {
66
+ let a = this.getTransformContainer();
67
+ if (!a) return;
68
+ let o = a.getAttribute("data-target-transform"), s = 0;
69
+ s = o ? e(o, 0, "parseFloat") : i(a, r);
70
+ let c = this.doc.getWrapperContainer(), l = u(this.options), d = r == "y" ? (c?.scrollHeight ?? 0) - t.height : (c?.scrollWidth ?? 0) - t.width, f = 0, p = n ? this.findLocationAnchor() : null;
71
+ p && t.foundElement && (f = r == "y" ? p.offsetTop - t.offsetTop : p.offsetLeft - t.offsetLeft);
72
+ let m = l.restorePageTransform({
73
+ currentTransform: s,
74
+ sizeDelta: d,
75
+ offsetDelta: f,
76
+ isFirstVisible: n,
77
+ foundElement: !!(p && t.foundElement)
78
+ });
79
+ a.style.removeProperty("transition"), a.setAttribute("data-target-transform", `${m}`), a.style.transform = l.getPageTranslateCss(m);
80
+ }
81
+ restoreScroll(e, t, n, r) {
82
+ let i = this.doc.owner.getRenderer(), a = this.viewport.getScrollElement() ?? i?.getScrollElement();
83
+ if (!a) return;
84
+ let o = this.doc.getWrapperContainer(), s = u(this.options);
85
+ if (s.skipsRestoreWhileSettling && m()) return;
86
+ let c = r == "x" ? a.scrollLeft : a.scrollTop, l = r == "x" ? e.scrollLeft : e.scrollTop, p = r == "x" ? (o?.scrollWidth ?? 0) - e.width : (o?.offsetHeight ?? 0) - e.height, g = 0, _ = t === n ? this.findLocationAnchor() : null, v = !!(_ && e.foundElement);
87
+ v && _ && (g = r == "x" ? _.offsetLeft - e.offsetLeft : _.offsetTop - e.offsetTop);
88
+ let y = s.restoreScroll({
89
+ liveScroll: c,
90
+ capturedScroll: l,
91
+ sizeDelta: p,
92
+ offsetDelta: g,
93
+ foundElement: v,
94
+ currentIndex: t,
95
+ anchorIndex: n
96
+ });
97
+ if (!(Math.abs(y - c) <= h) && s.shouldApplyRestoredScroll(y, c)) {
98
+ d();
99
+ try {
100
+ r == "x" ? a.scrollTo({
101
+ left: y,
102
+ top: a.scrollTop
103
+ }) : a.scrollTo({
104
+ left: a.scrollLeft,
105
+ top: y
106
+ });
107
+ } finally {
108
+ f();
109
+ }
110
+ }
111
+ }
112
+ resolveCompensationAnchor() {
113
+ let e = this.doc.owner.getRenderer();
114
+ if (!e) return;
115
+ if (u(this.options).compensationAnchorMode == "first-visible") {
116
+ let t = this.doc.owner.context.currentLocation;
117
+ if (t?.direction == "next" || t?.direction == "previous") return e.getFirstVisibleDocument();
118
+ let n = this.doc.owner.context.redirectingDocUrl;
119
+ return n ? e.getDocument(n) ?? e.getFirstVisibleDocument() : e.getFirstVisibleDocument();
120
+ }
121
+ let t = this.doc.owner.context.currentLocation, n = s({
122
+ direction: t?.direction,
123
+ currentLocationUrl: t?.url,
124
+ redirectingDocUrl: this.doc.owner.context.redirectingDocUrl,
125
+ holdAbsoluteAnchor: p()
126
+ });
127
+ return n ? e.getDocument(n) ?? this.pickVisibleCompensation() : this.pickVisibleCompensation();
128
+ }
129
+ pickVisibleCompensation() {
130
+ let e = this.doc.owner.getRenderer();
131
+ if (!e) return;
132
+ let t = u(this.options), n = o(e.getVisibleDocuments(), this.doc);
133
+ return c(n, t.compensationAnchorEdge, (e) => {
134
+ let n = e.getWrapperContainer()?.getBoundingClientRect();
135
+ if (n) return t.getCompensationRect(n);
136
+ }) ?? e.getFirstVisibleDocument();
137
+ }
138
+ findLocationAnchor() {
139
+ let e = this.doc.owner.context.currentLocation, n = this.doc.getContentContainer();
140
+ if (!n || !e?.precise || !e.tagName || e.tagIndex == null) return null;
141
+ let i = t(n, e.tagName, e.tagIndex);
142
+ return r(i);
143
+ }
144
+ clearPageTransformIfNeeded() {
145
+ let e = this.getTransformContainer();
146
+ e && (e.style.removeProperty("transition"), e.style.removeProperty("transform"), e.removeAttribute("data-target-transform"));
147
+ }
148
+ getTransformContainer() {
149
+ try {
150
+ let e = this.viewport.getRendererContainer()?.querySelector("." + a.TransformContainerCssName);
151
+ return n(e) ? e : null;
152
+ } catch {
153
+ return null;
154
+ }
155
+ }
156
+ hasActiveTransformTransition(e) {
157
+ let t = e.getAnimations;
158
+ if (typeof t != "function") return !1;
159
+ for (let n of t.call(e, { subtree: !1 })) if (n.playState === "running" || n.playState === "pending") return !0;
160
+ return !1;
161
+ }
162
+ };
163
+ //#endregion
164
+ export { g as HtmlLayoutStatePreserver };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>{let n=e.current??0;if(e.unit!=`page`||n<=0||t<=0)return n>0?n:1;let r=e.total&&e.total>0?e.total:1;return r==t?Math.min(n,t):e.direction==`previous`&&n>=r?t:r>1?Math.max(1,Math.ceil(n/r*t)):n},t=(e,t)=>{if(!e||e.url!=t||e.unit!=`page`||e.direction!=`previous`)return!1;let n=e.current??0,r=e.total??0;return n>0&&r>0&&n>=r};exports.remapStoredPageNumber=e,exports.shouldKeepPageEndOnContentGrow=t;
@@ -0,0 +1,4 @@
1
+ import { FileLocation } from '../../../../kernal';
2
+
3
+ export declare const remapStoredPageNumber: (location: Pick<FileLocation, "current" | "total" | "direction" | "unit">, numberOfPages: number) => number;
4
+ export declare const shouldKeepPageEndOnContentGrow: (location: Pick<FileLocation, "url" | "unit" | "current" | "total" | "direction"> | undefined, docUrl: string) => boolean;
@@ -0,0 +1,13 @@
1
+ //#region mediaTypes/html/renderer/location/remapStoredPageNumber.ts
2
+ var e = (e, t) => {
3
+ let n = e.current ?? 0;
4
+ if (e.unit != "page" || n <= 0 || t <= 0) return n > 0 ? n : 1;
5
+ let r = e.total && e.total > 0 ? e.total : 1;
6
+ return r == t ? Math.min(n, t) : e.direction == "previous" && n >= r ? t : r > 1 ? Math.max(1, Math.ceil(n / r * t)) : n;
7
+ }, t = (e, t) => {
8
+ if (!e || e.url != t || e.unit != "page" || e.direction != "previous") return !1;
9
+ let n = e.current ?? 0, r = e.total ?? 0;
10
+ return n > 0 && r > 0 && n >= r;
11
+ };
12
+ //#endregion
13
+ export { e as remapStoredPageNumber, t as shouldKeepPageEndOnContentGrow };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=160,t=160,n=0,r=0,i=0,a=!1,o=!1,s=(e=Date.now())=>{n=e},c=(e=Date.now())=>{i++,r=e},l=(e=Date.now())=>{i=Math.max(0,i-1),r=e},u=(e=Date.now())=>i>0||e-r<160,d=()=>{o=!1},f=(e,t=!1)=>t&&e!=`next`&&e!=`previous`,p=(e=160)=>Date.now()-n<e,m=()=>{o=!0,a=!1},h=()=>o,g=e=>{a=e},_=()=>a,v=()=>{n=0,r=0,i=0,a=!1,o=!1};exports.PROGRAMMATIC_SCROLL_QUIET_MS=t,exports.USER_SCROLL_SETTLE_MS=e,exports.beginAbsoluteLocate=m,exports.beginProgrammaticScroll=c,exports.endProgrammaticScroll=l,exports.isHoldingAbsoluteAnchor=h,exports.isPinReadingStart=_,exports.isProgrammaticScroll=u,exports.isUserScrollSettling=p,exports.markUserScroll=s,exports.releaseAbsoluteLocate=d,exports.resetUserScroll=v,exports.setPinReadingStart=g,exports.shouldBeginAbsoluteLocate=f;
@@ -0,0 +1,14 @@
1
+ export declare const USER_SCROLL_SETTLE_MS = 160;
2
+ export declare const PROGRAMMATIC_SCROLL_QUIET_MS = 160;
3
+ export declare const markUserScroll: (at?: number) => void;
4
+ export declare const beginProgrammaticScroll: (at?: number) => void;
5
+ export declare const endProgrammaticScroll: (at?: number) => void;
6
+ export declare const isProgrammaticScroll: (at?: number) => boolean;
7
+ export declare const releaseAbsoluteLocate: () => void;
8
+ export declare const shouldBeginAbsoluteLocate: (direction?: string, holdsAbsoluteLocate?: boolean) => boolean;
9
+ export declare const isUserScrollSettling: (settleMs?: number) => boolean;
10
+ export declare const beginAbsoluteLocate: () => void;
11
+ export declare const isHoldingAbsoluteAnchor: () => boolean;
12
+ export declare const setPinReadingStart: (value: boolean) => void;
13
+ export declare const isPinReadingStart: () => boolean;
14
+ export declare const resetUserScroll: () => void;
@@ -0,0 +1,18 @@
1
+ //#region mediaTypes/html/renderer/location/scrollActivity.ts
2
+ var e = 160, t = 160, n = 0, r = 0, i = 0, a = !1, o = !1, s = (e = Date.now()) => {
3
+ n = e;
4
+ }, c = (e = Date.now()) => {
5
+ i++, r = e;
6
+ }, l = (e = Date.now()) => {
7
+ i = Math.max(0, i - 1), r = e;
8
+ }, u = (e = Date.now()) => i > 0 || e - r < 160, d = () => {
9
+ o = !1;
10
+ }, f = (e, t = !1) => t && e != "next" && e != "previous", p = (e = 160) => Date.now() - n < e, m = () => {
11
+ o = !0, a = !1;
12
+ }, h = () => o, g = (e) => {
13
+ a = e;
14
+ }, _ = () => a, v = () => {
15
+ n = 0, r = 0, i = 0, a = !1, o = !1;
16
+ };
17
+ //#endregion
18
+ export { t as PROGRAMMATIC_SCROLL_QUIET_MS, e as USER_SCROLL_SETTLE_MS, m as beginAbsoluteLocate, c as beginProgrammaticScroll, l as endProgrammaticScroll, h as isHoldingAbsoluteAnchor, _ as isPinReadingStart, u as isProgrammaticScroll, p as isUserScrollSettling, s as markUserScroll, d as releaseAbsoluteLocate, v as resetUserScroll, g as setPinReadingStart, f as shouldBeginAbsoluteLocate };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/progress/Progress.cjs");var t=class{constructor(e,t){this.documentsProvider=e,this.options=t}async goto(e){await this.documentsProvider.load(e)}async gotoUrl(t){let n=new e.FileLocation(t,1,`ratio`);n.storeCurrent=!0,await this.goto(n)}async gotoPercentage(t,n){let r=await this.recoverCurrentPercentage(t,n?.percentageSymbolType??`custom`),i=new e.FileLocation(r.url,1,`ratio`);if(i.current=r.current,n?.percentageSymbolType&&(i.symbolType=n.percentageSymbolType),i.current!=null&&i.current==0&&this.options.flipMode==`page`){let e=this.documentsProvider.getDocument(i.url);this.documentsProvider.getDocuments().indexOf(e)==0&&(i.current=1)}i.storeCurrent=!0,i.from=`drag`,await this.goto(i)}async recoverCurrentPercentage(e,t){let n=await this.documentsProvider.fileParser.getSpineFiles();if(e==1)return{url:n[n.length-1].url,current:1};if(e==0)return{url:n[0].url,current:0};let r=e=>t==`custom`||e.charRatio==0,i=n.find(t=>(r(t)?t.endProgress:t.charEndProgress)>=e)??n[n.length-1],a=r(i)?i.startProgress:i.charStartProgress,o=r(i)?i.ratio:i.charRatio,s=e-a,c=0;return o>0&&(c=s/o),{url:i?.url??``,current:c}}};exports.HtmlCoreNavigator=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/progress/Progress.cjs");var t=class{constructor(e,t){this.documentsProvider=e,this.options=t}async goto(e){await this.documentsProvider.load(e)}async gotoUrl(t){let n=new e.FileLocation(t,1,`ratio`);n.storeCurrent=!0,n.from=`toc`,await this.goto(n)}async gotoPercentage(t,n){let r=await this.recoverCurrentPercentage(t,n?.percentageSymbolType??`custom`),i=new e.FileLocation(r.url,1,`ratio`);if(i.current=r.current,n?.percentageSymbolType&&(i.symbolType=n.percentageSymbolType),i.current!=null&&i.current==0&&this.options.flipMode==`page`){let e=this.documentsProvider.getDocument(i.url);this.documentsProvider.getDocuments().indexOf(e)==0&&(i.current=1)}i.storeCurrent=!0,i.from=n?.from??`drag`,await this.goto(i)}async recoverCurrentPercentage(e,t){let n=await this.documentsProvider.fileParser.getSpineFiles();if(e==1)return{url:n[n.length-1].url,current:1};if(e==0)return{url:n[0].url,current:0};let r=e=>t==`custom`||e.charRatio==0,i=n.find(t=>(r(t)?t.endProgress:t.charEndProgress)>=e)??n[n.length-1],a=r(i)?i.startProgress:i.charStartProgress,o=r(i)?i.ratio:i.charRatio,s=e-a,c=0;return o>0&&(c=s/o),{url:i?.url??``,current:c}}};exports.HtmlCoreNavigator=t;
@@ -9,7 +9,7 @@ var t = class {
9
9
  }
10
10
  async gotoUrl(t) {
11
11
  let n = new e(t, 1, "ratio");
12
- n.storeCurrent = !0, await this.goto(n);
12
+ n.storeCurrent = !0, n.from = "toc", await this.goto(n);
13
13
  }
14
14
  async gotoPercentage(t, n) {
15
15
  let r = await this.recoverCurrentPercentage(t, n?.percentageSymbolType ?? "custom"), i = new e(r.url, 1, "ratio");
@@ -17,7 +17,7 @@ var t = class {
17
17
  let e = this.documentsProvider.getDocument(i.url);
18
18
  this.documentsProvider.getDocuments().indexOf(e) == 0 && (i.current = 1);
19
19
  }
20
- i.storeCurrent = !0, i.from = "drag", await this.goto(i);
20
+ i.storeCurrent = !0, i.from = n?.from ?? "drag", await this.goto(i);
21
21
  }
22
22
  async recoverCurrentPercentage(e, t) {
23
23
  let n = await this.documentsProvider.fileParser.getSpineFiles();
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/url.cjs"),t=require("../../../../kernal/html/geometry.cjs");var n=class{constructor(e,t,n,r,i){this.locale=e,this.notifier=t,this.documentsProvider=n,this.htmlCoreNavigator=r,this.navPointProvider=i}async getNavPointProgress(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>1){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return null;let n=e.findIndex(e=>e.key==t.key);return{total:e.length,current:n,type:`navpoint`}}{let e=this.documentsProvider.getFirstVisibleDocument(),t=this.documentsProvider.getDocuments(),n=t.findIndex(t=>t.url==e.url);return{total:t.length,current:n,type:`file`}}}async gotoNavPoint(e){await this.htmlCoreNavigator.gotoUrl(e.url)}async gotoNextNavPointOrFile(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>1){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return;let n=e.findIndex(e=>e.key==t.key);if(n<0)return;if(n==e.length-1){this.notifier.info(this.locale?.getText(`navigator_alreadyislastnavPoint`,`Already at the last chapter`));return}let r=await this.getNextNavPoint(t,n,e);if(r)await this.gotoNavPoint(r);else{this.notifier.info(this.locale?.getText(`navigator_alreadyislastnavPoint`,`Already at the last chapter`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==t.length-1){this.notifier.info(this.locale?.getText(`navigator_alreadyislastnavPoint`,`Already at the last chapter`));return}await this.htmlCoreNavigator.gotoUrl(t[n+1].url)}}async getNextNavPoint(n,r,i){let a=i[r+1];if(a){let o=e.getUrlFragment(n.url),s=e.getUrlFragment(a.url),c=this.documentsProvider.getFirstVisibleDocument();if(c&&c.url==s.urlWithoutAnchor&&s.urlWithoutAnchor==o.urlWithoutAnchor){if(s.anchor){let e=c.getContentContainer().ownerDocument.getElementById(s.anchor);if(e){let n=this.documentsProvider.getRendererContainer(),o=t.checkRangeOrElementIsVisible(n,e,n.ownerDocument.defaultView);if(o&&o.visible)return await this.getNextNavPoint(a,r+1,i)}}else return await this.getNextNavPoint(a,r+1,i)}}return a}async gotoPreviousNavPointOrFile(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>0){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return;let n=e.findIndex(e=>e.key==t.key);if(n<0)return;if(n==0){this.notifier.info(this.locale?.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}let r=await this.getPreviousNavPoint(t,n,e);if(r)await this.gotoNavPoint(r);else{this.notifier.info(this.locale?.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==0){this.notifier.info(this.locale?.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}await this.htmlCoreNavigator.gotoUrl(t[n-1].url)}}async getPreviousNavPoint(n,r,i){let a=i[r-1];if(a){let o=e.getUrlFragment(n.url),s=e.getUrlFragment(a.url),c=this.documentsProvider.getFirstVisibleDocument();if(c&&c.url==s.urlWithoutAnchor&&s.urlWithoutAnchor==o.urlWithoutAnchor){if(s.anchor){let e=c.getContentContainer().ownerDocument.getElementById(s.anchor);if(e){let n=this.documentsProvider.getRendererContainer(),o=t.checkRangeOrElementIsVisible(n,e,n.ownerDocument.defaultView);if(o&&o.visible)return await this.getPreviousNavPoint(a,r-1,i)}}else return await this.getPreviousNavPoint(a,r-1,i)}}return a}};exports.HtmlNavPointNavigator=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/url.cjs"),t=require("../../../../kernal/html/geometry.cjs");var n=class{constructor(e,t,n,r,i){this.locale=e,this.notifier=t,this.documentsProvider=n,this.htmlCoreNavigator=r,this.navPointProvider=i}async getNavPointProgress(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>1){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return null;let n=e.findIndex(e=>e.key==t.key);return{total:e.length,current:n,type:`navpoint`}}{let e=this.documentsProvider.getFirstVisibleDocument(),t=this.documentsProvider.getDocuments(),n=t.findIndex(t=>t.url==e.url);return{total:t.length,current:n,type:`file`}}}async gotoNavPoint(e){await this.htmlCoreNavigator.gotoUrl(e.url)}async gotoNextNavPointOrFile(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>1){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return;let n=e.findIndex(e=>e.key==t.key);if(n<0)return;if(n==e.length-1){this.notifier.info(this.locale?.getText(`navigator_alreadyislastnavPoint`,`You have finished this chapter.`));return}let r=await this.getNextNavPoint(t,n,e);if(r)await this.gotoNavPoint(r);else{this.notifier.info(this.locale?.getText(`navigator_alreadyislastnavPoint`,`You have finished this chapter.`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==t.length-1){this.notifier.info(this.locale?.getText(`navigator_alreadyislastnavPoint`,`You have finished this chapter.`));return}await this.htmlCoreNavigator.gotoUrl(t[n+1].url)}}async getNextNavPoint(n,r,i){let a=i[r+1];if(a){let o=e.getUrlFragment(n.url),s=e.getUrlFragment(a.url),c=this.documentsProvider.getFirstVisibleDocument();if(c&&c.url==s.urlWithoutAnchor&&s.urlWithoutAnchor==o.urlWithoutAnchor){if(s.anchor){let e=c.getContentContainer().ownerDocument.getElementById(s.anchor);if(e){let n=this.documentsProvider.getRendererContainer(),o=t.checkRangeOrElementIsVisible(n,e,n.ownerDocument.defaultView);if(o&&o.visible)return await this.getNextNavPoint(a,r+1,i)}}else return await this.getNextNavPoint(a,r+1,i)}}return a}async gotoPreviousNavPointOrFile(){let e=await this.navPointProvider.getFlattingNavPoints();if(e.length>0){let t=await this.navPointProvider.getCurrentNavPoint();if(!t)return;let n=e.findIndex(e=>e.key==t.key);if(n<0)return;if(n==0){this.notifier.info(this.locale?.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}let r=await this.getPreviousNavPoint(t,n,e);if(r)await this.gotoNavPoint(r);else{this.notifier.info(this.locale?.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}}else{let e=this.documentsProvider.getLastVisibleDocument();if(!e)return;let t=this.documentsProvider.getDocuments(),n=t.indexOf(e);if(n==0){this.notifier.info(this.locale?.getText(`navigator_alreadyisfirstnavPoint`,`Already at the first chapter`));return}await this.htmlCoreNavigator.gotoUrl(t[n-1].url)}}async getPreviousNavPoint(n,r,i){let a=i[r-1];if(a){let o=e.getUrlFragment(n.url),s=e.getUrlFragment(a.url),c=this.documentsProvider.getFirstVisibleDocument();if(c&&c.url==s.urlWithoutAnchor&&s.urlWithoutAnchor==o.urlWithoutAnchor){if(s.anchor){let e=c.getContentContainer().ownerDocument.getElementById(s.anchor);if(e){let n=this.documentsProvider.getRendererContainer(),o=t.checkRangeOrElementIsVisible(n,e,n.ownerDocument.defaultView);if(o&&o.visible)return await this.getPreviousNavPoint(a,r-1,i)}}else return await this.getPreviousNavPoint(a,r-1,i)}}return a}};exports.HtmlNavPointNavigator=n;
@@ -37,13 +37,13 @@ var n = class {
37
37
  let n = e.findIndex((e) => e.key == t.key);
38
38
  if (n < 0) return;
39
39
  if (n == e.length - 1) {
40
- this.notifier.info(this.locale?.getText("navigator_alreadyislastnavPoint", "Already at the last chapter"));
40
+ this.notifier.info(this.locale?.getText("navigator_alreadyislastnavPoint", "You have finished this chapter."));
41
41
  return;
42
42
  }
43
43
  let r = await this.getNextNavPoint(t, n, e);
44
44
  if (r) await this.gotoNavPoint(r);
45
45
  else {
46
- this.notifier.info(this.locale?.getText("navigator_alreadyislastnavPoint", "Already at the last chapter"));
46
+ this.notifier.info(this.locale?.getText("navigator_alreadyislastnavPoint", "You have finished this chapter."));
47
47
  return;
48
48
  }
49
49
  } else {
@@ -51,7 +51,7 @@ var n = class {
51
51
  if (!e) return;
52
52
  let t = this.documentsProvider.getDocuments(), n = t.indexOf(e);
53
53
  if (n == t.length - 1) {
54
- this.notifier.info(this.locale?.getText("navigator_alreadyislastnavPoint", "Already at the last chapter"));
54
+ this.notifier.info(this.locale?.getText("navigator_alreadyislastnavPoint", "You have finished this chapter."));
55
55
  return;
56
56
  }
57
57
  await this.htmlCoreNavigator.gotoUrl(t[n + 1].url);
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/common/object.cjs"),n=require("../../../../kernal/common/text.cjs"),r=require("../../../../kernal/html/finder.cjs"),i=require("../../../../kernal/html/position.cjs"),a=require("../../../../kernal/common/array.cjs");var o=class{constructor(e,n){this.documentsProvider=e,this.options=n,this.flattingNavPoints=[],this.isInitNav=!1,this.navUrlWithAnchors=new Map,this.navPointsByDocUrl=new Map,this.navPointByFullUrl=new Map,this.isInitNavUrlWithAnchors=!1,this.toDocUrlKey=e=>(e??``).toLowerCase(),this.clearNavUrlIndexes=()=>{this.isInitNavUrlWithAnchors=!1,this.navUrlWithAnchors=new Map,this.navPointsByDocUrl=new Map,this.navPointByFullUrl=new Map},this.getNavPointsForDocUrl=e=>e?this.navPointsByDocUrl.get(this.toDocUrlKey(e))??[]:[],this.getAnchorsForDocUrl=e=>{if(e)return this.navUrlWithAnchors.get(this.toDocUrlKey(e))},this.findNavPointByFullUrl=(e,t)=>this.navPointByFullUrl.get(e)||(t??this.flattingNavPoints).find(t=>t.url.indexOf(e)>=0),this.cloneNavPoint=e=>{if(e)return t.deepClone(e)},this.resolveNavPointByElements=(e,t,n,i)=>{let a=this.getNavPointsForDocUrl(e);if(a.length==0)return;if(!i&&n.length==0)return this.cloneNavPoint(a[a.length-1]);let o=this.getAnchorsForDocUrl(e);if(!o||o.length==1&&o[0]==``)return this.cloneNavPoint(this.findNavPointByFullUrl(e,a));if(n.length>0){let t=new Set(this.getElementIds(n));if(t.size>0){let n=o.find(e=>e!=``&&t.has(e));if(n)return this.cloneNavPoint(this.findNavPointByFullUrl(e+`#`+n,a))}}let s=i??n[0];if(!s)return this.cloneNavPoint(a[a.length-1]);let c=r.getElementIndex(t,s,`all`),l=new Map;for(let e=0;e<o.length;e++){let n=o[e];if(n==``||l.has(n))continue;let i=t.getElementById(n);i&&l.set(n,r.getElementIndex(t,i,`all`))}for(let t=o.length-1;t>=0;t--){let n=o[t];if(n==``)return this.cloneNavPoint(this.findNavPointByFullUrl(e,a));let r=l.get(n);if(r!==void 0&&r<=c)return this.cloneNavPoint(this.findNavPointByFullUrl(e+`#`+n,a))}return this.cloneNavPoint(a[0])},this.findGroupNavPoint=e=>{for(let t=e.length-1;t>=0;t--){let n=this.getNavPointsForDocUrl(e[t]);if(n.length>0)return n[0]}return null},this.fileParser=e.fileParser}async getFlattingNavPoints(){return await this.getInternalFlattingNavPoints()}async getInternalFlattingNavPoints(e){if(!this.isInitNav){let e=await this.fileParser.getNav();this.initialNav(e),this.isInitNav=!0}return e?this.reversedFlattingNavPoints?this.reversedFlattingNavPoints:this.flattingNavPoints&&this.flattingNavPoints.length>0?(this.reversedFlattingNavPoints=t.deepClone(this.flattingNavPoints).reverse(),this.reversedFlattingNavPoints):(this.reversedFlattingNavPoints=[],this.reversedFlattingNavPoints):this.flattingNavPoints}initialNav(e){this.flattingNavPoints=[],this.reversedFlattingNavPoints=void 0,this.clearNavUrlIndexes(),a.containValues(e?.navPoints)&&this.initialNavPoints(e.navPoints)}initialNavPoints(e){e.length!=0&&e.forEach(e=>{(!n.isNullOrWhiteSpace(e.url)||e.startPageNumber>0)&&this.flattingNavPoints.push(e),a.containValues(e.children)&&this.initialNavPoints(e.children)})}async findPreviousDocNavPoint(e){let t=await this.fileParser.getTextDocuments(),n=t.findIndex(t=>this.toDocUrlKey(t.url)==this.toDocUrlKey(e));if(!(n<0))for(let e=n;e>=0;e--){let n=this.getNavPointsForDocUrl(t[e].url);if(n.length>0)return this.cloneNavPoint(n[n.length-1])}}async getCurrentNavPoint(){if((await this.getFlattingNavPoints()).length==0)return;await this.initNavUrlWithAnchors(),await e.BrowserCapabilities.yieldToMain();let t=this.documentsProvider.getFirstVisibleDocument();if(!t)return;let n=t.url??``,r=this.getNavPointsForDocUrl(n);if(r.length>0){let e=t.getVisibleElements();if(e.length==0)return this.cloneNavPoint(r[r.length-1]);let i=this.getAnchorsForDocUrl(n);if(!i||i.length==1&&i[0]==``)return this.cloneNavPoint(this.findNavPointByFullUrl(n,r));let a=t.getVisibleElements(!0),o=a.length>0?a[0]:e[e.length-1],s=t.getContentContainer()?.ownerDocument;return s?this.resolveNavPointByElements(n,s,a,o):void 0}let i=this.documentsProvider.getDocuments();try{let n=i.indexOf(t),r=[],a=[];for(let e=0;e<=n;e++)a.push(i[e].url),e>0&&e%25==24&&(r.push(a),a=[]);a.length>0&&r.push(a),r.reverse();for(let t=0;t<r.length;t++){let n=r[t],i=this.findGroupNavPoint(n);if(await e.BrowserCapabilities.yieldToMain(),i)return this.cloneNavPoint(i)}return}catch{return}}async getNavPoint(e,t,n){if((await this.getFlattingNavPoints()).length==0)return;await this.initNavUrlWithAnchors();let r,a,o=e;if(typeof t==`number`){let o=await this.fileParser.getTextDocument(e);if(!o||(r=await o.getFormattedDocument(),!r))return;a=i.getElementByProgress(r,t,n,{removeHtmlWhitespace:this.options.removeHtmlWhitespace,whitespaceRegex:this.options.whitespaceRegex,nonWhiteSpaceSymbolTagNames:this.options.nonWhiteSpaceSymbolTagNames}).element}else r=t.ownerDocument,a=t;let s=this.getNavPointsForDocUrl(o);return s.length>0?a?this.resolveNavPointByElements(o,r,[a],a):this.cloneNavPoint(s[s.length-1]):await this.findPreviousDocNavPoint(o)}async initNavUrlWithAnchors(){if(this.isInitNavUrlWithAnchors)return;let e=await this.getFlattingNavPoints();this.navUrlWithAnchors=new Map,this.navPointsByDocUrl=new Map,this.navPointByFullUrl=new Map,e.forEach(e=>{let t=e.url;if(n.isNullOrWhiteSpace(t))return;this.navPointByFullUrl.set(t,e);let r=t.lastIndexOf(`#`),i=r>0?t.substring(0,r):t,a=r>0?t.substring(r+1):``,o=this.toDocUrlKey(i);this.navUrlWithAnchors.has(o)?this.navUrlWithAnchors.get(o).push(a):this.navUrlWithAnchors.set(o,[a]),this.navPointsByDocUrl.has(o)?this.navPointsByDocUrl.get(o).push(e):this.navPointsByDocUrl.set(o,[e])}),this.isInitNavUrlWithAnchors=!0}getElementIds(e){let t=[];for(let r=0;r<e.length;r++){let i=e[r];n.isNullOrWhiteSpace(i.id)||t.push(i.id),i.parentElement&&i.parentElement.children.length==1&&!n.isNullOrWhiteSpace(i.parentElement.id)&&t.push(i.parentElement.id),this.getChildrenIds(i.children,t)}return t}getChildrenIds(e,t){for(let r=0;r<e.length;r++){let i=e[r];n.isNullOrWhiteSpace(i.id)||t.push(i.id),i.children.length>0&&this.getChildrenIds(i.children,t)}}async dispose(){this.docUrls&&this.docUrls.splice(0),this.flattingNavPoints&&this.flattingNavPoints.splice(0),this.reversedFlattingNavPoints&&this.reversedFlattingNavPoints.splice(0),this.clearNavUrlIndexes()}};exports.HtmlNavPointProvider=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/object.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/html/finder.cjs"),r=require("../../../../kernal/web/scheduler.cjs"),i=require("../../../../kernal/common/array.cjs"),a=require("../../fileParser/IHtmlFileParser.cjs");var o=class{constructor(t,r){this.documentsProvider=t,this.options=r,this.flattingNavPoints=[],this.isInitNav=!1,this.navUrlWithAnchors=new Map,this.navPointsByDocUrl=new Map,this.navPointByFullUrl=new Map,this.isInitNavUrlWithAnchors=!1,this.toDocUrlKey=e=>(e??``).toLowerCase(),this.clearNavUrlIndexes=()=>{this.isInitNavUrlWithAnchors=!1,this.navUrlWithAnchors=new Map,this.navPointsByDocUrl=new Map,this.navPointByFullUrl=new Map},this.getNavPointsForDocUrl=e=>e?this.navPointsByDocUrl.get(this.toDocUrlKey(e))??[]:[],this.getAnchorsForDocUrl=e=>{if(e)return this.navUrlWithAnchors.get(this.toDocUrlKey(e))},this.findNavPointByFullUrl=(e,t)=>this.navPointByFullUrl.get(e)||(t??this.flattingNavPoints).find(t=>t.url.indexOf(e)>=0),this.cloneNavPoint=t=>{if(t)return e.deepClone(t)},this.resolveNavPointByElements=(e,t,r,i)=>{let a=this.getNavPointsForDocUrl(e);if(a.length==0)return;if(!i&&r.length==0)return this.cloneNavPoint(a[a.length-1]);let o=this.getAnchorsForDocUrl(e);if(!o||o.length==1&&o[0]==``)return this.cloneNavPoint(this.findNavPointByFullUrl(e,a));if(r.length>0){let t=new Set(this.getElementIds(r));if(t.size>0){let n=o.find(e=>e!=``&&t.has(e));if(n)return this.cloneNavPoint(this.findNavPointByFullUrl(e+`#`+n,a))}}let s=i??r[0];if(!s)return this.cloneNavPoint(a[a.length-1]);let c=n.getElementIndex(t,s,`all`),l=new Map;for(let e=0;e<o.length;e++){let r=o[e];if(r==``||l.has(r))continue;let i=t.getElementById(r);i&&l.set(r,n.getElementIndex(t,i,`all`))}for(let t=o.length-1;t>=0;t--){let n=o[t];if(n==``)return this.cloneNavPoint(this.findNavPointByFullUrl(e,a));let r=l.get(n);if(r!==void 0&&r<=c)return this.cloneNavPoint(this.findNavPointByFullUrl(e+`#`+n,a))}return this.cloneNavPoint(a[0])},this.findGroupNavPoint=e=>{for(let t=e.length-1;t>=0;t--){let n=this.getNavPointsForDocUrl(e[t]);if(n.length>0)return n[0]}return null},this.fileParser=t.fileParser}async getFlattingNavPoints(){return await this.getInternalFlattingNavPoints()}async getInternalFlattingNavPoints(t){if(!this.isInitNav){let e=await this.fileParser.getNav();this.initialNav(e),this.isInitNav=!0}return t?this.reversedFlattingNavPoints?this.reversedFlattingNavPoints:this.flattingNavPoints&&this.flattingNavPoints.length>0?(this.reversedFlattingNavPoints=e.deepClone(this.flattingNavPoints).reverse(),this.reversedFlattingNavPoints):(this.reversedFlattingNavPoints=[],this.reversedFlattingNavPoints):this.flattingNavPoints}initialNav(e){this.flattingNavPoints=[],this.reversedFlattingNavPoints=void 0,this.clearNavUrlIndexes(),i.containValues(e?.navPoints)&&this.initialNavPoints(e.navPoints)}initialNavPoints(e){e.length!=0&&e.forEach(e=>{(!t.isNullOrWhiteSpace(e.url)||e.startPageNumber>0)&&this.flattingNavPoints.push(e),i.containValues(e.children)&&this.initialNavPoints(e.children)})}async findPreviousDocNavPoint(e){let t=await this.fileParser.getTextDocuments(),n=t.findIndex(t=>this.toDocUrlKey(t.url)==this.toDocUrlKey(e));if(!(n<0))for(let e=n;e>=0;e--){let n=this.getNavPointsForDocUrl(t[e].url);if(n.length>0)return this.cloneNavPoint(n[n.length-1])}}async getCurrentNavPoint(){if((await this.getFlattingNavPoints()).length==0)return;await this.initNavUrlWithAnchors(),await r.yieldToMain();let e=this.documentsProvider.getFirstVisibleDocument();if(!e)return;let t=e.url??``,n=this.getNavPointsForDocUrl(t);if(n.length>0){let r=e.getVisibleElements();if(r.length==0)return this.cloneNavPoint(n[n.length-1]);let i=this.getAnchorsForDocUrl(t);if(!i||i.length==1&&i[0]==``)return this.cloneNavPoint(this.findNavPointByFullUrl(t,n));let a=e.getVisibleElements(!0),o=a.length>0?a[0]:r[r.length-1],s=e.getContentContainer()?.ownerDocument;return s?this.resolveNavPointByElements(t,s,a,o):void 0}let i=this.documentsProvider.getDocuments();try{let t=i.indexOf(e),n=[],a=[];for(let e=0;e<=t;e++)a.push(i[e].url),e>0&&e%25==24&&(n.push(a),a=[]);a.length>0&&n.push(a),n.reverse();for(let e=0;e<n.length;e++){let t=n[e],i=this.findGroupNavPoint(t);if(await r.yieldToMain(),i)return this.cloneNavPoint(i)}return}catch{return}}async getNavPoint(e,t,n){if((await this.getFlattingNavPoints()).length==0)return;await this.initNavUrlWithAnchors();let r,i,o=e;if(typeof t==`number`){let o=await this.fileParser.getTextDocument(e);if(!o||(r=await o.getFormattedDocument(),!r))return;i=a.asHtmlFileParser(this.fileParser).symbolMeasure.getElementByProgress(r,t,n).element}else r=t.ownerDocument,i=t;let s=this.getNavPointsForDocUrl(o);return s.length>0?i?this.resolveNavPointByElements(o,r,[i],i):this.cloneNavPoint(s[s.length-1]):await this.findPreviousDocNavPoint(o)}async initNavUrlWithAnchors(){if(this.isInitNavUrlWithAnchors)return;let e=await this.getFlattingNavPoints();this.navUrlWithAnchors=new Map,this.navPointsByDocUrl=new Map,this.navPointByFullUrl=new Map,e.forEach(e=>{let n=e.url;if(t.isNullOrWhiteSpace(n))return;this.navPointByFullUrl.set(n,e);let r=n.lastIndexOf(`#`),i=r>0?n.substring(0,r):n,a=r>0?n.substring(r+1):``,o=this.toDocUrlKey(i);this.navUrlWithAnchors.has(o)?this.navUrlWithAnchors.get(o).push(a):this.navUrlWithAnchors.set(o,[a]),this.navPointsByDocUrl.has(o)?this.navPointsByDocUrl.get(o).push(e):this.navPointsByDocUrl.set(o,[e])}),this.isInitNavUrlWithAnchors=!0}getElementIds(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];t.isNullOrWhiteSpace(i.id)||n.push(i.id),i.parentElement&&i.parentElement.children.length==1&&!t.isNullOrWhiteSpace(i.parentElement.id)&&n.push(i.parentElement.id),this.getChildrenIds(i.children,n)}return n}getChildrenIds(e,n){for(let r=0;r<e.length;r++){let i=e[r];t.isNullOrWhiteSpace(i.id)||n.push(i.id),i.children.length>0&&this.getChildrenIds(i.children,n)}}async dispose(){this.docUrls&&this.docUrls.splice(0),this.flattingNavPoints&&this.flattingNavPoints.splice(0),this.reversedFlattingNavPoints&&this.reversedFlattingNavPoints.splice(0),this.clearNavUrlIndexes()}};exports.HtmlNavPointProvider=o;
@@ -1,39 +1,39 @@
1
- import { BrowserCapabilities as e } from "../../../../kernal/web/BrowserCapabilities.mjs";
2
- import { deepClone as t } from "../../../../kernal/common/object.mjs";
3
- import { isNullOrWhiteSpace as n } from "../../../../kernal/common/text.mjs";
4
- import { getElementIndex as r } from "../../../../kernal/html/finder.mjs";
5
- import { getElementByProgress as i } from "../../../../kernal/html/position.mjs";
6
- import { containValues as a } from "../../../../kernal/common/array.mjs";
1
+ import { deepClone as e } from "../../../../kernal/common/object.mjs";
2
+ import { isNullOrWhiteSpace as t } from "../../../../kernal/common/text.mjs";
3
+ import { getElementIndex as n } from "../../../../kernal/html/finder.mjs";
4
+ import { yieldToMain as r } from "../../../../kernal/web/scheduler.mjs";
5
+ import { containValues as i } from "../../../../kernal/common/array.mjs";
6
+ import { asHtmlFileParser as a } from "../../fileParser/IHtmlFileParser.mjs";
7
7
  //#region mediaTypes/html/renderer/navigator/HtmlNavPointProvider.ts
8
8
  var o = class {
9
- constructor(e, n) {
10
- this.documentsProvider = e, this.options = n, this.flattingNavPoints = [], this.isInitNav = !1, this.navUrlWithAnchors = /* @__PURE__ */ new Map(), this.navPointsByDocUrl = /* @__PURE__ */ new Map(), this.navPointByFullUrl = /* @__PURE__ */ new Map(), this.isInitNavUrlWithAnchors = !1, this.toDocUrlKey = (e) => (e ?? "").toLowerCase(), this.clearNavUrlIndexes = () => {
9
+ constructor(t, r) {
10
+ this.documentsProvider = t, this.options = r, this.flattingNavPoints = [], this.isInitNav = !1, this.navUrlWithAnchors = /* @__PURE__ */ new Map(), this.navPointsByDocUrl = /* @__PURE__ */ new Map(), this.navPointByFullUrl = /* @__PURE__ */ new Map(), this.isInitNavUrlWithAnchors = !1, this.toDocUrlKey = (e) => (e ?? "").toLowerCase(), this.clearNavUrlIndexes = () => {
11
11
  this.isInitNavUrlWithAnchors = !1, this.navUrlWithAnchors = /* @__PURE__ */ new Map(), this.navPointsByDocUrl = /* @__PURE__ */ new Map(), this.navPointByFullUrl = /* @__PURE__ */ new Map();
12
12
  }, this.getNavPointsForDocUrl = (e) => e ? this.navPointsByDocUrl.get(this.toDocUrlKey(e)) ?? [] : [], this.getAnchorsForDocUrl = (e) => {
13
13
  if (e) return this.navUrlWithAnchors.get(this.toDocUrlKey(e));
14
- }, this.findNavPointByFullUrl = (e, t) => this.navPointByFullUrl.get(e) || (t ?? this.flattingNavPoints).find((t) => t.url.indexOf(e) >= 0), this.cloneNavPoint = (e) => {
15
- if (e) return t(e);
16
- }, this.resolveNavPointByElements = (e, t, n, i) => {
14
+ }, this.findNavPointByFullUrl = (e, t) => this.navPointByFullUrl.get(e) || (t ?? this.flattingNavPoints).find((t) => t.url.indexOf(e) >= 0), this.cloneNavPoint = (t) => {
15
+ if (t) return e(t);
16
+ }, this.resolveNavPointByElements = (e, t, r, i) => {
17
17
  let a = this.getNavPointsForDocUrl(e);
18
18
  if (a.length == 0) return;
19
- if (!i && n.length == 0) return this.cloneNavPoint(a[a.length - 1]);
19
+ if (!i && r.length == 0) return this.cloneNavPoint(a[a.length - 1]);
20
20
  let o = this.getAnchorsForDocUrl(e);
21
21
  if (!o || o.length == 1 && o[0] == "") return this.cloneNavPoint(this.findNavPointByFullUrl(e, a));
22
- if (n.length > 0) {
23
- let t = new Set(this.getElementIds(n));
22
+ if (r.length > 0) {
23
+ let t = new Set(this.getElementIds(r));
24
24
  if (t.size > 0) {
25
25
  let n = o.find((e) => e != "" && t.has(e));
26
26
  if (n) return this.cloneNavPoint(this.findNavPointByFullUrl(e + "#" + n, a));
27
27
  }
28
28
  }
29
- let s = i ?? n[0];
29
+ let s = i ?? r[0];
30
30
  if (!s) return this.cloneNavPoint(a[a.length - 1]);
31
- let c = r(t, s, "all"), l = /* @__PURE__ */ new Map();
31
+ let c = n(t, s, "all"), l = /* @__PURE__ */ new Map();
32
32
  for (let e = 0; e < o.length; e++) {
33
- let n = o[e];
34
- if (n == "" || l.has(n)) continue;
35
- let i = t.getElementById(n);
36
- i && l.set(n, r(t, i, "all"));
33
+ let r = o[e];
34
+ if (r == "" || l.has(r)) continue;
35
+ let i = t.getElementById(r);
36
+ i && l.set(r, n(t, i, "all"));
37
37
  }
38
38
  for (let t = o.length - 1; t >= 0; t--) {
39
39
  let n = o[t];
@@ -48,24 +48,24 @@ var o = class {
48
48
  if (n.length > 0) return n[0];
49
49
  }
50
50
  return null;
51
- }, this.fileParser = e.fileParser;
51
+ }, this.fileParser = t.fileParser;
52
52
  }
53
53
  async getFlattingNavPoints() {
54
54
  return await this.getInternalFlattingNavPoints();
55
55
  }
56
- async getInternalFlattingNavPoints(e) {
56
+ async getInternalFlattingNavPoints(t) {
57
57
  if (!this.isInitNav) {
58
58
  let e = await this.fileParser.getNav();
59
59
  this.initialNav(e), this.isInitNav = !0;
60
60
  }
61
- return e ? this.reversedFlattingNavPoints ? this.reversedFlattingNavPoints : this.flattingNavPoints && this.flattingNavPoints.length > 0 ? (this.reversedFlattingNavPoints = t(this.flattingNavPoints).reverse(), this.reversedFlattingNavPoints) : (this.reversedFlattingNavPoints = [], this.reversedFlattingNavPoints) : this.flattingNavPoints;
61
+ return t ? this.reversedFlattingNavPoints ? this.reversedFlattingNavPoints : this.flattingNavPoints && this.flattingNavPoints.length > 0 ? (this.reversedFlattingNavPoints = e(this.flattingNavPoints).reverse(), this.reversedFlattingNavPoints) : (this.reversedFlattingNavPoints = [], this.reversedFlattingNavPoints) : this.flattingNavPoints;
62
62
  }
63
63
  initialNav(e) {
64
- this.flattingNavPoints = [], this.reversedFlattingNavPoints = void 0, this.clearNavUrlIndexes(), a(e?.navPoints) && this.initialNavPoints(e.navPoints);
64
+ this.flattingNavPoints = [], this.reversedFlattingNavPoints = void 0, this.clearNavUrlIndexes(), i(e?.navPoints) && this.initialNavPoints(e.navPoints);
65
65
  }
66
66
  initialNavPoints(e) {
67
67
  e.length != 0 && e.forEach((e) => {
68
- (!n(e.url) || e.startPageNumber > 0) && this.flattingNavPoints.push(e), a(e.children) && this.initialNavPoints(e.children);
68
+ (!t(e.url) || e.startPageNumber > 0) && this.flattingNavPoints.push(e), i(e.children) && this.initialNavPoints(e.children);
69
69
  });
70
70
  }
71
71
  async findPreviousDocNavPoint(e) {
@@ -77,26 +77,26 @@ var o = class {
77
77
  }
78
78
  async getCurrentNavPoint() {
79
79
  if ((await this.getFlattingNavPoints()).length == 0) return;
80
- await this.initNavUrlWithAnchors(), await e.yieldToMain();
81
- let t = this.documentsProvider.getFirstVisibleDocument();
82
- if (!t) return;
83
- let n = t.url ?? "", r = this.getNavPointsForDocUrl(n);
84
- if (r.length > 0) {
85
- let e = t.getVisibleElements();
86
- if (e.length == 0) return this.cloneNavPoint(r[r.length - 1]);
87
- let i = this.getAnchorsForDocUrl(n);
88
- if (!i || i.length == 1 && i[0] == "") return this.cloneNavPoint(this.findNavPointByFullUrl(n, r));
89
- let a = t.getVisibleElements(!0), o = a.length > 0 ? a[0] : e[e.length - 1], s = t.getContentContainer()?.ownerDocument;
90
- return s ? this.resolveNavPointByElements(n, s, a, o) : void 0;
80
+ await this.initNavUrlWithAnchors(), await r();
81
+ let e = this.documentsProvider.getFirstVisibleDocument();
82
+ if (!e) return;
83
+ let t = e.url ?? "", n = this.getNavPointsForDocUrl(t);
84
+ if (n.length > 0) {
85
+ let r = e.getVisibleElements();
86
+ if (r.length == 0) return this.cloneNavPoint(n[n.length - 1]);
87
+ let i = this.getAnchorsForDocUrl(t);
88
+ if (!i || i.length == 1 && i[0] == "") return this.cloneNavPoint(this.findNavPointByFullUrl(t, n));
89
+ let a = e.getVisibleElements(!0), o = a.length > 0 ? a[0] : r[r.length - 1], s = e.getContentContainer()?.ownerDocument;
90
+ return s ? this.resolveNavPointByElements(t, s, a, o) : void 0;
91
91
  }
92
92
  let i = this.documentsProvider.getDocuments();
93
93
  try {
94
- let n = i.indexOf(t), r = [], a = [];
95
- for (let e = 0; e <= n; e++) a.push(i[e].url), e > 0 && e % 25 == 24 && (r.push(a), a = []);
96
- a.length > 0 && r.push(a), r.reverse();
97
- for (let t = 0; t < r.length; t++) {
98
- let n = r[t], i = this.findGroupNavPoint(n);
99
- if (await e.yieldToMain(), i) return this.cloneNavPoint(i);
94
+ let t = i.indexOf(e), n = [], a = [];
95
+ for (let e = 0; e <= t; e++) a.push(i[e].url), e > 0 && e % 25 == 24 && (n.push(a), a = []);
96
+ a.length > 0 && n.push(a), n.reverse();
97
+ for (let e = 0; e < n.length; e++) {
98
+ let t = n[e], i = this.findGroupNavPoint(t);
99
+ if (await r(), i) return this.cloneNavPoint(i);
100
100
  }
101
101
  return;
102
102
  } catch {
@@ -106,42 +106,38 @@ var o = class {
106
106
  async getNavPoint(e, t, n) {
107
107
  if ((await this.getFlattingNavPoints()).length == 0) return;
108
108
  await this.initNavUrlWithAnchors();
109
- let r, a, o = e;
109
+ let r, i, o = e;
110
110
  if (typeof t == "number") {
111
111
  let o = await this.fileParser.getTextDocument(e);
112
112
  if (!o || (r = await o.getFormattedDocument(), !r)) return;
113
- a = i(r, t, n, {
114
- removeHtmlWhitespace: this.options.removeHtmlWhitespace,
115
- whitespaceRegex: this.options.whitespaceRegex,
116
- nonWhiteSpaceSymbolTagNames: this.options.nonWhiteSpaceSymbolTagNames
117
- }).element;
118
- } else r = t.ownerDocument, a = t;
113
+ i = a(this.fileParser).symbolMeasure.getElementByProgress(r, t, n).element;
114
+ } else r = t.ownerDocument, i = t;
119
115
  let s = this.getNavPointsForDocUrl(o);
120
- return s.length > 0 ? a ? this.resolveNavPointByElements(o, r, [a], a) : this.cloneNavPoint(s[s.length - 1]) : await this.findPreviousDocNavPoint(o);
116
+ return s.length > 0 ? i ? this.resolveNavPointByElements(o, r, [i], i) : this.cloneNavPoint(s[s.length - 1]) : await this.findPreviousDocNavPoint(o);
121
117
  }
122
118
  async initNavUrlWithAnchors() {
123
119
  if (this.isInitNavUrlWithAnchors) return;
124
120
  let e = await this.getFlattingNavPoints();
125
121
  this.navUrlWithAnchors = /* @__PURE__ */ new Map(), this.navPointsByDocUrl = /* @__PURE__ */ new Map(), this.navPointByFullUrl = /* @__PURE__ */ new Map(), e.forEach((e) => {
126
- let t = e.url;
127
- if (n(t)) return;
128
- this.navPointByFullUrl.set(t, e);
129
- let r = t.lastIndexOf("#"), i = r > 0 ? t.substring(0, r) : t, a = r > 0 ? t.substring(r + 1) : "", o = this.toDocUrlKey(i);
122
+ let n = e.url;
123
+ if (t(n)) return;
124
+ this.navPointByFullUrl.set(n, e);
125
+ let r = n.lastIndexOf("#"), i = r > 0 ? n.substring(0, r) : n, a = r > 0 ? n.substring(r + 1) : "", o = this.toDocUrlKey(i);
130
126
  this.navUrlWithAnchors.has(o) ? this.navUrlWithAnchors.get(o).push(a) : this.navUrlWithAnchors.set(o, [a]), this.navPointsByDocUrl.has(o) ? this.navPointsByDocUrl.get(o).push(e) : this.navPointsByDocUrl.set(o, [e]);
131
127
  }), this.isInitNavUrlWithAnchors = !0;
132
128
  }
133
129
  getElementIds(e) {
134
- let t = [];
130
+ let n = [];
135
131
  for (let r = 0; r < e.length; r++) {
136
132
  let i = e[r];
137
- n(i.id) || t.push(i.id), i.parentElement && i.parentElement.children.length == 1 && !n(i.parentElement.id) && t.push(i.parentElement.id), this.getChildrenIds(i.children, t);
133
+ t(i.id) || n.push(i.id), i.parentElement && i.parentElement.children.length == 1 && !t(i.parentElement.id) && n.push(i.parentElement.id), this.getChildrenIds(i.children, n);
138
134
  }
139
- return t;
135
+ return n;
140
136
  }
141
- getChildrenIds(e, t) {
137
+ getChildrenIds(e, n) {
142
138
  for (let r = 0; r < e.length; r++) {
143
139
  let i = e[r];
144
- n(i.id) || t.push(i.id), i.children.length > 0 && this.getChildrenIds(i.children, t);
140
+ t(i.id) || n.push(i.id), i.children.length > 0 && this.getChildrenIds(i.children, n);
145
141
  }
146
142
  }
147
143
  async dispose() {
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../../../../kernal/progress/Progress.cjs"),n=require("../../../../kernal/navigator/IPagingNavigator.cjs");var r=class{constructor(t,r,i){this.documentsProvider=t,this.htmlCoreNavigator=r,this.options=i,this.notify=async(t,r,i)=>{let a=new n.PageChangeOptions;if(a.doc=t,a.pageNumber=r,a.extra=i,this.state){let n=this.documentsProvider.getDocuments(),i=n.indexOf(this.state.doc),o=n.indexOf(t);a.direction=i==o?r>this.state.pageNumber?`next`:`previous`:o>i?`next`:`previous`,this.owner.events.emit(e.EventNames.PageChange,a),this.state={doc:t,pageNumber:r}}else this.state={doc:t,pageNumber:r},a.direction=`next`,this.owner.events.emit(e.EventNames.PageChange,a)},this.owner=t.owner,this.locale=this.owner.locale,this.logger=this.owner.loggerFactory.getLogger(this.constructor.name)}async dispose(){this.state=null}async gotoPage(e,t,n){return await this.internalGotoPage(e,t,null,n)}async internalGotoPage(e,n,r,i){if(this.options.flipMode==`scroll`)return this.logger.warn(this.locale?.getText(`unsupportTurnPageWhenScrolling`,`Page turning is not supported in scroll mode`)),!1;await e.load();let a=await e.getNumberOfPages(),o=new t.FileLocation(e.url,a,`page`);if(o.current=n,o.direction=r,n<=0){let n=this.documentsProvider.getDocuments(),r=n.indexOf(e);if(r==0)return this.owner.notifier.info(this.locale.getText(`navigotor_alreadyisfirstpage`,`Already at the first page`)),!1;let a=n[r-1];await a.load();let s=await a.getNumberOfPages();return o=new t.FileLocation(a.url,s,`page`),o.current=s,o.direction=`previous`,await this.htmlCoreNavigator.goto(o),await this.notify(a,s,i),!0}if(n>a){let n=this.documentsProvider.getDocuments(),r=n.indexOf(e);if(r==n.length-1)return this.owner.notifier.info(this.locale.getText(`navigotor_alreadyislastpage`,`Already at the last page`)),!1;let a=n[r+1];await a.load();let s=await a.getNumberOfPages();return o=new t.FileLocation(a.url,s,`page`),o.current=1,o.direction=`next`,await this.htmlCoreNavigator.goto(o),await this.notify(a,1,i),!0}return await this.htmlCoreNavigator.goto(o),await this.notify(e,n,i),!0}async gotoNextPage(e){if(this.options.flipMode==`scroll`)return!1;let t=this.documentsProvider.getFirstVisibleDocument();if(!t){let e=this.documentsProvider.getDocuments();t=e[e.length-1]}await t.load();let n=this.documentsProvider.getCurrentPageNumber(t);this.state={doc:t,pageNumber:n};let r=n+1;return await this.internalGotoPage(t,r,`next`,e)}async gotoPreviousPage(e){if(this.options.flipMode==`scroll`)return!1;let t=this.documentsProvider.getLastVisibleDocument();t||=this.documentsProvider.getDocuments()[0],await t.load();let n=this.documentsProvider.getCurrentPageNumber(t);this.state={doc:t,pageNumber:n};let r=n-1;return await this.internalGotoPage(t,r,`previous`,e)}};exports.HtmlPagingNavigator=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../../../../kernal/progress/Progress.cjs"),n=require("../../../../kernal/progress/userChangedProgress.cjs"),r=require("../../../../kernal/navigator/IPagingNavigator.cjs"),i=require("../layout/resolveLayoutRoute.cjs");var a=class{constructor(t,n,i){this.documentsProvider=t,this.htmlCoreNavigator=n,this.options=i,this.resolveCurrentDocument=e=>{let t=this.owner.context.currentLocation?.url,n=t?this.documentsProvider.getDocument(t):null;return n?.getLoadStatus()===`success`?n:e===`next`?this.documentsProvider.getFirstVisibleDocument():this.documentsProvider.getLastVisibleDocument()},this.notify=async(t,n,i)=>{let a=new r.PageChangeOptions;if(a.doc=t,a.pageNumber=n,a.extra=i,this.state){let r=this.documentsProvider.getDocuments(),i=r.indexOf(this.state.doc),o=r.indexOf(t);a.direction=i==o?n>this.state.pageNumber?`next`:`previous`:o>i?`next`:`previous`,this.owner.events.emit(e.EventNames.PageChange,a),this.state={doc:t,pageNumber:n}}else this.state={doc:t,pageNumber:n},a.direction=`next`,this.owner.events.emit(e.EventNames.PageChange,a)},this.owner=t.owner,this.locale=this.owner.locale,this.logger=this.owner.loggerFactory.getLogger(this.constructor.name)}async dispose(){this.state=null}async gotoPage(e,t,n){return await this.internalGotoPage(e,t,null,n)}async internalGotoPage(e,r,a,o){if(i.getLayoutGeometry(this.options).flipMode==`scroll`)return this.logger.warn(this.locale?.getText(`unsupportTurnPageWhenScrolling`,`Page turning is not supported in scroll mode`)),!1;await e.load();let s=await e.getNumberOfPages(),c=new t.FileLocation(e.url,s,`page`);if(c.current=r,c.direction=a,n.applyPagingLocationFrom(c,o),r<=0){let r=this.documentsProvider.getDocuments(),i=r.indexOf(e);if(i==0)return this.owner.notifier.info(this.locale.getText(`navigotor_alreadyisfirstpage`,`Already at the first page`)),!1;let a=r[i-1];await a.load();let s=await a.getNumberOfPages();return c=new t.FileLocation(a.url,s,`page`),c.current=s,c.direction=`previous`,n.applyPagingLocationFrom(c,o),await this.htmlCoreNavigator.goto(c),await this.notify(a,s,o),!0}if(r>s){let r=this.documentsProvider.getDocuments(),i=r.indexOf(e);if(i==r.length-1)return this.owner.notifier.info(this.locale.getText(`navigotor_alreadyislastpage`,`You have reached the end of the book.`)),!1;let a=r[i+1];await a.load();let s=await a.getNumberOfPages();return c=new t.FileLocation(a.url,s,`page`),c.current=1,c.direction=`next`,n.applyPagingLocationFrom(c,o),await this.htmlCoreNavigator.goto(c),await this.notify(a,1,o),!0}return await this.htmlCoreNavigator.goto(c),await this.notify(e,r,o),!0}async gotoNextPage(e){if(i.getLayoutGeometry(this.options).flipMode==`scroll`)return!1;let t=this.resolveCurrentDocument(`next`);if(!t){let e=this.documentsProvider.getDocuments();t=e[e.length-1]}await t.load();let{current:n}=await this.documentsProvider.syncPageState(t);return this.state={doc:t,pageNumber:n},await this.internalGotoPage(t,n+1,`next`,e)}async gotoPreviousPage(e){if(i.getLayoutGeometry(this.options).flipMode==`scroll`)return!1;let t=this.resolveCurrentDocument(`previous`);t||=this.documentsProvider.getDocuments()[0],await t.load();let{current:n}=await this.documentsProvider.syncPageState(t);return this.state={doc:t,pageNumber:n},await this.internalGotoPage(t,n-1,`previous`,e)}};exports.HtmlPagingNavigator=a;
@@ -17,5 +17,6 @@ export declare class HtmlPagingNavigator implements IPagingNavigator {
17
17
  private internalGotoPage;
18
18
  gotoNextPage(extra?: PagingExtra): Promise<boolean>;
19
19
  gotoPreviousPage(extra?: PagingExtra): Promise<boolean>;
20
+ private resolveCurrentDocument;
20
21
  private notify;
21
22
  }