@foxycape/core 1.1.3 → 1.1.5

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 (502) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  2. package/dist/core.css +2 -1
  3. package/dist/kernal/Constants.cjs +1 -1
  4. package/dist/kernal/Constants.mjs +4 -12
  5. package/dist/kernal/ContentRange.cjs +1 -1
  6. package/dist/kernal/ContentRange.mjs +4 -6
  7. package/dist/kernal/Context.cjs +1 -1
  8. package/dist/kernal/Context.mjs +31 -35
  9. package/dist/kernal/Debounce.cjs +1 -1
  10. package/dist/kernal/Debounce.mjs +31 -37
  11. package/dist/kernal/EventEmitter.cjs +1 -1
  12. package/dist/kernal/EventEmitter.mjs +58 -67
  13. package/dist/kernal/EventNames.cjs +1 -1
  14. package/dist/kernal/EventNames.mjs +178 -6
  15. package/dist/kernal/FileLoader.cjs +1 -1
  16. package/dist/kernal/FileLoader.d.ts +2 -0
  17. package/dist/kernal/FileLoader.mjs +91 -94
  18. package/dist/kernal/IDisposable.cjs +0 -1
  19. package/dist/kernal/IDisposable.mjs +0 -1
  20. package/dist/kernal/IDocument.cjs +1 -1
  21. package/dist/kernal/IDocument.mjs +12 -36
  22. package/dist/kernal/IDocumentsProvider.cjs +0 -1
  23. package/dist/kernal/IDocumentsProvider.mjs +0 -1
  24. package/dist/kernal/IEventEmitter.cjs +0 -1
  25. package/dist/kernal/IEventEmitter.mjs +0 -1
  26. package/dist/kernal/IFileParser.cjs +1 -1
  27. package/dist/kernal/IFileParser.mjs +12 -21
  28. package/dist/kernal/IRenderer.cjs +0 -1
  29. package/dist/kernal/IRenderer.mjs +0 -1
  30. package/dist/kernal/IRendererViewport.cjs +1 -1
  31. package/dist/kernal/IRendererViewport.mjs +4 -5
  32. package/dist/kernal/IStyleProvider.cjs +0 -1
  33. package/dist/kernal/IStyleProvider.mjs +0 -1
  34. package/dist/kernal/ISymbolCalclator.cjs +0 -1
  35. package/dist/kernal/ISymbolCalclator.mjs +0 -1
  36. package/dist/kernal/ITextDocument.cjs +0 -1
  37. package/dist/kernal/ITextDocument.mjs +0 -1
  38. package/dist/kernal/IThemeProvider.cjs +0 -1
  39. package/dist/kernal/IThemeProvider.mjs +0 -1
  40. package/dist/kernal/IWallpaperProvider.cjs +1 -1
  41. package/dist/kernal/IWallpaperProvider.mjs +7 -7
  42. package/dist/kernal/JsonConvert.cjs +1 -1
  43. package/dist/kernal/JsonConvert.mjs +51 -56
  44. package/dist/kernal/LifecycleHooks.cjs +0 -1
  45. package/dist/kernal/LifecycleHooks.mjs +0 -1
  46. package/dist/kernal/LocationState.cjs +1 -1
  47. package/dist/kernal/LocationState.mjs +4 -5
  48. package/dist/kernal/MediaTypeRegistry.cjs +1 -1
  49. package/dist/kernal/MediaTypeRegistry.mjs +39 -64
  50. package/dist/kernal/Metadata.cjs +1 -1
  51. package/dist/kernal/Metadata.mjs +7 -7
  52. package/dist/kernal/OpenOptions.cjs +1 -1
  53. package/dist/kernal/OpenOptions.mjs +4 -5
  54. package/dist/kernal/Options.cjs +1 -1
  55. package/dist/kernal/Options.mjs +39 -16
  56. package/dist/kernal/OptionsProvider.cjs +1 -1
  57. package/dist/kernal/OptionsProvider.mjs +22 -24
  58. package/dist/kernal/Reader.cjs +1 -1
  59. package/dist/kernal/Reader.mjs +238 -284
  60. package/dist/kernal/ReaderInfo.cjs +1 -1
  61. package/dist/kernal/ReaderInfo.mjs +25 -31
  62. package/dist/kernal/Theme.cjs +1 -1
  63. package/dist/kernal/Theme.mjs +80 -29
  64. package/dist/kernal/common/array.cjs +1 -1
  65. package/dist/kernal/common/array.mjs +11 -13
  66. package/dist/kernal/common/buffer.cjs +1 -1
  67. package/dist/kernal/common/buffer.mjs +32 -43
  68. package/dist/kernal/common/data.cjs +1 -1
  69. package/dist/kernal/common/data.mjs +20 -13
  70. package/dist/kernal/common/date.cjs +1 -1
  71. package/dist/kernal/common/date.mjs +40 -50
  72. package/dist/kernal/common/encoding.cjs +1 -1
  73. package/dist/kernal/common/encoding.mjs +29 -36
  74. package/dist/kernal/common/geometry.cjs +1 -1
  75. package/dist/kernal/common/geometry.mjs +28 -30
  76. package/dist/kernal/common/mimetypes.cjs +1 -1
  77. package/dist/kernal/common/mimetypes.mjs +99 -34
  78. package/dist/kernal/common/naming.cjs +1 -1
  79. package/dist/kernal/common/naming.mjs +4 -4
  80. package/dist/kernal/common/number.cjs +1 -1
  81. package/dist/kernal/common/number.mjs +42 -53
  82. package/dist/kernal/common/object.cjs +1 -1
  83. package/dist/kernal/common/object.mjs +20 -25
  84. package/dist/kernal/common/path.cjs +1 -1
  85. package/dist/kernal/common/path.mjs +45 -52
  86. package/dist/kernal/common/regex.cjs +1 -1
  87. package/dist/kernal/common/regex.mjs +15 -25
  88. package/dist/kernal/common/text.cjs +4 -4
  89. package/dist/kernal/common/text.mjs +67 -88
  90. package/dist/kernal/common/tree.cjs +1 -1
  91. package/dist/kernal/common/tree.mjs +13 -13
  92. package/dist/kernal/common/url.cjs +1 -1
  93. package/dist/kernal/common/url.mjs +78 -104
  94. package/dist/kernal/common/uuid.cjs +1 -1
  95. package/dist/kernal/common/uuid.mjs +24 -28
  96. package/dist/kernal/crypto/ICrypto.cjs +1 -1
  97. package/dist/kernal/crypto/ICrypto.mjs +4 -5
  98. package/dist/kernal/crypto/MD5.cjs +1 -1
  99. package/dist/kernal/crypto/MD5.mjs +26 -34
  100. package/dist/kernal/crypto/WebCrypto.cjs +1 -1
  101. package/dist/kernal/crypto/WebCrypto.mjs +77 -105
  102. package/dist/kernal/deepClone/buffer.cjs +1 -1
  103. package/dist/kernal/deepClone/buffer.mjs +7 -25
  104. package/dist/kernal/deepClone/clone.cjs +1 -1
  105. package/dist/kernal/deepClone/clone.mjs +52 -116
  106. package/dist/kernal/deepClone/collection.cjs +1 -1
  107. package/dist/kernal/deepClone/collection.mjs +43 -56
  108. package/dist/kernal/deepClone/detector.cjs +1 -1
  109. package/dist/kernal/deepClone/detector.mjs +8 -16
  110. package/dist/kernal/deepClone/index.cjs +1 -1
  111. package/dist/kernal/deepClone/index.mjs +24 -38
  112. package/dist/kernal/device/IDevice.cjs +1 -1
  113. package/dist/kernal/device/IDevice.d.ts +0 -2
  114. package/dist/kernal/device/IDevice.mjs +4 -5
  115. package/dist/kernal/device/IEnvironment.cjs +0 -1
  116. package/dist/kernal/device/IEnvironment.mjs +0 -1
  117. package/dist/kernal/device/IPlatform.cjs +0 -1
  118. package/dist/kernal/device/IPlatform.mjs +0 -1
  119. package/dist/kernal/device/WebBrowser.cjs +1 -1
  120. package/dist/kernal/device/WebBrowser.d.ts +0 -1
  121. package/dist/kernal/device/WebBrowser.mjs +54 -65
  122. package/dist/kernal/device/WebEnvironment.cjs +1 -1
  123. package/dist/kernal/device/WebEnvironment.mjs +21 -21
  124. package/dist/kernal/device/WebPlatform.cjs +1 -1
  125. package/dist/kernal/device/WebPlatform.mjs +48 -63
  126. package/dist/kernal/html/detector.cjs +1 -1
  127. package/dist/kernal/html/detector.mjs +38 -46
  128. package/dist/kernal/html/dom.cjs +1 -0
  129. package/dist/kernal/html/dom.d.ts +3 -0
  130. package/dist/kernal/html/dom.mjs +13 -0
  131. package/dist/kernal/html/events.cjs +1 -1
  132. package/dist/kernal/html/events.mjs +62 -67
  133. package/dist/kernal/html/finder.cjs +1 -1
  134. package/dist/kernal/html/finder.mjs +93 -134
  135. package/dist/kernal/html/geometry.cjs +1 -1
  136. package/dist/kernal/html/geometry.mjs +340 -384
  137. package/dist/kernal/html/image.cjs +1 -1
  138. package/dist/kernal/html/image.mjs +166 -181
  139. package/dist/kernal/html/injector.cjs +3 -3
  140. package/dist/kernal/html/injector.mjs +92 -109
  141. package/dist/kernal/html/manipulator.cjs +1 -1
  142. package/dist/kernal/html/manipulator.mjs +96 -116
  143. package/dist/kernal/html/parser.cjs +1 -1
  144. package/dist/kernal/html/parser.mjs +61 -60
  145. package/dist/kernal/html/position.cjs +1 -1
  146. package/dist/kernal/html/position.mjs +146 -193
  147. package/dist/kernal/html/selection.cjs +7 -7
  148. package/dist/kernal/html/selection.mjs +206 -238
  149. package/dist/kernal/html/style.cjs +1 -1
  150. package/dist/kernal/html/style.mjs +59 -79
  151. package/dist/kernal/html/text.cjs +2 -2
  152. package/dist/kernal/html/text.mjs +50 -65
  153. package/dist/kernal/html/types.cjs +1 -1
  154. package/dist/kernal/html/types.mjs +7 -7
  155. package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
  156. package/dist/kernal/i18n/DefaultLocale.mjs +36 -41
  157. package/dist/kernal/i18n/ILocale.cjs +1 -1
  158. package/dist/kernal/i18n/ILocale.mjs +7 -14
  159. package/dist/kernal/index.cjs +1 -1
  160. package/dist/kernal/index.mjs +44 -127
  161. package/dist/kernal/logger/DefaultLogger.cjs +1 -1
  162. package/dist/kernal/logger/DefaultLogger.mjs +67 -67
  163. package/dist/kernal/logger/ILogger.cjs +1 -1
  164. package/dist/kernal/logger/ILogger.mjs +2 -5
  165. package/dist/kernal/logger/ILoggerFactory.cjs +0 -1
  166. package/dist/kernal/logger/ILoggerFactory.mjs +0 -1
  167. package/dist/kernal/logger/LogLevel.cjs +1 -1
  168. package/dist/kernal/logger/LogLevel.mjs +33 -11
  169. package/dist/kernal/logger/LoggerFactory.cjs +1 -1
  170. package/dist/kernal/logger/LoggerFactory.mjs +12 -12
  171. package/dist/kernal/logo-160x160.cjs +1 -0
  172. package/dist/kernal/logo-160x160.mjs +4 -0
  173. package/dist/kernal/mark/IMarker.cjs +0 -1
  174. package/dist/kernal/mark/IMarker.mjs +0 -1
  175. package/dist/kernal/mark/Mark.cjs +1 -1
  176. package/dist/kernal/mark/Mark.mjs +18 -19
  177. package/dist/kernal/mark/MarkConstants.cjs +1 -1
  178. package/dist/kernal/mark/MarkConstants.mjs +4 -7
  179. package/dist/kernal/mark/index.cjs +1 -1
  180. package/dist/kernal/mark/index.mjs +3 -10
  181. package/dist/kernal/mark/types.cjs +0 -1
  182. package/dist/kernal/mark/types.mjs +0 -1
  183. package/dist/kernal/nav/INavPointProvider.cjs +0 -1
  184. package/dist/kernal/nav/INavPointProvider.mjs +0 -1
  185. package/dist/kernal/nav/Nav.cjs +1 -1
  186. package/dist/kernal/nav/Nav.mjs +16 -18
  187. package/dist/kernal/navigator/INavPointNavigator.cjs +0 -1
  188. package/dist/kernal/navigator/INavPointNavigator.mjs +0 -1
  189. package/dist/kernal/navigator/INavigator.cjs +1 -1
  190. package/dist/kernal/navigator/INavigator.mjs +4 -5
  191. package/dist/kernal/navigator/IPagingNavigator.cjs +1 -1
  192. package/dist/kernal/navigator/IPagingNavigator.mjs +4 -8
  193. package/dist/kernal/network/HttpClient.cjs +1 -1
  194. package/dist/kernal/network/HttpClient.mjs +121 -146
  195. package/dist/kernal/network/IHttpClient.cjs +1 -1
  196. package/dist/kernal/network/IHttpClient.mjs +4 -5
  197. package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
  198. package/dist/kernal/pipelines/FileLoadPipeline.mjs +65 -84
  199. package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
  200. package/dist/kernal/pipelines/InputFormatter.mjs +140 -160
  201. package/dist/kernal/pipelines/metadata.cjs +1 -1
  202. package/dist/kernal/pipelines/metadata.mjs +44 -49
  203. package/dist/kernal/plugins/PluginCore.cjs +1 -1
  204. package/dist/kernal/plugins/PluginCore.mjs +7 -8
  205. package/dist/kernal/plugins/PluginManager.cjs +1 -1
  206. package/dist/kernal/plugins/PluginManager.mjs +79 -105
  207. package/dist/kernal/plugins/PluginRegistry.cjs +1 -1
  208. package/dist/kernal/plugins/PluginRegistry.mjs +55 -91
  209. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
  210. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +134 -133
  211. package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
  212. package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +134 -127
  213. package/dist/kernal/progress/IProgressTracker.cjs +0 -1
  214. package/dist/kernal/progress/IProgressTracker.mjs +0 -1
  215. package/dist/kernal/progress/IReadingProgressStore.cjs +0 -1
  216. package/dist/kernal/progress/IReadingProgressStore.mjs +0 -1
  217. package/dist/kernal/progress/Progress.cjs +1 -1
  218. package/dist/kernal/progress/Progress.mjs +23 -40
  219. package/dist/kernal/progress/ReadingProgressStore.cjs +1 -1
  220. package/dist/kernal/progress/ReadingProgressStore.mjs +16 -16
  221. package/dist/kernal/services/ServiceCollection.cjs +1 -1
  222. package/dist/kernal/services/ServiceCollection.mjs +63 -88
  223. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
  224. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +1 -1
  225. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +63 -68
  226. package/dist/kernal/services/docLoadLayer/IHtmlLoadLayer.cjs +0 -1
  227. package/dist/kernal/services/docLoadLayer/IHtmlLoadLayer.mjs +0 -1
  228. package/dist/kernal/services/file/IFileDecrypter.cjs +1 -1
  229. package/dist/kernal/services/file/IFileDecrypter.mjs +11 -24
  230. package/dist/kernal/services/file/IFileProvider.cjs +0 -1
  231. package/dist/kernal/services/file/IFileProvider.mjs +0 -1
  232. package/dist/kernal/services/file/IFileUrlProvider.cjs +0 -1
  233. package/dist/kernal/services/file/IFileUrlProvider.mjs +0 -1
  234. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
  235. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +109 -118
  236. package/dist/kernal/services/fileUrlParser/IFileUrlParser.cjs +1 -1
  237. package/dist/kernal/services/fileUrlParser/IFileUrlParser.mjs +7 -10
  238. package/dist/kernal/services/font/IFontProvider.cjs +1 -1
  239. package/dist/kernal/services/font/IFontProvider.mjs +19 -33
  240. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
  241. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +14 -21
  242. package/dist/kernal/services/internalUrlBuilder/IInternalUrlBuilder.cjs +0 -1
  243. package/dist/kernal/services/internalUrlBuilder/IInternalUrlBuilder.mjs +0 -1
  244. package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
  245. package/dist/kernal/services/loading/DefaultLoading.mjs +46 -41
  246. package/dist/kernal/services/loading/ILoading.cjs +1 -1
  247. package/dist/kernal/services/loading/ILoading.mjs +4 -5
  248. package/dist/kernal/services/notifier/DefaultNotifier.cjs +1 -1
  249. package/dist/kernal/services/notifier/DefaultNotifier.mjs +63 -65
  250. package/dist/kernal/services/notifier/INotifier.cjs +0 -1
  251. package/dist/kernal/services/notifier/INotifier.mjs +0 -1
  252. package/dist/kernal/services/notifier/notyf/index.cjs +1 -1
  253. package/dist/kernal/services/notifier/notyf/index.mjs +5 -13
  254. package/dist/kernal/services/notifier/notyf/notyf.cjs +1 -1
  255. package/dist/kernal/services/notifier/notyf/notyf.mjs +79 -97
  256. package/dist/kernal/services/notifier/notyf/notyf.models.cjs +1 -1
  257. package/dist/kernal/services/notifier/notyf/notyf.models.mjs +39 -41
  258. package/dist/kernal/services/notifier/notyf/notyf.options.cjs +1 -1
  259. package/dist/kernal/services/notifier/notyf/notyf.options.mjs +30 -30
  260. package/dist/kernal/services/notifier/notyf/notyf.view.cjs +1 -1
  261. package/dist/kernal/services/notifier/notyf/notyf.view.mjs +146 -177
  262. package/dist/kernal/services/text/ITextDecoder.cjs +0 -1
  263. package/dist/kernal/services/text/ITextDecoder.mjs +0 -1
  264. package/dist/kernal/services/text/splitter.cjs +5 -5
  265. package/dist/kernal/services/text/splitter.mjs +184 -207
  266. package/dist/kernal/shape/ShapeSorter.cjs +1 -1
  267. package/dist/kernal/shape/ShapeSorter.mjs +77 -77
  268. package/dist/kernal/shape/SimpleMatrix.cjs +1 -1
  269. package/dist/kernal/shape/SimpleMatrix.mjs +20 -13
  270. package/dist/kernal/shape/definitions.cjs +0 -1
  271. package/dist/kernal/shape/definitions.mjs +0 -1
  272. package/dist/kernal/storage/IStorage.cjs +1 -1
  273. package/dist/kernal/storage/IStorage.mjs +4 -5
  274. package/dist/kernal/storage/WebStorage.cjs +1 -1
  275. package/dist/kernal/storage/WebStorage.mjs +164 -201
  276. package/dist/kernal/types.cjs +0 -1
  277. package/dist/kernal/types.mjs +0 -1
  278. package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
  279. package/dist/kernal/web/BrowserCapabilities.mjs +167 -191
  280. package/dist/kernal/web/ua.cjs +1 -1
  281. package/dist/kernal/web/ua.mjs +5 -5
  282. package/dist/mediaTypes/adjacent.cjs +1 -1
  283. package/dist/mediaTypes/adjacent.mjs +41 -48
  284. package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
  285. package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +184 -227
  286. package/dist/mediaTypes/base/index.cjs +1 -1
  287. package/dist/mediaTypes/base/index.mjs +4 -8
  288. package/dist/mediaTypes/base/renderer/BaseDocument.cjs +1 -1
  289. package/dist/mediaTypes/base/renderer/BaseDocument.mjs +41 -49
  290. package/dist/mediaTypes/base/renderer/BaseDocumentsProvider.cjs +1 -1
  291. package/dist/mediaTypes/base/renderer/BaseDocumentsProvider.mjs +64 -71
  292. package/dist/mediaTypes/base/renderer/eventKeys.cjs +1 -1
  293. package/dist/mediaTypes/base/renderer/eventKeys.mjs +7 -7
  294. package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
  295. package/dist/mediaTypes/html/HtmlOptions.mjs +34 -12
  296. package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
  297. package/dist/mediaTypes/html/HtmlSettings.mjs +43 -6
  298. package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
  299. package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +52 -54
  300. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
  301. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +52 -57
  302. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +0 -1
  303. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +0 -1
  304. package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
  305. package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +89 -89
  306. package/dist/mediaTypes/html/renderer/IHtmlDocument.cjs +0 -1
  307. package/dist/mediaTypes/html/renderer/IHtmlDocument.mjs +0 -1
  308. package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.cjs +0 -1
  309. package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.mjs +0 -1
  310. package/dist/mediaTypes/html/renderer/IHtmlRenderer.cjs +0 -1
  311. package/dist/mediaTypes/html/renderer/IHtmlRenderer.mjs +0 -1
  312. package/dist/mediaTypes/html/renderer/IHtmlTextDocument.cjs +0 -1
  313. package/dist/mediaTypes/html/renderer/IHtmlTextDocument.mjs +0 -1
  314. package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
  315. package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +183 -196
  316. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
  317. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +28 -28
  318. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
  319. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +77 -82
  320. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
  321. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +87 -97
  322. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
  323. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +49 -64
  324. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
  325. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +29 -32
  326. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
  327. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +76 -84
  328. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
  329. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +2 -1
  330. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +185 -208
  331. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
  332. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -1
  333. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +39 -41
  334. package/dist/mediaTypes/html/renderer/documents/IHtmlDocumentsPreloader.cjs +0 -1
  335. package/dist/mediaTypes/html/renderer/documents/IHtmlDocumentsPreloader.mjs +0 -1
  336. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
  337. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +130 -182
  338. package/dist/mediaTypes/html/renderer/html/IHtmlContentProcessor.cjs +0 -1
  339. package/dist/mediaTypes/html/renderer/html/IHtmlContentProcessor.mjs +0 -1
  340. package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
  341. package/dist/mediaTypes/html/renderer/html/template.mjs +13 -16
  342. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
  343. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +371 -447
  344. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
  345. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +91 -103
  346. package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.cjs +0 -1
  347. package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.mjs +0 -1
  348. package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -0
  349. package/dist/mediaTypes/html/renderer/image/error-image.mjs +4 -0
  350. package/dist/mediaTypes/html/renderer/image/placeholder.cjs +1 -0
  351. package/dist/mediaTypes/html/renderer/image/placeholder.mjs +4 -0
  352. package/dist/mediaTypes/html/renderer/layout/HtmlLayoutMetrics.cjs +1 -1
  353. package/dist/mediaTypes/html/renderer/layout/HtmlLayoutMetrics.mjs +5 -6
  354. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
  355. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +81 -90
  356. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
  357. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +142 -169
  358. package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.cjs +0 -1
  359. package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.mjs +0 -1
  360. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
  361. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +61 -6
  362. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
  363. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +106 -118
  364. package/dist/mediaTypes/html/renderer/location/HtmlLocationCalculator.cjs +1 -1
  365. package/dist/mediaTypes/html/renderer/location/HtmlLocationCalculator.mjs +28 -34
  366. package/dist/mediaTypes/html/renderer/location/IHtmlElementLocator.cjs +0 -1
  367. package/dist/mediaTypes/html/renderer/location/IHtmlElementLocator.mjs +0 -1
  368. package/dist/mediaTypes/html/renderer/location/IHtmlLocationCalculator.cjs +0 -1
  369. package/dist/mediaTypes/html/renderer/location/IHtmlLocationCalculator.mjs +0 -1
  370. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
  371. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +39 -42
  372. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
  373. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +121 -125
  374. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
  375. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +151 -178
  376. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
  377. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +78 -85
  378. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
  379. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +119 -137
  380. package/dist/mediaTypes/html/renderer/progress/IHtmlIProgressTracker.cjs +0 -1
  381. package/dist/mediaTypes/html/renderer/progress/IHtmlIProgressTracker.mjs +0 -1
  382. package/dist/mediaTypes/html/renderer/progress/adjacent.cjs +1 -1
  383. package/dist/mediaTypes/html/renderer/progress/adjacent.mjs +41 -48
  384. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
  385. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +40 -9
  386. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
  387. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +40 -6
  388. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
  389. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +62 -74
  390. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
  391. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +58 -68
  392. package/dist/mediaTypes/html/renderer/style/IHtmlThemeApplier.cjs +0 -1
  393. package/dist/mediaTypes/html/renderer/style/IHtmlThemeApplier.mjs +0 -1
  394. package/dist/mediaTypes/html/renderer/style/{html-content.css.mjs → html-content.cjs} +2 -5
  395. package/dist/mediaTypes/html/renderer/style/html-content.mjs +4 -0
  396. package/dist/mediaTypes/html/renderer/visibilityCandidates.cjs +1 -1
  397. package/dist/mediaTypes/html/renderer/visibilityCandidates.mjs +116 -111
  398. package/dist/mediaTypes/pdf/PdfOptions.cjs +1 -1
  399. package/dist/mediaTypes/pdf/PdfOptions.mjs +7 -7
  400. package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
  401. package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +16 -26
  402. package/dist/mediaTypes/pdf/fileParser/IPdfFileParser.cjs +0 -1
  403. package/dist/mediaTypes/pdf/fileParser/IPdfFileParser.d.ts +2 -0
  404. package/dist/mediaTypes/pdf/fileParser/IPdfFileParser.mjs +0 -1
  405. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  406. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +148 -170
  407. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
  408. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +45 -52
  409. package/dist/mediaTypes/pdf/fileParser/PdfTextDocument.cjs +1 -1
  410. package/dist/mediaTypes/pdf/fileParser/PdfTextDocument.mjs +28 -28
  411. package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
  412. package/dist/mediaTypes/pdf/loadPdfDocument.mjs +27 -23
  413. package/dist/mediaTypes/pdf/renderer/IPdfDocument.cjs +0 -1
  414. package/dist/mediaTypes/pdf/renderer/IPdfDocument.mjs +0 -1
  415. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.cjs +0 -1
  416. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.mjs +0 -1
  417. package/dist/mediaTypes/pdf/renderer/IPdfSvgBuilder.cjs +0 -1
  418. package/dist/mediaTypes/pdf/renderer/IPdfSvgBuilder.mjs +0 -1
  419. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.cjs +1 -1
  420. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +323 -625
  421. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
  422. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +18 -18
  423. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
  424. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +25 -6
  425. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  426. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +61 -70
  427. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
  428. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +118 -122
  429. package/dist/mediaTypes/pdf/renderer/PdfNavPointProvider.cjs +1 -1
  430. package/dist/mediaTypes/pdf/renderer/PdfNavPointProvider.mjs +85 -111
  431. package/dist/mediaTypes/pdf/renderer/PdfNoopL10n.cjs +1 -1
  432. package/dist/mediaTypes/pdf/renderer/PdfNoopL10n.mjs +7 -10
  433. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
  434. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +29 -32
  435. package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
  436. package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +76 -79
  437. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
  438. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +269 -236
  439. package/dist/mediaTypes/pdf/renderer/PdfViewerBuilder.cjs +1 -1
  440. package/dist/mediaTypes/pdf/renderer/PdfViewerBuilder.mjs +33 -36
  441. package/dist/mediaTypes/pdf/renderer/documents/IPdfDocumentsProvider.cjs +0 -1
  442. package/dist/mediaTypes/pdf/renderer/documents/IPdfDocumentsProvider.mjs +0 -1
  443. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
  444. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +243 -290
  445. package/dist/mediaTypes/pdf/renderer/input/PdfDocumentEvents.cjs +1 -1
  446. package/dist/mediaTypes/pdf/renderer/input/PdfDocumentEvents.mjs +43 -50
  447. package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.cjs +1 -1
  448. package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.mjs +84 -105
  449. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
  450. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +44 -59
  451. package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.cjs +1 -1
  452. package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.mjs +138 -177
  453. package/dist/mediaTypes/pdf/renderer/layout/IPdfRendererLayout.cjs +0 -1
  454. package/dist/mediaTypes/pdf/renderer/layout/IPdfRendererLayout.mjs +0 -1
  455. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererLayout.cjs +1 -1
  456. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererLayout.mjs +36 -42
  457. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
  458. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +75 -82
  459. package/dist/mediaTypes/pdf/renderer/location/IPdfDestinationBuilder.cjs +0 -1
  460. package/dist/mediaTypes/pdf/renderer/location/IPdfDestinationBuilder.mjs +0 -1
  461. package/dist/mediaTypes/pdf/renderer/location/PdfDestinationBuilder.cjs +1 -1
  462. package/dist/mediaTypes/pdf/renderer/location/PdfDestinationBuilder.mjs +18 -21
  463. package/dist/mediaTypes/pdf/renderer/progress/IPdfProgressTracker.cjs +0 -1
  464. package/dist/mediaTypes/pdf/renderer/progress/IPdfProgressTracker.mjs +0 -1
  465. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
  466. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +54 -68
  467. package/dist/mediaTypes/pdf/renderer/style/IPdfThemeApplier.cjs +0 -1
  468. package/dist/mediaTypes/pdf/renderer/style/IPdfThemeApplier.mjs +0 -1
  469. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
  470. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +15 -15
  471. package/dist/mediaTypes/pdf/renderer/zoom/IPdfScalable.cjs +0 -1
  472. package/dist/mediaTypes/pdf/renderer/zoom/IPdfScalable.mjs +0 -1
  473. package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.cjs +1 -1
  474. package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.mjs +46 -41
  475. package/dist/mediaTypes/pdf/shared/geometry/index.cjs +1 -1
  476. package/dist/mediaTypes/pdf/shared/geometry/index.mjs +3 -13
  477. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.cjs +1 -1
  478. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.mjs +45 -45
  479. package/dist/mediaTypes/pdf/shared/geometry/textRects.cjs +1 -1
  480. package/dist/mediaTypes/pdf/shared/geometry/textRects.mjs +219 -263
  481. package/dist/mediaTypes/pdf/shared/range.cjs +1 -1
  482. package/dist/mediaTypes/pdf/shared/range.mjs +11 -14
  483. package/dist/mediaTypes/pdf/shared/selection/IPdfSelection.cjs +0 -1
  484. package/dist/mediaTypes/pdf/shared/selection/IPdfSelection.mjs +0 -1
  485. package/dist/mediaTypes/pdf/shared/selection/PdfSelection.cjs +2 -2
  486. package/dist/mediaTypes/pdf/shared/selection/PdfSelection.mjs +214 -236
  487. package/dist/mediaTypes/pdf/shared/selection/index.cjs +1 -1
  488. package/dist/mediaTypes/pdf/shared/selection/index.mjs +3 -6
  489. package/dist/mediaTypes/pdf/shared/text/bbox.cjs +1 -1
  490. package/dist/mediaTypes/pdf/shared/text/bbox.mjs +130 -142
  491. package/dist/mediaTypes/pdf/shared/text/pageText.cjs +5 -5
  492. package/dist/mediaTypes/pdf/shared/text/pageText.mjs +168 -185
  493. package/global.d.ts +17 -0
  494. package/package.json +19 -12
  495. package/types.d.ts +13 -0
  496. package/dist/kernal/logo-160x160.png.cjs +0 -1
  497. package/dist/kernal/logo-160x160.png.mjs +0 -4
  498. package/dist/mediaTypes/html/renderer/image/error-image.png.cjs +0 -1
  499. package/dist/mediaTypes/html/renderer/image/error-image.png.mjs +0 -4
  500. package/dist/mediaTypes/html/renderer/image/placeholder.png.cjs +0 -1
  501. package/dist/mediaTypes/html/renderer/image/placeholder.png.mjs +0 -4
  502. package/dist/mediaTypes/html/renderer/style/html-content.css.cjs +0 -316
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("./HtmlLayoutMetrics.cjs"),o=require("./ViewportCssVariableNames.cjs"),F=require("../documents/HtmlContainerBuilder.cjs"),B=require("../../../../kernal/html/injector.cjs"),x=require("../../HtmlSettings.cjs");class T{constructor(n,e,t,i){this.owner=n,this.readerContainer=e,this.getColumnWidth=()=>this.htmlOptions.maxColumnWidth?Math.abs(this.htmlOptions.maxColumnWidth):768,this.options=this.owner.options,this.device=this.owner.device,this.optionsProvider=t,this.htmlOptions=i,this.containerBuilder=new F.HtmlContainerBuilder(i);const{rendererContainer:r,rendererCss:s,otherCss:a}=this.containerBuilder.createContainers();B.injectCssContent(this.readerContainer.ownerDocument,s+a,!0,"html-renderer-style"),this.readerContainer.appendChild(r),this.rendererContainer=r,this.scrollElement=this.rendererContainer,this.contentsShadowContainer=this.rendererContainer.querySelector("."+x.HtmlSettings.ContentsShadowContainerCssName),this.contentsContainer=this.rendererContainer.querySelector("."+x.HtmlSettings.ContentsContainerCssName)}getRendererContainer(){return this.rendererContainer}getScrollElement(){return this.rendererContainer}getLayoutMetrics(){return this.layout||(this.applyCssVariables(),this.layout=this.buildLayoutMetrics()),this.layout}applyCssVariables(){const n=this.prepareRendererCssVariables(),e=this.prepareOtherCssVariables(),t=new Map;n.forEach((r,s)=>{t.set(s,r)}),e.forEach((r,s)=>{t.set(s,r)});const i=this.owner.getRootContainer();t.forEach((r,s)=>{i.style.setProperty(s,r)}),this.layout=this.buildLayoutMetrics()}prepareRendererCssVariables(){const n=this.getFlipMode(),e=n=="page"?"hidden":"auto",t=new Map,i=n=="page"?0:this.htmlOptions.contentWrapperMarginBottom??10,r=n=="page"?0:this.htmlOptions.contentWrapperMarginTop??10;return t.set(o.ViewportCssVariableNames.ContentWrapperMarginTop,r+"px"),t.set(o.ViewportCssVariableNames.ContentWrapperMarginBottom,i+"px"),t.set(o.ViewportCssVariableNames.ContentWrapperBorderRadius,(this.htmlOptions.contentWrapperBorderRadius??0)+"px"),t.set(o.ViewportCssVariableNames.ScrollElementOverflow,e),t}prepareOtherCssVariables(){const n=this.owner.getRootContainer(),e=this.getFlipMode();e=="page"&&this.scrollElement?.scrollTo(0,0);const t=this.htmlOptions.columnGap??40,i=this.contentsShadowContainer,r=this.rendererContainer.clientWidth,s=this.rendererContainer.clientHeight;this.rendererContainer.setAttribute("data-client-width",`${r}`),this.rendererContainer.setAttribute("data-client-height",`${s}`);const a=this.getContentsContainerWidth(),h=a+"px",d=this.rendererContainer.offsetWidth-this.rendererContainer.clientWidth,u=this.rendererContainer.offsetHeight-this.rendererContainer.clientHeight,l=new Map;l.set(o.ViewportCssVariableNames.ScrollElementVerticalScrollBarWidth,d+"px"),l.set(o.ViewportCssVariableNames.ScrollElementHorizontalScrollBarHeight,u+"px"),n.style.setProperty(o.ViewportCssVariableNames.ContentsContainerWidth,h),l.set(o.ViewportCssVariableNames.ContentsContainerWidth,h);let p=0;e=="page"&&(p=0),r-a-2<2*p&&(p=0);let c="";p>0?c=""+p+"px 0":c="0",n.style.setProperty(o.ViewportCssVariableNames.ContentsContainerPadding,c),l.set(o.ViewportCssVariableNames.ContentsContainerPadding,c);const C=this.calculateColumns(a);this.htmlOptions.columns=C;const f=this.getContentPaddingFactor(),W=this.getContentsShadowMargin()+Math.min(20,a*f),{columnWidth:m,remainder:M}=this.getFinalColumnWidth(a-W*2,C,t);e=="page"?M!=0?i.style.margin=`0 ${W+M/2}px`:i.style.margin=`0 ${W}px`:i.style.margin="0px";const g=i.getBoundingClientRect().width;this.rendererContainer.setAttribute("data-transform-length",(g+t).toString()),this.rendererContainer.setAttribute("data-shadow-width",g.toString()),this.rendererContainer.setAttribute("data-column-width",m.toString()),this.rendererContainer.setAttribute("data-column-gap",t.toString()),this.rendererContainer.setAttribute("data-page-width",`${m}`);const{contentWrapperPaddingBottomNumber:H,contentWrapperPaddingTopNumber:y,contentWrapperPadding:N,contentWrapperPaddingTopBottom:P}=this.getContentWrapperPadding(a,t);this.rendererContainer.setAttribute("data-page-height",`${s-y-H}`),l.set(o.ViewportCssVariableNames.ContentWrapperWidth,g+"px"),e=="scroll"?l.set(o.ViewportCssVariableNames.ContentWrapperMinWidth,g+"px"):l.set(o.ViewportCssVariableNames.ContentWrapperMinWidth,m+t/2+"px"),l.set(o.ViewportCssVariableNames.ContentWrapperHeight,this.getContentWrapperHeight()),l.set(o.ViewportCssVariableNames.ContentWrapperMinHeight,s+"px"),l.set(o.ViewportCssVariableNames.ContentWrapperMaxHeight,s+"px"),l.set(o.ViewportCssVariableNames.ContentWrapperPadding,N),e=="page"?l.set(o.ViewportCssVariableNames.ContentContainerWidth,m+"px"):l.set(o.ViewportCssVariableNames.ContentContainerWidth,"100%");const O=`calc(var(${o.ViewportCssVariableNames.ContentWrapperHeight}) - ${P})`;return l.set(o.ViewportCssVariableNames.ContentContainerHeight,O),l.set(o.ViewportCssVariableNames.ContentColumnGap,t+"px"),this.rendererContainer&&(l.set(o.ViewportCssVariableNames.ContentsContainerOffsetLeft,"calc(("+this.rendererContainer.clientWidth+"px - "+h+") / 2)"),this.updateCssVariablesTimeoutId=setTimeout(()=>{const b=new Map;b.set(o.ViewportCssVariableNames.ContentsContainerOffsetLeft,this.contentsContainer.offsetLeft+"px"),b.forEach((V,w)=>{n.style.setProperty(w,V)}),n&&b.forEach((V,w)=>{n.style.setProperty(w,V)})},1e3)),l}buildLayoutMetrics(){const n=this.getFlipMode(),e=new S.HtmlLayoutMetrics,t=this.rendererContainer,{clientWidth:i,clientHeight:r}=t,s=parseFloat(t.getAttribute("data-transform-length"));e.clientWidth=i;let a;return n=="scroll"?a=this.rendererContainer.ownerDocument.defaultView.innerHeight-this.optionsProvider.getHeaderHeight()-this.optionsProvider.getFooterHeight():a=parseFloat(t.getAttribute("data-page-height")),e.clientHeight=r,e.pageHeight=a,e.columnHeight=a,e.columnGap=parseFloat(t.getAttribute("data-column-gap")),e.columnWidth=parseFloat(t.getAttribute("data-column-width")),e.pageWidth=parseFloat(t.getAttribute("data-page-width")),e.pageMoveLength=s,e.shadowWidth=parseFloat(t.getAttribute("data-shadow-width")),e}getContentWrapperHeight(){return this.getFlipMode()=="page"?`${this.rendererContainer.clientHeight}px`:this.owner.inIframe?"100%":"auto"}getContentsShadowMargin(){return this.htmlOptions.contentsShadowMargin??10}getContentWrapperPadding(n,e){const t=this.getFlipMode(),i=this.getContentPaddingFactor();let r=t=="scroll"?30:0;const s=this.getContentsShadowMargin();t=="page"&&(r+=s);const a=r+"px";let h=t=="scroll"?30:0;t=="page"&&(h+=s),t=="scroll"&&h<this.options.minFooterHeight&&(h=this.options.minFooterHeight);const d=this.getContentsShadowMargin()+Math.min(20,n*i),u=h+"px",l=t=="scroll"?`${d}px`:"0",p=t=="scroll"?`${d}px`:"0",c=t=="scroll"?`${e}px`:"0",C=`${r+h}px`,f=t=="scroll"?`${r}px ${d}px ${h}px ${d}px`:`${r}px 0 0 0px`;return{contentWrapperPaddingTop:a,contentWrapperPaddingLeft:l,contentWrapperPaddingRight:p,contentWrapperPaddingBottom:u,contentWrapperPaddingLeftRight:c,contentWrapperPaddingTopBottom:C,contentWrapperPadding:f,contentWrapperPaddingTopNumber:r,contentWrapperPaddingBottomNumber:h}}getContentsContainerWidth(){const{width:n}=this.rendererContainer.getBoundingClientRect(),e=n;if(this.device.getDeviceType()=="mobile"&&e<=768)return e;if(this.getFlipMode()=="scroll")return this.htmlOptions.enableAutoFitPageWidth?e:this.htmlOptions.maxScrollContentWidth?Math.min(e,Math.abs(this.htmlOptions.maxScrollContentWidth)):Math.min(e,this.htmlOptions.columnWidth);let t=this.htmlOptions.columns;const i=this.getColumnWidth();if(this.htmlOptions.autoColumns){if(!this.htmlOptions.maxColumns)return e;e<=i?t=1:t=this.htmlOptions.maxColumns}const r=this.getMultiColumnWidthFactor();return t>1?Math.min(e,t*i*r):Math.min(e,i)}calculateColumns(n){let e=this.htmlOptions.columns??1;const t=this.getColumnWidth();if(this.htmlOptions.autoColumns)if(n<=t)e=1;else{e=Math.floor(n/t);const i=n%t;(i>t/5||i>e*50)&&(e+=1),this.htmlOptions.maxColumns&&e>this.htmlOptions.maxColumns&&(e=this.htmlOptions.maxColumns)}return e}getFinalColumnWidth(n,e,t){const i=t*(e-1);let r=(n-i)/e,s=0;const a=Math.round(r);return a!=r&&(r=a,s=n-(e*a+i)),{columnWidth:r,remainder:s}}getContentPaddingFactor(){return this.device.getDeviceType()=="mobile"?.01:.05}getMultiColumnWidthFactor(){let n=this.htmlOptions.multiColumnWidthFactor;return n||(n=.8),n=Math.abs(n),n<.5&&(n=.5),n>1&&(n=1),n}getFlipMode(){return this.htmlOptions.forceScroll?"scroll":this.htmlOptions.flipMode}async dispose(){this.updateCssVariablesTimeoutId&&(clearTimeout(this.updateCssVariablesTimeoutId),this.updateCssVariablesTimeoutId=null)}}exports.HtmlRendererViewport=T;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/html/injector.cjs"),t=require("../../HtmlSettings.cjs"),n=require("./ViewportCssVariableNames.cjs"),r=require("./HtmlLayoutMetrics.cjs"),i=require("../documents/HtmlContainerBuilder.cjs");var a=class{constructor(n,r,a,o){this.owner=n,this.readerContainer=r,this.getColumnWidth=()=>this.htmlOptions.maxColumnWidth?Math.abs(this.htmlOptions.maxColumnWidth):768,this.options=this.owner.options,this.device=this.owner.device,this.optionsProvider=a,this.htmlOptions=o,this.containerBuilder=new i.HtmlContainerBuilder(o);let{rendererContainer:s,rendererCss:c,otherCss:l}=this.containerBuilder.createContainers();e.injectCssContent(this.readerContainer.ownerDocument,c+l,!0,`html-renderer-style`),this.readerContainer.appendChild(s),this.rendererContainer=s,this.scrollElement=this.rendererContainer,this.contentsShadowContainer=this.rendererContainer.querySelector(`.`+t.HtmlSettings.ContentsShadowContainerCssName),this.contentsContainer=this.rendererContainer.querySelector(`.`+t.HtmlSettings.ContentsContainerCssName)}getRendererContainer(){return this.rendererContainer}getScrollElement(){return this.rendererContainer}getLayoutMetrics(){return this.layout||=(this.applyCssVariables(),this.buildLayoutMetrics()),this.layout}applyCssVariables(){let e=this.prepareRendererCssVariables(),t=this.prepareOtherCssVariables(),n=new Map;e.forEach((e,t)=>{n.set(t,e)}),t.forEach((e,t)=>{n.set(t,e)});let r=this.owner.getRootContainer();n.forEach((e,t)=>{r.style.setProperty(t,e)}),this.layout=this.buildLayoutMetrics()}prepareRendererCssVariables(){let e=this.getFlipMode(),t=e==`page`?`hidden`:`auto`,r=new Map,i=e==`page`?0:this.htmlOptions.contentWrapperMarginBottom??10,a=e==`page`?0:this.htmlOptions.contentWrapperMarginTop??10;return r.set(n.ViewportCssVariableNames.ContentWrapperMarginTop,a+`px`),r.set(n.ViewportCssVariableNames.ContentWrapperMarginBottom,i+`px`),r.set(n.ViewportCssVariableNames.ContentWrapperBorderRadius,(this.htmlOptions.contentWrapperBorderRadius??0)+`px`),r.set(n.ViewportCssVariableNames.ScrollElementOverflow,t),r}prepareOtherCssVariables(){let e=this.owner.getRootContainer(),t=this.getFlipMode();t==`page`&&this.scrollElement?.scrollTo(0,0);let r=this.htmlOptions.columnGap??40,i=this.contentsShadowContainer,a=this.rendererContainer.clientWidth,o=this.rendererContainer.clientHeight;this.rendererContainer.setAttribute(`data-client-width`,`${a}`),this.rendererContainer.setAttribute(`data-client-height`,`${o}`);let s=this.getContentsContainerWidth(),c=s+`px`,l=this.rendererContainer.offsetWidth-this.rendererContainer.clientWidth,u=this.rendererContainer.offsetHeight-this.rendererContainer.clientHeight,d=new Map;d.set(n.ViewportCssVariableNames.ScrollElementVerticalScrollBarWidth,l+`px`),d.set(n.ViewportCssVariableNames.ScrollElementHorizontalScrollBarHeight,u+`px`),e.style.setProperty(n.ViewportCssVariableNames.ContentsContainerWidth,c),d.set(n.ViewportCssVariableNames.ContentsContainerWidth,c);let f=0;t==`page`&&(f=0),a-s-2<2*f&&(f=0);let p=``;p=f>0?``+f+`px 0`:`0`,e.style.setProperty(n.ViewportCssVariableNames.ContentsContainerPadding,p),d.set(n.ViewportCssVariableNames.ContentsContainerPadding,p);let m=this.calculateColumns(s);this.htmlOptions.columns=m;let h=this.getContentPaddingFactor(),g=this.getContentsShadowMargin()+Math.min(20,s*h),{columnWidth:_,remainder:v}=this.getFinalColumnWidth(s-g*2,m,r);t==`page`?v==0?i.style.margin=`0 ${g}px`:i.style.margin=`0 ${g+v/2}px`:i.style.margin=`0px`;let y=i.getBoundingClientRect().width;this.rendererContainer.setAttribute(`data-transform-length`,(y+r).toString()),this.rendererContainer.setAttribute(`data-shadow-width`,y.toString()),this.rendererContainer.setAttribute(`data-column-width`,_.toString()),this.rendererContainer.setAttribute(`data-column-gap`,r.toString()),this.rendererContainer.setAttribute(`data-page-width`,`${_}`);let{contentWrapperPaddingBottomNumber:b,contentWrapperPaddingTopNumber:x,contentWrapperPadding:S,contentWrapperPaddingTopBottom:C}=this.getContentWrapperPadding(s,r);this.rendererContainer.setAttribute(`data-page-height`,`${o-x-b}`),d.set(n.ViewportCssVariableNames.ContentWrapperWidth,y+`px`),t==`scroll`?d.set(n.ViewportCssVariableNames.ContentWrapperMinWidth,y+`px`):d.set(n.ViewportCssVariableNames.ContentWrapperMinWidth,_+r/2+`px`),d.set(n.ViewportCssVariableNames.ContentWrapperHeight,this.getContentWrapperHeight()),d.set(n.ViewportCssVariableNames.ContentWrapperMinHeight,o+`px`),d.set(n.ViewportCssVariableNames.ContentWrapperMaxHeight,o+`px`),d.set(n.ViewportCssVariableNames.ContentWrapperPadding,S),t==`page`?d.set(n.ViewportCssVariableNames.ContentContainerWidth,_+`px`):d.set(n.ViewportCssVariableNames.ContentContainerWidth,`100%`);let w=`calc(var(${n.ViewportCssVariableNames.ContentWrapperHeight}) - ${C})`;return d.set(n.ViewportCssVariableNames.ContentContainerHeight,w),d.set(n.ViewportCssVariableNames.ContentColumnGap,r+`px`),this.rendererContainer&&(d.set(n.ViewportCssVariableNames.ContentsContainerOffsetLeft,`calc((`+this.rendererContainer.clientWidth+`px - `+c+`) / 2)`),this.updateCssVariablesTimeoutId=setTimeout(()=>{let t=new Map;t.set(n.ViewportCssVariableNames.ContentsContainerOffsetLeft,this.contentsContainer.offsetLeft+`px`),t.forEach((t,n)=>{e.style.setProperty(n,t)}),e&&t.forEach((t,n)=>{e.style.setProperty(n,t)})},1e3)),d}buildLayoutMetrics(){let e=this.getFlipMode(),t=new r.HtmlLayoutMetrics,n=this.rendererContainer,{clientWidth:i,clientHeight:a}=n,o=parseFloat(n.getAttribute(`data-transform-length`));t.clientWidth=i;let s;return s=e==`scroll`?this.rendererContainer.ownerDocument.defaultView.innerHeight-this.optionsProvider.getHeaderHeight()-this.optionsProvider.getFooterHeight():parseFloat(n.getAttribute(`data-page-height`)),t.clientHeight=a,t.pageHeight=s,t.columnHeight=s,t.columnGap=parseFloat(n.getAttribute(`data-column-gap`)),t.columnWidth=parseFloat(n.getAttribute(`data-column-width`)),t.pageWidth=parseFloat(n.getAttribute(`data-page-width`)),t.pageMoveLength=o,t.shadowWidth=parseFloat(n.getAttribute(`data-shadow-width`)),t}getContentWrapperHeight(){return this.getFlipMode()==`page`?`${this.rendererContainer.clientHeight}px`:this.owner.inIframe?`100%`:`auto`}getContentsShadowMargin(){return this.htmlOptions.contentsShadowMargin??10}getContentWrapperPadding(e,t){let n=this.getFlipMode(),r=this.getContentPaddingFactor(),i=n==`scroll`?30:0,a=this.getContentsShadowMargin();n==`page`&&(i+=a);let o=i+`px`,s=n==`scroll`?30:0;n==`page`&&(s+=a),n==`scroll`&&s<this.options.minFooterHeight&&(s=this.options.minFooterHeight);let c=this.getContentsShadowMargin()+Math.min(20,e*r),l=s+`px`;return{contentWrapperPaddingTop:o,contentWrapperPaddingLeft:n==`scroll`?`${c}px`:`0`,contentWrapperPaddingRight:n==`scroll`?`${c}px`:`0`,contentWrapperPaddingBottom:l,contentWrapperPaddingLeftRight:n==`scroll`?`${t}px`:`0`,contentWrapperPaddingTopBottom:`${i+s}px`,contentWrapperPadding:n==`scroll`?`${i}px ${c}px ${s}px ${c}px`:`${i}px 0 0 0px`,contentWrapperPaddingTopNumber:i,contentWrapperPaddingBottomNumber:s}}getContentsContainerWidth(){let{width:e}=this.rendererContainer.getBoundingClientRect(),t=e;if(this.device.getDeviceType()==`mobile`&&t<=768)return t;if(this.getFlipMode()==`scroll`)return this.htmlOptions.enableAutoFitPageWidth?t:this.htmlOptions.maxScrollContentWidth?Math.min(t,Math.abs(this.htmlOptions.maxScrollContentWidth)):Math.min(t,this.htmlOptions.columnWidth);let n=this.htmlOptions.columns,r=this.getColumnWidth();if(this.htmlOptions.autoColumns){if(!this.htmlOptions.maxColumns)return t;n=t<=r?1:this.htmlOptions.maxColumns}let i=this.getMultiColumnWidthFactor();return n>1?Math.min(t,n*r*i):Math.min(t,r)}calculateColumns(e){let t=this.htmlOptions.columns??1,n=this.getColumnWidth();if(this.htmlOptions.autoColumns){if(e<=n)t=1;else{t=Math.floor(e/n);let r=e%n;(r>n/5||r>t*50)&&(t+=1),this.htmlOptions.maxColumns&&t>this.htmlOptions.maxColumns&&(t=this.htmlOptions.maxColumns)}}return t}getFinalColumnWidth(e,t,n){let r=n*(t-1),i=(e-r)/t,a=0,o=Math.round(i);return o!=i&&(i=o,a=e-(t*o+r)),{columnWidth:i,remainder:a}}getContentPaddingFactor(){return this.device.getDeviceType()==`mobile`?.01:.05}getMultiColumnWidthFactor(){let e=this.htmlOptions.multiColumnWidthFactor;return e||=.8,e=Math.abs(e),e<.5&&(e=.5),e>1&&(e=1),e}getFlipMode(){return this.htmlOptions.forceScroll?`scroll`:this.htmlOptions.flipMode}async dispose(){this.updateCssVariablesTimeoutId&&=(clearTimeout(this.updateCssVariablesTimeoutId),null)}};exports.HtmlRendererViewport=a;
@@ -1,170 +1,143 @@
1
- import { HtmlLayoutMetrics as B } from "./HtmlLayoutMetrics.mjs";
2
- import { ViewportCssVariableNames as o } from "./ViewportCssVariableNames.mjs";
3
- import { HtmlContainerBuilder as V } from "../documents/HtmlContainerBuilder.mjs";
4
- import { injectCssContent as T } from "../../../../kernal/html/injector.mjs";
5
- import { HtmlSettings as H } from "../../HtmlSettings.mjs";
6
- class N {
7
- constructor(n, e, t, i) {
8
- this.owner = n, this.readerContainer = e, this.getColumnWidth = () => this.htmlOptions.maxColumnWidth ? Math.abs(this.htmlOptions.maxColumnWidth) : 768, this.options = this.owner.options, this.device = this.owner.device, this.optionsProvider = t, this.htmlOptions = i, this.containerBuilder = new V(i);
9
- const {
10
- rendererContainer: r,
11
- rendererCss: s,
12
- otherCss: a
13
- } = this.containerBuilder.createContainers();
14
- T(this.readerContainer.ownerDocument, s + a, !0, "html-renderer-style"), this.readerContainer.appendChild(r), this.rendererContainer = r, this.scrollElement = this.rendererContainer, this.contentsShadowContainer = this.rendererContainer.querySelector("." + H.ContentsShadowContainerCssName), this.contentsContainer = this.rendererContainer.querySelector("." + H.ContentsContainerCssName);
15
- }
16
- getRendererContainer() {
17
- return this.rendererContainer;
18
- }
19
- getScrollElement() {
20
- return this.rendererContainer;
21
- }
22
- getLayoutMetrics() {
23
- return this.layout || (this.applyCssVariables(), this.layout = this.buildLayoutMetrics()), this.layout;
24
- }
25
- applyCssVariables() {
26
- const n = this.prepareRendererCssVariables(), e = this.prepareOtherCssVariables(), t = /* @__PURE__ */ new Map();
27
- n.forEach((r, s) => {
28
- t.set(s, r);
29
- }), e.forEach((r, s) => {
30
- t.set(s, r);
31
- });
32
- const i = this.owner.getRootContainer();
33
- t.forEach((r, s) => {
34
- i.style.setProperty(s, r);
35
- }), this.layout = this.buildLayoutMetrics();
36
- }
37
- prepareRendererCssVariables() {
38
- const n = this.getFlipMode(), e = n == "page" ? "hidden" : "auto", t = /* @__PURE__ */ new Map(), i = n == "page" ? 0 : this.htmlOptions.contentWrapperMarginBottom ?? 10, r = n == "page" ? 0 : this.htmlOptions.contentWrapperMarginTop ?? 10;
39
- return t.set(o.ContentWrapperMarginTop, r + "px"), t.set(o.ContentWrapperMarginBottom, i + "px"), t.set(o.ContentWrapperBorderRadius, (this.htmlOptions.contentWrapperBorderRadius ?? 0) + "px"), t.set(o.ScrollElementOverflow, e), t;
40
- }
41
- prepareOtherCssVariables() {
42
- const n = this.owner.getRootContainer(), e = this.getFlipMode();
43
- e == "page" && this.scrollElement?.scrollTo(0, 0);
44
- const t = this.htmlOptions.columnGap ?? 40, i = this.contentsShadowContainer, r = this.rendererContainer.clientWidth, s = this.rendererContainer.clientHeight;
45
- this.rendererContainer.setAttribute("data-client-width", `${r}`), this.rendererContainer.setAttribute("data-client-height", `${s}`);
46
- const a = this.getContentsContainerWidth(), l = a + "px", p = this.rendererContainer.offsetWidth - this.rendererContainer.clientWidth, u = this.rendererContainer.offsetHeight - this.rendererContainer.clientHeight, h = /* @__PURE__ */ new Map();
47
- h.set(o.ScrollElementVerticalScrollBarWidth, p + "px"), h.set(o.ScrollElementHorizontalScrollBarHeight, u + "px"), n.style.setProperty(o.ContentsContainerWidth, l), h.set(o.ContentsContainerWidth, l);
48
- let d = 0;
49
- e == "page" && (d = 0), r - a - 2 < 2 * d && (d = 0);
50
- let c = "";
51
- d > 0 ? c = "" + d + "px 0" : c = "0", n.style.setProperty(o.ContentsContainerPadding, c), h.set(o.ContentsContainerPadding, c);
52
- const g = this.calculateColumns(a);
53
- this.htmlOptions.columns = g;
54
- const f = this.getContentPaddingFactor(), W = this.getContentsShadowMargin() + Math.min(20, a * f), {
55
- columnWidth: m,
56
- remainder: w
57
- } = this.getFinalColumnWidth(a - W * 2, g, t);
58
- e == "page" ? w != 0 ? i.style.margin = `0 ${W + w / 2}px` : i.style.margin = `0 ${W}px` : i.style.margin = "0px";
59
- const C = i.getBoundingClientRect().width;
60
- this.rendererContainer.setAttribute("data-transform-length", (C + t).toString()), this.rendererContainer.setAttribute("data-shadow-width", C.toString()), this.rendererContainer.setAttribute("data-column-width", m.toString()), this.rendererContainer.setAttribute("data-column-gap", t.toString()), this.rendererContainer.setAttribute("data-page-width", `${m}`);
61
- const {
62
- contentWrapperPaddingBottomNumber: P,
63
- contentWrapperPaddingTopNumber: y,
64
- contentWrapperPadding: O,
65
- contentWrapperPaddingTopBottom: S
66
- } = this.getContentWrapperPadding(a, t);
67
- this.rendererContainer.setAttribute("data-page-height", `${s - y - P}`), h.set(o.ContentWrapperWidth, C + "px"), e == "scroll" ? h.set(o.ContentWrapperMinWidth, C + "px") : h.set(o.ContentWrapperMinWidth, m + t / 2 + "px"), h.set(o.ContentWrapperHeight, this.getContentWrapperHeight()), h.set(o.ContentWrapperMinHeight, s + "px"), h.set(o.ContentWrapperMaxHeight, s + "px"), h.set(o.ContentWrapperPadding, O), e == "page" ? h.set(o.ContentContainerWidth, m + "px") : h.set(o.ContentContainerWidth, "100%");
68
- const F = `calc(var(${o.ContentWrapperHeight}) - ${S})`;
69
- return h.set(o.ContentContainerHeight, F), h.set(o.ContentColumnGap, t + "px"), this.rendererContainer && (h.set(o.ContentsContainerOffsetLeft, "calc((" + this.rendererContainer.clientWidth + "px - " + l + ") / 2)"), this.updateCssVariablesTimeoutId = setTimeout(() => {
70
- const M = /* @__PURE__ */ new Map();
71
- M.set(o.ContentsContainerOffsetLeft, this.contentsContainer.offsetLeft + "px"), M.forEach((b, x) => {
72
- n.style.setProperty(x, b);
73
- }), n && M.forEach((b, x) => {
74
- n.style.setProperty(x, b);
75
- });
76
- }, 1e3)), h;
77
- }
78
- buildLayoutMetrics() {
79
- const n = this.getFlipMode(), e = new B(), t = this.rendererContainer, {
80
- clientWidth: i,
81
- clientHeight: r
82
- } = t, s = parseFloat(t.getAttribute("data-transform-length"));
83
- e.clientWidth = i;
84
- let a;
85
- return n == "scroll" ? a = this.rendererContainer.ownerDocument.defaultView.innerHeight - this.optionsProvider.getHeaderHeight() - this.optionsProvider.getFooterHeight() : a = parseFloat(t.getAttribute("data-page-height")), e.clientHeight = r, e.pageHeight = a, e.columnHeight = a, e.columnGap = parseFloat(t.getAttribute("data-column-gap")), e.columnWidth = parseFloat(t.getAttribute("data-column-width")), e.pageWidth = parseFloat(t.getAttribute("data-page-width")), e.pageMoveLength = s, e.shadowWidth = parseFloat(t.getAttribute("data-shadow-width")), e;
86
- }
87
- getContentWrapperHeight() {
88
- return this.getFlipMode() == "page" ? `${this.rendererContainer.clientHeight}px` : this.owner.inIframe ? "100%" : "auto";
89
- }
90
- getContentsShadowMargin() {
91
- return this.htmlOptions.contentsShadowMargin ?? 10;
92
- }
93
- getContentWrapperPadding(n, e) {
94
- const t = this.getFlipMode(), i = this.getContentPaddingFactor();
95
- let r = t == "scroll" ? 30 : 0;
96
- const s = this.getContentsShadowMargin();
97
- t == "page" && (r += s);
98
- const a = r + "px";
99
- let l = t == "scroll" ? 30 : 0;
100
- t == "page" && (l += s), t == "scroll" && l < this.options.minFooterHeight && (l = this.options.minFooterHeight);
101
- const p = this.getContentsShadowMargin() + Math.min(20, n * i), u = l + "px", h = t == "scroll" ? `${p}px` : "0", d = t == "scroll" ? `${p}px` : "0", c = t == "scroll" ? `${e}px` : "0", g = `${r + l}px`, f = t == "scroll" ? `${r}px ${p}px ${l}px ${p}px` : `${r}px 0 0 0px`;
102
- return {
103
- contentWrapperPaddingTop: a,
104
- contentWrapperPaddingLeft: h,
105
- contentWrapperPaddingRight: d,
106
- contentWrapperPaddingBottom: u,
107
- contentWrapperPaddingLeftRight: c,
108
- contentWrapperPaddingTopBottom: g,
109
- contentWrapperPadding: f,
110
- contentWrapperPaddingTopNumber: r,
111
- contentWrapperPaddingBottomNumber: l
112
- };
113
- }
114
- getContentsContainerWidth() {
115
- const {
116
- width: n
117
- } = this.rendererContainer.getBoundingClientRect(), e = n;
118
- if (this.device.getDeviceType() == "mobile" && e <= 768)
119
- return e;
120
- if (this.getFlipMode() == "scroll")
121
- return this.htmlOptions.enableAutoFitPageWidth ? e : this.htmlOptions.maxScrollContentWidth ? Math.min(e, Math.abs(this.htmlOptions.maxScrollContentWidth)) : Math.min(e, this.htmlOptions.columnWidth);
122
- let t = this.htmlOptions.columns;
123
- const i = this.getColumnWidth();
124
- if (this.htmlOptions.autoColumns) {
125
- if (!this.htmlOptions.maxColumns)
126
- return e;
127
- e <= i ? t = 1 : t = this.htmlOptions.maxColumns;
128
- }
129
- const r = this.getMultiColumnWidthFactor();
130
- return t > 1 ? Math.min(e, t * i * r) : Math.min(e, i);
131
- }
132
- calculateColumns(n) {
133
- let e = this.htmlOptions.columns ?? 1;
134
- const t = this.getColumnWidth();
135
- if (this.htmlOptions.autoColumns)
136
- if (n <= t)
137
- e = 1;
138
- else {
139
- e = Math.floor(n / t);
140
- const i = n % t;
141
- (i > t / 5 || i > e * 50) && (e += 1), this.htmlOptions.maxColumns && e > this.htmlOptions.maxColumns && (e = this.htmlOptions.maxColumns);
142
- }
143
- return e;
144
- }
145
- getFinalColumnWidth(n, e, t) {
146
- const i = t * (e - 1);
147
- let r = (n - i) / e, s = 0;
148
- const a = Math.round(r);
149
- return a != r && (r = a, s = n - (e * a + i)), {
150
- columnWidth: r,
151
- remainder: s
152
- };
153
- }
154
- getContentPaddingFactor() {
155
- return this.device.getDeviceType() == "mobile" ? 0.01 : 0.05;
156
- }
157
- getMultiColumnWidthFactor() {
158
- let n = this.htmlOptions.multiColumnWidthFactor;
159
- return n || (n = 0.8), n = Math.abs(n), n < 0.5 && (n = 0.5), n > 1 && (n = 1), n;
160
- }
161
- getFlipMode() {
162
- return this.htmlOptions.forceScroll ? "scroll" : this.htmlOptions.flipMode;
163
- }
164
- async dispose() {
165
- this.updateCssVariablesTimeoutId && (clearTimeout(this.updateCssVariablesTimeoutId), this.updateCssVariablesTimeoutId = null);
166
- }
167
- }
168
- export {
169
- N as HtmlRendererViewport
1
+ import { injectCssContent as e } from "../../../../kernal/html/injector.mjs";
2
+ import { HtmlSettings as t } from "../../HtmlSettings.mjs";
3
+ import { ViewportCssVariableNames as n } from "./ViewportCssVariableNames.mjs";
4
+ import { HtmlLayoutMetrics as r } from "./HtmlLayoutMetrics.mjs";
5
+ import { HtmlContainerBuilder as i } from "../documents/HtmlContainerBuilder.mjs";
6
+ //#region mediaTypes/html/renderer/layout/HtmlRendererViewport.ts
7
+ var a = class {
8
+ constructor(n, r, a, o) {
9
+ this.owner = n, this.readerContainer = r, this.getColumnWidth = () => this.htmlOptions.maxColumnWidth ? Math.abs(this.htmlOptions.maxColumnWidth) : 768, this.options = this.owner.options, this.device = this.owner.device, this.optionsProvider = a, this.htmlOptions = o, this.containerBuilder = new i(o);
10
+ let { rendererContainer: s, rendererCss: c, otherCss: l } = this.containerBuilder.createContainers();
11
+ e(this.readerContainer.ownerDocument, c + l, !0, "html-renderer-style"), this.readerContainer.appendChild(s), this.rendererContainer = s, this.scrollElement = this.rendererContainer, this.contentsShadowContainer = this.rendererContainer.querySelector("." + t.ContentsShadowContainerCssName), this.contentsContainer = this.rendererContainer.querySelector("." + t.ContentsContainerCssName);
12
+ }
13
+ getRendererContainer() {
14
+ return this.rendererContainer;
15
+ }
16
+ getScrollElement() {
17
+ return this.rendererContainer;
18
+ }
19
+ getLayoutMetrics() {
20
+ return this.layout ||= (this.applyCssVariables(), this.buildLayoutMetrics()), this.layout;
21
+ }
22
+ applyCssVariables() {
23
+ let e = this.prepareRendererCssVariables(), t = this.prepareOtherCssVariables(), n = /* @__PURE__ */ new Map();
24
+ e.forEach((e, t) => {
25
+ n.set(t, e);
26
+ }), t.forEach((e, t) => {
27
+ n.set(t, e);
28
+ });
29
+ let r = this.owner.getRootContainer();
30
+ n.forEach((e, t) => {
31
+ r.style.setProperty(t, e);
32
+ }), this.layout = this.buildLayoutMetrics();
33
+ }
34
+ prepareRendererCssVariables() {
35
+ let e = this.getFlipMode(), t = e == "page" ? "hidden" : "auto", r = /* @__PURE__ */ new Map(), i = e == "page" ? 0 : this.htmlOptions.contentWrapperMarginBottom ?? 10, a = e == "page" ? 0 : this.htmlOptions.contentWrapperMarginTop ?? 10;
36
+ return r.set(n.ContentWrapperMarginTop, a + "px"), r.set(n.ContentWrapperMarginBottom, i + "px"), r.set(n.ContentWrapperBorderRadius, (this.htmlOptions.contentWrapperBorderRadius ?? 0) + "px"), r.set(n.ScrollElementOverflow, t), r;
37
+ }
38
+ prepareOtherCssVariables() {
39
+ let e = this.owner.getRootContainer(), t = this.getFlipMode();
40
+ t == "page" && this.scrollElement?.scrollTo(0, 0);
41
+ let r = this.htmlOptions.columnGap ?? 40, i = this.contentsShadowContainer, a = this.rendererContainer.clientWidth, o = this.rendererContainer.clientHeight;
42
+ this.rendererContainer.setAttribute("data-client-width", `${a}`), this.rendererContainer.setAttribute("data-client-height", `${o}`);
43
+ let s = this.getContentsContainerWidth(), c = s + "px", l = this.rendererContainer.offsetWidth - this.rendererContainer.clientWidth, u = this.rendererContainer.offsetHeight - this.rendererContainer.clientHeight, d = /* @__PURE__ */ new Map();
44
+ d.set(n.ScrollElementVerticalScrollBarWidth, l + "px"), d.set(n.ScrollElementHorizontalScrollBarHeight, u + "px"), e.style.setProperty(n.ContentsContainerWidth, c), d.set(n.ContentsContainerWidth, c);
45
+ let f = 0;
46
+ t == "page" && (f = 0), a - s - 2 < 2 * f && (f = 0);
47
+ let p = "";
48
+ p = f > 0 ? "" + f + "px 0" : "0", e.style.setProperty(n.ContentsContainerPadding, p), d.set(n.ContentsContainerPadding, p);
49
+ let m = this.calculateColumns(s);
50
+ this.htmlOptions.columns = m;
51
+ let h = this.getContentPaddingFactor(), g = this.getContentsShadowMargin() + Math.min(20, s * h), { columnWidth: _, remainder: v } = this.getFinalColumnWidth(s - g * 2, m, r);
52
+ t == "page" ? v == 0 ? i.style.margin = `0 ${g}px` : i.style.margin = `0 ${g + v / 2}px` : i.style.margin = "0px";
53
+ let y = i.getBoundingClientRect().width;
54
+ this.rendererContainer.setAttribute("data-transform-length", (y + r).toString()), this.rendererContainer.setAttribute("data-shadow-width", y.toString()), this.rendererContainer.setAttribute("data-column-width", _.toString()), this.rendererContainer.setAttribute("data-column-gap", r.toString()), this.rendererContainer.setAttribute("data-page-width", `${_}`);
55
+ let { contentWrapperPaddingBottomNumber: b, contentWrapperPaddingTopNumber: x, contentWrapperPadding: S, contentWrapperPaddingTopBottom: C } = this.getContentWrapperPadding(s, r);
56
+ this.rendererContainer.setAttribute("data-page-height", `${o - x - b}`), d.set(n.ContentWrapperWidth, y + "px"), t == "scroll" ? d.set(n.ContentWrapperMinWidth, y + "px") : d.set(n.ContentWrapperMinWidth, _ + r / 2 + "px"), d.set(n.ContentWrapperHeight, this.getContentWrapperHeight()), d.set(n.ContentWrapperMinHeight, o + "px"), d.set(n.ContentWrapperMaxHeight, o + "px"), d.set(n.ContentWrapperPadding, S), t == "page" ? d.set(n.ContentContainerWidth, _ + "px") : d.set(n.ContentContainerWidth, "100%");
57
+ let w = `calc(var(${n.ContentWrapperHeight}) - ${C})`;
58
+ return d.set(n.ContentContainerHeight, w), d.set(n.ContentColumnGap, r + "px"), this.rendererContainer && (d.set(n.ContentsContainerOffsetLeft, "calc((" + this.rendererContainer.clientWidth + "px - " + c + ") / 2)"), this.updateCssVariablesTimeoutId = setTimeout(() => {
59
+ let t = /* @__PURE__ */ new Map();
60
+ t.set(n.ContentsContainerOffsetLeft, this.contentsContainer.offsetLeft + "px"), t.forEach((t, n) => {
61
+ e.style.setProperty(n, t);
62
+ }), e && t.forEach((t, n) => {
63
+ e.style.setProperty(n, t);
64
+ });
65
+ }, 1e3)), d;
66
+ }
67
+ buildLayoutMetrics() {
68
+ let e = this.getFlipMode(), t = new r(), n = this.rendererContainer, { clientWidth: i, clientHeight: a } = n, o = parseFloat(n.getAttribute("data-transform-length"));
69
+ t.clientWidth = i;
70
+ let s;
71
+ return s = e == "scroll" ? this.rendererContainer.ownerDocument.defaultView.innerHeight - this.optionsProvider.getHeaderHeight() - this.optionsProvider.getFooterHeight() : parseFloat(n.getAttribute("data-page-height")), t.clientHeight = a, t.pageHeight = s, t.columnHeight = s, t.columnGap = parseFloat(n.getAttribute("data-column-gap")), t.columnWidth = parseFloat(n.getAttribute("data-column-width")), t.pageWidth = parseFloat(n.getAttribute("data-page-width")), t.pageMoveLength = o, t.shadowWidth = parseFloat(n.getAttribute("data-shadow-width")), t;
72
+ }
73
+ getContentWrapperHeight() {
74
+ return this.getFlipMode() == "page" ? `${this.rendererContainer.clientHeight}px` : this.owner.inIframe ? "100%" : "auto";
75
+ }
76
+ getContentsShadowMargin() {
77
+ return this.htmlOptions.contentsShadowMargin ?? 10;
78
+ }
79
+ getContentWrapperPadding(e, t) {
80
+ let n = this.getFlipMode(), r = this.getContentPaddingFactor(), i = n == "scroll" ? 30 : 0, a = this.getContentsShadowMargin();
81
+ n == "page" && (i += a);
82
+ let o = i + "px", s = n == "scroll" ? 30 : 0;
83
+ n == "page" && (s += a), n == "scroll" && s < this.options.minFooterHeight && (s = this.options.minFooterHeight);
84
+ let c = this.getContentsShadowMargin() + Math.min(20, e * r), l = s + "px";
85
+ return {
86
+ contentWrapperPaddingTop: o,
87
+ contentWrapperPaddingLeft: n == "scroll" ? `${c}px` : "0",
88
+ contentWrapperPaddingRight: n == "scroll" ? `${c}px` : "0",
89
+ contentWrapperPaddingBottom: l,
90
+ contentWrapperPaddingLeftRight: n == "scroll" ? `${t}px` : "0",
91
+ contentWrapperPaddingTopBottom: `${i + s}px`,
92
+ contentWrapperPadding: n == "scroll" ? `${i}px ${c}px ${s}px ${c}px` : `${i}px 0 0 0px`,
93
+ contentWrapperPaddingTopNumber: i,
94
+ contentWrapperPaddingBottomNumber: s
95
+ };
96
+ }
97
+ getContentsContainerWidth() {
98
+ let { width: e } = this.rendererContainer.getBoundingClientRect(), t = e;
99
+ if (this.device.getDeviceType() == "mobile" && t <= 768) return t;
100
+ if (this.getFlipMode() == "scroll") return this.htmlOptions.enableAutoFitPageWidth ? t : this.htmlOptions.maxScrollContentWidth ? Math.min(t, Math.abs(this.htmlOptions.maxScrollContentWidth)) : Math.min(t, this.htmlOptions.columnWidth);
101
+ let n = this.htmlOptions.columns, r = this.getColumnWidth();
102
+ if (this.htmlOptions.autoColumns) {
103
+ if (!this.htmlOptions.maxColumns) return t;
104
+ n = t <= r ? 1 : this.htmlOptions.maxColumns;
105
+ }
106
+ let i = this.getMultiColumnWidthFactor();
107
+ return n > 1 ? Math.min(t, n * r * i) : Math.min(t, r);
108
+ }
109
+ calculateColumns(e) {
110
+ let t = this.htmlOptions.columns ?? 1, n = this.getColumnWidth();
111
+ if (this.htmlOptions.autoColumns) {
112
+ if (e <= n) t = 1;
113
+ else {
114
+ t = Math.floor(e / n);
115
+ let r = e % n;
116
+ (r > n / 5 || r > t * 50) && (t += 1), this.htmlOptions.maxColumns && t > this.htmlOptions.maxColumns && (t = this.htmlOptions.maxColumns);
117
+ }
118
+ }
119
+ return t;
120
+ }
121
+ getFinalColumnWidth(e, t, n) {
122
+ let r = n * (t - 1), i = (e - r) / t, a = 0, o = Math.round(i);
123
+ return o != i && (i = o, a = e - (t * o + r)), {
124
+ columnWidth: i,
125
+ remainder: a
126
+ };
127
+ }
128
+ getContentPaddingFactor() {
129
+ return this.device.getDeviceType() == "mobile" ? .01 : .05;
130
+ }
131
+ getMultiColumnWidthFactor() {
132
+ let e = this.htmlOptions.multiColumnWidthFactor;
133
+ return e ||= .8, e = Math.abs(e), e < .5 && (e = .5), e > 1 && (e = 1), e;
134
+ }
135
+ getFlipMode() {
136
+ return this.htmlOptions.forceScroll ? "scroll" : this.htmlOptions.flipMode;
137
+ }
138
+ async dispose() {
139
+ this.updateCssVariablesTimeoutId &&= (clearTimeout(this.updateCssVariablesTimeoutId), null);
140
+ }
170
141
  };
142
+ //#endregion
143
+ export { a as HtmlRendererViewport };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=class t{};t.ContentsContainerWidth="--contents-container-width",t.ContentsContainerOffsetLeft="--contents-container-offsetleft",t.ContentsContainerPadding="--contents-container-padding",t.ScrollElementOverflow="--scroll-element-overflow",t.ScrollElementVerticalScrollBarWidth="--scroll-element-vertial-scrollbar-width",t.ScrollElementHorizontalScrollBarHeight="--scroll-element-horizontal-scrollbar-height",t.ContentWrapperWidth="--content-wrapper-width",t.ContentWrapperMinWidth="--content-wrapper-min-width",t.ContentWrapperHeight="--content-wrapper-height",t.ContentWrapperPadding="--content-wrapper-padding",t.ContentWrapperMinHeight="--content-wrapper-min-height",t.ContentWrapperMaxHeight="--content-wrapper-max-height",t.ContentWrapperMarginTop="--content-wrapper-margin-top",t.ContentWrapperMarginBottom="--content-wrapper-margin-bottom",t.ContentWrapperBorderRadius="--content-wrapper-border-radius",t.ContentContainerWidth="--content-container-width",t.ContentContainerHeight="--content-container-height",t.ContentColumnGap="--content-column-gap",t.ContentColumnRuleWidth="--content-column-rule-width";let n=t;exports.ViewportCssVariableNames=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{static{this.ContentsContainerWidth=`--contents-container-width`}static{this.ContentsContainerOffsetLeft=`--contents-container-offsetleft`}static{this.ContentsContainerPadding=`--contents-container-padding`}static{this.ScrollElementOverflow=`--scroll-element-overflow`}static{this.ScrollElementVerticalScrollBarWidth=`--scroll-element-vertial-scrollbar-width`}static{this.ScrollElementHorizontalScrollBarHeight=`--scroll-element-horizontal-scrollbar-height`}static{this.ContentWrapperWidth=`--content-wrapper-width`}static{this.ContentWrapperMinWidth=`--content-wrapper-min-width`}static{this.ContentWrapperHeight=`--content-wrapper-height`}static{this.ContentWrapperPadding=`--content-wrapper-padding`}static{this.ContentWrapperMinHeight=`--content-wrapper-min-height`}static{this.ContentWrapperMaxHeight=`--content-wrapper-max-height`}static{this.ContentWrapperMarginTop=`--content-wrapper-margin-top`}static{this.ContentWrapperMarginBottom=`--content-wrapper-margin-bottom`}static{this.ContentWrapperBorderRadius=`--content-wrapper-border-radius`}static{this.ContentContainerWidth=`--content-container-width`}static{this.ContentContainerHeight=`--content-container-height`}static{this.ContentColumnGap=`--content-column-gap`}static{this.ContentColumnRuleWidth=`--content-column-rule-width`}};exports.ViewportCssVariableNames=e;
@@ -1,7 +1,62 @@
1
- const t = class t {
2
- };
3
- t.ContentsContainerWidth = "--contents-container-width", t.ContentsContainerOffsetLeft = "--contents-container-offsetleft", t.ContentsContainerPadding = "--contents-container-padding", t.ScrollElementOverflow = "--scroll-element-overflow", t.ScrollElementVerticalScrollBarWidth = "--scroll-element-vertial-scrollbar-width", t.ScrollElementHorizontalScrollBarHeight = "--scroll-element-horizontal-scrollbar-height", t.ContentWrapperWidth = "--content-wrapper-width", t.ContentWrapperMinWidth = "--content-wrapper-min-width", t.ContentWrapperHeight = "--content-wrapper-height", t.ContentWrapperPadding = "--content-wrapper-padding", t.ContentWrapperMinHeight = "--content-wrapper-min-height", t.ContentWrapperMaxHeight = "--content-wrapper-max-height", t.ContentWrapperMarginTop = "--content-wrapper-margin-top", t.ContentWrapperMarginBottom = "--content-wrapper-margin-bottom", t.ContentWrapperBorderRadius = "--content-wrapper-border-radius", t.ContentContainerWidth = "--content-container-width", t.ContentContainerHeight = "--content-container-height", t.ContentColumnGap = "--content-column-gap", t.ContentColumnRuleWidth = "--content-column-rule-width";
4
- let n = t;
5
- export {
6
- n as ViewportCssVariableNames
1
+ //#region mediaTypes/html/renderer/layout/ViewportCssVariableNames.ts
2
+ var e = class {
3
+ static {
4
+ this.ContentsContainerWidth = "--contents-container-width";
5
+ }
6
+ static {
7
+ this.ContentsContainerOffsetLeft = "--contents-container-offsetleft";
8
+ }
9
+ static {
10
+ this.ContentsContainerPadding = "--contents-container-padding";
11
+ }
12
+ static {
13
+ this.ScrollElementOverflow = "--scroll-element-overflow";
14
+ }
15
+ static {
16
+ this.ScrollElementVerticalScrollBarWidth = "--scroll-element-vertial-scrollbar-width";
17
+ }
18
+ static {
19
+ this.ScrollElementHorizontalScrollBarHeight = "--scroll-element-horizontal-scrollbar-height";
20
+ }
21
+ static {
22
+ this.ContentWrapperWidth = "--content-wrapper-width";
23
+ }
24
+ static {
25
+ this.ContentWrapperMinWidth = "--content-wrapper-min-width";
26
+ }
27
+ static {
28
+ this.ContentWrapperHeight = "--content-wrapper-height";
29
+ }
30
+ static {
31
+ this.ContentWrapperPadding = "--content-wrapper-padding";
32
+ }
33
+ static {
34
+ this.ContentWrapperMinHeight = "--content-wrapper-min-height";
35
+ }
36
+ static {
37
+ this.ContentWrapperMaxHeight = "--content-wrapper-max-height";
38
+ }
39
+ static {
40
+ this.ContentWrapperMarginTop = "--content-wrapper-margin-top";
41
+ }
42
+ static {
43
+ this.ContentWrapperMarginBottom = "--content-wrapper-margin-bottom";
44
+ }
45
+ static {
46
+ this.ContentWrapperBorderRadius = "--content-wrapper-border-radius";
47
+ }
48
+ static {
49
+ this.ContentContainerWidth = "--content-container-width";
50
+ }
51
+ static {
52
+ this.ContentContainerHeight = "--content-container-height";
53
+ }
54
+ static {
55
+ this.ContentColumnGap = "--content-column-gap";
56
+ }
57
+ static {
58
+ this.ContentColumnRuleWidth = "--content-column-rule-width";
59
+ }
7
60
  };
61
+ //#endregion
62
+ export { e as ViewportCssVariableNames };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("../../../../kernal/common/text.cjs"),h=require("../../../../kernal/html/finder.cjs"),f=require("../../../../kernal/progress/Progress.cjs"),S=require("../../../../kernal/html/position.cjs"),p=require("../../../../kernal/common/url.cjs");class b{constructor(r){this.documentsProvider=r}async locateElement(r,e,a){let t,l,m=!1;const g=a.flipMode,s=r.getContentContainer(),u={removeHtmlWhitespace:a.removeHtmlWhitespace,whitespaceRegex:a.whitespaceRegex,nonWhiteSpaceSymbolTagNames:a.nonWhiteSpaceSymbolTagNames},c=e.symbolType??a.symbolType;if(!y.isNullOrWhiteSpace(e.tagName))t=h.getElementByNameAndIndex(s,e.tagName,e.tagIndex);else if(e.current!=null){const o=e.unit??"ratio",n=e.current??0;if(o==="page"){const i=await this.locateByPageUnit(r,s,e,n,g,c,u);t=i.target,l=i.pageNumber,m=i.isDocumentStart}else if(o==="symbol"){const i=this.locateBySymbolUnit(s,n,c,u);t=i.target,m=i.isDocumentStart}else{const i=await this.locateByRatioUnit(r,s,e,n,g,c,u);t=i.target,l=i.pageNumber,m=i.isDocumentStart}}else{const o=p.getUrlFragment(e?.url??"").anchor;let n=s;if(y.isNullOrWhiteSpace(o))m=!0;else{const i=s.ownerDocument.getElementById(o);i!=null&&(n=i)}t=n}return t?g=="page"&&!l&&(l=await r.getPageNumber(t)):(t=s,g=="page"&&!l&&(l=1)),h.compareTagName(t.tagName,"BODY")&&(m=!0),{target:t,pageNumber:l,isDocumentStart:m}}async locateByPageUnit(r,e,a,t,l,m,g){if(t==0)return{target:e,pageNumber:1,isDocumentStart:!0};const s=await r.getNumberOfPages();let u=t;if(a.total>1&&a.total!=s&&(u=Math.ceil(s*(a.current/a.total))),l=="page")return{pageNumber:u,isDocumentStart:!1};if(u<=1||s<=1)return{target:e,isDocumentStart:!0};if(u>=s)return this.locateElementByRatio(e,f.Progress.Max,m,g);const c=(u-1)/s;return this.locateElementByRatio(e,c,m,g)}locateBySymbolUnit(r,e,a,t){if(e==0)return{target:r,isDocumentStart:!0};const l=S.getElementByPosition(r,e,a,!1,t);return l?.element?{target:l.element,isDocumentStart:!1}:r.lastElementChild?{target:r.lastElementChild,isDocumentStart:!1}:{target:r,isDocumentStart:!1}}async locateByRatioUnit(r,e,a,t,l,m,g){if(l=="page"){if(t==0)return{target:e,pageNumber:1,isDocumentStart:!0};const s=await r.getNumberOfPages();let u=t;return a.total>1&&a.total!=s&&(u=Math.ceil(s*(a.current/a.total))),u>=f.Progress.Min&&u<=f.Progress.Max?this.locateElementByRatio(e,u,m,g):{pageNumber:u,isDocumentStart:!1}}return this.locateElementByRatio(e,t,m,g)}locateElementByRatio(r,e,a,t){return e>=f.Progress.Max&&r.lastElementChild?{target:r.lastElementChild,isDocumentStart:!1}:{target:S.getElementByProgress(r,e,a,t)?.element,isDocumentStart:!1}}}exports.HtmlElementLocator=b;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/common/text.cjs"),t=require("../../../../kernal/common/url.cjs"),n=require("../../../../kernal/progress/Progress.cjs"),r=require("../../../../kernal/html/finder.cjs"),i=require("../../../../kernal/html/position.cjs");var a=class{constructor(e){this.documentsProvider=e}async locateElement(n,i,a){let o,s,c=!1,l=a.flipMode,u=n.getContentContainer(),d={removeHtmlWhitespace:a.removeHtmlWhitespace,whitespaceRegex:a.whitespaceRegex,nonWhiteSpaceSymbolTagNames:a.nonWhiteSpaceSymbolTagNames},f=i.symbolType??a.symbolType;if(!e.isNullOrWhiteSpace(i.tagName))o=r.getElementByNameAndIndex(u,i.tagName,i.tagIndex);else if(i.current!=null){let e=i.unit??`ratio`,t=i.current??0;if(e===`page`){let e=await this.locateByPageUnit(n,u,i,t,l,f,d);o=e.target,s=e.pageNumber,c=e.isDocumentStart}else if(e===`symbol`){let e=this.locateBySymbolUnit(u,t,f,d);o=e.target,c=e.isDocumentStart}else{let e=await this.locateByRatioUnit(n,u,i,t,l,f,d);o=e.target,s=e.pageNumber,c=e.isDocumentStart}}else{let n=t.getUrlFragment(i?.url??``).anchor,r=u;if(e.isNullOrWhiteSpace(n))c=!0;else{let e=u.ownerDocument.getElementById(n);e!=null&&(r=e)}o=r}return o?l==`page`&&!s&&(s=await n.getPageNumber(o)):(o=u,l==`page`&&!s&&(s=1)),r.compareTagName(o.tagName,`BODY`)&&(c=!0),{target:o,pageNumber:s,isDocumentStart:c}}async locateByPageUnit(e,t,r,i,a,o,s){if(i==0)return{target:t,pageNumber:1,isDocumentStart:!0};let c=await e.getNumberOfPages(),l=i;if(r.total>1&&r.total!=c&&(l=Math.ceil(c*(r.current/r.total))),a==`page`)return{pageNumber:l,isDocumentStart:!1};if(l<=1||c<=1)return{target:t,isDocumentStart:!0};if(l>=c)return this.locateElementByRatio(t,n.Progress.Max,o,s);let u=(l-1)/c;return this.locateElementByRatio(t,u,o,s)}locateBySymbolUnit(e,t,n,r){if(t==0)return{target:e,isDocumentStart:!0};let a=i.getElementByPosition(e,t,n,!1,r);return a?.element?{target:a.element,isDocumentStart:!1}:e.lastElementChild?{target:e.lastElementChild,isDocumentStart:!1}:{target:e,isDocumentStart:!1}}async locateByRatioUnit(e,t,r,i,a,o,s){if(a==`page`){if(i==0)return{target:t,pageNumber:1,isDocumentStart:!0};let a=await e.getNumberOfPages(),c=i;return r.total>1&&r.total!=a&&(c=Math.ceil(a*(r.current/r.total))),c>=n.Progress.Min&&c<=n.Progress.Max?this.locateElementByRatio(t,c,o,s):{pageNumber:c,isDocumentStart:!1}}return this.locateElementByRatio(t,i,o,s)}locateElementByRatio(e,t,r,a){return t>=n.Progress.Max&&e.lastElementChild?{target:e.lastElementChild,isDocumentStart:!1}:{target:i.getElementByProgress(e,t,r,a)?.element,isDocumentStart:!1}}};exports.HtmlElementLocator=a;