@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.
- package/dist/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/core.css +2 -1
- package/dist/kernal/Constants.cjs +1 -1
- package/dist/kernal/Constants.mjs +4 -12
- package/dist/kernal/ContentRange.cjs +1 -1
- package/dist/kernal/ContentRange.mjs +4 -6
- package/dist/kernal/Context.cjs +1 -1
- package/dist/kernal/Context.mjs +31 -35
- package/dist/kernal/Debounce.cjs +1 -1
- package/dist/kernal/Debounce.mjs +31 -37
- package/dist/kernal/EventEmitter.cjs +1 -1
- package/dist/kernal/EventEmitter.mjs +58 -67
- package/dist/kernal/EventNames.cjs +1 -1
- package/dist/kernal/EventNames.mjs +178 -6
- package/dist/kernal/FileLoader.cjs +1 -1
- package/dist/kernal/FileLoader.d.ts +2 -0
- package/dist/kernal/FileLoader.mjs +91 -94
- package/dist/kernal/IDisposable.cjs +0 -1
- package/dist/kernal/IDisposable.mjs +0 -1
- package/dist/kernal/IDocument.cjs +1 -1
- package/dist/kernal/IDocument.mjs +12 -36
- package/dist/kernal/IDocumentsProvider.cjs +0 -1
- package/dist/kernal/IDocumentsProvider.mjs +0 -1
- package/dist/kernal/IEventEmitter.cjs +0 -1
- package/dist/kernal/IEventEmitter.mjs +0 -1
- package/dist/kernal/IFileParser.cjs +1 -1
- package/dist/kernal/IFileParser.mjs +12 -21
- package/dist/kernal/IRenderer.cjs +0 -1
- package/dist/kernal/IRenderer.mjs +0 -1
- package/dist/kernal/IRendererViewport.cjs +1 -1
- package/dist/kernal/IRendererViewport.mjs +4 -5
- package/dist/kernal/IStyleProvider.cjs +0 -1
- package/dist/kernal/IStyleProvider.mjs +0 -1
- package/dist/kernal/ISymbolCalclator.cjs +0 -1
- package/dist/kernal/ISymbolCalclator.mjs +0 -1
- package/dist/kernal/ITextDocument.cjs +0 -1
- package/dist/kernal/ITextDocument.mjs +0 -1
- package/dist/kernal/IThemeProvider.cjs +0 -1
- package/dist/kernal/IThemeProvider.mjs +0 -1
- package/dist/kernal/IWallpaperProvider.cjs +1 -1
- package/dist/kernal/IWallpaperProvider.mjs +7 -7
- package/dist/kernal/JsonConvert.cjs +1 -1
- package/dist/kernal/JsonConvert.mjs +51 -56
- package/dist/kernal/LifecycleHooks.cjs +0 -1
- package/dist/kernal/LifecycleHooks.mjs +0 -1
- package/dist/kernal/LocationState.cjs +1 -1
- package/dist/kernal/LocationState.mjs +4 -5
- package/dist/kernal/MediaTypeRegistry.cjs +1 -1
- package/dist/kernal/MediaTypeRegistry.mjs +39 -64
- package/dist/kernal/Metadata.cjs +1 -1
- package/dist/kernal/Metadata.mjs +7 -7
- package/dist/kernal/OpenOptions.cjs +1 -1
- package/dist/kernal/OpenOptions.mjs +4 -5
- package/dist/kernal/Options.cjs +1 -1
- package/dist/kernal/Options.mjs +39 -16
- package/dist/kernal/OptionsProvider.cjs +1 -1
- package/dist/kernal/OptionsProvider.mjs +22 -24
- package/dist/kernal/Reader.cjs +1 -1
- package/dist/kernal/Reader.mjs +238 -284
- package/dist/kernal/ReaderInfo.cjs +1 -1
- package/dist/kernal/ReaderInfo.mjs +25 -31
- package/dist/kernal/Theme.cjs +1 -1
- package/dist/kernal/Theme.mjs +80 -29
- package/dist/kernal/common/array.cjs +1 -1
- package/dist/kernal/common/array.mjs +11 -13
- package/dist/kernal/common/buffer.cjs +1 -1
- package/dist/kernal/common/buffer.mjs +32 -43
- package/dist/kernal/common/data.cjs +1 -1
- package/dist/kernal/common/data.mjs +20 -13
- package/dist/kernal/common/date.cjs +1 -1
- package/dist/kernal/common/date.mjs +40 -50
- package/dist/kernal/common/encoding.cjs +1 -1
- package/dist/kernal/common/encoding.mjs +29 -36
- package/dist/kernal/common/geometry.cjs +1 -1
- package/dist/kernal/common/geometry.mjs +28 -30
- package/dist/kernal/common/mimetypes.cjs +1 -1
- package/dist/kernal/common/mimetypes.mjs +99 -34
- package/dist/kernal/common/naming.cjs +1 -1
- package/dist/kernal/common/naming.mjs +4 -4
- package/dist/kernal/common/number.cjs +1 -1
- package/dist/kernal/common/number.mjs +42 -53
- package/dist/kernal/common/object.cjs +1 -1
- package/dist/kernal/common/object.mjs +20 -25
- package/dist/kernal/common/path.cjs +1 -1
- package/dist/kernal/common/path.mjs +45 -52
- package/dist/kernal/common/regex.cjs +1 -1
- package/dist/kernal/common/regex.mjs +15 -25
- package/dist/kernal/common/text.cjs +4 -4
- package/dist/kernal/common/text.mjs +67 -88
- package/dist/kernal/common/tree.cjs +1 -1
- package/dist/kernal/common/tree.mjs +13 -13
- package/dist/kernal/common/url.cjs +1 -1
- package/dist/kernal/common/url.mjs +78 -104
- package/dist/kernal/common/uuid.cjs +1 -1
- package/dist/kernal/common/uuid.mjs +24 -28
- package/dist/kernal/crypto/ICrypto.cjs +1 -1
- package/dist/kernal/crypto/ICrypto.mjs +4 -5
- package/dist/kernal/crypto/MD5.cjs +1 -1
- package/dist/kernal/crypto/MD5.mjs +26 -34
- package/dist/kernal/crypto/WebCrypto.cjs +1 -1
- package/dist/kernal/crypto/WebCrypto.mjs +77 -105
- package/dist/kernal/deepClone/buffer.cjs +1 -1
- package/dist/kernal/deepClone/buffer.mjs +7 -25
- package/dist/kernal/deepClone/clone.cjs +1 -1
- package/dist/kernal/deepClone/clone.mjs +52 -116
- package/dist/kernal/deepClone/collection.cjs +1 -1
- package/dist/kernal/deepClone/collection.mjs +43 -56
- package/dist/kernal/deepClone/detector.cjs +1 -1
- package/dist/kernal/deepClone/detector.mjs +8 -16
- package/dist/kernal/deepClone/index.cjs +1 -1
- package/dist/kernal/deepClone/index.mjs +24 -38
- package/dist/kernal/device/IDevice.cjs +1 -1
- package/dist/kernal/device/IDevice.d.ts +0 -2
- package/dist/kernal/device/IDevice.mjs +4 -5
- package/dist/kernal/device/IEnvironment.cjs +0 -1
- package/dist/kernal/device/IEnvironment.mjs +0 -1
- package/dist/kernal/device/IPlatform.cjs +0 -1
- package/dist/kernal/device/IPlatform.mjs +0 -1
- package/dist/kernal/device/WebBrowser.cjs +1 -1
- package/dist/kernal/device/WebBrowser.d.ts +0 -1
- package/dist/kernal/device/WebBrowser.mjs +54 -65
- package/dist/kernal/device/WebEnvironment.cjs +1 -1
- package/dist/kernal/device/WebEnvironment.mjs +21 -21
- package/dist/kernal/device/WebPlatform.cjs +1 -1
- package/dist/kernal/device/WebPlatform.mjs +48 -63
- package/dist/kernal/html/detector.cjs +1 -1
- package/dist/kernal/html/detector.mjs +38 -46
- package/dist/kernal/html/dom.cjs +1 -0
- package/dist/kernal/html/dom.d.ts +3 -0
- package/dist/kernal/html/dom.mjs +13 -0
- package/dist/kernal/html/events.cjs +1 -1
- package/dist/kernal/html/events.mjs +62 -67
- package/dist/kernal/html/finder.cjs +1 -1
- package/dist/kernal/html/finder.mjs +93 -134
- package/dist/kernal/html/geometry.cjs +1 -1
- package/dist/kernal/html/geometry.mjs +340 -384
- package/dist/kernal/html/image.cjs +1 -1
- package/dist/kernal/html/image.mjs +166 -181
- package/dist/kernal/html/injector.cjs +3 -3
- package/dist/kernal/html/injector.mjs +92 -109
- package/dist/kernal/html/manipulator.cjs +1 -1
- package/dist/kernal/html/manipulator.mjs +96 -116
- package/dist/kernal/html/parser.cjs +1 -1
- package/dist/kernal/html/parser.mjs +61 -60
- package/dist/kernal/html/position.cjs +1 -1
- package/dist/kernal/html/position.mjs +146 -193
- package/dist/kernal/html/selection.cjs +7 -7
- package/dist/kernal/html/selection.mjs +206 -238
- package/dist/kernal/html/style.cjs +1 -1
- package/dist/kernal/html/style.mjs +59 -79
- package/dist/kernal/html/text.cjs +2 -2
- package/dist/kernal/html/text.mjs +50 -65
- package/dist/kernal/html/types.cjs +1 -1
- package/dist/kernal/html/types.mjs +7 -7
- package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
- package/dist/kernal/i18n/DefaultLocale.mjs +36 -41
- package/dist/kernal/i18n/ILocale.cjs +1 -1
- package/dist/kernal/i18n/ILocale.mjs +7 -14
- package/dist/kernal/index.cjs +1 -1
- package/dist/kernal/index.mjs +44 -127
- package/dist/kernal/logger/DefaultLogger.cjs +1 -1
- package/dist/kernal/logger/DefaultLogger.mjs +67 -67
- package/dist/kernal/logger/ILogger.cjs +1 -1
- package/dist/kernal/logger/ILogger.mjs +2 -5
- package/dist/kernal/logger/ILoggerFactory.cjs +0 -1
- package/dist/kernal/logger/ILoggerFactory.mjs +0 -1
- package/dist/kernal/logger/LogLevel.cjs +1 -1
- package/dist/kernal/logger/LogLevel.mjs +33 -11
- package/dist/kernal/logger/LoggerFactory.cjs +1 -1
- package/dist/kernal/logger/LoggerFactory.mjs +12 -12
- package/dist/kernal/logo-160x160.cjs +1 -0
- package/dist/kernal/logo-160x160.mjs +4 -0
- package/dist/kernal/mark/IMarker.cjs +0 -1
- package/dist/kernal/mark/IMarker.mjs +0 -1
- package/dist/kernal/mark/Mark.cjs +1 -1
- package/dist/kernal/mark/Mark.mjs +18 -19
- package/dist/kernal/mark/MarkConstants.cjs +1 -1
- package/dist/kernal/mark/MarkConstants.mjs +4 -7
- package/dist/kernal/mark/index.cjs +1 -1
- package/dist/kernal/mark/index.mjs +3 -10
- package/dist/kernal/mark/types.cjs +0 -1
- package/dist/kernal/mark/types.mjs +0 -1
- package/dist/kernal/nav/INavPointProvider.cjs +0 -1
- package/dist/kernal/nav/INavPointProvider.mjs +0 -1
- package/dist/kernal/nav/Nav.cjs +1 -1
- package/dist/kernal/nav/Nav.mjs +16 -18
- package/dist/kernal/navigator/INavPointNavigator.cjs +0 -1
- package/dist/kernal/navigator/INavPointNavigator.mjs +0 -1
- package/dist/kernal/navigator/INavigator.cjs +1 -1
- package/dist/kernal/navigator/INavigator.mjs +4 -5
- package/dist/kernal/navigator/IPagingNavigator.cjs +1 -1
- package/dist/kernal/navigator/IPagingNavigator.mjs +4 -8
- package/dist/kernal/network/HttpClient.cjs +1 -1
- package/dist/kernal/network/HttpClient.mjs +121 -146
- package/dist/kernal/network/IHttpClient.cjs +1 -1
- package/dist/kernal/network/IHttpClient.mjs +4 -5
- package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
- package/dist/kernal/pipelines/FileLoadPipeline.mjs +65 -84
- package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
- package/dist/kernal/pipelines/InputFormatter.mjs +140 -160
- package/dist/kernal/pipelines/metadata.cjs +1 -1
- package/dist/kernal/pipelines/metadata.mjs +44 -49
- package/dist/kernal/plugins/PluginCore.cjs +1 -1
- package/dist/kernal/plugins/PluginCore.mjs +7 -8
- package/dist/kernal/plugins/PluginManager.cjs +1 -1
- package/dist/kernal/plugins/PluginManager.mjs +79 -105
- package/dist/kernal/plugins/PluginRegistry.cjs +1 -1
- package/dist/kernal/plugins/PluginRegistry.mjs +55 -91
- package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
- package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +134 -133
- package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
- package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +134 -127
- package/dist/kernal/progress/IProgressTracker.cjs +0 -1
- package/dist/kernal/progress/IProgressTracker.mjs +0 -1
- package/dist/kernal/progress/IReadingProgressStore.cjs +0 -1
- package/dist/kernal/progress/IReadingProgressStore.mjs +0 -1
- package/dist/kernal/progress/Progress.cjs +1 -1
- package/dist/kernal/progress/Progress.mjs +23 -40
- package/dist/kernal/progress/ReadingProgressStore.cjs +1 -1
- package/dist/kernal/progress/ReadingProgressStore.mjs +16 -16
- package/dist/kernal/services/ServiceCollection.cjs +1 -1
- package/dist/kernal/services/ServiceCollection.mjs +63 -88
- package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
- package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +1 -1
- package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +63 -68
- package/dist/kernal/services/docLoadLayer/IHtmlLoadLayer.cjs +0 -1
- package/dist/kernal/services/docLoadLayer/IHtmlLoadLayer.mjs +0 -1
- package/dist/kernal/services/file/IFileDecrypter.cjs +1 -1
- package/dist/kernal/services/file/IFileDecrypter.mjs +11 -24
- package/dist/kernal/services/file/IFileProvider.cjs +0 -1
- package/dist/kernal/services/file/IFileProvider.mjs +0 -1
- package/dist/kernal/services/file/IFileUrlProvider.cjs +0 -1
- package/dist/kernal/services/file/IFileUrlProvider.mjs +0 -1
- package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
- package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +109 -118
- package/dist/kernal/services/fileUrlParser/IFileUrlParser.cjs +1 -1
- package/dist/kernal/services/fileUrlParser/IFileUrlParser.mjs +7 -10
- package/dist/kernal/services/font/IFontProvider.cjs +1 -1
- package/dist/kernal/services/font/IFontProvider.mjs +19 -33
- package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
- package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +14 -21
- package/dist/kernal/services/internalUrlBuilder/IInternalUrlBuilder.cjs +0 -1
- package/dist/kernal/services/internalUrlBuilder/IInternalUrlBuilder.mjs +0 -1
- package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
- package/dist/kernal/services/loading/DefaultLoading.mjs +46 -41
- package/dist/kernal/services/loading/ILoading.cjs +1 -1
- package/dist/kernal/services/loading/ILoading.mjs +4 -5
- package/dist/kernal/services/notifier/DefaultNotifier.cjs +1 -1
- package/dist/kernal/services/notifier/DefaultNotifier.mjs +63 -65
- package/dist/kernal/services/notifier/INotifier.cjs +0 -1
- package/dist/kernal/services/notifier/INotifier.mjs +0 -1
- package/dist/kernal/services/notifier/notyf/index.cjs +1 -1
- package/dist/kernal/services/notifier/notyf/index.mjs +5 -13
- package/dist/kernal/services/notifier/notyf/notyf.cjs +1 -1
- package/dist/kernal/services/notifier/notyf/notyf.mjs +79 -97
- package/dist/kernal/services/notifier/notyf/notyf.models.cjs +1 -1
- package/dist/kernal/services/notifier/notyf/notyf.models.mjs +39 -41
- package/dist/kernal/services/notifier/notyf/notyf.options.cjs +1 -1
- package/dist/kernal/services/notifier/notyf/notyf.options.mjs +30 -30
- package/dist/kernal/services/notifier/notyf/notyf.view.cjs +1 -1
- package/dist/kernal/services/notifier/notyf/notyf.view.mjs +146 -177
- package/dist/kernal/services/text/ITextDecoder.cjs +0 -1
- package/dist/kernal/services/text/ITextDecoder.mjs +0 -1
- package/dist/kernal/services/text/splitter.cjs +5 -5
- package/dist/kernal/services/text/splitter.mjs +184 -207
- package/dist/kernal/shape/ShapeSorter.cjs +1 -1
- package/dist/kernal/shape/ShapeSorter.mjs +77 -77
- package/dist/kernal/shape/SimpleMatrix.cjs +1 -1
- package/dist/kernal/shape/SimpleMatrix.mjs +20 -13
- package/dist/kernal/shape/definitions.cjs +0 -1
- package/dist/kernal/shape/definitions.mjs +0 -1
- package/dist/kernal/storage/IStorage.cjs +1 -1
- package/dist/kernal/storage/IStorage.mjs +4 -5
- package/dist/kernal/storage/WebStorage.cjs +1 -1
- package/dist/kernal/storage/WebStorage.mjs +164 -201
- package/dist/kernal/types.cjs +0 -1
- package/dist/kernal/types.mjs +0 -1
- package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
- package/dist/kernal/web/BrowserCapabilities.mjs +167 -191
- package/dist/kernal/web/ua.cjs +1 -1
- package/dist/kernal/web/ua.mjs +5 -5
- package/dist/mediaTypes/adjacent.cjs +1 -1
- package/dist/mediaTypes/adjacent.mjs +41 -48
- package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
- package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +184 -227
- package/dist/mediaTypes/base/index.cjs +1 -1
- package/dist/mediaTypes/base/index.mjs +4 -8
- package/dist/mediaTypes/base/renderer/BaseDocument.cjs +1 -1
- package/dist/mediaTypes/base/renderer/BaseDocument.mjs +41 -49
- package/dist/mediaTypes/base/renderer/BaseDocumentsProvider.cjs +1 -1
- package/dist/mediaTypes/base/renderer/BaseDocumentsProvider.mjs +64 -71
- package/dist/mediaTypes/base/renderer/eventKeys.cjs +1 -1
- package/dist/mediaTypes/base/renderer/eventKeys.mjs +7 -7
- package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
- package/dist/mediaTypes/html/HtmlOptions.mjs +34 -12
- package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
- package/dist/mediaTypes/html/HtmlSettings.mjs +43 -6
- package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
- package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +52 -54
- package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
- package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +52 -57
- package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +0 -1
- package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +0 -1
- package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
- package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +89 -89
- package/dist/mediaTypes/html/renderer/IHtmlDocument.cjs +0 -1
- package/dist/mediaTypes/html/renderer/IHtmlDocument.mjs +0 -1
- package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.cjs +0 -1
- package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.mjs +0 -1
- package/dist/mediaTypes/html/renderer/IHtmlRenderer.cjs +0 -1
- package/dist/mediaTypes/html/renderer/IHtmlRenderer.mjs +0 -1
- package/dist/mediaTypes/html/renderer/IHtmlTextDocument.cjs +0 -1
- package/dist/mediaTypes/html/renderer/IHtmlTextDocument.mjs +0 -1
- package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +183 -196
- package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +28 -28
- package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +77 -82
- package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +87 -97
- package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +49 -64
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +29 -32
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +76 -84
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +2 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +185 -208
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +39 -41
- package/dist/mediaTypes/html/renderer/documents/IHtmlDocumentsPreloader.cjs +0 -1
- package/dist/mediaTypes/html/renderer/documents/IHtmlDocumentsPreloader.mjs +0 -1
- package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
- package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +130 -182
- package/dist/mediaTypes/html/renderer/html/IHtmlContentProcessor.cjs +0 -1
- package/dist/mediaTypes/html/renderer/html/IHtmlContentProcessor.mjs +0 -1
- package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
- package/dist/mediaTypes/html/renderer/html/template.mjs +13 -16
- package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
- package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +371 -447
- package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +91 -103
- package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.cjs +0 -1
- package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.mjs +0 -1
- package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -0
- package/dist/mediaTypes/html/renderer/image/error-image.mjs +4 -0
- package/dist/mediaTypes/html/renderer/image/placeholder.cjs +1 -0
- package/dist/mediaTypes/html/renderer/image/placeholder.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/HtmlLayoutMetrics.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlLayoutMetrics.mjs +5 -6
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +81 -90
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +142 -169
- package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.cjs +0 -1
- package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.mjs +0 -1
- package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +61 -6
- package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +106 -118
- package/dist/mediaTypes/html/renderer/location/HtmlLocationCalculator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/location/HtmlLocationCalculator.mjs +28 -34
- package/dist/mediaTypes/html/renderer/location/IHtmlElementLocator.cjs +0 -1
- package/dist/mediaTypes/html/renderer/location/IHtmlElementLocator.mjs +0 -1
- package/dist/mediaTypes/html/renderer/location/IHtmlLocationCalculator.cjs +0 -1
- package/dist/mediaTypes/html/renderer/location/IHtmlLocationCalculator.mjs +0 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +39 -42
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +121 -125
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +151 -178
- package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +78 -85
- package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
- package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +119 -137
- package/dist/mediaTypes/html/renderer/progress/IHtmlIProgressTracker.cjs +0 -1
- package/dist/mediaTypes/html/renderer/progress/IHtmlIProgressTracker.mjs +0 -1
- package/dist/mediaTypes/html/renderer/progress/adjacent.cjs +1 -1
- package/dist/mediaTypes/html/renderer/progress/adjacent.mjs +41 -48
- package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +40 -9
- package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +40 -6
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +62 -74
- package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +58 -68
- package/dist/mediaTypes/html/renderer/style/IHtmlThemeApplier.cjs +0 -1
- package/dist/mediaTypes/html/renderer/style/IHtmlThemeApplier.mjs +0 -1
- package/dist/mediaTypes/html/renderer/style/{html-content.css.mjs → html-content.cjs} +2 -5
- package/dist/mediaTypes/html/renderer/style/html-content.mjs +4 -0
- package/dist/mediaTypes/html/renderer/visibilityCandidates.cjs +1 -1
- package/dist/mediaTypes/html/renderer/visibilityCandidates.mjs +116 -111
- package/dist/mediaTypes/pdf/PdfOptions.cjs +1 -1
- package/dist/mediaTypes/pdf/PdfOptions.mjs +7 -7
- package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
- package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +16 -26
- package/dist/mediaTypes/pdf/fileParser/IPdfFileParser.cjs +0 -1
- package/dist/mediaTypes/pdf/fileParser/IPdfFileParser.mjs +0 -1
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +147 -170
- package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +45 -52
- package/dist/mediaTypes/pdf/fileParser/PdfTextDocument.cjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfTextDocument.mjs +28 -28
- package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
- package/dist/mediaTypes/pdf/loadPdfDocument.mjs +27 -23
- package/dist/mediaTypes/pdf/renderer/IPdfDocument.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/IPdfDocument.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/IPdfRenderer.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/IPdfRenderer.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/IPdfSvgBuilder.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/IPdfSvgBuilder.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +323 -625
- package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +18 -18
- package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +25 -6
- package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +61 -70
- package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +118 -122
- package/dist/mediaTypes/pdf/renderer/PdfNavPointProvider.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfNavPointProvider.mjs +85 -111
- package/dist/mediaTypes/pdf/renderer/PdfNoopL10n.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfNoopL10n.mjs +7 -10
- package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +29 -32
- package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +76 -79
- package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +269 -236
- package/dist/mediaTypes/pdf/renderer/PdfViewerBuilder.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfViewerBuilder.mjs +33 -36
- package/dist/mediaTypes/pdf/renderer/documents/IPdfDocumentsProvider.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/documents/IPdfDocumentsProvider.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
- package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +243 -290
- package/dist/mediaTypes/pdf/renderer/input/PdfDocumentEvents.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfDocumentEvents.mjs +43 -50
- package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.mjs +84 -105
- package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +44 -59
- package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.mjs +138 -177
- package/dist/mediaTypes/pdf/renderer/layout/IPdfRendererLayout.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/layout/IPdfRendererLayout.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/layout/PdfRendererLayout.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/layout/PdfRendererLayout.mjs +36 -42
- package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +75 -82
- package/dist/mediaTypes/pdf/renderer/location/IPdfDestinationBuilder.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/location/IPdfDestinationBuilder.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/location/PdfDestinationBuilder.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/location/PdfDestinationBuilder.mjs +18 -21
- package/dist/mediaTypes/pdf/renderer/progress/IPdfProgressTracker.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/progress/IPdfProgressTracker.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +54 -68
- package/dist/mediaTypes/pdf/renderer/style/IPdfThemeApplier.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/style/IPdfThemeApplier.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
- package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +15 -15
- package/dist/mediaTypes/pdf/renderer/zoom/IPdfScalable.cjs +0 -1
- package/dist/mediaTypes/pdf/renderer/zoom/IPdfScalable.mjs +0 -1
- package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.mjs +46 -41
- package/dist/mediaTypes/pdf/shared/geometry/index.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/geometry/index.mjs +3 -13
- package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.mjs +45 -45
- package/dist/mediaTypes/pdf/shared/geometry/textRects.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/geometry/textRects.mjs +219 -263
- package/dist/mediaTypes/pdf/shared/range.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/range.mjs +11 -14
- package/dist/mediaTypes/pdf/shared/selection/IPdfSelection.cjs +0 -1
- package/dist/mediaTypes/pdf/shared/selection/IPdfSelection.mjs +0 -1
- package/dist/mediaTypes/pdf/shared/selection/PdfSelection.cjs +2 -2
- package/dist/mediaTypes/pdf/shared/selection/PdfSelection.mjs +214 -236
- package/dist/mediaTypes/pdf/shared/selection/index.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/selection/index.mjs +3 -6
- package/dist/mediaTypes/pdf/shared/text/bbox.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/text/bbox.mjs +130 -142
- package/dist/mediaTypes/pdf/shared/text/pageText.cjs +5 -5
- package/dist/mediaTypes/pdf/shared/text/pageText.mjs +168 -185
- package/global.d.ts +17 -0
- package/package.json +19 -12
- package/types.d.ts +13 -0
- package/dist/kernal/logo-160x160.png.cjs +0 -1
- package/dist/kernal/logo-160x160.png.mjs +0 -4
- package/dist/mediaTypes/html/renderer/image/error-image.png.cjs +0 -1
- package/dist/mediaTypes/html/renderer/image/error-image.png.mjs +0 -4
- package/dist/mediaTypes/html/renderer/image/placeholder.png.cjs +0 -1
- package/dist/mediaTypes/html/renderer/image/placeholder.png.mjs +0 -4
- package/dist/mediaTypes/html/renderer/style/html-content.css.cjs +0 -316
|
@@ -1,626 +1,324 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
this.scrollIntoView(s, i), !this._currentScaleValue && this._location && (this._location = null);
|
|
325
|
-
}
|
|
326
|
-
#s() {
|
|
327
|
-
if (this._scrollMode !== a.ScrollMode.PAGE)
|
|
328
|
-
throw new Error("#ensurePageViewVisible: Invalid scrollMode value.");
|
|
329
|
-
const e = this._currentPageNumber, i = this.#i, s = this.viewer;
|
|
330
|
-
if (s.textContent = "", i.pages.length = 0, this._spreadMode === a.SpreadMode.NONE && !this.isInPresentationMode) {
|
|
331
|
-
const t = this._pages[e - 1];
|
|
332
|
-
s.append(t.div), i.pages.push(t);
|
|
333
|
-
} else {
|
|
334
|
-
const t = /* @__PURE__ */ new Set(), r = this._spreadMode - 1;
|
|
335
|
-
r === -1 ? t.add(e - 1) : e % 2 !== r ? (t.add(e - 1), t.add(e)) : (t.add(e - 2), t.add(e - 1));
|
|
336
|
-
const o = document.createElement("div");
|
|
337
|
-
if (o.className = "spread", this.isInPresentationMode) {
|
|
338
|
-
const n = document.createElement("div");
|
|
339
|
-
n.className = "dummyPage", o.append(n);
|
|
340
|
-
}
|
|
341
|
-
for (const n of t) {
|
|
342
|
-
const l = this._pages[n];
|
|
343
|
-
l && (o.append(l.div), i.pages.push(l));
|
|
344
|
-
}
|
|
345
|
-
s.append(o);
|
|
346
|
-
}
|
|
347
|
-
i.scrollDown = e >= i.previousPageNumber, i.previousPageNumber = e;
|
|
348
|
-
}
|
|
349
|
-
rescrollIntoView(e) {
|
|
350
|
-
this._location = null, this.#t(this._currentScaleValue, {
|
|
351
|
-
noScroll: !1
|
|
352
|
-
}), this._customSetCurrentPageNumber(e, !0);
|
|
353
|
-
}
|
|
354
|
-
_customSetCurrentPageNumber(e, i = !1) {
|
|
355
|
-
if (this._currentPageNumber === e)
|
|
356
|
-
return i && this.#a(), !0;
|
|
357
|
-
if (!(0 < e && e <= this.pagesCount))
|
|
358
|
-
return !1;
|
|
359
|
-
const s = this._currentPageNumber;
|
|
360
|
-
return this._currentPageNumber = e, this.eventBus.dispatch("pagechanging", {
|
|
361
|
-
source: this,
|
|
362
|
-
pageNumber: e,
|
|
363
|
-
pageLabel: this._pageLabels?.[e - 1] ?? null,
|
|
364
|
-
previous: s
|
|
365
|
-
}), i && this.#a(), !0;
|
|
366
|
-
}
|
|
367
|
-
scrollIntoView(e, i, s = !1) {
|
|
368
|
-
let t = e.offsetParent;
|
|
369
|
-
if (!t) {
|
|
370
|
-
console.error("offsetParent is not set -- cannot scroll");
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
let r = e.offsetTop + e.clientTop, o = e.offsetLeft + e.clientLeft;
|
|
374
|
-
for (; t.clientHeight === t.scrollHeight && t.clientWidth === t.scrollWidth || s && (t.classList.contains("markedContent") || getComputedStyle(t).overflow === "hidden"); )
|
|
375
|
-
if (r += t.offsetTop, o += t.offsetLeft, t = t.offsetParent, !t)
|
|
376
|
-
return;
|
|
377
|
-
i && (i.top !== void 0 && (r += i.top), i.left !== void 0 && (o += i.left, t.scrollLeft = o)), t.scrollTop = r;
|
|
378
|
-
}
|
|
379
|
-
isPortraitOrientation(e) {
|
|
380
|
-
return e.width <= e.height;
|
|
381
|
-
}
|
|
382
|
-
isValidRotation(e) {
|
|
383
|
-
return Number.isInteger(e) && e % 90 === 0;
|
|
384
|
-
}
|
|
385
|
-
refresh(e = !1, i = /* @__PURE__ */ Object.create(null)) {
|
|
386
|
-
if (this.pdfDocument) {
|
|
387
|
-
for (const s of this._pages)
|
|
388
|
-
s.update(i);
|
|
389
|
-
this.#e !== null && (clearTimeout(this.#e), this.#e = null), e || this.update();
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
// override _getVisiblePages() {
|
|
393
|
-
// const views =
|
|
394
|
-
// this._scrollMode === pdfjsViewer.ScrollMode.PAGE
|
|
395
|
-
// ? this.#scrollModePageState.pages
|
|
396
|
-
// : this._pages,
|
|
397
|
-
// horizontal = this._scrollMode === pdfjsViewer.ScrollMode.HORIZONTAL,
|
|
398
|
-
// rtl = horizontal && this._isContainerRtl;
|
|
399
|
-
// this.logger.debug('views', views)
|
|
400
|
-
// return this.getVisibleElements({
|
|
401
|
-
// scrollEl: this.container,
|
|
402
|
-
// views,
|
|
403
|
-
// sortByVisibility: true,
|
|
404
|
-
// horizontal,
|
|
405
|
-
// rtl,
|
|
406
|
-
// });
|
|
407
|
-
// }
|
|
408
|
-
// getVisibleElements({
|
|
409
|
-
// scrollEl,
|
|
410
|
-
// views,
|
|
411
|
-
// sortByVisibility = false,
|
|
412
|
-
// horizontal = false,
|
|
413
|
-
// rtl = false,
|
|
414
|
-
// }) {
|
|
415
|
-
// const top = scrollEl.scrollTop,
|
|
416
|
-
// bottom = top + scrollEl.clientHeight;
|
|
417
|
-
// const left = scrollEl.scrollLeft,
|
|
418
|
-
// right = left + scrollEl.clientWidth;
|
|
419
|
-
// // Throughout this "generic" function, comments will assume we're working with
|
|
420
|
-
// // PDF document pages, which is the most important and complex case. In this
|
|
421
|
-
// // case, the visible elements we're actually interested is the page canvas,
|
|
422
|
-
// // which is contained in a wrapper which adds no padding/border/margin, which
|
|
423
|
-
// // is itself contained in `view.div` which adds no padding (but does add a
|
|
424
|
-
// // border). So, as specified in this function's doc comment, this function
|
|
425
|
-
// // does all of its work on the padding edge of the provided views, starting at
|
|
426
|
-
// // offsetLeft/Top (which includes margin) and adding clientLeft/Top (which is
|
|
427
|
-
// // the border). Adding clientWidth/Height gets us the bottom-right corner of
|
|
428
|
-
// // the padding edge.
|
|
429
|
-
// const isElementBottomAfterViewTop = (view) => {
|
|
430
|
-
// const element = view.div;
|
|
431
|
-
// const elementBottom =
|
|
432
|
-
// element.offsetTop + element.clientTop + element.clientHeight;
|
|
433
|
-
// return elementBottom > top;
|
|
434
|
-
// }
|
|
435
|
-
// const isElementNextAfterViewHorizontally = (view) => {
|
|
436
|
-
// const element = view.div;
|
|
437
|
-
// const elementLeft = element.offsetLeft + element.clientLeft;
|
|
438
|
-
// const elementRight = elementLeft + element.clientWidth;
|
|
439
|
-
// return rtl ? elementLeft < right : elementRight > left;
|
|
440
|
-
// }
|
|
441
|
-
// const visible = [],
|
|
442
|
-
// ids = new Set(),
|
|
443
|
-
// numViews = views.length;
|
|
444
|
-
// let firstVisibleElementInd = this.binarySearchFirstItem(
|
|
445
|
-
// views,
|
|
446
|
-
// horizontal
|
|
447
|
-
// ? isElementNextAfterViewHorizontally
|
|
448
|
-
// : isElementBottomAfterViewTop
|
|
449
|
-
// );
|
|
450
|
-
// // Please note the return value of the `binarySearchFirstItem` function when
|
|
451
|
-
// // no valid element is found (hence the `firstVisibleElementInd` check below).
|
|
452
|
-
// if (
|
|
453
|
-
// firstVisibleElementInd > 0 &&
|
|
454
|
-
// firstVisibleElementInd < numViews &&
|
|
455
|
-
// !horizontal
|
|
456
|
-
// ) {
|
|
457
|
-
// // In wrapped scrolling (or vertical scrolling with spreads), with some page
|
|
458
|
-
// // sizes, isElementBottomAfterViewTop doesn't satisfy the binary search
|
|
459
|
-
// // condition: there can be pages with bottoms above the view top between
|
|
460
|
-
// // pages with bottoms below. This function detects and corrects that error;
|
|
461
|
-
// // see it for more comments.
|
|
462
|
-
// firstVisibleElementInd = this.backtrackBeforeAllVisibleElements(
|
|
463
|
-
// firstVisibleElementInd,
|
|
464
|
-
// views,
|
|
465
|
-
// top
|
|
466
|
-
// );
|
|
467
|
-
// }
|
|
468
|
-
// // lastEdge acts as a cutoff for us to stop looping, because we know all
|
|
469
|
-
// // subsequent pages will be hidden.
|
|
470
|
-
// //
|
|
471
|
-
// // When using wrapped scrolling or vertical scrolling with spreads, we can't
|
|
472
|
-
// // simply stop the first time we reach a page below the bottom of the view;
|
|
473
|
-
// // the tops of subsequent pages on the same row could still be visible. In
|
|
474
|
-
// // horizontal scrolling, we don't have that issue, so we can stop as soon as
|
|
475
|
-
// // we pass `right`, without needing the code below that handles the -1 case.
|
|
476
|
-
// let lastEdge = horizontal ? right : -1;
|
|
477
|
-
// for (let i = firstVisibleElementInd; i < numViews; i++) {
|
|
478
|
-
// const view = views[i],
|
|
479
|
-
// element = view.div;
|
|
480
|
-
// const currentWidth = element.offsetLeft + element.clientLeft;
|
|
481
|
-
// const currentHeight = element.offsetTop + element.clientTop;
|
|
482
|
-
// const viewWidth = element.clientWidth,
|
|
483
|
-
// viewHeight = element.clientHeight;
|
|
484
|
-
// const viewRight = currentWidth + viewWidth;
|
|
485
|
-
// const viewBottom = currentHeight + viewHeight;
|
|
486
|
-
// if (lastEdge === -1) {
|
|
487
|
-
// // As commented above, this is only needed in non-horizontal cases.
|
|
488
|
-
// // Setting lastEdge to the bottom of the first page that is partially
|
|
489
|
-
// // visible ensures that the next page fully below lastEdge is on the
|
|
490
|
-
// // next row, which has to be fully hidden along with all subsequent rows.
|
|
491
|
-
// if (viewBottom >= bottom) {
|
|
492
|
-
// lastEdge = viewBottom;
|
|
493
|
-
// }
|
|
494
|
-
// } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {
|
|
495
|
-
// break;
|
|
496
|
-
// }
|
|
497
|
-
// if (
|
|
498
|
-
// viewBottom <= top ||
|
|
499
|
-
// currentHeight >= bottom ||
|
|
500
|
-
// viewRight <= left ||
|
|
501
|
-
// currentWidth >= right
|
|
502
|
-
// ) {
|
|
503
|
-
// continue;
|
|
504
|
-
// }
|
|
505
|
-
// const hiddenHeight =
|
|
506
|
-
// Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);
|
|
507
|
-
// const hiddenWidth =
|
|
508
|
-
// Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);
|
|
509
|
-
// const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,
|
|
510
|
-
// fractionWidth = (viewWidth - hiddenWidth) / viewWidth;
|
|
511
|
-
// const percent = (fractionHeight * fractionWidth * 100) | 0;
|
|
512
|
-
// visible.push({
|
|
513
|
-
// id: view.id,
|
|
514
|
-
// x: currentWidth,
|
|
515
|
-
// y: currentHeight,
|
|
516
|
-
// view,
|
|
517
|
-
// percent,
|
|
518
|
-
// widthPercent: (fractionWidth * 100) | 0,
|
|
519
|
-
// });
|
|
520
|
-
// ids.add(view.id);
|
|
521
|
-
// }
|
|
522
|
-
// const first = visible[0],
|
|
523
|
-
// last = visible.at(-1);
|
|
524
|
-
// if (sortByVisibility) {
|
|
525
|
-
// visible.sort(function (a, b) {
|
|
526
|
-
// const pc = a.percent - b.percent;
|
|
527
|
-
// if (Math.abs(pc) > 0.001) {
|
|
528
|
-
// return -pc;
|
|
529
|
-
// }
|
|
530
|
-
// return a.id - b.id; // ensure stability
|
|
531
|
-
// });
|
|
532
|
-
// }
|
|
533
|
-
// return { first, last, views: visible, ids };
|
|
534
|
-
// }
|
|
535
|
-
// binarySearchFirstItem(items, condition, start = 0) {
|
|
536
|
-
// let minIndex = start;
|
|
537
|
-
// let maxIndex = items.length - 1;
|
|
538
|
-
// if (maxIndex < 0 || !condition(items[maxIndex])) {
|
|
539
|
-
// return items.length;
|
|
540
|
-
// }
|
|
541
|
-
// if (condition(items[minIndex])) {
|
|
542
|
-
// return minIndex;
|
|
543
|
-
// }
|
|
544
|
-
// while (minIndex < maxIndex) {
|
|
545
|
-
// const currentIndex = (minIndex + maxIndex) >> 1;
|
|
546
|
-
// const currentItem = items[currentIndex];
|
|
547
|
-
// if (condition(currentItem)) {
|
|
548
|
-
// maxIndex = currentIndex;
|
|
549
|
-
// } else {
|
|
550
|
-
// minIndex = currentIndex + 1;
|
|
551
|
-
// }
|
|
552
|
-
// }
|
|
553
|
-
// return minIndex; /* === maxIndex */
|
|
554
|
-
// }
|
|
555
|
-
// backtrackBeforeAllVisibleElements(index, views, top) {
|
|
556
|
-
// // binarySearchFirstItem's assumption is that the input is ordered, with only
|
|
557
|
-
// // one index where the conditions flips from false to true: [false ...,
|
|
558
|
-
// // true...]. With vertical scrolling and spreads, it is possible to have
|
|
559
|
-
// // [false ..., true, false, true ...]. With wrapped scrolling we can have a
|
|
560
|
-
// // similar sequence, with many more mixed true and false in the middle.
|
|
561
|
-
// //
|
|
562
|
-
// // So there is no guarantee that the binary search yields the index of the
|
|
563
|
-
// // first visible element. It could have been any of the other visible elements
|
|
564
|
-
// // that were preceded by a hidden element.
|
|
565
|
-
// // Of course, if either this element or the previous (hidden) element is also
|
|
566
|
-
// // the first element, there's nothing to worry about.
|
|
567
|
-
// if (index < 2) {
|
|
568
|
-
// return index;
|
|
569
|
-
// }
|
|
570
|
-
// // That aside, the possible cases are represented below.
|
|
571
|
-
// //
|
|
572
|
-
// // **** = fully hidden
|
|
573
|
-
// // A*B* = mix of partially visible and/or hidden pages
|
|
574
|
-
// // CDEF = fully visible
|
|
575
|
-
// //
|
|
576
|
-
// // (1) Binary search could have returned A, in which case we can stop.
|
|
577
|
-
// // (2) Binary search could also have returned B, in which case we need to
|
|
578
|
-
// // check the whole row.
|
|
579
|
-
// // (3) Binary search could also have returned C, in which case we need to
|
|
580
|
-
// // check the whole previous row.
|
|
581
|
-
// //
|
|
582
|
-
// // There's one other possibility:
|
|
583
|
-
// //
|
|
584
|
-
// // **** = fully hidden
|
|
585
|
-
// // ABCD = mix of fully and/or partially visible pages
|
|
586
|
-
// //
|
|
587
|
-
// // (4) Binary search could only have returned A.
|
|
588
|
-
// // Initially assume that we need to find the beginning of the current row
|
|
589
|
-
// // (case 1, 2, or 4), which means finding a page that is above the current
|
|
590
|
-
// // page's top. If the found page is partially visible, we're definitely not in
|
|
591
|
-
// // case 3, and this assumption is correct.
|
|
592
|
-
// let elt = views[index].div;
|
|
593
|
-
// let pageTop = elt.offsetTop + elt.clientTop;
|
|
594
|
-
// if (pageTop >= top) {
|
|
595
|
-
// // The found page is fully visible, so we're actually either in case 3 or 4,
|
|
596
|
-
// // and unfortunately we can't tell the difference between them without
|
|
597
|
-
// // scanning the entire previous row, so we just conservatively assume that
|
|
598
|
-
// // we do need to backtrack to that row. In both cases, the previous page is
|
|
599
|
-
// // in the previous row, so use its top instead.
|
|
600
|
-
// elt = views[index - 1].div;
|
|
601
|
-
// pageTop = elt.offsetTop + elt.clientTop;
|
|
602
|
-
// }
|
|
603
|
-
// // Now we backtrack to the first page that still has its bottom below
|
|
604
|
-
// // `pageTop`, which is the top of a page in the first visible row (unless
|
|
605
|
-
// // we're in case 4, in which case it's the row before that).
|
|
606
|
-
// // `index` is found by binary search, so the page at `index - 1` is
|
|
607
|
-
// // invisible and we can start looking for potentially visible pages from
|
|
608
|
-
// // `index - 2`. (However, if this loop terminates on its first iteration,
|
|
609
|
-
// // which is the case when pages are stacked vertically, `index` should remain
|
|
610
|
-
// // unchanged, so we use a distinct loop variable.)
|
|
611
|
-
// for (let i = index - 2; i >= 0; --i) {
|
|
612
|
-
// elt = views[i].div;
|
|
613
|
-
// if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {
|
|
614
|
-
// // We have reached the previous row, so stop now.
|
|
615
|
-
// // This loop is expected to terminate relatively quickly because the
|
|
616
|
-
// // number of pages per row is expected to be small.
|
|
617
|
-
// break;
|
|
618
|
-
// }
|
|
619
|
-
// index = i;
|
|
620
|
-
// }
|
|
621
|
-
// return index;
|
|
622
|
-
// }
|
|
623
|
-
}
|
|
624
|
-
export {
|
|
625
|
-
_ as MultiPDFViewer
|
|
1
|
+
import { asyncDebounce as e } from "../../../kernal/Debounce.mjs";
|
|
2
|
+
import { getPageText as t } from "../shared/text/pageText.mjs";
|
|
3
|
+
import * as n from "../../../pdfjs/legacy/build/pdf.mjs";
|
|
4
|
+
import * as r from "../../../pdfjs/legacy/web/pdf_viewer.mjs";
|
|
5
|
+
//#region mediaTypes/pdf/renderer/MultiPdfViewer.ts
|
|
6
|
+
var i = class extends r.PDFViewer {
|
|
7
|
+
#e;
|
|
8
|
+
constructor(n, r) {
|
|
9
|
+
super(n), this.options = r, this.#e = null, this.onPageRendered = async () => {}, this.docs = /* @__PURE__ */ new Map(), this.getPageText = async (e, n) => {
|
|
10
|
+
if (this.otherPages && e > 1) {
|
|
11
|
+
let r = this._pages.find((t) => t.id == e), i = r.spineFile;
|
|
12
|
+
if (i) {
|
|
13
|
+
let e = this.docs.get(r.id), a = !1;
|
|
14
|
+
e || (e = await this.callback(i, 1), a = !0);
|
|
15
|
+
let o = await t(e.page, n);
|
|
16
|
+
if (a) {
|
|
17
|
+
let t = e.doc;
|
|
18
|
+
await t.cleanup(!1), t.loadingTask && await t.loadingTask.destroy(), await t.destroy();
|
|
19
|
+
}
|
|
20
|
+
return o;
|
|
21
|
+
}
|
|
22
|
+
return "";
|
|
23
|
+
}
|
|
24
|
+
{
|
|
25
|
+
let r = await this.pdfDocument.getPage(e);
|
|
26
|
+
return await t(r, n);
|
|
27
|
+
}
|
|
28
|
+
}, this.forceRenderingQueue = /* @__PURE__ */ new Map(), this.previousPageNumber = 1, this.delayEnsurePdfPageLoaded = e(this.#n, 25), this.loadRemotePdf = async (e) => {
|
|
29
|
+
let t = this._pages[e - 1];
|
|
30
|
+
if (t.pdfPage) return t.pdfPage;
|
|
31
|
+
let n = t.spineFile;
|
|
32
|
+
if (n) {
|
|
33
|
+
let r = this.docs.get(e);
|
|
34
|
+
return r || (r = await this.callback(n, 1), this.docs.set(t.id, r)), r.page;
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}, this.DEFAULT_SCALE_DELTA = 1.1, this.MAX_AUTO_SCALE = 1.25, this.MAX_SCALE = 10, this.MIN_SCALE = .1, this.#i = null, this.isMultiDocument = !1, this.bindEvents(), this.#e = {
|
|
38
|
+
previousPageNumber: 1,
|
|
39
|
+
scrollDown: !0,
|
|
40
|
+
pages: []
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
bindEvents() {
|
|
44
|
+
this.eventBus.on("pagerendered", this.onPageRendered);
|
|
45
|
+
}
|
|
46
|
+
unbindEvents() {
|
|
47
|
+
this.eventBus.off("pagerendered", this.onPageRendered);
|
|
48
|
+
}
|
|
49
|
+
async setOtherPages(e, t) {
|
|
50
|
+
this.otherPages = e, e && e.length > 0 && (this.isMultiDocument = !0, e.forEach((e) => {
|
|
51
|
+
e.originDestroy = e.destroy, e.destroy = () => {
|
|
52
|
+
e.originDestroy(), e.pdfPage = null;
|
|
53
|
+
let t = this.docs.get(e.id);
|
|
54
|
+
t && (this.docs.delete(e.id), t.doc.destroy().then(() => {
|
|
55
|
+
t.doc.cleanup();
|
|
56
|
+
}));
|
|
57
|
+
}, this._pages.push(e);
|
|
58
|
+
})), this.callback = t;
|
|
59
|
+
}
|
|
60
|
+
forceRendering(e) {
|
|
61
|
+
let t = e || this._getVisiblePages(), n = this.#t(t), i = this._spreadMode !== r.SpreadMode.NONE && this._scrollMode !== r.ScrollMode.HORIZONTAL, a = this.renderingQueue.getHighestPriority(t, this._pages, n, i);
|
|
62
|
+
return a ? (this.previousPageNumber = a.id, this.forceRenderingQueue.get(a.id) ? void 0 : (this.forceRenderingQueue.set(a.id, a.id), this.isMultiDocument ? this.delayEnsurePdfPageLoaded(a).then((e) => {
|
|
63
|
+
if (this.forceRenderingQueue.delete(a.id), a.pdfPage) this.renderingQueue.renderView(a);
|
|
64
|
+
else if (e) {
|
|
65
|
+
let t = this._pages[e.customPageNumber - 1];
|
|
66
|
+
t.pdfPage || t.setPdfPage(e), this.renderingQueue.renderView(t);
|
|
67
|
+
}
|
|
68
|
+
}) : this.#n(a).then((e) => {
|
|
69
|
+
if (this.forceRenderingQueue.delete(a.id), a.pdfPage) this.renderingQueue.renderView(a);
|
|
70
|
+
else if (e) {
|
|
71
|
+
let t = this._pages[e.customPageNumber - 1];
|
|
72
|
+
t.pdfPage || t.setPdfPage(e), this.renderingQueue.renderView(t);
|
|
73
|
+
}
|
|
74
|
+
}), !0)) : !1;
|
|
75
|
+
}
|
|
76
|
+
#t(e) {
|
|
77
|
+
if (e.first?.id === 1) return !0;
|
|
78
|
+
if (e.last?.id === this.pagesCount) return !1;
|
|
79
|
+
switch (this._scrollMode) {
|
|
80
|
+
case r.ScrollMode.PAGE: return this.#e.scrollDown;
|
|
81
|
+
case r.ScrollMode.HORIZONTAL: return this.scroll.right;
|
|
82
|
+
}
|
|
83
|
+
return this.scroll.down;
|
|
84
|
+
}
|
|
85
|
+
async #n(e) {
|
|
86
|
+
if (e.pdfPage) return e.pdfPage;
|
|
87
|
+
try {
|
|
88
|
+
let t = e.spineFile, n;
|
|
89
|
+
return n = t ? await this.loadRemotePdf(e.id) : await this.pdfDocument.getPage(e.id), n.customPageNumber = e.id, e.pdfPage || e.setPdfPage(n), n;
|
|
90
|
+
} catch (e) {
|
|
91
|
+
return console.error("Unable to get page for page view", e), null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async dispose() {
|
|
95
|
+
this.unbindEvents(), this.#i &&= (clearTimeout(this.#i), null);
|
|
96
|
+
for (let [e, t] of this.docs.entries()) try {
|
|
97
|
+
t.doc && await t.doc.cleanup(), t.doc?.loadingTask && await t.doc.loadingTask.destroy(), t.doc && await t.doc.destroy();
|
|
98
|
+
} catch {}
|
|
99
|
+
this.docs.clear(), this.otherPages && this.otherPages.splice(0), this.forceRenderingQueue && this.forceRenderingQueue.clear();
|
|
100
|
+
}
|
|
101
|
+
increaseScale({ drawingDelay: e, scaleFactor: t, steps: n } = {}) {
|
|
102
|
+
if (!this.pdfDocument) return;
|
|
103
|
+
let r = this._currentScale;
|
|
104
|
+
if (t !== void 0 && t > 1) r = Math.round(r * t * 100) / 100;
|
|
105
|
+
else {
|
|
106
|
+
n ??= 1;
|
|
107
|
+
do
|
|
108
|
+
r = Math.ceil((r * this.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10;
|
|
109
|
+
while (--n > 0 && r < this.MAX_SCALE);
|
|
110
|
+
}
|
|
111
|
+
this.#s(Math.min(this.MAX_SCALE, r), {
|
|
112
|
+
noScroll: !1,
|
|
113
|
+
drawingDelay: e
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
decreaseScale({ drawingDelay: e, scaleFactor: t, steps: n } = {}) {
|
|
117
|
+
if (!this.pdfDocument) return;
|
|
118
|
+
let r = this._currentScale;
|
|
119
|
+
if (t !== void 0 && t > 0 && t < 1) r = Math.round(r * t * 100) / 100;
|
|
120
|
+
else {
|
|
121
|
+
n ??= 1;
|
|
122
|
+
do
|
|
123
|
+
r = Math.floor((r / this.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10;
|
|
124
|
+
while (--n > 0 && r > this.MIN_SCALE);
|
|
125
|
+
}
|
|
126
|
+
this.#s(Math.max(this.MIN_SCALE, r), {
|
|
127
|
+
noScroll: !1,
|
|
128
|
+
drawingDelay: e
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
_updateScrollMode(e) {
|
|
132
|
+
let t = this._scrollMode, n = this.viewer;
|
|
133
|
+
n.classList.toggle("scrollHorizontal", t === r.ScrollMode.HORIZONTAL), n.classList.toggle("scrollWrapped", t === r.ScrollMode.WRAPPED), !(!this.pdfDocument || !e) && (t === r.ScrollMode.PAGE ? this.#u() : this._previousScrollMode === r.ScrollMode.PAGE && this._updateSpreadMode(), this._currentScaleValue && isNaN(this._currentScaleValue) && this.#s(this._currentScaleValue, { noScroll: !0 }), this._customSetCurrentPageNumber(e, !0), this.update());
|
|
134
|
+
}
|
|
135
|
+
_updateSpreadMode(e) {
|
|
136
|
+
if (!this.pdfDocument) return;
|
|
137
|
+
let t = this.viewer, n = this._pages;
|
|
138
|
+
if (this._scrollMode === r.ScrollMode.PAGE) this.#u();
|
|
139
|
+
else if (t.textContent = "", this._spreadMode === r.SpreadMode.NONE) for (let e of this._pages) t.append(e.div);
|
|
140
|
+
else {
|
|
141
|
+
let e = this._spreadMode - 1, r = null;
|
|
142
|
+
for (let i = 0, a = n.length; i < a; ++i) r === null ? (r = document.createElement("div"), r.className = "spread", t.append(r)) : i % 2 === e && (r = r.cloneNode(!1), t.append(r)), r.append(n[i].div);
|
|
143
|
+
}
|
|
144
|
+
e && (this._currentScaleValue && isNaN(this._currentScaleValue) && this.#s(this._currentScaleValue, { noScroll: !0 }), this._customSetCurrentPageNumber(e, !0), this.update());
|
|
145
|
+
}
|
|
146
|
+
set pagesRotation(e) {
|
|
147
|
+
if (!this.isValidRotation(e)) throw Error("Invalid pages rotation angle.");
|
|
148
|
+
if (!this.pdfDocument || (e %= 360, e < 0 && (e += 360), this._pagesRotation === e)) return;
|
|
149
|
+
this._pagesRotation = e;
|
|
150
|
+
let t = this._currentPageNumber;
|
|
151
|
+
this.refresh(!0, { rotation: e }), this._currentScaleValue && this.#s(this._currentScaleValue, { noScroll: !0 }), this.eventBus.dispatch("rotationchanging", {
|
|
152
|
+
source: this,
|
|
153
|
+
pagesRotation: e,
|
|
154
|
+
pageNumber: t
|
|
155
|
+
}), this.defaultRenderingQueue && this.update();
|
|
156
|
+
}
|
|
157
|
+
get pagesRotation() {
|
|
158
|
+
return super.pagesRotation;
|
|
159
|
+
}
|
|
160
|
+
set currentScaleValue(e) {
|
|
161
|
+
this.pdfDocument && this.#s(e, { noScroll: !1 });
|
|
162
|
+
}
|
|
163
|
+
get currentScaleValue() {
|
|
164
|
+
return super.currentScaleValue;
|
|
165
|
+
}
|
|
166
|
+
set currentScale(e) {
|
|
167
|
+
if (isNaN(e)) throw Error("Invalid numeric scale.");
|
|
168
|
+
this.pdfDocument && this.#s(e, { noScroll: !1 });
|
|
169
|
+
}
|
|
170
|
+
get currentScale() {
|
|
171
|
+
return super.currentScale;
|
|
172
|
+
}
|
|
173
|
+
#r(e) {
|
|
174
|
+
return e === this._currentScale || Math.abs(e - this._currentScale) < 1e-15;
|
|
175
|
+
}
|
|
176
|
+
#i;
|
|
177
|
+
#a(e, t, { noScroll: r = !1, preset: i = !1, drawingDelay: a = -1 }) {
|
|
178
|
+
if (this._currentScaleValue = t.toString(), this.#r(e)) {
|
|
179
|
+
i && this.eventBus.dispatch("scalechanging", {
|
|
180
|
+
source: this,
|
|
181
|
+
scale: e,
|
|
182
|
+
presetValue: t
|
|
183
|
+
});
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
this.viewer.style.setProperty("--scale-factor", e * n.PixelsPerInch.PDF_TO_CSS_UNITS);
|
|
187
|
+
let o = a >= 0 && a < 1e3;
|
|
188
|
+
if (this.refresh(!0, {
|
|
189
|
+
scale: e,
|
|
190
|
+
drawingDelay: o ? a : -1
|
|
191
|
+
}), o && (this.#i = setTimeout(() => {
|
|
192
|
+
this.#i = null, this.refresh();
|
|
193
|
+
}, a)), this._currentScale = e, !r) {
|
|
194
|
+
let e = this._currentPageNumber, t;
|
|
195
|
+
this._location && !(this.isInPresentationMode || this.isChangingPresentationMode) && (e = this._location.pageNumber, t = [
|
|
196
|
+
null,
|
|
197
|
+
{ name: "XYZ" },
|
|
198
|
+
this._location.left,
|
|
199
|
+
this._location.top,
|
|
200
|
+
null
|
|
201
|
+
]), this.scrollPageIntoView({
|
|
202
|
+
pageNumber: e,
|
|
203
|
+
destArray: t,
|
|
204
|
+
allowNegativeOffset: !0
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
this.eventBus.dispatch("scalechanging", {
|
|
208
|
+
source: this,
|
|
209
|
+
scale: e,
|
|
210
|
+
presetValue: i ? t : void 0
|
|
211
|
+
}), this.defaultRenderingQueue && this.update();
|
|
212
|
+
}
|
|
213
|
+
get #o() {
|
|
214
|
+
return this._spreadMode !== r.SpreadMode.NONE && this._scrollMode !== r.ScrollMode.HORIZONTAL ? 2 : 1;
|
|
215
|
+
}
|
|
216
|
+
#s(e, t) {
|
|
217
|
+
let n = parseFloat(e);
|
|
218
|
+
if (typeof e == "string" && e.trim().endsWith("%") && Number.isFinite(n) && n > 0 && (n /= 100, e = String(n)), n > 0) t.preset = !1, this.#a(n, e, t);
|
|
219
|
+
else {
|
|
220
|
+
let i = this._pages[this._currentPageNumber - 1];
|
|
221
|
+
if (!i) return;
|
|
222
|
+
let a = this.options.horizontalPadding ? this.options.horizontalPadding : 10, o = this.options.verticalPadding ? this.options.verticalPadding : 0;
|
|
223
|
+
a < 0 && (a = 0), o < 0 && (o = 0), this._spreadMode !== r.SpreadMode.NONE && (this.options.removeHorizonalMargin || (a += 10)), this.isInPresentationMode ? (a = o = 4, this._spreadMode !== r.SpreadMode.NONE && (a *= 2)) : this.removePageBorders ? this._scrollMode === r.ScrollMode.HORIZONTAL && ([a, o] = [o, a]) : (a += 19 * this.#o, o += 5, this._scrollMode === r.ScrollMode.HORIZONTAL && ([a, o] = [o, a]));
|
|
224
|
+
let s = (this.container.clientWidth - a) / i.width * i.scale / this.#o, c = (this.container.clientHeight - o) / i.height * i.scale;
|
|
225
|
+
switch (e) {
|
|
226
|
+
case "page-actual":
|
|
227
|
+
n = 1;
|
|
228
|
+
break;
|
|
229
|
+
case "page-width":
|
|
230
|
+
n = s;
|
|
231
|
+
break;
|
|
232
|
+
case "page-height":
|
|
233
|
+
n = c;
|
|
234
|
+
break;
|
|
235
|
+
case "page-fit":
|
|
236
|
+
n = Math.min(s, c);
|
|
237
|
+
break;
|
|
238
|
+
case "auto":
|
|
239
|
+
let t = this.isPortraitOrientation(i) ? s : Math.min(c, s);
|
|
240
|
+
n = Math.min(this.MAX_AUTO_SCALE, t);
|
|
241
|
+
break;
|
|
242
|
+
default:
|
|
243
|
+
console.error(`#setScale: "${e}" is an unknown zoom value.`);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
t.preset = !0, this.#a(n, e, t);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
#c() {
|
|
250
|
+
let e = this._pages[this._currentPageNumber - 1];
|
|
251
|
+
this.isInPresentationMode && this.#s(this._currentScaleValue, { noScroll: !0 }), this.#l(e);
|
|
252
|
+
}
|
|
253
|
+
#l(e, t = null) {
|
|
254
|
+
let { div: n, id: i } = e;
|
|
255
|
+
if (this._currentPageNumber !== i && this._customSetCurrentPageNumber(i), this._scrollMode === r.ScrollMode.PAGE && (this.#u(), this.update()), !t && !this.isInPresentationMode) {
|
|
256
|
+
let e = n.offsetLeft + n.clientLeft, i = e + n.clientWidth, { scrollLeft: a, clientWidth: o } = this.container;
|
|
257
|
+
(this._scrollMode === r.ScrollMode.HORIZONTAL || e < a || i > a + o) && (t = {
|
|
258
|
+
left: 0,
|
|
259
|
+
top: 0
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
this.scrollIntoView(n, t), !this._currentScaleValue && this._location && (this._location = null);
|
|
263
|
+
}
|
|
264
|
+
#u() {
|
|
265
|
+
if (this._scrollMode !== r.ScrollMode.PAGE) throw Error("#ensurePageViewVisible: Invalid scrollMode value.");
|
|
266
|
+
let e = this._currentPageNumber, t = this.#e, n = this.viewer;
|
|
267
|
+
if (n.textContent = "", t.pages.length = 0, this._spreadMode === r.SpreadMode.NONE && !this.isInPresentationMode) {
|
|
268
|
+
let r = this._pages[e - 1];
|
|
269
|
+
n.append(r.div), t.pages.push(r);
|
|
270
|
+
} else {
|
|
271
|
+
let r = /* @__PURE__ */ new Set(), i = this._spreadMode - 1;
|
|
272
|
+
i === -1 ? r.add(e - 1) : e % 2 === i ? (r.add(e - 2), r.add(e - 1)) : (r.add(e - 1), r.add(e));
|
|
273
|
+
let a = document.createElement("div");
|
|
274
|
+
if (a.className = "spread", this.isInPresentationMode) {
|
|
275
|
+
let e = document.createElement("div");
|
|
276
|
+
e.className = "dummyPage", a.append(e);
|
|
277
|
+
}
|
|
278
|
+
for (let e of r) {
|
|
279
|
+
let n = this._pages[e];
|
|
280
|
+
n && (a.append(n.div), t.pages.push(n));
|
|
281
|
+
}
|
|
282
|
+
n.append(a);
|
|
283
|
+
}
|
|
284
|
+
t.scrollDown = e >= t.previousPageNumber, t.previousPageNumber = e;
|
|
285
|
+
}
|
|
286
|
+
rescrollIntoView(e) {
|
|
287
|
+
this._location = null, this.#s(this._currentScaleValue, { noScroll: !1 }), this._customSetCurrentPageNumber(e, !0);
|
|
288
|
+
}
|
|
289
|
+
_customSetCurrentPageNumber(e, t = !1) {
|
|
290
|
+
if (this._currentPageNumber === e) return t && this.#c(), !0;
|
|
291
|
+
if (!(0 < e && e <= this.pagesCount)) return !1;
|
|
292
|
+
let n = this._currentPageNumber;
|
|
293
|
+
return this._currentPageNumber = e, this.eventBus.dispatch("pagechanging", {
|
|
294
|
+
source: this,
|
|
295
|
+
pageNumber: e,
|
|
296
|
+
pageLabel: this._pageLabels?.[e - 1] ?? null,
|
|
297
|
+
previous: n
|
|
298
|
+
}), t && this.#c(), !0;
|
|
299
|
+
}
|
|
300
|
+
scrollIntoView(e, t, n = !1) {
|
|
301
|
+
let r = e.offsetParent;
|
|
302
|
+
if (!r) {
|
|
303
|
+
console.error("offsetParent is not set -- cannot scroll");
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
let i = e.offsetTop + e.clientTop, a = e.offsetLeft + e.clientLeft;
|
|
307
|
+
for (; r.clientHeight === r.scrollHeight && r.clientWidth === r.scrollWidth || n && (r.classList.contains("markedContent") || getComputedStyle(r).overflow === "hidden");) if (i += r.offsetTop, a += r.offsetLeft, r = r.offsetParent, !r) return;
|
|
308
|
+
t && (t.top !== void 0 && (i += t.top), t.left !== void 0 && (a += t.left, r.scrollLeft = a)), r.scrollTop = i;
|
|
309
|
+
}
|
|
310
|
+
isPortraitOrientation(e) {
|
|
311
|
+
return e.width <= e.height;
|
|
312
|
+
}
|
|
313
|
+
isValidRotation(e) {
|
|
314
|
+
return Number.isInteger(e) && e % 90 == 0;
|
|
315
|
+
}
|
|
316
|
+
refresh(e = !1, t = Object.create(null)) {
|
|
317
|
+
if (this.pdfDocument) {
|
|
318
|
+
for (let e of this._pages) e.update(t);
|
|
319
|
+
this.#i !== null && (clearTimeout(this.#i), this.#i = null), e || this.update();
|
|
320
|
+
}
|
|
321
|
+
}
|
|
626
322
|
};
|
|
323
|
+
//#endregion
|
|
324
|
+
export { i as MultiPDFViewer };
|