@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,193 +1,169 @@
1
+ import { uaParser as e } from "./ua.mjs";
1
2
  import "scheduler-polyfill";
2
- import { uaParser as a } from "./ua.mjs";
3
- const i = class i {
4
- /** Whether the device supports touch input. */
5
- static isSupportTouch() {
6
- return this.currentIsSupportTouch == null && (this.currentIsSupportTouch = "ontouchstart" in globalThis), this.currentIsSupportTouch;
7
- }
8
- /**
9
- * Whether any pointing device is fine (mouse / trackpad).
10
- * Corresponds to CSS `@media (any-pointer: fine)`.
11
- * Prefer this over {@link isSupportTouch} on hybrid devices (touch laptops).
12
- */
13
- static hasFinePointer() {
14
- return this.currentHasFinePointer == null && (this.currentHasFinePointer = this.matchesMedia("(any-pointer: fine)")), this.currentHasFinePointer;
15
- }
16
- /**
17
- * Whether any pointing device is coarse (finger / stylus without hover).
18
- * Corresponds to CSS `@media (any-pointer: coarse)`.
19
- */
20
- static hasCoarsePointer() {
21
- return this.currentHasCoarsePointer == null && (this.currentHasCoarsePointer = this.matchesMedia("(any-pointer: coarse)")), this.currentHasCoarsePointer;
22
- }
23
- /**
24
- * Whether any input device can hover.
25
- * Corresponds to CSS `@media (any-hover: hover)`.
26
- */
27
- static canHover() {
28
- return this.currentCanHover == null && (this.currentCanHover = this.matchesMedia("(any-hover: hover)")), this.currentCanHover;
29
- }
30
- static matchesMedia(t) {
31
- return !!(globalThis.matchMedia && globalThis.matchMedia(t).matches);
32
- }
33
- static getBrowserName() {
34
- return this.getBrowserData().name;
35
- }
36
- static getBrowserVersion() {
37
- return this.getBrowserData().version;
38
- }
39
- static getBrowserData() {
40
- return this.browserData == null && (this.browserData = this.env.getBrowser()), this.browserData;
41
- }
42
- static isIE() {
43
- const t = this.getBrowserName().toLowerCase();
44
- return t == "msie" || t == "ie";
45
- }
46
- static isChrome() {
47
- return /Chrome/i.test(this.getBrowserName());
48
- }
49
- static isEdge() {
50
- return /Edge/i.test(this.getBrowserName());
51
- }
52
- static isFirefox() {
53
- return /Firefox/i.test(this.getBrowserName());
54
- }
55
- static isSafari() {
56
- return /Safari/i.test(this.getBrowserName());
57
- }
58
- static isOpera() {
59
- return /Opera/i.test(this.getBrowserName());
60
- }
61
- /** Whether WebAssembly is supported. */
62
- static supportWebAssembly() {
63
- if (this.isSupportWebAssembly != null) return this.isSupportWebAssembly;
64
- const t = globalThis.WebAssembly;
65
- return typeof t == "object" && typeof t.Memory == "function" && (typeof t.instantiateStreaming == "function" || typeof t.instantiate == "function") && (this.isSupportWebAssembly = !0), this.isSupportWebAssembly == null && (this.isSupportWebAssembly = !1), this.isSupportWebAssembly;
66
- }
67
- /** Whether CSS custom properties are supported. */
68
- static supportCssVariables() {
69
- return !!(globalThis.CSS && globalThis.CSS.supports && globalThis.CSS.supports("color", "var(--fake-var)"));
70
- }
71
- /**
72
- * Whether a CSS property/value pair is supported.
73
- * @param propertyName Property name.
74
- * @param propertyValue Property value.
75
- */
76
- static supportCssProperty(t, e) {
77
- return globalThis.CSS && globalThis.CSS.supports && globalThis.CSS.supports(t, e);
78
- }
79
- /** Whether CSS aspect-ratio is supported. */
80
- static supportCssAspectRatio() {
81
- return this.supportCssProperty("aspect-ratio", "4/3");
82
- }
83
- /** Whether CSS overflow-anchor is supported. */
84
- static supportCssOverflowAnchor() {
85
- return this.supportCssProperty("overflow-anchor", "auto");
86
- }
87
- static supportCssHas() {
88
- return this.supportCssSelector("p:has(>img)");
89
- }
90
- static supportCssSelector(t) {
91
- if (this.supportCssSelectorMap.has(t))
92
- return this.supportCssSelectorMap.get(t);
93
- let e = !1;
94
- try {
95
- document.querySelector(t), e = !0;
96
- } catch {
97
- e = !1;
98
- }
99
- return this.supportCssSelectorMap.set(t, e), e;
100
- }
101
- /** Whether CSS max()/min() functions are supported. */
102
- static supportCssMinMaxFunction() {
103
- if (this.isSupportCssMinMaxFunction != null) return this.isSupportCssMinMaxFunction;
104
- const t = document.body;
105
- if (t) {
106
- const e = document.createElement("div");
107
- e.style.height = "10px", e.style.width = "10px", t.appendChild(e);
108
- const s = e.scrollHeight, r = s - 2, n = s - 5;
109
- e.style.setProperty("max-height", "max(" + r + "px," + n + "px)", "important"), e.scrollHeight == r ? this.isSupportCssMinMaxFunction = !0 : this.isSupportCssMinMaxFunction = !1, t.removeChild(e);
110
- } else
111
- this.isSupportCssMinMaxFunction = !1;
112
- return this.isSupportCssMinMaxFunction;
113
- }
114
- /** Whether showOpenFilePicker is supported. */
115
- static supportShowOpenFilePicker() {
116
- return !!globalThis.showOpenFilePicker;
117
- }
118
- /** Whether scrollBehavior (smooth scrolling) is supported. */
119
- static supportScrollBehavior() {
120
- return "scrollBehavior" in document.documentElement.style;
121
- }
122
- /** Whether the passive event listener option is supported. */
123
- static supportPassive() {
124
- try {
125
- var t = {};
126
- Object.defineProperty(t, "passive", {
127
- get: () => {
128
- this.supportsPassive = !0;
129
- }
130
- }), globalThis.addEventListener("test-passive", null, t);
131
- } catch {
132
- }
133
- return this.supportsPassive ?? !1;
134
- }
135
- /** Whether fullscreen is supported. */
136
- static supportFullscreen() {
137
- return document.fullscreenEnabled;
138
- }
139
- /** Enters fullscreen mode for the given element. */
140
- static async enterFullScreen(t) {
141
- if (!t)
142
- return;
143
- if (t.ownerDocument.fullscreenEnabled) {
144
- const r = this.getSupportPropertyName(["requestFullscreen", "mozRequestFullScreen", "webkitRequestFullscreen", "msRequestFullscreen"], t);
145
- r && await t[r]();
146
- }
147
- }
148
- static getSupportPropertyName(t, e) {
149
- return t.find((s) => s in e);
150
- }
151
- /** Exits fullscreen mode. */
152
- static async exitFullScreen(t) {
153
- if (!t)
154
- return;
155
- if (t.fullscreenEnabled) {
156
- const s = this.getSupportPropertyName(["exitFullScreen", "mozCancelFullScreen", "webkitExitFullscreen", "msExitFullscreen"], t);
157
- s && await t[s]();
158
- }
159
- }
160
- /** Whether the document is currently in fullscreen mode. */
161
- static checkIsFullScreen(t) {
162
- if (!t)
163
- return;
164
- if (t.fullscreenEnabled) {
165
- const s = this.getSupportPropertyName(["fullscreenElement", "mozFullScreenElement", "msFullScreenElement", "wenkitFullscreenElement"], t);
166
- if (s && t[s]) return !0;
167
- }
168
- return !1;
169
- }
170
- /** Whether copying PNG images to the clipboard is supported. */
171
- static supportClipboardPng() {
172
- if (this.isSupportClipboardPng != null)
173
- return this.isSupportClipboardPng;
174
- try {
175
- globalThis.ClipboardItem ? this.isSupportClipboardPng = !0 : this.isSupportClipboardPng = !1;
176
- } catch {
177
- this.isSupportClipboardPng = !1;
178
- }
179
- return this.isSupportClipboardPng;
180
- }
181
- /** Whether the Scheduling API is supported. */
182
- static supportScheduler() {
183
- return this.currentSupportScheduler == null && (this.currentSupportScheduler = typeof scheduler < "u" && typeof scheduler.yield == "function"), this.currentSupportScheduler;
184
- }
185
- static async yieldToMain() {
186
- this.supportScheduler() ? await scheduler.yield() : await new Promise((t) => setTimeout(t, 0));
187
- }
188
- };
189
- i.env = a, i.supportCssSelectorMap = /* @__PURE__ */ new Map();
190
- let o = i;
191
- export {
192
- o as BrowserCapabilities
3
+ //#region kernal/web/BrowserCapabilities.ts
4
+ var t = class {
5
+ static {
6
+ this.env = e;
7
+ }
8
+ static isSupportTouch() {
9
+ return this.currentIsSupportTouch ??= "ontouchstart" in globalThis, this.currentIsSupportTouch;
10
+ }
11
+ static hasFinePointer() {
12
+ return this.currentHasFinePointer ??= this.matchesMedia("(any-pointer: fine)"), this.currentHasFinePointer;
13
+ }
14
+ static hasCoarsePointer() {
15
+ return this.currentHasCoarsePointer ??= this.matchesMedia("(any-pointer: coarse)"), this.currentHasCoarsePointer;
16
+ }
17
+ static canHover() {
18
+ return this.currentCanHover ??= this.matchesMedia("(any-hover: hover)"), this.currentCanHover;
19
+ }
20
+ static matchesMedia(e) {
21
+ return !!(globalThis.matchMedia && globalThis.matchMedia(e).matches);
22
+ }
23
+ static getBrowserName() {
24
+ return this.getBrowserData().name;
25
+ }
26
+ static getBrowserVersion() {
27
+ return this.getBrowserData().version;
28
+ }
29
+ static getBrowserData() {
30
+ return this.browserData ??= this.env.getBrowser(), this.browserData;
31
+ }
32
+ static isIE() {
33
+ let e = this.getBrowserName().toLowerCase();
34
+ return e == "msie" || e == "ie";
35
+ }
36
+ static isChrome() {
37
+ return /Chrome/i.test(this.getBrowserName());
38
+ }
39
+ static isEdge() {
40
+ return /Edge/i.test(this.getBrowserName());
41
+ }
42
+ static isFirefox() {
43
+ return /Firefox/i.test(this.getBrowserName());
44
+ }
45
+ static isSafari() {
46
+ return /Safari/i.test(this.getBrowserName());
47
+ }
48
+ static isOpera() {
49
+ return /Opera/i.test(this.getBrowserName());
50
+ }
51
+ static supportWebAssembly() {
52
+ if (this.isSupportWebAssembly != null) return this.isSupportWebAssembly;
53
+ let e = globalThis.WebAssembly;
54
+ return typeof e == "object" && typeof e.Memory == "function" && (typeof e.instantiateStreaming == "function" || typeof e.instantiate == "function") && (this.isSupportWebAssembly = !0), this.isSupportWebAssembly ??= !1, this.isSupportWebAssembly;
55
+ }
56
+ static supportCssVariables() {
57
+ return !!(globalThis.CSS && globalThis.CSS.supports && globalThis.CSS.supports("color", "var(--fake-var)"));
58
+ }
59
+ static supportCssProperty(e, t) {
60
+ return globalThis.CSS && globalThis.CSS.supports && globalThis.CSS.supports(e, t);
61
+ }
62
+ static supportCssAspectRatio() {
63
+ return this.supportCssProperty("aspect-ratio", "4/3");
64
+ }
65
+ static supportCssOverflowAnchor() {
66
+ return this.supportCssProperty("overflow-anchor", "auto");
67
+ }
68
+ static supportCssHas() {
69
+ return this.supportCssSelector("p:has(>img)");
70
+ }
71
+ static {
72
+ this.supportCssSelectorMap = /* @__PURE__ */ new Map();
73
+ }
74
+ static supportCssSelector(e) {
75
+ if (this.supportCssSelectorMap.has(e)) return this.supportCssSelectorMap.get(e);
76
+ let t = !1;
77
+ try {
78
+ document.querySelector(e), t = !0;
79
+ } catch {
80
+ t = !1;
81
+ }
82
+ return this.supportCssSelectorMap.set(e, t), t;
83
+ }
84
+ static supportCssMinMaxFunction() {
85
+ if (this.isSupportCssMinMaxFunction != null) return this.isSupportCssMinMaxFunction;
86
+ let e = document.body;
87
+ if (e) {
88
+ let t = document.createElement("div");
89
+ t.style.height = "10px", t.style.width = "10px", e.appendChild(t);
90
+ let n = t.scrollHeight, r = n - 2, i = n - 5;
91
+ t.style.setProperty("max-height", "max(" + r + "px," + i + "px)", "important"), this.isSupportCssMinMaxFunction = t.scrollHeight == r, e.removeChild(t);
92
+ } else this.isSupportCssMinMaxFunction = !1;
93
+ return this.isSupportCssMinMaxFunction;
94
+ }
95
+ static supportShowOpenFilePicker() {
96
+ return !!globalThis.showOpenFilePicker;
97
+ }
98
+ static supportScrollBehavior() {
99
+ return "scrollBehavior" in document.documentElement.style;
100
+ }
101
+ static supportPassive() {
102
+ try {
103
+ var e = {};
104
+ Object.defineProperty(e, "passive", { get: () => {
105
+ this.supportsPassive = !0;
106
+ } }), globalThis.addEventListener("test-passive", null, e);
107
+ } catch {}
108
+ return this.supportsPassive ?? !1;
109
+ }
110
+ static supportFullscreen() {
111
+ return document.fullscreenEnabled;
112
+ }
113
+ static async enterFullScreen(e) {
114
+ if (e && e.ownerDocument.fullscreenEnabled) {
115
+ let t = this.getSupportPropertyName([
116
+ "requestFullscreen",
117
+ "mozRequestFullScreen",
118
+ "webkitRequestFullscreen",
119
+ "msRequestFullscreen"
120
+ ], e);
121
+ t && await e[t]();
122
+ }
123
+ }
124
+ static getSupportPropertyName(e, t) {
125
+ return e.find((e) => e in t);
126
+ }
127
+ static async exitFullScreen(e) {
128
+ if (e && e.fullscreenEnabled) {
129
+ let t = this.getSupportPropertyName([
130
+ "exitFullScreen",
131
+ "mozCancelFullScreen",
132
+ "webkitExitFullscreen",
133
+ "msExitFullscreen"
134
+ ], e);
135
+ t && await e[t]();
136
+ }
137
+ }
138
+ static checkIsFullScreen(e) {
139
+ if (e) {
140
+ if (e.fullscreenEnabled) {
141
+ let t = this.getSupportPropertyName([
142
+ "fullscreenElement",
143
+ "mozFullScreenElement",
144
+ "msFullScreenElement",
145
+ "wenkitFullscreenElement"
146
+ ], e);
147
+ if (t && e[t]) return !0;
148
+ }
149
+ return !1;
150
+ }
151
+ }
152
+ static supportClipboardPng() {
153
+ if (this.isSupportClipboardPng != null) return this.isSupportClipboardPng;
154
+ try {
155
+ this.isSupportClipboardPng = !!globalThis.ClipboardItem;
156
+ } catch {
157
+ this.isSupportClipboardPng = !1;
158
+ }
159
+ return this.isSupportClipboardPng;
160
+ }
161
+ static supportScheduler() {
162
+ return this.currentSupportScheduler ??= typeof scheduler < "u" && typeof scheduler.yield == "function", this.currentSupportScheduler;
163
+ }
164
+ static async yieldToMain() {
165
+ this.supportScheduler() ? await scheduler.yield() : await new Promise((e) => setTimeout(e, 0));
166
+ }
193
167
  };
168
+ //#endregion
169
+ export { t as BrowserCapabilities };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("ua-parser-js"),r=new e.UAParser;exports.uaParser=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=new(require("ua-parser-js")).UAParser;exports.uaParser=e;
@@ -1,5 +1,5 @@
1
- import { UAParser as r } from "ua-parser-js";
2
- const o = new r();
3
- export {
4
- o as uaParser
5
- };
1
+ import { UAParser as e } from "ua-parser-js";
2
+ //#region kernal/web/ua.ts
3
+ var t = new e();
4
+ //#endregion
5
+ export { t as uaParser };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../kernal/common/text.cjs"),p=require("../kernal/html/finder.cjs"),L=(t,e,n,i,g)=>{if(n=S(e,n),!n)return i;const d=/[\s]+/g;let l=u.getByteLength(i),o=!1;for(;n?.nextElementSibling;){const r=n.nextElementSibling.textContent.replace(d," ");let c=u.getByteLength(r);if(l+c>=g){const f=u.cutString(r,g-l,"..");b(t,n.nextElementSibling.tagName)?i+=" "+f:i+=f,o=!0;break}else b(t,n.nextElementSibling.tagName)?i+=" "+r:i+=r,l+=c,n=n.nextElementSibling}return o?i:L(t,e,n,i,g)},S=(t,e)=>{if(!e||p.compareTagName(e.tagName,"BODY")||p.compareTagName(e.tagName,"HTML")||t==".pdf"&&e.classList.contains("page"))return null;for(;!e.nextElementSibling&&!(p.compareTagName(e.tagName,"BODY")||p.compareTagName(e.tagName,"HTML")||!e.parentElement||t==".pdf"&&e.classList.contains("page"));)e=e.parentElement;return e},b=(t,e)=>!e||!t?!0:t.includes(e.toLowerCase()),N=(t,e,n,i,g)=>{g=g??32,g<=0&&(g=32);const l=g*2;let o=i;if(!i){const a=t.getVisibleDocuments();if(a.length==0)return"";let h;for(let s=0;s<a.length;s++){h=a[s];const B=h.getVisibleElements(!0);if(B.length>0){o=B[0];break}}if(!o)return""}const r=/[\s]+/g;let c=o.textContent.replace(r," ");return u.getByteLength(c)>=l?u.cutString(c,l,".."):c.length>=10&&n!=".pdf"?c:L(e,n,o,c,l)};exports.checkIsBlockTag=b;exports.getAdjacentText=N;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../kernal/common/text.cjs"),t=require("../kernal/html/finder.cjs");var n=(t,a,o,s,c)=>{if(o=r(a,o),!o)return s;let l=/[\s]+/g,u=e.getByteLength(s),d=!1;for(;o?.nextElementSibling;){let n=o.nextElementSibling.textContent.replace(l,` `),r=e.getByteLength(n);if(u+r>=c){let r=e.cutString(n,c-u,`..`);i(t,o.nextElementSibling.tagName)?s+=` `+r:s+=r,d=!0;break}i(t,o.nextElementSibling.tagName)?s+=` `+n:s+=n,u+=r,o=o.nextElementSibling}return d?s:n(t,a,o,s,c)},r=(e,n)=>{if(!n||t.compareTagName(n.tagName,`BODY`)||t.compareTagName(n.tagName,`HTML`)||e==`.pdf`&&n.classList.contains(`page`))return null;for(;!n.nextElementSibling&&!(t.compareTagName(n.tagName,`BODY`)||t.compareTagName(n.tagName,`HTML`)||!n.parentElement||e==`.pdf`&&n.classList.contains(`page`));)n=n.parentElement;return n},i=(e,t)=>!t||!e||e.includes(t.toLowerCase()),a=(t,r,i,a,o)=>{o??=32,o<=0&&(o=32);let s=o*2,c=a;if(!a){let e=t.getVisibleDocuments();if(e.length==0)return``;let n;for(let t=0;t<e.length;t++){n=e[t];let r=n.getVisibleElements(!0);if(r.length>0){c=r[0];break}}if(!c)return``}let l=c.textContent.replace(/[\s]+/g,` `);return e.getByteLength(l)>=s?e.cutString(l,s,`..`):l.length>=10&&i!=`.pdf`?l:n(r,i,c,l,s)};exports.checkIsBlockTag=i,exports.getAdjacentText=a;
@@ -1,49 +1,42 @@
1
- import { getByteLength as s, cutString as B } from "../kernal/common/text.mjs";
2
- import { compareTagName as p } from "../kernal/html/finder.mjs";
3
- const S = (i, e, n, t, g) => {
4
- if (n = N(e, n), !n) return t;
5
- const a = /[\s]+/g;
6
- let l = s(t), o = !1;
7
- for (; n?.nextElementSibling; ) {
8
- const f = n.nextElementSibling.textContent.replace(a, " ");
9
- let c = s(f);
10
- if (l + c >= g) {
11
- const r = B(f, g - l, "..");
12
- L(i, n.nextElementSibling.tagName) ? t += " " + r : t += r, o = !0;
13
- break;
14
- } else
15
- L(i, n.nextElementSibling.tagName) ? t += " " + f : t += f, l += c, n = n.nextElementSibling;
16
- }
17
- return o ? t : S(i, e, n, t, g);
18
- }, N = (i, e) => {
19
- if (!e || p(e.tagName, "BODY") || p(e.tagName, "HTML") || i == ".pdf" && e.classList.contains("page")) return null;
20
- for (; !e.nextElementSibling && !(p(e.tagName, "BODY") || p(e.tagName, "HTML") || !e.parentElement || i == ".pdf" && e.classList.contains("page")); )
21
- e = e.parentElement;
22
- return e;
23
- }, L = (i, e) => !e || !i ? !0 : i.includes(e.toLowerCase()), y = (i, e, n, t, g) => {
24
- g = g ?? 32, g <= 0 && (g = 32);
25
- const l = g * 2;
26
- let o = t;
27
- if (!t) {
28
- const u = i.getVisibleDocuments();
29
- if (u.length == 0) return "";
30
- let d;
31
- for (let b = 0; b < u.length; b++) {
32
- d = u[b];
33
- const h = d.getVisibleElements(!0);
34
- if (h.length > 0) {
35
- o = h[0];
36
- break;
37
- }
38
- }
39
- if (!o)
40
- return "";
41
- }
42
- const f = /[\s]+/g;
43
- let c = o.textContent.replace(f, " ");
44
- return s(c) >= l ? B(c, l, "..") : c.length >= 10 && n != ".pdf" ? c : S(e, n, o, c, l);
45
- };
46
- export {
47
- L as checkIsBlockTag,
48
- y as getAdjacentText
1
+ import { cutString as e, getByteLength as t } from "../kernal/common/text.mjs";
2
+ import { compareTagName as n } from "../kernal/html/finder.mjs";
3
+ //#region mediaTypes/adjacent.ts
4
+ var r = (n, o, s, c, l) => {
5
+ if (s = i(o, s), !s) return c;
6
+ let u = /[\s]+/g, d = t(c), f = !1;
7
+ for (; s?.nextElementSibling;) {
8
+ let r = s.nextElementSibling.textContent.replace(u, " "), i = t(r);
9
+ if (d + i >= l) {
10
+ let t = e(r, l - d, "..");
11
+ a(n, s.nextElementSibling.tagName) ? c += " " + t : c += t, f = !0;
12
+ break;
13
+ }
14
+ a(n, s.nextElementSibling.tagName) ? c += " " + r : c += r, d += i, s = s.nextElementSibling;
15
+ }
16
+ return f ? c : r(n, o, s, c, l);
17
+ }, i = (e, t) => {
18
+ if (!t || n(t.tagName, "BODY") || n(t.tagName, "HTML") || e == ".pdf" && t.classList.contains("page")) return null;
19
+ for (; !t.nextElementSibling && !(n(t.tagName, "BODY") || n(t.tagName, "HTML") || !t.parentElement || e == ".pdf" && t.classList.contains("page"));) t = t.parentElement;
20
+ return t;
21
+ }, a = (e, t) => !t || !e || e.includes(t.toLowerCase()), o = (n, i, a, o, s) => {
22
+ s ??= 32, s <= 0 && (s = 32);
23
+ let c = s * 2, l = o;
24
+ if (!o) {
25
+ let e = n.getVisibleDocuments();
26
+ if (e.length == 0) return "";
27
+ let t;
28
+ for (let n = 0; n < e.length; n++) {
29
+ t = e[n];
30
+ let r = t.getVisibleElements(!0);
31
+ if (r.length > 0) {
32
+ l = r[0];
33
+ break;
34
+ }
35
+ }
36
+ if (!l) return "";
37
+ }
38
+ let u = l.textContent.replace(/[\s]+/g, " ");
39
+ return t(u) >= c ? e(u, c, "..") : u.length >= 10 && a != ".pdf" ? u : r(i, a, l, u, c);
49
40
  };
41
+ //#endregion
42
+ export { a as checkIsBlockTag, o as getAdjacentText };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("../../../kernal/common/mimetypes.cjs"),h=require("../../../kernal/common/number.cjs"),c=require("../../../kernal/common/path.cjs"),f=require("../../../kernal/common/text.cjs"),o=require("../../../kernal/common/url.cjs"),y=require("../../../kernal/common/buffer.cjs"),p=require("../../../kernal/services/fileUrlParser/IFileUrlParser.cjs"),d=require("../../../kernal/nav/Nav.cjs"),b=require("../../../kernal/Metadata.cjs"),F=require("../../../kernal/progress/Progress.cjs"),m=require("../../../kernal/IFileParser.cjs"),g=require("../../../kernal/services/file/IFileDecrypter.cjs"),P=require("../../../kernal/web/BrowserCapabilities.cjs");class U{constructor(t,e,r,i,s,n,a){this.crypto=t,this.fileDecrypter=e,this.fileProvider=r,this.fileUrlParser=i,this.httpClient=s,this.url=n,this.extension=a,this.nav=new d.Nav,this.metadata=new b.Metadata,this.spineFiles=[]}async buildLocation(t,e){const r=typeof t=="string"?new d.NavPoint("",t):t;return new F.FileLocation(r.url,1,"ratio")}async getTextDocuments(){return[]}async getTextDocument(t){const e=await this.getTextDocuments();if(h.isNumber(t)){const s=parseInt(t);return e[s]}const i=o.getUrlFragment(t).urlWithoutAnchor;return e.find(s=>s.url==i)}get isMultiFiles(){return this.currentIsMultiFiles??!1}async computeFileHash(t,e,r){return t?"":!r||r=="SHA-1"?this.currentWholeFileHash?this.currentWholeFileHash:(this.currentWholeFileHash=await this.crypto.digest(e,"SHA-1"),this.currentWholeFileHash):await this.crypto.digest(e,"MD5")}async load(t){const e=await this.parseUrl(this.url,{requireDownload:!1});await this.initializeDatas(e),t?.measureFilePercentage&&await this.measureFilePercentage(this.spineFiles,this.urlParseResult?.requireCalculateFileSymbolCount)}async parseUrl(t,e){e=e??new p.FileUrlParserOptions;const r=await this.fileUrlParser.parse(t,e);if(this.fileDecrypter&&r.data){const i=this.url instanceof m.FilePackage?this.url.customKey:"",s=typeof this.url=="string"?this.url:"",n=this.extension||"",a=new g.DecryptFile(n,new Uint8Array(r.data),s);a.key=i;const l=await this.fileDecrypter.decrypt(a);l&&(r.data=l.buffer)}return r}async initializeDatas(t){this.urlParseResult=t,this.currentIsMultiFiles=t.isMultiFiles??!1,this.spineFiles=t.spineFiles??[],t?.metadata&&(this.metadata=t.metadata),t?.nav&&(this.nav=t.nav)}async measureFilePercentage(t,e){if(!t)return;if(!t.find(a=>a.symbolCount==null)){t[0]?.ratio!=null&&this.applyProgressRanges(t);return}const i=t.length;if(e)for(let a=0;a<i;a++){const l=t[a];if(l.ratio==null&&(l.symbolCount==null||l.symbolCount<=0)){const u=await this.calculateSymbolCount(l,"custom");l.symbolCount=u,l.charSymbolCount=await this.calculateSymbolCount(l,"char")}await P.BrowserCapabilities.yieldToMain()}let s=0,n=0;t.forEach(a=>{(a.symbolCount==null||a.symbolCount<=0)&&(a.symbolCount=1),s+=a.symbolCount,n+=a.charSymbolCount??0}),s<=0&&(s=1),n<=0&&(n=1),t.forEach(a=>{a.ratio==null&&(a.ratio=a.symbolCount/s),a.charRatio=(a.charSymbolCount??0)/n}),this.applyProgressRanges(t)}applyProgressRanges(t){let e=0,r=0;for(const i of t){const s=i.ratio??0,n=i.charRatio??0;i.startProgress=e,i.endProgress=e+s,e=i.endProgress,i.charStartProgress=r,i.charEndProgress=r+n,r=i.charEndProgress}}async calculateSymbolCount(t,e){return 1}async getSpineFileData(t){return t.data?t.data instanceof ArrayBuffer?t.data:t.data instanceof Blob?await t.data.arrayBuffer():null:null}async getMetadata(){return this.metadata||(this.metadata=new b.Metadata),this.metadata}async getEntryFile(){return(await this.getSpineFiles())[0]}async getFile(t,e,r){const i={arraybuffer:null,blob:null,uint8array:null};if(r||(r="uint8array"),r=="uint8array"||r=="arraybuffer"){let s;try{s=await this.getFileBytes(t,e)}catch{s={data:new Uint8Array,type:""}}return r=="uint8array"?i.uint8array=s.data:i.arraybuffer=s.data.buffer,i[r]}else if(r=="blob"){let s;try{s=await this.getFileBlob(t,e)}catch{s=y.toBlob(new Uint8Array)}return i.blob=s,i[r]}return null}async getFileBlob(t,e){const{data:r,type:i}=await this.getFileBytes(t,e);return y.toBlob(r,{type:i})}async getFileBytes(t,e){if(f.isNullOrWhiteSpace(t))throw new Error("File url is empty");const r=this.buildUrl(t,e);if(f.isNullOrWhiteSpace(r))throw new Error("File url is empty");let i;if(this.fileProvider)i=await this.fileProvider.getFile(t,e);else{if(!o.checkIsAbsoluteUrl(r))throw new Error(`Cannot fetch relative file without fileProvider: ${r}`);i=await this.httpClient.get(r,{responseType:"arraybuffer",timeout:6e5})}const s=c.getExtension(t)||"";let n;if(this.fileDecrypter){const l=this.url instanceof m.FilePackage?this.url.customKey:"",u=new g.DecryptFile(s,new Uint8Array(i),r);u.key=l,n=await this.fileDecrypter.decrypt(u)}else n=new Uint8Array(i);const a=w.getMimetype(t);return{data:n,type:a}}buildUrl(t,e){if(o.checkIsAbsoluteUrl(t))return t;let r="";const i=e?.lastIndexOf("/");i>0&&(r=e.substring(0,i+1));const s=o.getFullUrl(t,r);return o.checkIsAbsoluteUrl(r)?t=s.toString():(t=s.pathname+s.search,t=t.substring(1)),t}async getNav(){return this.nav}async getSpineFile(t){if(t==null)return null;const e=await this.getSpineFiles();if(h.isNumber(t)){let a=parseInt(t);return e[a]}const i=o.getUrlFragment(t).urlWithoutAnchor;let s=e.find(a=>a.url==i);if(s)return s;const n=c.getFileName(t);return e.find(a=>c.getFileName(a.url).toLowerCase()==n.toLowerCase())}async getSpineFiles(){return this.spineFiles}async dispose(){this.revokeOwnedBlobUrls(),this.spineFiles&&this.spineFiles.splice(0),this.nav=null,this.metadata=null,this.urlParseResult=null}revokeOwnedBlobUrls(){const t=new Set;this.urlParseResult?.mainUrl&&o.checkIsBlobUrl(this.urlParseResult.mainUrl)&&t.add(this.urlParseResult.mainUrl);for(const e of this.spineFiles??[])e?.url&&o.checkIsBlobUrl(e.url)&&t.add(e.url);for(const e of t)try{URL.revokeObjectURL(e)}catch{}}}exports.BaseFileParser=U;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../kernal/common/text.cjs"),n=require("../../../kernal/common/url.cjs"),r=require("../../../kernal/common/mimetypes.cjs"),i=require("../../../kernal/common/path.cjs"),a=require("../../../kernal/Metadata.cjs"),o=require("../../../kernal/progress/Progress.cjs"),s=require("../../../kernal/IFileParser.cjs"),c=require("../../../kernal/common/buffer.cjs"),l=require("../../../kernal/common/number.cjs"),u=require("../../../kernal/services/file/IFileDecrypter.cjs"),d=require("../../../kernal/nav/Nav.cjs"),f=require("../../../kernal/services/fileUrlParser/IFileUrlParser.cjs");var p=class{constructor(e,t,n,r,i,o,s){this.crypto=e,this.fileDecrypter=t,this.fileProvider=n,this.fileUrlParser=r,this.httpClient=i,this.url=o,this.extension=s,this.nav=new d.Nav,this.metadata=new a.Metadata,this.spineFiles=[]}async buildLocation(e,t){let n=typeof e==`string`?new d.NavPoint(``,e):e;return new o.FileLocation(n.url,1,`ratio`)}async getTextDocuments(){return[]}async getTextDocument(e){let t=await this.getTextDocuments();if(l.isNumber(e))return t[parseInt(e)];let r=n.getUrlFragment(e).urlWithoutAnchor;return t.find(e=>e.url==r)}get isMultiFiles(){return this.currentIsMultiFiles??!1}async computeFileHash(e,t,n){return e?``:!n||n==`SHA-1`?(this.currentWholeFileHash||=await this.crypto.digest(t,`SHA-1`),this.currentWholeFileHash):await this.crypto.digest(t,`MD5`)}async load(e){let t=await this.parseUrl(this.url,{requireDownload:!1});await this.initializeDatas(t),e?.measureFilePercentage&&await this.measureFilePercentage(this.spineFiles,this.urlParseResult?.requireCalculateFileSymbolCount)}async parseUrl(e,t){t??=new f.FileUrlParserOptions;let n=await this.fileUrlParser.parse(e,t);if(this.fileDecrypter&&n.data){let e=this.url instanceof s.FilePackage?this.url.customKey:``,t=typeof this.url==`string`?this.url:``,r=this.extension||``,i=new u.DecryptFile(r,new Uint8Array(n.data),t);i.key=e;let a=await this.fileDecrypter.decrypt(i);a&&(n.data=a.buffer)}return n}async initializeDatas(e){this.urlParseResult=e,this.currentIsMultiFiles=e.isMultiFiles??!1,this.spineFiles=e.spineFiles??[],e?.metadata&&(this.metadata=e.metadata),e?.nav&&(this.nav=e.nav)}async measureFilePercentage(t,n){if(!t)return;if(!t.find(e=>e.symbolCount==null)){t[0]?.ratio!=null&&this.applyProgressRanges(t);return}let r=t.length;if(n)for(let n=0;n<r;n++){let r=t[n];r.ratio==null&&(r.symbolCount==null||r.symbolCount<=0)&&(r.symbolCount=await this.calculateSymbolCount(r,`custom`),r.charSymbolCount=await this.calculateSymbolCount(r,`char`)),await e.BrowserCapabilities.yieldToMain()}let i=0,a=0;t.forEach(e=>{(e.symbolCount==null||e.symbolCount<=0)&&(e.symbolCount=1),i+=e.symbolCount,a+=e.charSymbolCount??0}),i<=0&&(i=1),a<=0&&(a=1),t.forEach(e=>{e.ratio??=e.symbolCount/i,e.charRatio=(e.charSymbolCount??0)/a}),this.applyProgressRanges(t)}applyProgressRanges(e){let t=0,n=0;for(let r of e){let e=r.ratio??0,i=r.charRatio??0;r.startProgress=t,r.endProgress=t+e,t=r.endProgress,r.charStartProgress=n,r.charEndProgress=n+i,n=r.charEndProgress}}async calculateSymbolCount(e,t){return 1}async getSpineFileData(e){return e.data?e.data instanceof ArrayBuffer?e.data:e.data instanceof Blob?await e.data.arrayBuffer():null:null}async getMetadata(){return this.metadata||=new a.Metadata,this.metadata}async getEntryFile(){return(await this.getSpineFiles())[0]}async getFile(e,t,n){let r={arraybuffer:null,blob:null,uint8array:null};if(n||=`uint8array`,n==`uint8array`||n==`arraybuffer`){let i;try{i=await this.getFileBytes(e,t)}catch{i={data:new Uint8Array,type:``}}return n==`uint8array`?r.uint8array=i.data:r.arraybuffer=i.data.buffer,r[n]}if(n==`blob`){let i;try{i=await this.getFileBlob(e,t)}catch{i=c.toBlob(new Uint8Array)}return r.blob=i,r[n]}return null}async getFileBlob(e,t){let{data:n,type:r}=await this.getFileBytes(e,t);return c.toBlob(n,{type:r})}async getFileBytes(e,a){if(t.isNullOrWhiteSpace(e))throw Error(`File url is empty`);let o=this.buildUrl(e,a);if(t.isNullOrWhiteSpace(o))throw Error(`File url is empty`);let c;if(this.fileProvider)c=await this.fileProvider.getFile(e,a);else{if(!n.checkIsAbsoluteUrl(o))throw Error(`Cannot fetch relative file without fileProvider: ${o}`);c=await this.httpClient.get(o,{responseType:`arraybuffer`,timeout:6e5})}let l=i.getExtension(e)||``,d;if(this.fileDecrypter){let e=this.url instanceof s.FilePackage?this.url.customKey:``,t=new u.DecryptFile(l,new Uint8Array(c),o);t.key=e,d=await this.fileDecrypter.decrypt(t)}else d=new Uint8Array(c);let f=r.getMimetype(e);return{data:d,type:f}}buildUrl(e,t){if(n.checkIsAbsoluteUrl(e))return e;let r=``,i=t?.lastIndexOf(`/`);i>0&&(r=t.substring(0,i+1));let a=n.getFullUrl(e,r);return n.checkIsAbsoluteUrl(r)?e=a.toString():(e=a.pathname+a.search,e=e.substring(1)),e}async getNav(){return this.nav}async getSpineFile(e){if(e==null)return null;let t=await this.getSpineFiles();if(l.isNumber(e))return t[parseInt(e)];let r=n.getUrlFragment(e).urlWithoutAnchor,a=t.find(e=>e.url==r);if(a)return a;let o=i.getFileName(e);return t.find(e=>i.getFileName(e.url).toLowerCase()==o.toLowerCase())}async getSpineFiles(){return this.spineFiles}async dispose(){this.revokeOwnedBlobUrls(),this.spineFiles&&this.spineFiles.splice(0),this.nav=null,this.metadata=null,this.urlParseResult=null}revokeOwnedBlobUrls(){let e=new Set;this.urlParseResult?.mainUrl&&n.checkIsBlobUrl(this.urlParseResult.mainUrl)&&e.add(this.urlParseResult.mainUrl);for(let t of this.spineFiles??[])t?.url&&n.checkIsBlobUrl(t.url)&&e.add(t.url);for(let t of e)try{URL.revokeObjectURL(t)}catch{}}};exports.BaseFileParser=p;