@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,112 +1,86 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
return !1;
|
|
85
|
-
}
|
|
86
|
-
const s = parseFloat(e[3]);
|
|
87
|
-
if (!Number.isFinite(s) || n.rawHeight <= 0)
|
|
88
|
-
return !1;
|
|
89
|
-
const {
|
|
90
|
-
rotation: r,
|
|
91
|
-
rawHeight: o,
|
|
92
|
-
displayWidth: v,
|
|
93
|
-
displayHeight: l,
|
|
94
|
-
pageRect: a
|
|
95
|
-
} = n, g = r % 180 == 0 ? s / o * l : s / o * v;
|
|
96
|
-
return r == 0 ? l - g <= i.top - a.top : r == 90 ? v - g <= a.right - i.right : r == 180 ? l - g <= a.bottom - i.bottom : r == 270 ? v - g <= i.left - a.left : !1;
|
|
97
|
-
}
|
|
98
|
-
async dispose() {
|
|
99
|
-
this.flattingNavPoints && this.flattingNavPoints.splice(0), this.reversedFlattingNavPoints && this.reversedFlattingNavPoints.splice(0);
|
|
100
|
-
}
|
|
101
|
-
initialNav(i) {
|
|
102
|
-
this.flattingNavPoints = [], this.reversedFlattingNavPoints = void 0, P(i?.navPoints) && this.initialNavPoints(i.navPoints);
|
|
103
|
-
}
|
|
104
|
-
initialNavPoints(i) {
|
|
105
|
-
i.length != 0 && i.forEach((t) => {
|
|
106
|
-
t.startPageNumber > 0 && this.flattingNavPoints.push(t), P(t.children) && this.initialNavPoints(t.children);
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
export {
|
|
111
|
-
d as PdfNavPointProvider
|
|
1
|
+
import { deepClone as e } from "../../../kernal/common/object.mjs";
|
|
2
|
+
import { containValues as t } from "../../../kernal/common/array.mjs";
|
|
3
|
+
//#region mediaTypes/pdf/renderer/PdfNavPointProvider.ts
|
|
4
|
+
var n = class {
|
|
5
|
+
constructor(e) {
|
|
6
|
+
this.documentsProvider = e, this.flattingNavPoints = [], this.isInitNav = !1, this.fileParser = e.fileParser;
|
|
7
|
+
}
|
|
8
|
+
async getFlattingNavPoints() {
|
|
9
|
+
return await this.getInternalFlattingNavPoints();
|
|
10
|
+
}
|
|
11
|
+
async getInternalFlattingNavPoints(t) {
|
|
12
|
+
if (!this.isInitNav) {
|
|
13
|
+
let e = await this.fileParser.getNav();
|
|
14
|
+
this.initialNav(e), this.isInitNav = !0;
|
|
15
|
+
}
|
|
16
|
+
return t ? this.reversedFlattingNavPoints ? this.reversedFlattingNavPoints : this.flattingNavPoints && this.flattingNavPoints.length > 0 ? (this.reversedFlattingNavPoints = e(this.flattingNavPoints).reverse(), this.reversedFlattingNavPoints) : (this.reversedFlattingNavPoints = [], this.reversedFlattingNavPoints) : this.flattingNavPoints;
|
|
17
|
+
}
|
|
18
|
+
async getCurrentNavPoint() {
|
|
19
|
+
let e = await this.getFlattingNavPoints();
|
|
20
|
+
if (e.length == 0) return;
|
|
21
|
+
let t = this.resolveCurrentPageNumber();
|
|
22
|
+
if (!t) return;
|
|
23
|
+
let n = this.documentsProvider.getDocuments().find((e) => e.pageNumber == t) ?? this.documentsProvider.getDocument(`${t}.pdf`);
|
|
24
|
+
if (!n) return this.findUpwardNavPoint(t, e, await this.getInternalFlattingNavPoints(!0));
|
|
25
|
+
let r = n.getVisibleElements?.(!0) ?? [], i = r.length > 0 ? r : n.getVisibleElements?.() ?? [];
|
|
26
|
+
return i.length > 0 ? await this.getNavPoint(n.url, i[0], "char") : await this.getNavPoint(n.url, t, "char");
|
|
27
|
+
}
|
|
28
|
+
async getNavPoint(e, t, n) {
|
|
29
|
+
let r = await this.getFlattingNavPoints();
|
|
30
|
+
if (r.length == 0) return;
|
|
31
|
+
let i = await this.getInternalFlattingNavPoints(!0), a = this.documentsProvider.getDocument(e), o = typeof t == "number" ? t : a?.pageNumber ?? this.resolveCurrentPageNumber();
|
|
32
|
+
if (!(!o || o < 1)) {
|
|
33
|
+
if (typeof t != "number" && a) {
|
|
34
|
+
let e = a.getPageGeometry(), n = r.filter((e) => e.startPageNumber == o);
|
|
35
|
+
if (n.length > 0 && e) {
|
|
36
|
+
let i = n.slice().reverse(), a = t.getBoundingClientRect();
|
|
37
|
+
for (let t of i) if (this.isElementAtOrPastPdfDest(a, t.pdfDest, e)) return this.cloneNavPoint(t, r);
|
|
38
|
+
return this.cloneNavPoint(n[0], r);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return this.findUpwardNavPoint(o, r, i);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
resolveCurrentPageNumber() {
|
|
45
|
+
let e = this.documentsProvider.currentPage;
|
|
46
|
+
if (e > 0) return e;
|
|
47
|
+
let t = this.documentsProvider.getFirstVisibleDocument() ?? this.documentsProvider.getVisibleDocuments()[0];
|
|
48
|
+
return t?.pageNumber > 0 ? t.pageNumber : void 0;
|
|
49
|
+
}
|
|
50
|
+
findUpwardNavPoint(e, t, n) {
|
|
51
|
+
let r = t.filter((t) => t.startPageNumber == e);
|
|
52
|
+
if (r.length > 0) return this.cloneNavPoint(r[0], t);
|
|
53
|
+
let i = n.find((t) => t.startPageNumber > 0 && t.startPageNumber <= e);
|
|
54
|
+
if (i) return this.cloneNavPoint(i, t);
|
|
55
|
+
}
|
|
56
|
+
cloneNavPoint(t, n) {
|
|
57
|
+
let r = n.find((e) => e.key == t.key) ?? n.find((e) => e.url == t.url && e.startPageNumber == t.startPageNumber) ?? t;
|
|
58
|
+
return e(r);
|
|
59
|
+
}
|
|
60
|
+
isElementAtOrPastPdfDest(e, t, n) {
|
|
61
|
+
if (!t || t.indexOf("XYZ") <= 0) return !1;
|
|
62
|
+
let r;
|
|
63
|
+
try {
|
|
64
|
+
r = JSON.parse(t);
|
|
65
|
+
} catch {
|
|
66
|
+
return !1;
|
|
67
|
+
}
|
|
68
|
+
let i = parseFloat(r[3]);
|
|
69
|
+
if (!Number.isFinite(i) || n.rawHeight <= 0) return !1;
|
|
70
|
+
let { rotation: a, rawHeight: o, displayWidth: s, displayHeight: c, pageRect: l } = n, u = a % 180 == 0 ? i / o * c : i / o * s;
|
|
71
|
+
return a == 0 ? c - u <= e.top - l.top : a == 90 ? s - u <= l.right - e.right : a == 180 ? c - u <= l.bottom - e.bottom : a == 270 && s - u <= e.left - l.left;
|
|
72
|
+
}
|
|
73
|
+
async dispose() {
|
|
74
|
+
this.flattingNavPoints && this.flattingNavPoints.splice(0), this.reversedFlattingNavPoints && this.reversedFlattingNavPoints.splice(0);
|
|
75
|
+
}
|
|
76
|
+
initialNav(e) {
|
|
77
|
+
this.flattingNavPoints = [], this.reversedFlattingNavPoints = void 0, t(e?.navPoints) && this.initialNavPoints(e.navPoints);
|
|
78
|
+
}
|
|
79
|
+
initialNavPoints(e) {
|
|
80
|
+
e.length != 0 && e.forEach((e) => {
|
|
81
|
+
e.startPageNumber > 0 && this.flattingNavPoints.push(e), t(e.children) && this.initialNavPoints(e.children);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
112
84
|
};
|
|
85
|
+
//#endregion
|
|
86
|
+
export { n as PdfNavPointProvider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{constructor(){this.getLanguage=()=>`en-us`,this.getDirection=()=>`ltr`,this.get=async(e,t,n)=>n??``,this.translate=async e=>{},this.pause=()=>{},this.resume=()=>{}}};exports.PdfNoopL10n=e;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
export {
|
|
10
|
-
i as PdfNoopL10n
|
|
1
|
+
//#region mediaTypes/pdf/renderer/PdfNoopL10n.ts
|
|
2
|
+
var e = class {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.getLanguage = () => "en-us", this.getDirection = () => "ltr", this.get = async (e, t, n) => n ?? "", this.translate = async (e) => {}, this.pause = () => {}, this.resume = () => {};
|
|
5
|
+
}
|
|
11
6
|
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { e as PdfNoopL10n };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/progress/Progress.cjs");var t=class{constructor(e,t,n){this.locale=e,this.notifier=t,this.documentsProvider=n}async dispose(){}async gotoPage(t,n,r){let i=new e.FileLocation(n.toString(),this.documentsProvider.numberOfPages,`page`);return i.current=n,await this.documentsProvider.load(i),!0}async gotoNextPage(t){let n=this.documentsProvider.currentPage,r=this.documentsProvider.numberOfPages,i=this.documentsProvider.isSpreadMode;if(n>=r||i&&n>=r-1)return this.notifier.info(this.locale?.getText(`navigotor_alreadyislastpage`,`Already at the last page`)),!1;let a=i?n+2:n+1;a>=r&&(a=r);let o=new e.FileLocation(a.toString(),r,`page`);return o.current=a,await this.documentsProvider.load(o),!0}async gotoPreviousPage(t){let n=this.documentsProvider.currentPage,r=this.documentsProvider.isSpreadMode;if(n<=1||r&&n<2)return this.notifier.info(this.locale?.getText(`navigotor_alreadyisfirstpage`,`Already at the first page`)),!1;let i=r?n-2:n-1;i<=0&&(i=1);let a=new e.FileLocation(i.toString(),this.documentsProvider.numberOfPages,`page`);return a.current=i,await this.documentsProvider.load(a),!0}};exports.PdfPagingNavigator=t;
|
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
import { FileLocation as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return o.current = r, await this.documentsProvider.load(o), !0;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export {
|
|
32
|
-
d as PdfPagingNavigator
|
|
1
|
+
import { FileLocation as e } from "../../../kernal/progress/Progress.mjs";
|
|
2
|
+
//#region mediaTypes/pdf/renderer/PdfPagingNavigator.ts
|
|
3
|
+
var t = class {
|
|
4
|
+
constructor(e, t, n) {
|
|
5
|
+
this.locale = e, this.notifier = t, this.documentsProvider = n;
|
|
6
|
+
}
|
|
7
|
+
async dispose() {}
|
|
8
|
+
async gotoPage(t, n, r) {
|
|
9
|
+
let i = new e(n.toString(), this.documentsProvider.numberOfPages, "page");
|
|
10
|
+
return i.current = n, await this.documentsProvider.load(i), !0;
|
|
11
|
+
}
|
|
12
|
+
async gotoNextPage(t) {
|
|
13
|
+
let n = this.documentsProvider.currentPage, r = this.documentsProvider.numberOfPages, i = this.documentsProvider.isSpreadMode;
|
|
14
|
+
if (n >= r || i && n >= r - 1) return this.notifier.info(this.locale?.getText("navigotor_alreadyislastpage", "Already at the last page")), !1;
|
|
15
|
+
let a = i ? n + 2 : n + 1;
|
|
16
|
+
a >= r && (a = r);
|
|
17
|
+
let o = new e(a.toString(), r, "page");
|
|
18
|
+
return o.current = a, await this.documentsProvider.load(o), !0;
|
|
19
|
+
}
|
|
20
|
+
async gotoPreviousPage(t) {
|
|
21
|
+
let n = this.documentsProvider.currentPage, r = this.documentsProvider.isSpreadMode;
|
|
22
|
+
if (n <= 1 || r && n < 2) return this.notifier.info(this.locale?.getText("navigotor_alreadyisfirstpage", "Already at the first page")), !1;
|
|
23
|
+
let i = r ? n - 2 : n - 1;
|
|
24
|
+
i <= 0 && (i = 1);
|
|
25
|
+
let a = new e(i.toString(), this.documentsProvider.numberOfPages, "page");
|
|
26
|
+
return a.current = i, await this.documentsProvider.load(a), !0;
|
|
27
|
+
}
|
|
33
28
|
};
|
|
29
|
+
//#endregion
|
|
30
|
+
export { t as PdfPagingNavigator };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/Options.cjs"),t=require("../../../kernal/Theme.cjs"),n=require("../../../kernal/common/uuid.cjs"),r=require("../../../kernal/EventNames.cjs"),i=require("../../../kernal/html/events.cjs"),a=require("./PdfNavPointProvider.cjs"),o=require("./PdfNavPointNavigator.cjs"),s=require("./PdfCoreNavigator.cjs"),c=require("./PdfPagingNavigator.cjs"),l=require("./layout/PdfRendererLayout.cjs"),u=require("./style/PdfThemeApplier.cjs"),d=require("./progress/PdfProgressTracker.cjs"),f=require("./location/PdfDestinationBuilder.cjs"),p=require("./input/PdfDocumentEvents.cjs"),m=require("./input/PdfViewerEvents.cjs"),h=require("./input/PdfZoomInputController.cjs"),g=require("./input/PdfKeyboardController.cjs"),_=require("./documents/PdfDocumentsProvider.cjs"),v=require("./zoom/PdfScalable.cjs");require("../../../pdfjs/legacy/build/pdf.mjs");let y=require("perfect-debounce");var b=class extends _.PdfDocumentsProvider{constructor(t,n,_,b){super(t,n,_,b),this.isRendererReady=!1,this.onScaleChanging=async(e,t)=>{await this.delayApplyCssVariables()},this.delayApplyCssVariables=(0,y.debounce)(async()=>{this.rendererViewport.applyCssVariables()},200),this.onOptionsChange=async t=>{e.isOptionKey(t)&&this.rendererViewport.applyCssVariables()},this.layout=new l.PdfRendererLayout(this.pdfViewer,this.owner.events),this.scalable=new v.PdfScalable(this.pdfViewer,this.options),this.themeApplier=new u.PdfThemeApplier(this.readerContainer),this.destinationBuilder=new f.PdfDestinationBuilder(this),this.progressTracker=new d.PdfProgressTracker(this,this.pdfViewer,this.destinationBuilder),this.documentEventBridge=new p.PdfDocumentEvents(this.pdfViewer,this),this.viewerEvents=new m.PdfViewerEvents(this.owner.events,this.eventBus,this,this.pdfViewer);let x=this.getRendererContainer();this.zoomInputController=new h.PdfZoomInputController(this.pdfViewer,x),this.keyboardController=new g.PdfKeyboardController(this.pdfViewer,x),this.keyboardController.setFindRequestHandler(()=>{this.owner.events.emit(r.EventNames.RequestOpenFind)}),this.navPointProvider=new a.PdfNavPointProvider(this),this.navigator=new s.PdfCoreNavigator(this),this.navPointNavigator=new o.PdfNavPointNavigator(this,this.navigator,this.navPointProvider),this.pagingNavigator=new c.PdfPagingNavigator(this.owner.locale,this.owner.notifier,this),this.bindEvents(),i.watchScroll(this.getScrollElement(),this.owner.options.calcScrollDirection,async(e,t)=>{this.owner.events.emit(r.EventNames.ReaderDebounceScroll,e,t)},e=>{this.owner.onProgressChangeGuard&&this.owner.context?.progress?.current&&(this.owner.onProgressChangeGuard(this.owner.context.progress.current)||e.preventDefault()),this.owner.events.emit(r.EventNames.ReaderOriginalScroll,e)})}get id(){return this.currentInstanceId||=n.getRandomId(!0),this.currentInstanceId}async load(e,t){if(!this.isRendererReady){if(await this.ensureRendererReady(),this.options.textLayerMode===2){let{PdfSvgBuilder:e}=await Promise.resolve().then(()=>require("./PdfSvgBuilder.cjs"));this.svgBuilder=new e(this,this.options),await this.svgBuilder.initialize()}this.isRendererReady=!0}await super.load(e,t)}async ensureRendererReady(){let e=await this.owner.services.get(`themeProvider`),n;e?(n=e.getCurrentTheme(),this.themeApplier.applyTheme(n)):n=new t.Theme,this.themeApplier.applyTheme(n),this.rendererViewport.applyCssVariables()}bindEvents(){this.owner.events.on(r.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.on(r.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.bind(),this.viewerEvents.bind(),this.zoomInputController.bind(),this.keyboardController.bind()}unbindEvents(){this.owner.events.off(r.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.off(r.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.unbind(),this.viewerEvents.unbind(),this.zoomInputController.unbind(),this.keyboardController.unbind()}buildDest(e,t){return this.destinationBuilder.buildDest(e,t)}async getProgress(e){return this.progressTracker.getProgress(e)}async applyTheme(e){this.themeApplier.applyTheme(e)}async dispose(){this.unbindEvents(),this.currentInstanceId=null,await this.svgBuilder?.dispose(),await this.progressTracker.dispose(),await this.pagingNavigator.dispose(),await this.navPointProvider?.dispose(),await super.dispose()}};exports.PdfRenderer=b;
|
|
@@ -1,81 +1,78 @@
|
|
|
1
|
-
import "../../../
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { PdfNavPointProvider as p } from "./PdfNavPointProvider.mjs";
|
|
5
|
-
import { PdfNavPointNavigator as l } from "./PdfNavPointNavigator.mjs";
|
|
6
|
-
import { PdfCoreNavigator as m } from "./PdfCoreNavigator.mjs";
|
|
7
|
-
import { PdfPagingNavigator as c } from "./PdfPagingNavigator.mjs";
|
|
8
|
-
import { PdfRendererLayout as f } from "./layout/PdfRendererLayout.mjs";
|
|
9
|
-
import { PdfThemeApplier as w } from "./style/PdfThemeApplier.mjs";
|
|
10
|
-
import { PdfProgressTracker as u } from "./progress/PdfProgressTracker.mjs";
|
|
11
|
-
import { PdfDestinationBuilder as g } from "./location/PdfDestinationBuilder.mjs";
|
|
12
|
-
import { PdfDocumentEvents as v } from "./input/PdfDocumentEvents.mjs";
|
|
13
|
-
import { PdfViewerEvents as P } from "./input/PdfViewerEvents.mjs";
|
|
14
|
-
import { PdfZoomInputController as y } from "./input/PdfZoomInputController.mjs";
|
|
15
|
-
import { PdfKeyboardController as C } from "./input/PdfKeyboardController.mjs";
|
|
16
|
-
import { PdfDocumentsProvider as b } from "./documents/PdfDocumentsProvider.mjs";
|
|
17
|
-
import { PdfScalable as R } from "./zoom/PdfScalable.mjs";
|
|
18
|
-
import { debounce as V } from "perfect-debounce";
|
|
19
|
-
import { isOptionKey as E } from "../../../kernal/Options.mjs";
|
|
1
|
+
import { isOptionKey as e } from "../../../kernal/Options.mjs";
|
|
2
|
+
import { Theme as t } from "../../../kernal/Theme.mjs";
|
|
3
|
+
import { getRandomId as n } from "../../../kernal/common/uuid.mjs";
|
|
20
4
|
import { EventNames as r } from "../../../kernal/EventNames.mjs";
|
|
21
|
-
import {
|
|
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
|
-
|
|
5
|
+
import { asyncDebounce as i } from "../../../kernal/Debounce.mjs";
|
|
6
|
+
import { watchScroll as a } from "../../../kernal/html/events.mjs";
|
|
7
|
+
import { PdfNavPointProvider as o } from "./PdfNavPointProvider.mjs";
|
|
8
|
+
import { PdfNavPointNavigator as s } from "./PdfNavPointNavigator.mjs";
|
|
9
|
+
import { PdfCoreNavigator as c } from "./PdfCoreNavigator.mjs";
|
|
10
|
+
import { PdfPagingNavigator as l } from "./PdfPagingNavigator.mjs";
|
|
11
|
+
import { PdfRendererLayout as u } from "./layout/PdfRendererLayout.mjs";
|
|
12
|
+
import { PdfThemeApplier as d } from "./style/PdfThemeApplier.mjs";
|
|
13
|
+
import { PdfProgressTracker as f } from "./progress/PdfProgressTracker.mjs";
|
|
14
|
+
import { PdfDestinationBuilder as p } from "./location/PdfDestinationBuilder.mjs";
|
|
15
|
+
import { PdfDocumentEvents as m } from "./input/PdfDocumentEvents.mjs";
|
|
16
|
+
import { PdfViewerEvents as h } from "./input/PdfViewerEvents.mjs";
|
|
17
|
+
import { PdfZoomInputController as g } from "./input/PdfZoomInputController.mjs";
|
|
18
|
+
import { PdfKeyboardController as _ } from "./input/PdfKeyboardController.mjs";
|
|
19
|
+
import { PdfDocumentsProvider as v } from "./documents/PdfDocumentsProvider.mjs";
|
|
20
|
+
import { PdfScalable as y } from "./zoom/PdfScalable.mjs";
|
|
21
|
+
import "../../../pdfjs/legacy/build/pdf.mjs";
|
|
22
|
+
//#region mediaTypes/pdf/renderer/PdfRenderer.ts
|
|
23
|
+
var b = class extends v {
|
|
24
|
+
constructor(t, n, v, b) {
|
|
25
|
+
super(t, n, v, b), this.isRendererReady = !1, this.onScaleChanging = async (e, t) => {
|
|
26
|
+
await this.delayApplyCssVariables();
|
|
27
|
+
}, this.delayApplyCssVariables = i(async () => {
|
|
28
|
+
this.rendererViewport.applyCssVariables();
|
|
29
|
+
}, 200), this.onOptionsChange = async (t) => {
|
|
30
|
+
e(t) && this.rendererViewport.applyCssVariables();
|
|
31
|
+
}, this.layout = new u(this.pdfViewer, this.owner.events), this.scalable = new y(this.pdfViewer, this.options), this.themeApplier = new d(this.readerContainer), this.destinationBuilder = new p(this), this.progressTracker = new f(this, this.pdfViewer, this.destinationBuilder), this.documentEventBridge = new m(this.pdfViewer, this), this.viewerEvents = new h(this.owner.events, this.eventBus, this, this.pdfViewer);
|
|
32
|
+
let x = this.getRendererContainer();
|
|
33
|
+
this.zoomInputController = new g(this.pdfViewer, x), this.keyboardController = new _(this.pdfViewer, x), this.keyboardController.setFindRequestHandler(() => {
|
|
34
|
+
this.owner.events.emit(r.RequestOpenFind);
|
|
35
|
+
}), this.navPointProvider = new o(this), this.navigator = new c(this), this.navPointNavigator = new s(this, this.navigator, this.navPointProvider), this.pagingNavigator = new l(this.owner.locale, this.owner.notifier, this), this.bindEvents(), a(this.getScrollElement(), this.owner.options.calcScrollDirection, async (e, t) => {
|
|
36
|
+
this.owner.events.emit(r.ReaderDebounceScroll, e, t);
|
|
37
|
+
}, (e) => {
|
|
38
|
+
this.owner.onProgressChangeGuard && this.owner.context?.progress?.current && (this.owner.onProgressChangeGuard(this.owner.context.progress.current) || e.preventDefault()), this.owner.events.emit(r.ReaderOriginalScroll, e);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
get id() {
|
|
42
|
+
return this.currentInstanceId ||= n(!0), this.currentInstanceId;
|
|
43
|
+
}
|
|
44
|
+
async load(e, t) {
|
|
45
|
+
if (!this.isRendererReady) {
|
|
46
|
+
if (await this.ensureRendererReady(), this.options.textLayerMode === 2) {
|
|
47
|
+
let { PdfSvgBuilder: e } = await import("./PdfSvgBuilder.mjs");
|
|
48
|
+
this.svgBuilder = new e(this, this.options), await this.svgBuilder.initialize();
|
|
49
|
+
}
|
|
50
|
+
this.isRendererReady = !0;
|
|
51
|
+
}
|
|
52
|
+
await super.load(e, t);
|
|
53
|
+
}
|
|
54
|
+
async ensureRendererReady() {
|
|
55
|
+
let e = await this.owner.services.get("themeProvider"), n;
|
|
56
|
+
e ? (n = e.getCurrentTheme(), this.themeApplier.applyTheme(n)) : n = new t(), this.themeApplier.applyTheme(n), this.rendererViewport.applyCssVariables();
|
|
57
|
+
}
|
|
58
|
+
bindEvents() {
|
|
59
|
+
this.owner.events.on(r.OptionsChange, this.onOptionsChange), this.owner.events.on(r.PdfScaleChanging, this.onScaleChanging), this.documentEventBridge.bind(), this.viewerEvents.bind(), this.zoomInputController.bind(), this.keyboardController.bind();
|
|
60
|
+
}
|
|
61
|
+
unbindEvents() {
|
|
62
|
+
this.owner.events.off(r.OptionsChange, this.onOptionsChange), this.owner.events.off(r.PdfScaleChanging, this.onScaleChanging), this.documentEventBridge.unbind(), this.viewerEvents.unbind(), this.zoomInputController.unbind(), this.keyboardController.unbind();
|
|
63
|
+
}
|
|
64
|
+
buildDest(e, t) {
|
|
65
|
+
return this.destinationBuilder.buildDest(e, t);
|
|
66
|
+
}
|
|
67
|
+
async getProgress(e) {
|
|
68
|
+
return this.progressTracker.getProgress(e);
|
|
69
|
+
}
|
|
70
|
+
async applyTheme(e) {
|
|
71
|
+
this.themeApplier.applyTheme(e);
|
|
72
|
+
}
|
|
73
|
+
async dispose() {
|
|
74
|
+
this.unbindEvents(), this.currentInstanceId = null, await this.svgBuilder?.dispose(), await this.progressTracker.dispose(), await this.pagingNavigator.dispose(), await this.navPointProvider?.dispose(), await super.dispose();
|
|
75
|
+
}
|
|
81
76
|
};
|
|
77
|
+
//#endregion
|
|
78
|
+
export { b as PdfRenderer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../kernal/web/BrowserCapabilities.cjs"),n=require("../../../kernal/Theme.cjs"),r=require("../../../kernal/EventNames.cjs"),i=require("../../../kernal/common/text.cjs");let a=require("../../../pdfjs/legacy/build/pdf.mjs");a=e.__toESM(a,1);let o=require("perfect-debounce");var s=class e{static{this.svgClassName=`custom-text-layer`}constructor(s,c){this.SVG_NS=`http://www.w3.org/2000/svg`,this.pageTasks=[],this.builtPages=new Map,this.textContentCache=new Map,this.isScrolling=!1,this.scrollingTimer=null,this.disposed=!1,this.batchSize=64,this.measureContext=null,this.isFirefox=t.BrowserCapabilities.isFirefox(),this.isSafari=t.BrowserCapabilities.isSafari(),this.renderLoopPromise=null,this.onReaderOriginalScroll=()=>{this.isScrolling=!0,this.scrollingTimer&&clearTimeout(this.scrollingTimer),this.scrollingTimer=setTimeout(async()=>{this.isScrolling=!1,await this.delayRenderVisiblePageTexts()},500)},this.onPageChange=async()=>{await this.delayRenderVisiblePageTexts()},this.getVisiblePageIdSet=()=>{let e=this.renderer.getVisibleDocuments(),t=new Set;for(let n=0;n<e.length;n++)t.add(e[n].pageNumber);return t},this.renderVisiblePageTexts=async()=>{if(!this.disposed&&!this.isScrolling){let e=this.getVisiblePageIdSet();this.removeInvisibleBuiltPages(e),await this.appendSvgs([...e])}},this.delayRenderVisiblePageTexts=(0,o.debounce)(this.renderVisiblePageTexts,1),this.onPageRendered=async()=>{let e=this.getVisiblePageIdSet();this.removeInvisibleBuiltPages(e),await this.delayRenderVisiblePageTexts()},this.removeInvisibleBuiltPages=e=>{for(let t of[...this.builtPages.keys()])e.has(t)||this.removePageSvg(t);this.pruneInvisibleTasks(e)},this.removePageSvg=e=>{let t=this.builtPages.get(e);if(t?.parentElement)t.parentElement.removeChild(t);else{let t=this.getTextLayerContainer(e);t?.parentElement?.removeChild(t)}this.builtPages.delete(e)},this.pruneInvisibleTasks=e=>{let t=0;for(let n=0;n<this.pageTasks.length;n++)e.has(this.pageTasks[n].pageNumber)&&(this.pageTasks[t++]=this.pageTasks[n]);this.pageTasks.length=t},this.getMeasureContext=()=>{if(!this.measureContext){let e=document.createElement(`canvas`);this.measureContext=e.getContext(`2d`)}return this.measureContext},this.ensureTextContent=async e=>{let t=this.textContentCache.get(e);if(t)return t;let n=this.renderer.getPageView(e);if(!n?.pdfPage)return null;let r=await n.pdfPage.getTextContent({disableNormalization:!0});return this.textContentCache.set(e,r),r},this.appendSvg=async e=>{let t=this.renderer.getPageView(e);if(!t||this.options.textLayerMode!=2||!t.canvas?.parentElement)return;t.canvas.parentElement.style.background=`var(${n.Theme.ContentBackground})`;let i=this.getTextLayerContainer(t);if(i){let t=i.getAttribute(`data-state`);if(t==`loading`||t==`loaded`){this.builtPages.set(e,i);return}}if(!i){if(i=await this.buildSVG(t.viewport),!i)return;t.div.appendChild(i)}this.builtPages.set(e,i),await this.appendTexts(i,e);let a=this.renderer.getDocument((e-1).toString());this.renderer.owner.events.emit(r.EventNames.PdfPageTextRendered,a,e)},this.appendSvgs=async e=>{await Promise.all(e.map(e=>this.ensureTextContent(e)));for(let t of e)await this.appendSvg(t)},this.appendTexts=async(e,t)=>{let n=this.renderer.getPageView(t);if(!n?.pdfPage)return;let r=await this.ensureTextContent(t);if(!r)return;let i=r.items.length,a=Math.ceil(i/this.batchSize)||0,o=i%this.batchSize,s=this.getVisiblePageIdSet();this.pruneInvisibleTasks(s);let c=!1;for(let n of this.pageTasks)n.pageNumber==t&&(n.svg=e,c=!0);if(!c&&a>0)for(let i=0;i<a;i++){let s=this.batchSize;i==a-1&&o>0&&(s=o),this.pageTasks.push({svg:e,batchLength:a,current:i,pageNumber:t,textContent:r,viewportTransform:n.viewport.transform,start:i*this.batchSize,size:s})}await this.renderSvgTexts()},this.renderSvgTexts=async()=>{if(this.renderLoopPromise){await this.renderLoopPromise,this.pageTasks.length>0&&!this.renderLoopPromise&&await this.renderSvgTexts();return}this.renderLoopPromise=this.runRenderLoop();try{await this.renderLoopPromise}finally{this.renderLoopPromise=null}this.pageTasks.length>0&&!this.isScrolling&&!this.disposed&&await this.renderSvgTexts()},this.runRenderLoop=async()=>{for(;this.pageTasks.length>0;){if(this.disposed)return;if(this.isScrolling){let e=this.pageTasks[0];e.svg.getAttribute(`data-state`)!=`pause`&&e.svg.setAttribute(`data-state`,`pause`);return}let e=this.pageTasks.shift();if(e?.svg.parentElement){if(e.svg.getAttribute(`data-state`)!=`loading`&&e.svg.setAttribute(`data-state`,`loading`),await t.BrowserCapabilities.yieldToMain(),this.disposed||!this.renderer.owner.context)return;await this.appendPartialText(e.pageNumber,e.svg,e.viewportTransform,e.textContent,e.start,e.size),e.batchLength-1==e.current&&e.svg.setAttribute(`data-state`,`loaded`)}}},this.calcTextWidth=(e,t,n,r,a)=>{let o=i.getByteLength(t)-t.length;return e.font=t.length<=2&&o==0?a==`monospace`?`1px `+n+`,sans-serif`:`1px `+n+`,`+r:`1px `+r,e.measureText(t).width},this.applyOrientedTextScale=(e,t,n,r,i,o,s)=>{let c=o?a.Util.transform(e,o):e,l=o?a.Util.transform(t,o):t,u=n*(l[0]==0?Math.abs(l[1]):Math.abs(l[0])),d=u>0?r/u/i:1;return c=a.Util.transform(c,[d,0,0,d,0,0]),s?a.Util.transform(c,s):c},this.extractFontSizeFromTransform=(e,t)=>{let n=Math.hypot(e[0],e[1]);return n>1e-6?{tx:[e[0]/n,e[1]/n,e[2]/n,e[3]/n,e[4],e[5]],fontSize:Math.max(t*n,1)}:{tx:e,fontSize:1}},this.appendPartialText=async(e,t,n,r,i,o)=>{let s=this.getMeasureContext();if(!s)return;let c=this.isFirefox,l=this.isSafari,u=document.createDocumentFragment(),d=this.renderer.getRendererContainer().ownerDocument,f=this.renderer.owner.context?.id??`pdf`,p=new Map,m=[1,0,0,-1,0,0],h=[0,-1,1,0,0,0],g=[0,1,-1,0,0,0],_=[-1,0,0,-1,0,0],v=[0,1,-1,0,0,0],y=[0,-1,1,0,0,0];for(let t=i;t<i+o;t++){let i=r.items[t];if(!i||typeof i.str!=`string`)continue;let o=i.str,b=r.styles[i.fontName];if(!b)continue;let x=a.Util.transform(a.Util.transform(n,i.transform),m),S=Math.atan2(i.transform[1],i.transform[0])*(180/Math.PI);b.vertical&&(S+=90);let C=S<0?S+360:S;C=Math.round(C);let w=p.get(b.fontFamily);if(w===void 0&&(w=b.fontFamily.replace(/^serif/,`Times`),p.set(b.fontFamily,w)),o.length>0){let e=i.textMetricsWidth;switch(e||(e=this.calcTextWidth(s,o,i.fontName,w,b.fontName),i.textMetricsWidth=e),C){case 90:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,h,g);break;case 180:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,_,_);break;case 270:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,v,y);break;default:x=this.applyOrientedTextScale(x,i.transform,e,i.width,12,null,null)}}let T=`p-`+f+`-`+e+`-t-`+t;if(c||l){let e=this.extractFontSizeFromTransform(x,12);x=e.tx;let n=e.fontSize,r=d.createElementNS(this.SVG_NS,`svg:g`);r.setAttribute(`transform`,`matrix(`+x.join(` `)+`)`),r.setAttribute(`style`,`font-family:`+w+`;`);let i=d.createElementNS(this.SVG_NS,`svg:text`);i.setAttribute(`font-size`,n+`px`),l&&(i.setAttribute(`transform`,`translate(0,-`+n+`)`),i.setAttribute(`x`,`0`),i.setAttribute(`y`,n.toString())),i.textContent=o,i.setAttribute(`id`,T),i.setAttribute(`data-text-index`,String(t)),r.appendChild(i),u.appendChild(r)}else{let e=d.createElementNS(this.SVG_NS,`svg:text`);e.setAttribute(`transform`,`matrix(`+x.join(` `)+`)`),e.setAttribute(`style`,`font-size:12px;font-family:`+w+`;`),e.textContent=o,e.setAttribute(`id`,T),e.setAttribute(`data-text-index`,String(t)),u.appendChild(e)}}t.appendChild(u)},this.buildSVG=async t=>{if(t.width<=0||t.height<=0)return null;let n=this.renderer.getRendererContainer().ownerDocument.createElementNS(this.SVG_NS,`svg:svg`);return n.setAttribute(`version`,`1.1`),n.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),n.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`),n.setAttribute(`class`,e.svgClassName),n.setAttribute(`data-loaded`,`false`),n.setAttribute(`style`,`fill:transparent;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;contain:size layout paint;`),n},this.renderer=s,this.options=c}async initialize(){this.bindEvents()}bindEvents(){let e=this.renderer.owner.events;e.on(r.EventNames.PdfPageRendered,this.onPageRendered),e.on(r.EventNames.PageChange,this.onPageChange),e.on(r.EventNames.ReaderOriginalScroll,this.onReaderOriginalScroll)}unbindEvents(){let e=this.renderer.owner.events;e.off(r.EventNames.PdfPageRendered,this.onPageRendered),e.off(r.EventNames.PageChange,this.onPageChange),e.off(r.EventNames.ReaderOriginalScroll,this.onReaderOriginalScroll)}async dispose(){this.disposed=!0,this.unbindEvents(),this.scrollingTimer&&=(clearTimeout(this.scrollingTimer),null),this.pageTasks.length=0,this.builtPages.clear(),this.textContentCache.clear(),this.measureContext=null,this.renderLoopPromise=null}getTextLayerContainer(t){let n=e.svgClassName;return typeof t==`number`?this.builtPages.get(t)??this.renderer.getPageView(t)?.div?.querySelector(`svg.${n}`)??null:`tagName`in t?t.querySelector(`svg.${n}`):t.div?.querySelector(`svg.${n}`)??null}};exports.PdfSvgBuilder=s;
|