@foxycape/core 1.1.5 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/README.MD +0 -2
  2. package/README.zh.md +0 -2
  3. package/dist/ReaderHub.cjs +1 -0
  4. package/dist/ReaderHub.d.ts +20 -0
  5. package/dist/ReaderHub.mjs +59 -0
  6. package/dist/kernal/ContentRange.d.ts +1 -0
  7. package/dist/kernal/Context.cjs +1 -1
  8. package/dist/kernal/Context.mjs +13 -8
  9. package/dist/kernal/EventNames.cjs +1 -1
  10. package/dist/kernal/EventNames.d.ts +2 -0
  11. package/dist/kernal/EventNames.mjs +6 -0
  12. package/dist/kernal/FileLoader.cjs +1 -1
  13. package/dist/kernal/FileLoader.d.ts +3 -11
  14. package/dist/kernal/FileLoader.mjs +27 -22
  15. package/dist/kernal/JsonConvert.cjs +1 -1
  16. package/dist/kernal/JsonConvert.d.ts +0 -1
  17. package/dist/kernal/JsonConvert.mjs +17 -25
  18. package/dist/kernal/LifecycleHooks.d.ts +2 -1
  19. package/dist/kernal/Metadata.cjs +1 -1
  20. package/dist/kernal/Metadata.d.ts +34 -0
  21. package/dist/kernal/Metadata.mjs +47 -2
  22. package/dist/kernal/OpenOptions.d.ts +1 -0
  23. package/dist/kernal/Options.cjs +1 -1
  24. package/dist/kernal/Options.d.ts +2 -12
  25. package/dist/kernal/Options.mjs +1 -13
  26. package/dist/kernal/OptionsProvider.cjs +1 -1
  27. package/dist/kernal/OptionsProvider.d.ts +0 -2
  28. package/dist/kernal/OptionsProvider.mjs +6 -14
  29. package/dist/kernal/Reader.cjs +1 -1
  30. package/dist/kernal/Reader.d.ts +13 -12
  31. package/dist/kernal/Reader.mjs +119 -89
  32. package/dist/kernal/Theme.cjs +1 -1
  33. package/dist/kernal/Theme.mjs +1 -1
  34. package/dist/kernal/common/url.cjs +1 -1
  35. package/dist/kernal/common/url.d.ts +2 -0
  36. package/dist/kernal/common/url.mjs +2 -2
  37. package/dist/kernal/common/uuid.cjs +1 -1
  38. package/dist/kernal/common/uuid.mjs +7 -7
  39. package/dist/kernal/common/xxh64.cjs +1 -0
  40. package/dist/kernal/common/xxh64.d.ts +1 -0
  41. package/dist/kernal/common/xxh64.mjs +30 -0
  42. package/dist/kernal/crypto/MD5.cjs +1 -1
  43. package/dist/kernal/crypto/MD5.d.ts +0 -1
  44. package/dist/kernal/crypto/MD5.mjs +8 -9
  45. package/dist/kernal/crypto/WebCrypto.cjs +1 -1
  46. package/dist/kernal/crypto/WebCrypto.mjs +38 -35
  47. package/dist/kernal/deepClone/buffer.cjs +1 -1
  48. package/dist/kernal/deepClone/buffer.d.ts +8 -2
  49. package/dist/kernal/deepClone/buffer.mjs +1 -5
  50. package/dist/kernal/device/IDevice.d.ts +8 -2
  51. package/dist/kernal/device/WebBrowser.cjs +1 -1
  52. package/dist/kernal/device/WebBrowser.d.ts +12 -6
  53. package/dist/kernal/device/WebBrowser.mjs +70 -6
  54. package/dist/kernal/hostViewport.cjs +1 -0
  55. package/dist/kernal/hostViewport.d.ts +16 -0
  56. package/dist/kernal/hostViewport.mjs +44 -0
  57. package/dist/kernal/html/events.cjs +1 -1
  58. package/dist/kernal/html/events.mjs +35 -34
  59. package/dist/kernal/html/finder.cjs +1 -1
  60. package/dist/kernal/html/finder.d.ts +6 -2
  61. package/dist/kernal/html/finder.mjs +62 -51
  62. package/dist/kernal/html/geometry.cjs +1 -1
  63. package/dist/kernal/html/geometry.d.ts +26 -1
  64. package/dist/kernal/html/geometry.mjs +182 -121
  65. package/dist/kernal/html/manipulator.cjs +1 -1
  66. package/dist/kernal/html/manipulator.d.ts +1 -3
  67. package/dist/kernal/html/manipulator.mjs +34 -59
  68. package/dist/kernal/html/parser.cjs +1 -1
  69. package/dist/kernal/html/parser.mjs +3 -3
  70. package/dist/kernal/html/position.cjs +1 -1
  71. package/dist/kernal/html/position.d.ts +0 -18
  72. package/dist/kernal/html/position.mjs +2 -141
  73. package/dist/kernal/html/realm.cjs +1 -0
  74. package/dist/kernal/html/realm.d.ts +7 -0
  75. package/dist/kernal/html/realm.mjs +8 -0
  76. package/dist/kernal/html/selection.cjs +1 -1
  77. package/dist/kernal/html/selection.d.ts +1 -0
  78. package/dist/kernal/html/selection.mjs +33 -12
  79. package/dist/kernal/html/text.cjs +1 -1
  80. package/dist/kernal/html/text.d.ts +4 -3
  81. package/dist/kernal/html/text.mjs +24 -21
  82. package/dist/kernal/html/translationAnchor.cjs +1 -0
  83. package/dist/kernal/html/translationAnchor.d.ts +3 -0
  84. package/dist/kernal/html/translationAnchor.mjs +71 -0
  85. package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
  86. package/dist/kernal/i18n/DefaultLocale.d.ts +2 -2
  87. package/dist/kernal/i18n/DefaultLocale.mjs +7 -12
  88. package/dist/kernal/i18n/ILocale.d.ts +0 -1
  89. package/dist/kernal/i18n/applyNamed.cjs +1 -0
  90. package/dist/kernal/i18n/applyNamed.d.ts +1 -0
  91. package/dist/kernal/i18n/applyNamed.mjs +9 -0
  92. package/dist/kernal/i18n/textDirection.cjs +1 -0
  93. package/dist/kernal/i18n/textDirection.d.ts +6 -0
  94. package/dist/kernal/i18n/textDirection.mjs +7 -0
  95. package/dist/kernal/index.cjs +1 -1
  96. package/dist/kernal/index.d.ts +6 -5
  97. package/dist/kernal/index.mjs +50 -45
  98. package/dist/kernal/mark/IHighlighter.cjs +1 -0
  99. package/dist/kernal/mark/IHighlighter.d.ts +43 -0
  100. package/dist/kernal/mark/IHighlighter.mjs +13 -0
  101. package/dist/kernal/mark/Mark.cjs +1 -1
  102. package/dist/kernal/mark/Mark.d.ts +33 -4
  103. package/dist/kernal/mark/Mark.mjs +43 -6
  104. package/dist/kernal/mark/index.cjs +1 -1
  105. package/dist/kernal/mark/index.d.ts +2 -0
  106. package/dist/kernal/mark/index.mjs +6 -3
  107. package/dist/kernal/mark/overlay.cjs +1 -0
  108. package/dist/kernal/mark/overlay.d.ts +31 -0
  109. package/dist/kernal/mark/overlay.mjs +102 -0
  110. package/dist/kernal/mark/types.cjs +1 -0
  111. package/dist/kernal/mark/types.d.ts +11 -2
  112. package/dist/kernal/mark/types.mjs +4 -0
  113. package/dist/kernal/navigator/INavigator.d.ts +3 -2
  114. package/dist/kernal/network/HttpClient.cjs +1 -1
  115. package/dist/kernal/network/HttpClient.mjs +80 -56
  116. package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
  117. package/dist/kernal/pipelines/FileLoadPipeline.mjs +55 -56
  118. package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
  119. package/dist/kernal/pipelines/InputFormatter.mjs +43 -41
  120. package/dist/kernal/pipelines/metadata.cjs +1 -1
  121. package/dist/kernal/pipelines/metadata.d.ts +2 -1
  122. package/dist/kernal/pipelines/metadata.mjs +21 -30
  123. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
  124. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +7 -6
  125. package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
  126. package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +12 -11
  127. package/dist/kernal/progress/Progress.cjs +1 -1
  128. package/dist/kernal/progress/Progress.d.ts +5 -3
  129. package/dist/kernal/progress/Progress.mjs +2 -2
  130. package/dist/kernal/progress/userChangedProgress.cjs +1 -0
  131. package/dist/kernal/progress/userChangedProgress.d.ts +9 -0
  132. package/dist/kernal/progress/userChangedProgress.mjs +11 -0
  133. package/dist/kernal/screen/BrowserFullscreen.cjs +1 -0
  134. package/dist/kernal/screen/BrowserFullscreen.d.ts +9 -0
  135. package/dist/kernal/screen/BrowserFullscreen.mjs +47 -0
  136. package/dist/kernal/screen/IFullscreen.d.ts +6 -0
  137. package/dist/kernal/services/ServiceCollection.cjs +1 -1
  138. package/dist/kernal/services/ServiceCollection.d.ts +4 -6
  139. package/dist/kernal/services/ServiceCollection.mjs +18 -9
  140. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
  141. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +4 -2
  142. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +31 -23
  143. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
  144. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +52 -51
  145. package/dist/kernal/services/fileUrlParser/IFileUrlParser.d.ts +0 -1
  146. package/dist/kernal/services/font/IFontProvider.cjs +1 -1
  147. package/dist/kernal/services/font/IFontProvider.d.ts +3 -0
  148. package/dist/kernal/services/font/IFontProvider.mjs +1 -1
  149. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
  150. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +8 -8
  151. package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
  152. package/dist/kernal/services/loading/DefaultLoading.d.ts +4 -0
  153. package/dist/kernal/services/loading/DefaultLoading.mjs +23 -24
  154. package/dist/kernal/services/text/splitter.cjs +1 -1
  155. package/dist/kernal/services/text/splitter.mjs +3 -3
  156. package/dist/kernal/types.d.ts +0 -5
  157. package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
  158. package/dist/kernal/web/BrowserCapabilities.d.ts +0 -9
  159. package/dist/kernal/web/BrowserCapabilities.mjs +0 -49
  160. package/dist/kernal/{Debounce.mjs → web/debounce.mjs} +1 -1
  161. package/dist/kernal/web/scheduler.cjs +1 -0
  162. package/dist/kernal/web/scheduler.d.ts +3 -0
  163. package/dist/kernal/web/scheduler.mjs +7 -0
  164. package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
  165. package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +59 -59
  166. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -0
  167. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.d.ts +13 -0
  168. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +109 -0
  169. package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
  170. package/dist/mediaTypes/html/HtmlOptions.d.ts +6 -12
  171. package/dist/mediaTypes/html/HtmlOptions.mjs +3 -14
  172. package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
  173. package/dist/mediaTypes/html/HtmlSettings.d.ts +16 -1
  174. package/dist/mediaTypes/html/HtmlSettings.mjs +46 -1
  175. package/dist/mediaTypes/html/IHtmlContentNormalizer.cjs +1 -0
  176. package/dist/mediaTypes/html/IHtmlContentNormalizer.d.ts +4 -0
  177. package/dist/mediaTypes/html/IHtmlContentNormalizer.mjs +4 -0
  178. package/dist/mediaTypes/html/IHtmlSymbolMeasure.d.ts +11 -0
  179. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.cjs +1 -0
  180. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.d.ts +5 -0
  181. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.mjs +8 -0
  182. package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
  183. package/dist/mediaTypes/html/fileParser/HtmlFileParser.d.ts +5 -1
  184. package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +15 -18
  185. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
  186. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +25 -25
  187. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +1 -0
  188. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.d.ts +7 -3
  189. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +4 -0
  190. package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
  191. package/dist/mediaTypes/html/renderer/HtmlRenderer.d.ts +7 -1
  192. package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +65 -41
  193. package/dist/mediaTypes/html/renderer/IHtmlDocument.d.ts +6 -2
  194. package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.d.ts +5 -0
  195. package/dist/mediaTypes/html/renderer/IHtmlRenderer.d.ts +3 -0
  196. package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
  197. package/dist/mediaTypes/html/renderer/document/HtmlDocument.d.ts +29 -6
  198. package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +233 -86
  199. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
  200. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.d.ts +8 -0
  201. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +41 -5
  202. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
  203. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.d.ts +2 -4
  204. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +22 -59
  205. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
  206. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.d.ts +3 -5
  207. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +7 -25
  208. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
  209. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.d.ts +0 -2
  210. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +18 -42
  211. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
  212. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.d.ts +2 -0
  213. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +17 -4
  214. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
  215. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.d.ts +16 -1
  216. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +128 -54
  217. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
  218. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +26 -3
  219. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +227 -101
  220. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
  221. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -0
  222. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +45 -25
  223. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.cjs +1 -0
  224. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.d.ts +6 -0
  225. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.mjs +6 -0
  226. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.cjs +1 -0
  227. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.d.ts +2 -0
  228. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.mjs +13 -0
  229. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.cjs +1 -0
  230. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.d.ts +11 -0
  231. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.mjs +8 -0
  232. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
  233. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +62 -62
  234. package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
  235. package/dist/mediaTypes/html/renderer/html/template.d.ts +3 -1
  236. package/dist/mediaTypes/html/renderer/html/template.mjs +9 -9
  237. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
  238. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.d.ts +22 -12
  239. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +380 -270
  240. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
  241. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +27 -27
  242. package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.d.ts +8 -0
  243. package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -1
  244. package/dist/mediaTypes/html/renderer/image/error-image.mjs +1 -1
  245. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.cjs +1 -0
  246. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.d.ts +10 -0
  247. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.mjs +15 -0
  248. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.cjs +1 -0
  249. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.d.ts +2 -0
  250. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.mjs +12 -0
  251. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
  252. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.d.ts +6 -10
  253. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +71 -62
  254. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
  255. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.d.ts +4 -1
  256. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +113 -68
  257. package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.d.ts +8 -3
  258. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
  259. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.d.ts +5 -1
  260. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +15 -3
  261. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.cjs +1 -0
  262. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.d.ts +8 -0
  263. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.mjs +28 -0
  264. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.cjs +30 -0
  265. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.mjs +4 -0
  266. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.cjs +31 -0
  267. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.mjs +4 -0
  268. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.cjs +30 -0
  269. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.mjs +4 -0
  270. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.cjs +30 -0
  271. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.mjs +4 -0
  272. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.cjs +30 -0
  273. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.mjs +4 -0
  274. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.cjs +30 -0
  275. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.mjs +4 -0
  276. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.cjs +6 -0
  277. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.mjs +4 -0
  278. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.cjs +10 -0
  279. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.mjs +4 -0
  280. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.cjs +10 -0
  281. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.mjs +4 -0
  282. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.cjs +10 -0
  283. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.mjs +4 -0
  284. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.cjs +10 -0
  285. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.mjs +4 -0
  286. package/dist/mediaTypes/html/renderer/layout/css/document-default.cjs +19 -0
  287. package/dist/mediaTypes/html/renderer/layout/css/document-default.mjs +4 -0
  288. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.cjs +3 -0
  289. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.d.ts +2 -0
  290. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.mjs +56 -0
  291. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.cjs +64 -0
  292. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.mjs +4 -0
  293. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.cjs +33 -0
  294. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.mjs +4 -0
  295. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.cjs +33 -0
  296. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.mjs +4 -0
  297. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.cjs +47 -0
  298. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.mjs +4 -0
  299. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.cjs +47 -0
  300. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.mjs +4 -0
  301. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.cjs +46 -0
  302. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.mjs +4 -0
  303. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.cjs +46 -0
  304. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.mjs +4 -0
  305. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.cjs +7 -0
  306. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.mjs +4 -0
  307. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.cjs +28 -0
  308. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.mjs +4 -0
  309. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.cjs +28 -0
  310. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.mjs +4 -0
  311. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.cjs +28 -0
  312. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.mjs +4 -0
  313. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.cjs +28 -0
  314. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.mjs +4 -0
  315. package/dist/mediaTypes/html/renderer/layout/css/root-direction.cjs +8 -0
  316. package/dist/mediaTypes/html/renderer/layout/css/root-direction.mjs +4 -0
  317. package/dist/mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.d.ts +128 -0
  318. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.cjs +1 -0
  319. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.d.ts +4 -0
  320. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.mjs +7 -0
  321. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.cjs +1 -0
  322. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.d.ts +1 -0
  323. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.mjs +13 -0
  324. package/dist/mediaTypes/html/renderer/layout/geometry/index.cjs +1 -0
  325. package/dist/mediaTypes/html/renderer/layout/geometry/index.d.ts +18 -0
  326. package/dist/mediaTypes/html/renderer/layout/geometry/index.mjs +30 -0
  327. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.cjs +1 -0
  328. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.d.ts +3 -0
  329. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.mjs +71 -0
  330. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.cjs +1 -0
  331. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.d.ts +3 -0
  332. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.mjs +74 -0
  333. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.cjs +1 -0
  334. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.d.ts +3 -0
  335. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.mjs +71 -0
  336. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.cjs +1 -0
  337. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.d.ts +3 -0
  338. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.mjs +71 -0
  339. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.cjs +1 -0
  340. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.d.ts +3 -0
  341. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.mjs +71 -0
  342. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.cjs +1 -0
  343. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.d.ts +3 -0
  344. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.mjs +71 -0
  345. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.cjs +1 -0
  346. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.d.ts +41 -0
  347. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.mjs +53 -0
  348. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.cjs +1 -0
  349. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.d.ts +3 -0
  350. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.mjs +71 -0
  351. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.cjs +1 -0
  352. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.d.ts +3 -0
  353. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.mjs +74 -0
  354. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.cjs +1 -0
  355. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.d.ts +3 -0
  356. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.mjs +71 -0
  357. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.cjs +1 -0
  358. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.d.ts +3 -0
  359. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.mjs +71 -0
  360. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.cjs +1 -0
  361. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.d.ts +3 -0
  362. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.mjs +74 -0
  363. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.cjs +1 -0
  364. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.d.ts +3 -0
  365. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.mjs +74 -0
  366. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.cjs +1 -0
  367. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.d.ts +10 -0
  368. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.mjs +17 -0
  369. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -0
  370. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.d.ts +6 -0
  371. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +24 -0
  372. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.cjs +1 -0
  373. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.d.ts +9 -0
  374. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.mjs +4 -0
  375. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.cjs +1 -0
  376. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.d.ts +11 -0
  377. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.mjs +9 -0
  378. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
  379. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +32 -34
  380. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -0
  381. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.d.ts +23 -0
  382. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +164 -0
  383. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.cjs +1 -0
  384. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.d.ts +4 -0
  385. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.mjs +13 -0
  386. package/dist/mediaTypes/html/renderer/location/scrollActivity.cjs +1 -0
  387. package/dist/mediaTypes/html/renderer/location/scrollActivity.d.ts +14 -0
  388. package/dist/mediaTypes/html/renderer/location/scrollActivity.mjs +18 -0
  389. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
  390. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +2 -2
  391. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
  392. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +3 -3
  393. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
  394. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +55 -59
  395. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
  396. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.d.ts +1 -0
  397. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +40 -39
  398. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
  399. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.d.ts +2 -1
  400. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +36 -24
  401. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
  402. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.d.ts +4 -0
  403. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +19 -1
  404. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
  405. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.d.ts +3 -0
  406. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +9 -0
  407. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
  408. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +3 -0
  409. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +28 -16
  410. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
  411. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.d.ts +2 -0
  412. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +39 -34
  413. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.cjs +0 -0
  414. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.d.ts +6 -0
  415. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.mjs +0 -0
  416. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.cjs +1 -0
  417. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.d.ts +18 -0
  418. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.mjs +52 -0
  419. package/dist/mediaTypes/html/renderer/style/html-content.cjs +38 -7
  420. package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
  421. package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
  422. package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +6 -13
  423. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  424. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.d.ts +5 -4
  425. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -3
  426. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
  427. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.d.ts +4 -4
  428. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +24 -14
  429. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.cjs +1 -0
  430. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.d.ts +6 -0
  431. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.mjs +4 -0
  432. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.cjs +1 -0
  433. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.d.ts +10 -0
  434. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.mjs +33 -0
  435. package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
  436. package/dist/mediaTypes/pdf/loadPdfDocument.mjs +18 -19
  437. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.d.ts +2 -0
  438. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +1 -1
  439. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
  440. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +2 -2
  441. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
  442. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.d.ts +0 -1
  443. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +0 -3
  444. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  445. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +3 -3
  446. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
  447. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +3 -3
  448. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
  449. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.d.ts +3 -3
  450. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +20 -19
  451. package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
  452. package/dist/mediaTypes/pdf/renderer/PdfRenderer.d.ts +1 -0
  453. package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +20 -20
  454. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
  455. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +51 -50
  456. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
  457. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +55 -56
  458. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.cjs +1 -0
  459. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.d.ts +3 -0
  460. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.mjs +12 -0
  461. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
  462. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.d.ts +4 -0
  463. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +24 -5
  464. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
  465. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +32 -32
  466. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
  467. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +1 -1
  468. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
  469. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +5 -5
  470. package/dist/mediaTypes/pdf/shared/geometry/index.cjs +1 -1
  471. package/dist/mediaTypes/pdf/shared/geometry/index.mjs +2 -2
  472. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.cjs +1 -1
  473. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.d.ts +14 -4
  474. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.mjs +56 -24
  475. package/dist/mediaTypes/pdf/shared/text/pageText.cjs +2 -2
  476. package/dist/mediaTypes/pdf/shared/text/pageText.d.ts +14 -0
  477. package/dist/mediaTypes/pdf/shared/text/pageText.mjs +139 -47
  478. package/dist/node_modules/highlight.js/styles/github-dark.cjs +118 -0
  479. package/dist/node_modules/highlight.js/styles/github-dark.mjs +4 -0
  480. package/dist/node_modules/highlight.js/styles/github.cjs +118 -0
  481. package/dist/node_modules/highlight.js/styles/github.mjs +4 -0
  482. package/dist/pdfjs/package.json +1 -0
  483. package/global.d.ts +3 -1
  484. package/package.json +11 -5
  485. package/types.d.ts +48 -13
  486. package/dist/kernal/device/IEnvironment.d.ts +0 -5
  487. package/dist/kernal/device/IPlatform.d.ts +0 -7
  488. package/dist/kernal/device/WebEnvironment.cjs +0 -1
  489. package/dist/kernal/device/WebEnvironment.d.ts +0 -7
  490. package/dist/kernal/device/WebEnvironment.mjs +0 -22
  491. package/dist/kernal/device/WebPlatform.cjs +0 -1
  492. package/dist/kernal/device/WebPlatform.d.ts +0 -12
  493. package/dist/kernal/device/WebPlatform.mjs +0 -49
  494. package/dist/kernal/progress/IReadingProgressStore.d.ts +0 -7
  495. package/dist/kernal/progress/ReadingProgressStore.cjs +0 -1
  496. package/dist/kernal/progress/ReadingProgressStore.d.ts +0 -12
  497. package/dist/kernal/progress/ReadingProgressStore.mjs +0 -17
  498. package/dist/kernal/storage/IStorage.cjs +0 -1
  499. package/dist/kernal/storage/IStorage.d.ts +0 -21
  500. package/dist/kernal/storage/IStorage.mjs +0 -4
  501. package/dist/kernal/storage/WebStorage.cjs +0 -1
  502. package/dist/kernal/storage/WebStorage.d.ts +0 -31
  503. package/dist/kernal/storage/WebStorage.mjs +0 -165
  504. package/dist/mediaTypes/adjacent.cjs +0 -1
  505. package/dist/mediaTypes/adjacent.d.ts +0 -5
  506. package/dist/mediaTypes/adjacent.mjs +0 -42
  507. package/dist/mediaTypes/html/renderer/image/placeholder.cjs +0 -1
  508. package/dist/mediaTypes/html/renderer/image/placeholder.mjs +0 -4
  509. /package/dist/kernal/{device/IEnvironment.cjs → screen/IFullscreen.cjs} +0 -0
  510. /package/dist/kernal/{device/IEnvironment.mjs → screen/IFullscreen.mjs} +0 -0
  511. /package/dist/kernal/{Debounce.cjs → web/debounce.cjs} +0 -0
  512. /package/dist/kernal/{Debounce.d.ts → web/debounce.d.ts} +0 -0
  513. /package/dist/{kernal/device/IPlatform.cjs → mediaTypes/html/IHtmlSymbolMeasure.cjs} +0 -0
  514. /package/dist/{kernal/device/IPlatform.mjs → mediaTypes/html/IHtmlSymbolMeasure.mjs} +0 -0
  515. /package/dist/{kernal/progress/IReadingProgressStore.cjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.cjs} +0 -0
  516. /package/dist/{kernal/progress/IReadingProgressStore.mjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.mjs} +0 -0
@@ -1,109 +1,67 @@
1
- import { BrowserCapabilities as e } from "../../../../kernal/web/BrowserCapabilities.mjs";
2
- import { EventNames as t } from "../../../../kernal/EventNames.mjs";
3
- import { isNullOrWhiteSpace as n, startsWith as r } from "../../../../kernal/common/text.mjs";
1
+ import { EventNames as e } from "../../../../kernal/EventNames.mjs";
2
+ import { convertArrayBufferToString as t } from "../../../../kernal/common/encoding.mjs";
3
+ import { BrowserCapabilities as n } from "../../../../kernal/web/BrowserCapabilities.mjs";
4
+ import { isNullOrWhiteSpace as r } from "../../../../kernal/common/text.mjs";
4
5
  import { checkIsAbsoluteUrl as i, checkIsBlobUrl as a } from "../../../../kernal/common/url.mjs";
5
6
  import { ElementInitialNumberName as o } from "../../../../kernal/Constants.mjs";
6
7
  import { parseNumber as s } from "../../../../kernal/common/number.mjs";
7
8
  import { compareTagName as c, getDocumentBody as l } from "../../../../kernal/html/finder.mjs";
8
9
  import { injectCssContent as u } from "../../../../kernal/html/injector.mjs";
9
- import { asyncDebounce as d } from "../../../../kernal/Debounce.mjs";
10
- import { getFormatDocument as f } from "../../../../kernal/html/parser.mjs";
11
- import { getImageSize as p } from "../../../../kernal/html/image.mjs";
12
- import { convertArrayBufferToString as m } from "../../../../kernal/common/encoding.mjs";
10
+ import { yieldToMain as d } from "../../../../kernal/web/scheduler.mjs";
11
+ import { asyncDebounce as f } from "../../../../kernal/web/debounce.mjs";
12
+ import { getFormatDocument as p } from "../../../../kernal/html/parser.mjs";
13
+ import { getImageSize as m } from "../../../../kernal/html/image.mjs";
13
14
  import { HtmlSettings as h } from "../../HtmlSettings.mjs";
14
15
  import { ContentLayoutCssVariableNames as g } from "../style/ContentLayoutCssVariableNames.mjs";
15
16
  import _ from "./error-image.mjs";
17
+ import { createHtmlPlaceholderImageUrl as v, isHtmlPlaceholderImageUrl as y } from "./htmlImagePlaceholderUrl.mjs";
18
+ import { getImageFitStyles as b, getImageForcedHeightCss as x, getImageHeightRatioExpr as S } from "./htmlImageFitStyles.mjs";
16
19
  //#region mediaTypes/html/renderer/image/HtmlImageLoader.ts
17
- var v = "lhx-svg", y = "imageSizes-", b = 5, x = class {
18
- constructor(n, r, i) {
19
- this.documentsProvider = n, this.rendererViewport = r, this.htmlOptions = i, this.documentImageSizesSummaries = /* @__PURE__ */ new Map(), this.blobUrls = /* @__PURE__ */ new Map(), this.isDisposed = !1, this.resetImageSizeTasks = [], this.onDocumentDisposing = (e) => {
20
- this.revokeDocumentBlobUrls(e);
20
+ var C = "lhx-svg", w = 5, T = `.${C} {max-width: var(${g.ColumnBoxWidth}) !important; width: auto !important; height: auto !important; }`, E = "*,p,div{text-align:center;margin-block:0 !important;margin-inline:auto !important;text-indent:0 !important;padding:0 !important;line-height:0 !important}", D = (e) => r(e) ? !0 : y(e), O = (e) => {
21
+ let t = e.querySelectorAll("img, image");
22
+ return t.length > 0 ? [...t] : [...e.getElementsByTagName("img"), ...e.getElementsByTagName("image")];
23
+ }, k = (e) => c(e.tagName, "IMAGE"), A = (e, t, n = !1) => {
24
+ let r = e.style;
25
+ if (!r) {
26
+ let r = Object.entries(t).map(([e, t]) => n ? `${e}:${t} !important` : `${e}:${t}`).join(";");
27
+ e.setAttribute("style", r);
28
+ return;
29
+ }
30
+ for (let [e, i] of Object.entries(t)) r.setProperty(e, i, n ? "important" : "");
31
+ }, j = class {
32
+ constructor(e, t, n) {
33
+ this.documentsProvider = e, this.rendererViewport = t, this.htmlOptions = n, this.documentImageSizeMaps = /* @__PURE__ */ new Map(), this.blobUrls = /* @__PURE__ */ new Map(), this.isDisposed = !1, this.onDocumentDisposing = (e) => {
34
+ this.revokeDocumentBlobUrls(e), this.documentImageSizeMaps.delete(e);
21
35
  }, this.onImageElementsVisible = async (e) => {
22
- for (let [t, n] of e.entries()) await this.loadImages(t, n);
23
- }, this.delayLoadOnImageElementsVisible = d(this.onImageElementsVisible, 100), this.onLayoutChange = async () => {
36
+ if (!this.isDisposed) for (let [t, n] of e.entries()) {
37
+ if (this.isDisposed) return;
38
+ await this.loadImages(t, n);
39
+ }
40
+ }, this.delayLoadOnImageElementsVisible = f(this.onImageElementsVisible, 100), this.onLayoutChange = async () => {
24
41
  await this.delayResetAllImageSize();
42
+ }, this.onDocumentLoad = async (e) => {
43
+ this.isDisposed || await this.resetImageSize(e);
25
44
  }, this.resetAllImageSize = async () => {
26
- for (let e of this.documentsProvider.getLoadedDocuments()) await this.resetImageSize(e);
27
- }, this.delayResetAllImageSize = d(this.resetAllImageSize, 100), this.prepareImageSize = async (n, r) => {
28
- u(r, `.${v} {width: 100% !important; height: auto !important; }`, !1, "lhx-svg-style");
29
- let i = [...r.getElementsByTagName("img"), ...r.getElementsByTagName("image")], a = this.getImageSizesSummary(r);
30
- a.total = i.length;
31
- let o = this.documentsProvider.getDocuments().indexOf(n), s = this.getResourceId(), l = await this.getStorage(), d = null;
32
- o >= 0 && l && s && (d = await l.get(y + s, o.toString()));
33
- let f = i.length > 100;
34
- for (let r = 0; r < i.length; r++) {
45
+ if (!this.isDisposed) for (let e of this.documentsProvider.getLoadedDocuments()) {
35
46
  if (this.isDisposed) return;
36
- try {
37
- let a = i[r];
38
- a.parentElement && c(a.parentElement.tagName, "SVG") && a.parentElement.classList.add(v);
39
- let o = this.getImageUrl(a), s = d?.find((e) => e.url == o);
40
- s ||= await this.prefetchImageSize(n, a, !0), s && (this.resetImageStyles(a, s.width, s.height), this.resetInlineImageSize(a)), f && r % 10 == 0 && (this.events.emit(t.ProcessedImageCount, {
41
- doc: n,
42
- totalImageCount: i.length,
43
- processedImageCount: r
44
- }), await e.yieldToMain());
45
- } catch (e) {
46
- this.logger.error(e);
47
- }
48
- }
49
- o >= 0 && l && s && await this.persistImageSizes(l, s, o.toString(), d, a);
50
- }, this.getImageUrl = (e) => {
51
- let t = e.getAttribute("data-preset-preview-url") == "true";
52
- return c(e.tagName, "IMAGE") ? t ? e.getAttribute("data-src") ?? e.getAttribute("xlink:href") ?? e.getAttribute("href") : e.getAttribute("xlink:href") ?? e.getAttribute("href") : t ? e.getAttribute("data-src") : e.getAttribute("src");
53
- }, this.resetImageStyles = (t, n, r) => {
54
- if (n <= 0 || r <= 0 || !e.supportCssAspectRatio()) return;
55
- this.setWidthAndHeight(t, n, r);
56
- let i = t;
57
- if (c(t.tagName, "IMAGE") && (i = t.parentElement), !i) return;
58
- i.setAttribute("width", `${n}`), i.setAttribute("height", `${r}`);
59
- let a = n / r, { columnWidth: o, columnHeight: s } = this.getColumnMetrics(), l = r;
60
- o > 0 && n > o && (l = o / n * r);
61
- let u = s > 0 ? `min(${l}px,${s}px)` : `${l}px`, d = `calc(100% * var(${g.MaxImageWidthRatio}))`;
62
- i.getAttribute("style") ? (i.style.width = d, i.style.height = "auto", i.style.maxWidth = d, i.style.maxHeight = u, i.style.aspectRatio = `${a}`) : i.setAttribute("style", `max-width:${d};height:auto;max-height:${u};aspect-ratio:${a};width:${d}`);
63
- }, this.resetImageWidthHeight = (e) => {
64
- e.image.style ? (e.image.style.setProperty("width", "auto", "important"), e.image.style.setProperty("max-width", "100%", "important"), e.image.style.setProperty("max-height", "100%", "important")) : e.image.setAttribute("style", "width:auto !important;max-width:100% !important;max-height:100% !important"), this.resetImageHeight(e.image, e.columnWidth, e.columnHeight, this.htmlOptions.maxImageHeightRatio);
65
- }, this.flushResetImageSizeTasks = async () => {
66
- if (e.supportCssAspectRatio()) {
67
- this.resetImageSizeTasks = [];
68
- return;
47
+ await this.resetImageSize(e);
69
48
  }
70
- for (; this.resetImageSizeTasks.length > 0;) {
71
- if (this.isDisposed) {
72
- this.resetImageSizeTasks = [];
73
- return;
74
- }
75
- let t = this.resetImageSizeTasks.shift();
76
- if (!t) break;
77
- this.resetImageWidthHeight(t), await e.yieldToMain();
78
- }
79
- }, this.resetImageSize = async (e) => {
80
- let t = e.getContentContainer()?.ownerDocument;
81
- if (!t || !l(t)) return;
82
- let { columnWidth: n, columnHeight: r } = this.getColumnMetrics(), i = [...t.getElementsByTagName("img"), ...t.getElementsByTagName("image")];
83
- if (this.checkIsOnlyOneImageInDocument(t)) {
84
- let t = i[0];
85
- this.handleOnlyOneImageInDocument(n, r, t), await this.loadSingleImage(e, t);
86
- return;
87
- }
88
- for (let e of i) this.resetImageSizeTasks.push({
89
- image: e,
90
- columnWidth: n,
91
- columnHeight: r
92
- });
93
- await this.flushResetImageSizeTasks();
94
- for (let t = 0; t < Math.min(b, i.length); t++) await this.loadSingleImage(e, i[t]);
95
- }, this.events = this.documentsProvider.owner.events, this.logger = this.documentsProvider.owner.loggerFactory.getLogger(this.constructor.name), this.bindEvents();
49
+ }, this.delayResetAllImageSize = f(this.resetAllImageSize, 100), this.events = this.documentsProvider.owner.events, this.logger = this.documentsProvider.owner.loggerFactory.getLogger(this.constructor.name), this.bindEvents();
96
50
  }
97
51
  bindEvents() {
98
- this.events.on(t.LayoutChange, this.onLayoutChange), this.events.on(t.DocumentDisposing, this.onDocumentDisposing), this.events.on(t.ImageElementsVisible, this.delayLoadOnImageElementsVisible);
52
+ this.events.on(e.LayoutChange, this.onLayoutChange), this.events.on(e.DocumentLoad, this.onDocumentLoad), this.events.on(e.DocumentDisposing, this.onDocumentDisposing), this.events.on(e.ImageElementsVisible, this.delayLoadOnImageElementsVisible);
99
53
  }
100
54
  unbindEvents() {
101
- this.events.off(t.LayoutChange, this.onLayoutChange), this.events.off(t.DocumentDisposing, this.onDocumentDisposing), this.events.off(t.ImageElementsVisible, this.delayLoadOnImageElementsVisible);
55
+ this.events.off(e.LayoutChange, this.onLayoutChange), this.events.off(e.DocumentLoad, this.onDocumentLoad), this.events.off(e.DocumentDisposing, this.onDocumentDisposing), this.events.off(e.ImageElementsVisible, this.delayLoadOnImageElementsVisible);
102
56
  }
103
57
  addBlobUrl(e, t) {
104
58
  if (!a(t)) return;
105
59
  let n = this.blobUrls.get(e);
106
- n ? n.push(t) : this.blobUrls.set(e, [t]);
60
+ if (!n) {
61
+ this.blobUrls.set(e, [t]);
62
+ return;
63
+ }
64
+ n.indexOf(t) < 0 && n.push(t);
107
65
  }
108
66
  revokeDocumentBlobUrls(e) {
109
67
  let t = this.blobUrls.get(e);
@@ -112,89 +70,131 @@ var v = "lhx-svg", y = "imageSizes-", b = 5, x = class {
112
70
  this.blobUrls.delete(e);
113
71
  }
114
72
  }
73
+ removeTrackedBlobUrl(e, t) {
74
+ let n = this.blobUrls.get(e);
75
+ if (!n) return;
76
+ let r = n.filter((e) => e != t);
77
+ if (r.length == 0) {
78
+ this.blobUrls.delete(e);
79
+ return;
80
+ }
81
+ this.blobUrls.set(e, r);
82
+ }
115
83
  async preprocessImages(e) {
116
84
  let t = e, n = (await t.getVirtualContentContainer())?.ownerDocument;
117
- n && (await this.prepareImageSize(t, n), await this.setImagePreviewUrl(n));
118
- }
119
- async setImagePreviewUrl(e) {
120
- let { default: t } = await import("./placeholder.mjs"), n = e.getElementsByTagName("img"), r = e.getElementsByTagName("image");
121
- for (let e = 0; e < n.length; e++) this.applyPreviewUrl(n[e], n[e].getAttribute("src"), t, !1);
122
- for (let e = 0; e < r.length; e++) {
123
- let n = r[e], i = n.getAttribute("xlink:href") ?? n.getAttribute("href");
124
- this.applyPreviewUrl(n, i, t, !0);
85
+ n && (await this.prepareImageSize(t, n), this.setImagePreviewUrl(n), this.applyOnlyOneImageStyles(n));
86
+ }
87
+ setImagePreviewUrl(e) {
88
+ let t = O(e);
89
+ for (let e of t) this.applyPreviewUrl(e, this.getImageUrl(e));
90
+ }
91
+ applyPreviewUrl(e, t) {
92
+ let n = s(e.getAttribute("data-width"), 0), i = s(e.getAttribute("data-height"), 0), a = v(n, i), o = e.getAttribute("data-preview-src");
93
+ if (D(o) && (o = a, e.setAttribute("data-preview-src", a)), !r(t) && !D(t)) {
94
+ let n = e.getAttribute("data-src");
95
+ (r(n) || !D(n)) && e.setAttribute("data-src", t);
96
+ }
97
+ this.setImageSource(e, o), e.setAttribute("data-preset-preview-url", "true"), this.setImageStyle(e);
98
+ }
99
+ setImageSource(e, t) {
100
+ if (c(e.tagName, "IMG")) {
101
+ e.src = t;
102
+ return;
103
+ }
104
+ if (n.isSafari()) {
105
+ e.href.baseVal = t;
106
+ return;
125
107
  }
108
+ e.setAttribute("xlink:href", t);
109
+ }
110
+ setImageStyle(e) {
111
+ let t = e.parentElement;
112
+ t && t.children.length == 1 && r(t.innerText) && (n.supportCssHas() || t.classList.add(h.BreakInsideAvoid), t.style.removeProperty("width"), t.style.removeProperty("height"));
113
+ }
114
+ async prepareImageSize(t, n) {
115
+ u(n, T, !1, "lhx-svg-style"), this.checkIsOnlyOneImageInDocument(n) && u(n, E, !1, "only-one-image");
116
+ let i = O(n), a = this.getImageSizeMap(t), o = await this.loadImageSizes(t);
117
+ if (o) for (let e of o) !r(e.url) && e.width > 0 && a.set(e.url, e);
118
+ let s = i.length > 100;
119
+ for (let n = 0; n < i.length; n++) {
120
+ if (this.isDisposed) return;
121
+ try {
122
+ let r = i[n];
123
+ r.parentElement && c(r.parentElement.tagName, "SVG") && r.parentElement.classList.add(C);
124
+ let o = this.getImageUrl(r), l = o ? a.get(o) : void 0;
125
+ l ||= await this.prefetchImageSize(t, r), l && (this.resetImageStyles(r, l.width, l.height), this.resetInlineImageSize(r)), s && (n % 10 == 0 || n === i.length - 1) && (this.events.emit(e.ProcessedImageCount, {
126
+ doc: t,
127
+ totalImageCount: i.length,
128
+ processedImageCount: n === i.length - 1 ? i.length : n
129
+ }), await d());
130
+ } catch (e) {
131
+ this.logger.error(e);
132
+ }
133
+ }
134
+ let l = Array.from(a.values()).filter((e) => e.width > 0 && !r(e.url));
135
+ if (l.length > 0) {
136
+ if (o && o.length > 0) {
137
+ let e = new Set(o.map((e) => e.url)), n = l.filter((t) => !e.has(t.url));
138
+ n.length > 0 && await this.persistImageSizes(t, n);
139
+ return;
140
+ }
141
+ await this.persistImageSizes(t, l);
142
+ }
143
+ }
144
+ async loadImageSizes(e) {
145
+ return [];
146
+ }
147
+ async persistImageSizes(e, t) {}
148
+ getImageSizeMap(e) {
149
+ let t = this.documentImageSizeMaps.get(e);
150
+ return t || (t = /* @__PURE__ */ new Map(), this.documentImageSizeMaps.set(e, t)), t;
126
151
  }
127
- applyPreviewUrl(e, t, r, i) {
128
- let a = e.getAttribute("data-preview-src");
129
- n(a) && (a = r, e.setAttribute("data-preview-src", r)), t == r ? e.removeAttribute("data-loaded") : e.getAttribute("data-src") != r && e.setAttribute("data-src", t ?? ""), i ? e.setAttribute("xlink:href", a) : e.src = a, e.setAttribute("data-preset-preview-url", "true"), this.setImageStyle(e);
130
- }
131
- setImageStyle(t) {
132
- let r = t.parentElement;
133
- r && r.children.length == 1 && n(r.innerText) && (e.supportCssHas() || r.classList.add(h.BreakInsideAvoid), r.style.removeProperty("width"), r.style.removeProperty("height"));
134
- }
135
- async persistImageSizes(e, t, n, r, i) {
136
- let a = Array.from(i.descriptors.values()).filter((e) => e.width > 0);
137
- if (a.length == 0) return;
138
- let o = y + t;
139
- if (r && r.length > 0) {
140
- let t = new Set(r.map((e) => e.url)), i = a.filter((e) => !t.has(e.url));
141
- i.length > 0 && (r.push(...i), await e.set(o, n, r));
142
- } else await e.set(o, n, a);
143
- }
144
- getResourceId() {
145
- let e = this.documentsProvider.owner.context;
146
- return n(e.simpleId) ? e.id : e.simpleId;
147
- }
148
- async getStorage() {
149
- return await this.documentsProvider.owner.services.get("storage");
150
- }
151
- getImageSizesSummary(e) {
152
- let t = this.documentImageSizesSummaries.get(e);
153
- return t || (t = {
154
- total: 0,
155
- checkedCount: 0,
156
- descriptors: /* @__PURE__ */ new Map()
157
- }, this.documentImageSizesSummaries.set(e, t)), t;
158
- }
159
- async prefetchImageSize(e, t, n) {
160
- let r = this.getImageUrl(t), a = t.getAttribute("data-width");
152
+ getImageUrl(e) {
153
+ let t = e.getAttribute("data-preset-preview-url") == "true";
154
+ return k(e) ? t ? e.getAttribute("data-src") ?? e.getAttribute("xlink:href") ?? e.getAttribute("href") ?? "" : e.getAttribute("xlink:href") ?? e.getAttribute("href") ?? "" : t ? e.getAttribute("data-src") ?? "" : e.getAttribute("src") ?? "";
155
+ }
156
+ async prefetchImageSize(e, t) {
157
+ let n = this.getImageUrl(t);
158
+ if (r(n)) return;
159
+ let a = t.getAttribute("data-width");
161
160
  if (a != null) {
162
- let e = s(t.getAttribute("data-height"), 0);
163
- return this.addImageDescriptor(t, r, s(a, 0), e, !0);
161
+ let r = s(a, 0), i = s(t.getAttribute("data-height"), 0);
162
+ return this.addImageDescriptor(e, n, r, i);
164
163
  }
165
- if (!n) return this.addImageDescriptor(t, r, 0, 0, !1);
166
- let o = this.getImageSizesSummary(t.ownerDocument).descriptors.get(r);
164
+ let o = this.getImageSizeMap(e).get(n);
167
165
  if (o) return o;
168
166
  let c = 0, l = 0;
169
167
  try {
170
- if (i(r)) {
171
- let e = await p(r);
168
+ if (i(n)) {
169
+ let e = await m(n);
172
170
  c = e.width, l = e.height;
173
171
  } else {
174
- let t = await e.fileParser.getFile(r, e.url, "blob"), n = t && t.size > 0 ? t : _;
172
+ let t = await e.fileParser.getFile(n, e.url, "blob"), r = t && t.size > 0 ? t : _;
175
173
  try {
176
- let e = await p(n);
174
+ let e = await m(r);
177
175
  c = e.width, l = e.height;
178
176
  } catch {}
179
177
  }
180
178
  } catch (e) {
181
179
  this.logger.error(e);
182
180
  }
183
- return this.addImageDescriptor(t, r, c, l, c <= 0);
184
- }
185
- revokeObjectURL(e) {
186
- if (!(!e || !r(e, "blob:", !0))) try {
187
- URL.revokeObjectURL(e);
188
- } catch {}
181
+ return this.addImageDescriptor(e, n, c, l);
182
+ }
183
+ revokeObjectURL(e, t) {
184
+ if (a(e)) {
185
+ try {
186
+ URL.revokeObjectURL(e);
187
+ } catch {}
188
+ t && this.removeTrackedBlobUrl(t, e);
189
+ }
189
190
  }
190
- addImageDescriptor(e, t, n, r, i) {
191
- let a = this.getImageSizesSummary(e.ownerDocument), o = a.descriptors.get(t);
192
- return o ? (!o.checked && i && (a.checkedCount += 1), o.width = n, o.height = r, o.url = t, o.checked = i, o) : (o = {
191
+ addImageDescriptor(e, t, n, r) {
192
+ let i = this.getImageSizeMap(e), a = i.get(t) ?? {
193
193
  url: t,
194
194
  width: n,
195
- height: r,
196
- checked: i
197
- }, i && (a.checkedCount += 1), a.descriptors.set(t, o), o);
195
+ height: r
196
+ };
197
+ return a.url = t, a.width = n, a.height = r, i.set(t, a), a;
198
198
  }
199
199
  setWidthAndHeight(e, t, n) {
200
200
  t > 0 && n > 0 && s(e.getAttribute("data-width"), 0, "parseInt") <= 0 && (e.setAttribute("data-width", `${t}`), e.setAttribute("data-height", `${n}`));
@@ -206,167 +206,277 @@ var v = "lhx-svg", y = "imageSizes-", b = 5, x = class {
206
206
  columnHeight: e.columnHeight
207
207
  };
208
208
  }
209
+ resetImageStyles(e, t, r) {
210
+ if (t <= 0 || r <= 0 || !n.supportCssAspectRatio()) return;
211
+ this.setWidthAndHeight(e, t, r);
212
+ let i = k(e) ? e.parentElement : e;
213
+ i && (i.setAttribute("width", `${t}`), i.setAttribute("height", `${r}`), A(i, b(t, r)));
214
+ }
215
+ resetImageWidthHeight(e, t, n) {
216
+ A(e, {
217
+ width: "auto",
218
+ "max-width": `var(${g.ColumnBoxWidth})`,
219
+ "max-height": `var(${g.ColumnBoxHeight})`
220
+ }, !0), this.resetImageHeight(e, t, n, this.htmlOptions.maxImageHeightRatio);
221
+ }
222
+ async resetImageSize(e) {
223
+ let t = e.getContentContainer()?.ownerDocument;
224
+ if (!t || !l(t)) return;
225
+ let { columnWidth: r, columnHeight: i } = this.getColumnMetrics(), a = this.getOnlyImageInDocument(t);
226
+ if (a) {
227
+ this.handleOnlyOneImageInDocument(r, i, a), await this.loadSingleImage(e, a);
228
+ return;
229
+ }
230
+ let o = O(t);
231
+ if (!n.supportCssAspectRatio()) for (let e of o) {
232
+ if (this.isDisposed) return;
233
+ this.resetImageWidthHeight(e, r, i), await d();
234
+ }
235
+ for (let t = 0; t < Math.min(w, o.length); t++) {
236
+ if (this.isDisposed) return;
237
+ await this.loadSingleImage(e, o[t]);
238
+ }
239
+ }
209
240
  resetInlineImageSize(e) {
210
241
  let t = s(e.getAttribute("data-width"), 0), n = s(e.getAttribute("data-height"), 0);
211
- if (t <= 0 || n <= 0) return;
212
- let r = !1;
213
- (n <= 200 || e.previousSibling?.nodeType == Node.TEXT_NODE && e.previousSibling.textContent?.trim()?.length > 0 || e.nextSibling?.nodeType == Node.TEXT_NODE && e.nextSibling.textContent?.trim()?.length > 0) && (r = this.checkIsInlineImage(e, t, n).foundInlineImage);
214
- let i = c(e.tagName, "IMG") ? e : e.parentElement;
215
- !r || !i || (e.getAttribute("style") ? (e.style.setProperty("width", "auto", "important"), e.style.setProperty("max-width", "100%", "important"), e.style.setProperty("height", "1em", "important"), e.style.setProperty("margin-block-start", "0", "important"), e.style.setProperty("margin-block-end", "0", "important")) : e.setAttribute("style", "width:auto !important;max-width:100% !important;height:1em !important;margin-block-start:0 !important;margin-block-end:0 !important;"), i.style.setProperty("vertical-align", "-0.2em", "important"), i.setAttribute("data-inline-image", "true"));
216
- }
217
- handleOnlyOneImageInDocument(e, t, r) {
218
- let i = r.ownerDocument, a = l(i);
219
- if (!n(a.getAttribute("data-handled-one-image"))) return;
220
- a.setAttribute("data-handled-one-image", "true"), a.style.setProperty("display", "flex", "important"), a.style.setProperty("height", "100%", "important"), a.style.setProperty("justify-content", "center", "important"), a.style.setProperty("align-items", "center", "important");
221
- let o = r;
222
- c(r.parentElement?.tagName, "SVG") && (o = r.parentElement, r.style.setProperty("width", "auto", "important"), r.style.setProperty("max-width", "100%", "important"), r.style.setProperty("max-height", t + "px", "important"), r.style.setProperty("display", "block", "important")), o.style.setProperty("width", "auto", "important"), o.style.setProperty("max-width", "100%", "important"), o.style.setProperty("display", "block", "important"), o.parentElement && (o.parentElement.style.textAlign = "center"), this.resetImageHeight(r, e, t, .95, !0);
242
+ if (t <= 0 || n <= 0 || n > 200 && !(e.previousSibling?.nodeType == Node.TEXT_NODE && (e.previousSibling.textContent?.trim()?.length ?? 0) > 0 || e.nextSibling?.nodeType == Node.TEXT_NODE && (e.nextSibling.textContent?.trim()?.length ?? 0) > 0) || !this.isInlineImage(e)) return;
243
+ let r = c(e.tagName, "IMG") ? e : e.parentElement;
244
+ r && (A(e, {
245
+ width: "auto",
246
+ "max-width": "100%",
247
+ height: "1em",
248
+ "margin-block-start": "0",
249
+ "margin-block-end": "0"
250
+ }, !0), r.style.setProperty("vertical-align", "-0.2em", "important"), r.setAttribute("data-inline-image", "true"));
251
+ }
252
+ applyOnlyOneImageStyles(e) {
253
+ let t = this.getOnlyImageInDocument(e);
254
+ if (!t) return;
255
+ let { columnWidth: n, columnHeight: r } = this.getColumnMetrics();
256
+ this.handleOnlyOneImageInDocument(n, r, t);
257
+ }
258
+ handleOnlyOneImageInDocument(e, t, n) {
259
+ let r = n.ownerDocument, i = l(r);
260
+ if (!i) return;
261
+ u(r, E, !1, "only-one-image"), i.setAttribute("data-handled-one-image", "true"), A(i, {
262
+ display: "flex",
263
+ height: "100%",
264
+ "justify-content": "center",
265
+ "align-items": "center"
266
+ }, !0), this.clearPercentageSizeAttributes(n);
267
+ let a = n;
268
+ c(n.parentElement?.tagName, "SVG") && (a = n.parentElement, this.clearPercentageSizeAttributes(a), A(n, {
269
+ width: "auto",
270
+ "max-width": `var(${g.ColumnBoxWidth})`,
271
+ "max-height": t + "px",
272
+ display: "block"
273
+ }, !0)), A(a, {
274
+ width: "auto",
275
+ "max-width": `var(${g.ColumnBoxWidth})`,
276
+ display: "block"
277
+ }, !0), a.parentElement && (a.parentElement.style.textAlign = "center"), this.resetImageHeight(n, e, t, .95, !0);
278
+ }
279
+ clearPercentageSizeAttributes(e) {
280
+ for (let t of ["width", "height"]) {
281
+ let n = e.getAttribute(t);
282
+ n && n.includes("%") && e.removeAttribute(t);
283
+ }
223
284
  }
224
285
  resetImageHeight(e, t, n, r, i) {
225
- let a = c(e.tagName, "IMAGE") ? e.parentElement : e;
286
+ let a = k(e) ? e.parentElement : e;
226
287
  if (!a) return;
227
- let o = s(e.getAttribute("data-width"), 0), l = s(e.getAttribute("data-height"), 0);
228
- o <= 0 || l <= 0 || this.forceSetImageHeight(a, t, n, o, l, r, i);
229
- }
230
- forceSetImageHeight(t, n, r, i, a, o, s) {
231
- if (e.supportCssMinMaxFunction()) {
232
- let e;
233
- e = o && s ? `min(calc(${a}px * ${o}),calc(var(${g.ColumnHeight}) * ${o}),calc(var(${g.ColumnWidth}) / ${i} * ${a} * ${o}))` : `min(calc(${a}px * var(${g.MaxImageHeightRatio})),calc(var(${g.ColumnHeight}) * var(${g.MaxImageHeightRatio})),calc(var(${g.ColumnWidth}) / ${i} * ${a} * var(${g.MaxImageHeightRatio})))`, t.style.setProperty("height", e, "important");
234
- } else {
235
- let e = this.calcImageHeight(n, r, i, a) * o;
236
- t.style.setProperty("height", e + "px", "important");
288
+ let { width: o, height: s } = this.getImageIntrinsicSize(e);
289
+ o <= 0 || s <= 0 || (this.setWidthAndHeight(e, o, s), this.forceSetImageHeight(a, t, n, o, s, r, i));
290
+ }
291
+ forceSetImageHeight(e, t, r, i, a, o, s) {
292
+ if (n.supportCssMinMaxFunction()) {
293
+ let t = S(o, s);
294
+ e.style.setProperty("height", x(i, a, t), "important");
295
+ return;
237
296
  }
297
+ let c = this.calcImageHeight(t, r, i, a) * o;
298
+ e.style.setProperty("height", c + "px", "important");
238
299
  }
239
300
  calcImageHeight(e, t, n, r) {
240
301
  return t >= r && e >= n ? r : e / t <= n / r ? e / n * r : t;
241
302
  }
242
- checkIsOnlyOneImageInDocument(e) {
303
+ getImageIntrinsicSize(e) {
304
+ let t = s(e.getAttribute("data-width"), 0), n = s(e.getAttribute("data-height"), 0);
305
+ if (t > 0 && n > 0) return {
306
+ width: t,
307
+ height: n
308
+ };
309
+ if (!k(e)) {
310
+ let t = e;
311
+ if (t.naturalWidth > 0 && t.naturalHeight > 0) return {
312
+ width: t.naturalWidth,
313
+ height: t.naturalHeight
314
+ };
315
+ }
316
+ return {
317
+ width: 0,
318
+ height: 0
319
+ };
320
+ }
321
+ hasNonImageText(e) {
322
+ let t = e.ownerDocument;
323
+ if (!t) return !!e.textContent?.trim();
324
+ let n = t.createTreeWalker(e, NodeFilter.SHOW_TEXT), r = n.nextNode();
325
+ for (; r;) {
326
+ if (r.textContent?.trim()) return !0;
327
+ r = n.nextNode();
328
+ }
329
+ return !1;
330
+ }
331
+ getOnlyImageInDocument(e) {
243
332
  let t = l(e);
244
- return !t || t.textContent.trim() ? !1 : t.getElementsByTagName("img").length == 1 || t.getElementsByTagName("image").length == 1;
333
+ if (!t) return;
334
+ let n = O(t);
335
+ if (n.length == 1 && !(!t.classList.contains("lhx-text-empty") && this.hasNonImageText(t))) return n[0];
336
+ }
337
+ checkIsOnlyOneImageInDocument(e) {
338
+ return !!this.getOnlyImageInDocument(e);
245
339
  }
246
340
  checkIsInlineTag(e) {
247
341
  let t = e.nodeName;
248
- return !n(t) && this.htmlOptions.htmlInlineTags.indexOf(t.toLowerCase()) >= 0;
249
- }
250
- checkIsInlineImage(e, t, n) {
251
- let { foundInlineImage: r, imageHeight: i } = this.getInlineImageProperties(e, n);
252
- if (r) return {
253
- foundInlineImage: r,
254
- imageHeight: i
255
- };
256
- let a = e.parentElement, o = e;
257
- for (; a && !c(a.tagName, "BODY");) {
258
- if (a.children.length > 1 || a.children.length == 1 && a.textContent.trim().length > 0) return this.getInlineImageProperties(o, n);
259
- o = a, a = a.parentElement;
342
+ if (r(t)) return !1;
343
+ let n = t.toLowerCase();
344
+ return n == "img" || n == "image" || this.htmlOptions.htmlInlineTags.indexOf(n) >= 0;
345
+ }
346
+ isInlineImage(e) {
347
+ if (this.hasInlineSiblings(e)) return !0;
348
+ let t = e.parentElement, n = e;
349
+ for (; t && !c(t.tagName, "BODY");) {
350
+ if (t.children.length > 1 || t.children.length == 1 && t.textContent.trim().length > 0) return this.hasInlineSiblings(n);
351
+ n = t, t = t.parentElement;
260
352
  }
261
- return {
262
- foundInlineImage: r,
263
- imageHeight: i
264
- };
353
+ return !1;
265
354
  }
266
355
  findSiblingNodes(e) {
267
- let t = e.previousSibling, r = e.nextSibling;
268
- for (; t != null && !(!n(t.textContent) || t.nodeType == Node.ELEMENT_NODE);) t = t.previousSibling;
269
- for (; r != null && !(!n(r.textContent) || r.nodeType == Node.ELEMENT_NODE);) r = r.nextSibling;
356
+ let t = e.previousSibling, n = e.nextSibling;
357
+ for (; t != null && !(!r(t.textContent) || t.nodeType == Node.ELEMENT_NODE);) t = t.previousSibling;
358
+ for (; n != null && !(!r(n.textContent) || n.nodeType == Node.ELEMENT_NODE);) n = n.nextSibling;
270
359
  return {
271
360
  previousSiblingNode: t,
272
- nextSiblingNode: r
361
+ nextSiblingNode: n
273
362
  };
274
363
  }
275
- getInlineImageProperties(e, t) {
276
- let { previousSiblingNode: r, nextSiblingNode: i } = this.findSiblingNodes(e), a = !1, o;
277
- if (!r && !i) return {
278
- foundInlineImage: a,
279
- imageHeight: o
280
- };
281
- let s = r?.ownerDocument?.defaultView ?? i?.ownerDocument?.defaultView, l;
282
- if (r?.nodeType == Node.TEXT_NODE && !n(r.nodeValue) ? l = r.parentElement : i?.nodeType == Node.TEXT_NODE && !n(i.nodeValue) ? l = i.parentElement : r && this.checkIsInlineTag(r) ? l = r : i && this.checkIsInlineTag(i) && (l = i), !l) return {
283
- foundInlineImage: a,
284
- imageHeight: o
285
- };
286
- let u = 1.25, d = s?.getComputedStyle(l), f, p, m;
287
- d ? (f = parseFloat(d.fontSize), p = parseFloat(d.lineHeight), m = parseFloat(d.height)) : (f = 20, p = f * u, m = p);
288
- let h = p > f * u ? f * u : p;
289
- return o = this.checkElementIsFootnote(e) || c(e.parentElement?.tagName, "A") && (c(e.parentElement?.parentElement?.tagName, "SUB") || c(e.parentElement?.parentElement?.tagName, "SUP")) ? f : m && m <= h ? m : h, t && t < o && (o = t), a = !0, {
290
- foundInlineImage: a,
291
- imageHeight: o
292
- };
293
- }
294
- checkElementIsFootnote(e) {
295
- return e.getAttribute("class")?.indexOf("footnote") >= 0 || e.getAttribute("epub:type") == "noteref" || c(e.tagName, "SUB") || c(e.tagName, "SUP") ? !0 : e.children.length > 0 && this.checkElementIsFootnote(e.children[0]);
364
+ hasInlineSiblings(e) {
365
+ let { previousSiblingNode: t, nextSiblingNode: n } = this.findSiblingNodes(e);
366
+ return !t && !n ? !1 : t?.nodeType == Node.TEXT_NODE && !r(t.nodeValue) || n?.nodeType == Node.TEXT_NODE && !r(n.nodeValue) || t && this.checkIsInlineTag(t) || n && this.checkIsInlineTag(n);
296
367
  }
297
368
  async loadImages(e, t) {
298
369
  let n = e;
299
370
  if (!(!n || !t?.length)) for (let r of t) {
300
371
  if (this.isDisposed || !r) return;
301
372
  let t = r.ownerDocument.defaultView;
302
- if (t) {
303
- if (r instanceof t.HTMLImageElement || r instanceof t.SVGImageElement) {
304
- let e = r.getAttribute(o), t = r.ownerDocument.querySelector(`[${o}='${e}']`);
305
- t && await this.loadSingleImage(n, t);
306
- } else {
307
- let t = r.getElementsByTagName("img");
308
- for (let e = 0; e < t.length; e++) await this.loadSingleImage(n, t[e]);
309
- let i = r.getAttribute(o), a = e.getContentContainer()?.querySelector(`[${o}='${i}']`), s = a && a != r ? a.getElementsByTagName("image") : r.getElementsByTagName("image");
310
- for (let e = 0; e < s.length; e++) await this.loadSingleImage(n, s[e]);
311
- }
373
+ if (!t) continue;
374
+ if (r instanceof t.window.HTMLImageElement || r instanceof t.window.SVGImageElement) {
375
+ let e = this.queryOriginElement(r.ownerDocument, r);
376
+ e && await this.loadSingleImage(n, e);
377
+ continue;
312
378
  }
379
+ let i = r.getElementsByTagName("img");
380
+ for (let e = 0; e < i.length; e++) await this.loadSingleImage(n, i[e]);
381
+ let a = this.queryOriginElement(e.getContentContainer(), r) ?? r, o = a == r ? r.getElementsByTagName("image") : a.getElementsByTagName("image");
382
+ for (let e = 0; e < o.length; e++) await this.loadSingleImage(n, o[e]);
313
383
  }
314
384
  }
315
- async loadSingleImage(t, r) {
316
- if (!r || !t) return;
317
- let a = r.getAttribute("data-load-state");
318
- if (a == "loaded" || a == "loading" || a == "fail") return;
319
- r.setAttribute("data-load-state", "loading"), r.onload = () => {
320
- r.setAttribute("data-load-state", "loaded");
321
- }, r.onerror = () => {
322
- r.setAttribute("data-load-state", "fail");
385
+ queryOriginElement(e, t) {
386
+ let n = t.getAttribute(o);
387
+ return !e || r(n) ? t : e.querySelector(`[data-initial-index='${n}']`) ?? t;
388
+ }
389
+ async loadSingleImage(e, t) {
390
+ if (!t || !e || this.isDisposed) return;
391
+ let n = t.getAttribute("data-load-state");
392
+ if (n == "loaded" || n == "loading" || n == "fail") return;
393
+ let i = this.getImageUrl(t);
394
+ if (r(i)) {
395
+ t.setAttribute("data-load-state", "fail");
396
+ return;
397
+ }
398
+ t.setAttribute("data-load-state", "loading"), t.onload = () => {
399
+ t.setAttribute("data-load-state", "loaded"), this.applyOnlyOneImageStyles(t.ownerDocument);
400
+ }, t.onerror = () => {
401
+ t.setAttribute("data-load-state", "fail");
323
402
  };
324
- let o = r.getAttribute("src") ?? "", s = r.getAttribute("data-src") ?? "";
325
- n(s) || (o = s);
326
- let l = o;
327
- if (!i(l)) {
328
- let e = await t.fileParser.getFile(l, t.url, "blob");
329
- if (e && e.size > 0) {
330
- if (e.type?.toLowerCase() == "image/svg+xml") {
331
- let t = m(await e.arrayBuffer()), n = f(t).querySelector("image");
332
- if (n) {
333
- l = n.getAttribute("xlink:href") ?? n.getAttribute("href");
334
- try {
335
- let e = await p(l), t = e.width, n = e.height;
336
- r.setAttribute("data-width", t.toString()), r.setAttribute("data-height", n.toString());
337
- let { columnWidth: i, columnHeight: a } = this.getColumnMetrics();
338
- this.forceSetImageHeight(r, i, a, t, n, this.htmlOptions.maxImageHeightRatio);
339
- } catch (e) {
340
- this.logger.error(e);
341
- }
342
- } else l = "data:image/svg+xml," + encodeURIComponent(t);
343
- } else l = URL.createObjectURL(e), this.addBlobUrl(t, l);
344
- } else l = _;
403
+ let a = await this.resolveLoadUrl(e, i, t);
404
+ if (this.isDisposed) {
405
+ this.revokeObjectURL(a, e);
406
+ return;
345
407
  }
346
- if (c(r.tagName, "IMG")) {
347
- let e = r;
348
- if (e.src = l, e.decode) try {
349
- await e.decode();
350
- } catch (n) {
351
- this.logger.error("image decode failed", "imageUrl", l, n), this.revokeObjectURL(l), setTimeout(async () => {
352
- try {
353
- let n = await t.fileParser.getFile(o, t.url, "blob");
354
- if (n && n.size > 0) {
355
- let r = URL.createObjectURL(n);
356
- this.addBlobUrl(t, r), e.src = r;
357
- } else e.src = _;
358
- } catch (t) {
359
- this.logger.error(t), e.src = _;
360
- }
361
- }, 500);
408
+ if (c(t.tagName, "IMG")) {
409
+ let n = t;
410
+ if (n.src = a, !await this.waitForImageReady(n)) {
411
+ this.revokeObjectURL(a, e), this.retryLoadAfterDecodeFailure(e, n, i);
412
+ return;
413
+ }
414
+ this.applyOnlyOneImageStyles(t.ownerDocument);
415
+ return;
416
+ }
417
+ this.setImageSource(t, a), this.applyOnlyOneImageStyles(t.ownerDocument);
418
+ }
419
+ waitForImageReady(e) {
420
+ return e.complete ? Promise.resolve(this.isImageUsable(e)) : new Promise((t) => {
421
+ let n = !1, r = (r) => {
422
+ n || (n = !0, e.removeEventListener("load", i), e.removeEventListener("error", a), t(r));
423
+ }, i = () => r(!0), a = () => r(this.isImageUsable(e));
424
+ e.addEventListener("load", i), e.addEventListener("error", a), typeof e.decode == "function" && e.decode().then(() => r(!0)).catch(() => {
425
+ this.isImageUsable(e) && r(!0);
426
+ });
427
+ });
428
+ }
429
+ isImageUsable(e) {
430
+ return e.complete && e.naturalWidth > 0;
431
+ }
432
+ retryLoadAfterDecodeFailure(e, t, n) {
433
+ setTimeout(async () => {
434
+ if (!this.isDisposed) try {
435
+ let r = await e.fileParser.getFile(n, e.url, "blob");
436
+ if (this.isDisposed) return;
437
+ if (r && r.size > 0) {
438
+ let n = URL.createObjectURL(r);
439
+ this.addBlobUrl(e, n), t.src = n;
440
+ } else t.src = _;
441
+ } catch (e) {
442
+ this.logger.error(e), this.isDisposed || (t.src = _);
362
443
  }
363
- } else e.isSafari() ? r.href.baseVal = l : r.setAttribute("xlink:href", l);
444
+ }, 500);
445
+ }
446
+ async resolveLoadUrl(e, t, n) {
447
+ if (i(t)) return t;
448
+ let r = await e.fileParser.getFile(t, e.url, "blob");
449
+ if (!r || r.size <= 0) return _;
450
+ if (r.type?.toLowerCase() == "image/svg+xml") return await this.resolveSvgBlobUrl(e, r, n);
451
+ let a = URL.createObjectURL(r);
452
+ return this.addBlobUrl(e, a), a;
453
+ }
454
+ async resolveSvgBlobUrl(e, n, a) {
455
+ let o = t(await n.arrayBuffer()), s = p(o).querySelector("image");
456
+ if (!s) return "data:image/svg+xml," + encodeURIComponent(o);
457
+ let c = s.getAttribute("xlink:href") ?? s.getAttribute("href") ?? "";
458
+ if (r(c)) return "data:image/svg+xml," + encodeURIComponent(o);
459
+ let l = c, u = c;
460
+ if (!i(c)) {
461
+ let t = await e.fileParser.getFile(c, e.url, "blob");
462
+ if (!t || t.size <= 0) return _;
463
+ u = URL.createObjectURL(t), this.addBlobUrl(e, u), l = t;
464
+ }
465
+ try {
466
+ let e = await m(l);
467
+ a.setAttribute("data-width", e.width.toString()), a.setAttribute("data-height", e.height.toString());
468
+ let { columnWidth: t, columnHeight: n } = this.getColumnMetrics();
469
+ this.forceSetImageHeight(a, t, n, e.width, e.height, this.htmlOptions.maxImageHeightRatio);
470
+ } catch (e) {
471
+ this.logger.error(e);
472
+ }
473
+ return u;
364
474
  }
365
475
  async dispose() {
366
- this.isDisposed = !0, this.unbindEvents(), this.documentImageSizesSummaries.clear(), this.resetImageSizeTasks = [];
476
+ this.isDisposed = !0, this.delayLoadOnImageElementsVisible.cancel(), this.delayResetAllImageSize.cancel(), this.unbindEvents(), this.documentImageSizeMaps.clear();
367
477
  for (let e of [...this.blobUrls.keys()]) this.revokeDocumentBlobUrls(e);
368
478
  this.blobUrls.clear();
369
479
  }
370
480
  };
371
481
  //#endregion
372
- export { x as HtmlImageLoader };
482
+ export { j as HtmlImageLoader };