@foxycape/core 1.1.5 → 1.1.7
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/README.MD +0 -2
- package/README.zh.md +0 -2
- package/dist/ReaderHub.cjs +1 -0
- package/dist/ReaderHub.d.ts +20 -0
- package/dist/ReaderHub.mjs +59 -0
- package/dist/kernal/ContentRange.d.ts +1 -0
- package/dist/kernal/Context.cjs +1 -1
- package/dist/kernal/Context.mjs +13 -8
- package/dist/kernal/EventNames.cjs +1 -1
- package/dist/kernal/EventNames.d.ts +2 -0
- package/dist/kernal/EventNames.mjs +6 -0
- package/dist/kernal/FileLoader.cjs +1 -1
- package/dist/kernal/FileLoader.d.ts +3 -11
- package/dist/kernal/FileLoader.mjs +27 -22
- package/dist/kernal/JsonConvert.cjs +1 -1
- package/dist/kernal/JsonConvert.d.ts +0 -1
- package/dist/kernal/JsonConvert.mjs +17 -25
- package/dist/kernal/LifecycleHooks.d.ts +2 -1
- package/dist/kernal/Metadata.cjs +1 -1
- package/dist/kernal/Metadata.d.ts +34 -0
- package/dist/kernal/Metadata.mjs +47 -2
- package/dist/kernal/OpenOptions.d.ts +1 -0
- package/dist/kernal/Options.cjs +1 -1
- package/dist/kernal/Options.d.ts +2 -12
- package/dist/kernal/Options.mjs +1 -13
- package/dist/kernal/OptionsProvider.cjs +1 -1
- package/dist/kernal/OptionsProvider.d.ts +0 -2
- package/dist/kernal/OptionsProvider.mjs +6 -14
- package/dist/kernal/Reader.cjs +1 -1
- package/dist/kernal/Reader.d.ts +13 -12
- package/dist/kernal/Reader.mjs +119 -89
- package/dist/kernal/Theme.cjs +1 -1
- package/dist/kernal/Theme.mjs +1 -1
- package/dist/kernal/common/url.cjs +1 -1
- package/dist/kernal/common/url.d.ts +2 -0
- package/dist/kernal/common/url.mjs +2 -2
- package/dist/kernal/common/uuid.cjs +1 -1
- package/dist/kernal/common/uuid.mjs +7 -7
- package/dist/kernal/common/xxh64.cjs +1 -0
- package/dist/kernal/common/xxh64.d.ts +1 -0
- package/dist/kernal/common/xxh64.mjs +30 -0
- package/dist/kernal/crypto/MD5.cjs +1 -1
- package/dist/kernal/crypto/MD5.d.ts +0 -1
- package/dist/kernal/crypto/MD5.mjs +8 -9
- package/dist/kernal/crypto/WebCrypto.cjs +1 -1
- package/dist/kernal/crypto/WebCrypto.mjs +38 -35
- package/dist/kernal/deepClone/buffer.cjs +1 -1
- package/dist/kernal/deepClone/buffer.d.ts +8 -2
- package/dist/kernal/deepClone/buffer.mjs +1 -5
- package/dist/kernal/device/IDevice.d.ts +8 -2
- package/dist/kernal/device/WebBrowser.cjs +1 -1
- package/dist/kernal/device/WebBrowser.d.ts +12 -6
- package/dist/kernal/device/WebBrowser.mjs +70 -6
- package/dist/kernal/hostViewport.cjs +1 -0
- package/dist/kernal/hostViewport.d.ts +16 -0
- package/dist/kernal/hostViewport.mjs +44 -0
- package/dist/kernal/html/events.cjs +1 -1
- package/dist/kernal/html/events.mjs +35 -34
- package/dist/kernal/html/finder.cjs +1 -1
- package/dist/kernal/html/finder.d.ts +6 -2
- package/dist/kernal/html/finder.mjs +62 -51
- package/dist/kernal/html/geometry.cjs +1 -1
- package/dist/kernal/html/geometry.d.ts +26 -1
- package/dist/kernal/html/geometry.mjs +182 -121
- package/dist/kernal/html/manipulator.cjs +1 -1
- package/dist/kernal/html/manipulator.d.ts +1 -3
- package/dist/kernal/html/manipulator.mjs +34 -59
- package/dist/kernal/html/parser.cjs +1 -1
- package/dist/kernal/html/parser.mjs +3 -3
- package/dist/kernal/html/position.cjs +1 -1
- package/dist/kernal/html/position.d.ts +0 -18
- package/dist/kernal/html/position.mjs +2 -141
- package/dist/kernal/html/realm.cjs +1 -0
- package/dist/kernal/html/realm.d.ts +7 -0
- package/dist/kernal/html/realm.mjs +8 -0
- package/dist/kernal/html/selection.cjs +1 -1
- package/dist/kernal/html/selection.d.ts +1 -0
- package/dist/kernal/html/selection.mjs +33 -12
- package/dist/kernal/html/text.cjs +1 -1
- package/dist/kernal/html/text.d.ts +4 -3
- package/dist/kernal/html/text.mjs +24 -21
- package/dist/kernal/html/translationAnchor.cjs +1 -0
- package/dist/kernal/html/translationAnchor.d.ts +3 -0
- package/dist/kernal/html/translationAnchor.mjs +71 -0
- package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
- package/dist/kernal/i18n/DefaultLocale.d.ts +2 -2
- package/dist/kernal/i18n/DefaultLocale.mjs +7 -12
- package/dist/kernal/i18n/ILocale.d.ts +0 -1
- package/dist/kernal/i18n/applyNamed.cjs +1 -0
- package/dist/kernal/i18n/applyNamed.d.ts +1 -0
- package/dist/kernal/i18n/applyNamed.mjs +9 -0
- package/dist/kernal/i18n/textDirection.cjs +1 -0
- package/dist/kernal/i18n/textDirection.d.ts +6 -0
- package/dist/kernal/i18n/textDirection.mjs +7 -0
- package/dist/kernal/index.cjs +1 -1
- package/dist/kernal/index.d.ts +6 -5
- package/dist/kernal/index.mjs +50 -45
- package/dist/kernal/mark/IHighlighter.cjs +1 -0
- package/dist/kernal/mark/IHighlighter.d.ts +43 -0
- package/dist/kernal/mark/IHighlighter.mjs +13 -0
- package/dist/kernal/mark/Mark.cjs +1 -1
- package/dist/kernal/mark/Mark.d.ts +33 -4
- package/dist/kernal/mark/Mark.mjs +43 -6
- package/dist/kernal/mark/index.cjs +1 -1
- package/dist/kernal/mark/index.d.ts +2 -0
- package/dist/kernal/mark/index.mjs +6 -3
- package/dist/kernal/mark/overlay.cjs +1 -0
- package/dist/kernal/mark/overlay.d.ts +31 -0
- package/dist/kernal/mark/overlay.mjs +102 -0
- package/dist/kernal/mark/types.cjs +1 -0
- package/dist/kernal/mark/types.d.ts +11 -2
- package/dist/kernal/mark/types.mjs +4 -0
- package/dist/kernal/navigator/INavigator.d.ts +3 -2
- package/dist/kernal/network/HttpClient.cjs +1 -1
- package/dist/kernal/network/HttpClient.mjs +80 -56
- package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
- package/dist/kernal/pipelines/FileLoadPipeline.mjs +55 -56
- package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
- package/dist/kernal/pipelines/InputFormatter.mjs +43 -41
- package/dist/kernal/pipelines/metadata.cjs +1 -1
- package/dist/kernal/pipelines/metadata.d.ts +2 -1
- package/dist/kernal/pipelines/metadata.mjs +21 -30
- package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
- package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +7 -6
- package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
- package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +12 -11
- package/dist/kernal/progress/Progress.cjs +1 -1
- package/dist/kernal/progress/Progress.d.ts +5 -3
- package/dist/kernal/progress/Progress.mjs +2 -2
- package/dist/kernal/progress/userChangedProgress.cjs +1 -0
- package/dist/kernal/progress/userChangedProgress.d.ts +9 -0
- package/dist/kernal/progress/userChangedProgress.mjs +11 -0
- package/dist/kernal/screen/BrowserFullscreen.cjs +1 -0
- package/dist/kernal/screen/BrowserFullscreen.d.ts +9 -0
- package/dist/kernal/screen/BrowserFullscreen.mjs +47 -0
- package/dist/kernal/screen/IFullscreen.d.ts +6 -0
- package/dist/kernal/services/ServiceCollection.cjs +1 -1
- package/dist/kernal/services/ServiceCollection.d.ts +4 -6
- package/dist/kernal/services/ServiceCollection.mjs +18 -9
- package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
- package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +4 -2
- package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +31 -23
- package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
- package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +52 -51
- package/dist/kernal/services/fileUrlParser/IFileUrlParser.d.ts +0 -1
- package/dist/kernal/services/font/IFontProvider.cjs +1 -1
- package/dist/kernal/services/font/IFontProvider.d.ts +3 -0
- package/dist/kernal/services/font/IFontProvider.mjs +1 -1
- package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
- package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +8 -8
- package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
- package/dist/kernal/services/loading/DefaultLoading.d.ts +4 -0
- package/dist/kernal/services/loading/DefaultLoading.mjs +23 -24
- package/dist/kernal/services/text/splitter.cjs +1 -1
- package/dist/kernal/services/text/splitter.mjs +3 -3
- package/dist/kernal/types.d.ts +0 -5
- package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
- package/dist/kernal/web/BrowserCapabilities.d.ts +0 -9
- package/dist/kernal/web/BrowserCapabilities.mjs +0 -49
- package/dist/kernal/{Debounce.mjs → web/debounce.mjs} +1 -1
- package/dist/kernal/web/scheduler.cjs +1 -0
- package/dist/kernal/web/scheduler.d.ts +3 -0
- package/dist/kernal/web/scheduler.mjs +7 -0
- package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
- package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +59 -59
- package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -0
- package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.d.ts +13 -0
- package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +109 -0
- package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
- package/dist/mediaTypes/html/HtmlOptions.d.ts +6 -12
- package/dist/mediaTypes/html/HtmlOptions.mjs +3 -14
- package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
- package/dist/mediaTypes/html/HtmlSettings.d.ts +16 -1
- package/dist/mediaTypes/html/HtmlSettings.mjs +46 -1
- package/dist/mediaTypes/html/IHtmlContentNormalizer.cjs +1 -0
- package/dist/mediaTypes/html/IHtmlContentNormalizer.d.ts +4 -0
- package/dist/mediaTypes/html/IHtmlContentNormalizer.mjs +4 -0
- package/dist/mediaTypes/html/IHtmlSymbolMeasure.d.ts +11 -0
- package/dist/mediaTypes/html/NoopHtmlContentNormalizer.cjs +1 -0
- package/dist/mediaTypes/html/NoopHtmlContentNormalizer.d.ts +5 -0
- package/dist/mediaTypes/html/NoopHtmlContentNormalizer.mjs +8 -0
- package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
- package/dist/mediaTypes/html/fileParser/HtmlFileParser.d.ts +5 -1
- package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +15 -18
- package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
- package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +25 -25
- package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +1 -0
- package/dist/mediaTypes/html/fileParser/IHtmlFileParser.d.ts +7 -3
- package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +4 -0
- package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
- package/dist/mediaTypes/html/renderer/HtmlRenderer.d.ts +7 -1
- package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +65 -41
- package/dist/mediaTypes/html/renderer/IHtmlDocument.d.ts +6 -2
- package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.d.ts +5 -0
- package/dist/mediaTypes/html/renderer/IHtmlRenderer.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlDocument.d.ts +29 -6
- package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +233 -86
- package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.d.ts +8 -0
- package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +41 -5
- package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.d.ts +2 -4
- package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +22 -59
- package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.d.ts +3 -5
- package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +7 -25
- package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.d.ts +0 -2
- package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +18 -42
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.d.ts +2 -0
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +17 -4
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.d.ts +16 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +128 -54
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +26 -3
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +227 -101
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -0
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +45 -25
- package/dist/mediaTypes/html/renderer/documents/documentHiddenState.cjs +1 -0
- package/dist/mediaTypes/html/renderer/documents/documentHiddenState.d.ts +6 -0
- package/dist/mediaTypes/html/renderer/documents/documentHiddenState.mjs +6 -0
- package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.cjs +1 -0
- package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.d.ts +2 -0
- package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.mjs +13 -0
- package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.cjs +1 -0
- package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.d.ts +11 -0
- package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.mjs +8 -0
- package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
- package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +62 -62
- package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
- package/dist/mediaTypes/html/renderer/html/template.d.ts +3 -1
- package/dist/mediaTypes/html/renderer/html/template.mjs +9 -9
- package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
- package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.d.ts +22 -12
- package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +380 -270
- package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +27 -27
- package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.d.ts +8 -0
- package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -1
- package/dist/mediaTypes/html/renderer/image/error-image.mjs +1 -1
- package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.cjs +1 -0
- package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.d.ts +10 -0
- package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.mjs +15 -0
- package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.cjs +1 -0
- package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.d.ts +2 -0
- package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.mjs +12 -0
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.d.ts +6 -10
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +71 -62
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.d.ts +4 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +113 -68
- package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.d.ts +8 -3
- package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.d.ts +5 -1
- package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +15 -3
- package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.d.ts +8 -0
- package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.mjs +28 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.cjs +30 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.cjs +31 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.cjs +30 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.cjs +30 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.cjs +30 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.cjs +30 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.cjs +6 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.cjs +10 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.cjs +10 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.cjs +10 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.cjs +10 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-default.cjs +19 -0
- package/dist/mediaTypes/html/renderer/layout/css/document-default.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.cjs +3 -0
- package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.d.ts +2 -0
- package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.mjs +56 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-default.cjs +64 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-default.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.cjs +33 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.cjs +33 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.cjs +47 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.cjs +47 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.cjs +46 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.cjs +46 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.cjs +7 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.cjs +28 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.cjs +28 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.cjs +28 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.cjs +28 -0
- package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/css/root-direction.cjs +8 -0
- package/dist/mediaTypes/html/renderer/layout/css/root-direction.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.d.ts +128 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.d.ts +4 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.mjs +7 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.d.ts +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.mjs +13 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/index.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/index.d.ts +18 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/index.mjs +30 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.mjs +74 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.d.ts +41 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.mjs +53 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.mjs +74 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.mjs +71 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.mjs +74 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.mjs +74 -0
- package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.d.ts +10 -0
- package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.mjs +17 -0
- package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.d.ts +6 -0
- package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +24 -0
- package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.d.ts +9 -0
- package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.mjs +4 -0
- package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.cjs +1 -0
- package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.d.ts +11 -0
- package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.mjs +9 -0
- package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +32 -34
- package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -0
- package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.d.ts +23 -0
- package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +164 -0
- package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.cjs +1 -0
- package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.d.ts +4 -0
- package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.mjs +13 -0
- package/dist/mediaTypes/html/renderer/location/scrollActivity.cjs +1 -0
- package/dist/mediaTypes/html/renderer/location/scrollActivity.d.ts +14 -0
- package/dist/mediaTypes/html/renderer/location/scrollActivity.mjs +18 -0
- package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +2 -2
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +3 -3
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +55 -59
- package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.d.ts +1 -0
- package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +40 -39
- package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
- package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.d.ts +2 -1
- package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +36 -24
- package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/ContentCssVariables.d.ts +4 -0
- package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +19 -1
- package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +9 -0
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +3 -0
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +28 -16
- package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.d.ts +2 -0
- package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +39 -34
- package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.cjs +0 -0
- package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.d.ts +6 -0
- package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.mjs +0 -0
- package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.cjs +1 -0
- package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.d.ts +18 -0
- package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.mjs +52 -0
- package/dist/mediaTypes/html/renderer/style/html-content.cjs +38 -7
- package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
- package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
- package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +6 -13
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.d.ts +5 -4
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -3
- package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.d.ts +4 -4
- package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +24 -14
- package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.cjs +1 -0
- package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.d.ts +6 -0
- package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.mjs +4 -0
- package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.cjs +1 -0
- package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.d.ts +10 -0
- package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.mjs +33 -0
- package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
- package/dist/mediaTypes/pdf/loadPdfDocument.mjs +18 -19
- package/dist/mediaTypes/pdf/renderer/IPdfRenderer.d.ts +2 -0
- package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +2 -2
- package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.d.ts +0 -1
- package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +0 -3
- package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +3 -3
- package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +3 -3
- package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.d.ts +3 -3
- package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +20 -19
- package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfRenderer.d.ts +1 -0
- package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +20 -20
- package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +51 -50
- package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
- package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +55 -56
- package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.cjs +1 -0
- package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.d.ts +3 -0
- package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.mjs +12 -0
- package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.d.ts +4 -0
- package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +24 -5
- package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +32 -32
- package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +1 -1
- package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
- package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +5 -5
- package/dist/mediaTypes/pdf/shared/geometry/index.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/geometry/index.mjs +2 -2
- package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.cjs +1 -1
- package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.d.ts +14 -4
- package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.mjs +56 -24
- package/dist/mediaTypes/pdf/shared/text/pageText.cjs +2 -2
- package/dist/mediaTypes/pdf/shared/text/pageText.d.ts +14 -0
- package/dist/mediaTypes/pdf/shared/text/pageText.mjs +139 -47
- package/dist/node_modules/highlight.js/styles/github-dark.cjs +118 -0
- package/dist/node_modules/highlight.js/styles/github-dark.mjs +4 -0
- package/dist/node_modules/highlight.js/styles/github.cjs +118 -0
- package/dist/node_modules/highlight.js/styles/github.mjs +4 -0
- package/dist/pdfjs/package.json +1 -0
- package/global.d.ts +3 -1
- package/package.json +11 -5
- package/types.d.ts +48 -13
- package/dist/kernal/device/IEnvironment.d.ts +0 -5
- package/dist/kernal/device/IPlatform.d.ts +0 -7
- package/dist/kernal/device/WebEnvironment.cjs +0 -1
- package/dist/kernal/device/WebEnvironment.d.ts +0 -7
- package/dist/kernal/device/WebEnvironment.mjs +0 -22
- package/dist/kernal/device/WebPlatform.cjs +0 -1
- package/dist/kernal/device/WebPlatform.d.ts +0 -12
- package/dist/kernal/device/WebPlatform.mjs +0 -49
- package/dist/kernal/progress/IReadingProgressStore.d.ts +0 -7
- package/dist/kernal/progress/ReadingProgressStore.cjs +0 -1
- package/dist/kernal/progress/ReadingProgressStore.d.ts +0 -12
- package/dist/kernal/progress/ReadingProgressStore.mjs +0 -17
- package/dist/kernal/storage/IStorage.cjs +0 -1
- package/dist/kernal/storage/IStorage.d.ts +0 -21
- package/dist/kernal/storage/IStorage.mjs +0 -4
- package/dist/kernal/storage/WebStorage.cjs +0 -1
- package/dist/kernal/storage/WebStorage.d.ts +0 -31
- package/dist/kernal/storage/WebStorage.mjs +0 -165
- package/dist/mediaTypes/adjacent.cjs +0 -1
- package/dist/mediaTypes/adjacent.d.ts +0 -5
- package/dist/mediaTypes/adjacent.mjs +0 -42
- package/dist/mediaTypes/html/renderer/image/placeholder.cjs +0 -1
- package/dist/mediaTypes/html/renderer/image/placeholder.mjs +0 -4
- /package/dist/kernal/{device/IEnvironment.cjs → screen/IFullscreen.cjs} +0 -0
- /package/dist/kernal/{device/IEnvironment.mjs → screen/IFullscreen.mjs} +0 -0
- /package/dist/kernal/{Debounce.cjs → web/debounce.cjs} +0 -0
- /package/dist/kernal/{Debounce.d.ts → web/debounce.d.ts} +0 -0
- /package/dist/{kernal/device/IPlatform.cjs → mediaTypes/html/IHtmlSymbolMeasure.cjs} +0 -0
- /package/dist/{kernal/device/IPlatform.mjs → mediaTypes/html/IHtmlSymbolMeasure.mjs} +0 -0
- /package/dist/{kernal/progress/IReadingProgressStore.cjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.cjs} +0 -0
- /package/dist/{kernal/progress/IReadingProgressStore.mjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.mjs} +0 -0
|
@@ -1,77 +1,151 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { asyncDebounce as n } from "../../../../kernal/
|
|
1
|
+
import { EventNames as e } from "../../../../kernal/EventNames.mjs";
|
|
2
|
+
import { yieldToMain as t } from "../../../../kernal/web/scheduler.mjs";
|
|
3
|
+
import { asyncDebounce as n } from "../../../../kernal/web/debounce.mjs";
|
|
4
|
+
import { HtmlSettings as r } from "../../HtmlSettings.mjs";
|
|
5
|
+
import { pickVisibleCompensationDocument as i } from "../layout/geometry/restoreLayoutState.mjs";
|
|
6
|
+
import { getLayoutGeometry as a } from "../layout/resolveLayoutRoute.mjs";
|
|
7
|
+
import { isProgrammaticScroll as o, isUserScrollSettling as s, markUserScroll as c, releaseAbsoluteLocate as l } from "../location/scrollActivity.mjs";
|
|
8
|
+
import { collectPreloadNeighbors as u } from "./preloadNeighbors.mjs";
|
|
9
|
+
import { isSubstantialWrapperRect as d, rectsIntersect as f } from "./wrapperVisibility.mjs";
|
|
4
10
|
//#region mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.ts
|
|
5
|
-
var
|
|
6
|
-
constructor(e, t,
|
|
7
|
-
this.events = e, this.documentsProvider = t, this.getLoadingDocument =
|
|
8
|
-
|
|
9
|
-
}, this.
|
|
11
|
+
var p = 160, m = (e, t) => e === t.scrollingElement || e === t.documentElement || e === t.body, h = class {
|
|
12
|
+
constructor(e, t, i, u) {
|
|
13
|
+
this.events = e, this.documentsProvider = t, this.getLoadingDocument = i, this.htmlOptions = u, this.preloadToken = 0, this.onDocumentVisibleChange = () => {
|
|
14
|
+
o() || this.schedulePreload();
|
|
15
|
+
}, this.onReaderScroll = (e, t) => {
|
|
16
|
+
o() || t && !t.isTrusted || (c(), l(), this.schedulePreload());
|
|
17
|
+
}, this.onPageChange = () => {
|
|
18
|
+
this.schedulePreload();
|
|
19
|
+
}, this.preloadDocuments = async () => {
|
|
20
|
+
if (this.isPageMoving()) {
|
|
21
|
+
this.preloadToken++, this.delayPreloadAfterMove();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
let e = ++this.preloadToken;
|
|
25
|
+
try {
|
|
26
|
+
let t = this.resolveVisibleDocuments(), n = a(this.htmlOptions).preloadRangeMode == "visual-edge", r = n ? this.resolvePreloadAnchor(t) : t[0], i = n ? r : t[t.length - 1];
|
|
27
|
+
if (!r || !i) return;
|
|
28
|
+
let o = t.length > 0 ? t : [r];
|
|
29
|
+
for (let t of o) {
|
|
30
|
+
if (this.shouldAbortPreload(e)) return;
|
|
31
|
+
await t.load();
|
|
32
|
+
}
|
|
33
|
+
if (this.shouldAbortPreload(e)) return;
|
|
34
|
+
await this.preloadRelatedDocuments(r, i, e);
|
|
35
|
+
} catch {}
|
|
36
|
+
}, this.delayPreloadDocuments = n(() => this.preloadDocuments(), 500), this.delayPreloadAfterMove = n(() => this.preloadDocuments(), 80), this.schedulePreload = () => {
|
|
37
|
+
if (this.abortPreloadIfPageMoving(), this.isPageMoving()) {
|
|
38
|
+
this.delayPreloadAfterMove();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.delayPreloadDocuments();
|
|
42
|
+
}, this.shouldPreloadPreviousFirst = () => {
|
|
43
|
+
let e = this.documentsProvider.owner?.context?.currentLocation?.direction;
|
|
44
|
+
return a(this.htmlOptions).preloadRangeMode == "page-fill" ? e != "next" : e == "previous";
|
|
45
|
+
}, this.isPageMoving = () => !!(this.documentsProvider.getRendererContainer()?.querySelector?.(`.${r.TransformContainerCssName}`))?.hasAttribute(r.PageMovingAttributeName), this.isScrollSettling = () => a(this.htmlOptions).flipMode == "scroll" && s(), this.abortPreloadIfPageMoving = () => {
|
|
46
|
+
this.isPageMoving() && this.preloadToken++;
|
|
47
|
+
}, this.shouldAbortPreload = (e) => e === this.preloadToken ? this.isPageMoving() ? (this.preloadToken++, !0) : !1 : !0, this.checkContainFullscreenElement = (e) => !!e?.getContentContainer()?.ownerDocument?.fullscreenElement, this.bindEvents();
|
|
10
48
|
}
|
|
11
49
|
bindEvents() {
|
|
12
|
-
this.events.on(
|
|
50
|
+
this.events.on(e.DocumentVisibleChange, this.onDocumentVisibleChange), this.events.on(e.ReaderDebounceScroll, this.onReaderScroll), this.events.on(e.PageChange, this.onPageChange);
|
|
13
51
|
}
|
|
14
52
|
unbindEvents() {
|
|
15
|
-
this.events.off(
|
|
53
|
+
this.events.off(e.DocumentVisibleChange, this.onDocumentVisibleChange), this.events.off(e.ReaderDebounceScroll, this.onReaderScroll), this.events.off(e.PageChange, this.onPageChange);
|
|
16
54
|
}
|
|
17
55
|
async dispose() {
|
|
18
|
-
this.unbindEvents();
|
|
56
|
+
this.preloadToken++, this.unbindEvents();
|
|
57
|
+
}
|
|
58
|
+
resolveVisibleDocuments() {
|
|
59
|
+
let e = a(this.htmlOptions);
|
|
60
|
+
return e.preloadRangeMode == "visible-span" ? this.resolveIntersectingDocuments(!1) : e.rewritesWrapperVisibility ? this.resolveIntersectingDocuments(!0) : this.documentsProvider.getVisibleDocuments();
|
|
61
|
+
}
|
|
62
|
+
resolveIntersectingDocuments(e) {
|
|
63
|
+
let t = this.getViewportRect();
|
|
64
|
+
if (!t) {
|
|
65
|
+
let t = this.documentsProvider.getVisibleDocuments();
|
|
66
|
+
return e ? t.filter((e) => d(e.getWrapperContainer()?.getBoundingClientRect())) : t;
|
|
67
|
+
}
|
|
68
|
+
let n = [];
|
|
69
|
+
for (let r of this.documentsProvider.getDocuments()) {
|
|
70
|
+
let i = r.getWrapperContainer();
|
|
71
|
+
if (!i) continue;
|
|
72
|
+
let a = i.getBoundingClientRect(), o = f(a, t) && (!e || d(a));
|
|
73
|
+
i.isVisible = o, o && n.push(r);
|
|
74
|
+
}
|
|
75
|
+
return n;
|
|
19
76
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} catch {}
|
|
77
|
+
resolvePreloadAnchor(e) {
|
|
78
|
+
let t = a(this.htmlOptions);
|
|
79
|
+
return i(e, t.compensationAnchorEdge, (e) => {
|
|
80
|
+
let n = e.getWrapperContainer()?.getBoundingClientRect();
|
|
81
|
+
if (!(!n || !d(n))) return t.getCompensationRect(n);
|
|
82
|
+
}) ?? this.documentsProvider.getDocuments()[0];
|
|
27
83
|
}
|
|
28
|
-
|
|
29
|
-
let
|
|
30
|
-
|
|
31
|
-
let
|
|
32
|
-
|
|
84
|
+
getViewportRect() {
|
|
85
|
+
let e = this.documentsProvider.getScrollElement(), t = this.documentsProvider.getRendererContainer(), n = (e ?? t)?.ownerDocument;
|
|
86
|
+
if (e && n && m(e, n)) {
|
|
87
|
+
let e = n.defaultView;
|
|
88
|
+
return e ? {
|
|
89
|
+
left: 0,
|
|
90
|
+
top: 0,
|
|
91
|
+
right: e.innerWidth,
|
|
92
|
+
bottom: e.innerHeight
|
|
93
|
+
} : void 0;
|
|
33
94
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let
|
|
40
|
-
|
|
95
|
+
return (e ?? t)?.getBoundingClientRect();
|
|
96
|
+
}
|
|
97
|
+
async preloadRelatedDocuments(e, n, r) {
|
|
98
|
+
let i = this.documentsProvider.getDocuments(), o = i.indexOf(e), s = i.indexOf(n), c = i.length, l = [];
|
|
99
|
+
for (let e = o; e <= s; e++) {
|
|
100
|
+
let t = i[e];
|
|
101
|
+
t && !l.includes(t) && l.push(t);
|
|
41
102
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
103
|
+
let f = u(i, o, s, this.htmlOptions.preloadFileCount, this.shouldPreloadPreviousFirst());
|
|
104
|
+
for (let e = 0; e < f.length; e++) {
|
|
105
|
+
if (this.shouldAbortPreload(r)) return;
|
|
106
|
+
let n = f[e];
|
|
107
|
+
await n.load(), n && !l.includes(n) && l.push(n), await t();
|
|
45
108
|
}
|
|
46
|
-
let
|
|
47
|
-
if (this.htmlOptions.
|
|
48
|
-
let
|
|
49
|
-
for (let n =
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
await e.
|
|
109
|
+
let p = this.documentsProvider.getRendererContainer().clientWidth;
|
|
110
|
+
if (a(this.htmlOptions).preloadRangeMode == "page-fill") {
|
|
111
|
+
let e = 0;
|
|
112
|
+
for (let n = o - 1; n >= 0; n--) {
|
|
113
|
+
if (this.shouldAbortPreload(r)) return;
|
|
114
|
+
let a = i[n];
|
|
115
|
+
if (await a.load(), a && !l.includes(a) && l.push(a), e += a.getWrapperContainer().clientWidth, e >= p) break;
|
|
116
|
+
await t();
|
|
53
117
|
}
|
|
54
118
|
let n = 0;
|
|
55
|
-
for (let
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
await
|
|
119
|
+
for (let e = s + 1; e < c; e++) {
|
|
120
|
+
if (this.shouldAbortPreload(r)) return;
|
|
121
|
+
let a = i[e];
|
|
122
|
+
if (await a.load(), a && !l.includes(a) && l.push(a), n += a.getWrapperContainer().clientWidth, n >= p) break;
|
|
123
|
+
await t();
|
|
59
124
|
}
|
|
60
125
|
}
|
|
61
|
-
let
|
|
62
|
-
|
|
63
|
-
let
|
|
64
|
-
for (let e of
|
|
65
|
-
|
|
126
|
+
let m = this.getLoadingDocument();
|
|
127
|
+
m && !l.includes(m) && l.push(m), l.includes(e) || l.push(e);
|
|
128
|
+
let h = a(this.htmlOptions).preloadRangeMode == "visual-edge" ? this.documentsProvider.getVisibleDocuments().filter((e) => d(e.getWrapperContainer()?.getBoundingClientRect())) : this.documentsProvider.getVisibleDocuments();
|
|
129
|
+
for (let e of h) l.includes(e) || l.push(e);
|
|
130
|
+
if (!this.shouldAbortPreload(r)) {
|
|
131
|
+
if (this.isScrollSettling()) {
|
|
132
|
+
this.delayPreloadAfterMove();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
await this.removeUnnecessaryDocuments(l, r), l.splice(0);
|
|
136
|
+
}
|
|
66
137
|
}
|
|
67
|
-
async removeUnnecessaryDocuments(
|
|
68
|
-
if (!
|
|
69
|
-
let
|
|
70
|
-
for (let
|
|
138
|
+
async removeUnnecessaryDocuments(e, n) {
|
|
139
|
+
if (!e) return;
|
|
140
|
+
let r = this.documentsProvider.getLoadedDocuments();
|
|
141
|
+
for (let i of r) {
|
|
142
|
+
if (this.shouldAbortPreload(n)) return;
|
|
143
|
+
e.includes(i) || (await this.disposeDocument(i), await t());
|
|
144
|
+
}
|
|
71
145
|
}
|
|
72
146
|
async disposeDocument(e) {
|
|
73
147
|
this.checkContainFullscreenElement(e) || await e.dispose();
|
|
74
148
|
}
|
|
75
149
|
};
|
|
76
150
|
//#endregion
|
|
77
|
-
export {
|
|
151
|
+
export { h as HtmlDocumentsPreloader, p as SCROLL_PRELOAD_SETTLE_MS };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/progress/Progress.cjs");require("../../../../kernal/Constants.cjs");const r=require("../../../../kernal/common/number.cjs"),i=require("../../../../kernal/html/finder.cjs"),a=require("../../../../kernal/html/dom.cjs"),o=require("../../../../kernal/html/style.cjs"),s=require("../../../../kernal/html/manipulator.cjs"),c=require("../../HtmlSettings.cjs"),l=require("../../../base/renderer/BaseDocumentsProvider.cjs"),u=require("../document/HtmlDocument.cjs"),d=require("./HtmlDocumentsPreloader.cjs"),f=require("./HtmlDocumentsIntersectionObserver.cjs"),p=require("../location/HtmlElementLocator.cjs"),m=require("../layout/HtmlRendererViewport.cjs");let h=require("perfect-debounce");var g=class extends l.BaseDocumentsProvider{constructor(e,n,r,i){super(e,n),this.readerContainer=r,this.htmlOptions=i,this.isInit=!1,this.isFirstLoad=!0,this.hangTasks=[],this.resetTransformContainer=()=>{let e=this.getTransformContainer();e&&(e.style.removeProperty(`transition`),e.style.transform=`translate3d(0px,0,0)`,e.setAttribute(`data-target-transform`,`0`),e.offsetWidth)},this.removeElementTransitionEvent=async e=>{let t=e.target;for(t.style.removeProperty(`transition`),t.style.removeProperty(`will-change`),t.removeAttribute(c.HtmlSettings.PageMovingAttributeName),t.removeEventListener(`transitionend`,this.removeElementTransitionEvent);this.hangTasks.length>0;)await this.hangTasks.shift()()},this.scrollWrapperIntoView=(e,t)=>{let n=e.getWrapperContainer();if(this.htmlOptions.flipMode==`page`){let e=n.offsetLeft,t=this.getTransformContainer();t.style.transform=`translateX(`+-e+`px)`}else(!n.isVisible||t)&&o.scrollElementIntoView(n,void 0,void 0,this.owner.getRootContainer()?.ownerDocument);this.setDocumentVisible(n,!0)},this.setDocumentVisible=(e,t)=>{e.isVisible=t},this.reload=async()=>{let e=this.owner.context.currentLocation;t.isNullOrWhiteSpace(e?.url)||(e.scrollBehavior=`smooth`,await this.load(e,!0),e.scrollBehavior=void 0)},this.delayReloadTime=300,this.delayReload=(0,h.debounce)(this.reload,this.delayReloadTime),this.logger=this.owner.loggerFactory.getLogger(this.constructor.name),this.elementLocator=new p.HtmlElementLocator(this),this.rendererViewport=new m.HtmlRendererViewport(e,this.readerContainer,this.owner.optionsProvider,i),this.documentsIntersectionObserver=new f.HtmlDocumentsIntersectionObserver(this),this.documentPreloader=new d.HtmlDocumentsPreloader(this.owner.events,this,()=>this.loadingDoc,i)}getTransformContainer(){return this.getRendererContainer().querySelector(`.`+c.HtmlSettings.TransformContainerCssName)}getRendererContainer(){return this.rendererViewport.getRendererContainer()}getScrollElement(){return this.rendererViewport.getScrollElement()}getLoadingDocument(){return this.loadingDoc}async createDocument(e,t,n){return new u.HtmlDocument(this.owner,this.rendererViewport,this.fileParser,e,t,this.htmlOptions)}async initialize(e){this.rendererViewport.applyCssVariables(),await super.initialize(e);let t=this.getDocuments();for(let e of t)e.getWrapperContainer().classList.add(c.HtmlSettings.FileContentContainerClassName,c.HtmlSettings.FileContentContainerHeightClassName)}async load(e,t){this.isInit||=(await this.initialize(this.getTransformContainer()),this.documentsIntersectionObserver.register(),!0),e?.storeCurrent&&await this.owner.onBeforeRedirect?.(this),t??=!1;let r=e?.url,i=this.getDocument(r);if(!i){let t=this.getDocuments();i=t[0],(t.length>1||!e)&&(e=new n.FileLocation(i.url,1,`ratio`),e.current=0)}this.htmlOptions.flipMode==`page`?this.appendPageStyles():this.removePageStyles(),this.loadingDoc=i,this.owner.context.redirectingDocUrl=i.url;try{this.delayHideLoadingLayerTimer=setTimeout(async()=>{await this.owner.loading?.hide()},2e3),this.owner.context.setUserChangedProgress(!t,e?.from),await this.gotoDoc(i,e,t),this.isFirstLoad&&!t&&(this.isFirstLoad=!1),await this.documentPreloader.preloadDocuments()}finally{setTimeout(()=>{this.loadingDoc=null,this.owner.context.redirectingDocUrl=void 0},166)}}async gotoDoc(e,n,r){if(!n||(await e.load(),!e.getContentContainer()))return;r??=!1;let a=this.htmlOptions.flipMode,o,c;try{let l=await this.findTarget(e,n);c=l?.target;let u=l?.pageNumber,d=l?.isDocumentStart;if(!c&&!u)return;if(c&&n?.textOffset>=0){let e=c.textContent;if(n?.textOffset<e.length&&e.length<3e3){s.wrapperCharacters(c,`m`);let e=c.querySelectorAll(`m`);o=i.compareTagName(c.firstElementChild?.tagName,`ST`)&&c.firstElementChild.getBoundingClientRect().width==0?e.item(c.firstElementChild.textContent.length):e.item(n.textOffset)}}if(o??=c,a==`scroll`)await this.gotoScroll(e,n,o,d);else{if(r&&o&&!t.isNullOrWhiteSpace(n.tagName))this.resetTransformContainer(),u=await e.getPageNumber(o);else if(n.unit===`page`&&n.current!=null&&n.current>0){u=n.current;let t=await e.getNumberOfPages();n.total>1&&n.total!=t&&(u=Math.ceil(t*(n.current/n.total)))}else u||=await e.getPageNumber(o);await this.transformPage(e,u,r?void 0:n.direction)}}finally{c&&s.recoverWrapperCharacters(c)}}async gotoScroll(t,n,r,i){let a=r.getBoundingClientRect(),s=0;n?.ignoreOverlayHeader||(s=this.owner.optionsProvider.getHeaderHeight()+this.owner.options.redirectPositionOffset,r.clientHeight==0&&a.height==0&&(s+=50)),n.offsetTop&&(s+=n.offsetTop);let c=this.getScrollElement(),l=a.y,u=t.getContentContainer().ownerDocument.defaultView?.frameElement,d=u?.getBoundingClientRect()?.y??0,f=l+d,p=c.scrollTop;if(n.useAbsoluteScrollTop){let e=p+f-s;c.scrollTo(0,e)}else if(i)this.scrollWrapperIntoView(t,!0);else{if(e.BrowserCapabilities.isSafari()){o.scrollElementIntoView(t.getWrapperContainer(),void 0,void 0,this.owner.getRootContainer()?.ownerDocument),p=c.scrollTop;let e=u?.offsetTop??0;if(Math.abs(e+l-p)>5){let e=p+t.getWrapperContainer().getBoundingClientRect().y+l;c.scrollTo(0,e)}d=u?.getBoundingClientRect()?.y??0,f=l+d}else s=f-s-c.getBoundingClientRect().top;s>0?c.scrollHeight-c.scrollTop-c.clientHeight>0?c.scrollBy(0,s):o.scrollElementIntoView(r,void 0,n?.scrollIntoViewIfNeeded,this.owner.getRootContainer()?.ownerDocument):c.scrollBy(0,s),this.setDocumentVisible(t.getWrapperContainer(),!0)}}async findTarget(e,t){return this.elementLocator.locateElement(e,t,this.htmlOptions)}async transformPage(e,t,n){let i=this.getTransformContainer(),a=i.getAttribute(`data-target-transform`),s=0;s=a?r.parseNumber(a,0,`parseFloat`):o.getTransformLength(i,`x`);let c=this.rendererViewport.getLayoutMetrics(),l=c.columnWidth+c.columnGap,u=e.getWrapperContainer().offsetLeft,d=Math.abs(u-s),f=d==0?0:d%l,p=s;f>0&&(p=n==`previous`?s-f:s+l-f);let m=p;try{if(n==`previous`){let e=p-c.pageMoveLength>=0,n=u+(t-1)*c.pageMoveLength;m=e?p-c.pageMoveLength:p<=c.pageMoveLength?0:n}else if(n==`next`){m=p+c.pageMoveLength;let e=this.getDocuments(),t=e[e.length-1];if(t.getWrapperContainer().offsetLeft+t.getWrapperContainer().scrollWidth-m<=0)return}else m=u+(t-1)*c.pageMoveLength;m<0&&(m=0);let r=this.htmlOptions.writingMode??`horizontal-tb`;if((this.isVerticalWriting(r)?`y`:`x`)==`x`)!i.style.transition&&this.htmlOptions.flipPageStyle==`slide`&&(n==`next`||n==`previous`)&&(i.style.transition=`transform 0.2s ease`),i.style.transition&&i.addEventListener(`transitionend`,this.removeElementTransitionEvent),i.setAttribute(`data-target-transform`,`${m}`),i.style.transform=`translate3d(-`+parseFloat(m.toFixed(10))+`px,0,0)`;else{i.style.transform=`translateX(`+-u+`px)`;let n=e.getContentContainer().ownerDocument.documentElement,r=o.getTransformLength(n,`y`)+(t-1)*c.columnWidth;n.style.transform=`translateY(-`+parseFloat(r.toFixed(10))+`px)`}this.setCurrentPageNumber(e,t)}finally{}}setCurrentPageNumber(e,t){let n=e.getContentContainer()?.ownerDocument?.documentElement;n&&n.setAttribute(c.HtmlSettings.HtmlDocumentCurrentPagePropertyName,t.toFixed(0))}getCurrentPageNumber(e){let t=e.getContentContainer()?.ownerDocument?.documentElement;if(!t)return 1;let n=t.getAttribute(c.HtmlSettings.HtmlDocumentCurrentPagePropertyName);return r.parseNumber(n,1,`parseInt`)}isVerticalWriting(e){return e==`vertical-lr`||e==`vertical-rl`}appendPageStyles(){this.getRendererContainer().classList.add(c.HtmlSettings.TransformPagesClassName)}removePageStyles(){this.getRendererContainer().classList.remove(c.HtmlSettings.TransformPagesClassName);let e=this.getTransformContainer();e&&e.style.removeProperty(`transform`)}async dispose(){this.delayHideLoadingLayerTimer&&=(clearTimeout(this.delayHideLoadingLayerTimer),null),await this.documentsIntersectionObserver.dispose(),await this.documentPreloader.dispose(),await super.dispose(),this.readerContainer&&a.emptyElement(this.readerContainer),this.isInit=!1}};exports.HtmlDocumentsProvider=g;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/web/BrowserCapabilities.cjs"),t=require("../../../../kernal/common/text.cjs"),n=require("../../../../kernal/progress/Progress.cjs");require("../../../../kernal/Constants.cjs");const r=require("../../../../kernal/common/number.cjs"),i=require("../../../../kernal/html/finder.cjs"),a=require("../../../../kernal/html/dom.cjs"),o=require("../../../../kernal/web/scheduler.cjs"),s=require("../../../../kernal/html/style.cjs"),c=require("../../../../kernal/html/selection.cjs"),l=require("../../../../kernal/html/geometry.cjs"),u=require("../../../base/renderer/BaseDocumentsProvider.cjs"),d=require("../../HtmlSettings.cjs"),f=require("../layout/resolveLayoutRoute.cjs"),p=require("../location/scrollActivity.cjs"),m=require("../location/remapStoredPageNumber.cjs"),h=require("../document/HtmlDocument.cjs"),g=require("./HtmlDocumentsPreloader.cjs"),_=require("./HtmlDocumentsIntersectionObserver.cjs"),v=require("../location/HtmlElementLocator.cjs"),y=require("../layout/HtmlRendererViewport.cjs"),b=require("../layout/geometry/getLayoutOffsetLeft.cjs");let x=require("perfect-debounce");var S=class extends u.BaseDocumentsProvider{constructor(e,n,r,i){super(e,n),this.readerContainer=r,this.htmlOptions=i,this.isInit=!1,this.isFirstLoad=!0,this.hangTasks=[],this.resetTransformContainer=()=>{let e=this.getTransformContainer();e&&(e.style.removeProperty(`transition`),e.style.transform=`translate3d(0px,0,0)`,e.setAttribute(`data-target-transform`,`0`),e.offsetWidth)},this.removeElementTransitionEvent=async e=>{let t=e.target;for(t.style.removeProperty(`transition`),t.style.removeProperty(`will-change`),t.removeAttribute(d.HtmlSettings.PageMovingAttributeName),t.removeEventListener(`transitionend`,this.removeElementTransitionEvent);this.hangTasks.length>0;)await this.hangTasks.shift()()},this.scrollWrapperIntoView=(e,t)=>{let n=e.getWrapperContainer(),r=f.getLayoutGeometry(this.htmlOptions);if(r.flipMode==`page`){let t=this.rendererViewport.getLayoutMetrics(),i=this.getTransformContainer();if(r.pageAxis==`y`){let e=Math.max(0,n.offsetTop);i.style.transform=r.getPageTranslateCss(e),i.setAttribute(`data-target-transform`,`${e}`)}else{let n=this.getDocumentPageBox(e),a=r.getPageTransformOffset(n,1,t.pageMoveLength);i.style.transform=r.getPageTranslateCss(a),i.setAttribute(`data-target-transform`,`${a}`)}}else(!n.isVisible||t)&&r.alignWrapperToViewport({wrapper:n,scrollElement:this.getScrollElement(),rootDocument:this.owner.getRootContainer()?.ownerDocument});this.setCurrentVisibleDocument(e)},this.setDocumentVisible=(e,t)=>{e.isVisible=t},this.reload=async()=>{let e=this.owner.context.currentLocation;t.isNullOrWhiteSpace(e?.url)||await this.load(e,!0)},this.restoreReadingPosition=async()=>{let e=this.owner.context.currentLocation;if(t.isNullOrWhiteSpace(e?.url))return;let n=this.getDocument(e.url)??this.getFirstVisibleDocument();n&&await this.gotoDoc(n,e,!0)},this.delayRestoreReadingPosition=(0,x.debounce)(this.restoreReadingPosition,100),this.delayReloadTime=300,this.delayReload=(0,x.debounce)(this.reload,this.delayReloadTime),i.documentLanguage=e.context?.metadata?.language,this.logger=this.owner.loggerFactory.getLogger(this.constructor.name),this.elementLocator=new v.HtmlElementLocator(this),this.rendererViewport=new y.HtmlRendererViewport(e,this.readerContainer,this.owner.optionsProvider,i),this.documentsIntersectionObserver=new _.HtmlDocumentsIntersectionObserver(this),this.documentPreloader=new g.HtmlDocumentsPreloader(this.owner.events,this,()=>this.loadingDoc,i)}getTransformContainer(){return this.getRendererContainer().querySelector(`.`+d.HtmlSettings.TransformContainerCssName)}getRendererContainer(){return this.rendererViewport.getRendererContainer()}getScrollElement(){return this.rendererViewport.getScrollElement()}getLoadingDocument(){return this.loadingDoc}getLoadedDocuments(){return this.getDocuments().filter(e=>e.getLoadStatus()==`success`)}getVisibleDocuments(){return this.getDocuments().filter(e=>e.getWrapperContainer()?.isVisible)}getFirstVisibleDocument(e){let t=this.getVisibleDocuments();if(e){let e=t.find(e=>e.getVisibleElements(!0).length>0);if(e)return e}if(t[0])return t[0];let n=this.owner.context.currentLocation?.url;return n&&this.getDocument(n)||this.getDocuments()[0]||null}getLastVisibleDocument(e){let t=this.getVisibleDocuments();if(e){let e=[...t].reverse().find(e=>e.getVisibleElements().length>0);if(e)return e}if(t.length>0)return t[t.length-1];let n=this.owner.context.currentLocation?.url,r=this.getDocuments();return n&&this.getDocument(n)||r[r.length-1]||null}async createDocument(e,t,n){return new h.HtmlDocument(this.owner,this.rendererViewport,this.fileParser,e,t,this.htmlOptions)}async initialize(e){this.rendererViewport.applyCssVariables(),await super.initialize(e);let t=this.getDocuments();for(let e of t)e.getWrapperContainer().classList.add(d.HtmlSettings.FileContentContainerClassName,d.HtmlSettings.FileContentContainerHeightClassName)}async load(e,t){this.htmlOptions.documentLanguage=this.owner.context?.metadata?.language,this.isInit||=(await this.initialize(this.getTransformContainer()),this.documentsIntersectionObserver.register(),!0),e?.storeCurrent&&await this.owner.onBeforeRedirect?.(this),t??=!1;let r=e?.url,i=this.getDocument(r);if(!i){let t=this.getDocuments();i=t[0],(t.length>1||!e)&&(e=new n.FileLocation(i.url,1,`ratio`),e.current=0)}f.getLayoutGeometry(this.htmlOptions).flipMode==`page`?this.appendPageStyles():this.removePageStyles(),this.loadingDoc=i,this.owner.context.redirectingDocUrl=i.url,p.shouldBeginAbsoluteLocate(e?.direction,f.getLayoutGeometry(this.htmlOptions).holdsAbsoluteLocate)&&p.beginAbsoluteLocate();try{this.owner.context.setUserChangedProgress(!t,e?.from),!t&&e?.url&&(this.owner.context.currentLocation=e),await this.gotoDoc(i,e,t),this.isFirstLoad&&!t&&(await this.owner.loading?.hide(),this.isFirstLoad=!1),await this.documentPreloader.preloadDocuments(),this.shouldRealignAfterPreload(e,t)&&await this.gotoDoc(i,e,!0)}finally{setTimeout(()=>{this.loadingDoc=null,this.owner.context.redirectingDocUrl=void 0},166)}}async gotoDoc(e,n,r){if(!n)return;r??=!1;let i=f.getLayoutGeometry(this.htmlOptions).flipMode,a=e instanceof h.HtmlDocument?e:null,s=!!a&&i==`scroll`&&!r&&!n.suppressScroll&&e.getLoadStatus()!=`success`;s&&a&&(a.prepareCoveredLoad(),this.scrollWrapperIntoView(e,!0),await o.yieldToMain());try{if(await e.load(),!e.getContentContainer())return;let a=await this.findTarget(e,n),o=a?.target,s=a?.pageNumber,c=a?.isDocumentStart;if(!o&&!s)return;let u=this.resolveRedirectTarget(o,n);i==`scroll`?n.suppressScroll?this.setDocumentVisible(e.getWrapperContainer(),!0):u&&await this.gotoScroll(e,n,u,c):(r&&u&&!t.isNullOrWhiteSpace(n.tagName)?s=await e.getPageNumber(u):n.unit===`page`&&n.current!=null&&n.current>0?s=m.remapStoredPageNumber(n,await e.getNumberOfPages()):(l.isDomRange(u)||!s&&u)&&(s=await e.getPageNumber(u)),await this.transformPage(e,s,r?void 0:n.direction))}finally{s&&a&&await a.revealCoveredLoad()}}resolveRedirectTarget(e,t){if(!e||!(t?.textOffset>=0))return e;let n=e.textContent??``;if(t.textOffset>=n.length)return e;let r=t.textOffset,a=e.firstElementChild;return a&&i.compareTagName(a.tagName,`ST`)&&a.getBoundingClientRect().width==0&&(r=a.textContent?.length??0),r>=n.length?e:c.createRange(e,e,r,Math.min(r+1,n.length))??e}async gotoScroll(t,n,r,i){if(f.getLayoutGeometry(this.htmlOptions).blockAxis==`x`){await this.gotoScrollX(t,n,r,i);return}let a=l.getLocateElement(r),o=l.getLocateClientRect(r),c=0;n?.ignoreOverlayHeader||(c=this.owner.options.redirectPositionOffset,o.height==0&&(!a||a.clientHeight==0)&&(c+=50)),n.offsetTop&&(c+=n.offsetTop);let u=this.getScrollElement(),d=o.y,p=t.getContentContainer().ownerDocument.defaultView?.frameElement,m=p?.getBoundingClientRect()?.y??0,h=d+m,g=u.scrollTop;if(n.useAbsoluteScrollTop){let e=g+h-c;u.scrollTo(0,e)}else if(i)this.scrollWrapperIntoView(t,!0);else{if(e.BrowserCapabilities.isSafari()){s.scrollElementIntoView(t.getWrapperContainer(),void 0,void 0,this.owner.getRootContainer()?.ownerDocument),g=u.scrollTop;let e=p?.offsetTop??0;if(Math.abs(e+d-g)>5){let e=g+t.getWrapperContainer().getBoundingClientRect().y+d;u.scrollTo(0,e)}m=p?.getBoundingClientRect()?.y??0,h=d+m}else c=h-c-u.getBoundingClientRect().top;c>0?u.scrollHeight-u.scrollTop-u.clientHeight>0?u.scrollBy(0,c):a&&s.scrollElementIntoView(a,void 0,n?.scrollIntoViewIfNeeded,this.owner.getRootContainer()?.ownerDocument):u.scrollBy(0,c),this.setDocumentVisible(t.getWrapperContainer(),!0)}}async gotoScrollX(e,t,n,r){let i=this.getScrollElement();if(r){this.scrollWrapperIntoView(e,!0);return}let a=l.getLocateClientRect(n),o=(e.getContentContainer().ownerDocument.defaultView?.frameElement)?.getBoundingClientRect()?.x??0,s=i.getBoundingClientRect(),c=t.offsetLeft??0,u=a.x+o-c,d=a.right+o-c,p=f.getLayoutGeometry(this.htmlOptions).getScrollLocateDelta({targetStart:u,viewportStart:s.left,targetEnd:d,viewportEnd:s.right});if(t.useAbsoluteScrollTop){i.scrollTo(i.scrollLeft+p,i.scrollTop),this.setDocumentVisible(e.getWrapperContainer(),!0);return}i.scrollBy(p,0),this.setDocumentVisible(e.getWrapperContainer(),!0)}async findTarget(e,t){return this.elementLocator.locateElement(e,t,this.htmlOptions)}async transformPage(e,t,n){if(this.setCurrentVisibleDocument(e),f.getLayoutGeometry(this.htmlOptions).pageAxis==`y`){this.transformVerticalPage(e,t,n);return}this.transformHorizontalPage(e,t,n)}transformHorizontalPage(e,t,n){let r=this.resolveRelativePageTransform(e,t,n,`x`);if(!r){this.syncPageNumberWhenTransformBlocked(e,n);return}this.applyPageTransform(r.transformContainer,r.newTransformLength,n,`x`),this.setCurrentPageNumber(e,t)}transformVerticalPage(e,t,n){let r=this.resolveRelativePageTransform(e,t,n,`y`);if(!r){this.syncPageNumberWhenTransformBlocked(e,n);return}this.applyPageTransform(r.transformContainer,r.newTransformLength,n,`y`),this.setCurrentPageNumber(e,t)}resolveRelativePageTransform(e,t,n,i){let a=this.getTransformContainer();if(!a)return null;let o=s.getTransformLength(a,i),c=a.getAttribute(`data-target-transform`),l=0;l=c?r.parseNumber(c,0,`parseFloat`):o;let u=this.rendererViewport.getLayoutMetrics(),d=Math.max(1,u.pageMoveLength);if(n==`previous`)return{transformContainer:a,newTransformLength:Math.max(0,l-d)};if(n==`next`){let e=l+d;return this.wouldExceedLastContent(e,i,a)?null:{transformContainer:a,newTransformLength:e}}let f=this.getDocumentPageStartOffset(e,i),p=f+(t-1)*u.pageMoveLength,m=i==`y`?e.getWrapperContainer()?.scrollHeight??0:this.getDocumentPageBox(e).contentWidth,h=i==`y`?u.pageHeight:u.pageWidth,g=Number.isFinite(h)&&h>0?h:u.pageMoveLength,_=Math.max(0,f+m-g);return p>_&&(p=_),p<0&&(p=0),{transformContainer:a,newTransformLength:p}}canAdvancePageTransform(e){let t=f.getLayoutGeometry(this.htmlOptions),n=this.getCurrentPageNumber(e)+1;return this.resolveRelativePageTransform(e,n,`next`,t.pageAxis)!=null}wouldExceedLastContent(e,t,n){return this.getLastContentExtent(t,n)-e<=0}getLastContentExtent(e,t){let n=this.getDocuments(),r=n[n.length-1]?.getWrapperContainer();return r?f.getLayoutGeometry(this.htmlOptions).getLastContentExtent(r,t):0}syncPageNumberWhenTransformBlocked(e,t){if(t!=`next`)return;let n=e.getContentContainer()?.ownerDocument?.documentElement,i=r.parseNumber(n?.getAttribute(d.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName),this.getCurrentPageNumber(e),`parseInt`);this.setCurrentPageNumber(e,i)}getDocumentPageStartOffset(e,t){let n=e.getWrapperContainer(),r=this.getDocumentPageBox(e);return f.getLayoutGeometry(this.htmlOptions).getDocumentPageStartOffset(n,r)}getDocumentPageBox(e){let t=e.getWrapperContainer(),n=(e.getContentContainer()?.ownerDocument?.documentElement)?.ownerDocument?.defaultView?.frameElement,r=n?.offsetWidth||(t?.clientWidth??0),i=this.getTransformContainer(),a=n&&i?b.getLayoutOffsetLeft(n,i):t?.offsetLeft??0,o=i?.offsetWidth??0;return{offsetLeft:a,contentWidth:r,startOffset:f.getLayoutGeometry(this.htmlOptions).getPageStartOffset({offsetLeft:a,contentWidth:r,containerWidth:o}),containerWidth:o}}applyPageTransform(e,t,n,r=`x`){let i=f.getLayoutGeometry(this.htmlOptions),a=parseFloat(t.toFixed(10)),o=i.getPageTranslateCss(a),c=i.getSignedTranslateLength(a),l=s.getTransformLength(e,r,!0);e.setAttribute(`data-target-transform`,`${a}`),!(n&&Math.abs(c-l)<=.5)&&(!e.style.transition&&this.htmlOptions.flipPageStyle==`slide`&&(n==`next`||n==`previous`)&&(e.style.transition=`transform 0.2s ease`),e.style.transition&&e.addEventListener(`transitionend`,this.removeElementTransitionEvent),e.style.transform=o)}setCurrentPageNumber(e,t){let n=e.getContentContainer()?.ownerDocument?.documentElement;n&&n.setAttribute(d.HtmlSettings.HtmlDocumentCurrentPagePropertyName,t.toFixed(0))}getCurrentPageNumber(e){let t=e.getContentContainer()?.ownerDocument?.documentElement;if(!t)return 1;let n=t.getAttribute(d.HtmlSettings.HtmlDocumentCurrentPagePropertyName);return r.parseNumber(n,1,`parseInt`)}async syncPageState(e){(e.getContentContainer()?.ownerDocument?.documentElement)?.removeAttribute(d.HtmlSettings.HtmlDocumentNumperOfPagesPropertyName);let t=Math.max(1,await e.getNumberOfPages()),n=f.getLayoutGeometry(this.htmlOptions),i=this.rendererViewport.getLayoutMetrics(),a=Math.max(1,i.pageMoveLength),o=this.getTransformContainer(),s=r.parseNumber(o?.getAttribute(`data-target-transform`),0,`parseFloat`),c=this.getDocumentPageStartOffset(e,n.pageAxis),l=Math.min(t,Math.max(1,Math.round(Math.abs(s-c)/a)+1));return this.setCurrentPageNumber(e,l),{current:l,total:t}}setCurrentVisibleDocument(e){for(let t of this.getDocuments())this.setDocumentVisible(t.getWrapperContainer(),t===e)}shouldRealignAfterPreload(e,t){return t||e?.direction==`next`||e?.direction==`previous`?!1:f.getLayoutGeometry(this.htmlOptions).flipMode==`page`}appendPageStyles(){}clearPageTransform(){let e=this.getTransformContainer();e&&(e.style.removeProperty(`transition`),e.style.removeProperty(`transform`),e.removeAttribute(`data-target-transform`),e.offsetWidth)}removePageStyles(){this.getRendererContainer().classList.remove(d.HtmlSettings.TransformPagesClassName),this.clearPageTransform()}async dispose(){await this.documentsIntersectionObserver.dispose(),await this.documentPreloader.dispose(),await super.dispose(),this.readerContainer&&a.emptyElement(this.readerContainer),this.isInit=!1}};exports.HtmlDocumentsProvider=S;
|
|
@@ -10,11 +10,10 @@ import { DebouncedReturn } from 'perfect-debounce';
|
|
|
10
10
|
|
|
11
11
|
export declare class HtmlDocumentsProvider extends BaseDocumentsProvider<IHtmlDocument> implements IHtmlDocumentsProvider {
|
|
12
12
|
protected readonly readerContainer: HTMLElement;
|
|
13
|
-
|
|
13
|
+
readonly htmlOptions: HtmlOptions;
|
|
14
14
|
protected logger: ILogger;
|
|
15
15
|
private isInit;
|
|
16
16
|
private isFirstLoad;
|
|
17
|
-
private delayHideLoadingLayerTimer;
|
|
18
17
|
private loadingDoc;
|
|
19
18
|
private readonly documentsIntersectionObserver;
|
|
20
19
|
private readonly documentPreloader;
|
|
@@ -26,24 +25,48 @@ export declare class HtmlDocumentsProvider extends BaseDocumentsProvider<IHtmlDo
|
|
|
26
25
|
getRendererContainer(): HTMLElement;
|
|
27
26
|
getScrollElement(): HTMLElement;
|
|
28
27
|
getLoadingDocument(): IHtmlDocument;
|
|
28
|
+
getLoadedDocuments(): IHtmlDocument[];
|
|
29
|
+
getVisibleDocuments(): IHtmlDocument[];
|
|
30
|
+
getFirstVisibleDocument(containVisibleElements?: boolean): IHtmlDocument;
|
|
31
|
+
getLastVisibleDocument(containVisibleElements?: boolean): IHtmlDocument;
|
|
29
32
|
createDocument(documentContainer: HTMLElement, spineFile: SpineFile, fileIndex: number): Promise<IHtmlDocument>;
|
|
30
33
|
protected initialize(documentsWrapper: HTMLElement): Promise<void>;
|
|
31
34
|
load(location?: FileLocation, isReload?: boolean): Promise<void>;
|
|
32
35
|
private gotoDoc;
|
|
36
|
+
private resolveRedirectTarget;
|
|
33
37
|
private gotoScroll;
|
|
38
|
+
private gotoScrollX;
|
|
34
39
|
private findTarget;
|
|
35
40
|
private transformPage;
|
|
41
|
+
private transformHorizontalPage;
|
|
42
|
+
private transformVerticalPage;
|
|
43
|
+
private resolveRelativePageTransform;
|
|
44
|
+
canAdvancePageTransform(doc: IHtmlDocument): boolean;
|
|
45
|
+
private wouldExceedLastContent;
|
|
46
|
+
private getLastContentExtent;
|
|
47
|
+
private syncPageNumberWhenTransformBlocked;
|
|
48
|
+
private getDocumentPageStartOffset;
|
|
49
|
+
private getDocumentPageBox;
|
|
50
|
+
private applyPageTransform;
|
|
36
51
|
private resetTransformContainer;
|
|
37
52
|
private removeElementTransitionEvent;
|
|
38
53
|
private setCurrentPageNumber;
|
|
39
54
|
private scrollWrapperIntoView;
|
|
40
55
|
getCurrentPageNumber(doc: IHtmlDocument): number;
|
|
56
|
+
syncPageState(doc: IHtmlDocument): Promise<{
|
|
57
|
+
current: number;
|
|
58
|
+
total: number;
|
|
59
|
+
}>;
|
|
41
60
|
private setDocumentVisible;
|
|
42
|
-
private
|
|
61
|
+
private setCurrentVisibleDocument;
|
|
43
62
|
reload: () => Promise<void>;
|
|
63
|
+
private shouldRealignAfterPreload;
|
|
64
|
+
restoreReadingPosition: () => Promise<void>;
|
|
65
|
+
delayRestoreReadingPosition: DebouncedReturn<[], void>;
|
|
44
66
|
protected readonly delayReloadTime = 300;
|
|
45
67
|
protected delayReload: DebouncedReturn<[], void>;
|
|
46
68
|
private appendPageStyles;
|
|
69
|
+
private clearPageTransform;
|
|
47
70
|
private removePageStyles;
|
|
48
71
|
dispose(): Promise<void>;
|
|
49
72
|
}
|