@foxycape/core 1.1.3 → 1.1.4

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 (501) 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.mjs +0 -1
  404. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  405. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +147 -170
  406. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
  407. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +45 -52
  408. package/dist/mediaTypes/pdf/fileParser/PdfTextDocument.cjs +1 -1
  409. package/dist/mediaTypes/pdf/fileParser/PdfTextDocument.mjs +28 -28
  410. package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
  411. package/dist/mediaTypes/pdf/loadPdfDocument.mjs +27 -23
  412. package/dist/mediaTypes/pdf/renderer/IPdfDocument.cjs +0 -1
  413. package/dist/mediaTypes/pdf/renderer/IPdfDocument.mjs +0 -1
  414. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.cjs +0 -1
  415. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.mjs +0 -1
  416. package/dist/mediaTypes/pdf/renderer/IPdfSvgBuilder.cjs +0 -1
  417. package/dist/mediaTypes/pdf/renderer/IPdfSvgBuilder.mjs +0 -1
  418. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.cjs +1 -1
  419. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +323 -625
  420. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
  421. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +18 -18
  422. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
  423. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +25 -6
  424. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  425. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +61 -70
  426. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
  427. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +118 -122
  428. package/dist/mediaTypes/pdf/renderer/PdfNavPointProvider.cjs +1 -1
  429. package/dist/mediaTypes/pdf/renderer/PdfNavPointProvider.mjs +85 -111
  430. package/dist/mediaTypes/pdf/renderer/PdfNoopL10n.cjs +1 -1
  431. package/dist/mediaTypes/pdf/renderer/PdfNoopL10n.mjs +7 -10
  432. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
  433. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +29 -32
  434. package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
  435. package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +76 -79
  436. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
  437. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +269 -236
  438. package/dist/mediaTypes/pdf/renderer/PdfViewerBuilder.cjs +1 -1
  439. package/dist/mediaTypes/pdf/renderer/PdfViewerBuilder.mjs +33 -36
  440. package/dist/mediaTypes/pdf/renderer/documents/IPdfDocumentsProvider.cjs +0 -1
  441. package/dist/mediaTypes/pdf/renderer/documents/IPdfDocumentsProvider.mjs +0 -1
  442. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
  443. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +243 -290
  444. package/dist/mediaTypes/pdf/renderer/input/PdfDocumentEvents.cjs +1 -1
  445. package/dist/mediaTypes/pdf/renderer/input/PdfDocumentEvents.mjs +43 -50
  446. package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.cjs +1 -1
  447. package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.mjs +84 -105
  448. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
  449. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +44 -59
  450. package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.cjs +1 -1
  451. package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.mjs +138 -177
  452. package/dist/mediaTypes/pdf/renderer/layout/IPdfRendererLayout.cjs +0 -1
  453. package/dist/mediaTypes/pdf/renderer/layout/IPdfRendererLayout.mjs +0 -1
  454. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererLayout.cjs +1 -1
  455. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererLayout.mjs +36 -42
  456. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
  457. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +75 -82
  458. package/dist/mediaTypes/pdf/renderer/location/IPdfDestinationBuilder.cjs +0 -1
  459. package/dist/mediaTypes/pdf/renderer/location/IPdfDestinationBuilder.mjs +0 -1
  460. package/dist/mediaTypes/pdf/renderer/location/PdfDestinationBuilder.cjs +1 -1
  461. package/dist/mediaTypes/pdf/renderer/location/PdfDestinationBuilder.mjs +18 -21
  462. package/dist/mediaTypes/pdf/renderer/progress/IPdfProgressTracker.cjs +0 -1
  463. package/dist/mediaTypes/pdf/renderer/progress/IPdfProgressTracker.mjs +0 -1
  464. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
  465. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +54 -68
  466. package/dist/mediaTypes/pdf/renderer/style/IPdfThemeApplier.cjs +0 -1
  467. package/dist/mediaTypes/pdf/renderer/style/IPdfThemeApplier.mjs +0 -1
  468. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
  469. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +15 -15
  470. package/dist/mediaTypes/pdf/renderer/zoom/IPdfScalable.cjs +0 -1
  471. package/dist/mediaTypes/pdf/renderer/zoom/IPdfScalable.mjs +0 -1
  472. package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.cjs +1 -1
  473. package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.mjs +46 -41
  474. package/dist/mediaTypes/pdf/shared/geometry/index.cjs +1 -1
  475. package/dist/mediaTypes/pdf/shared/geometry/index.mjs +3 -13
  476. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.cjs +1 -1
  477. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.mjs +45 -45
  478. package/dist/mediaTypes/pdf/shared/geometry/textRects.cjs +1 -1
  479. package/dist/mediaTypes/pdf/shared/geometry/textRects.mjs +219 -263
  480. package/dist/mediaTypes/pdf/shared/range.cjs +1 -1
  481. package/dist/mediaTypes/pdf/shared/range.mjs +11 -14
  482. package/dist/mediaTypes/pdf/shared/selection/IPdfSelection.cjs +0 -1
  483. package/dist/mediaTypes/pdf/shared/selection/IPdfSelection.mjs +0 -1
  484. package/dist/mediaTypes/pdf/shared/selection/PdfSelection.cjs +2 -2
  485. package/dist/mediaTypes/pdf/shared/selection/PdfSelection.mjs +214 -236
  486. package/dist/mediaTypes/pdf/shared/selection/index.cjs +1 -1
  487. package/dist/mediaTypes/pdf/shared/selection/index.mjs +3 -6
  488. package/dist/mediaTypes/pdf/shared/text/bbox.cjs +1 -1
  489. package/dist/mediaTypes/pdf/shared/text/bbox.mjs +130 -142
  490. package/dist/mediaTypes/pdf/shared/text/pageText.cjs +5 -5
  491. package/dist/mediaTypes/pdf/shared/text/pageText.mjs +168 -185
  492. package/global.d.ts +17 -0
  493. package/package.json +19 -12
  494. package/types.d.ts +13 -0
  495. package/dist/kernal/logo-160x160.png.cjs +0 -1
  496. package/dist/kernal/logo-160x160.png.mjs +0 -4
  497. package/dist/mediaTypes/html/renderer/image/error-image.png.cjs +0 -1
  498. package/dist/mediaTypes/html/renderer/image/error-image.png.mjs +0 -4
  499. package/dist/mediaTypes/html/renderer/image/placeholder.png.cjs +0 -1
  500. package/dist/mediaTypes/html/renderer/image/placeholder.png.mjs +0 -4
  501. package/dist/mediaTypes/html/renderer/style/html-content.css.cjs +0 -316
@@ -1,134 +1,135 @@
1
- import o from "hotkeys-js";
2
- import { debounce as d } from "perfect-debounce";
3
- import { EventNames as u } from "../../EventNames.mjs";
4
- import { PluginCore as g } from "../PluginCore.mjs";
5
- const p = "left,up,pageup", l = "right,down,pagedown";
6
- class f extends g {
7
- constructor(t, s) {
8
- super(t, s), this.bindedFlipPageElements = [], this.bindedDocuments = [], this.heldKeys = {}, this.currentPauseFlipPageOnPressKey = !1, this.documentKeydownHandlers = /* @__PURE__ */ new Map(), this.documentKeyupHandlers = /* @__PURE__ */ new Map(), this.onDocumentLoad = async (e) => {
9
- await this.bindDocument(e);
10
- }, this.onPressPreviousKey = (e, i) => {
11
- if (this.pluginOptions.flipMode == "page") {
12
- if (this.heldKeys[e.keyCode] > 1)
13
- return;
14
- this.currentPauseFlipPageOnPressKey || (e.preventDefault(), e.stopImmediatePropagation(), this.reader.context.setUserChangedProgress(!0, "keyboard"), this.delayGotoPreviousPage(this.reader.getRenderer()));
15
- } else
16
- this.reader.context.setUserChangedProgress(!0, "keyboard");
17
- }, this.onPressNextKey = (e, i) => {
18
- if (this.pluginOptions.flipMode == "page") {
19
- if (this.heldKeys[e.keyCode] > 1)
20
- return;
21
- this.currentPauseFlipPageOnPressKey || (e.preventDefault(), e.stopImmediatePropagation(), this.reader.context.setUserChangedProgress(!0, "keyboard"), this.delayGotoNextPage(this.reader.getRenderer()));
22
- } else
23
- this.reader.context.setUserChangedProgress(!0, "keyboard");
24
- }, this.delayGotoPreviousPage = d(async (e) => {
25
- if (e?.pagingNavigator) {
26
- await e.pagingNavigator.gotoPreviousPage({
27
- trigger: "user",
28
- triggerType: "key"
29
- });
30
- return;
31
- }
32
- await e?.gotoPreviousPage?.({
33
- trigger: "user",
34
- triggerType: "key"
35
- });
36
- }, 64), this.delayGotoNextPage = d(async (e) => {
37
- if (e?.pagingNavigator) {
38
- await e.pagingNavigator.gotoNextPage({
39
- trigger: "user",
40
- triggerType: "key"
41
- });
42
- return;
43
- }
44
- await e?.gotoNextPage?.({
45
- trigger: "user",
46
- triggerType: "key"
47
- });
48
- }, 64), this.pluginOptions = {
49
- flipMode: s?.flipMode ?? "page",
50
- flipPagePreviousKeys: s?.flipPagePreviousKeys ?? p,
51
- flipPageNextKeys: s?.flipPageNextKeys ?? l
52
- };
53
- }
54
- get name() {
55
- return "keyboard-page-turning";
56
- }
57
- get title() {
58
- return "Keyboard Page Turning";
59
- }
60
- get description() {
61
- return "Keyboard page flip navigation";
62
- }
63
- get version() {
64
- return "1.0.0";
65
- }
66
- get supportedVersion() {
67
- return ">=1.0.0";
68
- }
69
- get supportedExtensions() {
70
- return [".xml", ".xhtml", ".html", ".epub", ".mobi", ".azw3", ".fb2", ".txt"];
71
- }
72
- get supportedLanguages() {
73
- return ["*"];
74
- }
75
- get isUIPlugin() {
76
- return !1;
77
- }
78
- getContainer() {
79
- }
80
- set pauseFlipPageOnPressKey(t) {
81
- this.currentPauseFlipPageOnPressKey = t;
82
- }
83
- get pauseFlipPageOnPressKey() {
84
- return this.currentPauseFlipPageOnPressKey;
85
- }
86
- async load() {
87
- const t = this.reader.getReaderContainer();
88
- t && (await this.bindFlipPageKeys(t.ownerDocument.documentElement), t.ownerDocument !== document && await this.bindFlipPageKeys(document.documentElement));
89
- const s = this.reader.getRenderer()?.getLoadedDocuments?.() ?? this.reader.getRenderer()?.getDocuments?.() ?? [];
90
- for (const e of s)
91
- await this.bindDocument(e);
92
- this.reader.events.on(u.DocumentLoad, this.onDocumentLoad);
93
- }
94
- async dispose() {
95
- this.reader.events.off(u.DocumentLoad, this.onDocumentLoad);
96
- const t = this.pluginOptions.flipPagePreviousKeys, s = this.pluginOptions.flipPageNextKeys;
97
- this.bindedFlipPageElements.length > 0 && (t && o.unbind(t, "all", this.onPressPreviousKey), s && o.unbind(s, "all", this.onPressNextKey));
98
- for (const e of this.bindedDocuments) {
99
- const i = this.documentKeydownHandlers.get(e), n = this.documentKeyupHandlers.get(e);
100
- i && e.removeEventListener("keydown", i, !0), n && e.removeEventListener("keyup", n, !0);
101
- }
102
- this.documentKeydownHandlers.clear(), this.documentKeyupHandlers.clear(), this.bindedFlipPageElements = [], this.bindedDocuments = [], this.heldKeys = {}, this.currentPauseFlipPageOnPressKey = !1;
103
- }
104
- async bindDocument(t) {
105
- const s = t.getContentContainer()?.ownerDocument?.documentElement;
106
- s && await this.bindFlipPageKeys(s);
107
- }
108
- async bindFlipPageKeys(t) {
109
- if (this.bindedFlipPageElements.includes(t))
110
- return;
111
- const s = this.pluginOptions.flipPagePreviousKeys, e = this.pluginOptions.flipPageNextKeys;
112
- s && o(s, {
113
- element: t,
114
- scope: "all"
115
- }, this.onPressPreviousKey), e && o(e, {
116
- element: t,
117
- scope: "all"
118
- }, this.onPressNextKey);
119
- const i = t.ownerDocument;
120
- if (!this.bindedDocuments.includes(i)) {
121
- this.bindedDocuments.push(i);
122
- const n = (r) => {
123
- this.heldKeys[r.keyCode] = (this.heldKeys[r.keyCode] ?? 0) + 1;
124
- }, a = (r) => {
125
- this.heldKeys[r.keyCode] = 0;
126
- };
127
- this.documentKeydownHandlers.set(i, n), this.documentKeyupHandlers.set(i, a), i.addEventListener("keydown", n, !0), i.addEventListener("keyup", a, !0);
128
- }
129
- this.bindedFlipPageElements.push(t);
130
- }
131
- }
132
- export {
133
- f as KeyboardPageTurning
1
+ import { EventNames as e } from "../../EventNames.mjs";
2
+ import { PluginCore as t } from "../PluginCore.mjs";
3
+ import { asyncDebounce as n } from "../../Debounce.mjs";
4
+ import r from "hotkeys-js";
5
+ //#region kernal/plugins/keyboard/KeyboardPageTurning.ts
6
+ var i = "left,up,pageup", a = "right,down,pagedown", o = class extends t {
7
+ constructor(e, t) {
8
+ super(e, t), this.bindedFlipPageElements = [], this.bindedDocuments = [], this.heldKeys = {}, this.currentPauseFlipPageOnPressKey = !1, this.documentKeydownHandlers = /* @__PURE__ */ new Map(), this.documentKeyupHandlers = /* @__PURE__ */ new Map(), this.onDocumentLoad = async (e) => {
9
+ await this.bindDocument(e);
10
+ }, this.onPressPreviousKey = (e, t) => {
11
+ if (this.pluginOptions.flipMode == "page") {
12
+ if (this.heldKeys[e.keyCode] > 1) return;
13
+ this.currentPauseFlipPageOnPressKey || (e.preventDefault(), e.stopImmediatePropagation(), this.reader.context.setUserChangedProgress(!0, "keyboard"), this.delayGotoPreviousPage(this.reader.getRenderer()));
14
+ } else this.reader.context.setUserChangedProgress(!0, "keyboard");
15
+ }, this.onPressNextKey = (e, t) => {
16
+ if (this.pluginOptions.flipMode == "page") {
17
+ if (this.heldKeys[e.keyCode] > 1) return;
18
+ this.currentPauseFlipPageOnPressKey || (e.preventDefault(), e.stopImmediatePropagation(), this.reader.context.setUserChangedProgress(!0, "keyboard"), this.delayGotoNextPage(this.reader.getRenderer()));
19
+ } else this.reader.context.setUserChangedProgress(!0, "keyboard");
20
+ }, this.delayGotoPreviousPage = n(async (e) => {
21
+ if (e?.pagingNavigator) {
22
+ await e.pagingNavigator.gotoPreviousPage({
23
+ trigger: "user",
24
+ triggerType: "key"
25
+ });
26
+ return;
27
+ }
28
+ await e?.gotoPreviousPage?.({
29
+ trigger: "user",
30
+ triggerType: "key"
31
+ });
32
+ }, 64), this.delayGotoNextPage = n(async (e) => {
33
+ if (e?.pagingNavigator) {
34
+ await e.pagingNavigator.gotoNextPage({
35
+ trigger: "user",
36
+ triggerType: "key"
37
+ });
38
+ return;
39
+ }
40
+ await e?.gotoNextPage?.({
41
+ trigger: "user",
42
+ triggerType: "key"
43
+ });
44
+ }, 64), this.pluginOptions = {
45
+ flipMode: t?.flipMode ?? "page",
46
+ flipPagePreviousKeys: t?.flipPagePreviousKeys ?? i,
47
+ flipPageNextKeys: t?.flipPageNextKeys ?? a
48
+ };
49
+ }
50
+ get name() {
51
+ return "keyboard-page-turning";
52
+ }
53
+ get title() {
54
+ return "Keyboard Page Turning";
55
+ }
56
+ get description() {
57
+ return "Keyboard page flip navigation";
58
+ }
59
+ get version() {
60
+ return "1.0.0";
61
+ }
62
+ get supportedVersion() {
63
+ return ">=1.0.0";
64
+ }
65
+ get supportedExtensions() {
66
+ return [
67
+ ".xml",
68
+ ".xhtml",
69
+ ".html",
70
+ ".epub",
71
+ ".mobi",
72
+ ".azw3",
73
+ ".fb2",
74
+ ".txt"
75
+ ];
76
+ }
77
+ get supportedLanguages() {
78
+ return ["*"];
79
+ }
80
+ get isUIPlugin() {
81
+ return !1;
82
+ }
83
+ getContainer() {}
84
+ set pauseFlipPageOnPressKey(e) {
85
+ this.currentPauseFlipPageOnPressKey = e;
86
+ }
87
+ get pauseFlipPageOnPressKey() {
88
+ return this.currentPauseFlipPageOnPressKey;
89
+ }
90
+ async load() {
91
+ let t = this.reader.getReaderContainer();
92
+ t && (await this.bindFlipPageKeys(t.ownerDocument.documentElement), t.ownerDocument !== document && await this.bindFlipPageKeys(document.documentElement));
93
+ let n = this.reader.getRenderer()?.getLoadedDocuments?.() ?? this.reader.getRenderer()?.getDocuments?.() ?? [];
94
+ for (let e of n) await this.bindDocument(e);
95
+ this.reader.events.on(e.DocumentLoad, this.onDocumentLoad);
96
+ }
97
+ async dispose() {
98
+ this.reader.events.off(e.DocumentLoad, this.onDocumentLoad);
99
+ let t = this.pluginOptions.flipPagePreviousKeys, n = this.pluginOptions.flipPageNextKeys;
100
+ this.bindedFlipPageElements.length > 0 && (t && r.unbind(t, "all", this.onPressPreviousKey), n && r.unbind(n, "all", this.onPressNextKey));
101
+ for (let e of this.bindedDocuments) {
102
+ let t = this.documentKeydownHandlers.get(e), n = this.documentKeyupHandlers.get(e);
103
+ t && e.removeEventListener("keydown", t, !0), n && e.removeEventListener("keyup", n, !0);
104
+ }
105
+ this.documentKeydownHandlers.clear(), this.documentKeyupHandlers.clear(), this.bindedFlipPageElements = [], this.bindedDocuments = [], this.heldKeys = {}, this.currentPauseFlipPageOnPressKey = !1;
106
+ }
107
+ async bindDocument(e) {
108
+ let t = e.getContentContainer()?.ownerDocument?.documentElement;
109
+ t && await this.bindFlipPageKeys(t);
110
+ }
111
+ async bindFlipPageKeys(e) {
112
+ if (this.bindedFlipPageElements.includes(e)) return;
113
+ let t = this.pluginOptions.flipPagePreviousKeys, n = this.pluginOptions.flipPageNextKeys;
114
+ t && r(t, {
115
+ element: e,
116
+ scope: "all"
117
+ }, this.onPressPreviousKey), n && r(n, {
118
+ element: e,
119
+ scope: "all"
120
+ }, this.onPressNextKey);
121
+ let i = e.ownerDocument;
122
+ if (!this.bindedDocuments.includes(i)) {
123
+ this.bindedDocuments.push(i);
124
+ let e = (e) => {
125
+ this.heldKeys[e.keyCode] = (this.heldKeys[e.keyCode] ?? 0) + 1;
126
+ }, t = (e) => {
127
+ this.heldKeys[e.keyCode] = 0;
128
+ };
129
+ this.documentKeydownHandlers.set(i, e), this.documentKeyupHandlers.set(i, t), i.addEventListener("keydown", e, !0), i.addEventListener("keyup", t, !0);
130
+ }
131
+ this.bindedFlipPageElements.push(e);
132
+ }
134
133
  };
134
+ //#endregion
135
+ export { o as KeyboardPageTurning };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("../../web/BrowserCapabilities.cjs"),o=require("../../EventNames.cjs"),l=require("../../html/finder.cjs"),u=require("../PluginCore.cjs");class g extends u.PluginCore{constructor(i,n){super(i,n),this.userEvents=["wheel","keydown","mousedown","touchstart"],this.falsePassiveOpts={passive:h.BrowserCapabilities.supportPassive()},this.injectedElements=new Set,this.enableWheel=!0,this.currentEnableWheel=!0,this.onDocumentLoad=e=>{this.bindDocument(e)},this.onDocumentDisposing=e=>{const t=e.getContentContainer()?.ownerDocument?.documentElement,s=e.getWrapperContainer?.(),a=[];t&&a.push(t),s&&a.push(s),a.length>0&&this.removeScrollListener(a)},this.updateShouldUpdateProgress=e=>{let r;e.type=="keydown"?r="keyboard":e.type=="wheel"?r="wheel":e.type=="mousedown"||e.type=="mousemove"?r="mouse":e.type=="touchstart"&&(r="touch"),this.reader.context?.setUserChangedProgress(!0,r)},this.handleWheel=e=>{if(e.ctrlKey)return;this.updateShouldUpdateProgress(e),this.reader.context.currentLocation&&(this.reader.context.currentLocation.precise=!1);const r=this.pluginOptions.flipMode=="page"&&this.enableWheel&&this.currentEnableWheel;e.stopImmediatePropagation();let t=0;e.deltaMode===0&&Math.abs(e.deltaX)<4&&Math.abs(e.deltaY)<4||(t=Math.abs(e.deltaX)>=Math.abs(e.deltaY)?e.deltaX:e.deltaY),r&&t!==0&&this.onWheelFlip(t,e),this.currentEnableWheel&&(this.currentEnableWheel=!1,this.wheelTimeoutId=setTimeout(()=>{this.currentEnableWheel=!0},this.pluginOptions.pageTurnInterval))},this.onWheelFlip=async(e,r)=>{const t=r.target;if(l.compareTagName(t?.tagName,"PRE")){if(Math.abs(t.clientHeight-t.scrollHeight)>10)return}else if(l.compareTagName(t?.tagName,"CODE")&&(Math.abs(t.clientHeight-t.scrollHeight)>10||t.parentElement&&Math.abs(t.parentElement.clientHeight-t.parentElement.scrollHeight)>10))return;const s=this.reader.getRenderer();if(e<0){if(s?.pagingNavigator){await s.pagingNavigator.gotoPreviousPage({trigger:"user",triggerType:"wheel"});return}await s?.gotoPreviousPage?.({trigger:"user",triggerType:"wheel"});return}if(s?.pagingNavigator){await s.pagingNavigator.gotoNextPage({trigger:"user",triggerType:"wheel"});return}await s?.gotoNextPage?.({trigger:"user",triggerType:"wheel"})},this.pluginOptions={pageTurnInterval:n?.pageTurnInterval??300,flipMode:n?.flipMode??"page"}}get name(){return"wheel-page-turning"}get title(){return"Wheel Page Turning"}get description(){return"Mouse wheel page flip navigation"}get version(){return"1.0.0"}get supportedVersion(){return">=1.0.0"}get supportedExtensions(){return[".xml",".xhtml",".html",".epub",".mobi",".azw3",".fb2",".txt"]}get supportedLanguages(){return["*"]}get isUIPlugin(){return!1}getContainer(){}toggleWheel(i){this.enableWheel=i}async load(){const i=this.reader.getReaderContainer();i&&this.addScrollListener([i]);const n=this.reader.getRenderer()?.getRendererContainer?.();n&&n!==i&&this.addScrollListener([n]);const e=this.reader.getRenderer()?.getLoadedDocuments?.()??this.reader.getRenderer()?.getDocuments?.()??[];for(const r of e)this.bindDocument(r);this.reader.events.on(o.EventNames.DocumentLoad,this.onDocumentLoad),this.reader.events.on(o.EventNames.DocumentDisposing,this.onDocumentDisposing)}async dispose(){this.reader.events.off(o.EventNames.DocumentLoad,this.onDocumentLoad),this.reader.events.off(o.EventNames.DocumentDisposing,this.onDocumentDisposing),this.wheelTimeoutId!==void 0&&(clearTimeout(this.wheelTimeoutId),this.wheelTimeoutId=void 0),this.removeScrollListener([...this.injectedElements]),this.enableWheel=!0,this.currentEnableWheel=!0}bindDocument(i){const e=i.getContentContainer()?.ownerDocument?.documentElement,r=i.getWrapperContainer?.(),t=[];e&&t.push(e),r&&r!==e&&t.push(r),t.length>0&&this.addScrollListener(t)}addScrollListener(i){i.forEach(n=>{this.injectedElements.has(n)||(this.userEvents.forEach(e=>{e=="wheel"?n.addEventListener("wheel",this.handleWheel,this.falsePassiveOpts):n.addEventListener(e,this.updateShouldUpdateProgress,this.falsePassiveOpts)}),this.injectedElements.add(n))})}removeScrollListener(i){i.forEach(n=>{this.injectedElements.has(n)&&(this.userEvents.forEach(e=>{e=="wheel"?n.removeEventListener("wheel",this.handleWheel,this.falsePassiveOpts):n.removeEventListener(e,this.updateShouldUpdateProgress,this.falsePassiveOpts)}),this.injectedElements.delete(n))})}}exports.WheelPageTurning=g;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../web/BrowserCapabilities.cjs"),t=require("../../EventNames.cjs"),n=require("../../html/finder.cjs"),r=require("../PluginCore.cjs");var i=class extends r.PluginCore{constructor(t,r){super(t,r),this.userEvents=[`wheel`,`keydown`,`mousedown`,`touchstart`],this.falsePassiveOpts={passive:e.BrowserCapabilities.supportPassive()},this.injectedElements=new Set,this.enableWheel=!0,this.currentEnableWheel=!0,this.onDocumentLoad=e=>{this.bindDocument(e)},this.onDocumentDisposing=e=>{let t=e.getContentContainer()?.ownerDocument?.documentElement,n=e.getWrapperContainer?.(),r=[];t&&r.push(t),n&&r.push(n),r.length>0&&this.removeScrollListener(r)},this.updateShouldUpdateProgress=e=>{let t;e.type==`keydown`?t=`keyboard`:e.type==`wheel`?t=`wheel`:e.type==`mousedown`||e.type==`mousemove`?t=`mouse`:e.type==`touchstart`&&(t=`touch`),this.reader.context?.setUserChangedProgress(!0,t)},this.handleWheel=e=>{if(e.ctrlKey)return;this.updateShouldUpdateProgress(e),this.reader.context.currentLocation&&(this.reader.context.currentLocation.precise=!1);let t=this.pluginOptions.flipMode==`page`&&this.enableWheel&&this.currentEnableWheel;e.stopImmediatePropagation();let n=0;e.deltaMode===0&&Math.abs(e.deltaX)<4&&Math.abs(e.deltaY)<4||(n=Math.abs(e.deltaX)>=Math.abs(e.deltaY)?e.deltaX:e.deltaY),t&&n!==0&&this.onWheelFlip(n,e),this.currentEnableWheel&&(this.currentEnableWheel=!1,this.wheelTimeoutId=setTimeout(()=>{this.currentEnableWheel=!0},this.pluginOptions.pageTurnInterval))},this.onWheelFlip=async(e,t)=>{let r=t.target;if(n.compareTagName(r?.tagName,`PRE`)){if(Math.abs(r.clientHeight-r.scrollHeight)>10)return}else if(n.compareTagName(r?.tagName,`CODE`)&&(Math.abs(r.clientHeight-r.scrollHeight)>10||r.parentElement&&Math.abs(r.parentElement.clientHeight-r.parentElement.scrollHeight)>10))return;let i=this.reader.getRenderer();if(e<0){if(i?.pagingNavigator){await i.pagingNavigator.gotoPreviousPage({trigger:`user`,triggerType:`wheel`});return}await i?.gotoPreviousPage?.({trigger:`user`,triggerType:`wheel`});return}if(i?.pagingNavigator){await i.pagingNavigator.gotoNextPage({trigger:`user`,triggerType:`wheel`});return}await i?.gotoNextPage?.({trigger:`user`,triggerType:`wheel`})},this.pluginOptions={pageTurnInterval:r?.pageTurnInterval??300,flipMode:r?.flipMode??`page`}}get name(){return`wheel-page-turning`}get title(){return`Wheel Page Turning`}get description(){return`Mouse wheel page flip navigation`}get version(){return`1.0.0`}get supportedVersion(){return`>=1.0.0`}get supportedExtensions(){return[`.xml`,`.xhtml`,`.html`,`.epub`,`.mobi`,`.azw3`,`.fb2`,`.txt`]}get supportedLanguages(){return[`*`]}get isUIPlugin(){return!1}getContainer(){}toggleWheel(e){this.enableWheel=e}async load(){let e=this.reader.getReaderContainer();e&&this.addScrollListener([e]);let n=this.reader.getRenderer()?.getRendererContainer?.();n&&n!==e&&this.addScrollListener([n]);let r=this.reader.getRenderer()?.getLoadedDocuments?.()??this.reader.getRenderer()?.getDocuments?.()??[];for(let e of r)this.bindDocument(e);this.reader.events.on(t.EventNames.DocumentLoad,this.onDocumentLoad),this.reader.events.on(t.EventNames.DocumentDisposing,this.onDocumentDisposing)}async dispose(){this.reader.events.off(t.EventNames.DocumentLoad,this.onDocumentLoad),this.reader.events.off(t.EventNames.DocumentDisposing,this.onDocumentDisposing),this.wheelTimeoutId!==void 0&&(clearTimeout(this.wheelTimeoutId),this.wheelTimeoutId=void 0),this.removeScrollListener([...this.injectedElements]),this.enableWheel=!0,this.currentEnableWheel=!0}bindDocument(e){let t=e.getContentContainer()?.ownerDocument?.documentElement,n=e.getWrapperContainer?.(),r=[];t&&r.push(t),n&&n!==t&&r.push(n),r.length>0&&this.addScrollListener(r)}addScrollListener(e){e.forEach(e=>{this.injectedElements.has(e)||(this.userEvents.forEach(t=>{t==`wheel`?e.addEventListener(`wheel`,this.handleWheel,this.falsePassiveOpts):e.addEventListener(t,this.updateShouldUpdateProgress,this.falsePassiveOpts)}),this.injectedElements.add(e))})}removeScrollListener(e){e.forEach(e=>{this.injectedElements.has(e)&&(this.userEvents.forEach(t=>{t==`wheel`?e.removeEventListener(`wheel`,this.handleWheel,this.falsePassiveOpts):e.removeEventListener(t,this.updateShouldUpdateProgress,this.falsePassiveOpts)}),this.injectedElements.delete(e))})}};exports.WheelPageTurning=i;
@@ -1,128 +1,135 @@
1
- import { BrowserCapabilities as l } from "../../web/BrowserCapabilities.mjs";
2
- import { EventNames as a } from "../../EventNames.mjs";
3
- import { compareTagName as h } from "../../html/finder.mjs";
4
- import { PluginCore as u } from "../PluginCore.mjs";
5
- class f extends u {
6
- constructor(i, r) {
7
- super(i, r), this.userEvents = ["wheel", "keydown", "mousedown", "touchstart"], this.falsePassiveOpts = {
8
- passive: l.supportPassive()
9
- }, this.injectedElements = /* @__PURE__ */ new Set(), this.enableWheel = !0, this.currentEnableWheel = !0, this.onDocumentLoad = (e) => {
10
- this.bindDocument(e);
11
- }, this.onDocumentDisposing = (e) => {
12
- const t = e.getContentContainer()?.ownerDocument?.documentElement, s = e.getWrapperContainer?.(), o = [];
13
- t && o.push(t), s && o.push(s), o.length > 0 && this.removeScrollListener(o);
14
- }, this.updateShouldUpdateProgress = (e) => {
15
- let n;
16
- e.type == "keydown" ? n = "keyboard" : e.type == "wheel" ? n = "wheel" : e.type == "mousedown" || e.type == "mousemove" ? n = "mouse" : e.type == "touchstart" && (n = "touch"), this.reader.context?.setUserChangedProgress(!0, n);
17
- }, this.handleWheel = (e) => {
18
- if (e.ctrlKey)
19
- return;
20
- this.updateShouldUpdateProgress(e), this.reader.context.currentLocation && (this.reader.context.currentLocation.precise = !1);
21
- const n = this.pluginOptions.flipMode == "page" && this.enableWheel && this.currentEnableWheel;
22
- e.stopImmediatePropagation();
23
- let t = 0;
24
- e.deltaMode === 0 && Math.abs(e.deltaX) < 4 && Math.abs(e.deltaY) < 4 || (t = Math.abs(e.deltaX) >= Math.abs(e.deltaY) ? e.deltaX : e.deltaY), n && t !== 0 && this.onWheelFlip(t, e), this.currentEnableWheel && (this.currentEnableWheel = !1, this.wheelTimeoutId = setTimeout(() => {
25
- this.currentEnableWheel = !0;
26
- }, this.pluginOptions.pageTurnInterval));
27
- }, this.onWheelFlip = async (e, n) => {
28
- const t = n.target;
29
- if (h(t?.tagName, "PRE")) {
30
- if (Math.abs(t.clientHeight - t.scrollHeight) > 10)
31
- return;
32
- } else if (h(t?.tagName, "CODE") && (Math.abs(t.clientHeight - t.scrollHeight) > 10 || t.parentElement && Math.abs(t.parentElement.clientHeight - t.parentElement.scrollHeight) > 10))
33
- return;
34
- const s = this.reader.getRenderer();
35
- if (e < 0) {
36
- if (s?.pagingNavigator) {
37
- await s.pagingNavigator.gotoPreviousPage({
38
- trigger: "user",
39
- triggerType: "wheel"
40
- });
41
- return;
42
- }
43
- await s?.gotoPreviousPage?.({
44
- trigger: "user",
45
- triggerType: "wheel"
46
- });
47
- return;
48
- }
49
- if (s?.pagingNavigator) {
50
- await s.pagingNavigator.gotoNextPage({
51
- trigger: "user",
52
- triggerType: "wheel"
53
- });
54
- return;
55
- }
56
- await s?.gotoNextPage?.({
57
- trigger: "user",
58
- triggerType: "wheel"
59
- });
60
- }, this.pluginOptions = {
61
- pageTurnInterval: r?.pageTurnInterval ?? 300,
62
- flipMode: r?.flipMode ?? "page"
63
- };
64
- }
65
- get name() {
66
- return "wheel-page-turning";
67
- }
68
- get title() {
69
- return "Wheel Page Turning";
70
- }
71
- get description() {
72
- return "Mouse wheel page flip navigation";
73
- }
74
- get version() {
75
- return "1.0.0";
76
- }
77
- get supportedVersion() {
78
- return ">=1.0.0";
79
- }
80
- get supportedExtensions() {
81
- return [".xml", ".xhtml", ".html", ".epub", ".mobi", ".azw3", ".fb2", ".txt"];
82
- }
83
- get supportedLanguages() {
84
- return ["*"];
85
- }
86
- get isUIPlugin() {
87
- return !1;
88
- }
89
- getContainer() {
90
- }
91
- toggleWheel(i) {
92
- this.enableWheel = i;
93
- }
94
- async load() {
95
- const i = this.reader.getReaderContainer();
96
- i && this.addScrollListener([i]);
97
- const r = this.reader.getRenderer()?.getRendererContainer?.();
98
- r && r !== i && this.addScrollListener([r]);
99
- const e = this.reader.getRenderer()?.getLoadedDocuments?.() ?? this.reader.getRenderer()?.getDocuments?.() ?? [];
100
- for (const n of e)
101
- this.bindDocument(n);
102
- this.reader.events.on(a.DocumentLoad, this.onDocumentLoad), this.reader.events.on(a.DocumentDisposing, this.onDocumentDisposing);
103
- }
104
- async dispose() {
105
- this.reader.events.off(a.DocumentLoad, this.onDocumentLoad), this.reader.events.off(a.DocumentDisposing, this.onDocumentDisposing), this.wheelTimeoutId !== void 0 && (clearTimeout(this.wheelTimeoutId), this.wheelTimeoutId = void 0), this.removeScrollListener([...this.injectedElements]), this.enableWheel = !0, this.currentEnableWheel = !0;
106
- }
107
- bindDocument(i) {
108
- const e = i.getContentContainer()?.ownerDocument?.documentElement, n = i.getWrapperContainer?.(), t = [];
109
- e && t.push(e), n && n !== e && t.push(n), t.length > 0 && this.addScrollListener(t);
110
- }
111
- addScrollListener(i) {
112
- i.forEach((r) => {
113
- this.injectedElements.has(r) || (this.userEvents.forEach((e) => {
114
- e == "wheel" ? r.addEventListener("wheel", this.handleWheel, this.falsePassiveOpts) : r.addEventListener(e, this.updateShouldUpdateProgress, this.falsePassiveOpts);
115
- }), this.injectedElements.add(r));
116
- });
117
- }
118
- removeScrollListener(i) {
119
- i.forEach((r) => {
120
- this.injectedElements.has(r) && (this.userEvents.forEach((e) => {
121
- e == "wheel" ? r.removeEventListener("wheel", this.handleWheel, this.falsePassiveOpts) : r.removeEventListener(e, this.updateShouldUpdateProgress, this.falsePassiveOpts);
122
- }), this.injectedElements.delete(r));
123
- });
124
- }
125
- }
126
- export {
127
- f as WheelPageTurning
1
+ import { BrowserCapabilities as e } from "../../web/BrowserCapabilities.mjs";
2
+ import { EventNames as t } from "../../EventNames.mjs";
3
+ import { compareTagName as n } from "../../html/finder.mjs";
4
+ import { PluginCore as r } from "../PluginCore.mjs";
5
+ //#region kernal/plugins/mouse/WheelPageTurning.ts
6
+ var i = class extends r {
7
+ constructor(t, r) {
8
+ super(t, r), this.userEvents = [
9
+ "wheel",
10
+ "keydown",
11
+ "mousedown",
12
+ "touchstart"
13
+ ], this.falsePassiveOpts = { passive: e.supportPassive() }, this.injectedElements = /* @__PURE__ */ new Set(), this.enableWheel = !0, this.currentEnableWheel = !0, this.onDocumentLoad = (e) => {
14
+ this.bindDocument(e);
15
+ }, this.onDocumentDisposing = (e) => {
16
+ let t = e.getContentContainer()?.ownerDocument?.documentElement, n = e.getWrapperContainer?.(), r = [];
17
+ t && r.push(t), n && r.push(n), r.length > 0 && this.removeScrollListener(r);
18
+ }, this.updateShouldUpdateProgress = (e) => {
19
+ let t;
20
+ e.type == "keydown" ? t = "keyboard" : e.type == "wheel" ? t = "wheel" : e.type == "mousedown" || e.type == "mousemove" ? t = "mouse" : e.type == "touchstart" && (t = "touch"), this.reader.context?.setUserChangedProgress(!0, t);
21
+ }, this.handleWheel = (e) => {
22
+ if (e.ctrlKey) return;
23
+ this.updateShouldUpdateProgress(e), this.reader.context.currentLocation && (this.reader.context.currentLocation.precise = !1);
24
+ let t = this.pluginOptions.flipMode == "page" && this.enableWheel && this.currentEnableWheel;
25
+ e.stopImmediatePropagation();
26
+ let n = 0;
27
+ e.deltaMode === 0 && Math.abs(e.deltaX) < 4 && Math.abs(e.deltaY) < 4 || (n = Math.abs(e.deltaX) >= Math.abs(e.deltaY) ? e.deltaX : e.deltaY), t && n !== 0 && this.onWheelFlip(n, e), this.currentEnableWheel && (this.currentEnableWheel = !1, this.wheelTimeoutId = setTimeout(() => {
28
+ this.currentEnableWheel = !0;
29
+ }, this.pluginOptions.pageTurnInterval));
30
+ }, this.onWheelFlip = async (e, t) => {
31
+ let r = t.target;
32
+ if (n(r?.tagName, "PRE")) {
33
+ if (Math.abs(r.clientHeight - r.scrollHeight) > 10) return;
34
+ } else if (n(r?.tagName, "CODE") && (Math.abs(r.clientHeight - r.scrollHeight) > 10 || r.parentElement && Math.abs(r.parentElement.clientHeight - r.parentElement.scrollHeight) > 10)) return;
35
+ let i = this.reader.getRenderer();
36
+ if (e < 0) {
37
+ if (i?.pagingNavigator) {
38
+ await i.pagingNavigator.gotoPreviousPage({
39
+ trigger: "user",
40
+ triggerType: "wheel"
41
+ });
42
+ return;
43
+ }
44
+ await i?.gotoPreviousPage?.({
45
+ trigger: "user",
46
+ triggerType: "wheel"
47
+ });
48
+ return;
49
+ }
50
+ if (i?.pagingNavigator) {
51
+ await i.pagingNavigator.gotoNextPage({
52
+ trigger: "user",
53
+ triggerType: "wheel"
54
+ });
55
+ return;
56
+ }
57
+ await i?.gotoNextPage?.({
58
+ trigger: "user",
59
+ triggerType: "wheel"
60
+ });
61
+ }, this.pluginOptions = {
62
+ pageTurnInterval: r?.pageTurnInterval ?? 300,
63
+ flipMode: r?.flipMode ?? "page"
64
+ };
65
+ }
66
+ get name() {
67
+ return "wheel-page-turning";
68
+ }
69
+ get title() {
70
+ return "Wheel Page Turning";
71
+ }
72
+ get description() {
73
+ return "Mouse wheel page flip navigation";
74
+ }
75
+ get version() {
76
+ return "1.0.0";
77
+ }
78
+ get supportedVersion() {
79
+ return ">=1.0.0";
80
+ }
81
+ get supportedExtensions() {
82
+ return [
83
+ ".xml",
84
+ ".xhtml",
85
+ ".html",
86
+ ".epub",
87
+ ".mobi",
88
+ ".azw3",
89
+ ".fb2",
90
+ ".txt"
91
+ ];
92
+ }
93
+ get supportedLanguages() {
94
+ return ["*"];
95
+ }
96
+ get isUIPlugin() {
97
+ return !1;
98
+ }
99
+ getContainer() {}
100
+ toggleWheel(e) {
101
+ this.enableWheel = e;
102
+ }
103
+ async load() {
104
+ let e = this.reader.getReaderContainer();
105
+ e && this.addScrollListener([e]);
106
+ let n = this.reader.getRenderer()?.getRendererContainer?.();
107
+ n && n !== e && this.addScrollListener([n]);
108
+ let r = this.reader.getRenderer()?.getLoadedDocuments?.() ?? this.reader.getRenderer()?.getDocuments?.() ?? [];
109
+ for (let e of r) this.bindDocument(e);
110
+ this.reader.events.on(t.DocumentLoad, this.onDocumentLoad), this.reader.events.on(t.DocumentDisposing, this.onDocumentDisposing);
111
+ }
112
+ async dispose() {
113
+ this.reader.events.off(t.DocumentLoad, this.onDocumentLoad), this.reader.events.off(t.DocumentDisposing, this.onDocumentDisposing), this.wheelTimeoutId !== void 0 && (clearTimeout(this.wheelTimeoutId), this.wheelTimeoutId = void 0), this.removeScrollListener([...this.injectedElements]), this.enableWheel = !0, this.currentEnableWheel = !0;
114
+ }
115
+ bindDocument(e) {
116
+ let t = e.getContentContainer()?.ownerDocument?.documentElement, n = e.getWrapperContainer?.(), r = [];
117
+ t && r.push(t), n && n !== t && r.push(n), r.length > 0 && this.addScrollListener(r);
118
+ }
119
+ addScrollListener(e) {
120
+ e.forEach((e) => {
121
+ this.injectedElements.has(e) || (this.userEvents.forEach((t) => {
122
+ t == "wheel" ? e.addEventListener("wheel", this.handleWheel, this.falsePassiveOpts) : e.addEventListener(t, this.updateShouldUpdateProgress, this.falsePassiveOpts);
123
+ }), this.injectedElements.add(e));
124
+ });
125
+ }
126
+ removeScrollListener(e) {
127
+ e.forEach((e) => {
128
+ this.injectedElements.has(e) && (this.userEvents.forEach((t) => {
129
+ t == "wheel" ? e.removeEventListener("wheel", this.handleWheel, this.falsePassiveOpts) : e.removeEventListener(t, this.updateShouldUpdateProgress, this.falsePassiveOpts);
130
+ }), this.injectedElements.delete(e));
131
+ });
132
+ }
128
133
  };
134
+ //#endregion
135
+ export { i as WheelPageTurning };
@@ -1 +0,0 @@
1
- "use strict";
@@ -1 +0,0 @@
1
- "use strict";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=class o{constructor(s,i){this.total=s,this.current=i,this.location=new c(void 0,1,"ratio");var t=new Date;this.createTime=t,this.updateTime=t}};o.Min=1e-10,o.Max=.9999999999;let a=o;class e{constructor(s,i,t){this.url=s,this.total=i,this.unit=t,this.total=i||1,this.unit=t||"ratio"}}class c extends e{constructor(s,i,t){super(s,i,t),this.url=s,this.total=i,this.unit=t}}exports.FileLocation=c;exports.Progress=a;exports.ReadingLocation=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{static{this.Min=1e-10}static{this.Max=.9999999999}constructor(e,t){this.total=e,this.current=t,this.location=new n(void 0,1,`ratio`);var r=new Date;this.createTime=r,this.updateTime=r}},t=class{constructor(e,t,n){this.url=e,this.total=t,this.unit=n,this.total=t||1,this.unit=n||`ratio`}},n=class extends t{constructor(e,t,n){super(e,t,n),this.url=e,this.total=t,this.unit=n}};exports.FileLocation=n,exports.Progress=e,exports.ReadingLocation=t;