@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("../../../../kernal/common/uuid.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/common/url.cjs"),r=require("../../../../kernal/common/path.cjs"),i=require("../../../../kernal/common/buffer.cjs"),a=require("../../../../kernal/Constants.cjs"),o=require("../../../../kernal/html/finder.cjs"),s=require("../../../../kernal/html/injector.cjs"),c=require("../../../../kernal/html/style.cjs"),l=require("../../../../kernal/common/encoding.cjs"),u=require("../../HtmlSettings.cjs");var d=class{constructor(e){this.fileParser=e,this.childrenUrls=new Map,this.errorLinks=[],this.docBlobUrls=new Map,this.opaqueDocumentBaseUrls=[]}async preprocess(e){let t=(await e.getVirtualContentContainer())?.ownerDocument;t&&(this.format(t),this.injectBaseUrl(t,e.url),await this.resetCssHref(t,e),await this.resetScriptSrc(t,e))}format(e){let t=e.getElementsByTagName(`*`),n=!1;for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.textContent.trim()||r.classList.add(`lhx-text-empty`),r.style&&(r.style.fontSize||r.style.textIndent)){let e=r.getAttribute(`style`);r.style.fontSize&&(e=c.replaceFontSize(e)),r.style.textIndent&&(e=c.removeTextIndent(e)),r.setAttribute(`style`,e)}o.compareTagName(r.tagName,`TABLE`)&&(r.style.width=`100%`,r.style.height=`auto`),n||(o.compareTagName(r.tagName,`SVG`)||r.children.length==0&&!o.compareTagName(r.parentElement.tagName,`SVG`))&&(n=!0,r.setAttribute(a.LastElementAttributeName,`true`)),r.getAttribute(`epub:type`)==`footnote`&&r.style.setProperty(`display`,`none`)}}async resetCssHref(n,r){let i=n.getElementsByTagName(`link`);for(let a=i.length-1;a>=0;a--){let o=i[a].getAttribute(`href`);if(!i[a].rel||i[a].rel.toLowerCase()!=`stylesheet`||t.isNullOrWhiteSpace(o))continue;let{href:c,cssContent:l,isHref:d}=await this.getActualCssLink(o,r);if(d&&o)i[a].href=c,i[a].setAttribute(u.HtmlSettings.LinkOriginHrefPropertyName,o);else if(l){let t=e.getRandomId(!0);s.injectCssContent(n,l,!1,t),i[a].parentElement?.removeChild(i[a])}}}async getActualCssLink(e,a){if(t.isNullOrWhiteSpace(e)||n.checkIsAbsoluteUrl(e))return{href:e,cssContent:``,isHref:!0};try{let o=await this.fileParser.getFile(e,a.url,`blob`),s=l.convertArrayBufferToString(await o.arrayBuffer()),u=s.matchAll(/url\(["']?(.*?)["']?\)/gi);for(let i of u){let o=i[1];if(this.childrenUrls.get(o))continue;let s=r.getExtension(o);if(s&&s.toLowerCase()==`.css`){if(t.isNullOrWhiteSpace(o)||n.checkIsAbsoluteUrl(o))continue;let{href:e}=await this.getActualCssLink(o,a);this.childrenUrls.set(o,e)}else{let r=n.getFullUrl(o,e);if(!t.startsWithAny(r.toString(),!0,`http://`,`https://`))continue;let i=(r.pathname+r.search).substring(1);if(this.errorLinks.indexOf(i)>=0)continue;try{let e=await this.fileParser.getFile(i,``,`blob`),t=URL.createObjectURL(e);this.childrenUrls.set(o,t)}catch(e){this.errorLinks.indexOf(i)<0&&this.errorLinks.push(i),this.logger.error(e),this.childrenUrls.set(o,r.toString())}}}let d=s.replace(/url\(["']?(.*?)["']?\)/gi,(e,t)=>n.checkIsAbsoluteUrl(t)?e:``);d=c.replaceFontSize(d),d=c.removeTextIndent(d),d=c.appendZeroTextIndentForCenterRightAlign(d);let f=l.convertStringToUint8Array(d),p=i.toBlob(f,{type:`text/css`}),m=URL.createObjectURL(p);return this.childrenUrls.set(e,m),{href:m,cssContent:d,isHref:!1}}catch(t){return this.logger.error(t),{href:e,cssContent:``,isHref:!0}}}async dispose(){this.childrenUrls.clear(),this.errorLinks&&this.errorLinks.splice(0),this.docBlobUrls.clear();for(let e of this.opaqueDocumentBaseUrls)try{URL.revokeObjectURL(e)}catch{}this.opaqueDocumentBaseUrls=[]}async resetScriptSrc(e,t){let r=t.getRoot();r||=``;let i=e.getElementsByTagName(`script`);for(let e=0;e<i.length;e++){let a=i[e].getAttribute(`src`);if(!(!a||a.startsWith(`/`))){if(!n.checkIsAbsoluteUrl(a)){let e=n.getFullUrl(a,r);n.checkIsAbsoluteUrl(r)?a=e.toString():(a=e.pathname+e.search,a=a.substring(1))}if(!n.checkIsAbsoluteUrl(a)){let o=n.getFullUrl(a,r),s=o.pathname+o.search;s=s.substring(1);let c=await this.fileParser.getFile(a,t.url,`blob`),l=URL.createObjectURL(c);i[e].src=l,i[e].setAttribute(u.HtmlSettings.LinkOriginHrefPropertyName,a)}}}}injectBaseUrl(e,r){let i=e.getElementsByTagName(`base`);for(let e=0;e<i.length;e++)if(!t.isNullOrWhiteSpace(i[e].href))return;let a=r;!t.isNullOrWhiteSpace(a)&&n.checkIsAbsoluteUrl(a)||(a=this.createOpaqueDocumentBaseUrl());let c=s.createElement(e,`base`,null,{href:a}),l=o.getDocumentHead(e);l.insertBefore(c,l.firstChild)}createOpaqueDocumentBaseUrl(){let e=URL.createObjectURL(new Blob([`<!doctype html><title></title>`],{type:`text/html`}));return this.opaqueDocumentBaseUrls.push(e),e}};exports.HtmlContentProcessor=d;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/encoding.cjs"),t=require("../../../../kernal/common/uuid.cjs"),n=require("../../../../kernal/common/text.cjs"),r=require("../../../../kernal/common/url.cjs"),i=require("../../../../kernal/common/path.cjs"),a=require("../../../../kernal/common/buffer.cjs"),o=require("../../../../kernal/Constants.cjs"),s=require("../../../../kernal/html/finder.cjs"),c=require("../../../../kernal/html/injector.cjs"),l=require("../../../../kernal/html/style.cjs"),u=require("../../HtmlSettings.cjs");var d=class{constructor(e){this.fileParser=e,this.childrenUrls=new Map,this.errorLinks=[],this.docBlobUrls=new Map,this.opaqueDocumentBaseUrls=[]}async preprocess(e){let t=(await e.getVirtualContentContainer())?.ownerDocument;t&&(this.format(t),this.injectBaseUrl(t,e.url),await this.resetCssHref(t,e),await this.resetScriptSrc(t,e))}format(e){let t=e.getElementsByTagName(`*`),n=!1;for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.textContent.trim()||r.classList.add(`lhx-text-empty`),r.style&&(r.style.fontSize||r.style.textIndent)){let e=r.getAttribute(`style`);r.style.fontSize&&(e=l.replaceFontSize(e)),r.style.textIndent&&(e=l.removeTextIndent(e)),r.setAttribute(`style`,e)}s.compareTagName(r.tagName,`TABLE`)&&(r.style.width=`100%`,r.style.height=`auto`),n||(s.compareTagName(r.tagName,`SVG`)||r.children.length==0&&!s.compareTagName(r.parentElement.tagName,`SVG`))&&(n=!0,r.setAttribute(o.LastElementAttributeName,`true`)),r.getAttribute(`epub:type`)==`footnote`&&r.style.setProperty(`display`,`none`)}}async resetCssHref(e,r){let i=e.getElementsByTagName(`link`);for(let a=i.length-1;a>=0;a--){let o=i[a].getAttribute(`href`);if(!i[a].rel||i[a].rel.toLowerCase()!=`stylesheet`||n.isNullOrWhiteSpace(o))continue;let{href:s,cssContent:l,isHref:d}=await this.getActualCssLink(o,r);if(d&&o)i[a].href=s,i[a].setAttribute(u.HtmlSettings.LinkOriginHrefPropertyName,o);else if(l){let n=t.getRandomId(!0);c.injectCssContent(e,l,!1,n),i[a].parentElement?.removeChild(i[a])}}}async getActualCssLink(t,o){if(n.isNullOrWhiteSpace(t)||r.checkIsAbsoluteUrl(t))return{href:t,cssContent:``,isHref:!0};try{let s=await this.fileParser.getFile(t,o.url,`blob`),c=e.convertArrayBufferToString(await s.arrayBuffer()),u=c.matchAll(/url\(["']?(.*?)["']?\)/gi);for(let e of u){let a=e[1];if(this.childrenUrls.get(a))continue;let s=i.getExtension(a);if(s&&s.toLowerCase()==`.css`){if(n.isNullOrWhiteSpace(a)||r.checkIsAbsoluteUrl(a))continue;let{href:e}=await this.getActualCssLink(a,o);this.childrenUrls.set(a,e)}else{let e=r.getFullUrl(a,t);if(!n.startsWithAny(e.toString(),!0,`http://`,`https://`))continue;let i=(e.pathname+e.search).substring(1);if(this.errorLinks.indexOf(i)>=0)continue;try{let e=await this.fileParser.getFile(i,``,`blob`),t=URL.createObjectURL(e);this.childrenUrls.set(a,t)}catch(t){this.errorLinks.indexOf(i)<0&&this.errorLinks.push(i),this.logger.error(t),this.childrenUrls.set(a,e.toString())}}}let d=c.replace(/url\(["']?(.*?)["']?\)/gi,(e,t)=>r.checkIsAbsoluteUrl(t)?e:``);d=l.replaceFontSize(d),d=l.removeTextIndent(d),d=l.appendZeroTextIndentForCenterRightAlign(d);let f=e.convertStringToUint8Array(d),p=a.toBlob(f,{type:`text/css`}),m=URL.createObjectURL(p);return this.childrenUrls.set(t,m),{href:m,cssContent:d,isHref:!1}}catch(e){return this.logger.error(e),{href:t,cssContent:``,isHref:!0}}}async dispose(){this.childrenUrls.clear(),this.errorLinks&&this.errorLinks.splice(0),this.docBlobUrls.clear();for(let e of this.opaqueDocumentBaseUrls)try{URL.revokeObjectURL(e)}catch{}this.opaqueDocumentBaseUrls=[]}async resetScriptSrc(e,t){let n=t.getRoot();n||=``;let i=e.getElementsByTagName(`script`);for(let e=0;e<i.length;e++){let a=i[e].getAttribute(`src`);if(!(!a||a.startsWith(`/`))){if(!r.checkIsAbsoluteUrl(a)){let e=r.getFullUrl(a,n);r.checkIsAbsoluteUrl(n)?a=e.toString():(a=e.pathname+e.search,a=a.substring(1))}if(!r.checkIsAbsoluteUrl(a)){let o=r.getFullUrl(a,n),s=o.pathname+o.search;s=s.substring(1);let c=await this.fileParser.getFile(a,t.url,`blob`),l=URL.createObjectURL(c);i[e].src=l,i[e].setAttribute(u.HtmlSettings.LinkOriginHrefPropertyName,a)}}}}injectBaseUrl(e,t){let i=e.getElementsByTagName(`base`);for(let e=0;e<i.length;e++)if(!n.isNullOrWhiteSpace(i[e].href))return;let a=t;!n.isNullOrWhiteSpace(a)&&r.checkIsAbsoluteUrl(a)||(a=this.createOpaqueDocumentBaseUrl());let o=c.createElement(e,`base`,null,{href:a}),l=s.getDocumentHead(e);l.insertBefore(o,l.firstChild)}createOpaqueDocumentBaseUrl(){let e=URL.createObjectURL(new Blob([`<!doctype html><title></title>`],{type:`text/html`}));return this.opaqueDocumentBaseUrls.push(e),e}};exports.HtmlContentProcessor=d;
@@ -1,13 +1,13 @@
1
- import { getRandomId as e } from "../../../../kernal/common/uuid.mjs";
2
- import { isNullOrWhiteSpace as t, startsWithAny as n } from "../../../../kernal/common/text.mjs";
3
- import { checkIsAbsoluteUrl as r, getFullUrl as i } from "../../../../kernal/common/url.mjs";
4
- import { getExtension as a } from "../../../../kernal/common/path.mjs";
5
- import { toBlob as o } from "../../../../kernal/common/buffer.mjs";
6
- import { LastElementAttributeName as s } from "../../../../kernal/Constants.mjs";
7
- import { compareTagName as c, getDocumentHead as l } from "../../../../kernal/html/finder.mjs";
8
- import { createElement as u, injectCssContent as d } from "../../../../kernal/html/injector.mjs";
9
- import { appendZeroTextIndentForCenterRightAlign as f, removeTextIndent as p, replaceFontSize as m } from "../../../../kernal/html/style.mjs";
10
- import { convertArrayBufferToString as h, convertStringToUint8Array as g } from "../../../../kernal/common/encoding.mjs";
1
+ import { convertArrayBufferToString as e, convertStringToUint8Array as t } from "../../../../kernal/common/encoding.mjs";
2
+ import { getRandomId as n } from "../../../../kernal/common/uuid.mjs";
3
+ import { isNullOrWhiteSpace as r, startsWithAny as i } from "../../../../kernal/common/text.mjs";
4
+ import { checkIsAbsoluteUrl as a, getFullUrl as o } from "../../../../kernal/common/url.mjs";
5
+ import { getExtension as s } from "../../../../kernal/common/path.mjs";
6
+ import { toBlob as c } from "../../../../kernal/common/buffer.mjs";
7
+ import { LastElementAttributeName as l } from "../../../../kernal/Constants.mjs";
8
+ import { compareTagName as u, getDocumentHead as d } from "../../../../kernal/html/finder.mjs";
9
+ import { createElement as f, injectCssContent as p } from "../../../../kernal/html/injector.mjs";
10
+ import { appendZeroTextIndentForCenterRightAlign as m, removeTextIndent as h, replaceFontSize as g } from "../../../../kernal/html/style.mjs";
11
11
  import { HtmlSettings as _ } from "../../HtmlSettings.mjs";
12
12
  //#region mediaTypes/html/renderer/html/HtmlContentProcessor.ts
13
13
  var v = class {
@@ -24,64 +24,64 @@ var v = class {
24
24
  let r = t[e];
25
25
  if (r.textContent.trim() || r.classList.add("lhx-text-empty"), r.style && (r.style.fontSize || r.style.textIndent)) {
26
26
  let e = r.getAttribute("style");
27
- r.style.fontSize && (e = m(e)), r.style.textIndent && (e = p(e)), r.setAttribute("style", e);
27
+ r.style.fontSize && (e = g(e)), r.style.textIndent && (e = h(e)), r.setAttribute("style", e);
28
28
  }
29
- c(r.tagName, "TABLE") && (r.style.width = "100%", r.style.height = "auto"), n || (c(r.tagName, "SVG") || r.children.length == 0 && !c(r.parentElement.tagName, "SVG")) && (n = !0, r.setAttribute(s, "true")), r.getAttribute("epub:type") == "footnote" && r.style.setProperty("display", "none");
29
+ u(r.tagName, "TABLE") && (r.style.width = "100%", r.style.height = "auto"), n || (u(r.tagName, "SVG") || r.children.length == 0 && !u(r.parentElement.tagName, "SVG")) && (n = !0, r.setAttribute(l, "true")), r.getAttribute("epub:type") == "footnote" && r.style.setProperty("display", "none");
30
30
  }
31
31
  }
32
- async resetCssHref(n, r) {
33
- let i = n.getElementsByTagName("link");
32
+ async resetCssHref(e, t) {
33
+ let i = e.getElementsByTagName("link");
34
34
  for (let a = i.length - 1; a >= 0; a--) {
35
35
  let o = i[a].getAttribute("href");
36
- if (!i[a].rel || i[a].rel.toLowerCase() != "stylesheet" || t(o)) continue;
37
- let { href: s, cssContent: c, isHref: l } = await this.getActualCssLink(o, r);
36
+ if (!i[a].rel || i[a].rel.toLowerCase() != "stylesheet" || r(o)) continue;
37
+ let { href: s, cssContent: c, isHref: l } = await this.getActualCssLink(o, t);
38
38
  if (l && o) i[a].href = s, i[a].setAttribute(_.LinkOriginHrefPropertyName, o);
39
39
  else if (c) {
40
- let t = e(!0);
41
- d(n, c, !1, t), i[a].parentElement?.removeChild(i[a]);
40
+ let t = n(!0);
41
+ p(e, c, !1, t), i[a].parentElement?.removeChild(i[a]);
42
42
  }
43
43
  }
44
44
  }
45
- async getActualCssLink(e, s) {
46
- if (t(e) || r(e)) return {
47
- href: e,
45
+ async getActualCssLink(n, l) {
46
+ if (r(n) || a(n)) return {
47
+ href: n,
48
48
  cssContent: "",
49
49
  isHref: !0
50
50
  };
51
51
  try {
52
- let c = await this.fileParser.getFile(e, s.url, "blob"), l = h(await c.arrayBuffer()), u = l.matchAll(/url\(["']?(.*?)["']?\)/gi);
53
- for (let o of u) {
54
- let c = o[1];
55
- if (this.childrenUrls.get(c)) continue;
56
- let l = a(c);
57
- if (l && l.toLowerCase() == ".css") {
58
- if (t(c) || r(c)) continue;
59
- let { href: e } = await this.getActualCssLink(c, s);
60
- this.childrenUrls.set(c, e);
52
+ let u = await this.fileParser.getFile(n, l.url, "blob"), d = e(await u.arrayBuffer()), f = d.matchAll(/url\(["']?(.*?)["']?\)/gi);
53
+ for (let e of f) {
54
+ let t = e[1];
55
+ if (this.childrenUrls.get(t)) continue;
56
+ let c = s(t);
57
+ if (c && c.toLowerCase() == ".css") {
58
+ if (r(t) || a(t)) continue;
59
+ let { href: e } = await this.getActualCssLink(t, l);
60
+ this.childrenUrls.set(t, e);
61
61
  } else {
62
- let t = i(c, e);
63
- if (!n(t.toString(), !0, "http://", "https://")) continue;
64
- let r = (t.pathname + t.search).substring(1);
62
+ let e = o(t, n);
63
+ if (!i(e.toString(), !0, "http://", "https://")) continue;
64
+ let r = (e.pathname + e.search).substring(1);
65
65
  if (this.errorLinks.indexOf(r) >= 0) continue;
66
66
  try {
67
- let e = await this.fileParser.getFile(r, "", "blob"), t = URL.createObjectURL(e);
68
- this.childrenUrls.set(c, t);
69
- } catch (e) {
70
- this.errorLinks.indexOf(r) < 0 && this.errorLinks.push(r), this.logger.error(e), this.childrenUrls.set(c, t.toString());
67
+ let e = await this.fileParser.getFile(r, "", "blob"), n = URL.createObjectURL(e);
68
+ this.childrenUrls.set(t, n);
69
+ } catch (n) {
70
+ this.errorLinks.indexOf(r) < 0 && this.errorLinks.push(r), this.logger.error(n), this.childrenUrls.set(t, e.toString());
71
71
  }
72
72
  }
73
73
  }
74
- let d = l.replace(/url\(["']?(.*?)["']?\)/gi, (e, t) => r(t) ? e : "");
75
- d = m(d), d = p(d), d = f(d);
76
- let _ = g(d), v = o(_, { type: "text/css" }), y = URL.createObjectURL(v);
77
- return this.childrenUrls.set(e, y), {
74
+ let p = d.replace(/url\(["']?(.*?)["']?\)/gi, (e, t) => a(t) ? e : "");
75
+ p = g(p), p = h(p), p = m(p);
76
+ let _ = t(p), v = c(_, { type: "text/css" }), y = URL.createObjectURL(v);
77
+ return this.childrenUrls.set(n, y), {
78
78
  href: y,
79
- cssContent: d,
79
+ cssContent: p,
80
80
  isHref: !1
81
81
  };
82
- } catch (t) {
83
- return this.logger.error(t), {
84
- href: e,
82
+ } catch (e) {
83
+ return this.logger.error(e), {
84
+ href: n,
85
85
  cssContent: "",
86
86
  isHref: !0
87
87
  };
@@ -97,29 +97,29 @@ var v = class {
97
97
  async resetScriptSrc(e, t) {
98
98
  let n = t.getRoot();
99
99
  n ||= "";
100
- let a = e.getElementsByTagName("script");
101
- for (let e = 0; e < a.length; e++) {
102
- let o = a[e].getAttribute("src");
103
- if (!(!o || o.startsWith("/"))) {
104
- if (!r(o)) {
105
- let e = i(o, n);
106
- r(n) ? o = e.toString() : (o = e.pathname + e.search, o = o.substring(1));
100
+ let r = e.getElementsByTagName("script");
101
+ for (let e = 0; e < r.length; e++) {
102
+ let i = r[e].getAttribute("src");
103
+ if (!(!i || i.startsWith("/"))) {
104
+ if (!a(i)) {
105
+ let e = o(i, n);
106
+ a(n) ? i = e.toString() : (i = e.pathname + e.search, i = i.substring(1));
107
107
  }
108
- if (!r(o)) {
109
- let r = i(o, n), s = r.pathname + r.search;
108
+ if (!a(i)) {
109
+ let a = o(i, n), s = a.pathname + a.search;
110
110
  s = s.substring(1);
111
- let c = await this.fileParser.getFile(o, t.url, "blob"), l = URL.createObjectURL(c);
112
- a[e].src = l, a[e].setAttribute(_.LinkOriginHrefPropertyName, o);
111
+ let c = await this.fileParser.getFile(i, t.url, "blob"), l = URL.createObjectURL(c);
112
+ r[e].src = l, r[e].setAttribute(_.LinkOriginHrefPropertyName, i);
113
113
  }
114
114
  }
115
115
  }
116
116
  }
117
- injectBaseUrl(e, n) {
118
- let i = e.getElementsByTagName("base");
119
- for (let e = 0; e < i.length; e++) if (!t(i[e].href)) return;
120
- let a = n;
121
- !t(a) && r(a) || (a = this.createOpaqueDocumentBaseUrl());
122
- let o = u(e, "base", null, { href: a }), s = l(e);
117
+ injectBaseUrl(e, t) {
118
+ let n = e.getElementsByTagName("base");
119
+ for (let e = 0; e < n.length; e++) if (!r(n[e].href)) return;
120
+ let i = t;
121
+ !r(i) && a(i) || (i = this.createOpaqueDocumentBaseUrl());
122
+ let o = f(e, "base", null, { href: i }), s = d(e);
123
123
  s.insertBefore(o, s.firstChild);
124
124
  }
125
125
  createOpaqueDocumentBaseUrl() {
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/html/injector.cjs"),n=require("../../../../kernal/common/data.cjs"),r=require("../layout/ViewportCssVariableNames.cjs");var i=`<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><title></title></head><body>{custom-htmls}</body></html>`,a=e=>i.replace(`{custom-htmls}`,e),o=e=>{let t=`<div style="min-height:50px;display:flex;justify-content:center;align-items:center;">The document is too big(`+n.formatFileSize(e)+`), can't be loaded.</div>`;return i.replace(`{custom-htmls}`,t)},s=(n,i,a)=>{let o=t.createElement(n,`iframe`,i);return e.BrowserCapabilities.isFirefox()?o.setAttribute(`src`,`javascript:`):o.setAttribute(`src`,`about:blank`),o.setAttribute(`data-role`,`content`),o.setAttribute(`frameborder`,`0`),o.setAttribute(`border`,`0`),o.setAttribute(`width`,`100%`),o.setAttribute(`height`,`100%`),o.setAttribute(`style`,`display:block`),a?o.style.setProperty(`width`,`100%`):o.style.setProperty(`width`,`var(`+r.ViewportCssVariableNames.ContentContainerWidth+`)`),o.style.setProperty(`height`,`var(`+r.ViewportCssVariableNames.ContentContainerHeight+`)`),o};exports.createIframe=s,exports.getHtmlTemplate=a,exports.getTooBigHtmlTemplate=o,exports.htmlTemplate=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/data.cjs"),t=require("../../../../kernal/web/BrowserCapabilities.cjs"),n=require("../../../../kernal/html/injector.cjs"),r=require("../layout/ViewportCssVariableNames.cjs");var i=`<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><title></title></head><body>{custom-htmls}</body></html>`,a=e=>i.replace(`{custom-htmls}`,e),o=t=>{let n=`<div style="min-height:50px;display:flex;justify-content:center;align-items:center;">The document is too big(`+e.formatFileSize(t)+`), can't be loaded.</div>`;return i.replace(`{custom-htmls}`,n)},s=(e,i,a,o)=>{let s=n.createElement(e,`iframe`,i);return t.BrowserCapabilities.isFirefox()?s.setAttribute(`src`,`javascript:`):s.setAttribute(`src`,`about:blank`),s.setAttribute(`data-role`,`content`),s.setAttribute(`frameborder`,`0`),s.setAttribute(`border`,`0`),s.setAttribute(`width`,`100%`),s.setAttribute(`height`,`100%`),s.setAttribute(`style`,`display:block`),o?.iframeGrow==`width`?(s.style.setProperty(`width`,`var(`+r.ViewportCssVariableNames.ContentContainerWidth+`)`),s.style.setProperty(`height`,`var(`+r.ViewportCssVariableNames.ContentContainerHeight+`)`)):o?.iframeGrow==`height`?(s.style.setProperty(`width`,`var(`+r.ViewportCssVariableNames.ContentContainerWidth+`)`),s.style.setProperty(`height`,`auto`)):a?(s.style.setProperty(`width`,`100%`),s.style.setProperty(`height`,`var(`+r.ViewportCssVariableNames.ContentContainerHeight+`)`)):(s.style.setProperty(`width`,`var(`+r.ViewportCssVariableNames.ContentContainerWidth+`)`),s.style.setProperty(`height`,`var(`+r.ViewportCssVariableNames.ContentContainerHeight+`)`)),s};exports.createIframe=s,exports.getHtmlTemplate=a,exports.getTooBigHtmlTemplate=o,exports.htmlTemplate=i;
@@ -1,4 +1,6 @@
1
+ import { ILayoutGeometry } from '../layout/geometry/ILayoutGeometry';
2
+
1
3
  export declare const htmlTemplate = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title></title></head><body>{custom-htmls}</body></html>";
2
4
  export declare const getHtmlTemplate: (customHtmls: string) => string;
3
5
  export declare const getTooBigHtmlTemplate: (contentLength: number) => string;
4
- export declare const createIframe: (ownerDocument: Document, iframeId: string, forceScroll: boolean) => HTMLIFrameElement;
6
+ export declare const createIframe: (ownerDocument: Document, iframeId: string, forceScroll: boolean, geometry?: ILayoutGeometry) => HTMLIFrameElement;
@@ -1,14 +1,14 @@
1
- import { BrowserCapabilities as e } from "../../../../kernal/web/BrowserCapabilities.mjs";
2
- import { createElement as t } from "../../../../kernal/html/injector.mjs";
3
- import { formatFileSize as n } from "../../../../kernal/common/data.mjs";
1
+ import { formatFileSize as e } from "../../../../kernal/common/data.mjs";
2
+ import { BrowserCapabilities as t } from "../../../../kernal/web/BrowserCapabilities.mjs";
3
+ import { createElement as n } from "../../../../kernal/html/injector.mjs";
4
4
  import { ViewportCssVariableNames as r } from "../layout/ViewportCssVariableNames.mjs";
5
5
  //#region mediaTypes/html/renderer/html/template.ts
6
- var i = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title></title></head><body>{custom-htmls}</body></html>", a = (e) => i.replace("{custom-htmls}", e), o = (e) => {
7
- let t = "<div style=\"min-height:50px;display:flex;justify-content:center;align-items:center;\">The document is too big(" + n(e) + "), can't be loaded.</div>";
8
- return i.replace("{custom-htmls}", t);
9
- }, s = (n, i, a) => {
10
- let o = t(n, "iframe", i);
11
- return e.isFirefox() ? o.setAttribute("src", "javascript:") : o.setAttribute("src", "about:blank"), o.setAttribute("data-role", "content"), o.setAttribute("frameborder", "0"), o.setAttribute("border", "0"), o.setAttribute("width", "100%"), o.setAttribute("height", "100%"), o.setAttribute("style", "display:block"), a ? o.style.setProperty("width", "100%") : o.style.setProperty("width", "var(" + r.ContentContainerWidth + ")"), o.style.setProperty("height", "var(" + r.ContentContainerHeight + ")"), o;
6
+ var i = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title></title></head><body>{custom-htmls}</body></html>", a = (e) => i.replace("{custom-htmls}", e), o = (t) => {
7
+ let n = "<div style=\"min-height:50px;display:flex;justify-content:center;align-items:center;\">The document is too big(" + e(t) + "), can't be loaded.</div>";
8
+ return i.replace("{custom-htmls}", n);
9
+ }, s = (e, i, a, o) => {
10
+ let s = n(e, "iframe", i);
11
+ return t.isFirefox() ? s.setAttribute("src", "javascript:") : s.setAttribute("src", "about:blank"), s.setAttribute("data-role", "content"), s.setAttribute("frameborder", "0"), s.setAttribute("border", "0"), s.setAttribute("width", "100%"), s.setAttribute("height", "100%"), s.setAttribute("style", "display:block"), o?.iframeGrow == "width" ? (s.style.setProperty("width", "var(" + r.ContentContainerWidth + ")"), s.style.setProperty("height", "var(" + r.ContentContainerHeight + ")")) : o?.iframeGrow == "height" ? (s.style.setProperty("width", "var(" + r.ContentContainerWidth + ")"), s.style.setProperty("height", "auto")) : a ? (s.style.setProperty("width", "100%"), s.style.setProperty("height", "var(" + r.ContentContainerHeight + ")")) : (s.style.setProperty("width", "var(" + r.ContentContainerWidth + ")"), s.style.setProperty("height", "var(" + r.ContentContainerHeight + ")")), s;
12
12
  };
13
13
  //#endregion
14
14
  export { s as createIframe, a as getHtmlTemplate, o as getTooBigHtmlTemplate, i as htmlTemplate };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/EventNames.cjs"),n=require("../../../../kernal/common/text.cjs"),r=require("../../../../kernal/common/url.cjs"),i=require("../../../../kernal/Constants.cjs"),a=require("../../../../kernal/common/number.cjs"),o=require("../../../../kernal/html/finder.cjs"),s=require("../../../../kernal/html/injector.cjs"),c=require("../../../../kernal/html/parser.cjs"),l=require("../../../../kernal/html/image.cjs"),u=require("../../../../kernal/common/encoding.cjs"),d=require("../../HtmlSettings.cjs"),f=require("../style/ContentLayoutCssVariableNames.cjs"),p=require("./error-image.cjs");let m=require("perfect-debounce");var h=`lhx-svg`,g=`imageSizes-`,_=5,v=class{constructor(n,r,i){this.documentsProvider=n,this.rendererViewport=r,this.htmlOptions=i,this.documentImageSizesSummaries=new Map,this.blobUrls=new Map,this.isDisposed=!1,this.resetImageSizeTasks=[],this.onDocumentDisposing=e=>{this.revokeDocumentBlobUrls(e)},this.onImageElementsVisible=async e=>{for(let[t,n]of e.entries())await this.loadImages(t,n)},this.delayLoadOnImageElementsVisible=(0,m.debounce)(this.onImageElementsVisible,100),this.onLayoutChange=async()=>{await this.delayResetAllImageSize()},this.resetAllImageSize=async()=>{for(let e of this.documentsProvider.getLoadedDocuments())await this.resetImageSize(e)},this.delayResetAllImageSize=(0,m.debounce)(this.resetAllImageSize,100),this.prepareImageSize=async(n,r)=>{s.injectCssContent(r,`.${h} {width: 100% !important; height: auto !important; }`,!1,`lhx-svg-style`);let i=[...r.getElementsByTagName(`img`),...r.getElementsByTagName(`image`)],a=this.getImageSizesSummary(r);a.total=i.length;let c=this.documentsProvider.getDocuments().indexOf(n),l=this.getResourceId(),u=await this.getStorage(),d=null;c>=0&&u&&l&&(d=await u.get(g+l,c.toString()));let f=i.length>100;for(let r=0;r<i.length;r++){if(this.isDisposed)return;try{let a=i[r];a.parentElement&&o.compareTagName(a.parentElement.tagName,`SVG`)&&a.parentElement.classList.add(h);let s=this.getImageUrl(a),c=d?.find(e=>e.url==s);c||=await this.prefetchImageSize(n,a,!0),c&&(this.resetImageStyles(a,c.width,c.height),this.resetInlineImageSize(a)),f&&r%10==0&&(this.events.emit(t.EventNames.ProcessedImageCount,{doc:n,totalImageCount:i.length,processedImageCount:r}),await e.BrowserCapabilities.yieldToMain())}catch(e){this.logger.error(e)}}c>=0&&u&&l&&await this.persistImageSizes(u,l,c.toString(),d,a)},this.getImageUrl=e=>{let t=e.getAttribute(`data-preset-preview-url`)==`true`;return o.compareTagName(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`)},this.resetImageStyles=(t,n,r)=>{if(n<=0||r<=0||!e.BrowserCapabilities.supportCssAspectRatio())return;this.setWidthAndHeight(t,n,r);let i=t;if(o.compareTagName(t.tagName,`IMAGE`)&&(i=t.parentElement),!i)return;i.setAttribute(`width`,`${n}`),i.setAttribute(`height`,`${r}`);let a=n/r,{columnWidth:s,columnHeight:c}=this.getColumnMetrics(),l=r;s>0&&n>s&&(l=s/n*r);let u=c>0?`min(${l}px,${c}px)`:`${l}px`,d=`calc(100% * var(${f.ContentLayoutCssVariableNames.MaxImageWidthRatio}))`;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}`)},this.resetImageWidthHeight=e=>{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)},this.flushResetImageSizeTasks=async()=>{if(e.BrowserCapabilities.supportCssAspectRatio()){this.resetImageSizeTasks=[];return}for(;this.resetImageSizeTasks.length>0;){if(this.isDisposed){this.resetImageSizeTasks=[];return}let t=this.resetImageSizeTasks.shift();if(!t)break;this.resetImageWidthHeight(t),await e.BrowserCapabilities.yieldToMain()}},this.resetImageSize=async e=>{let t=e.getContentContainer()?.ownerDocument;if(!t||!o.getDocumentBody(t))return;let{columnWidth:n,columnHeight:r}=this.getColumnMetrics(),i=[...t.getElementsByTagName(`img`),...t.getElementsByTagName(`image`)];if(this.checkIsOnlyOneImageInDocument(t)){let t=i[0];this.handleOnlyOneImageInDocument(n,r,t),await this.loadSingleImage(e,t);return}for(let e of i)this.resetImageSizeTasks.push({image:e,columnWidth:n,columnHeight:r});await this.flushResetImageSizeTasks();for(let t=0;t<Math.min(_,i.length);t++)await this.loadSingleImage(e,i[t])},this.events=this.documentsProvider.owner.events,this.logger=this.documentsProvider.owner.loggerFactory.getLogger(this.constructor.name),this.bindEvents()}bindEvents(){this.events.on(t.EventNames.LayoutChange,this.onLayoutChange),this.events.on(t.EventNames.DocumentDisposing,this.onDocumentDisposing),this.events.on(t.EventNames.ImageElementsVisible,this.delayLoadOnImageElementsVisible)}unbindEvents(){this.events.off(t.EventNames.LayoutChange,this.onLayoutChange),this.events.off(t.EventNames.DocumentDisposing,this.onDocumentDisposing),this.events.off(t.EventNames.ImageElementsVisible,this.delayLoadOnImageElementsVisible)}addBlobUrl(e,t){if(!r.checkIsBlobUrl(t))return;let n=this.blobUrls.get(e);n?n.push(t):this.blobUrls.set(e,[t])}revokeDocumentBlobUrls(e){let t=this.blobUrls.get(e);if(t){for(let e of t)this.revokeObjectURL(e);this.blobUrls.delete(e)}}async preprocessImages(e){let t=e,n=(await t.getVirtualContentContainer())?.ownerDocument;n&&(await this.prepareImageSize(t,n),await this.setImagePreviewUrl(n))}async setImagePreviewUrl(e){let{default:t}=await Promise.resolve().then(()=>require("./placeholder.cjs")),n=e.getElementsByTagName(`img`),r=e.getElementsByTagName(`image`);for(let e=0;e<n.length;e++)this.applyPreviewUrl(n[e],n[e].getAttribute(`src`),t,!1);for(let e=0;e<r.length;e++){let n=r[e],i=n.getAttribute(`xlink:href`)??n.getAttribute(`href`);this.applyPreviewUrl(n,i,t,!0)}}applyPreviewUrl(e,t,r,i){let a=e.getAttribute(`data-preview-src`);n.isNullOrWhiteSpace(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)}setImageStyle(t){let r=t.parentElement;r&&r.children.length==1&&n.isNullOrWhiteSpace(r.innerText)&&(e.BrowserCapabilities.supportCssHas()||r.classList.add(d.HtmlSettings.BreakInsideAvoid),r.style.removeProperty(`width`),r.style.removeProperty(`height`))}async persistImageSizes(e,t,n,r,i){let a=Array.from(i.descriptors.values()).filter(e=>e.width>0);if(a.length==0)return;let o=g+t;if(r&&r.length>0){let t=new Set(r.map(e=>e.url)),i=a.filter(e=>!t.has(e.url));i.length>0&&(r.push(...i),await e.set(o,n,r))}else await e.set(o,n,a)}getResourceId(){let e=this.documentsProvider.owner.context;return n.isNullOrWhiteSpace(e.simpleId)?e.id:e.simpleId}async getStorage(){return await this.documentsProvider.owner.services.get(`storage`)}getImageSizesSummary(e){let t=this.documentImageSizesSummaries.get(e);return t||(t={total:0,checkedCount:0,descriptors:new Map},this.documentImageSizesSummaries.set(e,t)),t}async prefetchImageSize(e,t,n){let i=this.getImageUrl(t),o=t.getAttribute(`data-width`);if(o!=null){let e=a.parseNumber(t.getAttribute(`data-height`),0);return this.addImageDescriptor(t,i,a.parseNumber(o,0),e,!0)}if(!n)return this.addImageDescriptor(t,i,0,0,!1);let s=this.getImageSizesSummary(t.ownerDocument).descriptors.get(i);if(s)return s;let c=0,u=0;try{if(r.checkIsAbsoluteUrl(i)){let e=await l.getImageSize(i);c=e.width,u=e.height}else{let t=await e.fileParser.getFile(i,e.url,`blob`),n=t&&t.size>0?t:p.default;try{let e=await l.getImageSize(n);c=e.width,u=e.height}catch{}}}catch(e){this.logger.error(e)}return this.addImageDescriptor(t,i,c,u,c<=0)}revokeObjectURL(e){if(!(!e||!n.startsWith(e,`blob:`,!0)))try{URL.revokeObjectURL(e)}catch{}}addImageDescriptor(e,t,n,r,i){let a=this.getImageSizesSummary(e.ownerDocument),o=a.descriptors.get(t);return o?(!o.checked&&i&&(a.checkedCount+=1),o.width=n,o.height=r,o.url=t,o.checked=i,o):(o={url:t,width:n,height:r,checked:i},i&&(a.checkedCount+=1),a.descriptors.set(t,o),o)}setWidthAndHeight(e,t,n){t>0&&n>0&&a.parseNumber(e.getAttribute(`data-width`),0,`parseInt`)<=0&&(e.setAttribute(`data-width`,`${t}`),e.setAttribute(`data-height`,`${n}`))}getColumnMetrics(){let e=this.rendererViewport.getLayoutMetrics();return{columnWidth:e.columnWidth,columnHeight:e.columnHeight}}resetInlineImageSize(e){let t=a.parseNumber(e.getAttribute(`data-width`),0),n=a.parseNumber(e.getAttribute(`data-height`),0);if(t<=0||n<=0)return;let r=!1;(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);let i=o.compareTagName(e.tagName,`IMG`)?e:e.parentElement;!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`))}handleOnlyOneImageInDocument(e,t,r){let i=r.ownerDocument,a=o.getDocumentBody(i);if(!n.isNullOrWhiteSpace(a.getAttribute(`data-handled-one-image`)))return;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`);let s=r;o.compareTagName(r.parentElement?.tagName,`SVG`)&&(s=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`)),s.style.setProperty(`width`,`auto`,`important`),s.style.setProperty(`max-width`,`100%`,`important`),s.style.setProperty(`display`,`block`,`important`),s.parentElement&&(s.parentElement.style.textAlign=`center`),this.resetImageHeight(r,e,t,.95,!0)}resetImageHeight(e,t,n,r,i){let s=o.compareTagName(e.tagName,`IMAGE`)?e.parentElement:e;if(!s)return;let c=a.parseNumber(e.getAttribute(`data-width`),0),l=a.parseNumber(e.getAttribute(`data-height`),0);c<=0||l<=0||this.forceSetImageHeight(s,t,n,c,l,r,i)}forceSetImageHeight(t,n,r,i,a,o,s){if(e.BrowserCapabilities.supportCssMinMaxFunction()){let e;e=o&&s?`min(calc(${a}px * ${o}),calc(var(${f.ContentLayoutCssVariableNames.ColumnHeight}) * ${o}),calc(var(${f.ContentLayoutCssVariableNames.ColumnWidth}) / ${i} * ${a} * ${o}))`:`min(calc(${a}px * var(${f.ContentLayoutCssVariableNames.MaxImageHeightRatio})),calc(var(${f.ContentLayoutCssVariableNames.ColumnHeight}) * var(${f.ContentLayoutCssVariableNames.MaxImageHeightRatio})),calc(var(${f.ContentLayoutCssVariableNames.ColumnWidth}) / ${i} * ${a} * var(${f.ContentLayoutCssVariableNames.MaxImageHeightRatio})))`,t.style.setProperty(`height`,e,`important`)}else{let e=this.calcImageHeight(n,r,i,a)*o;t.style.setProperty(`height`,e+`px`,`important`)}}calcImageHeight(e,t,n,r){return t>=r&&e>=n?r:e/t<=n/r?e/n*r:t}checkIsOnlyOneImageInDocument(e){let t=o.getDocumentBody(e);return!t||t.textContent.trim()?!1:t.getElementsByTagName(`img`).length==1||t.getElementsByTagName(`image`).length==1}checkIsInlineTag(e){let t=e.nodeName;return!n.isNullOrWhiteSpace(t)&&this.htmlOptions.htmlInlineTags.indexOf(t.toLowerCase())>=0}checkIsInlineImage(e,t,n){let{foundInlineImage:r,imageHeight:i}=this.getInlineImageProperties(e,n);if(r)return{foundInlineImage:r,imageHeight:i};let a=e.parentElement,s=e;for(;a&&!o.compareTagName(a.tagName,`BODY`);){if(a.children.length>1||a.children.length==1&&a.textContent.trim().length>0)return this.getInlineImageProperties(s,n);s=a,a=a.parentElement}return{foundInlineImage:r,imageHeight:i}}findSiblingNodes(e){let t=e.previousSibling,r=e.nextSibling;for(;t!=null&&!(!n.isNullOrWhiteSpace(t.textContent)||t.nodeType==Node.ELEMENT_NODE);)t=t.previousSibling;for(;r!=null&&!(!n.isNullOrWhiteSpace(r.textContent)||r.nodeType==Node.ELEMENT_NODE);)r=r.nextSibling;return{previousSiblingNode:t,nextSiblingNode:r}}getInlineImageProperties(e,t){let{previousSiblingNode:r,nextSiblingNode:i}=this.findSiblingNodes(e),a=!1,s;if(!r&&!i)return{foundInlineImage:a,imageHeight:s};let c=r?.ownerDocument?.defaultView??i?.ownerDocument?.defaultView,l;if(r?.nodeType==Node.TEXT_NODE&&!n.isNullOrWhiteSpace(r.nodeValue)?l=r.parentElement:i?.nodeType==Node.TEXT_NODE&&!n.isNullOrWhiteSpace(i.nodeValue)?l=i.parentElement:r&&this.checkIsInlineTag(r)?l=r:i&&this.checkIsInlineTag(i)&&(l=i),!l)return{foundInlineImage:a,imageHeight:s};let u=1.25,d=c?.getComputedStyle(l),f,p,m;d?(f=parseFloat(d.fontSize),p=parseFloat(d.lineHeight),m=parseFloat(d.height)):(f=20,p=f*u,m=p);let h=p>f*u?f*u:p;return s=this.checkElementIsFootnote(e)||o.compareTagName(e.parentElement?.tagName,`A`)&&(o.compareTagName(e.parentElement?.parentElement?.tagName,`SUB`)||o.compareTagName(e.parentElement?.parentElement?.tagName,`SUP`))?f:m&&m<=h?m:h,t&&t<s&&(s=t),a=!0,{foundInlineImage:a,imageHeight:s}}checkElementIsFootnote(e){return e.getAttribute(`class`)?.indexOf(`footnote`)>=0||e.getAttribute(`epub:type`)==`noteref`||o.compareTagName(e.tagName,`SUB`)||o.compareTagName(e.tagName,`SUP`)?!0:e.children.length>0&&this.checkElementIsFootnote(e.children[0])}async loadImages(e,t){let n=e;if(!(!n||!t?.length))for(let r of t){if(this.isDisposed||!r)return;let t=r.ownerDocument.defaultView;if(t){if(r instanceof t.HTMLImageElement||r instanceof t.SVGImageElement){let e=r.getAttribute(i.ElementInitialNumberName),t=r.ownerDocument.querySelector(`[${i.ElementInitialNumberName}='${e}']`);t&&await this.loadSingleImage(n,t)}else{let t=r.getElementsByTagName(`img`);for(let e=0;e<t.length;e++)await this.loadSingleImage(n,t[e]);let a=r.getAttribute(i.ElementInitialNumberName),o=e.getContentContainer()?.querySelector(`[${i.ElementInitialNumberName}='${a}']`),s=o&&o!=r?o.getElementsByTagName(`image`):r.getElementsByTagName(`image`);for(let e=0;e<s.length;e++)await this.loadSingleImage(n,s[e])}}}}async loadSingleImage(t,i){if(!i||!t)return;let a=i.getAttribute(`data-load-state`);if(a==`loaded`||a==`loading`||a==`fail`)return;i.setAttribute(`data-load-state`,`loading`),i.onload=()=>{i.setAttribute(`data-load-state`,`loaded`)},i.onerror=()=>{i.setAttribute(`data-load-state`,`fail`)};let s=i.getAttribute(`src`)??``,d=i.getAttribute(`data-src`)??``;n.isNullOrWhiteSpace(d)||(s=d);let f=s;if(!r.checkIsAbsoluteUrl(f)){let e=await t.fileParser.getFile(f,t.url,`blob`);if(e&&e.size>0){if(e.type?.toLowerCase()==`image/svg+xml`){let t=u.convertArrayBufferToString(await e.arrayBuffer()),n=c.getFormatDocument(t).querySelector(`image`);if(n){f=n.getAttribute(`xlink:href`)??n.getAttribute(`href`);try{let e=await l.getImageSize(f),t=e.width,n=e.height;i.setAttribute(`data-width`,t.toString()),i.setAttribute(`data-height`,n.toString());let{columnWidth:r,columnHeight:a}=this.getColumnMetrics();this.forceSetImageHeight(i,r,a,t,n,this.htmlOptions.maxImageHeightRatio)}catch(e){this.logger.error(e)}}else f=`data:image/svg+xml,`+encodeURIComponent(t)}else f=URL.createObjectURL(e),this.addBlobUrl(t,f)}else f=p.default}if(o.compareTagName(i.tagName,`IMG`)){let e=i;if(e.src=f,e.decode)try{await e.decode()}catch(n){this.logger.error(`image decode failed`,`imageUrl`,f,n),this.revokeObjectURL(f),setTimeout(async()=>{try{let n=await t.fileParser.getFile(s,t.url,`blob`);if(n&&n.size>0){let r=URL.createObjectURL(n);this.addBlobUrl(t,r),e.src=r}else e.src=p.default}catch(t){this.logger.error(t),e.src=p.default}},500)}}else e.BrowserCapabilities.isSafari()?i.href.baseVal=f:i.setAttribute(`xlink:href`,f)}async dispose(){this.isDisposed=!0,this.unbindEvents(),this.documentImageSizesSummaries.clear(),this.resetImageSizeTasks=[];for(let e of[...this.blobUrls.keys()])this.revokeDocumentBlobUrls(e);this.blobUrls.clear()}};exports.HtmlImageLoader=v;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../../../../kernal/common/encoding.cjs"),n=require("../../../../kernal/web/BrowserCapabilities.cjs"),r=require("../../../../kernal/common/text.cjs"),i=require("../../../../kernal/common/url.cjs"),a=require("../../../../kernal/Constants.cjs"),o=require("../../../../kernal/common/number.cjs"),s=require("../../../../kernal/html/finder.cjs"),c=require("../../../../kernal/html/injector.cjs"),l=require("../../../../kernal/web/scheduler.cjs"),u=require("../../../../kernal/html/parser.cjs"),d=require("../../../../kernal/html/image.cjs"),f=require("../../HtmlSettings.cjs"),p=require("../style/ContentLayoutCssVariableNames.cjs"),m=require("./error-image.cjs"),h=require("./htmlImagePlaceholderUrl.cjs"),g=require("./htmlImageFitStyles.cjs");let _=require("perfect-debounce");var v=`lhx-svg`,y=5,b=`.${v} {max-width: var(${p.ContentLayoutCssVariableNames.ColumnBoxWidth}) !important; width: auto !important; height: auto !important; }`,x=`*,p,div{text-align:center;margin-block:0 !important;margin-inline:auto !important;text-indent:0 !important;padding:0 !important;line-height:0 !important}`,S=e=>r.isNullOrWhiteSpace(e)?!0:h.isHtmlPlaceholderImageUrl(e),C=e=>{let t=e.querySelectorAll(`img, image`);return t.length>0?[...t]:[...e.getElementsByTagName(`img`),...e.getElementsByTagName(`image`)]},w=e=>s.compareTagName(e.tagName,`IMAGE`),T=(e,t,n=!1)=>{let r=e.style;if(!r){let r=Object.entries(t).map(([e,t])=>n?`${e}:${t} !important`:`${e}:${t}`).join(`;`);e.setAttribute(`style`,r);return}for(let[e,i]of Object.entries(t))r.setProperty(e,i,n?`important`:``)},E=class{constructor(e,t,n){this.documentsProvider=e,this.rendererViewport=t,this.htmlOptions=n,this.documentImageSizeMaps=new Map,this.blobUrls=new Map,this.isDisposed=!1,this.onDocumentDisposing=e=>{this.revokeDocumentBlobUrls(e),this.documentImageSizeMaps.delete(e)},this.onImageElementsVisible=async e=>{if(!this.isDisposed)for(let[t,n]of e.entries()){if(this.isDisposed)return;await this.loadImages(t,n)}},this.delayLoadOnImageElementsVisible=(0,_.debounce)(this.onImageElementsVisible,100),this.onLayoutChange=async()=>{await this.delayResetAllImageSize()},this.onDocumentLoad=async e=>{this.isDisposed||await this.resetImageSize(e)},this.resetAllImageSize=async()=>{if(!this.isDisposed)for(let e of this.documentsProvider.getLoadedDocuments()){if(this.isDisposed)return;await this.resetImageSize(e)}},this.delayResetAllImageSize=(0,_.debounce)(this.resetAllImageSize,100),this.events=this.documentsProvider.owner.events,this.logger=this.documentsProvider.owner.loggerFactory.getLogger(this.constructor.name),this.bindEvents()}bindEvents(){this.events.on(e.EventNames.LayoutChange,this.onLayoutChange),this.events.on(e.EventNames.DocumentLoad,this.onDocumentLoad),this.events.on(e.EventNames.DocumentDisposing,this.onDocumentDisposing),this.events.on(e.EventNames.ImageElementsVisible,this.delayLoadOnImageElementsVisible)}unbindEvents(){this.events.off(e.EventNames.LayoutChange,this.onLayoutChange),this.events.off(e.EventNames.DocumentLoad,this.onDocumentLoad),this.events.off(e.EventNames.DocumentDisposing,this.onDocumentDisposing),this.events.off(e.EventNames.ImageElementsVisible,this.delayLoadOnImageElementsVisible)}addBlobUrl(e,t){if(!i.checkIsBlobUrl(t))return;let n=this.blobUrls.get(e);if(!n){this.blobUrls.set(e,[t]);return}n.indexOf(t)<0&&n.push(t)}revokeDocumentBlobUrls(e){let t=this.blobUrls.get(e);if(t){for(let e of t)this.revokeObjectURL(e);this.blobUrls.delete(e)}}removeTrackedBlobUrl(e,t){let n=this.blobUrls.get(e);if(!n)return;let r=n.filter(e=>e!=t);if(r.length==0){this.blobUrls.delete(e);return}this.blobUrls.set(e,r)}async preprocessImages(e){let t=e,n=(await t.getVirtualContentContainer())?.ownerDocument;n&&(await this.prepareImageSize(t,n),this.setImagePreviewUrl(n),this.applyOnlyOneImageStyles(n))}setImagePreviewUrl(e){let t=C(e);for(let e of t)this.applyPreviewUrl(e,this.getImageUrl(e))}applyPreviewUrl(e,t){let n=o.parseNumber(e.getAttribute(`data-width`),0),i=o.parseNumber(e.getAttribute(`data-height`),0),a=h.createHtmlPlaceholderImageUrl(n,i),s=e.getAttribute(`data-preview-src`);if(S(s)&&(s=a,e.setAttribute(`data-preview-src`,a)),!r.isNullOrWhiteSpace(t)&&!S(t)){let n=e.getAttribute(`data-src`);(r.isNullOrWhiteSpace(n)||!S(n))&&e.setAttribute(`data-src`,t)}this.setImageSource(e,s),e.setAttribute(`data-preset-preview-url`,`true`),this.setImageStyle(e)}setImageSource(e,t){if(s.compareTagName(e.tagName,`IMG`)){e.src=t;return}if(n.BrowserCapabilities.isSafari()){e.href.baseVal=t;return}e.setAttribute(`xlink:href`,t)}setImageStyle(e){let t=e.parentElement;t&&t.children.length==1&&r.isNullOrWhiteSpace(t.innerText)&&(n.BrowserCapabilities.supportCssHas()||t.classList.add(f.HtmlSettings.BreakInsideAvoid),t.style.removeProperty(`width`),t.style.removeProperty(`height`))}async prepareImageSize(t,n){c.injectCssContent(n,b,!1,`lhx-svg-style`),this.checkIsOnlyOneImageInDocument(n)&&c.injectCssContent(n,x,!1,`only-one-image`);let i=C(n),a=this.getImageSizeMap(t),o=await this.loadImageSizes(t);if(o)for(let e of o)!r.isNullOrWhiteSpace(e.url)&&e.width>0&&a.set(e.url,e);let u=i.length>100;for(let n=0;n<i.length;n++){if(this.isDisposed)return;try{let r=i[n];r.parentElement&&s.compareTagName(r.parentElement.tagName,`SVG`)&&r.parentElement.classList.add(v);let o=this.getImageUrl(r),c=o?a.get(o):void 0;c||=await this.prefetchImageSize(t,r),c&&(this.resetImageStyles(r,c.width,c.height),this.resetInlineImageSize(r)),u&&(n%10==0||n===i.length-1)&&(this.events.emit(e.EventNames.ProcessedImageCount,{doc:t,totalImageCount:i.length,processedImageCount:n===i.length-1?i.length:n}),await l.yieldToMain())}catch(e){this.logger.error(e)}}let d=Array.from(a.values()).filter(e=>e.width>0&&!r.isNullOrWhiteSpace(e.url));if(d.length>0){if(o&&o.length>0){let e=new Set(o.map(e=>e.url)),n=d.filter(t=>!e.has(t.url));n.length>0&&await this.persistImageSizes(t,n);return}await this.persistImageSizes(t,d)}}async loadImageSizes(e){return[]}async persistImageSizes(e,t){}getImageSizeMap(e){let t=this.documentImageSizeMaps.get(e);return t||(t=new Map,this.documentImageSizeMaps.set(e,t)),t}getImageUrl(e){let t=e.getAttribute(`data-preset-preview-url`)==`true`;return w(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`)??``}async prefetchImageSize(e,t){let n=this.getImageUrl(t);if(r.isNullOrWhiteSpace(n))return;let a=t.getAttribute(`data-width`);if(a!=null){let r=o.parseNumber(a,0),i=o.parseNumber(t.getAttribute(`data-height`),0);return this.addImageDescriptor(e,n,r,i)}let s=this.getImageSizeMap(e).get(n);if(s)return s;let c=0,l=0;try{if(i.checkIsAbsoluteUrl(n)){let e=await d.getImageSize(n);c=e.width,l=e.height}else{let t=await e.fileParser.getFile(n,e.url,`blob`),r=t&&t.size>0?t:m.default;try{let e=await d.getImageSize(r);c=e.width,l=e.height}catch{}}}catch(e){this.logger.error(e)}return this.addImageDescriptor(e,n,c,l)}revokeObjectURL(e,t){if(i.checkIsBlobUrl(e)){try{URL.revokeObjectURL(e)}catch{}t&&this.removeTrackedBlobUrl(t,e)}}addImageDescriptor(e,t,n,r){let i=this.getImageSizeMap(e),a=i.get(t)??{url:t,width:n,height:r};return a.url=t,a.width=n,a.height=r,i.set(t,a),a}setWidthAndHeight(e,t,n){t>0&&n>0&&o.parseNumber(e.getAttribute(`data-width`),0,`parseInt`)<=0&&(e.setAttribute(`data-width`,`${t}`),e.setAttribute(`data-height`,`${n}`))}getColumnMetrics(){let e=this.rendererViewport.getLayoutMetrics();return{columnWidth:e.columnWidth,columnHeight:e.columnHeight}}resetImageStyles(e,t,r){if(t<=0||r<=0||!n.BrowserCapabilities.supportCssAspectRatio())return;this.setWidthAndHeight(e,t,r);let i=w(e)?e.parentElement:e;i&&(i.setAttribute(`width`,`${t}`),i.setAttribute(`height`,`${r}`),T(i,g.getImageFitStyles(t,r)))}resetImageWidthHeight(e,t,n){T(e,{width:`auto`,"max-width":`var(${p.ContentLayoutCssVariableNames.ColumnBoxWidth})`,"max-height":`var(${p.ContentLayoutCssVariableNames.ColumnBoxHeight})`},!0),this.resetImageHeight(e,t,n,this.htmlOptions.maxImageHeightRatio)}async resetImageSize(e){let t=e.getContentContainer()?.ownerDocument;if(!t||!s.getDocumentBody(t))return;let{columnWidth:r,columnHeight:i}=this.getColumnMetrics(),a=this.getOnlyImageInDocument(t);if(a){this.handleOnlyOneImageInDocument(r,i,a),await this.loadSingleImage(e,a);return}let o=C(t);if(!n.BrowserCapabilities.supportCssAspectRatio())for(let e of o){if(this.isDisposed)return;this.resetImageWidthHeight(e,r,i),await l.yieldToMain()}for(let t=0;t<Math.min(y,o.length);t++){if(this.isDisposed)return;await this.loadSingleImage(e,o[t])}}resetInlineImageSize(e){let t=o.parseNumber(e.getAttribute(`data-width`),0),n=o.parseNumber(e.getAttribute(`data-height`),0);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;let r=s.compareTagName(e.tagName,`IMG`)?e:e.parentElement;r&&(T(e,{width:`auto`,"max-width":`100%`,height:`1em`,"margin-block-start":`0`,"margin-block-end":`0`},!0),r.style.setProperty(`vertical-align`,`-0.2em`,`important`),r.setAttribute(`data-inline-image`,`true`))}applyOnlyOneImageStyles(e){let t=this.getOnlyImageInDocument(e);if(!t)return;let{columnWidth:n,columnHeight:r}=this.getColumnMetrics();this.handleOnlyOneImageInDocument(n,r,t)}handleOnlyOneImageInDocument(e,t,n){let r=n.ownerDocument,i=s.getDocumentBody(r);if(!i)return;c.injectCssContent(r,x,!1,`only-one-image`),i.setAttribute(`data-handled-one-image`,`true`),T(i,{display:`flex`,height:`100%`,"justify-content":`center`,"align-items":`center`},!0),this.clearPercentageSizeAttributes(n);let a=n;s.compareTagName(n.parentElement?.tagName,`SVG`)&&(a=n.parentElement,this.clearPercentageSizeAttributes(a),T(n,{width:`auto`,"max-width":`var(${p.ContentLayoutCssVariableNames.ColumnBoxWidth})`,"max-height":t+`px`,display:`block`},!0)),T(a,{width:`auto`,"max-width":`var(${p.ContentLayoutCssVariableNames.ColumnBoxWidth})`,display:`block`},!0),a.parentElement&&(a.parentElement.style.textAlign=`center`),this.resetImageHeight(n,e,t,.95,!0)}clearPercentageSizeAttributes(e){for(let t of[`width`,`height`]){let n=e.getAttribute(t);n&&n.includes(`%`)&&e.removeAttribute(t)}}resetImageHeight(e,t,n,r,i){let a=w(e)?e.parentElement:e;if(!a)return;let{width:o,height:s}=this.getImageIntrinsicSize(e);o<=0||s<=0||(this.setWidthAndHeight(e,o,s),this.forceSetImageHeight(a,t,n,o,s,r,i))}forceSetImageHeight(e,t,r,i,a,o,s){if(n.BrowserCapabilities.supportCssMinMaxFunction()){let t=g.getImageHeightRatioExpr(o,s);e.style.setProperty(`height`,g.getImageForcedHeightCss(i,a,t),`important`);return}let c=this.calcImageHeight(t,r,i,a)*o;e.style.setProperty(`height`,c+`px`,`important`)}calcImageHeight(e,t,n,r){return t>=r&&e>=n?r:e/t<=n/r?e/n*r:t}getImageIntrinsicSize(e){let t=o.parseNumber(e.getAttribute(`data-width`),0),n=o.parseNumber(e.getAttribute(`data-height`),0);if(t>0&&n>0)return{width:t,height:n};if(!w(e)){let t=e;if(t.naturalWidth>0&&t.naturalHeight>0)return{width:t.naturalWidth,height:t.naturalHeight}}return{width:0,height:0}}hasNonImageText(e){let t=e.ownerDocument;if(!t)return!!e.textContent?.trim();let n=t.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=n.nextNode();for(;r;){if(r.textContent?.trim())return!0;r=n.nextNode()}return!1}getOnlyImageInDocument(e){let t=s.getDocumentBody(e);if(!t)return;let n=C(t);if(n.length==1&&!(!t.classList.contains(`lhx-text-empty`)&&this.hasNonImageText(t)))return n[0]}checkIsOnlyOneImageInDocument(e){return!!this.getOnlyImageInDocument(e)}checkIsInlineTag(e){let t=e.nodeName;if(r.isNullOrWhiteSpace(t))return!1;let n=t.toLowerCase();return n==`img`||n==`image`||this.htmlOptions.htmlInlineTags.indexOf(n)>=0}isInlineImage(e){if(this.hasInlineSiblings(e))return!0;let t=e.parentElement,n=e;for(;t&&!s.compareTagName(t.tagName,`BODY`);){if(t.children.length>1||t.children.length==1&&t.textContent.trim().length>0)return this.hasInlineSiblings(n);n=t,t=t.parentElement}return!1}findSiblingNodes(e){let t=e.previousSibling,n=e.nextSibling;for(;t!=null&&!(!r.isNullOrWhiteSpace(t.textContent)||t.nodeType==Node.ELEMENT_NODE);)t=t.previousSibling;for(;n!=null&&!(!r.isNullOrWhiteSpace(n.textContent)||n.nodeType==Node.ELEMENT_NODE);)n=n.nextSibling;return{previousSiblingNode:t,nextSiblingNode:n}}hasInlineSiblings(e){let{previousSiblingNode:t,nextSiblingNode:n}=this.findSiblingNodes(e);return!t&&!n?!1:t?.nodeType==Node.TEXT_NODE&&!r.isNullOrWhiteSpace(t.nodeValue)||n?.nodeType==Node.TEXT_NODE&&!r.isNullOrWhiteSpace(n.nodeValue)||t&&this.checkIsInlineTag(t)||n&&this.checkIsInlineTag(n)}async loadImages(e,t){let n=e;if(!(!n||!t?.length))for(let r of t){if(this.isDisposed||!r)return;let t=r.ownerDocument.defaultView;if(!t)continue;if(r instanceof t.window.HTMLImageElement||r instanceof t.window.SVGImageElement){let e=this.queryOriginElement(r.ownerDocument,r);e&&await this.loadSingleImage(n,e);continue}let i=r.getElementsByTagName(`img`);for(let e=0;e<i.length;e++)await this.loadSingleImage(n,i[e]);let a=this.queryOriginElement(e.getContentContainer(),r)??r,o=a==r?r.getElementsByTagName(`image`):a.getElementsByTagName(`image`);for(let e=0;e<o.length;e++)await this.loadSingleImage(n,o[e])}}queryOriginElement(e,t){let n=t.getAttribute(a.ElementInitialNumberName);return!e||r.isNullOrWhiteSpace(n)?t:e.querySelector(`[data-initial-index='${n}']`)??t}async loadSingleImage(e,t){if(!t||!e||this.isDisposed)return;let n=t.getAttribute(`data-load-state`);if(n==`loaded`||n==`loading`||n==`fail`)return;let i=this.getImageUrl(t);if(r.isNullOrWhiteSpace(i)){t.setAttribute(`data-load-state`,`fail`);return}t.setAttribute(`data-load-state`,`loading`),t.onload=()=>{t.setAttribute(`data-load-state`,`loaded`),this.applyOnlyOneImageStyles(t.ownerDocument)},t.onerror=()=>{t.setAttribute(`data-load-state`,`fail`)};let a=await this.resolveLoadUrl(e,i,t);if(this.isDisposed){this.revokeObjectURL(a,e);return}if(s.compareTagName(t.tagName,`IMG`)){let n=t;if(n.src=a,!await this.waitForImageReady(n)){this.revokeObjectURL(a,e),this.retryLoadAfterDecodeFailure(e,n,i);return}this.applyOnlyOneImageStyles(t.ownerDocument);return}this.setImageSource(t,a),this.applyOnlyOneImageStyles(t.ownerDocument)}waitForImageReady(e){return e.complete?Promise.resolve(this.isImageUsable(e)):new Promise(t=>{let n=!1,r=r=>{n||(n=!0,e.removeEventListener(`load`,i),e.removeEventListener(`error`,a),t(r))},i=()=>r(!0),a=()=>r(this.isImageUsable(e));e.addEventListener(`load`,i),e.addEventListener(`error`,a),typeof e.decode==`function`&&e.decode().then(()=>r(!0)).catch(()=>{this.isImageUsable(e)&&r(!0)})})}isImageUsable(e){return e.complete&&e.naturalWidth>0}retryLoadAfterDecodeFailure(e,t,n){setTimeout(async()=>{if(!this.isDisposed)try{let r=await e.fileParser.getFile(n,e.url,`blob`);if(this.isDisposed)return;if(r&&r.size>0){let n=URL.createObjectURL(r);this.addBlobUrl(e,n),t.src=n}else t.src=m.default}catch(e){this.logger.error(e),this.isDisposed||(t.src=m.default)}},500)}async resolveLoadUrl(e,t,n){if(i.checkIsAbsoluteUrl(t))return t;let r=await e.fileParser.getFile(t,e.url,`blob`);if(!r||r.size<=0)return m.default;if(r.type?.toLowerCase()==`image/svg+xml`)return await this.resolveSvgBlobUrl(e,r,n);let a=URL.createObjectURL(r);return this.addBlobUrl(e,a),a}async resolveSvgBlobUrl(e,n,a){let o=t.convertArrayBufferToString(await n.arrayBuffer()),s=u.getFormatDocument(o).querySelector(`image`);if(!s)return`data:image/svg+xml,`+encodeURIComponent(o);let c=s.getAttribute(`xlink:href`)??s.getAttribute(`href`)??``;if(r.isNullOrWhiteSpace(c))return`data:image/svg+xml,`+encodeURIComponent(o);let l=c,f=c;if(!i.checkIsAbsoluteUrl(c)){let t=await e.fileParser.getFile(c,e.url,`blob`);if(!t||t.size<=0)return m.default;f=URL.createObjectURL(t),this.addBlobUrl(e,f),l=t}try{let e=await d.getImageSize(l);a.setAttribute(`data-width`,e.width.toString()),a.setAttribute(`data-height`,e.height.toString());let{columnWidth:t,columnHeight:n}=this.getColumnMetrics();this.forceSetImageHeight(a,t,n,e.width,e.height,this.htmlOptions.maxImageHeightRatio)}catch(e){this.logger.error(e)}return f}async dispose(){this.isDisposed=!0,this.delayLoadOnImageElementsVisible.cancel(),this.delayResetAllImageSize.cancel(),this.unbindEvents(),this.documentImageSizeMaps.clear();for(let e of[...this.blobUrls.keys()])this.revokeDocumentBlobUrls(e);this.blobUrls.clear()}};exports.HtmlImageLoader=E;
@@ -3,38 +3,39 @@ import { HtmlOptions } from '../../HtmlOptions';
3
3
  import { IHtmlDocument } from '../IHtmlDocument';
4
4
  import { HtmlLayoutMetrics } from '../layout/HtmlLayoutMetrics';
5
5
  import { IRendererViewport } from '../../../../kernal/IRendererViewport';
6
- import { IHtmlImageLoader } from './IHtmlImageLoader';
6
+ import { IHtmlImageLoader, ImageSizeDescriptor } from './IHtmlImageLoader';
7
7
 
8
8
  export declare class HtmlImageLoader implements IHtmlImageLoader {
9
9
  private readonly documentsProvider;
10
10
  private readonly rendererViewport;
11
11
  private readonly htmlOptions;
12
- private readonly documentImageSizesSummaries;
12
+ private readonly documentImageSizeMaps;
13
13
  private readonly blobUrls;
14
14
  private readonly events;
15
15
  private readonly logger;
16
16
  private isDisposed;
17
- private resetImageSizeTasks;
18
17
  constructor(documentsProvider: IDocumentsProvider<IHtmlDocument>, rendererViewport: IRendererViewport<HtmlLayoutMetrics>, htmlOptions: HtmlOptions);
19
18
  private bindEvents;
20
19
  private unbindEvents;
21
20
  private onDocumentDisposing;
22
21
  private addBlobUrl;
23
22
  private revokeDocumentBlobUrls;
23
+ private removeTrackedBlobUrl;
24
24
  private onImageElementsVisible;
25
25
  private delayLoadOnImageElementsVisible;
26
26
  private onLayoutChange;
27
+ private onDocumentLoad;
27
28
  private resetAllImageSize;
28
29
  private delayResetAllImageSize;
29
30
  preprocessImages(doc: IDocument): Promise<void>;
30
31
  private setImagePreviewUrl;
31
32
  private applyPreviewUrl;
33
+ private setImageSource;
32
34
  private setImageStyle;
33
35
  private prepareImageSize;
34
- private persistImageSizes;
35
- private getResourceId;
36
- private getStorage;
37
- private getImageSizesSummary;
36
+ loadImageSizes(doc: IDocument): Promise<ImageSizeDescriptor[]>;
37
+ persistImageSizes(doc: IDocument, sizes: ImageSizeDescriptor[]): Promise<void>;
38
+ private getImageSizeMap;
38
39
  private getImageUrl;
39
40
  private prefetchImageSize;
40
41
  private revokeObjectURL;
@@ -43,20 +44,29 @@ export declare class HtmlImageLoader implements IHtmlImageLoader {
43
44
  private getColumnMetrics;
44
45
  private resetImageStyles;
45
46
  private resetImageWidthHeight;
46
- private flushResetImageSizeTasks;
47
- resetImageSize: (doc: IDocument) => Promise<void>;
47
+ private resetImageSize;
48
48
  private resetInlineImageSize;
49
+ private applyOnlyOneImageStyles;
49
50
  private handleOnlyOneImageInDocument;
51
+ private clearPercentageSizeAttributes;
50
52
  private resetImageHeight;
51
53
  private forceSetImageHeight;
52
54
  private calcImageHeight;
55
+ private getImageIntrinsicSize;
56
+ private hasNonImageText;
57
+ private getOnlyImageInDocument;
53
58
  private checkIsOnlyOneImageInDocument;
54
59
  private checkIsInlineTag;
55
- private checkIsInlineImage;
60
+ private isInlineImage;
56
61
  private findSiblingNodes;
57
- private getInlineImageProperties;
58
- private checkElementIsFootnote;
62
+ private hasInlineSiblings;
59
63
  loadImages(doc: IDocument, visibleElements: Element[]): Promise<void>;
64
+ private queryOriginElement;
60
65
  private loadSingleImage;
66
+ private waitForImageReady;
67
+ private isImageUsable;
68
+ private retryLoadAfterDecodeFailure;
69
+ private resolveLoadUrl;
70
+ private resolveSvgBlobUrl;
61
71
  dispose(): Promise<void>;
62
72
  }