@foxycape/core 1.1.6 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/README.MD +0 -2
  2. package/README.zh.md +0 -2
  3. package/dist/ReaderHub.cjs +1 -0
  4. package/dist/ReaderHub.d.ts +20 -0
  5. package/dist/ReaderHub.mjs +59 -0
  6. package/dist/kernal/Context.cjs +1 -1
  7. package/dist/kernal/Context.mjs +13 -8
  8. package/dist/kernal/EventNames.cjs +1 -1
  9. package/dist/kernal/EventNames.d.ts +2 -0
  10. package/dist/kernal/EventNames.mjs +6 -0
  11. package/dist/kernal/FileLoader.cjs +1 -1
  12. package/dist/kernal/FileLoader.d.ts +3 -11
  13. package/dist/kernal/FileLoader.mjs +27 -22
  14. package/dist/kernal/JsonConvert.cjs +1 -1
  15. package/dist/kernal/JsonConvert.d.ts +0 -1
  16. package/dist/kernal/JsonConvert.mjs +17 -25
  17. package/dist/kernal/LifecycleHooks.d.ts +2 -1
  18. package/dist/kernal/Metadata.cjs +1 -1
  19. package/dist/kernal/Metadata.d.ts +34 -0
  20. package/dist/kernal/Metadata.mjs +47 -2
  21. package/dist/kernal/OpenOptions.d.ts +1 -0
  22. package/dist/kernal/Options.cjs +1 -1
  23. package/dist/kernal/Options.d.ts +2 -12
  24. package/dist/kernal/Options.mjs +1 -13
  25. package/dist/kernal/OptionsProvider.cjs +1 -1
  26. package/dist/kernal/OptionsProvider.d.ts +0 -2
  27. package/dist/kernal/OptionsProvider.mjs +6 -14
  28. package/dist/kernal/Reader.cjs +1 -1
  29. package/dist/kernal/Reader.d.ts +13 -12
  30. package/dist/kernal/Reader.mjs +119 -89
  31. package/dist/kernal/Theme.cjs +1 -1
  32. package/dist/kernal/Theme.mjs +1 -1
  33. package/dist/kernal/common/url.cjs +1 -1
  34. package/dist/kernal/common/url.d.ts +2 -0
  35. package/dist/kernal/common/url.mjs +2 -2
  36. package/dist/kernal/common/uuid.cjs +1 -1
  37. package/dist/kernal/common/uuid.mjs +7 -7
  38. package/dist/kernal/common/xxh64.cjs +1 -0
  39. package/dist/kernal/common/xxh64.d.ts +1 -0
  40. package/dist/kernal/common/xxh64.mjs +30 -0
  41. package/dist/kernal/crypto/MD5.cjs +1 -1
  42. package/dist/kernal/crypto/MD5.d.ts +0 -1
  43. package/dist/kernal/crypto/MD5.mjs +8 -9
  44. package/dist/kernal/crypto/WebCrypto.cjs +1 -1
  45. package/dist/kernal/crypto/WebCrypto.mjs +38 -35
  46. package/dist/kernal/deepClone/buffer.cjs +1 -1
  47. package/dist/kernal/deepClone/buffer.d.ts +8 -2
  48. package/dist/kernal/deepClone/buffer.mjs +1 -5
  49. package/dist/kernal/device/IDevice.d.ts +8 -2
  50. package/dist/kernal/device/WebBrowser.cjs +1 -1
  51. package/dist/kernal/device/WebBrowser.d.ts +12 -6
  52. package/dist/kernal/device/WebBrowser.mjs +70 -6
  53. package/dist/kernal/hostViewport.cjs +1 -0
  54. package/dist/kernal/hostViewport.d.ts +16 -0
  55. package/dist/kernal/hostViewport.mjs +44 -0
  56. package/dist/kernal/html/events.cjs +1 -1
  57. package/dist/kernal/html/events.mjs +35 -34
  58. package/dist/kernal/html/finder.cjs +1 -1
  59. package/dist/kernal/html/finder.d.ts +6 -2
  60. package/dist/kernal/html/finder.mjs +62 -51
  61. package/dist/kernal/html/geometry.cjs +1 -1
  62. package/dist/kernal/html/geometry.d.ts +26 -1
  63. package/dist/kernal/html/geometry.mjs +182 -121
  64. package/dist/kernal/html/manipulator.cjs +1 -1
  65. package/dist/kernal/html/manipulator.d.ts +1 -3
  66. package/dist/kernal/html/manipulator.mjs +34 -59
  67. package/dist/kernal/html/parser.cjs +1 -1
  68. package/dist/kernal/html/parser.mjs +3 -3
  69. package/dist/kernal/html/position.cjs +1 -1
  70. package/dist/kernal/html/position.d.ts +0 -18
  71. package/dist/kernal/html/position.mjs +2 -141
  72. package/dist/kernal/html/realm.cjs +1 -0
  73. package/dist/kernal/html/realm.d.ts +7 -0
  74. package/dist/kernal/html/realm.mjs +8 -0
  75. package/dist/kernal/html/selection.cjs +1 -1
  76. package/dist/kernal/html/selection.d.ts +1 -0
  77. package/dist/kernal/html/selection.mjs +33 -12
  78. package/dist/kernal/html/text.cjs +1 -1
  79. package/dist/kernal/html/text.d.ts +4 -3
  80. package/dist/kernal/html/text.mjs +24 -21
  81. package/dist/kernal/html/translationAnchor.cjs +1 -0
  82. package/dist/kernal/html/translationAnchor.d.ts +3 -0
  83. package/dist/kernal/html/translationAnchor.mjs +71 -0
  84. package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
  85. package/dist/kernal/i18n/DefaultLocale.d.ts +2 -2
  86. package/dist/kernal/i18n/DefaultLocale.mjs +7 -12
  87. package/dist/kernal/i18n/ILocale.d.ts +0 -1
  88. package/dist/kernal/i18n/applyNamed.cjs +1 -0
  89. package/dist/kernal/i18n/applyNamed.d.ts +1 -0
  90. package/dist/kernal/i18n/applyNamed.mjs +9 -0
  91. package/dist/kernal/i18n/textDirection.cjs +1 -0
  92. package/dist/kernal/i18n/textDirection.d.ts +6 -0
  93. package/dist/kernal/i18n/textDirection.mjs +7 -0
  94. package/dist/kernal/index.cjs +1 -1
  95. package/dist/kernal/index.d.ts +6 -5
  96. package/dist/kernal/index.mjs +50 -45
  97. package/dist/kernal/mark/IHighlighter.cjs +1 -0
  98. package/dist/kernal/mark/IHighlighter.d.ts +43 -0
  99. package/dist/kernal/mark/IHighlighter.mjs +13 -0
  100. package/dist/kernal/mark/Mark.cjs +1 -1
  101. package/dist/kernal/mark/Mark.d.ts +33 -4
  102. package/dist/kernal/mark/Mark.mjs +43 -6
  103. package/dist/kernal/mark/index.cjs +1 -1
  104. package/dist/kernal/mark/index.d.ts +2 -0
  105. package/dist/kernal/mark/index.mjs +6 -3
  106. package/dist/kernal/mark/overlay.cjs +1 -0
  107. package/dist/kernal/mark/overlay.d.ts +31 -0
  108. package/dist/kernal/mark/overlay.mjs +102 -0
  109. package/dist/kernal/mark/types.cjs +1 -0
  110. package/dist/kernal/mark/types.d.ts +11 -2
  111. package/dist/kernal/mark/types.mjs +4 -0
  112. package/dist/kernal/navigator/INavigator.d.ts +3 -2
  113. package/dist/kernal/network/HttpClient.cjs +1 -1
  114. package/dist/kernal/network/HttpClient.mjs +80 -56
  115. package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
  116. package/dist/kernal/pipelines/FileLoadPipeline.mjs +55 -56
  117. package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
  118. package/dist/kernal/pipelines/InputFormatter.mjs +43 -41
  119. package/dist/kernal/pipelines/metadata.cjs +1 -1
  120. package/dist/kernal/pipelines/metadata.d.ts +2 -1
  121. package/dist/kernal/pipelines/metadata.mjs +21 -30
  122. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
  123. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +7 -6
  124. package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
  125. package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +12 -11
  126. package/dist/kernal/progress/Progress.cjs +1 -1
  127. package/dist/kernal/progress/Progress.d.ts +5 -3
  128. package/dist/kernal/progress/Progress.mjs +2 -2
  129. package/dist/kernal/progress/userChangedProgress.cjs +1 -0
  130. package/dist/kernal/progress/userChangedProgress.d.ts +9 -0
  131. package/dist/kernal/progress/userChangedProgress.mjs +11 -0
  132. package/dist/kernal/screen/BrowserFullscreen.cjs +1 -0
  133. package/dist/kernal/screen/BrowserFullscreen.d.ts +9 -0
  134. package/dist/kernal/screen/BrowserFullscreen.mjs +47 -0
  135. package/dist/kernal/screen/IFullscreen.d.ts +6 -0
  136. package/dist/kernal/services/ServiceCollection.cjs +1 -1
  137. package/dist/kernal/services/ServiceCollection.d.ts +4 -6
  138. package/dist/kernal/services/ServiceCollection.mjs +18 -9
  139. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
  140. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +4 -2
  141. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +31 -23
  142. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
  143. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +52 -51
  144. package/dist/kernal/services/fileUrlParser/IFileUrlParser.d.ts +0 -1
  145. package/dist/kernal/services/font/IFontProvider.cjs +1 -1
  146. package/dist/kernal/services/font/IFontProvider.d.ts +3 -0
  147. package/dist/kernal/services/font/IFontProvider.mjs +1 -1
  148. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
  149. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +8 -8
  150. package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
  151. package/dist/kernal/services/loading/DefaultLoading.d.ts +4 -0
  152. package/dist/kernal/services/loading/DefaultLoading.mjs +23 -24
  153. package/dist/kernal/services/text/splitter.cjs +1 -1
  154. package/dist/kernal/services/text/splitter.mjs +3 -3
  155. package/dist/kernal/types.d.ts +0 -5
  156. package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
  157. package/dist/kernal/web/BrowserCapabilities.d.ts +0 -9
  158. package/dist/kernal/web/BrowserCapabilities.mjs +0 -49
  159. package/dist/kernal/{Debounce.mjs → web/debounce.mjs} +1 -1
  160. package/dist/kernal/web/scheduler.cjs +1 -0
  161. package/dist/kernal/web/scheduler.d.ts +3 -0
  162. package/dist/kernal/web/scheduler.mjs +7 -0
  163. package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
  164. package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +59 -59
  165. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -0
  166. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.d.ts +13 -0
  167. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +109 -0
  168. package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
  169. package/dist/mediaTypes/html/HtmlOptions.d.ts +6 -12
  170. package/dist/mediaTypes/html/HtmlOptions.mjs +3 -14
  171. package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
  172. package/dist/mediaTypes/html/HtmlSettings.d.ts +16 -1
  173. package/dist/mediaTypes/html/HtmlSettings.mjs +46 -1
  174. package/dist/mediaTypes/html/IHtmlContentNormalizer.cjs +1 -0
  175. package/dist/mediaTypes/html/IHtmlContentNormalizer.d.ts +4 -0
  176. package/dist/mediaTypes/html/IHtmlContentNormalizer.mjs +4 -0
  177. package/dist/mediaTypes/html/IHtmlSymbolMeasure.d.ts +11 -0
  178. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.cjs +1 -0
  179. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.d.ts +5 -0
  180. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.mjs +8 -0
  181. package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
  182. package/dist/mediaTypes/html/fileParser/HtmlFileParser.d.ts +5 -1
  183. package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +15 -18
  184. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
  185. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +25 -25
  186. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +1 -0
  187. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.d.ts +7 -3
  188. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +4 -0
  189. package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
  190. package/dist/mediaTypes/html/renderer/HtmlRenderer.d.ts +7 -1
  191. package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +65 -41
  192. package/dist/mediaTypes/html/renderer/IHtmlDocument.d.ts +6 -2
  193. package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.d.ts +5 -0
  194. package/dist/mediaTypes/html/renderer/IHtmlRenderer.d.ts +3 -0
  195. package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
  196. package/dist/mediaTypes/html/renderer/document/HtmlDocument.d.ts +29 -6
  197. package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +233 -86
  198. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
  199. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.d.ts +8 -0
  200. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +41 -5
  201. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
  202. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.d.ts +2 -4
  203. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +22 -59
  204. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
  205. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.d.ts +3 -5
  206. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +7 -25
  207. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
  208. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.d.ts +0 -2
  209. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +18 -42
  210. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
  211. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.d.ts +2 -0
  212. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +17 -4
  213. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
  214. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.d.ts +16 -1
  215. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +128 -54
  216. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
  217. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +26 -3
  218. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +227 -101
  219. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
  220. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -0
  221. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +45 -25
  222. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.cjs +1 -0
  223. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.d.ts +6 -0
  224. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.mjs +6 -0
  225. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.cjs +1 -0
  226. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.d.ts +2 -0
  227. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.mjs +13 -0
  228. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.cjs +1 -0
  229. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.d.ts +11 -0
  230. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.mjs +8 -0
  231. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
  232. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +62 -62
  233. package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
  234. package/dist/mediaTypes/html/renderer/html/template.d.ts +3 -1
  235. package/dist/mediaTypes/html/renderer/html/template.mjs +9 -9
  236. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
  237. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.d.ts +22 -12
  238. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +380 -270
  239. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
  240. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +27 -27
  241. package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.d.ts +8 -0
  242. package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -1
  243. package/dist/mediaTypes/html/renderer/image/error-image.mjs +1 -1
  244. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.cjs +1 -0
  245. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.d.ts +10 -0
  246. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.mjs +15 -0
  247. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.cjs +1 -0
  248. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.d.ts +2 -0
  249. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.mjs +12 -0
  250. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
  251. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.d.ts +6 -10
  252. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +71 -62
  253. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
  254. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.d.ts +4 -1
  255. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +113 -68
  256. package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.d.ts +8 -3
  257. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
  258. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.d.ts +5 -1
  259. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +15 -3
  260. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.cjs +1 -0
  261. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.d.ts +8 -0
  262. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.mjs +28 -0
  263. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.cjs +30 -0
  264. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.mjs +4 -0
  265. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.cjs +31 -0
  266. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.mjs +4 -0
  267. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.cjs +30 -0
  268. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.mjs +4 -0
  269. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.cjs +30 -0
  270. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.mjs +4 -0
  271. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.cjs +30 -0
  272. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.mjs +4 -0
  273. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.cjs +30 -0
  274. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.mjs +4 -0
  275. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.cjs +6 -0
  276. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.mjs +4 -0
  277. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.cjs +10 -0
  278. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.mjs +4 -0
  279. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.cjs +10 -0
  280. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.mjs +4 -0
  281. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.cjs +10 -0
  282. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.mjs +4 -0
  283. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.cjs +10 -0
  284. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.mjs +4 -0
  285. package/dist/mediaTypes/html/renderer/layout/css/document-default.cjs +19 -0
  286. package/dist/mediaTypes/html/renderer/layout/css/document-default.mjs +4 -0
  287. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.cjs +3 -0
  288. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.d.ts +2 -0
  289. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.mjs +56 -0
  290. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.cjs +64 -0
  291. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.mjs +4 -0
  292. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.cjs +33 -0
  293. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.mjs +4 -0
  294. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.cjs +33 -0
  295. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.mjs +4 -0
  296. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.cjs +47 -0
  297. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.mjs +4 -0
  298. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.cjs +47 -0
  299. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.mjs +4 -0
  300. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.cjs +46 -0
  301. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.mjs +4 -0
  302. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.cjs +46 -0
  303. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.mjs +4 -0
  304. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.cjs +7 -0
  305. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.mjs +4 -0
  306. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.cjs +28 -0
  307. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.mjs +4 -0
  308. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.cjs +28 -0
  309. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.mjs +4 -0
  310. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.cjs +28 -0
  311. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.mjs +4 -0
  312. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.cjs +28 -0
  313. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.mjs +4 -0
  314. package/dist/mediaTypes/html/renderer/layout/css/root-direction.cjs +8 -0
  315. package/dist/mediaTypes/html/renderer/layout/css/root-direction.mjs +4 -0
  316. package/dist/mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.d.ts +128 -0
  317. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.cjs +1 -0
  318. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.d.ts +4 -0
  319. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.mjs +7 -0
  320. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.cjs +1 -0
  321. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.d.ts +1 -0
  322. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.mjs +13 -0
  323. package/dist/mediaTypes/html/renderer/layout/geometry/index.cjs +1 -0
  324. package/dist/mediaTypes/html/renderer/layout/geometry/index.d.ts +18 -0
  325. package/dist/mediaTypes/html/renderer/layout/geometry/index.mjs +30 -0
  326. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.cjs +1 -0
  327. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.d.ts +3 -0
  328. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.mjs +71 -0
  329. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.cjs +1 -0
  330. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.d.ts +3 -0
  331. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.mjs +74 -0
  332. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.cjs +1 -0
  333. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.d.ts +3 -0
  334. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.mjs +71 -0
  335. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.cjs +1 -0
  336. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.d.ts +3 -0
  337. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.mjs +71 -0
  338. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.cjs +1 -0
  339. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.d.ts +3 -0
  340. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.mjs +71 -0
  341. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.cjs +1 -0
  342. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.d.ts +3 -0
  343. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.mjs +71 -0
  344. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.cjs +1 -0
  345. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.d.ts +41 -0
  346. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.mjs +53 -0
  347. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.cjs +1 -0
  348. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.d.ts +3 -0
  349. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.mjs +71 -0
  350. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.cjs +1 -0
  351. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.d.ts +3 -0
  352. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.mjs +74 -0
  353. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.cjs +1 -0
  354. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.d.ts +3 -0
  355. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.mjs +71 -0
  356. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.cjs +1 -0
  357. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.d.ts +3 -0
  358. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.mjs +71 -0
  359. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.cjs +1 -0
  360. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.d.ts +3 -0
  361. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.mjs +74 -0
  362. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.cjs +1 -0
  363. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.d.ts +3 -0
  364. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.mjs +74 -0
  365. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.cjs +1 -0
  366. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.d.ts +10 -0
  367. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.mjs +17 -0
  368. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -0
  369. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.d.ts +6 -0
  370. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +24 -0
  371. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.cjs +1 -0
  372. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.d.ts +9 -0
  373. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.mjs +4 -0
  374. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.cjs +1 -0
  375. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.d.ts +11 -0
  376. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.mjs +9 -0
  377. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
  378. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +32 -34
  379. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -0
  380. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.d.ts +23 -0
  381. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +164 -0
  382. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.cjs +1 -0
  383. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.d.ts +4 -0
  384. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.mjs +13 -0
  385. package/dist/mediaTypes/html/renderer/location/scrollActivity.cjs +1 -0
  386. package/dist/mediaTypes/html/renderer/location/scrollActivity.d.ts +14 -0
  387. package/dist/mediaTypes/html/renderer/location/scrollActivity.mjs +18 -0
  388. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
  389. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +2 -2
  390. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
  391. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +3 -3
  392. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
  393. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +55 -59
  394. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
  395. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.d.ts +1 -0
  396. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +40 -39
  397. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
  398. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.d.ts +2 -1
  399. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +36 -24
  400. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
  401. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.d.ts +4 -0
  402. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +19 -1
  403. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
  404. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.d.ts +3 -0
  405. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +9 -0
  406. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
  407. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +3 -0
  408. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +28 -16
  409. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
  410. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.d.ts +2 -0
  411. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +39 -34
  412. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.cjs +0 -0
  413. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.d.ts +6 -0
  414. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.mjs +0 -0
  415. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.cjs +1 -0
  416. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.d.ts +18 -0
  417. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.mjs +52 -0
  418. package/dist/mediaTypes/html/renderer/style/html-content.cjs +38 -7
  419. package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
  420. package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
  421. package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +6 -13
  422. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  423. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.d.ts +5 -4
  424. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -3
  425. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
  426. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.d.ts +4 -4
  427. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +24 -14
  428. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.cjs +1 -0
  429. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.d.ts +6 -0
  430. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.mjs +4 -0
  431. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.cjs +1 -0
  432. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.d.ts +10 -0
  433. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.mjs +33 -0
  434. package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
  435. package/dist/mediaTypes/pdf/loadPdfDocument.mjs +18 -19
  436. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.d.ts +2 -0
  437. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +1 -1
  438. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
  439. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +2 -2
  440. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
  441. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.d.ts +0 -1
  442. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +0 -3
  443. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  444. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +3 -3
  445. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
  446. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +3 -3
  447. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
  448. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.d.ts +3 -3
  449. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +20 -19
  450. package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
  451. package/dist/mediaTypes/pdf/renderer/PdfRenderer.d.ts +1 -0
  452. package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +20 -20
  453. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
  454. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +51 -50
  455. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
  456. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +55 -56
  457. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.cjs +1 -0
  458. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.d.ts +3 -0
  459. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.mjs +12 -0
  460. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
  461. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.d.ts +4 -0
  462. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +24 -5
  463. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
  464. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +32 -32
  465. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
  466. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +1 -1
  467. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
  468. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +5 -5
  469. package/dist/mediaTypes/pdf/shared/text/pageText.cjs +2 -2
  470. package/dist/mediaTypes/pdf/shared/text/pageText.d.ts +14 -0
  471. package/dist/mediaTypes/pdf/shared/text/pageText.mjs +139 -47
  472. package/dist/node_modules/highlight.js/styles/github-dark.cjs +118 -0
  473. package/dist/node_modules/highlight.js/styles/github-dark.mjs +4 -0
  474. package/dist/node_modules/highlight.js/styles/github.cjs +118 -0
  475. package/dist/node_modules/highlight.js/styles/github.mjs +4 -0
  476. package/dist/pdfjs/package.json +1 -0
  477. package/package.json +11 -5
  478. package/dist/kernal/device/IEnvironment.d.ts +0 -5
  479. package/dist/kernal/device/IPlatform.d.ts +0 -7
  480. package/dist/kernal/device/WebEnvironment.cjs +0 -1
  481. package/dist/kernal/device/WebEnvironment.d.ts +0 -7
  482. package/dist/kernal/device/WebEnvironment.mjs +0 -22
  483. package/dist/kernal/device/WebPlatform.cjs +0 -1
  484. package/dist/kernal/device/WebPlatform.d.ts +0 -12
  485. package/dist/kernal/device/WebPlatform.mjs +0 -49
  486. package/dist/kernal/progress/IReadingProgressStore.d.ts +0 -7
  487. package/dist/kernal/progress/ReadingProgressStore.cjs +0 -1
  488. package/dist/kernal/progress/ReadingProgressStore.d.ts +0 -12
  489. package/dist/kernal/progress/ReadingProgressStore.mjs +0 -17
  490. package/dist/kernal/storage/IStorage.cjs +0 -1
  491. package/dist/kernal/storage/IStorage.d.ts +0 -21
  492. package/dist/kernal/storage/IStorage.mjs +0 -4
  493. package/dist/kernal/storage/WebStorage.cjs +0 -1
  494. package/dist/kernal/storage/WebStorage.d.ts +0 -31
  495. package/dist/kernal/storage/WebStorage.mjs +0 -165
  496. package/dist/mediaTypes/adjacent.cjs +0 -1
  497. package/dist/mediaTypes/adjacent.d.ts +0 -5
  498. package/dist/mediaTypes/adjacent.mjs +0 -42
  499. package/dist/mediaTypes/html/renderer/image/placeholder.cjs +0 -1
  500. package/dist/mediaTypes/html/renderer/image/placeholder.mjs +0 -4
  501. /package/dist/kernal/{device/IEnvironment.cjs → screen/IFullscreen.cjs} +0 -0
  502. /package/dist/kernal/{device/IEnvironment.mjs → screen/IFullscreen.mjs} +0 -0
  503. /package/dist/kernal/{Debounce.cjs → web/debounce.cjs} +0 -0
  504. /package/dist/kernal/{Debounce.d.ts → web/debounce.d.ts} +0 -0
  505. /package/dist/{kernal/device/IPlatform.cjs → mediaTypes/html/IHtmlSymbolMeasure.cjs} +0 -0
  506. /package/dist/{kernal/device/IPlatform.mjs → mediaTypes/html/IHtmlSymbolMeasure.mjs} +0 -0
  507. /package/dist/{kernal/progress/IReadingProgressStore.cjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.cjs} +0 -0
  508. /package/dist/{kernal/progress/IReadingProgressStore.mjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.mjs} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./Options.cjs"),t=require("./EventNames.cjs");var n=class{constructor(e,t){this.events=e,this.options=t}getHeaderHeight(){let e=this.options.enableHeader&&!this.options.zenMode?this.options.headerHeight??this.options.defaultHeaderHeight:0;return isNaN(e)||e<0||e==0&&this.options.enableHeader&&!this.options.zenMode?this.options.defaultHeaderHeight:e}getFooterHeight(){let e=this.options.enableFooter&&!this.options.zenMode?this.options.footerHeight??this.options.defaultFooterHeight:0;return isNaN(e)||e<0||e==0&&this.options.enableFooter&&!this.options.zenMode?this.options.defaultFooterHeight:e}applyCssVariables(t){t.style.setProperty(e.Options.HeaderHeight,this.getHeaderHeight()+`px`),t.style.setProperty(e.Options.FooterHeight,this.getFooterHeight()+`px`),t.style.setProperty(e.Options.ScrollbarSize,this.options.scrollbarSize),t.style.setProperty(e.Options.ScrollbarRadius,this.options.scrollbarRadius),t.style.setProperty(e.Options.ScrollbarBorder,this.options.scrollbarBorder)}setOptionValue(e,n){e in this.options&&(Object.assign(this.options,{[e]:n}),this.events.emit(t.EventNames.OptionsChange,e,n))}};exports.OptionsProvider=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./EventNames.cjs"),t=require("./Options.cjs");var n=class{constructor(e,t){this.events=e,this.options=t}applyCssVariables(e){e.style.setProperty(t.Options.ScrollbarSize,this.options.scrollbarSize),e.style.setProperty(t.Options.ScrollbarRadius,this.options.scrollbarRadius),e.style.setProperty(t.Options.ScrollbarBorder,this.options.scrollbarBorder)}setOptionValue(t,n){t in this.options&&(Object.assign(this.options,{[t]:n}),this.events.emit(e.EventNames.OptionsChange,t,n))}};exports.OptionsProvider=n;
@@ -5,8 +5,6 @@ export declare class OptionsProvider {
5
5
  private readonly events;
6
6
  private readonly options;
7
7
  constructor(events: IEventEmitter, options: Options);
8
- getHeaderHeight(): number;
9
- getFooterHeight(): number;
10
8
  applyCssVariables(rootElement: HTMLElement): void;
11
9
  setOptionValue<K extends keyof Options>(key: K, value: Options[K]): void;
12
10
  }
@@ -1,23 +1,15 @@
1
- import { Options as e } from "./Options.mjs";
2
- import { EventNames as t } from "./EventNames.mjs";
1
+ import { EventNames as e } from "./EventNames.mjs";
2
+ import { Options as t } from "./Options.mjs";
3
3
  //#region kernal/OptionsProvider.ts
4
4
  var n = class {
5
5
  constructor(e, t) {
6
6
  this.events = e, this.options = t;
7
7
  }
8
- getHeaderHeight() {
9
- let e = this.options.enableHeader && !this.options.zenMode ? this.options.headerHeight ?? this.options.defaultHeaderHeight : 0;
10
- return isNaN(e) || e < 0 || e == 0 && this.options.enableHeader && !this.options.zenMode ? this.options.defaultHeaderHeight : e;
8
+ applyCssVariables(e) {
9
+ e.style.setProperty(t.ScrollbarSize, this.options.scrollbarSize), e.style.setProperty(t.ScrollbarRadius, this.options.scrollbarRadius), e.style.setProperty(t.ScrollbarBorder, this.options.scrollbarBorder);
11
10
  }
12
- getFooterHeight() {
13
- let e = this.options.enableFooter && !this.options.zenMode ? this.options.footerHeight ?? this.options.defaultFooterHeight : 0;
14
- return isNaN(e) || e < 0 || e == 0 && this.options.enableFooter && !this.options.zenMode ? this.options.defaultFooterHeight : e;
15
- }
16
- applyCssVariables(t) {
17
- t.style.setProperty(e.HeaderHeight, this.getHeaderHeight() + "px"), t.style.setProperty(e.FooterHeight, this.getFooterHeight() + "px"), t.style.setProperty(e.ScrollbarSize, this.options.scrollbarSize), t.style.setProperty(e.ScrollbarRadius, this.options.scrollbarRadius), t.style.setProperty(e.ScrollbarBorder, this.options.scrollbarBorder);
18
- }
19
- setOptionValue(e, n) {
20
- e in this.options && (Object.assign(this.options, { [e]: n }), this.events.emit(t.OptionsChange, e, n));
11
+ setOptionValue(t, n) {
12
+ t in this.options && (Object.assign(this.options, { [t]: n }), this.events.emit(e.OptionsChange, t, n));
21
13
  }
22
14
  };
23
15
  //#endregion
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./web/BrowserCapabilities.cjs"),t=require("./common/naming.cjs"),n=require("./Options.cjs"),r=require("./Theme.cjs"),i=require("./common/uuid.cjs"),a=require("./common/object.cjs"),o=require("./EventNames.cjs"),s=require("./FileLoader.cjs"),c=require("./html/dom.cjs"),l=require("./html/injector.cjs"),u=require("./plugins/PluginManager.cjs"),d=require("./OptionsProvider.cjs");var f=class{constructor(e,i){this.currentIsLoaded=!1,this.currentIsDidposed=!1,this.currentIsCancelled=!1,this.isInIframe=!1,this.bindEvents=()=>{this.events.on(o.EventNames.ProgressChange,this.storeProgress)},this.unbindEvents=()=>{this.events.off(o.EventNames.ProgressChange,this.storeProgress)},this.storeProgress=async e=>{this.readingProgressStore&&await this.readingProgressStore.save(this.context.simpleId,e)},this.changeTheme=async e=>{if(!e)return;this.options.themeName=e;let t=await this.getTheme(e);await this.applyGlobalTheme(t),await this.getRenderer()?.applyTheme(t),this.events.emit(o.EventNames.ThemeChange,t)},this.getTheme=async e=>{let t=await this.services.get(`themeProvider`),n;return n=t?t.getTheme(e):new r.Theme,n||=new r.Theme,n},this.applyGlobalTheme=async e=>{for(let n of r.ThemeCssKeys)this.rootContainer.style.setProperty(t.toCssVariableName(n),e[n]);if(e.vars)for(let[t,n]of Object.entries(e.vars))t&&this.rootContainer.style.setProperty(t,n);let n=r.Theme.getScrollStyles(`.${r.Theme.customScrollerClassName}`);l.injectCssContent(this.rootContainer.ownerDocument,n,!0,`custom-scroll-styles`)},this.fileLoader=new s.FileLoader(e,i,this),this.fileLoader.services.asReaderServices().registerUiServices(),this.options=this.fileLoader.options,this.version=this.fileLoader.version,this.logger=this.fileLoader.loggerFactory.getLogger(this.constructor.name),this.pluginManager=new u.PluginManager(this,this.fileLoader.loggerFactory,this.services,this.version),this.optionsProvider=new d.OptionsProvider(this.events,this.options),this.events.on(o.EventNames.OptionsChange,e=>{this.rootContainer&&n.isOptionKey(e)&&this.optionsProvider.applyCssVariables(this.rootContainer)})}get id(){return this.fileLoader.id}get services(){return this.fileLoader.services.asReaderServices()}get platform(){return this.fileLoader.platform}get environment(){return this.fileLoader.environment}get device(){return this.fileLoader.device}get loggerFactory(){return this.fileLoader.loggerFactory}get events(){return this.fileLoader.events}get readerInfo(){return this.fileLoader.readerInfo}get mediaTypeRegistry(){return this.fileLoader.mediaTypeRegistry}get locale(){return this.fileLoader.locale}get loaded(){return this.currentIsLoaded}get disposed(){return this.currentIsDidposed}get cancelled(){return this.currentIsCancelled||this.fileLoader.cancelled}get notifier(){return this.currentNotifier}get loading(){return this.currentLoading}async reload(){if(!this.container)return;let e=this.url,t=this.container,n=this.rootContainer,r=a.deepClone(this.openOptions);await this.clear(),await this.open(e,t,n,r)}async open(e,t,n,i){if(this.currentIsDidposed)throw Error(`reader is disposed.`);if(t==null)throw Error(`container is required. Use FileLoader for headless parse-only scenarios.`);if(this.fileLoader.inputFormatter.guardUrl(e),this.currentIsLoaded&&await this.clear(),this.currentIsDidposed=!1,this.loadFail=void 0,this.currentIsCancelled=!1,this.container=t,this.rootContainer=n,this.startLoadTime=new Date,this.events.emit(o.EventNames.StartLoadResource,{reader:this,startLoadTime:this.startLoadTime}),this.readerWrapper=this.fileLoader.inputFormatter.formatReaderWrapper(t),!this.readerWrapper)throw Error(`container is invalid.`);this.rootContainer||=this.readerWrapper,this.optionsProvider.applyCssVariables(this.rootContainer);let a=await this.getTheme(this.options.themeName);await this.applyGlobalTheme(a),this.currentNotifier=await this.services.get(`notifier`,!1),this.currentLoading=await this.services.get(`loading`,!1),c.emptyElement(this.readerWrapper),await this.loading?.initialize(this.readerWrapper,{backgroundColor:`var(${r.Theme.ReaderBackground})`,textColor:`var(${r.Theme.TextMutedColor})`,iconColor:`var(${r.Theme.TextAccentColor})`}),await this.loading?.show();try{await this.fileLoader.getFileParser()?.dispose();let t=await this.fileLoader.load(e,i,{measureFilePercentage:!0,prepareContext:async({extension:e})=>(this.isInIframe=!1,await this.createReaderContainer(e),{rootContainer:this.rootContainer,readerContainer:this.readerContainer,readerWrapper:this.readerWrapper}),afterParserReady:async()=>{await this.loading?.show()},isCancelled:()=>this.currentIsCancelled});this.abortController=t.abortController,await this.mountRenderer(t)}catch(e){throw this.loadFail=!0,e}finally{if(this.currentIsLoaded=!0,await this.loading?.hide(),this.readerWrapper){this.readerWrapper.style.removeProperty(`background`);let e=this.readerWrapper.getAttribute(`data-reader-wrapper-bg`);e&&this.readerWrapper.style.setProperty(`background`,e)}this.abortController&&=null,this.loadFail||this.events.emit(o.EventNames.ResourceLoad,{reader:this,startLoadTime:this.startLoadTime})}}async createReaderContainer(t){let n=this.options.iframeRequiredExtensions,a;if(!n.includes(t)||this.readerWrapper instanceof this.readerWrapper.ownerDocument.defaultView.window.HTMLBodyElement)this.readerContainer=l.createElement(this.readerWrapper.ownerDocument,`div`,i.getRandomId(!0),{style:`width:100%;height:100%;overflow: hidden;position:relative;background:var(`+r.Theme.ReaderBackground+`)`}),this.readerWrapper.appendChild(this.readerContainer),a=this.readerContainer.ownerDocument;else{this.isInIframe=!0;let t=this.createTopIFrame();this.readerWrapper.appendChild(t),e.BrowserCapabilities.isFirefox()&&(t.contentDocument.open(),t.contentDocument.close());let n=t.contentDocument;this.readerContainer=l.createElement(n,`div`,i.getRandomId(!0),{style:`width:100%;height:100%;overflow: hidden;position:relative;background:var(`+r.Theme.ReaderBackground+`)`}),n.body.appendChild(this.readerContainer),a=n,t.contentWindow.addEventListener(`click`,e=>{this.events.emit(o.EventNames.ReaderClick,{e,reader:this})},!0),t.contentWindow.addEventListener(`mouseenter`,e=>{this.events.emit(o.EventNames.ReaderMouseEnter,{e,reader:this})},!0)}this.rootContainer.addEventListener(`click`,e=>{this.events.emit(o.EventNames.ReaderClick,{e,reader:this})},!0),this.rootContainer.addEventListener(`mouseenter`,e=>{this.events.emit(o.EventNames.ReaderMouseEnter,{e,reader:this})},!0),this.readerContainer.setAttribute(`data-role`,`readerContainer`),await this.onContainerCreated?.();let s=this.readerWrapper.style.getPropertyValue(`background`);s&&this.readerWrapper.setAttribute(`data-reader-wrapper-bg`,s),(await this.services.get(`wallpaperProvider`))?.changeWallpaper(this.options.wallpaperName),this.options.enableInjectResetCss&&l.injectCssContent(a,`html{touch-action:none;touch-action:pan-y;}body *{box-sizing:border-box}html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{padding:0;margin:0;}ul,ol,li{list-style:none;}i,em{font-style:normal}img{border:0;}table{border-collapse:collapse;border-spacing:0;}table td{padding:0;margin:0;}table th.wztop{vertical-align:top;}.fl{float:left;}.fr{float:right;}section,article,aside,header,footer,nav,dialog,figure{display:block;padding:0;margin:0;}html{text-size-adjust: 100%;}`,!1,`reader_global_style`),await this.notifier.initialize(this.readerContainer)}async mountRenderer(e){this.options.enableProgressStore&&!this.readingProgressStore&&(this.readingProgressStore=await this.services.get(`readingProgressStore`)),this.unbindEvents(),this.renderer&&=(await this.renderer.dispose(),null);let t=await this.mediaTypeRegistry.createRenderer(this,e.fileParser,this.readerContainer);this.renderer=t,await this.onRenderer?.(this.renderer);let n=e.percentage,r=e.location;if(!isNaN(n)&&n<=1&&n>=0?await this.renderer.navigator.gotoPercentage(n):await this.renderer.load(r),this.renderer.getDocuments().length==0)throw Error(`Empty File`);let i=await this.getTheme(this.options.themeName);await this.getRenderer()?.applyTheme(i),await this.onRenderered?.(this.renderer),await this.loading?.hide(),this.events.emit(o.EventNames.RendererLoad,this.renderer),await this.pluginManager?.enablePlugins(e.extension),this.bindEvents()}get context(){return this.fileLoader.context}get url(){return this.fileLoader.url}get openOptions(){return this.fileLoader.openOptions}get extension(){return this.fileLoader.extension}get resourceIsUnload(){return!this.currentIsLoaded}get inIframe(){return this.isInIframe}getFileParser(){return this.fileLoader.getFileParser()}getRenderer(){return this.renderer}async goto(e){await this.getRenderer()?.navigator.goto(e)}async gotoUrl(e){await this.getRenderer()?.navigator.gotoUrl(e)}async gotoPercentage(e,t){await this.getRenderer()?.navigator.gotoPercentage(e,t)}createTopIFrame(t){let n=l.createElement(document,`iframe`,t);return e.BrowserCapabilities.isFirefox()?n.setAttribute(`src`,`javascript:`):n.setAttribute(`src`,`about:blank`),n.setAttribute(`frameborder`,`0`),n.setAttribute(`border`,`0`),n.setAttribute(`allowfullscreen`,`true`),n.setAttribute(`width`,`100%`),n.setAttribute(`height`,`100%`),n.setAttribute(`style`,`margin:0;padding:0`),n}getReaderContainer(){return this.readerContainer}getRootContainer(){return this.rootContainer}async dispose(){await this.onDisposing?.(),await this.clear(),this.currentIsDidposed=!0,this.fileLoader.markDisposed(),await this.onDisposed?.(),this.events.emit(o.EventNames.ReaderDisposed,this)}async clear(){try{if(this.context?.id&&this.startLoadTime){let e=await this.renderer?.progressTracker.getProgress(!0);e&&this.events.emit(o.EventNames.ResourceUnload,{reader:this,simpleId:this.context.simpleId,resourceId:this.context.id,startLoadTime:this.startLoadTime,progress:e})}this.abortController&&(this.abortController.abort(`Cancelled`),this.abortController=null,this.logger.info(`User cancelled task,url`,this.url),this.currentIsCancelled=!0)}catch{}await this.pluginManager?.dispose(),this.renderer&&=(await this.renderer.dispose(),null),await this.fileLoader.clear(),this.readerWrapper&&c.emptyElement(this.readerWrapper),this.startLoadTime=null,this.currentIsLoaded=!1,this.events.emit(o.EventNames.ReaderCleared,this)}};exports.Reader=f;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./EventNames.cjs"),t=require("./common/data.cjs"),n=require("./common/object.cjs"),r=require("./common/uuid.cjs"),i=require("./web/BrowserCapabilities.cjs"),a=require("./common/naming.cjs"),o=require("./Options.cjs"),s=require("./OpenOptions.cjs"),c=require("./services/ServiceCollection.cjs"),l=require("./FileLoader.cjs"),u=require("./html/dom.cjs"),d=require("./hostViewport.cjs"),f=require("./html/injector.cjs"),p=require("./plugins/PluginManager.cjs"),m=require("./Theme.cjs"),h=require("./OptionsProvider.cjs");var g=class{constructor(n,r){if(this.currentIsLoaded=!1,this.currentIsDidposed=!1,this.currentIsCancelled=!1,this.isInIframe=!1,this.getParsingText=()=>this.locale.getText(`share_parsing_text`,`Parsing...`),this.createFileDownloadingCallback=()=>async(e,n,r)=>{if(r){await this.loading?.show(this.getParsingText());return}let i=e>0?e:n,a=t.formatFileSize(n),o=t.formatFileSize(i),s=this.locale.getText(`share_loading_file_progress`,`Loading file... {loaded}/{total}`,{loaded:a,total:o});await this.loading?.show(s)},this.changeTheme=async t=>{if(!t)return;this.options.themeName=t;let n=await this.getTheme(t);await this.applyTheme(n),await this.getRenderer()?.applyTheme(n),this.events.emit(e.EventNames.ThemeChange,n)},this.getTheme=async e=>{let t=await this.services.get(`themeProvider`),n;return n=t?t.getTheme(e):new m.Theme,n||=new m.Theme,n},this.applyTheme=async e=>{for(let t of m.ThemeCssKeys)this.rootContainer.style.setProperty(a.toCssVariableName(t),e[t]);if(e.vars)for(let[t,n]of Object.entries(e.vars))t&&this.rootContainer.style.setProperty(t,n);let t=m.Theme.getScrollStyles(`.${m.Theme.customScrollerClassName}`);f.injectCssContent(this.rootContainer.ownerDocument,t,!0,`custom-scroll-styles`)},this.fileLoader=new l.FileLoader(n,r,this),r)for(let e of c.UI_SERVICE_KEYS){let t=r[e];t!==void 0&&this.services.add(e,()=>t)}this.services.registerUiServices(),this.options=this.fileLoader.options,this.version=this.fileLoader.version,this.logger=this.fileLoader.loggerFactory.getLogger(this.constructor.name),this.pluginManager=new p.PluginManager(this,this.fileLoader.loggerFactory,this.services,this.version),this.optionsProvider=new h.OptionsProvider(this.events,this.options),this.events.on(e.EventNames.OptionsChange,e=>{this.rootContainer&&o.isOptionKey(e)&&this.optionsProvider.applyCssVariables(this.rootContainer)})}get id(){return this.fileLoader.id}get services(){return this.fileLoader.services.asReaderServices()}get device(){return this.fileLoader.device}get loggerFactory(){return this.fileLoader.loggerFactory}get events(){return this.fileLoader.events}get readerInfo(){return this.fileLoader.readerInfo}get mediaTypeRegistry(){return this.fileLoader.mediaTypeRegistry}get locale(){return this.fileLoader.locale}get loaded(){return this.currentIsLoaded}get disposed(){return this.currentIsDidposed}get cancelled(){return this.currentIsCancelled||this.fileLoader.cancelled}get notifier(){return this.currentNotifier}get loading(){return this.currentLoading}async reload(){if(!this.container)return;let e=this.url,t=this.container,r=this.rootContainer,i=n.deepClone(this.openOptions);await this.clear(),await this.open(e,t,r,i)}async open(t,n,r,i){if(this.currentIsDidposed)throw Error(`reader is disposed.`);if(n==null)throw Error(`container is required. Use FileLoader for headless parse-only scenarios.`);if(this.fileLoader.inputFormatter.guardUrl(t),this.currentIsLoaded&&await this.clear(),this.currentIsDidposed=!1,this.loadFail=void 0,this.currentIsCancelled=!1,this.container=n,this.rootContainer=r,this.startLoadTime=new Date,this.events.emit(e.EventNames.StartLoadResource,{reader:this,startLoadTime:this.startLoadTime}),this.readerWrapper=this.fileLoader.inputFormatter.formatReaderWrapper(n),!this.readerWrapper)throw Error(`container is invalid.`);this.rootContainer||=this.readerWrapper,this.optionsProvider.applyCssVariables(this.rootContainer);let a=await this.getTheme(this.options.themeName);await this.applyTheme(a),this.currentNotifier=await this.services.get(`notifier`,!1),this.currentLoading=await this.services.get(`loading`,!1),u.emptyElement(this.readerWrapper),this.hostViewport=d.resolveHostViewport(this.readerWrapper),this.readerWrapper.setAttribute(`data-viewport-mode`,this.hostViewport.mode),this.hostViewport.mode==`window`&&!this.readerWrapper.style.minHeight&&(this.readerWrapper.style.minHeight=this.hostViewport.height+`px`,this.readerWrapper.setAttribute(`data-fc-auto-min-height`,`true`)),await this.loading?.initialize(this.readerWrapper,{backgroundColor:`var(${m.Theme.ReaderBackground})`,textColor:`var(${m.Theme.TextMutedColor})`,iconColor:`var(${m.Theme.TextAccentColor})`}),await this.loading?.show();try{await this.fileLoader.getFileParser()?.dispose();let e=Object.assign(new s.OpenOptions,i);e.fileDownloadingCallback||=this.createFileDownloadingCallback();let n=await this.fileLoader.load(t,e,{measureFilePercentage:!0,prepareContext:async({extension:e})=>(this.isInIframe=!1,await this.createReaderContainer(e),{rootContainer:this.rootContainer,readerContainer:this.readerContainer,readerWrapper:this.readerWrapper}),afterParserReady:async()=>{await this.loading?.show(this.getParsingText())},isCancelled:()=>this.currentIsCancelled});this.abortController=n.abortController,await this.mountRenderer(n)}catch(e){throw this.loadFail=!0,e}finally{if(this.currentIsLoaded=!0,await this.loading?.hide(),this.readerWrapper){this.readerWrapper.style.removeProperty(`background`);let e=this.readerWrapper.getAttribute(`data-reader-wrapper-bg`);e&&this.readerWrapper.style.setProperty(`background`,e)}this.abortController&&=null,this.loadFail||this.events.emit(e.EventNames.ResourceLoad,{reader:this,startLoadTime:this.startLoadTime})}}async createReaderContainer(t){let n=this.options.iframeRequiredExtensions,a;if(!n.includes(t)||this.readerWrapper instanceof this.readerWrapper.ownerDocument.defaultView.window.HTMLBodyElement)this.readerContainer=f.createElement(this.readerWrapper.ownerDocument,`div`,r.getRandomId(!0),{style:this.getReaderContainerBoxStyle(t)}),this.readerWrapper.appendChild(this.readerContainer),a=this.readerContainer.ownerDocument;else{this.isInIframe=!0;let n=this.createTopIFrame();this.readerWrapper.appendChild(n),i.BrowserCapabilities.isFirefox()&&(n.srcdoc=`<!DOCTYPE html><html><head></head><body></body></html>`);let o=n.contentDocument;this.readerContainer=f.createElement(o,`div`,r.getRandomId(!0),{style:this.getReaderContainerBoxStyle(t)}),o.body.appendChild(this.readerContainer),a=o,n.contentWindow.addEventListener(`click`,t=>{this.events.emit(e.EventNames.ReaderClick,{e:t,reader:this})},!0),n.contentWindow.addEventListener(`mouseenter`,t=>{this.events.emit(e.EventNames.ReaderMouseEnter,{e:t,reader:this})},!0)}this.rootContainer.addEventListener(`click`,t=>{this.events.emit(e.EventNames.ReaderClick,{e:t,reader:this})},!0),this.rootContainer.addEventListener(`mouseenter`,t=>{this.events.emit(e.EventNames.ReaderMouseEnter,{e:t,reader:this})},!0),this.readerContainer.setAttribute(`data-role`,`readerContainer`),this.readerContainer.setAttribute(`data-viewport-mode`,this.getHostViewport().mode),await this.onContainerCreated?.(),await this.loading?.show();let o=this.readerWrapper.style.getPropertyValue(`background`);o&&this.readerWrapper.setAttribute(`data-reader-wrapper-bg`,o),(await this.services.get(`wallpaperProvider`))?.changeWallpaper(this.options.wallpaperName),this.options.enableInjectResetCss&&f.injectCssContent(a,`html{touch-action:none;touch-action:pan-y;}body *{box-sizing:border-box}html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{padding:0;margin:0;}ul,ol,li{list-style:none;}i,em{font-style:normal}img{border:0;}table{border-collapse:collapse;border-spacing:0;}table td{padding:0;margin:0;}section,article,aside,header,footer,nav,dialog,figure{padding:0;margin:0;}html{text-size-adjust: 100%;}`,!1,`reader_global_style`,(e,t)=>{e.insertBefore(t,e.firstChild)}),await this.notifier.initialize(this.readerContainer)}async mountRenderer(t){this.renderer&&=(await this.renderer.dispose(),null);let n=await this.mediaTypeRegistry.createRenderer(this,t.fileParser,this.readerContainer);this.renderer=n,await this.onRenderer?.(this.renderer);let r=t.percentage,i=t.location;if(!isNaN(r)&&r<=1&&r>=0?await this.renderer.navigator.gotoPercentage(r,{from:`restore`}):await this.renderer.load(i),this.renderer.getDocuments().length==0)throw Error(`Empty File`);let a=await this.getTheme(this.options.themeName);await this.getRenderer()?.applyTheme(a),await this.onRenderered?.(this.renderer),await this.loading?.hide(),this.events.emit(e.EventNames.RendererLoad,this.renderer),await this.pluginManager?.enablePlugins(t.extension)}get context(){return this.fileLoader.context}get url(){return this.fileLoader.url}get openOptions(){return this.fileLoader.openOptions}get extension(){return this.fileLoader.extension}get resourceIsUnload(){return!this.currentIsLoaded}get inIframe(){return this.isInIframe}getFileParser(){return this.fileLoader.getFileParser()}getRenderer(){return this.renderer}async goto(e){await this.getRenderer()?.navigator.goto(e)}async gotoUrl(e){await this.getRenderer()?.navigator.gotoUrl(e)}async gotoPercentage(e,t){await this.getRenderer()?.navigator.gotoPercentage(e,t)}createTopIFrame(e){let t=f.createElement(document,`iframe`,e);return i.BrowserCapabilities.isFirefox()?t.setAttribute(`src`,`javascript:`):t.setAttribute(`src`,`about:blank`),t.setAttribute(`frameborder`,`0`),t.setAttribute(`border`,`0`),t.setAttribute(`allowfullscreen`,`true`),t.setAttribute(`width`,`100%`),t.setAttribute(`height`,`100%`),t.setAttribute(`style`,`margin:0;padding:0`),t}getReaderContainer(){return this.readerContainer}getRootContainer(){return this.rootContainer}getHostViewport(){if(this.hostViewport)return this.hostViewport;let e=this.readerWrapper??this.rootContainer;return e?(this.hostViewport=d.resolveHostViewport(e),this.hostViewport):{mode:`window`,height:600,width:800,observerRoot:null,scrollElement:document.scrollingElement??document.documentElement,scrollWatchTarget:document}}refreshHostViewport(){let e=this.readerWrapper??this.rootContainer;return e?this.hostViewport?(this.hostViewport=d.refreshHostViewportSize(e,this.hostViewport),this.hostViewport):(this.hostViewport=d.resolveHostViewport(e),this.hostViewport):this.getHostViewport()}getReaderContainerBoxStyle(e){let t=this.getHostViewport(),n=`background:var(${m.Theme.ReaderBackground})`;return t.mode==`host`?`width:100%;height:100%;overflow:hidden;position:relative;${n}`:(e??``).toLowerCase().replace(/^\./,``)==`pdf`?`width:100%;height:${t.height}px;overflow:hidden;position:relative;${n}`:`width:100%;height:auto;min-height:${t.height}px;overflow:visible;position:relative;${n}`}async dispose(){await this.onDisposing?.(),await this.clear(),this.currentIsDidposed=!0,this.fileLoader.markDisposed(),await this.onDisposed?.(),this.events.emit(e.EventNames.ReaderDisposed,this)}async clear(){try{if(this.context?.id&&this.startLoadTime){let t=await this.renderer?.progressTracker.getProgress(!0);t&&this.events.emit(e.EventNames.ResourceUnload,{reader:this,simpleId:this.context.simpleId,resourceId:this.context.id,startLoadTime:this.startLoadTime,progress:t})}this.abortController&&(this.abortController.abort(`Cancelled`),this.abortController=null,this.logger.info(`User cancelled task,url`,this.url),this.currentIsCancelled=!0)}catch{}await this.pluginManager?.dispose(),this.renderer&&=(await this.renderer.dispose(),null),await this.fileLoader.clear(),this.readerWrapper&&(u.emptyElement(this.readerWrapper),this.readerWrapper.getAttribute(`data-fc-auto-min-height`)==`true`&&(this.readerWrapper.style.removeProperty(`min-height`),this.readerWrapper.removeAttribute(`data-fc-auto-min-height`)),this.readerWrapper.removeAttribute(`data-viewport-mode`)),this.startLoadTime=null,this.currentIsLoaded=!1,this.events.emit(e.EventNames.ReaderCleared,this)}};exports.Reader=g;
@@ -1,7 +1,8 @@
1
1
  import { CoreServices, FileLoader } from './FileLoader';
2
+ import { HostViewport } from './hostViewport';
2
3
  import { ILoading } from './services/loading/ILoading';
3
4
  import { INotifier } from './services/notifier/INotifier';
4
- import { ServiceCollection, ServiceMap } from './services/ServiceCollection';
5
+ import { ServiceCollection, ServiceMap, UiServiceMap } from './services/ServiceCollection';
5
6
  import { IRenderer } from './IRenderer';
6
7
  import { OpenOptions } from './OpenOptions';
7
8
  import { Options } from './Options';
@@ -12,14 +13,14 @@ import { OptionsProvider } from './OptionsProvider';
12
13
  import { LifecycleHooks } from './LifecycleHooks';
13
14
  import { IFileParser } from './IFileParser';
14
15
  import { IDocumentsProvider } from './IDocumentsProvider';
15
- import { IPlatform, IDevice, ILocale } from '.';
16
- import { IEnvironment } from './device/IEnvironment';
16
+ import { IDevice, ILocale } from '.';
17
17
  import { ILoggerFactory } from './logger/ILoggerFactory';
18
18
  import { IEventEmitter } from './IEventEmitter';
19
19
  import { ReaderInfo } from './ReaderInfo';
20
20
  import { MediaTypeRegistry } from './MediaTypeRegistry';
21
21
  import { Context } from './Context';
22
22
 
23
+ export type ReaderServices = CoreServices & Partial<UiServiceMap>;
23
24
  export declare class Reader implements LifecycleHooks {
24
25
  readonly version: string;
25
26
  readonly fileLoader: FileLoader;
@@ -40,8 +41,8 @@ export declare class Reader implements LifecycleHooks {
40
41
  private abortController;
41
42
  private rootContainer;
42
43
  private isInIframe;
44
+ private hostViewport;
43
45
  readonly optionsProvider: OptionsProvider;
44
- private readingProgressStore;
45
46
  onInitialize?: (extension: string) => Promise<void>;
46
47
  onDisposing?: () => Promise<void>;
47
48
  onDisposed?: () => Promise<void>;
@@ -50,14 +51,12 @@ export declare class Reader implements LifecycleHooks {
50
51
  onFileParsed?: (fileParser: IFileParser) => Promise<void>;
51
52
  onRenderer?: (renderer: IRenderer) => Promise<void>;
52
53
  onRenderered?: (renderer: IRenderer) => Promise<void>;
53
- onRenderingFileInject?: (extension: string, data: string, url?: string) => Promise<string>;
54
54
  onProgressChangeGuard?: (progress: number) => boolean;
55
55
  onBeforeRedirect?: (documentsProvider: IDocumentsProvider) => Promise<void>;
56
- constructor(options: Options, services?: CoreServices);
56
+ onLocationRequest?: (simpleId: string) => Promise<FileLocation | undefined>;
57
+ constructor(options: Options, services: ReaderServices);
57
58
  get id(): string;
58
59
  get services(): ServiceCollection<ServiceMap>;
59
- get platform(): IPlatform;
60
- get environment(): IEnvironment;
61
60
  get device(): IDevice;
62
61
  get loggerFactory(): ILoggerFactory;
63
62
  get events(): IEventEmitter;
@@ -71,11 +70,10 @@ export declare class Reader implements LifecycleHooks {
71
70
  get loading(): ILoading;
72
71
  reload(): Promise<void>;
73
72
  open(url: any, container: HTMLElement, rootContainer: HTMLElement, openOptions?: OpenOptions): Promise<void>;
73
+ private getParsingText;
74
+ private createFileDownloadingCallback;
74
75
  private createReaderContainer;
75
76
  private mountRenderer;
76
- private bindEvents;
77
- private unbindEvents;
78
- private storeProgress;
79
77
  get context(): Context;
80
78
  get url(): any;
81
79
  get openOptions(): OpenOptions;
@@ -86,13 +84,16 @@ export declare class Reader implements LifecycleHooks {
86
84
  getRenderer(): IRenderer;
87
85
  changeTheme: (themeName: string) => Promise<void>;
88
86
  private getTheme;
89
- private applyGlobalTheme;
87
+ private applyTheme;
90
88
  goto(location: FileLocation): Promise<void>;
91
89
  gotoUrl(url: string): Promise<void>;
92
90
  gotoPercentage(percentage: number, options?: GotoPercentegeOptions): Promise<void>;
93
91
  private createTopIFrame;
94
92
  getReaderContainer(): HTMLElement;
95
93
  getRootContainer(): HTMLElement;
94
+ getHostViewport(): HostViewport;
95
+ refreshHostViewport(): HostViewport;
96
+ private getReaderContainerBoxStyle;
96
97
  dispose(): Promise<void>;
97
98
  clear(): Promise<void>;
98
99
  }
@@ -1,39 +1,51 @@
1
- import { BrowserCapabilities as e } from "./web/BrowserCapabilities.mjs";
2
- import { toCssVariableName as t } from "./common/naming.mjs";
3
- import { isOptionKey as n } from "./Options.mjs";
4
- import { Theme as r, ThemeCssKeys as i } from "./Theme.mjs";
5
- import { getRandomId as a } from "./common/uuid.mjs";
6
- import { deepClone as o } from "./common/object.mjs";
7
- import { EventNames as s } from "./EventNames.mjs";
8
- import { FileLoader as c } from "./FileLoader.mjs";
9
- import { emptyElement as l } from "./html/dom.mjs";
10
- import { createElement as u, injectCssContent as d } from "./html/injector.mjs";
11
- import { PluginManager as f } from "./plugins/PluginManager.mjs";
12
- import { OptionsProvider as p } from "./OptionsProvider.mjs";
1
+ import { EventNames as e } from "./EventNames.mjs";
2
+ import { formatFileSize as t } from "./common/data.mjs";
3
+ import { deepClone as n } from "./common/object.mjs";
4
+ import { getRandomId as r } from "./common/uuid.mjs";
5
+ import { BrowserCapabilities as i } from "./web/BrowserCapabilities.mjs";
6
+ import { toCssVariableName as a } from "./common/naming.mjs";
7
+ import { isOptionKey as o } from "./Options.mjs";
8
+ import { OpenOptions as s } from "./OpenOptions.mjs";
9
+ import { UI_SERVICE_KEYS as c } from "./services/ServiceCollection.mjs";
10
+ import { FileLoader as l } from "./FileLoader.mjs";
11
+ import { emptyElement as u } from "./html/dom.mjs";
12
+ import { refreshHostViewportSize as d, resolveHostViewport as f } from "./hostViewport.mjs";
13
+ import { createElement as p, injectCssContent as m } from "./html/injector.mjs";
14
+ import { PluginManager as h } from "./plugins/PluginManager.mjs";
15
+ import { Theme as g, ThemeCssKeys as _ } from "./Theme.mjs";
16
+ import { OptionsProvider as v } from "./OptionsProvider.mjs";
13
17
  //#region kernal/Reader.ts
14
- var m = class {
15
- constructor(e, a) {
16
- this.currentIsLoaded = !1, this.currentIsDidposed = !1, this.currentIsCancelled = !1, this.isInIframe = !1, this.bindEvents = () => {
17
- this.events.on(s.ProgressChange, this.storeProgress);
18
- }, this.unbindEvents = () => {
19
- this.events.off(s.ProgressChange, this.storeProgress);
20
- }, this.storeProgress = async (e) => {
21
- this.readingProgressStore && await this.readingProgressStore.save(this.context.simpleId, e);
22
- }, this.changeTheme = async (e) => {
23
- if (!e) return;
24
- this.options.themeName = e;
25
- let t = await this.getTheme(e);
26
- await this.applyGlobalTheme(t), await this.getRenderer()?.applyTheme(t), this.events.emit(s.ThemeChange, t);
18
+ var y = class {
19
+ constructor(n, r) {
20
+ if (this.currentIsLoaded = !1, this.currentIsDidposed = !1, this.currentIsCancelled = !1, this.isInIframe = !1, this.getParsingText = () => this.locale.getText("share_parsing_text", "Parsing..."), this.createFileDownloadingCallback = () => async (e, n, r) => {
21
+ if (r) {
22
+ await this.loading?.show(this.getParsingText());
23
+ return;
24
+ }
25
+ let i = e > 0 ? e : n, a = t(n), o = t(i), s = this.locale.getText("share_loading_file_progress", "Loading file... {loaded}/{total}", {
26
+ loaded: a,
27
+ total: o
28
+ });
29
+ await this.loading?.show(s);
30
+ }, this.changeTheme = async (t) => {
31
+ if (!t) return;
32
+ this.options.themeName = t;
33
+ let n = await this.getTheme(t);
34
+ await this.applyTheme(n), await this.getRenderer()?.applyTheme(n), this.events.emit(e.ThemeChange, n);
27
35
  }, this.getTheme = async (e) => {
28
36
  let t = await this.services.get("themeProvider"), n;
29
- return n = t ? t.getTheme(e) : new r(), n ||= new r(), n;
30
- }, this.applyGlobalTheme = async (e) => {
31
- for (let n of i) this.rootContainer.style.setProperty(t(n), e[n]);
37
+ return n = t ? t.getTheme(e) : new g(), n ||= new g(), n;
38
+ }, this.applyTheme = async (e) => {
39
+ for (let t of _) this.rootContainer.style.setProperty(a(t), e[t]);
32
40
  if (e.vars) for (let [t, n] of Object.entries(e.vars)) t && this.rootContainer.style.setProperty(t, n);
33
- let n = r.getScrollStyles(`.${r.customScrollerClassName}`);
34
- d(this.rootContainer.ownerDocument, n, !0, "custom-scroll-styles");
35
- }, this.fileLoader = new c(e, a, this), this.fileLoader.services.asReaderServices().registerUiServices(), this.options = this.fileLoader.options, this.version = this.fileLoader.version, this.logger = this.fileLoader.loggerFactory.getLogger(this.constructor.name), this.pluginManager = new f(this, this.fileLoader.loggerFactory, this.services, this.version), this.optionsProvider = new p(this.events, this.options), this.events.on(s.OptionsChange, (e) => {
36
- this.rootContainer && n(e) && this.optionsProvider.applyCssVariables(this.rootContainer);
41
+ let t = g.getScrollStyles(`.${g.customScrollerClassName}`);
42
+ m(this.rootContainer.ownerDocument, t, !0, "custom-scroll-styles");
43
+ }, this.fileLoader = new l(n, r, this), r) for (let e of c) {
44
+ let t = r[e];
45
+ t !== void 0 && this.services.add(e, () => t);
46
+ }
47
+ this.services.registerUiServices(), this.options = this.fileLoader.options, this.version = this.fileLoader.version, this.logger = this.fileLoader.loggerFactory.getLogger(this.constructor.name), this.pluginManager = new h(this, this.fileLoader.loggerFactory, this.services, this.version), this.optionsProvider = new v(this.events, this.options), this.events.on(e.OptionsChange, (e) => {
48
+ this.rootContainer && o(e) && this.optionsProvider.applyCssVariables(this.rootContainer);
37
49
  });
38
50
  }
39
51
  get id() {
@@ -42,12 +54,6 @@ var m = class {
42
54
  get services() {
43
55
  return this.fileLoader.services.asReaderServices();
44
56
  }
45
- get platform() {
46
- return this.fileLoader.platform;
47
- }
48
- get environment() {
49
- return this.fileLoader.environment;
50
- }
51
57
  get device() {
52
58
  return this.fileLoader.device;
53
59
  }
@@ -83,26 +89,28 @@ var m = class {
83
89
  }
84
90
  async reload() {
85
91
  if (!this.container) return;
86
- let e = this.url, t = this.container, n = this.rootContainer, r = o(this.openOptions);
87
- await this.clear(), await this.open(e, t, n, r);
92
+ let e = this.url, t = this.container, r = this.rootContainer, i = n(this.openOptions);
93
+ await this.clear(), await this.open(e, t, r, i);
88
94
  }
89
- async open(e, t, n, i) {
95
+ async open(t, n, r, i) {
90
96
  if (this.currentIsDidposed) throw Error("reader is disposed.");
91
- if (t == null) throw Error("container is required. Use FileLoader for headless parse-only scenarios.");
92
- if (this.fileLoader.inputFormatter.guardUrl(e), this.currentIsLoaded && await this.clear(), this.currentIsDidposed = !1, this.loadFail = void 0, this.currentIsCancelled = !1, this.container = t, this.rootContainer = n, this.startLoadTime = /* @__PURE__ */ new Date(), this.events.emit(s.StartLoadResource, {
97
+ if (n == null) throw Error("container is required. Use FileLoader for headless parse-only scenarios.");
98
+ if (this.fileLoader.inputFormatter.guardUrl(t), this.currentIsLoaded && await this.clear(), this.currentIsDidposed = !1, this.loadFail = void 0, this.currentIsCancelled = !1, this.container = n, this.rootContainer = r, this.startLoadTime = /* @__PURE__ */ new Date(), this.events.emit(e.StartLoadResource, {
93
99
  reader: this,
94
100
  startLoadTime: this.startLoadTime
95
- }), this.readerWrapper = this.fileLoader.inputFormatter.formatReaderWrapper(t), !this.readerWrapper) throw Error("container is invalid.");
101
+ }), this.readerWrapper = this.fileLoader.inputFormatter.formatReaderWrapper(n), !this.readerWrapper) throw Error("container is invalid.");
96
102
  this.rootContainer ||= this.readerWrapper, this.optionsProvider.applyCssVariables(this.rootContainer);
97
103
  let a = await this.getTheme(this.options.themeName);
98
- await this.applyGlobalTheme(a), this.currentNotifier = await this.services.get("notifier", !1), this.currentLoading = await this.services.get("loading", !1), l(this.readerWrapper), await this.loading?.initialize(this.readerWrapper, {
99
- backgroundColor: `var(${r.ReaderBackground})`,
100
- textColor: `var(${r.TextMutedColor})`,
101
- iconColor: `var(${r.TextAccentColor})`
104
+ await this.applyTheme(a), this.currentNotifier = await this.services.get("notifier", !1), this.currentLoading = await this.services.get("loading", !1), u(this.readerWrapper), this.hostViewport = f(this.readerWrapper), this.readerWrapper.setAttribute("data-viewport-mode", this.hostViewport.mode), this.hostViewport.mode == "window" && !this.readerWrapper.style.minHeight && (this.readerWrapper.style.minHeight = this.hostViewport.height + "px", this.readerWrapper.setAttribute("data-fc-auto-min-height", "true")), await this.loading?.initialize(this.readerWrapper, {
105
+ backgroundColor: `var(${g.ReaderBackground})`,
106
+ textColor: `var(${g.TextMutedColor})`,
107
+ iconColor: `var(${g.TextAccentColor})`
102
108
  }), await this.loading?.show();
103
109
  try {
104
110
  await this.fileLoader.getFileParser()?.dispose();
105
- let t = await this.fileLoader.load(e, i, {
111
+ let e = Object.assign(new s(), i);
112
+ e.fileDownloadingCallback ||= this.createFileDownloadingCallback();
113
+ let n = await this.fileLoader.load(t, e, {
106
114
  measureFilePercentage: !0,
107
115
  prepareContext: async ({ extension: e }) => (this.isInIframe = !1, await this.createReaderContainer(e), {
108
116
  rootContainer: this.rootContainer,
@@ -110,11 +118,11 @@ var m = class {
110
118
  readerWrapper: this.readerWrapper
111
119
  }),
112
120
  afterParserReady: async () => {
113
- await this.loading?.show();
121
+ await this.loading?.show(this.getParsingText());
114
122
  },
115
123
  isCancelled: () => this.currentIsCancelled
116
124
  });
117
- this.abortController = t.abortController, await this.mountRenderer(t);
125
+ this.abortController = n.abortController, await this.mountRenderer(n);
118
126
  } catch (e) {
119
127
  throw this.loadFail = !0, e;
120
128
  } finally {
@@ -123,54 +131,56 @@ var m = class {
123
131
  let e = this.readerWrapper.getAttribute("data-reader-wrapper-bg");
124
132
  e && this.readerWrapper.style.setProperty("background", e);
125
133
  }
126
- this.abortController &&= null, this.loadFail || this.events.emit(s.ResourceLoad, {
134
+ this.abortController &&= null, this.loadFail || this.events.emit(e.ResourceLoad, {
127
135
  reader: this,
128
136
  startLoadTime: this.startLoadTime
129
137
  });
130
138
  }
131
139
  }
132
140
  async createReaderContainer(t) {
133
- let n = this.options.iframeRequiredExtensions, i;
134
- if (!n.includes(t) || this.readerWrapper instanceof this.readerWrapper.ownerDocument.defaultView.window.HTMLBodyElement) this.readerContainer = u(this.readerWrapper.ownerDocument, "div", a(!0), { style: "width:100%;height:100%;overflow: hidden;position:relative;background:var(" + r.ReaderBackground + ")" }), this.readerWrapper.appendChild(this.readerContainer), i = this.readerContainer.ownerDocument;
141
+ let n = this.options.iframeRequiredExtensions, a;
142
+ if (!n.includes(t) || this.readerWrapper instanceof this.readerWrapper.ownerDocument.defaultView.window.HTMLBodyElement) this.readerContainer = p(this.readerWrapper.ownerDocument, "div", r(!0), { style: this.getReaderContainerBoxStyle(t) }), this.readerWrapper.appendChild(this.readerContainer), a = this.readerContainer.ownerDocument;
135
143
  else {
136
144
  this.isInIframe = !0;
137
- let t = this.createTopIFrame();
138
- this.readerWrapper.appendChild(t), e.isFirefox() && (t.contentDocument.open(), t.contentDocument.close());
139
- let n = t.contentDocument;
140
- this.readerContainer = u(n, "div", a(!0), { style: "width:100%;height:100%;overflow: hidden;position:relative;background:var(" + r.ReaderBackground + ")" }), n.body.appendChild(this.readerContainer), i = n, t.contentWindow.addEventListener("click", (e) => {
141
- this.events.emit(s.ReaderClick, {
142
- e,
145
+ let n = this.createTopIFrame();
146
+ this.readerWrapper.appendChild(n), i.isFirefox() && (n.srcdoc = "<!DOCTYPE html><html><head></head><body></body></html>");
147
+ let o = n.contentDocument;
148
+ this.readerContainer = p(o, "div", r(!0), { style: this.getReaderContainerBoxStyle(t) }), o.body.appendChild(this.readerContainer), a = o, n.contentWindow.addEventListener("click", (t) => {
149
+ this.events.emit(e.ReaderClick, {
150
+ e: t,
143
151
  reader: this
144
152
  });
145
- }, !0), t.contentWindow.addEventListener("mouseenter", (e) => {
146
- this.events.emit(s.ReaderMouseEnter, {
147
- e,
153
+ }, !0), n.contentWindow.addEventListener("mouseenter", (t) => {
154
+ this.events.emit(e.ReaderMouseEnter, {
155
+ e: t,
148
156
  reader: this
149
157
  });
150
158
  }, !0);
151
159
  }
152
- this.rootContainer.addEventListener("click", (e) => {
153
- this.events.emit(s.ReaderClick, {
154
- e,
160
+ this.rootContainer.addEventListener("click", (t) => {
161
+ this.events.emit(e.ReaderClick, {
162
+ e: t,
155
163
  reader: this
156
164
  });
157
- }, !0), this.rootContainer.addEventListener("mouseenter", (e) => {
158
- this.events.emit(s.ReaderMouseEnter, {
159
- e,
165
+ }, !0), this.rootContainer.addEventListener("mouseenter", (t) => {
166
+ this.events.emit(e.ReaderMouseEnter, {
167
+ e: t,
160
168
  reader: this
161
169
  });
162
- }, !0), this.readerContainer.setAttribute("data-role", "readerContainer"), await this.onContainerCreated?.();
170
+ }, !0), this.readerContainer.setAttribute("data-role", "readerContainer"), this.readerContainer.setAttribute("data-viewport-mode", this.getHostViewport().mode), await this.onContainerCreated?.(), await this.loading?.show();
163
171
  let o = this.readerWrapper.style.getPropertyValue("background");
164
- o && this.readerWrapper.setAttribute("data-reader-wrapper-bg", o), (await this.services.get("wallpaperProvider"))?.changeWallpaper(this.options.wallpaperName), this.options.enableInjectResetCss && d(i, "html{touch-action:none;touch-action:pan-y;}body *{box-sizing:border-box}html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{padding:0;margin:0;}ul,ol,li{list-style:none;}i,em{font-style:normal}img{border:0;}table{border-collapse:collapse;border-spacing:0;}table td{padding:0;margin:0;}table th.wztop{vertical-align:top;}.fl{float:left;}.fr{float:right;}section,article,aside,header,footer,nav,dialog,figure{display:block;padding:0;margin:0;}html{text-size-adjust: 100%;}", !1, "reader_global_style"), await this.notifier.initialize(this.readerContainer);
165
- }
166
- async mountRenderer(e) {
167
- this.options.enableProgressStore && !this.readingProgressStore && (this.readingProgressStore = await this.services.get("readingProgressStore")), this.unbindEvents(), this.renderer &&= (await this.renderer.dispose(), null);
168
- let t = await this.mediaTypeRegistry.createRenderer(this, e.fileParser, this.readerContainer);
169
- this.renderer = t, await this.onRenderer?.(this.renderer);
170
- let n = e.percentage, r = e.location;
171
- if (!isNaN(n) && n <= 1 && n >= 0 ? await this.renderer.navigator.gotoPercentage(n) : await this.renderer.load(r), this.renderer.getDocuments().length == 0) throw Error("Empty File");
172
- let i = await this.getTheme(this.options.themeName);
173
- await this.getRenderer()?.applyTheme(i), await this.onRenderered?.(this.renderer), await this.loading?.hide(), this.events.emit(s.RendererLoad, this.renderer), await this.pluginManager?.enablePlugins(e.extension), this.bindEvents();
172
+ o && this.readerWrapper.setAttribute("data-reader-wrapper-bg", o), (await this.services.get("wallpaperProvider"))?.changeWallpaper(this.options.wallpaperName), this.options.enableInjectResetCss && m(a, "html{touch-action:none;touch-action:pan-y;}body *{box-sizing:border-box}html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{padding:0;margin:0;}ul,ol,li{list-style:none;}i,em{font-style:normal}img{border:0;}table{border-collapse:collapse;border-spacing:0;}table td{padding:0;margin:0;}section,article,aside,header,footer,nav,dialog,figure{padding:0;margin:0;}html{text-size-adjust: 100%;}", !1, "reader_global_style", (e, t) => {
173
+ e.insertBefore(t, e.firstChild);
174
+ }), await this.notifier.initialize(this.readerContainer);
175
+ }
176
+ async mountRenderer(t) {
177
+ this.renderer &&= (await this.renderer.dispose(), null);
178
+ let n = await this.mediaTypeRegistry.createRenderer(this, t.fileParser, this.readerContainer);
179
+ this.renderer = n, await this.onRenderer?.(this.renderer);
180
+ let r = t.percentage, i = t.location;
181
+ if (!isNaN(r) && r <= 1 && r >= 0 ? await this.renderer.navigator.gotoPercentage(r, { from: "restore" }) : await this.renderer.load(i), this.renderer.getDocuments().length == 0) throw Error("Empty File");
182
+ let a = await this.getTheme(this.options.themeName);
183
+ await this.getRenderer()?.applyTheme(a), await this.onRenderered?.(this.renderer), await this.loading?.hide(), this.events.emit(e.RendererLoad, this.renderer), await this.pluginManager?.enablePlugins(t.extension);
174
184
  }
175
185
  get context() {
176
186
  return this.fileLoader.context;
@@ -205,9 +215,9 @@ var m = class {
205
215
  async gotoPercentage(e, t) {
206
216
  await this.getRenderer()?.navigator.gotoPercentage(e, t);
207
217
  }
208
- createTopIFrame(t) {
209
- let n = u(document, "iframe", t);
210
- return e.isFirefox() ? n.setAttribute("src", "javascript:") : n.setAttribute("src", "about:blank"), n.setAttribute("frameborder", "0"), n.setAttribute("border", "0"), n.setAttribute("allowfullscreen", "true"), n.setAttribute("width", "100%"), n.setAttribute("height", "100%"), n.setAttribute("style", "margin:0;padding:0"), n;
218
+ createTopIFrame(e) {
219
+ let t = p(document, "iframe", e);
220
+ return i.isFirefox() ? t.setAttribute("src", "javascript:") : t.setAttribute("src", "about:blank"), t.setAttribute("frameborder", "0"), t.setAttribute("border", "0"), t.setAttribute("allowfullscreen", "true"), t.setAttribute("width", "100%"), t.setAttribute("height", "100%"), t.setAttribute("style", "margin:0;padding:0"), t;
211
221
  }
212
222
  getReaderContainer() {
213
223
  return this.readerContainer;
@@ -215,25 +225,45 @@ var m = class {
215
225
  getRootContainer() {
216
226
  return this.rootContainer;
217
227
  }
228
+ getHostViewport() {
229
+ if (this.hostViewport) return this.hostViewport;
230
+ let e = this.readerWrapper ?? this.rootContainer;
231
+ return e ? (this.hostViewport = f(e), this.hostViewport) : {
232
+ mode: "window",
233
+ height: 600,
234
+ width: 800,
235
+ observerRoot: null,
236
+ scrollElement: document.scrollingElement ?? document.documentElement,
237
+ scrollWatchTarget: document
238
+ };
239
+ }
240
+ refreshHostViewport() {
241
+ let e = this.readerWrapper ?? this.rootContainer;
242
+ return e ? this.hostViewport ? (this.hostViewport = d(e, this.hostViewport), this.hostViewport) : (this.hostViewport = f(e), this.hostViewport) : this.getHostViewport();
243
+ }
244
+ getReaderContainerBoxStyle(e) {
245
+ let t = this.getHostViewport(), n = `background:var(${g.ReaderBackground})`;
246
+ return t.mode == "host" ? `width:100%;height:100%;overflow:hidden;position:relative;${n}` : (e ?? "").toLowerCase().replace(/^\./, "") == "pdf" ? `width:100%;height:${t.height}px;overflow:hidden;position:relative;${n}` : `width:100%;height:auto;min-height:${t.height}px;overflow:visible;position:relative;${n}`;
247
+ }
218
248
  async dispose() {
219
- await this.onDisposing?.(), await this.clear(), this.currentIsDidposed = !0, this.fileLoader.markDisposed(), await this.onDisposed?.(), this.events.emit(s.ReaderDisposed, this);
249
+ await this.onDisposing?.(), await this.clear(), this.currentIsDidposed = !0, this.fileLoader.markDisposed(), await this.onDisposed?.(), this.events.emit(e.ReaderDisposed, this);
220
250
  }
221
251
  async clear() {
222
252
  try {
223
253
  if (this.context?.id && this.startLoadTime) {
224
- let e = await this.renderer?.progressTracker.getProgress(!0);
225
- e && this.events.emit(s.ResourceUnload, {
254
+ let t = await this.renderer?.progressTracker.getProgress(!0);
255
+ t && this.events.emit(e.ResourceUnload, {
226
256
  reader: this,
227
257
  simpleId: this.context.simpleId,
228
258
  resourceId: this.context.id,
229
259
  startLoadTime: this.startLoadTime,
230
- progress: e
260
+ progress: t
231
261
  });
232
262
  }
233
263
  this.abortController && (this.abortController.abort("Cancelled"), this.abortController = null, this.logger.info("User cancelled task,url", this.url), this.currentIsCancelled = !0);
234
264
  } catch {}
235
- await this.pluginManager?.dispose(), this.renderer &&= (await this.renderer.dispose(), null), await this.fileLoader.clear(), this.readerWrapper && l(this.readerWrapper), this.startLoadTime = null, this.currentIsLoaded = !1, this.events.emit(s.ReaderCleared, this);
265
+ await this.pluginManager?.dispose(), this.renderer &&= (await this.renderer.dispose(), null), await this.fileLoader.clear(), this.readerWrapper && (u(this.readerWrapper), this.readerWrapper.getAttribute("data-fc-auto-min-height") == "true" && (this.readerWrapper.style.removeProperty("min-height"), this.readerWrapper.removeAttribute("data-fc-auto-min-height")), this.readerWrapper.removeAttribute("data-viewport-mode")), this.startLoadTime = null, this.currentIsLoaded = !1, this.events.emit(e.ReaderCleared, this);
236
266
  }
237
267
  };
238
268
  //#endregion
239
- export { m as Reader };
269
+ export { y as Reader };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./web/BrowserCapabilities.cjs"),t=require("./common/naming.cjs"),n=require("./Options.cjs");var r=class r{constructor(){this.name=`default`,this.isDefault=!1,this.enabled=!0,this.themeRepresentativeColor=`#f1f1f1`,this.readerBackground=`#f6f6f6`,this.gotoTargetAnimationColor=`rgba(255,150,50,0.4)`,this.contentBackground=`#fff`,this.contentTextColor=`inherit`,this.codeblockBackgroundColor=`#f9f9f9`,this.selectionBackground=`rgba(255,213,0,0.35)`,this.selectionColor=`inherit`,this.columnRuleColor=`rgba(100, 100, 100, 0.1)`,this.textAccentColor=`#14ae5c`,this.textMutedColor=`#999`,this.borderColor=`#e9e9e9`,this.scrollbarThumbColor=`#999`,this.scrollbarThumbHoverColor=`#555`,this.scrollbarTrackColor=`#f6f6f6`}static{this.ReaderBackground=t.toCssVariableName(`readerBackground`)}static{this.GotoTargetAnimationColor=t.toCssVariableName(`gotoTargetAnimationColor`)}static{this.ContentBackground=t.toCssVariableName(`contentBackground`)}static{this.ContentTextColor=t.toCssVariableName(`contentTextColor`)}static{this.CodeblockBackgroundColor=t.toCssVariableName(`codeblockBackgroundColor`)}static{this.ColumnRuleColor=t.toCssVariableName(`columnRuleColor`)}static{this.SelectionBackground=t.toCssVariableName(`selectionBackground`)}static{this.SelectionColor=t.toCssVariableName(`selectionColor`)}static{this.TextAccentColor=t.toCssVariableName(`textAccentColor`)}static{this.TextMutedColor=t.toCssVariableName(`textMutedColor`)}static{this.ScrollbarThumbColor=t.toCssVariableName(`scrollbarThumbColor`)}static{this.ScrollbarThumbHoverColor=t.toCssVariableName(`scrollbarThumbHoverColor`)}static{this.ScrollbarTrackColor=t.toCssVariableName(`scrollbarTrackColor`)}static{this.BorderColor=t.toCssVariableName(`borderColor`)}static{this.customScrollerClassName=`custom-scroller`}static getScrollStyles(t){if(!e.BrowserCapabilities.hasFinePointer())return`{}`;let i=``;if(t){let e=``,a=``,o=``,s=``;typeof t==`string`?(e=t+`::-webkit-scrollbar`,a=t+`::-webkit-scrollbar-thumb`,o=t+`::-webkit-scrollbar-track`,s=t):(e=t.map(e=>e+`::-webkit-scrollbar`).join(`,`),a=t.map(e=>e+`::-webkit-scrollbar-thumb`).join(`,`),o=t.map(e=>e+`::-webkit-scrollbar-track`).join(`,`),s=t.join(`,`)),i+=`${e}{width:var(${n.Options.ScrollbarSize}) !important;height:var(${n.Options.ScrollbarSize}) !important;}`,i+=`${a}{border: var(${n.Options.ScrollbarBorder}) solid transparent !important;background-clip:padding-box !important;background-color:var(${r.ScrollbarThumbColor}) !important;min-width:40px !important;min-height:40px !important;padding-top:100px !important;border-radius:var(${n.Options.ScrollbarRadius}) !important;}`,i+=`${a}:hover{background-color:var(${r.ScrollbarThumbHoverColor}) !important;}`,i+=`${o}{background:var(${r.ScrollbarTrackColor}) !important;border-radius:var(${n.Options.ScrollbarRadius}) !important;}`,i+=`@-moz-document url-prefix(){`+s+`{scrollbar-width:thin}}`,i+=`@-moz-document url-prefix(){`+s+`{scrollbar-color:var(`+r.ScrollbarThumbColor+`) var(`+r.ScrollbarTrackColor+`) !important}}`}return i||=`{}`,i}},i=[`readerBackground`,`gotoTargetAnimationColor`,`contentBackground`,`contentTextColor`,`codeblockBackgroundColor`,`columnRuleColor`,`selectionBackground`,`selectionColor`,`scrollbarThumbColor`,`scrollbarThumbHoverColor`,`scrollbarTrackColor`,`textAccentColor`,`textMutedColor`,`borderColor`];exports.Theme=r,exports.ThemeCssKeys=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./web/BrowserCapabilities.cjs"),t=require("./common/naming.cjs"),n=require("./Options.cjs");var r=class r{constructor(){this.name=`default`,this.isDefault=!1,this.enabled=!0,this.themeRepresentativeColor=`#f1f1f1`,this.readerBackground=`#f6f6f6`,this.gotoTargetAnimationColor=`rgba(255,150,50,0.4)`,this.contentBackground=`#fff`,this.contentTextColor=`inherit`,this.codeblockBackgroundColor=`#f9f9f9`,this.selectionBackground=`rgba(255,213,0,0.35)`,this.selectionColor=`inherit`,this.columnRuleColor=`rgba(100, 100, 100, 0.1)`,this.textAccentColor=`#163260`,this.textMutedColor=`#777`,this.borderColor=`#e9e9e9`,this.scrollbarThumbColor=`#999`,this.scrollbarThumbHoverColor=`#555`,this.scrollbarTrackColor=`#f6f6f6`}static{this.ReaderBackground=t.toCssVariableName(`readerBackground`)}static{this.GotoTargetAnimationColor=t.toCssVariableName(`gotoTargetAnimationColor`)}static{this.ContentBackground=t.toCssVariableName(`contentBackground`)}static{this.ContentTextColor=t.toCssVariableName(`contentTextColor`)}static{this.CodeblockBackgroundColor=t.toCssVariableName(`codeblockBackgroundColor`)}static{this.ColumnRuleColor=t.toCssVariableName(`columnRuleColor`)}static{this.SelectionBackground=t.toCssVariableName(`selectionBackground`)}static{this.SelectionColor=t.toCssVariableName(`selectionColor`)}static{this.TextAccentColor=t.toCssVariableName(`textAccentColor`)}static{this.TextMutedColor=t.toCssVariableName(`textMutedColor`)}static{this.ScrollbarThumbColor=t.toCssVariableName(`scrollbarThumbColor`)}static{this.ScrollbarThumbHoverColor=t.toCssVariableName(`scrollbarThumbHoverColor`)}static{this.ScrollbarTrackColor=t.toCssVariableName(`scrollbarTrackColor`)}static{this.BorderColor=t.toCssVariableName(`borderColor`)}static{this.customScrollerClassName=`custom-scroller`}static getScrollStyles(t){if(!e.BrowserCapabilities.hasFinePointer())return`{}`;let i=``;if(t){let e=``,a=``,o=``,s=``;typeof t==`string`?(e=t+`::-webkit-scrollbar`,a=t+`::-webkit-scrollbar-thumb`,o=t+`::-webkit-scrollbar-track`,s=t):(e=t.map(e=>e+`::-webkit-scrollbar`).join(`,`),a=t.map(e=>e+`::-webkit-scrollbar-thumb`).join(`,`),o=t.map(e=>e+`::-webkit-scrollbar-track`).join(`,`),s=t.join(`,`)),i+=`${e}{width:var(${n.Options.ScrollbarSize}) !important;height:var(${n.Options.ScrollbarSize}) !important;}`,i+=`${a}{border: var(${n.Options.ScrollbarBorder}) solid transparent !important;background-clip:padding-box !important;background-color:var(${r.ScrollbarThumbColor}) !important;min-width:40px !important;min-height:40px !important;padding-top:100px !important;border-radius:var(${n.Options.ScrollbarRadius}) !important;}`,i+=`${a}:hover{background-color:var(${r.ScrollbarThumbHoverColor}) !important;}`,i+=`${o}{background:var(${r.ScrollbarTrackColor}) !important;border-radius:var(${n.Options.ScrollbarRadius}) !important;}`,i+=`@-moz-document url-prefix(){`+s+`{scrollbar-width:thin}}`,i+=`@-moz-document url-prefix(){`+s+`{scrollbar-color:var(`+r.ScrollbarThumbColor+`) var(`+r.ScrollbarTrackColor+`) !important}}`}return i||=`{}`,i}},i=[`readerBackground`,`gotoTargetAnimationColor`,`contentBackground`,`contentTextColor`,`codeblockBackgroundColor`,`columnRuleColor`,`selectionBackground`,`selectionColor`,`scrollbarThumbColor`,`scrollbarThumbHoverColor`,`scrollbarTrackColor`,`textAccentColor`,`textMutedColor`,`borderColor`];exports.Theme=r,exports.ThemeCssKeys=i;
@@ -4,7 +4,7 @@ import { Options as n } from "./Options.mjs";
4
4
  //#region kernal/Theme.ts
5
5
  var r = class r {
6
6
  constructor() {
7
- this.name = "default", this.isDefault = !1, this.enabled = !0, this.themeRepresentativeColor = "#f1f1f1", this.readerBackground = "#f6f6f6", this.gotoTargetAnimationColor = "rgba(255,150,50,0.4)", this.contentBackground = "#fff", this.contentTextColor = "inherit", this.codeblockBackgroundColor = "#f9f9f9", this.selectionBackground = "rgba(255,213,0,0.35)", this.selectionColor = "inherit", this.columnRuleColor = "rgba(100, 100, 100, 0.1)", this.textAccentColor = "#14ae5c", this.textMutedColor = "#999", this.borderColor = "#e9e9e9", this.scrollbarThumbColor = "#999", this.scrollbarThumbHoverColor = "#555", this.scrollbarTrackColor = "#f6f6f6";
7
+ this.name = "default", this.isDefault = !1, this.enabled = !0, this.themeRepresentativeColor = "#f1f1f1", this.readerBackground = "#f6f6f6", this.gotoTargetAnimationColor = "rgba(255,150,50,0.4)", this.contentBackground = "#fff", this.contentTextColor = "inherit", this.codeblockBackgroundColor = "#f9f9f9", this.selectionBackground = "rgba(255,213,0,0.35)", this.selectionColor = "inherit", this.columnRuleColor = "rgba(100, 100, 100, 0.1)", this.textAccentColor = "#163260", this.textMutedColor = "#777", this.borderColor = "#e9e9e9", this.scrollbarThumbColor = "#999", this.scrollbarThumbHoverColor = "#555", this.scrollbarTrackColor = "#f6f6f6";
8
8
  }
9
9
  static {
10
10
  this.ReaderBackground = t("readerBackground");
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./text.cjs");var t=`https://a.com/`,n=/^(?:[a-z][a-z0-9+.-]*:\/\/\S+|(?:blob|data|mailto|about|javascript|filesystem):)/i,r=e=>/^[a-zA-Z]:[\\/]/.test(e),i=e=>/^[a-z][a-z0-9+.-]*:$/i.test(e),a=e=>`canParse`in URL?!(!URL.canParse(e)||r(e)||i(e)):n.test(e),o=(n,r=t)=>y(n)?new URL(n):(e.isNullOrWhiteSpace(r)?r=t:y(r)||(r=t+r),new URL(n,r)),s=e=>{let t=o(e),n=`/`;if(t.pathname.endsWith(`/`))n=t.pathname;else{let e=t.pathname.lastIndexOf(`/`);e>0&&(n=t.pathname.substring(0,e))}return n},c=()=>{if(typeof location<`u`&&location.protocol&&location.host)return`${location.protocol}//${location.host}`;throw Error(`getCurrentBaseUrl is not available in this context`)},l=e=>{let t=o(e);return t.protocol+`//`+t.host},u=(t,n,r)=>{let i;i=y(t)?o(t):o(t,n);let a=i.pathname;return e.startsWith(i.toString(),`https://a.com/`)||r?.removeBase||i.origin&&(a=i.origin+a),r?.removeQuery||(a+=i.search),r?.removeHash||(a+=i.hash),e.startsWithAny(a,!1,`/`,`\\`)&&(a=a.replace(/[\\]+/gi,`/`).substring(1)),a},d=(e,t,n)=>e&&m(e,t,n),f=(e,t)=>e&&h(e,t),p=(t,n)=>{if(e.isNullOrWhiteSpace(n))return null;let r;r=t instanceof URL?t.searchParams:t instanceof URLSearchParams?t:o(t).searchParams;let i=n.toLowerCase(),a=Array.from(r.keys()),s=null;for(let e=0;e<a.length;e++)if(a[e].toLowerCase()==i){s=a[e];break}if(e.isNullOrWhiteSpace(s))return``;let c=r.get(s);return e.isNullOrWhiteSpace(c)?``:c},m=(e,t,n)=>{let r=new Map;return r.set(t,n),h(e,r)},h=(t,n)=>{if(e.isNullOrWhiteSpace(t)||!y(t)||!n)return t;let r=new URL(t),i=r.origin+r.pathname;n instanceof Map?n.forEach((e,t)=>{r.searchParams.set(t,e)}):Object.keys(n).forEach(e=>{r.searchParams.set(e,n[e])});let a=[];return r.searchParams.forEach((e,t)=>{a.push(t+`=`+encodeURIComponent(e))}),i+=`?`+a.join(`&`)+r.hash,i},g=e=>{let t=[],n=Object.keys(e);for(let r=0;r<n.length;r++)t.push(n[r]+`=`+encodeURIComponent(e[n[r]]));return t.join(`&`)},_=(...n)=>{let r=``;if(n.length==0)throw Error(`segments is empty`);let i=n.length;for(let t=0;t<i;t++){let a=n[t];e.isNullOrWhiteSpace(a)||((a.indexOf(`/`)==0||a.indexOf(`\\`)==0)&&(a=a.substring(1)),t!=i-1&&a.charAt(a.length-1)!=`/`&&(a+=`/`),r+=a)}let a=new URL(r,t);if(a.href.indexOf(`https://a.com/`)==0){let e=a.pathname+a.search+a.hash;return e.indexOf(`/`)==0&&(e=e.substring(1)),e}return a.href},v=t=>{let n={urlWithoutAnchor:null,anchor:null};if(e.isNullOrWhiteSpace(t))return n;n.urlWithoutAnchor=t;let r=t.lastIndexOf(`#`);return r>=0&&t.length>1&&(n.urlWithoutAnchor=t.substring(0,r),n.anchor=t.substring(r+1)),n},y=(e,t)=>!e||typeof e!=`string`?!1:t?b(e):a(e),b=t=>!t||typeof t!=`string`||!e.startsWithAny(t,!0,`http://`,`https://`)?!1:a(t),x=t=>!t||typeof t!=`string`?!1:e.startsWith(t,`blob:`,!0),S=t=>!t||typeof t!=`string`?!1:e.startsWith(t,`file:`,!0);exports.appendUrlParameter=d,exports.appendUrlParameters=f,exports.baseHolderUrl=t,exports.checkIsAbsoluteUrl=y,exports.checkIsBlobUrl=x,exports.checkIsFileUrl=S,exports.checkIsHttpUrl=b,exports.combineUrlSegments=_,exports.getAbsoluteDir=s,exports.getBaseUrl=l,exports.getCurrentBaseUrl=c,exports.getFullUrl=o,exports.getParameterValue=p,exports.getUrl=u,exports.getUrlFragment=v,exports.stringifyParamters=g,exports.updateUrlParameter=m,exports.updateUrlParameters=h;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./text.cjs");var t=`https://a.com/`,n=/^(?:[a-z][a-z0-9+.-]*:\/\/\S+|(?:blob|data|mailto|about|javascript|filesystem):)/i,r=e=>/^[a-zA-Z]:[\\/]/.test(e),i=e=>/^[a-z][a-z0-9+.-]*:$/i.test(e),a=e=>`canParse`in URL?!(!URL.canParse(e)||r(e)||i(e)):n.test(e),o=(n,r=t)=>y(n)?new URL(n):(e.isNullOrWhiteSpace(r)?r=t:y(r)||(r=t+r),new URL(n,r)),s=e=>{let t=o(e),n=`/`;if(t.pathname.endsWith(`/`))n=t.pathname;else{let e=t.pathname.lastIndexOf(`/`);e>0&&(n=t.pathname.substring(0,e))}return n},c=()=>{if(typeof location<`u`&&location.protocol&&location.host)return`${location.protocol}//${location.host}`;throw Error(`getCurrentBaseUrl is not available in this context`)},l=e=>{let t=o(e);return t.protocol+`//`+t.host},u=(t,n,r)=>{let i;i=y(t)?o(t):o(t,n);let a=i.pathname;return e.startsWith(i.toString(),`https://a.com/`)||r?.removeBase||i.origin&&(a=i.origin+a),r?.removeQuery||(a+=i.search),r?.removeHash||(a+=i.hash),e.startsWithAny(a,!1,`/`,`\\`)&&(a=a.replace(/[\\]+/gi,`/`).substring(1)),a},d=(e,t,n)=>e&&m(e,t,n),f=(e,t)=>e&&h(e,t),p=(t,n)=>{if(e.isNullOrWhiteSpace(n))return null;let r;r=t instanceof URL?t.searchParams:t instanceof URLSearchParams?t:o(t).searchParams;let i=n.toLowerCase(),a=Array.from(r.keys()),s=null;for(let e=0;e<a.length;e++)if(a[e].toLowerCase()==i){s=a[e];break}if(e.isNullOrWhiteSpace(s))return``;let c=r.get(s);return e.isNullOrWhiteSpace(c)?``:c},m=(e,t,n)=>{let r=new Map;return r.set(t,n),h(e,r)},h=(t,n)=>{if(e.isNullOrWhiteSpace(t)||!y(t)||!n)return t;let r=new URL(t),i=r.origin+r.pathname;n instanceof Map?n.forEach((e,t)=>{r.searchParams.set(t,e)}):Object.keys(n).forEach(e=>{r.searchParams.set(e,n[e])});let a=[];return r.searchParams.forEach((e,t)=>{a.push(t+`=`+encodeURIComponent(e))}),i+=`?`+a.join(`&`)+r.hash,i},g=e=>{let t=[],n=Object.keys(e);for(let r=0;r<n.length;r++)t.push(n[r]+`=`+encodeURIComponent(e[n[r]]));return t.join(`&`)},_=(...n)=>{let r=``;if(n.length==0)throw Error(`segments is empty`);let i=n.length;for(let t=0;t<i;t++){let a=n[t];e.isNullOrWhiteSpace(a)||((a.indexOf(`/`)==0||a.indexOf(`\\`)==0)&&(a=a.substring(1)),t!=i-1&&a.charAt(a.length-1)!=`/`&&(a+=`/`),r+=a)}let a=new URL(r,t);if(a.href.indexOf(`https://a.com/`)==0){let e=a.pathname+a.search+a.hash;return e.indexOf(`/`)==0&&(e=e.substring(1)),e}return a.href},v=t=>{let n={urlWithoutAnchor:null,anchor:null};if(e.isNullOrWhiteSpace(t))return n;n.urlWithoutAnchor=t;let r=t.lastIndexOf(`#`);return r>=0&&t.length>1&&(n.urlWithoutAnchor=t.substring(0,r),n.anchor=t.substring(r+1)),n},y=(e,t)=>!e||typeof e!=`string`?!1:t?b(e):a(e),b=t=>!t||typeof t!=`string`||!e.startsWithAny(t,!0,`http://`,`https://`)?!1:a(t),x=t=>!t||typeof t!=`string`?!1:e.startsWith(t,`blob:`,!0),S=t=>!t||typeof t!=`string`?!1:e.startsWith(t,`file:`,!0),C=e=>!e||typeof e!=`string`?!1:S(e)||r(e);exports.appendUrlParameter=d,exports.appendUrlParameters=f,exports.baseHolderUrl=t,exports.checkIsAbsoluteUrl=y,exports.checkIsBlobUrl=x,exports.checkIsFileUrl=S,exports.checkIsHttpUrl=b,exports.combineUrlSegments=_,exports.getAbsoluteDir=s,exports.getBaseUrl=l,exports.getCurrentBaseUrl=c,exports.getFullUrl=o,exports.getParameterValue=p,exports.getUrl=u,exports.getUrlFragment=v,exports.isLocalFilesystemRef=C,exports.isWindowsDrivePath=r,exports.stringifyParamters=g,exports.updateUrlParameter=m,exports.updateUrlParameters=h;
@@ -1,4 +1,5 @@
1
1
  export declare const baseHolderUrl = "https://a.com/";
2
+ export declare const isWindowsDrivePath: (url: string) => boolean;
2
3
  export declare const getFullUrl: (url: string, base?: string) => URL;
3
4
  export declare const getAbsoluteDir: (url: string) => string;
4
5
  export declare const getCurrentBaseUrl: () => string;
@@ -23,3 +24,4 @@ export declare const checkIsAbsoluteUrl: (url: string, httpOnly?: boolean) => bo
23
24
  export declare const checkIsHttpUrl: (url: string) => boolean;
24
25
  export declare const checkIsBlobUrl: (url: string) => boolean;
25
26
  export declare const checkIsFileUrl: (url: string) => boolean;
27
+ export declare const isLocalFilesystemRef: (url: string) => boolean;
@@ -73,6 +73,6 @@ var r = "https://a.com/", i = /^(?:[a-z][a-z0-9+.-]*:\/\/\S+|(?:blob|data|mailto
73
73
  n.urlWithoutAnchor = t;
74
74
  let r = t.lastIndexOf("#");
75
75
  return r >= 0 && t.length > 1 && (n.urlWithoutAnchor = t.substring(0, r), n.anchor = t.substring(r + 1)), n;
76
- }, x = (e, t) => !e || typeof e != "string" ? !1 : t ? S(e) : s(e), S = (e) => !e || typeof e != "string" || !n(e, !0, "http://", "https://") ? !1 : s(e), C = (e) => !e || typeof e != "string" ? !1 : t(e, "blob:", !0), w = (e) => !e || typeof e != "string" ? !1 : t(e, "file:", !0);
76
+ }, x = (e, t) => !e || typeof e != "string" ? !1 : t ? S(e) : s(e), S = (e) => !e || typeof e != "string" || !n(e, !0, "http://", "https://") ? !1 : s(e), C = (e) => !e || typeof e != "string" ? !1 : t(e, "blob:", !0), w = (e) => !e || typeof e != "string" ? !1 : t(e, "file:", !0), T = (e) => !e || typeof e != "string" ? !1 : w(e) || a(e);
77
77
  //#endregion
78
- export { p as appendUrlParameter, m as appendUrlParameters, r as baseHolderUrl, x as checkIsAbsoluteUrl, C as checkIsBlobUrl, w as checkIsFileUrl, S as checkIsHttpUrl, y as combineUrlSegments, l as getAbsoluteDir, d as getBaseUrl, u as getCurrentBaseUrl, c as getFullUrl, h as getParameterValue, f as getUrl, b as getUrlFragment, v as stringifyParamters, g as updateUrlParameter, _ as updateUrlParameters };
78
+ export { p as appendUrlParameter, m as appendUrlParameters, r as baseHolderUrl, x as checkIsAbsoluteUrl, C as checkIsBlobUrl, w as checkIsFileUrl, S as checkIsHttpUrl, y as combineUrlSegments, l as getAbsoluteDir, d as getBaseUrl, u as getCurrentBaseUrl, c as getFullUrl, h as getParameterValue, f as getUrl, b as getUrlFragment, T as isLocalFilesystemRef, a as isWindowsDrivePath, v as stringifyParamters, g as updateUrlParameter, _ as updateUrlParameters };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs");let t=require("xxhashjs");t=e.__toESM(t,1);var n=t.default.h64(20220919101915),r=e=>n.update(e).digest().toString(16),i=()=>`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==`x`?t:t&3|8).toString(16)}),a=e=>{let t;if(!(typeof URL<`u`&&typeof URL.createObjectURL==`function`)||e)t=i();else{let e=URL.createObjectURL(new Blob);try{let[n]=e.toString().split(`/`).reverse();t=n,t.indexOf(`blob:`)>=0&&(t=t.replace(`blob:`,``))}catch{t=i()}finally{URL.revokeObjectURL(e)}}if(!t)throw Error(`Failed to create uuid`);return t.replace(/[-]+/gi,``)},o=e=>`r`+a(e);exports.computeUniqueId=r,exports.getRandomId=o,exports.getUuid=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./xxh64.cjs");var t=t=>e.hash64Hex(t),n=()=>`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==`x`?t:t&3|8).toString(16)}),r=e=>{let t;if(!(typeof URL<`u`&&typeof URL.createObjectURL==`function`)||e)t=n();else{let e=URL.createObjectURL(new Blob);try{let[n]=e.toString().split(`/`).reverse();t=n,t.indexOf(`blob:`)>=0&&(t=t.replace(`blob:`,``))}catch{t=n()}finally{URL.revokeObjectURL(e)}}if(!t)throw Error(`Failed to create uuid`);return t.replace(/[-]+/gi,``)},i=e=>`r`+r(e);exports.computeUniqueId=t,exports.getRandomId=i,exports.getUuid=r;