@docmentis/udoc-viewer 0.1.0
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 +180 -0
- package/dist/UDocClient.d.ts +197 -0
- package/dist/UDocClient.d.ts.map +1 -0
- package/dist/UDocClient.js +170 -0
- package/dist/UDocClient.js.map +1 -0
- package/dist/UDocViewer.d.ts +196 -0
- package/dist/UDocViewer.d.ts.map +1 -0
- package/dist/UDocViewer.js +427 -0
- package/dist/UDocViewer.js.map +1 -0
- package/dist/WorkerClient.d.ts +36 -0
- package/dist/WorkerClient.d.ts.map +1 -0
- package/dist/WorkerClient.js +121 -0
- package/dist/WorkerClient.js.map +1 -0
- package/dist/annotation/AnnotationLayer.d.ts +166 -0
- package/dist/annotation/AnnotationLayer.d.ts.map +1 -0
- package/dist/annotation/AnnotationLayer.js +1090 -0
- package/dist/annotation/AnnotationLayer.js.map +1 -0
- package/dist/annotation/index.d.ts +6 -0
- package/dist/annotation/index.d.ts.map +1 -0
- package/dist/annotation/index.js +6 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/components/FloatingBar.d.ts +102 -0
- package/dist/components/FloatingBar.d.ts.map +1 -0
- package/dist/components/FloatingBar.js +513 -0
- package/dist/components/FloatingBar.js.map +1 -0
- package/dist/components/Header.d.ts +46 -0
- package/dist/components/Header.d.ts.map +1 -0
- package/dist/components/Header.js +93 -0
- package/dist/components/Header.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/panels/CommentsPanel.d.ts +33 -0
- package/dist/components/panels/CommentsPanel.d.ts.map +1 -0
- package/dist/components/panels/CommentsPanel.js +176 -0
- package/dist/components/panels/CommentsPanel.js.map +1 -0
- package/dist/components/panels/OutlinePanel.d.ts +30 -0
- package/dist/components/panels/OutlinePanel.d.ts.map +1 -0
- package/dist/components/panels/OutlinePanel.js +144 -0
- package/dist/components/panels/OutlinePanel.js.map +1 -0
- package/dist/components/panels/ThumbnailsPanel.d.ts +51 -0
- package/dist/components/panels/ThumbnailsPanel.d.ts.map +1 -0
- package/dist/components/panels/ThumbnailsPanel.js +160 -0
- package/dist/components/panels/ThumbnailsPanel.js.map +1 -0
- package/dist/components/panels/index.d.ts +7 -0
- package/dist/components/panels/index.d.ts.map +1 -0
- package/dist/components/panels/index.js +4 -0
- package/dist/components/panels/index.js.map +1 -0
- package/dist/constants.d.ts +25 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +46 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/NavigationController.d.ts +54 -0
- package/dist/core/NavigationController.d.ts.map +1 -0
- package/dist/core/NavigationController.js +145 -0
- package/dist/core/NavigationController.js.map +1 -0
- package/dist/core/PerfTimer.d.ts +12 -0
- package/dist/core/PerfTimer.d.ts.map +1 -0
- package/dist/core/PerfTimer.js +32 -0
- package/dist/core/PerfTimer.js.map +1 -0
- package/dist/core/ViewerState.d.ts +108 -0
- package/dist/core/ViewerState.d.ts.map +1 -0
- package/dist/core/ViewerState.js +179 -0
- package/dist/core/ViewerState.js.map +1 -0
- package/dist/core/constants.d.ts +24 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +42 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +11 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/types.d.ts +573 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/icons/icons.d.ts +41 -0
- package/dist/icons/icons.d.ts.map +1 -0
- package/dist/icons/icons.js +51 -0
- package/dist/icons/icons.js.map +1 -0
- package/dist/icons/index.d.ts +3 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +2 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/BandManager.d.ts +87 -0
- package/dist/layout/BandManager.d.ts.map +1 -0
- package/dist/layout/BandManager.js +185 -0
- package/dist/layout/BandManager.js.map +1 -0
- package/dist/layout/LayoutCalculator.d.ts +42 -0
- package/dist/layout/LayoutCalculator.d.ts.map +1 -0
- package/dist/layout/LayoutCalculator.js +180 -0
- package/dist/layout/LayoutCalculator.js.map +1 -0
- package/dist/layout/LayoutState.d.ts +46 -0
- package/dist/layout/LayoutState.d.ts.map +1 -0
- package/dist/layout/LayoutState.js +109 -0
- package/dist/layout/LayoutState.js.map +1 -0
- package/dist/layout/TransitionCoordinator.d.ts +11 -0
- package/dist/layout/TransitionCoordinator.d.ts.map +1 -0
- package/dist/layout/TransitionCoordinator.js +22 -0
- package/dist/layout/TransitionCoordinator.js.map +1 -0
- package/dist/layout/index.d.ts +7 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +4 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/rendering/BandManager.d.ts +87 -0
- package/dist/rendering/BandManager.d.ts.map +1 -0
- package/dist/rendering/BandManager.js +185 -0
- package/dist/rendering/BandManager.js.map +1 -0
- package/dist/rendering/PageCache.d.ts +75 -0
- package/dist/rendering/PageCache.d.ts.map +1 -0
- package/dist/rendering/PageCache.js +122 -0
- package/dist/rendering/PageCache.js.map +1 -0
- package/dist/rendering/RenderQueue.d.ts +75 -0
- package/dist/rendering/RenderQueue.d.ts.map +1 -0
- package/dist/rendering/RenderQueue.js +105 -0
- package/dist/rendering/RenderQueue.js.map +1 -0
- package/dist/rendering/ThumbnailQueue.d.ts +57 -0
- package/dist/rendering/ThumbnailQueue.d.ts.map +1 -0
- package/dist/rendering/ThumbnailQueue.js +85 -0
- package/dist/rendering/ThumbnailQueue.js.map +1 -0
- package/dist/rendering/index.d.ts +13 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/rendering/index.js +10 -0
- package/dist/rendering/index.js.map +1 -0
- package/dist/rendering/types.d.ts +72 -0
- package/dist/rendering/types.d.ts.map +1 -0
- package/dist/rendering/types.js +5 -0
- package/dist/rendering/types.js.map +1 -0
- package/dist/styles/index.d.ts +6 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +1221 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/Component.d.ts +127 -0
- package/dist/ui/Component.d.ts.map +1 -0
- package/dist/ui/Component.js +201 -0
- package/dist/ui/Component.js.map +1 -0
- package/dist/ui/annotation/AnnotationLayer.d.ts +90 -0
- package/dist/ui/annotation/AnnotationLayer.d.ts.map +1 -0
- package/dist/ui/annotation/AnnotationLayer.js +322 -0
- package/dist/ui/annotation/AnnotationLayer.js.map +1 -0
- package/dist/ui/annotation/LinkRenderer.d.ts +32 -0
- package/dist/ui/annotation/LinkRenderer.d.ts.map +1 -0
- package/dist/ui/annotation/LinkRenderer.js +74 -0
- package/dist/ui/annotation/LinkRenderer.js.map +1 -0
- package/dist/ui/annotation/MarkupRenderer.d.ts +40 -0
- package/dist/ui/annotation/MarkupRenderer.d.ts.map +1 -0
- package/dist/ui/annotation/MarkupRenderer.js +154 -0
- package/dist/ui/annotation/MarkupRenderer.js.map +1 -0
- package/dist/ui/annotation/ShapeRenderer.d.ts +46 -0
- package/dist/ui/annotation/ShapeRenderer.d.ts.map +1 -0
- package/dist/ui/annotation/ShapeRenderer.js +376 -0
- package/dist/ui/annotation/ShapeRenderer.js.map +1 -0
- package/dist/ui/annotation/TextRenderer.d.ts +36 -0
- package/dist/ui/annotation/TextRenderer.d.ts.map +1 -0
- package/dist/ui/annotation/TextRenderer.js +199 -0
- package/dist/ui/annotation/TextRenderer.js.map +1 -0
- package/dist/ui/annotation/index.d.ts +17 -0
- package/dist/ui/annotation/index.d.ts.map +1 -0
- package/dist/ui/annotation/index.js +13 -0
- package/dist/ui/annotation/index.js.map +1 -0
- package/dist/ui/annotation/utils.d.ts +40 -0
- package/dist/ui/annotation/utils.d.ts.map +1 -0
- package/dist/ui/annotation/utils.js +62 -0
- package/dist/ui/annotation/utils.js.map +1 -0
- package/dist/ui/components/CommentsContent.d.ts +35 -0
- package/dist/ui/components/CommentsContent.d.ts.map +1 -0
- package/dist/ui/components/CommentsContent.js +203 -0
- package/dist/ui/components/CommentsContent.js.map +1 -0
- package/dist/ui/components/FloatingBar.d.ts +55 -0
- package/dist/ui/components/FloatingBar.d.ts.map +1 -0
- package/dist/ui/components/FloatingBar.js +585 -0
- package/dist/ui/components/FloatingBar.js.map +1 -0
- package/dist/ui/components/Header.d.ts +29 -0
- package/dist/ui/components/Header.d.ts.map +1 -0
- package/dist/ui/components/Header.js +127 -0
- package/dist/ui/components/Header.js.map +1 -0
- package/dist/ui/components/LeftPanel.d.ts +54 -0
- package/dist/ui/components/LeftPanel.d.ts.map +1 -0
- package/dist/ui/components/LeftPanel.js +202 -0
- package/dist/ui/components/LeftPanel.js.map +1 -0
- package/dist/ui/components/OutlineContent.d.ts +34 -0
- package/dist/ui/components/OutlineContent.d.ts.map +1 -0
- package/dist/ui/components/OutlineContent.js +147 -0
- package/dist/ui/components/OutlineContent.js.map +1 -0
- package/dist/ui/components/RightPanel.d.ts +52 -0
- package/dist/ui/components/RightPanel.d.ts.map +1 -0
- package/dist/ui/components/RightPanel.js +142 -0
- package/dist/ui/components/RightPanel.js.map +1 -0
- package/dist/ui/components/Viewport.d.ts +70 -0
- package/dist/ui/components/Viewport.d.ts.map +1 -0
- package/dist/ui/components/Viewport.js +173 -0
- package/dist/ui/components/Viewport.js.map +1 -0
- package/dist/ui/components/index.d.ts +11 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +10 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/framework/component.d.ts +68 -0
- package/dist/ui/framework/component.d.ts.map +1 -0
- package/dist/ui/framework/component.js +87 -0
- package/dist/ui/framework/component.js.map +1 -0
- package/dist/ui/framework/dom.d.ts +19 -0
- package/dist/ui/framework/dom.d.ts.map +1 -0
- package/dist/ui/framework/dom.js +29 -0
- package/dist/ui/framework/dom.js.map +1 -0
- package/dist/ui/framework/events.d.ts +18 -0
- package/dist/ui/framework/events.d.ts.map +1 -0
- package/dist/ui/framework/events.js +23 -0
- package/dist/ui/framework/events.js.map +1 -0
- package/dist/ui/framework/index.d.ts +15 -0
- package/dist/ui/framework/index.d.ts.map +1 -0
- package/dist/ui/framework/index.js +15 -0
- package/dist/ui/framework/index.js.map +1 -0
- package/dist/ui/framework/selectors.d.ts +51 -0
- package/dist/ui/framework/selectors.d.ts.map +1 -0
- package/dist/ui/framework/selectors.js +30 -0
- package/dist/ui/framework/selectors.js.map +1 -0
- package/dist/ui/framework/store.d.ts +37 -0
- package/dist/ui/framework/store.d.ts.map +1 -0
- package/dist/ui/framework/store.js +54 -0
- package/dist/ui/framework/store.js.map +1 -0
- package/dist/ui/icons/icons.d.ts +43 -0
- package/dist/ui/icons/icons.d.ts.map +1 -0
- package/dist/ui/icons/icons.js +46 -0
- package/dist/ui/icons/icons.js.map +1 -0
- package/dist/ui/icons/index.d.ts +11 -0
- package/dist/ui/icons/index.d.ts.map +1 -0
- package/dist/ui/icons/index.js +18 -0
- package/dist/ui/icons/index.js.map +1 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +9 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/styles/base.css.d.ts +5 -0
- package/dist/ui/styles/base.css.d.ts.map +1 -0
- package/dist/ui/styles/base.css.js +49 -0
- package/dist/ui/styles/base.css.js.map +1 -0
- package/dist/ui/styles/floating-bar.css.d.ts +5 -0
- package/dist/ui/styles/floating-bar.css.d.ts.map +1 -0
- package/dist/ui/styles/floating-bar.css.js +417 -0
- package/dist/ui/styles/floating-bar.css.js.map +1 -0
- package/dist/ui/styles/header.css.d.ts +5 -0
- package/dist/ui/styles/header.css.d.ts.map +1 -0
- package/dist/ui/styles/header.css.js +49 -0
- package/dist/ui/styles/header.css.js.map +1 -0
- package/dist/ui/styles/index.d.ts +21 -0
- package/dist/ui/styles/index.d.ts.map +1 -0
- package/dist/ui/styles/index.js +48 -0
- package/dist/ui/styles/index.js.map +1 -0
- package/dist/ui/styles/panels.css.d.ts +5 -0
- package/dist/ui/styles/panels.css.d.ts.map +1 -0
- package/dist/ui/styles/panels.css.js +446 -0
- package/dist/ui/styles/panels.css.js.map +1 -0
- package/dist/ui/styles/responsive.css.d.ts +5 -0
- package/dist/ui/styles/responsive.css.d.ts.map +1 -0
- package/dist/ui/styles/responsive.css.js +201 -0
- package/dist/ui/styles/responsive.css.js.map +1 -0
- package/dist/ui/styles/variables.css.d.ts +6 -0
- package/dist/ui/styles/variables.css.d.ts.map +1 -0
- package/dist/ui/styles/variables.css.js +75 -0
- package/dist/ui/styles/variables.css.js.map +1 -0
- package/dist/ui/styles/viewport.css.d.ts +5 -0
- package/dist/ui/styles/viewport.css.d.ts.map +1 -0
- package/dist/ui/styles/viewport.css.js +87 -0
- package/dist/ui/styles/viewport.css.js.map +1 -0
- package/dist/ui/viewer/actions.d.ts +103 -0
- package/dist/ui/viewer/actions.d.ts.map +1 -0
- package/dist/ui/viewer/actions.js +2 -0
- package/dist/ui/viewer/actions.js.map +1 -0
- package/dist/ui/viewer/annotation/LinkRenderer.d.ts +9 -0
- package/dist/ui/viewer/annotation/LinkRenderer.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/LinkRenderer.js +17 -0
- package/dist/ui/viewer/annotation/LinkRenderer.js.map +1 -0
- package/dist/ui/viewer/annotation/MarkupRenderer.d.ts +21 -0
- package/dist/ui/viewer/annotation/MarkupRenderer.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/MarkupRenderer.js +138 -0
- package/dist/ui/viewer/annotation/MarkupRenderer.js.map +1 -0
- package/dist/ui/viewer/annotation/ShapeRenderer.d.ts +33 -0
- package/dist/ui/viewer/annotation/ShapeRenderer.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/ShapeRenderer.js +378 -0
- package/dist/ui/viewer/annotation/ShapeRenderer.js.map +1 -0
- package/dist/ui/viewer/annotation/TextRenderer.d.ts +23 -0
- package/dist/ui/viewer/annotation/TextRenderer.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/TextRenderer.js +196 -0
- package/dist/ui/viewer/annotation/TextRenderer.js.map +1 -0
- package/dist/ui/viewer/annotation/index.d.ts +8 -0
- package/dist/ui/viewer/annotation/index.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/index.js +8 -0
- package/dist/ui/viewer/annotation/index.js.map +1 -0
- package/dist/ui/viewer/annotation/render.d.ts +24 -0
- package/dist/ui/viewer/annotation/render.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/render.js +184 -0
- package/dist/ui/viewer/annotation/render.js.map +1 -0
- package/dist/ui/viewer/annotation/types.d.ts +239 -0
- package/dist/ui/viewer/annotation/types.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/types.js +7 -0
- package/dist/ui/viewer/annotation/types.js.map +1 -0
- package/dist/ui/viewer/annotation/utils.d.ts +37 -0
- package/dist/ui/viewer/annotation/utils.d.ts.map +1 -0
- package/dist/ui/viewer/annotation/utils.js +82 -0
- package/dist/ui/viewer/annotation/utils.js.map +1 -0
- package/dist/ui/viewer/components/AnnotationPanel.d.ts +19 -0
- package/dist/ui/viewer/components/AnnotationPanel.d.ts.map +1 -0
- package/dist/ui/viewer/components/AnnotationPanel.js +284 -0
- package/dist/ui/viewer/components/AnnotationPanel.js.map +1 -0
- package/dist/ui/viewer/components/FloatingToolbar.d.ts +9 -0
- package/dist/ui/viewer/components/FloatingToolbar.d.ts.map +1 -0
- package/dist/ui/viewer/components/FloatingToolbar.js +305 -0
- package/dist/ui/viewer/components/FloatingToolbar.js.map +1 -0
- package/dist/ui/viewer/components/LeftPanel.d.ts +10 -0
- package/dist/ui/viewer/components/LeftPanel.d.ts.map +1 -0
- package/dist/ui/viewer/components/LeftPanel.js +165 -0
- package/dist/ui/viewer/components/LeftPanel.js.map +1 -0
- package/dist/ui/viewer/components/OutlinePanel.d.ts +10 -0
- package/dist/ui/viewer/components/OutlinePanel.d.ts.map +1 -0
- package/dist/ui/viewer/components/OutlinePanel.js +169 -0
- package/dist/ui/viewer/components/OutlinePanel.js.map +1 -0
- package/dist/ui/viewer/components/RightPanel.d.ts +9 -0
- package/dist/ui/viewer/components/RightPanel.d.ts.map +1 -0
- package/dist/ui/viewer/components/RightPanel.js +102 -0
- package/dist/ui/viewer/components/RightPanel.js.map +1 -0
- package/dist/ui/viewer/components/Spread.d.ts +41 -0
- package/dist/ui/viewer/components/Spread.d.ts.map +1 -0
- package/dist/ui/viewer/components/Spread.js +278 -0
- package/dist/ui/viewer/components/Spread.js.map +1 -0
- package/dist/ui/viewer/components/ThumbnailPanel.d.ts +11 -0
- package/dist/ui/viewer/components/ThumbnailPanel.d.ts.map +1 -0
- package/dist/ui/viewer/components/ThumbnailPanel.js +206 -0
- package/dist/ui/viewer/components/ThumbnailPanel.js.map +1 -0
- package/dist/ui/viewer/components/Toolbar.d.ts +9 -0
- package/dist/ui/viewer/components/Toolbar.d.ts.map +1 -0
- package/dist/ui/viewer/components/Toolbar.js +93 -0
- package/dist/ui/viewer/components/Toolbar.js.map +1 -0
- package/dist/ui/viewer/components/ViewModeMenu.d.ts +9 -0
- package/dist/ui/viewer/components/ViewModeMenu.d.ts.map +1 -0
- package/dist/ui/viewer/components/ViewModeMenu.js +169 -0
- package/dist/ui/viewer/components/ViewModeMenu.js.map +1 -0
- package/dist/ui/viewer/components/Viewport.d.ts +10 -0
- package/dist/ui/viewer/components/Viewport.d.ts.map +1 -0
- package/dist/ui/viewer/components/Viewport.js +793 -0
- package/dist/ui/viewer/components/Viewport.js.map +1 -0
- package/dist/ui/viewer/effects.d.ts +9 -0
- package/dist/ui/viewer/effects.d.ts.map +1 -0
- package/dist/ui/viewer/effects.js +179 -0
- package/dist/ui/viewer/effects.js.map +1 -0
- package/dist/ui/viewer/icons.d.ts +32 -0
- package/dist/ui/viewer/icons.d.ts.map +1 -0
- package/dist/ui/viewer/icons.js +44 -0
- package/dist/ui/viewer/icons.js.map +1 -0
- package/dist/ui/viewer/index.d.ts +6 -0
- package/dist/ui/viewer/index.d.ts.map +1 -0
- package/dist/ui/viewer/index.js +6 -0
- package/dist/ui/viewer/index.js.map +1 -0
- package/dist/ui/viewer/layout/index.d.ts +3 -0
- package/dist/ui/viewer/layout/index.d.ts.map +1 -0
- package/dist/ui/viewer/layout/index.js +3 -0
- package/dist/ui/viewer/layout/index.js.map +1 -0
- package/dist/ui/viewer/layout/pixelAlign.d.ts +7 -0
- package/dist/ui/viewer/layout/pixelAlign.d.ts.map +1 -0
- package/dist/ui/viewer/layout/pixelAlign.js +22 -0
- package/dist/ui/viewer/layout/pixelAlign.js.map +1 -0
- package/dist/ui/viewer/layout/spreadLayout.d.ts +93 -0
- package/dist/ui/viewer/layout/spreadLayout.d.ts.map +1 -0
- package/dist/ui/viewer/layout/spreadLayout.js +303 -0
- package/dist/ui/viewer/layout/spreadLayout.js.map +1 -0
- package/dist/ui/viewer/navigation.d.ts +80 -0
- package/dist/ui/viewer/navigation.d.ts.map +1 -0
- package/dist/ui/viewer/navigation.js +59 -0
- package/dist/ui/viewer/navigation.js.map +1 -0
- package/dist/ui/viewer/reducer.d.ts +4 -0
- package/dist/ui/viewer/reducer.d.ts.map +1 -0
- package/dist/ui/viewer/reducer.js +229 -0
- package/dist/ui/viewer/reducer.js.map +1 -0
- package/dist/ui/viewer/rendering/RenderManager.d.ts +76 -0
- package/dist/ui/viewer/rendering/RenderManager.d.ts.map +1 -0
- package/dist/ui/viewer/rendering/RenderManager.js +236 -0
- package/dist/ui/viewer/rendering/RenderManager.js.map +1 -0
- package/dist/ui/viewer/shell.d.ts +29 -0
- package/dist/ui/viewer/shell.d.ts.map +1 -0
- package/dist/ui/viewer/shell.js +70 -0
- package/dist/ui/viewer/shell.js.map +1 -0
- package/dist/ui/viewer/state.d.ts +72 -0
- package/dist/ui/viewer/state.d.ts.map +1 -0
- package/dist/ui/viewer/state.js +47 -0
- package/dist/ui/viewer/state.js.map +1 -0
- package/dist/view/LayoutCalculator.d.ts +42 -0
- package/dist/view/LayoutCalculator.d.ts.map +1 -0
- package/dist/view/LayoutCalculator.js +180 -0
- package/dist/view/LayoutCalculator.js.map +1 -0
- package/dist/view/TransitionCoordinator.d.ts +11 -0
- package/dist/view/TransitionCoordinator.d.ts.map +1 -0
- package/dist/view/TransitionCoordinator.js +22 -0
- package/dist/view/TransitionCoordinator.js.map +1 -0
- package/dist/view/ViewState.d.ts +46 -0
- package/dist/view/ViewState.d.ts.map +1 -0
- package/dist/view/ViewState.js +109 -0
- package/dist/view/ViewState.js.map +1 -0
- package/dist/view/index.d.ts +7 -0
- package/dist/view/index.d.ts.map +1 -0
- package/dist/view/index.js +4 -0
- package/dist/view/index.js.map +1 -0
- package/dist/wasm/udoc.d.ts +202 -0
- package/dist/wasm/udoc.js +929 -0
- package/dist/wasm/udoc_bg.wasm +0 -0
- package/dist/wasm/udoc_bg.wasm.d.ts +28 -0
- package/dist/worker/WorkerClient.d.ts +103 -0
- package/dist/worker/WorkerClient.d.ts.map +1 -0
- package/dist/worker/WorkerClient.js +182 -0
- package/dist/worker/WorkerClient.js.map +1 -0
- package/dist/worker/index.d.ts +4 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +2 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/types.d.ts +81 -0
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js +6 -0
- package/dist/worker/types.js.map +1 -0
- package/dist/worker/worker.d.ts +191 -0
- package/dist/worker/worker.d.ts.map +1 -0
- package/dist/worker/worker.js +127 -0
- package/dist/worker/worker.js.map +1 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +205 -0
- package/dist/worker.js.map +1 -0
- package/package.json +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# @docmentis/udoc-viewer
|
|
2
|
+
|
|
3
|
+
A high-performance document viewer for PDF, powered by WebAssembly.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @docmentis/udoc-viewer
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { UDocClient } from '@docmentis/udoc-viewer';
|
|
15
|
+
|
|
16
|
+
// Create a client (loads the WASM engine)
|
|
17
|
+
const client = await UDocClient.create();
|
|
18
|
+
|
|
19
|
+
// Create a viewer attached to a container element
|
|
20
|
+
const viewer = await client.createViewer({
|
|
21
|
+
container: '#viewer'
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// Load a document
|
|
25
|
+
await viewer.load('https://example.com/document.pdf');
|
|
26
|
+
|
|
27
|
+
// Clean up when done
|
|
28
|
+
viewer.destroy();
|
|
29
|
+
client.destroy();
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Loading Documents
|
|
33
|
+
|
|
34
|
+
The viewer accepts multiple document sources:
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
// From URL
|
|
38
|
+
await viewer.load('https://example.com/document.pdf');
|
|
39
|
+
|
|
40
|
+
// From File object (e.g., from file input)
|
|
41
|
+
await viewer.load(file);
|
|
42
|
+
|
|
43
|
+
// From raw bytes
|
|
44
|
+
await viewer.load(new Uint8Array(buffer));
|
|
45
|
+
|
|
46
|
+
// Close current document
|
|
47
|
+
viewer.close();
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Client Options
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
const client = await UDocClient.create({
|
|
54
|
+
// License key for commercial use (optional)
|
|
55
|
+
license: 'your-license-key',
|
|
56
|
+
|
|
57
|
+
// Custom base URL for worker and WASM files (optional)
|
|
58
|
+
baseUrl: 'https://cdn.example.com/udoc/',
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Viewer Options
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
const viewer = await client.createViewer({
|
|
66
|
+
// Container element or CSS selector (required for UI mode)
|
|
67
|
+
container: '#viewer',
|
|
68
|
+
|
|
69
|
+
// Scroll mode: 'continuous' or 'single-page'
|
|
70
|
+
scrollMode: ScrollMode.Continuous,
|
|
71
|
+
|
|
72
|
+
// Layout mode: 'single-page', 'two-page', 'two-page-cover'
|
|
73
|
+
layoutMode: LayoutMode.SinglePage,
|
|
74
|
+
|
|
75
|
+
// Zoom mode: 'fit-width', 'fit-page', 'fit-height', 'actual-size', 'custom'
|
|
76
|
+
zoomMode: ZoomMode.FitSpreadWidth,
|
|
77
|
+
|
|
78
|
+
// Initial zoom level (when zoomMode is 'custom')
|
|
79
|
+
zoom: 1,
|
|
80
|
+
|
|
81
|
+
// Custom zoom steps for zoom in/out
|
|
82
|
+
zoomSteps: [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4],
|
|
83
|
+
|
|
84
|
+
// Spacing between pages in pixels
|
|
85
|
+
pageSpacing: 10,
|
|
86
|
+
|
|
87
|
+
// Initially active panel: 'thumbnails', 'outline', or null
|
|
88
|
+
activePanel: null,
|
|
89
|
+
|
|
90
|
+
// Target display DPI (default: 96)
|
|
91
|
+
dpi: 96,
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Navigation
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
// Get current page (1-based)
|
|
99
|
+
const page = viewer.currentPage;
|
|
100
|
+
|
|
101
|
+
// Go to a specific page
|
|
102
|
+
viewer.goToPage(5);
|
|
103
|
+
|
|
104
|
+
// Navigate to a destination (from outline)
|
|
105
|
+
viewer.goToDestination(destination);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Document Information
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
// Check if document is loaded
|
|
112
|
+
if (viewer.isLoaded) {
|
|
113
|
+
// Get page count
|
|
114
|
+
const total = viewer.pageCount;
|
|
115
|
+
|
|
116
|
+
// Get page dimensions (0-based index)
|
|
117
|
+
const info = viewer.getPageInfo(0);
|
|
118
|
+
console.log(`Page 1: ${info.width} x ${info.height} points`);
|
|
119
|
+
|
|
120
|
+
// Get document outline (table of contents)
|
|
121
|
+
const outline = await viewer.getOutline();
|
|
122
|
+
|
|
123
|
+
// Get annotations on a page
|
|
124
|
+
const annotations = await viewer.getPageAnnotations(0);
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Page Rendering (Headless)
|
|
129
|
+
|
|
130
|
+
Render pages to images without UI:
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
// Create headless viewer (no container)
|
|
134
|
+
const viewer = await client.createViewer();
|
|
135
|
+
await viewer.load(pdfBytes);
|
|
136
|
+
|
|
137
|
+
// Render page to ImageData
|
|
138
|
+
const imageData = await viewer.renderPage(0, { scale: 2 });
|
|
139
|
+
|
|
140
|
+
// Render to Blob
|
|
141
|
+
const blob = await viewer.renderPage(0, {
|
|
142
|
+
format: 'blob',
|
|
143
|
+
imageType: 'image/png'
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
// Render to data URL
|
|
147
|
+
const dataUrl = await viewer.renderPage(0, {
|
|
148
|
+
format: 'data-url',
|
|
149
|
+
imageType: 'image/jpeg',
|
|
150
|
+
quality: 0.9
|
|
151
|
+
});
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Events
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
// Document loaded
|
|
158
|
+
const unsubscribe = viewer.on('document:load', ({ pageCount }) => {
|
|
159
|
+
console.log(`Loaded ${pageCount} pages`);
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Document closed
|
|
163
|
+
viewer.on('document:close', () => {
|
|
164
|
+
console.log('Document closed');
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// Error occurred
|
|
168
|
+
viewer.on('error', ({ error, phase }) => {
|
|
169
|
+
console.error(`Error during ${phase}:`, error);
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
// Unsubscribe
|
|
173
|
+
unsubscribe();
|
|
174
|
+
// or
|
|
175
|
+
viewer.off('document:load', handler);
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## License
|
|
179
|
+
|
|
180
|
+
MIT
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UDocClient - SDK entry point for document viewing.
|
|
3
|
+
*
|
|
4
|
+
* Manages the WASM engine and provides document operations.
|
|
5
|
+
*/
|
|
6
|
+
import { WorkerClient } from "./worker/index.js";
|
|
7
|
+
import { UDocViewer } from "./UDocViewer.js";
|
|
8
|
+
import type { ScrollMode, LayoutMode, ZoomMode, PanelTab } from "./ui/viewer/state.js";
|
|
9
|
+
/**
|
|
10
|
+
* License information for the client.
|
|
11
|
+
*/
|
|
12
|
+
export interface LicenseInfo {
|
|
13
|
+
/**
|
|
14
|
+
* Whether the license is valid.
|
|
15
|
+
*/
|
|
16
|
+
valid: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* License tier: "free" (no license) or "licensed" (valid license).
|
|
19
|
+
*/
|
|
20
|
+
tier: "free" | "licensed";
|
|
21
|
+
/**
|
|
22
|
+
* Enabled feature flags.
|
|
23
|
+
*/
|
|
24
|
+
features: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Numeric limits (e.g., max_file_size_mb).
|
|
27
|
+
*/
|
|
28
|
+
limits: Record<string, number>;
|
|
29
|
+
/**
|
|
30
|
+
* Organization name from the license.
|
|
31
|
+
*/
|
|
32
|
+
organization?: string;
|
|
33
|
+
/**
|
|
34
|
+
* When the license expires (if applicable).
|
|
35
|
+
*/
|
|
36
|
+
expiresAt?: Date;
|
|
37
|
+
/**
|
|
38
|
+
* Error message if license validation failed.
|
|
39
|
+
*/
|
|
40
|
+
error?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Options for creating a UDocClient.
|
|
44
|
+
*/
|
|
45
|
+
export interface ClientOptions {
|
|
46
|
+
/**
|
|
47
|
+
* License key for commercial use.
|
|
48
|
+
* Client runs in trial mode if not provided.
|
|
49
|
+
*/
|
|
50
|
+
license?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Base URL for loading worker and WASM files.
|
|
53
|
+
*
|
|
54
|
+
* By default, files are loaded relative to the package location.
|
|
55
|
+
*
|
|
56
|
+
* Expected files at baseUrl:
|
|
57
|
+
* - `{baseUrl}/worker.js`
|
|
58
|
+
* - `{baseUrl}/udoc_bg.wasm`
|
|
59
|
+
*/
|
|
60
|
+
baseUrl?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Locale for UI strings and date formatting.
|
|
63
|
+
* @default 'en'
|
|
64
|
+
*/
|
|
65
|
+
locale?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Options for creating a viewer.
|
|
69
|
+
*/
|
|
70
|
+
export interface ViewerOptions {
|
|
71
|
+
/**
|
|
72
|
+
* Container element or CSS selector.
|
|
73
|
+
* If not provided, viewer runs in headless mode (no UI).
|
|
74
|
+
*/
|
|
75
|
+
container?: string | HTMLElement;
|
|
76
|
+
/**
|
|
77
|
+
* Scroll mode for page navigation.
|
|
78
|
+
* @default ScrollMode.Continuous
|
|
79
|
+
*/
|
|
80
|
+
scrollMode?: ScrollMode;
|
|
81
|
+
/**
|
|
82
|
+
* Page layout mode.
|
|
83
|
+
* @default LayoutMode.SinglePage
|
|
84
|
+
*/
|
|
85
|
+
layoutMode?: LayoutMode;
|
|
86
|
+
/**
|
|
87
|
+
* Zoom mode for automatic scaling.
|
|
88
|
+
* @default ZoomMode.FitSpreadWidth
|
|
89
|
+
*/
|
|
90
|
+
zoomMode?: ZoomMode;
|
|
91
|
+
/**
|
|
92
|
+
* Initial zoom level (when zoomMode is Custom).
|
|
93
|
+
* @default 1
|
|
94
|
+
*/
|
|
95
|
+
zoom?: number;
|
|
96
|
+
/**
|
|
97
|
+
* Custom zoom steps for zoom in/out.
|
|
98
|
+
* @default DEFAULT_ZOOM_STEPS
|
|
99
|
+
*/
|
|
100
|
+
zoomSteps?: readonly number[];
|
|
101
|
+
/**
|
|
102
|
+
* Spacing between pages in pixels.
|
|
103
|
+
* @default 10
|
|
104
|
+
*/
|
|
105
|
+
pageSpacing?: number;
|
|
106
|
+
/**
|
|
107
|
+
* Spacing between spreads in pixels.
|
|
108
|
+
* @default 20
|
|
109
|
+
*/
|
|
110
|
+
spreadSpacing?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Initially active panel, or null for no panel.
|
|
113
|
+
* @default null
|
|
114
|
+
*/
|
|
115
|
+
activePanel?: PanelTab | null;
|
|
116
|
+
/**
|
|
117
|
+
* Target display DPI for rendering.
|
|
118
|
+
* PDF points are 72 DPI; this setting determines the CSS pixel ratio.
|
|
119
|
+
* Most displays use 96 DPI (CSS standard).
|
|
120
|
+
* @default 96
|
|
121
|
+
*/
|
|
122
|
+
dpi?: number;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* A document source can be:
|
|
126
|
+
* - URL string
|
|
127
|
+
* - File object
|
|
128
|
+
* - Raw bytes
|
|
129
|
+
* - An existing viewer (uses its loaded document)
|
|
130
|
+
*/
|
|
131
|
+
export type DocumentSource = string | File | Uint8Array | UDocViewer;
|
|
132
|
+
/**
|
|
133
|
+
* SDK entry point for document viewing.
|
|
134
|
+
*
|
|
135
|
+
* Manages the WASM engine, creates viewers, and provides document operations.
|
|
136
|
+
*/
|
|
137
|
+
export declare class UDocClient {
|
|
138
|
+
/**
|
|
139
|
+
* SDK version string.
|
|
140
|
+
*/
|
|
141
|
+
static readonly version: string;
|
|
142
|
+
private workerClient;
|
|
143
|
+
private renderManager;
|
|
144
|
+
private options;
|
|
145
|
+
private viewers;
|
|
146
|
+
private destroyed;
|
|
147
|
+
private licenseInfo;
|
|
148
|
+
private constructor();
|
|
149
|
+
/**
|
|
150
|
+
* Create and initialize a client instance.
|
|
151
|
+
* Loads the WASM engine.
|
|
152
|
+
*/
|
|
153
|
+
static create(options?: ClientOptions): Promise<UDocClient>;
|
|
154
|
+
/**
|
|
155
|
+
* Get current license information.
|
|
156
|
+
*/
|
|
157
|
+
get license(): LicenseInfo;
|
|
158
|
+
/**
|
|
159
|
+
* Check if a feature is available with the current license.
|
|
160
|
+
* @param feature - Feature name (e.g., "merge")
|
|
161
|
+
*/
|
|
162
|
+
hasFeature(feature: string): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Create a viewer instance.
|
|
165
|
+
*
|
|
166
|
+
* - With container: Full UI mode
|
|
167
|
+
* - Without container: Headless mode (same API, no UI)
|
|
168
|
+
*/
|
|
169
|
+
createViewer(options?: ViewerOptions): Promise<UDocViewer>;
|
|
170
|
+
/**
|
|
171
|
+
* Merge multiple documents into one.
|
|
172
|
+
*
|
|
173
|
+
* @param sources - Documents to merge (bytes, Files, URLs, or viewers)
|
|
174
|
+
* @returns Merged document as bytes
|
|
175
|
+
*/
|
|
176
|
+
mergeDocuments(_sources: DocumentSource[]): Promise<Uint8Array>;
|
|
177
|
+
/**
|
|
178
|
+
* Extract specific pages from a document.
|
|
179
|
+
*
|
|
180
|
+
* @param source - Source document
|
|
181
|
+
* @param pages - Page indices to extract (0-based)
|
|
182
|
+
* @returns Extracted pages as bytes
|
|
183
|
+
*/
|
|
184
|
+
extractPages(_source: DocumentSource, _pages: number[]): Promise<Uint8Array>;
|
|
185
|
+
/**
|
|
186
|
+
* Destroy the client and release all resources.
|
|
187
|
+
* All viewers created by this client become invalid.
|
|
188
|
+
*/
|
|
189
|
+
destroy(): void;
|
|
190
|
+
/**
|
|
191
|
+
* Get the underlying worker client (for internal use).
|
|
192
|
+
* @internal
|
|
193
|
+
*/
|
|
194
|
+
getWorkerClient(): WorkerClient;
|
|
195
|
+
private ensureNotDestroyed;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=UDocClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UDocClient.d.ts","sourceRoot":"","sources":["../src/UDocClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UDocClient - SDK entry point for document viewing.
|
|
3
|
+
*
|
|
4
|
+
* Manages the WASM engine and provides document operations.
|
|
5
|
+
*/
|
|
6
|
+
import { WorkerClient } from "./worker/index.js";
|
|
7
|
+
import { UDocViewer } from "./UDocViewer.js";
|
|
8
|
+
import { RenderManager } from "./ui/viewer/rendering/RenderManager.js";
|
|
9
|
+
/**
|
|
10
|
+
* SDK entry point for document viewing.
|
|
11
|
+
*
|
|
12
|
+
* Manages the WASM engine, creates viewers, and provides document operations.
|
|
13
|
+
*/
|
|
14
|
+
export class UDocClient {
|
|
15
|
+
/**
|
|
16
|
+
* SDK version string.
|
|
17
|
+
*/
|
|
18
|
+
static version = "0.1.0";
|
|
19
|
+
workerClient;
|
|
20
|
+
renderManager;
|
|
21
|
+
options;
|
|
22
|
+
viewers = new Set();
|
|
23
|
+
destroyed = false;
|
|
24
|
+
licenseInfo = {
|
|
25
|
+
valid: true,
|
|
26
|
+
tier: "free",
|
|
27
|
+
features: [],
|
|
28
|
+
limits: {},
|
|
29
|
+
};
|
|
30
|
+
constructor(workerClient, renderManager, options) {
|
|
31
|
+
this.workerClient = workerClient;
|
|
32
|
+
this.renderManager = renderManager;
|
|
33
|
+
this.options = options;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create and initialize a client instance.
|
|
37
|
+
* Loads the WASM engine.
|
|
38
|
+
*/
|
|
39
|
+
static async create(options = {}) {
|
|
40
|
+
// Create worker client - use custom URL if provided, otherwise use bundled worker
|
|
41
|
+
const workerClient = options.baseUrl
|
|
42
|
+
? WorkerClient.createWithUrl(new URL("worker.js", options.baseUrl))
|
|
43
|
+
: WorkerClient.create();
|
|
44
|
+
// Initialize WASM in the worker
|
|
45
|
+
const wasmUrl = options.baseUrl
|
|
46
|
+
? new URL("udoc_bg.wasm", options.baseUrl).href
|
|
47
|
+
: undefined;
|
|
48
|
+
await workerClient.init(wasmUrl);
|
|
49
|
+
// Create shared RenderManager for all viewers
|
|
50
|
+
const renderManager = new RenderManager({
|
|
51
|
+
render: async (docId, page, scale) => {
|
|
52
|
+
const pageInfo = await workerClient.getPageInfo(docId, page - 1);
|
|
53
|
+
const width = Math.round(pageInfo.width * scale);
|
|
54
|
+
const height = Math.round(pageInfo.height * scale);
|
|
55
|
+
const rendered = await workerClient.renderPage(docId, page - 1, width, height);
|
|
56
|
+
const buffer = new ArrayBuffer(rendered.rgba.byteLength);
|
|
57
|
+
new Uint8Array(buffer).set(rendered.rgba);
|
|
58
|
+
const imageData = new ImageData(new Uint8ClampedArray(buffer), rendered.width, rendered.height);
|
|
59
|
+
return createImageBitmap(imageData);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const client = new UDocClient(workerClient, renderManager, options);
|
|
63
|
+
// Validate license if provided
|
|
64
|
+
if (options.license) {
|
|
65
|
+
const domain = typeof window !== "undefined"
|
|
66
|
+
? window.location.hostname
|
|
67
|
+
: "localhost";
|
|
68
|
+
const result = await workerClient.setLicense(options.license, domain);
|
|
69
|
+
client.licenseInfo = licenseResultToInfo(result);
|
|
70
|
+
if (!result.valid) {
|
|
71
|
+
console.warn(`[udoc-viewer] License validation failed: ${result.error}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return client;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get current license information.
|
|
78
|
+
*/
|
|
79
|
+
get license() {
|
|
80
|
+
return { ...this.licenseInfo };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if a feature is available with the current license.
|
|
84
|
+
* @param feature - Feature name (e.g., "merge")
|
|
85
|
+
*/
|
|
86
|
+
hasFeature(feature) {
|
|
87
|
+
return this.licenseInfo.features.includes(feature);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create a viewer instance.
|
|
91
|
+
*
|
|
92
|
+
* - With container: Full UI mode
|
|
93
|
+
* - Without container: Headless mode (same API, no UI)
|
|
94
|
+
*/
|
|
95
|
+
async createViewer(options = {}) {
|
|
96
|
+
this.ensureNotDestroyed();
|
|
97
|
+
const viewer = new UDocViewer(this.workerClient, this.renderManager, options);
|
|
98
|
+
this.viewers.add(viewer);
|
|
99
|
+
return viewer;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Merge multiple documents into one.
|
|
103
|
+
*
|
|
104
|
+
* @param sources - Documents to merge (bytes, Files, URLs, or viewers)
|
|
105
|
+
* @returns Merged document as bytes
|
|
106
|
+
*/
|
|
107
|
+
async mergeDocuments(_sources) {
|
|
108
|
+
this.ensureNotDestroyed();
|
|
109
|
+
// TODO: Implement document merging
|
|
110
|
+
throw new Error("mergeDocuments not yet implemented");
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Extract specific pages from a document.
|
|
114
|
+
*
|
|
115
|
+
* @param source - Source document
|
|
116
|
+
* @param pages - Page indices to extract (0-based)
|
|
117
|
+
* @returns Extracted pages as bytes
|
|
118
|
+
*/
|
|
119
|
+
async extractPages(_source, _pages) {
|
|
120
|
+
this.ensureNotDestroyed();
|
|
121
|
+
// TODO: Implement page extraction
|
|
122
|
+
throw new Error("extractPages not yet implemented");
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Destroy the client and release all resources.
|
|
126
|
+
* All viewers created by this client become invalid.
|
|
127
|
+
*/
|
|
128
|
+
destroy() {
|
|
129
|
+
if (this.destroyed)
|
|
130
|
+
return;
|
|
131
|
+
this.destroyed = true;
|
|
132
|
+
// Destroy all viewers
|
|
133
|
+
for (const viewer of this.viewers) {
|
|
134
|
+
viewer.destroy();
|
|
135
|
+
}
|
|
136
|
+
this.viewers.clear();
|
|
137
|
+
// Destroy shared render manager
|
|
138
|
+
this.renderManager.destroy();
|
|
139
|
+
// Terminate the worker
|
|
140
|
+
this.workerClient.terminate();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get the underlying worker client (for internal use).
|
|
144
|
+
* @internal
|
|
145
|
+
*/
|
|
146
|
+
getWorkerClient() {
|
|
147
|
+
return this.workerClient;
|
|
148
|
+
}
|
|
149
|
+
ensureNotDestroyed() {
|
|
150
|
+
if (this.destroyed) {
|
|
151
|
+
throw new Error("UDocClient has been destroyed");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Convert WASM license result to LicenseInfo.
|
|
157
|
+
*/
|
|
158
|
+
function licenseResultToInfo(result) {
|
|
159
|
+
const hasLicensedFeatures = result.features.length > 0 || Object.keys(result.limits).length > 0;
|
|
160
|
+
return {
|
|
161
|
+
valid: result.valid,
|
|
162
|
+
tier: result.valid && hasLicensedFeatures ? "licensed" : "free",
|
|
163
|
+
features: result.features,
|
|
164
|
+
limits: result.limits,
|
|
165
|
+
organization: result.organization,
|
|
166
|
+
expiresAt: result.expiresAt ? new Date(result.expiresAt * 1000) : undefined,
|
|
167
|
+
error: result.error,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=UDocClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UDocClient.js","sourceRoot":"","sources":["../src/UDocClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAmJvE;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACrB;;OAEG;IACH,MAAM,CAAU,OAAO,GAAW,OAAO,CAAC;IAElC,YAAY,CAAe;IAC3B,aAAa,CAAgB;IAC7B,OAAO,CAAgB;IACvB,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;IACrC,SAAS,GAAG,KAAK,CAAC;IAClB,WAAW,GAAgB;QACjC,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,YAAoB,YAA0B,EAAE,aAA4B,EAAE,OAAsB;QAClG,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAyB,EAAE;QAC7C,kFAAkF;QAClF,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO;YAClC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAE1B,gCAAgC;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;YAC7B,CAAC,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjC,8CAA8C;QAC9C,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;YACtC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBACnC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAE/E,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzD,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,SAAS,GAAG,IAAI,SAAS,CAC7B,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAC7B,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,MAAM,CAChB,CAAC;gBACF,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpE,+BAA+B;QAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW;gBAC1C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAC1B,CAAC,CAAC,WAAW,CAAC;YAEhB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,4CAA4C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,UAAyB,EAAE;QAC5C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,QAA0B;QAC7C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,mCAAmC;QACnC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAuB,EAAE,MAAgB;QAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,kCAAkC;QAClC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,sBAAsB;QACtB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,gCAAgC;QAChC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAE7B,uBAAuB;QACvB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;;AAGH;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAqB;IAChD,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChG,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;QAC/D,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
|