@embedpdf/vue 0.0.0-stage → 3.0.0-next.15
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/LICENSE +192 -0
- package/README.md +258 -2
- package/dist/Anchored.vue_vue_type_script_setup_true_lang-BEImlFso.cjs +124 -0
- package/dist/Anchored.vue_vue_type_script_setup_true_lang-BEImlFso.cjs.map +1 -0
- package/dist/Anchored.vue_vue_type_script_setup_true_lang-Brhh5jyF.js +125 -0
- package/dist/Anchored.vue_vue_type_script_setup_true_lang-Brhh5jyF.js.map +1 -0
- package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-BwtHXw73.cjs +20 -0
- package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-BwtHXw73.cjs.map +1 -0
- package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-Ulkr3a6R.js +21 -0
- package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-Ulkr3a6R.js.map +1 -0
- package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-CtTu1FGX.js +191 -0
- package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-CtTu1FGX.js.map +1 -0
- package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-loLSm4lV.cjs +190 -0
- package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-loLSm4lV.cjs.map +1 -0
- package/dist/FormLayer.vue_vue_type_script_setup_true_lang-BA0_VwFc.cjs +682 -0
- package/dist/FormLayer.vue_vue_type_script_setup_true_lang-BA0_VwFc.cjs.map +1 -0
- package/dist/FormLayer.vue_vue_type_script_setup_true_lang-DUqft-xs.js +683 -0
- package/dist/FormLayer.vue_vue_type_script_setup_true_lang-DUqft-xs.js.map +1 -0
- package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-C5-eQD34.cjs +174 -0
- package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-C5-eQD34.cjs.map +1 -0
- package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-EzLaOP3g.js +175 -0
- package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-EzLaOP3g.js.map +1 -0
- package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-CJt3vdBW.js +33 -0
- package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-CJt3vdBW.js.map +1 -0
- package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-Cw29c8Oa.cjs +32 -0
- package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-Cw29c8Oa.cjs.map +1 -0
- package/dist/PageView.vue_vue_type_script_setup_true_lang-CjrpumX2.cjs +151 -0
- package/dist/PageView.vue_vue_type_script_setup_true_lang-CjrpumX2.cjs.map +1 -0
- package/dist/PageView.vue_vue_type_script_setup_true_lang-O4AFc0_R.js +152 -0
- package/dist/PageView.vue_vue_type_script_setup_true_lang-O4AFc0_R.js.map +1 -0
- package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-DrOORC1H.cjs +480 -0
- package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-DrOORC1H.cjs.map +1 -0
- package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-HbCryx1B.js +481 -0
- package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-HbCryx1B.js.map +1 -0
- package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-BlLIPH1B.js +118 -0
- package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-BlLIPH1B.js.map +1 -0
- package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-CQozZCvB.cjs +117 -0
- package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-CQozZCvB.cjs.map +1 -0
- package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C4TUDuyu.js +302 -0
- package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C4TUDuyu.js.map +1 -0
- package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C8T9q6Kb.cjs +301 -0
- package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C8T9q6Kb.cjs.map +1 -0
- package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-D_c-wINF.cjs +38 -0
- package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-D_c-wINF.cjs.map +1 -0
- package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-fOTs4aqv.js +39 -0
- package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-fOTs4aqv.js.map +1 -0
- package/dist/actions.cjs +42 -0
- package/dist/actions.cjs.map +1 -0
- package/dist/actions.d.cts +41 -0
- package/dist/actions.d.ts +41 -0
- package/dist/actions.js +37 -0
- package/dist/actions.js.map +1 -0
- package/dist/anchored/Anchored.vue.d.cts +40 -0
- package/dist/anchored/Anchored.vue.d.ts +40 -0
- package/dist/anchored/AnchoredScope.vue.d.cts +17 -0
- package/dist/anchored/AnchoredScope.vue.d.ts +17 -0
- package/dist/anchored/PlacedAnchored.vue.d.cts +19 -0
- package/dist/anchored/PlacedAnchored.vue.d.ts +19 -0
- package/dist/anchored/projector.d.cts +32 -0
- package/dist/anchored/projector.d.ts +32 -0
- package/dist/anchored.cjs +13 -0
- package/dist/anchored.cjs.map +1 -0
- package/dist/anchored.d.cts +15 -0
- package/dist/anchored.d.ts +15 -0
- package/dist/anchored.js +13 -0
- package/dist/anchored.js.map +1 -0
- package/dist/annotation/AnnotationChrome.vue.d.cts +20 -0
- package/dist/annotation/AnnotationChrome.vue.d.ts +20 -0
- package/dist/annotation/AnnotationDraftMenu.vue.d.cts +26 -0
- package/dist/annotation/AnnotationDraftMenu.vue.d.ts +26 -0
- package/dist/annotation/AnnotationFrame.vue.d.cts +25 -0
- package/dist/annotation/AnnotationFrame.vue.d.ts +25 -0
- package/dist/annotation/AnnotationLayer.vue.d.cts +23 -0
- package/dist/annotation/AnnotationLayer.vue.d.ts +23 -0
- package/dist/annotation/AnnotationLook.vue.d.cts +21 -0
- package/dist/annotation/AnnotationLook.vue.d.ts +21 -0
- package/dist/annotation/AnnotationMenu.vue.d.cts +23 -0
- package/dist/annotation/AnnotationMenu.vue.d.ts +23 -0
- package/dist/annotation/AnnotationRotationBadge.vue.d.cts +26 -0
- package/dist/annotation/AnnotationRotationBadge.vue.d.ts +26 -0
- package/dist/annotation/AnnotationScene.vue.d.cts +7 -0
- package/dist/annotation/AnnotationScene.vue.d.ts +7 -0
- package/dist/annotation/FreeTextBox.vue.d.cts +9 -0
- package/dist/annotation/FreeTextBox.vue.d.ts +9 -0
- package/dist/annotation/NativeDrawing.vue.d.cts +10 -0
- package/dist/annotation/NativeDrawing.vue.d.ts +10 -0
- package/dist/annotation/StampGhost.vue.d.cts +7 -0
- package/dist/annotation/StampGhost.vue.d.ts +7 -0
- package/dist/annotation/composables.d.cts +76 -0
- package/dist/annotation/composables.d.ts +76 -0
- package/dist/annotation/state.d.cts +19 -0
- package/dist/annotation/state.d.ts +19 -0
- package/dist/annotation/text-box.d.cts +27 -0
- package/dist/annotation/text-box.d.ts +27 -0
- package/dist/annotation/types.d.cts +154 -0
- package/dist/annotation/types.d.ts +154 -0
- package/dist/annotation.cjs +29 -0
- package/dist/annotation.cjs.map +1 -0
- package/dist/annotation.d.cts +35 -0
- package/dist/annotation.d.ts +35 -0
- package/dist/annotation.js +23 -0
- package/dist/annotation.js.map +1 -0
- package/dist/capabilities-C7YzgPCX.js +164 -0
- package/dist/capabilities-C7YzgPCX.js.map +1 -0
- package/dist/capabilities-DVNJmgy7.cjs +163 -0
- package/dist/capabilities-DVNJmgy7.cjs.map +1 -0
- package/dist/commands.cjs +81 -0
- package/dist/commands.cjs.map +1 -0
- package/dist/commands.d.cts +61 -0
- package/dist/commands.d.ts +61 -0
- package/dist/commands.js +76 -0
- package/dist/commands.js.map +1 -0
- package/dist/composables-BGBsNDf9.cjs +25 -0
- package/dist/composables-BGBsNDf9.cjs.map +1 -0
- package/dist/composables-BuHvnUlo.cjs +1003 -0
- package/dist/composables-BuHvnUlo.cjs.map +1 -0
- package/dist/composables-CIkhKwAg.js +1004 -0
- package/dist/composables-CIkhKwAg.js.map +1 -0
- package/dist/composables-DwsZdg06.js +26 -0
- package/dist/composables-DwsZdg06.js.map +1 -0
- package/dist/dev-CtMlvxjZ.js +17 -0
- package/dist/dev-CtMlvxjZ.js.map +1 -0
- package/dist/dev-eeIS2B4c.cjs +16 -0
- package/dist/dev-eeIS2B4c.cjs.map +1 -0
- package/dist/dev.d.cts +11 -0
- package/dist/dev.d.ts +11 -0
- package/dist/documents-DUu5H4yH.js +34 -0
- package/dist/documents-DUu5H4yH.js.map +1 -0
- package/dist/documents-TQ1fMdWI.cjs +33 -0
- package/dist/documents-TQ1fMdWI.cjs.map +1 -0
- package/dist/form/ButtonControl.vue.d.cts +11 -0
- package/dist/form/ButtonControl.vue.d.ts +11 -0
- package/dist/form/ComboControl.vue.d.cts +11 -0
- package/dist/form/ComboControl.vue.d.ts +11 -0
- package/dist/form/FieldPictures.vue.d.cts +3 -0
- package/dist/form/FieldPictures.vue.d.ts +3 -0
- package/dist/form/FormFocusRing.vue.d.cts +8 -0
- package/dist/form/FormFocusRing.vue.d.ts +8 -0
- package/dist/form/FormLayer.vue.d.cts +3 -0
- package/dist/form/FormLayer.vue.d.ts +3 -0
- package/dist/form/ListControl.vue.d.cts +11 -0
- package/dist/form/ListControl.vue.d.ts +11 -0
- package/dist/form/NativeListBox.vue.d.cts +27 -0
- package/dist/form/NativeListBox.vue.d.ts +27 -0
- package/dist/form/SignatureControl.vue.d.cts +11 -0
- package/dist/form/SignatureControl.vue.d.ts +11 -0
- package/dist/form/TextControl.vue.d.cts +11 -0
- package/dist/form/TextControl.vue.d.ts +11 -0
- package/dist/form/ToggleControl.vue.d.cts +11 -0
- package/dist/form/ToggleControl.vue.d.ts +11 -0
- package/dist/form/composables.d.cts +52 -0
- package/dist/form/composables.d.ts +52 -0
- package/dist/form/widget-box.d.cts +34 -0
- package/dist/form/widget-box.d.ts +34 -0
- package/dist/form.cjs +17 -0
- package/dist/form.cjs.map +1 -0
- package/dist/form.d.cts +12 -0
- package/dist/form.d.ts +12 -0
- package/dist/form.js +11 -0
- package/dist/form.js.map +1 -0
- package/dist/history.cjs +22 -0
- package/dist/history.cjs.map +1 -0
- package/dist/history.d.cts +31 -0
- package/dist/history.d.ts +31 -0
- package/dist/history.js +17 -0
- package/dist/history.js.map +1 -0
- package/dist/i18n.cjs +29 -0
- package/dist/i18n.cjs.map +1 -0
- package/dist/i18n.d.cts +36 -0
- package/dist/i18n.d.ts +36 -0
- package/dist/i18n.js +24 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.cjs +391 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +223 -0
- package/dist/index.js.map +1 -0
- package/dist/interaction/PagePointerSource.vue.d.cts +3 -0
- package/dist/interaction/PagePointerSource.vue.d.ts +3 -0
- package/dist/interaction.cjs +63 -0
- package/dist/interaction.cjs.map +1 -0
- package/dist/interaction.d.cts +40 -0
- package/dist/interaction.d.ts +40 -0
- package/dist/interaction.js +47 -0
- package/dist/interaction.js.map +1 -0
- package/dist/link/LinkAnchor.vue.d.cts +9 -0
- package/dist/link/LinkAnchor.vue.d.ts +9 -0
- package/dist/link/LinkLayer.vue.d.cts +22 -0
- package/dist/link/LinkLayer.vue.d.ts +22 -0
- package/dist/link/composables.d.cts +29 -0
- package/dist/link/composables.d.ts +29 -0
- package/dist/link.cjs +14 -0
- package/dist/link.cjs.map +1 -0
- package/dist/link.d.cts +11 -0
- package/dist/link.d.ts +11 -0
- package/dist/link.js +8 -0
- package/dist/link.js.map +1 -0
- package/dist/measurement.cjs +43 -0
- package/dist/measurement.cjs.map +1 -0
- package/dist/measurement.d.cts +51 -0
- package/dist/measurement.d.ts +51 -0
- package/dist/measurement.js +38 -0
- package/dist/measurement.js.map +1 -0
- package/dist/metadata.cjs +22 -0
- package/dist/metadata.cjs.map +1 -0
- package/dist/metadata.d.cts +31 -0
- package/dist/metadata.d.ts +31 -0
- package/dist/metadata.js +17 -0
- package/dist/metadata.js.map +1 -0
- package/dist/page-D9XIuLSj.js +16 -0
- package/dist/page-D9XIuLSj.js.map +1 -0
- package/dist/page-Doy4_Sdz.cjs +15 -0
- package/dist/page-Doy4_Sdz.cjs.map +1 -0
- package/dist/page-edit.cjs +15 -0
- package/dist/page-edit.cjs.map +1 -0
- package/dist/page-edit.d.cts +16 -0
- package/dist/page-edit.d.ts +16 -0
- package/dist/page-edit.js +10 -0
- package/dist/page-edit.js.map +1 -0
- package/dist/page-layers-c-CJYAUO.cjs +30 -0
- package/dist/page-layers-c-CJYAUO.cjs.map +1 -0
- package/dist/page-layers-rlh4-1qr.js +31 -0
- package/dist/page-layers-rlh4-1qr.js.map +1 -0
- package/dist/page-layers.d.cts +21 -0
- package/dist/page-layers.d.ts +21 -0
- package/dist/page-view/PageView.vue.d.cts +42 -0
- package/dist/page-view/PageView.vue.d.ts +42 -0
- package/dist/page-view.cjs +5 -0
- package/dist/page-view.cjs.map +1 -0
- package/dist/page-view.d.cts +10 -0
- package/dist/page-view.d.ts +10 -0
- package/dist/page-view.js +5 -0
- package/dist/page-view.js.map +1 -0
- package/dist/projector-CDZn1kh1.js +32 -0
- package/dist/projector-CDZn1kh1.js.map +1 -0
- package/dist/projector-Cf7879sx.cjs +31 -0
- package/dist/projector-Cf7879sx.cjs.map +1 -0
- package/dist/redaction.cjs +34 -0
- package/dist/redaction.cjs.map +1 -0
- package/dist/redaction.d.cts +44 -0
- package/dist/redaction.d.ts +44 -0
- package/dist/redaction.js +29 -0
- package/dist/redaction.js.map +1 -0
- package/dist/render/RenderLayer.vue.d.cts +23 -0
- package/dist/render/RenderLayer.vue.d.ts +23 -0
- package/dist/render/TileImage.vue.d.cts +13 -0
- package/dist/render/TileImage.vue.d.ts +13 -0
- package/dist/render/TilePlane.vue.d.cts +7 -0
- package/dist/render/TilePlane.vue.d.ts +7 -0
- package/dist/render.cjs +262 -0
- package/dist/render.cjs.map +1 -0
- package/dist/render.d.cts +16 -0
- package/dist/render.d.ts +16 -0
- package/dist/render.js +257 -0
- package/dist/render.js.map +1 -0
- package/dist/runtime/DocumentGate.vue.d.cts +24 -0
- package/dist/runtime/DocumentGate.vue.d.ts +24 -0
- package/dist/runtime/DocumentScope.vue.d.cts +16 -0
- package/dist/runtime/DocumentScope.vue.d.ts +16 -0
- package/dist/runtime/KernelProvider.vue.d.cts +17 -0
- package/dist/runtime/KernelProvider.vue.d.ts +17 -0
- package/dist/runtime/SvgShapes.vue.d.cts +7 -0
- package/dist/runtime/SvgShapes.vue.d.ts +7 -0
- package/dist/runtime/Viewer.vue.d.cts +57 -0
- package/dist/runtime/Viewer.vue.d.ts +57 -0
- package/dist/runtime/capabilities.d.cts +52 -0
- package/dist/runtime/capabilities.d.ts +52 -0
- package/dist/runtime/documents.d.cts +42 -0
- package/dist/runtime/documents.d.ts +42 -0
- package/dist/runtime/kernel.d.cts +36 -0
- package/dist/runtime/kernel.d.ts +36 -0
- package/dist/runtime/page.d.cts +15 -0
- package/dist/runtime/page.d.ts +15 -0
- package/dist/runtime/refs.d.cts +12 -0
- package/dist/runtime/refs.d.ts +12 -0
- package/dist/runtime/surface-box.d.cts +12 -0
- package/dist/runtime/surface-box.d.ts +12 -0
- package/dist/runtime.cjs +53 -0
- package/dist/runtime.cjs.map +1 -0
- package/dist/runtime.d.cts +24 -0
- package/dist/runtime.d.ts +24 -0
- package/dist/runtime.js +38 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scope-BQA4toWB.cjs +17 -0
- package/dist/scope-BQA4toWB.cjs.map +1 -0
- package/dist/scope-BgdCqnYb.js +18 -0
- package/dist/scope-BgdCqnYb.js.map +1 -0
- package/dist/search/SearchLayer.vue.d.cts +17 -0
- package/dist/search/SearchLayer.vue.d.ts +17 -0
- package/dist/search/composables.d.cts +31 -0
- package/dist/search/composables.d.ts +31 -0
- package/dist/search.cjs +17 -0
- package/dist/search.cjs.map +1 -0
- package/dist/search.d.cts +10 -0
- package/dist/search.d.ts +10 -0
- package/dist/search.js +11 -0
- package/dist/search.js.map +1 -0
- package/dist/selection/SelectionClipboard.vue.d.cts +24 -0
- package/dist/selection/SelectionClipboard.vue.d.ts +24 -0
- package/dist/selection/SelectionHandles.vue.d.cts +8 -0
- package/dist/selection/SelectionHandles.vue.d.ts +8 -0
- package/dist/selection/SelectionLayer.vue.d.cts +3 -0
- package/dist/selection/SelectionLayer.vue.d.ts +3 -0
- package/dist/selection/SelectionMenu.vue.d.cts +23 -0
- package/dist/selection/SelectionMenu.vue.d.ts +23 -0
- package/dist/selection/composables.d.cts +24 -0
- package/dist/selection/composables.d.ts +24 -0
- package/dist/selection.cjs +24 -0
- package/dist/selection.cjs.map +1 -0
- package/dist/selection.d.cts +16 -0
- package/dist/selection.d.ts +16 -0
- package/dist/selection.js +15 -0
- package/dist/selection.js.map +1 -0
- package/dist/shell.cjs +72 -0
- package/dist/shell.cjs.map +1 -0
- package/dist/shell.d.cts +56 -0
- package/dist/shell.d.ts +56 -0
- package/dist/shell.js +67 -0
- package/dist/shell.js.map +1 -0
- package/dist/signature/composables.d.cts +39 -0
- package/dist/signature/composables.d.ts +39 -0
- package/dist/signature.cjs +16 -0
- package/dist/signature.cjs.map +1 -0
- package/dist/signature.d.cts +15 -0
- package/dist/signature.d.ts +15 -0
- package/dist/signature.js +10 -0
- package/dist/signature.js.map +1 -0
- package/dist/stage/PageSurface.vue.d.cts +29 -0
- package/dist/stage/PageSurface.vue.d.ts +29 -0
- package/dist/stage/Scrollbar.vue.d.cts +32 -0
- package/dist/stage/Scrollbar.vue.d.ts +32 -0
- package/dist/stage/Stage.vue.d.cts +44 -0
- package/dist/stage/Stage.vue.d.ts +44 -0
- package/dist/stage/StageScope.vue.d.cts +17 -0
- package/dist/stage/StageScope.vue.d.ts +17 -0
- package/dist/stage/composables.d.cts +41 -0
- package/dist/stage/composables.d.ts +41 -0
- package/dist/stage/scope.d.cts +12 -0
- package/dist/stage/scope.d.ts +12 -0
- package/dist/stage.cjs +21 -0
- package/dist/stage.cjs.map +1 -0
- package/dist/stage.d.cts +17 -0
- package/dist/stage.d.ts +17 -0
- package/dist/stage.js +15 -0
- package/dist/stage.js.map +1 -0
- package/dist/stamp.cjs +68 -0
- package/dist/stamp.cjs.map +1 -0
- package/dist/stamp.d.cts +61 -0
- package/dist/stamp.d.ts +61 -0
- package/dist/stamp.js +61 -0
- package/dist/stamp.js.map +1 -0
- package/dist/state-DZg8q3v6.js +52 -0
- package/dist/state-DZg8q3v6.js.map +1 -0
- package/dist/state-M22NDJQo.cjs +51 -0
- package/dist/state-M22NDJQo.cjs.map +1 -0
- package/dist/state.d.cts +32 -0
- package/dist/state.d.ts +32 -0
- package/dist/strip-BSDB39Xh.cjs +743 -0
- package/dist/strip-BSDB39Xh.cjs.map +1 -0
- package/dist/strip-C3wLonKB.js +744 -0
- package/dist/strip-C3wLonKB.js.map +1 -0
- package/dist/surface-box-B9oa4YoG.js +12 -0
- package/dist/surface-box-B9oa4YoG.js.map +1 -0
- package/dist/surface-box-C7EvUOXp.cjs +11 -0
- package/dist/surface-box-C7EvUOXp.cjs.map +1 -0
- package/dist/theme.d.cts +13 -0
- package/dist/theme.d.ts +13 -0
- package/dist/toolbar/DefaultCollapsed.vue.d.cts +9 -0
- package/dist/toolbar/DefaultCollapsed.vue.d.ts +9 -0
- package/dist/toolbar/DefaultCommand.vue.d.cts +8 -0
- package/dist/toolbar/DefaultCommand.vue.d.ts +8 -0
- package/dist/toolbar/DefaultGroupTrigger.vue.d.cts +9 -0
- package/dist/toolbar/DefaultGroupTrigger.vue.d.ts +9 -0
- package/dist/toolbar/DefaultOverflowMenu.vue.d.cts +9 -0
- package/dist/toolbar/DefaultOverflowMenu.vue.d.ts +9 -0
- package/dist/toolbar/DefaultOverflowTrigger.vue.d.cts +10 -0
- package/dist/toolbar/DefaultOverflowTrigger.vue.d.ts +10 -0
- package/dist/toolbar/Measured.vue.d.cts +21 -0
- package/dist/toolbar/Measured.vue.d.ts +21 -0
- package/dist/toolbar/NativeSlotSocket.vue.d.cts +22 -0
- package/dist/toolbar/NativeSlotSocket.vue.d.ts +22 -0
- package/dist/toolbar/Toolbar.vue.d.cts +82 -0
- package/dist/toolbar/Toolbar.vue.d.ts +82 -0
- package/dist/toolbar/ToolbarPart.vue.d.cts +42 -0
- package/dist/toolbar/ToolbarPart.vue.d.ts +42 -0
- package/dist/toolbar/paint.d.cts +3 -0
- package/dist/toolbar/paint.d.ts +3 -0
- package/dist/toolbar/strip.d.cts +14 -0
- package/dist/toolbar/strip.d.ts +14 -0
- package/dist/toolbar/views.d.cts +15 -0
- package/dist/toolbar/views.d.ts +15 -0
- package/dist/toolbar.cjs +27 -0
- package/dist/toolbar.cjs.map +1 -0
- package/dist/toolbar.d.cts +14 -0
- package/dist/toolbar.d.ts +14 -0
- package/dist/toolbar.js +12 -0
- package/dist/toolbar.js.map +1 -0
- package/dist/view-manager.cjs +22 -0
- package/dist/view-manager.cjs.map +1 -0
- package/dist/view-manager.d.cts +24 -0
- package/dist/view-manager.d.ts +24 -0
- package/dist/view-manager.js +17 -0
- package/dist/view-manager.js.map +1 -0
- package/package.json +169 -3
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const vue = require("vue");
|
|
3
|
+
const core = require("@embedpdf/core");
|
|
4
|
+
const coreGeometry = require("@embedpdf/core-geometry");
|
|
5
|
+
const web = require("@embedpdf/web");
|
|
6
|
+
const host = require("@embedpdf/plugin-interaction/contract/host");
|
|
7
|
+
const AnchoredScope_vue_vue_type_script_setup_true_lang = require("./AnchoredScope.vue_vue_type_script_setup_true_lang-BwtHXw73.cjs");
|
|
8
|
+
const PagePointerSource_vue_vue_type_script_setup_true_lang = require("./PagePointerSource.vue_vue_type_script_setup_true_lang-Cw29c8Oa.cjs");
|
|
9
|
+
const capabilities = require("./capabilities-DVNJmgy7.cjs");
|
|
10
|
+
const documents = require("./documents-TQ1fMdWI.cjs");
|
|
11
|
+
const page = require("./page-Doy4_Sdz.cjs");
|
|
12
|
+
const surfaceBox = require("./surface-box-C7EvUOXp.cjs");
|
|
13
|
+
let viewCount = 0;
|
|
14
|
+
function nextViewId() {
|
|
15
|
+
viewCount += 1;
|
|
16
|
+
return viewCount;
|
|
17
|
+
}
|
|
18
|
+
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
19
|
+
...{ inheritAttrs: false },
|
|
20
|
+
__name: "PageView",
|
|
21
|
+
props: {
|
|
22
|
+
page: {},
|
|
23
|
+
documentId: {},
|
|
24
|
+
width: { default: 240 },
|
|
25
|
+
pageFrame: {}
|
|
26
|
+
},
|
|
27
|
+
setup(__props) {
|
|
28
|
+
const props = __props;
|
|
29
|
+
const scoped = capabilities.useDocumentId();
|
|
30
|
+
const documentId = vue.computed(() => props.documentId ?? scoped.value);
|
|
31
|
+
capabilities.provideDocumentScope(documentId);
|
|
32
|
+
const entry = capabilities.useKernelValue((kernel) => {
|
|
33
|
+
const id = documentId.value;
|
|
34
|
+
if (!id) return null;
|
|
35
|
+
const pages = kernel.documents.listPages(id);
|
|
36
|
+
const wanted = props.page;
|
|
37
|
+
const found = typeof wanted === "number" ? pages[wanted] : pages.find((page2) => page2.ref.objectNumber === wanted.objectNumber);
|
|
38
|
+
return found ?? null;
|
|
39
|
+
});
|
|
40
|
+
const pageIndex = vue.computed(
|
|
41
|
+
() => {
|
|
42
|
+
var _a;
|
|
43
|
+
return ((_a = entry.value) == null ? void 0 : _a.index) ?? (typeof props.page === "number" ? props.page : 0);
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
const pageObjectNumber = vue.computed(
|
|
47
|
+
() => {
|
|
48
|
+
var _a;
|
|
49
|
+
return ((_a = entry.value) == null ? void 0 : _a.ref.objectNumber) ?? (typeof props.page === "number" ? props.page + 1 : props.page.objectNumber);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
const pageRef = vue.computed(() => core.toPageRef(pageObjectNumber.value));
|
|
53
|
+
const frame = vue.computed((previous) => {
|
|
54
|
+
const { top = 0, right = 0, bottom = 0, left = 0 } = props.pageFrame ?? {};
|
|
55
|
+
if (previous && previous.top === top && previous.right === right && previous.bottom === bottom && previous.left === left) {
|
|
56
|
+
return previous;
|
|
57
|
+
}
|
|
58
|
+
return { top, right, bottom, left };
|
|
59
|
+
});
|
|
60
|
+
const transform = vue.computed(
|
|
61
|
+
() => coreGeometry.pageTransform(
|
|
62
|
+
web.pageViewTransformInput(
|
|
63
|
+
entry.value,
|
|
64
|
+
props.width,
|
|
65
|
+
typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1
|
|
66
|
+
)
|
|
67
|
+
)
|
|
68
|
+
);
|
|
69
|
+
const view = `page-view:${nextViewId()}`;
|
|
70
|
+
const content = vue.ref(null);
|
|
71
|
+
const context = vue.computed(
|
|
72
|
+
() => web.makePageContext(
|
|
73
|
+
documentId.value ?? "",
|
|
74
|
+
view,
|
|
75
|
+
pageRef.value,
|
|
76
|
+
pageIndex.value,
|
|
77
|
+
frame.value,
|
|
78
|
+
transform.value,
|
|
79
|
+
() => content.value.getBoundingClientRect()
|
|
80
|
+
)
|
|
81
|
+
);
|
|
82
|
+
page.providePage(context);
|
|
83
|
+
const projectorBinding = vue.computed(
|
|
84
|
+
() => ({
|
|
85
|
+
projector: web.clientPageProjector(context.value, () => content.value !== null),
|
|
86
|
+
revision: context.value,
|
|
87
|
+
subscribe: web.observeClientGeometry
|
|
88
|
+
})
|
|
89
|
+
);
|
|
90
|
+
const shownPages = vue.computed(() => /* @__PURE__ */ new Set([pageObjectNumber.value]));
|
|
91
|
+
const look = documents.useViewerSettings((settings) => settings.page);
|
|
92
|
+
const interaction = capabilities.useOptionalCapability(host.InteractionToken);
|
|
93
|
+
const boxes = vue.computed(() => {
|
|
94
|
+
const layout = web.pageSurfaceLayout(transform.value, frame.value);
|
|
95
|
+
return {
|
|
96
|
+
outer: {
|
|
97
|
+
position: "relative",
|
|
98
|
+
width: `${layout.outer.width}px`,
|
|
99
|
+
height: `${layout.outer.height}px`
|
|
100
|
+
},
|
|
101
|
+
// The drop shadow only: transparent and axis-aligned, so it never peeks
|
|
102
|
+
// out behind the picture and stays put when the page turns.
|
|
103
|
+
shadow: {
|
|
104
|
+
position: "absolute",
|
|
105
|
+
...surfaceBox.pixelBox(layout.shadow),
|
|
106
|
+
boxShadow: web.paint("page-shadow", look.value.shadow)
|
|
107
|
+
},
|
|
108
|
+
// Backing and picture as one box, centred on the footprint and turned about
|
|
109
|
+
// its centre; rotation 0 carries no transform.
|
|
110
|
+
content: {
|
|
111
|
+
position: "absolute",
|
|
112
|
+
...surfaceBox.pixelBox(layout.content),
|
|
113
|
+
background: web.paint("page-background", look.value.background),
|
|
114
|
+
transform: layout.turn ?? void 0,
|
|
115
|
+
// Selection highlights are drawn by the layers: no native text or image selection.
|
|
116
|
+
userSelect: "none",
|
|
117
|
+
WebkitUserSelect: "none"
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
return (_ctx, _cache) => {
|
|
122
|
+
return !documentId.value || !vue.unref(entry) ? vue.renderSlot(_ctx.$slots, "fallback", {}, void 0, void 0, 0) : (vue.openBlock(), vue.createBlock(AnchoredScope_vue_vue_type_script_setup_true_lang._sfc_main, {
|
|
123
|
+
key: 1,
|
|
124
|
+
binding: projectorBinding.value,
|
|
125
|
+
shown: shownPages.value
|
|
126
|
+
}, {
|
|
127
|
+
default: vue.withCtx(() => [
|
|
128
|
+
vue.createElementVNode("div", vue.mergeProps({
|
|
129
|
+
style: boxes.value.outer
|
|
130
|
+
}, _ctx.$attrs), [
|
|
131
|
+
vue.createElementVNode("div", {
|
|
132
|
+
style: vue.normalizeStyle(boxes.value.shadow)
|
|
133
|
+
}, null, 4),
|
|
134
|
+
vue.createElementVNode("div", {
|
|
135
|
+
ref_key: "content",
|
|
136
|
+
ref: content,
|
|
137
|
+
style: vue.normalizeStyle(boxes.value.content)
|
|
138
|
+
}, [
|
|
139
|
+
vue.unref(interaction) ? (vue.openBlock(), vue.createBlock(PagePointerSource_vue_vue_type_script_setup_true_lang._sfc_main, { key: 0 })) : vue.createCommentVNode("", true),
|
|
140
|
+
vue.renderSlot(_ctx.$slots, "default", { page: context.value })
|
|
141
|
+
], 4),
|
|
142
|
+
vue.renderSlot(_ctx.$slots, "page-chrome", { page: context.value })
|
|
143
|
+
], 16)
|
|
144
|
+
]),
|
|
145
|
+
_: 3
|
|
146
|
+
}, 8, ["binding", "shown"]));
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
exports._sfc_main = _sfc_main;
|
|
151
|
+
//# sourceMappingURL=PageView.vue_vue_type_script_setup_true_lang-CjrpumX2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageView.vue_vue_type_script_setup_true_lang-CjrpumX2.cjs","sources":["../src/page-view/PageView.vue"],"sourcesContent":["<!--\n <PageView>: one page on its own, with no Stage. The same layers, rotation and\n chrome frame as a <Stage> page, but no camera, scroll or zoom, and no\n dependency on the stage plugin. It builds the page's transform from a width\n and provides the same page context, so every layer (<RenderLayer>,\n <SelectionLayer>, …) works here as it does on the Stage. It also provides a\n measured projection, so anchored UI (<SelectionMenu>, an annotation menu)\n works here too: teleported to the body and placed `fixed`, out of reach of\n any ancestor's overflow clipping.\n-->\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport { toPageRef } from '@embedpdf/core';\nimport type { PageInfo, PageRef } from '@embedpdf/core';\nimport { pageTransform } from '@embedpdf/core-geometry';\nimport type { PageFrame, PageTransform } from '@embedpdf/core-geometry';\nimport {\n clientPageProjector,\n makePageContext,\n observeClientGeometry,\n pageSurfaceLayout,\n pageViewTransformInput,\n paint,\n} from '@embedpdf/web';\nimport { InteractionToken as InteractionHostToken } from '@embedpdf/plugin-interaction/contract/host';\nimport AnchoredScope from '../anchored/AnchoredScope.vue';\nimport PagePointerSource from '../interaction/PagePointerSource.vue';\nimport type { ProjectorBinding, ShownPages } from '../anchored/projector';\nimport { useOptionalCapability } from '../runtime/capabilities';\nimport { useViewerSettings } from '../runtime/documents';\nimport { provideDocumentScope, useDocumentId, useKernelValue } from '../runtime/kernel';\nimport { providePage } from '../runtime/page';\nimport type { PageContextValue } from '../runtime/page';\nimport { pixelBox } from '../runtime/surface-box';\n\n// `class` and `style` go on the outer box, not on the fallback.\ndefineOptions({ inheritAttrs: false });\n\nconst props = withDefaults(\n defineProps<{\n /** The page: its `ref`, which follows it when pages move, or its index, from 0. */\n page: PageRef | number;\n /** Which document to show. Defaults to the document in scope, else the active one. */\n documentId?: string;\n /** The width of the page upright, in pixels: a page turned a quarter is that tall. Default 240. */\n width?: number;\n /** Space reserved around the page for your own labels, in pixels per side; the sides left out are 0. */\n pageFrame?: Partial<PageFrame>;\n }>(),\n { width: 240 },\n);\n\ndefineSlots<{\n /** Page-space content (layers): it turns with the page. */\n default?(props: { page: PageContextValue }): unknown;\n /** The page's box and its reserved `pageFrame` (a label, a border): never turned. */\n 'page-chrome'?(props: { page: PageContextValue }): unknown;\n /** Shown while the document or the page isn't available yet (default: nothing). */\n fallback?(): unknown;\n}>();\n\nconst scoped = useDocumentId();\nconst documentId = computed(() => props.documentId ?? scoped.value);\n// Everything inside talks to the document this page belongs to.\nprovideDocumentScope(documentId);\n\n// The page's entry in the document's page list, subscribed: a rotation or a\n// reorder updates this surface as it updates a Stage page. Entries are the same\n// object per page until the page changes, so identity is the right equality.\nconst entry = useKernelValue((kernel): PageInfo | null => {\n const id = documentId.value;\n if (!id) return null;\n const pages = kernel.documents.listPages(id);\n const wanted = props.page;\n const found =\n typeof wanted === 'number'\n ? pages[wanted]\n : pages.find((page) => page.ref.objectNumber === wanted.objectNumber);\n return found ?? null;\n});\n\nconst pageIndex = computed(\n () => entry.value?.index ?? (typeof props.page === 'number' ? props.page : 0),\n);\n// The page's address is the kernel's; a placeholder (object number = index + 1)\n// only until the page is known, and the fallback shows until then anyway. Kept\n// by its number, so the context's `ref` is the same object while the page is.\nconst pageObjectNumber = computed(\n () =>\n entry.value?.ref.objectNumber ??\n (typeof props.page === 'number' ? props.page + 1 : props.page.objectNumber),\n);\nconst pageRef = computed(() => toPageRef(pageObjectNumber.value));\n\n// The sides left out reserve nothing. A new value only when a side changes, so\n// an inline `:page-frame=\"{ bottom: 20 }\"` doesn't rebuild the page context on\n// every render of its parent.\nconst frame = computed((previous?: PageFrame): PageFrame => {\n const { top = 0, right = 0, bottom = 0, left = 0 } = props.pageFrame ?? {};\n if (\n previous &&\n previous.top === top &&\n previous.right === right &&\n previous.bottom === bottom &&\n previous.left === left\n ) {\n return previous;\n }\n return { top, right, bottom, left };\n});\n\n/**\n * No camera: the page's transform comes straight from the width\n * (`pageViewTransformInput` from `@embedpdf/web`, the same in every framework).\n */\nconst transform = computed(\n (): PageTransform =>\n pageTransform(\n pageViewTransformInput(\n entry.value,\n props.width,\n typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1,\n ),\n ),\n);\n\n// This page view's own identity: two page views of the same page (a compare\n// strip) plan their pictures apart, as two stage views do.\nconst view = `page-view:${nextViewId()}`;\n\nconst content = ref<HTMLDivElement | null>(null);\n\nconst context = computed(\n (): PageContextValue =>\n makePageContext(\n documentId.value ?? '',\n view,\n pageRef.value,\n pageIndex.value,\n frame.value,\n transform.value,\n () => content.value!.getBoundingClientRect(),\n ),\n);\nprovidePage(context);\n\n/**\n * No camera, so anchored UI is placed by measuring the page element in client\n * space. The projection answers nothing until the page element exists. A new\n * page context is a state-driven change (the binding's revision); the moves\n * the browser makes on its own (the document scrolls, the window resizes) come\n * through `observeClientGeometry`.\n */\nconst projectorBinding = computed(\n (): ProjectorBinding => ({\n projector: clientPageProjector(context.value, () => content.value !== null),\n revision: context.value,\n subscribe: observeClientGeometry,\n }),\n);\n// A page view shows its one page.\nconst shownPages = computed((): ShownPages => new Set([pageObjectNumber.value]));\n\n// The viewer's `page` settings; `--epdf-page-*` CSS variables win over them.\nconst look = useViewerSettings((settings) => settings.page);\n\n/** With the interaction plugin registered, the page view is the page's pointer surface. */\nconst interaction = useOptionalCapability(InteractionHostToken);\n\n/** The outer box (page and frame), the shadow at the page's footprint, and the turned content box. */\nconst boxes = computed(() => {\n const layout = pageSurfaceLayout(transform.value, frame.value);\n return {\n outer: {\n position: 'relative',\n width: `${layout.outer.width}px`,\n height: `${layout.outer.height}px`,\n },\n // The drop shadow only: transparent and axis-aligned, so it never peeks\n // out behind the picture and stays put when the page turns.\n shadow: {\n position: 'absolute',\n ...pixelBox(layout.shadow),\n boxShadow: paint('page-shadow', look.value.shadow),\n },\n // Backing and picture as one box, centred on the footprint and turned about\n // its centre; rotation 0 carries no transform.\n content: {\n position: 'absolute',\n ...pixelBox(layout.content),\n background: paint('page-background', look.value.background),\n transform: layout.turn ?? undefined,\n // Selection highlights are drawn by the layers: no native text or image selection.\n userSelect: 'none',\n WebkitUserSelect: 'none',\n },\n } satisfies Record<string, CSSProperties>;\n});\n</script>\n\n<script lang=\"ts\">\nlet viewCount = 0;\n/** A number per page view instance, for its view identity. */\nfunction nextViewId(): number {\n viewCount += 1;\n return viewCount;\n}\n</script>\n\n<template>\n <slot v-if=\"!documentId || !entry\" name=\"fallback\" />\n <AnchoredScope v-else :binding=\"projectorBinding\" :shown=\"shownPages\">\n <!-- Your `class` and `style` go on the outer box, and your style wins. -->\n <div :style=\"boxes.outer\" v-bind=\"$attrs\">\n <div :style=\"boxes.shadow\" />\n <div ref=\"content\" :style=\"boxes.content\">\n <!-- The page's pointer surface, below the layers, like the Stage's own listener: a press\n on a layer that lets the pointer through reaches the tools, a link keeps its own. -->\n <PagePointerSource v-if=\"interaction\" />\n <slot :page=\"context\" />\n </div>\n <slot name=\"page-chrome\" :page=\"context\" />\n </div>\n </AnchoredScope>\n</template>\n"],"names":["useDocumentId","computed","provideDocumentScope","useKernelValue","page","toPageRef","pageTransform","pageViewTransformInput","ref","makePageContext","providePage","clientPageProjector","observeClientGeometry","useViewerSettings","useOptionalCapability","InteractionHostToken","pageSurfaceLayout","pixelBox","paint","_unref","_renderSlot","_createBlock","AnchoredScope","_createElementVNode","_mergeProps","$attrs","_normalizeStyle","PagePointerSource"],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { defineComponent, computed, ref, unref, renderSlot, openBlock, createBlock, withCtx, createElementVNode, mergeProps, normalizeStyle, createCommentVNode } from "vue";
|
|
2
|
+
import { toPageRef } from "@embedpdf/core";
|
|
3
|
+
import { pageTransform } from "@embedpdf/core-geometry";
|
|
4
|
+
import { pageViewTransformInput, makePageContext, observeClientGeometry, clientPageProjector, pageSurfaceLayout, paint } from "@embedpdf/web";
|
|
5
|
+
import { InteractionToken } from "@embedpdf/plugin-interaction/contract/host";
|
|
6
|
+
import { _ as _sfc_main$1 } from "./AnchoredScope.vue_vue_type_script_setup_true_lang-Ulkr3a6R.js";
|
|
7
|
+
import { _ as _sfc_main$2 } from "./PagePointerSource.vue_vue_type_script_setup_true_lang-CJt3vdBW.js";
|
|
8
|
+
import { d as useDocumentId, p as provideDocumentScope, g as useKernelValue, h as useOptionalCapability } from "./capabilities-C7YzgPCX.js";
|
|
9
|
+
import { e as useViewerSettings } from "./documents-DUu5H4yH.js";
|
|
10
|
+
import { p as providePage } from "./page-D9XIuLSj.js";
|
|
11
|
+
import { p as pixelBox } from "./surface-box-B9oa4YoG.js";
|
|
12
|
+
let viewCount = 0;
|
|
13
|
+
function nextViewId() {
|
|
14
|
+
viewCount += 1;
|
|
15
|
+
return viewCount;
|
|
16
|
+
}
|
|
17
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
18
|
+
...{ inheritAttrs: false },
|
|
19
|
+
__name: "PageView",
|
|
20
|
+
props: {
|
|
21
|
+
page: {},
|
|
22
|
+
documentId: {},
|
|
23
|
+
width: { default: 240 },
|
|
24
|
+
pageFrame: {}
|
|
25
|
+
},
|
|
26
|
+
setup(__props) {
|
|
27
|
+
const props = __props;
|
|
28
|
+
const scoped = useDocumentId();
|
|
29
|
+
const documentId = computed(() => props.documentId ?? scoped.value);
|
|
30
|
+
provideDocumentScope(documentId);
|
|
31
|
+
const entry = useKernelValue((kernel) => {
|
|
32
|
+
const id = documentId.value;
|
|
33
|
+
if (!id) return null;
|
|
34
|
+
const pages = kernel.documents.listPages(id);
|
|
35
|
+
const wanted = props.page;
|
|
36
|
+
const found = typeof wanted === "number" ? pages[wanted] : pages.find((page) => page.ref.objectNumber === wanted.objectNumber);
|
|
37
|
+
return found ?? null;
|
|
38
|
+
});
|
|
39
|
+
const pageIndex = computed(
|
|
40
|
+
() => {
|
|
41
|
+
var _a;
|
|
42
|
+
return ((_a = entry.value) == null ? void 0 : _a.index) ?? (typeof props.page === "number" ? props.page : 0);
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
const pageObjectNumber = computed(
|
|
46
|
+
() => {
|
|
47
|
+
var _a;
|
|
48
|
+
return ((_a = entry.value) == null ? void 0 : _a.ref.objectNumber) ?? (typeof props.page === "number" ? props.page + 1 : props.page.objectNumber);
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
const pageRef = computed(() => toPageRef(pageObjectNumber.value));
|
|
52
|
+
const frame = computed((previous) => {
|
|
53
|
+
const { top = 0, right = 0, bottom = 0, left = 0 } = props.pageFrame ?? {};
|
|
54
|
+
if (previous && previous.top === top && previous.right === right && previous.bottom === bottom && previous.left === left) {
|
|
55
|
+
return previous;
|
|
56
|
+
}
|
|
57
|
+
return { top, right, bottom, left };
|
|
58
|
+
});
|
|
59
|
+
const transform = computed(
|
|
60
|
+
() => pageTransform(
|
|
61
|
+
pageViewTransformInput(
|
|
62
|
+
entry.value,
|
|
63
|
+
props.width,
|
|
64
|
+
typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1
|
|
65
|
+
)
|
|
66
|
+
)
|
|
67
|
+
);
|
|
68
|
+
const view = `page-view:${nextViewId()}`;
|
|
69
|
+
const content = ref(null);
|
|
70
|
+
const context = computed(
|
|
71
|
+
() => makePageContext(
|
|
72
|
+
documentId.value ?? "",
|
|
73
|
+
view,
|
|
74
|
+
pageRef.value,
|
|
75
|
+
pageIndex.value,
|
|
76
|
+
frame.value,
|
|
77
|
+
transform.value,
|
|
78
|
+
() => content.value.getBoundingClientRect()
|
|
79
|
+
)
|
|
80
|
+
);
|
|
81
|
+
providePage(context);
|
|
82
|
+
const projectorBinding = computed(
|
|
83
|
+
() => ({
|
|
84
|
+
projector: clientPageProjector(context.value, () => content.value !== null),
|
|
85
|
+
revision: context.value,
|
|
86
|
+
subscribe: observeClientGeometry
|
|
87
|
+
})
|
|
88
|
+
);
|
|
89
|
+
const shownPages = computed(() => /* @__PURE__ */ new Set([pageObjectNumber.value]));
|
|
90
|
+
const look = useViewerSettings((settings) => settings.page);
|
|
91
|
+
const interaction = useOptionalCapability(InteractionToken);
|
|
92
|
+
const boxes = computed(() => {
|
|
93
|
+
const layout = pageSurfaceLayout(transform.value, frame.value);
|
|
94
|
+
return {
|
|
95
|
+
outer: {
|
|
96
|
+
position: "relative",
|
|
97
|
+
width: `${layout.outer.width}px`,
|
|
98
|
+
height: `${layout.outer.height}px`
|
|
99
|
+
},
|
|
100
|
+
// The drop shadow only: transparent and axis-aligned, so it never peeks
|
|
101
|
+
// out behind the picture and stays put when the page turns.
|
|
102
|
+
shadow: {
|
|
103
|
+
position: "absolute",
|
|
104
|
+
...pixelBox(layout.shadow),
|
|
105
|
+
boxShadow: paint("page-shadow", look.value.shadow)
|
|
106
|
+
},
|
|
107
|
+
// Backing and picture as one box, centred on the footprint and turned about
|
|
108
|
+
// its centre; rotation 0 carries no transform.
|
|
109
|
+
content: {
|
|
110
|
+
position: "absolute",
|
|
111
|
+
...pixelBox(layout.content),
|
|
112
|
+
background: paint("page-background", look.value.background),
|
|
113
|
+
transform: layout.turn ?? void 0,
|
|
114
|
+
// Selection highlights are drawn by the layers: no native text or image selection.
|
|
115
|
+
userSelect: "none",
|
|
116
|
+
WebkitUserSelect: "none"
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
});
|
|
120
|
+
return (_ctx, _cache) => {
|
|
121
|
+
return !documentId.value || !unref(entry) ? renderSlot(_ctx.$slots, "fallback", {}, void 0, void 0, 0) : (openBlock(), createBlock(_sfc_main$1, {
|
|
122
|
+
key: 1,
|
|
123
|
+
binding: projectorBinding.value,
|
|
124
|
+
shown: shownPages.value
|
|
125
|
+
}, {
|
|
126
|
+
default: withCtx(() => [
|
|
127
|
+
createElementVNode("div", mergeProps({
|
|
128
|
+
style: boxes.value.outer
|
|
129
|
+
}, _ctx.$attrs), [
|
|
130
|
+
createElementVNode("div", {
|
|
131
|
+
style: normalizeStyle(boxes.value.shadow)
|
|
132
|
+
}, null, 4),
|
|
133
|
+
createElementVNode("div", {
|
|
134
|
+
ref_key: "content",
|
|
135
|
+
ref: content,
|
|
136
|
+
style: normalizeStyle(boxes.value.content)
|
|
137
|
+
}, [
|
|
138
|
+
unref(interaction) ? (openBlock(), createBlock(_sfc_main$2, { key: 0 })) : createCommentVNode("", true),
|
|
139
|
+
renderSlot(_ctx.$slots, "default", { page: context.value })
|
|
140
|
+
], 4),
|
|
141
|
+
renderSlot(_ctx.$slots, "page-chrome", { page: context.value })
|
|
142
|
+
], 16)
|
|
143
|
+
]),
|
|
144
|
+
_: 3
|
|
145
|
+
}, 8, ["binding", "shown"]));
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
export {
|
|
150
|
+
_sfc_main as _
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=PageView.vue_vue_type_script_setup_true_lang-O4AFc0_R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageView.vue_vue_type_script_setup_true_lang-O4AFc0_R.js","sources":["../src/page-view/PageView.vue"],"sourcesContent":["<!--\n <PageView>: one page on its own, with no Stage. The same layers, rotation and\n chrome frame as a <Stage> page, but no camera, scroll or zoom, and no\n dependency on the stage plugin. It builds the page's transform from a width\n and provides the same page context, so every layer (<RenderLayer>,\n <SelectionLayer>, …) works here as it does on the Stage. It also provides a\n measured projection, so anchored UI (<SelectionMenu>, an annotation menu)\n works here too: teleported to the body and placed `fixed`, out of reach of\n any ancestor's overflow clipping.\n-->\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport { toPageRef } from '@embedpdf/core';\nimport type { PageInfo, PageRef } from '@embedpdf/core';\nimport { pageTransform } from '@embedpdf/core-geometry';\nimport type { PageFrame, PageTransform } from '@embedpdf/core-geometry';\nimport {\n clientPageProjector,\n makePageContext,\n observeClientGeometry,\n pageSurfaceLayout,\n pageViewTransformInput,\n paint,\n} from '@embedpdf/web';\nimport { InteractionToken as InteractionHostToken } from '@embedpdf/plugin-interaction/contract/host';\nimport AnchoredScope from '../anchored/AnchoredScope.vue';\nimport PagePointerSource from '../interaction/PagePointerSource.vue';\nimport type { ProjectorBinding, ShownPages } from '../anchored/projector';\nimport { useOptionalCapability } from '../runtime/capabilities';\nimport { useViewerSettings } from '../runtime/documents';\nimport { provideDocumentScope, useDocumentId, useKernelValue } from '../runtime/kernel';\nimport { providePage } from '../runtime/page';\nimport type { PageContextValue } from '../runtime/page';\nimport { pixelBox } from '../runtime/surface-box';\n\n// `class` and `style` go on the outer box, not on the fallback.\ndefineOptions({ inheritAttrs: false });\n\nconst props = withDefaults(\n defineProps<{\n /** The page: its `ref`, which follows it when pages move, or its index, from 0. */\n page: PageRef | number;\n /** Which document to show. Defaults to the document in scope, else the active one. */\n documentId?: string;\n /** The width of the page upright, in pixels: a page turned a quarter is that tall. Default 240. */\n width?: number;\n /** Space reserved around the page for your own labels, in pixels per side; the sides left out are 0. */\n pageFrame?: Partial<PageFrame>;\n }>(),\n { width: 240 },\n);\n\ndefineSlots<{\n /** Page-space content (layers): it turns with the page. */\n default?(props: { page: PageContextValue }): unknown;\n /** The page's box and its reserved `pageFrame` (a label, a border): never turned. */\n 'page-chrome'?(props: { page: PageContextValue }): unknown;\n /** Shown while the document or the page isn't available yet (default: nothing). */\n fallback?(): unknown;\n}>();\n\nconst scoped = useDocumentId();\nconst documentId = computed(() => props.documentId ?? scoped.value);\n// Everything inside talks to the document this page belongs to.\nprovideDocumentScope(documentId);\n\n// The page's entry in the document's page list, subscribed: a rotation or a\n// reorder updates this surface as it updates a Stage page. Entries are the same\n// object per page until the page changes, so identity is the right equality.\nconst entry = useKernelValue((kernel): PageInfo | null => {\n const id = documentId.value;\n if (!id) return null;\n const pages = kernel.documents.listPages(id);\n const wanted = props.page;\n const found =\n typeof wanted === 'number'\n ? pages[wanted]\n : pages.find((page) => page.ref.objectNumber === wanted.objectNumber);\n return found ?? null;\n});\n\nconst pageIndex = computed(\n () => entry.value?.index ?? (typeof props.page === 'number' ? props.page : 0),\n);\n// The page's address is the kernel's; a placeholder (object number = index + 1)\n// only until the page is known, and the fallback shows until then anyway. Kept\n// by its number, so the context's `ref` is the same object while the page is.\nconst pageObjectNumber = computed(\n () =>\n entry.value?.ref.objectNumber ??\n (typeof props.page === 'number' ? props.page + 1 : props.page.objectNumber),\n);\nconst pageRef = computed(() => toPageRef(pageObjectNumber.value));\n\n// The sides left out reserve nothing. A new value only when a side changes, so\n// an inline `:page-frame=\"{ bottom: 20 }\"` doesn't rebuild the page context on\n// every render of its parent.\nconst frame = computed((previous?: PageFrame): PageFrame => {\n const { top = 0, right = 0, bottom = 0, left = 0 } = props.pageFrame ?? {};\n if (\n previous &&\n previous.top === top &&\n previous.right === right &&\n previous.bottom === bottom &&\n previous.left === left\n ) {\n return previous;\n }\n return { top, right, bottom, left };\n});\n\n/**\n * No camera: the page's transform comes straight from the width\n * (`pageViewTransformInput` from `@embedpdf/web`, the same in every framework).\n */\nconst transform = computed(\n (): PageTransform =>\n pageTransform(\n pageViewTransformInput(\n entry.value,\n props.width,\n typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1,\n ),\n ),\n);\n\n// This page view's own identity: two page views of the same page (a compare\n// strip) plan their pictures apart, as two stage views do.\nconst view = `page-view:${nextViewId()}`;\n\nconst content = ref<HTMLDivElement | null>(null);\n\nconst context = computed(\n (): PageContextValue =>\n makePageContext(\n documentId.value ?? '',\n view,\n pageRef.value,\n pageIndex.value,\n frame.value,\n transform.value,\n () => content.value!.getBoundingClientRect(),\n ),\n);\nprovidePage(context);\n\n/**\n * No camera, so anchored UI is placed by measuring the page element in client\n * space. The projection answers nothing until the page element exists. A new\n * page context is a state-driven change (the binding's revision); the moves\n * the browser makes on its own (the document scrolls, the window resizes) come\n * through `observeClientGeometry`.\n */\nconst projectorBinding = computed(\n (): ProjectorBinding => ({\n projector: clientPageProjector(context.value, () => content.value !== null),\n revision: context.value,\n subscribe: observeClientGeometry,\n }),\n);\n// A page view shows its one page.\nconst shownPages = computed((): ShownPages => new Set([pageObjectNumber.value]));\n\n// The viewer's `page` settings; `--epdf-page-*` CSS variables win over them.\nconst look = useViewerSettings((settings) => settings.page);\n\n/** With the interaction plugin registered, the page view is the page's pointer surface. */\nconst interaction = useOptionalCapability(InteractionHostToken);\n\n/** The outer box (page and frame), the shadow at the page's footprint, and the turned content box. */\nconst boxes = computed(() => {\n const layout = pageSurfaceLayout(transform.value, frame.value);\n return {\n outer: {\n position: 'relative',\n width: `${layout.outer.width}px`,\n height: `${layout.outer.height}px`,\n },\n // The drop shadow only: transparent and axis-aligned, so it never peeks\n // out behind the picture and stays put when the page turns.\n shadow: {\n position: 'absolute',\n ...pixelBox(layout.shadow),\n boxShadow: paint('page-shadow', look.value.shadow),\n },\n // Backing and picture as one box, centred on the footprint and turned about\n // its centre; rotation 0 carries no transform.\n content: {\n position: 'absolute',\n ...pixelBox(layout.content),\n background: paint('page-background', look.value.background),\n transform: layout.turn ?? undefined,\n // Selection highlights are drawn by the layers: no native text or image selection.\n userSelect: 'none',\n WebkitUserSelect: 'none',\n },\n } satisfies Record<string, CSSProperties>;\n});\n</script>\n\n<script lang=\"ts\">\nlet viewCount = 0;\n/** A number per page view instance, for its view identity. */\nfunction nextViewId(): number {\n viewCount += 1;\n return viewCount;\n}\n</script>\n\n<template>\n <slot v-if=\"!documentId || !entry\" name=\"fallback\" />\n <AnchoredScope v-else :binding=\"projectorBinding\" :shown=\"shownPages\">\n <!-- Your `class` and `style` go on the outer box, and your style wins. -->\n <div :style=\"boxes.outer\" v-bind=\"$attrs\">\n <div :style=\"boxes.shadow\" />\n <div ref=\"content\" :style=\"boxes.content\">\n <!-- The page's pointer surface, below the layers, like the Stage's own listener: a press\n on a layer that lets the pointer through reaches the tools, a link keeps its own. -->\n <PagePointerSource v-if=\"interaction\" />\n <slot :page=\"context\" />\n </div>\n <slot name=\"page-chrome\" :page=\"context\" />\n </div>\n </AnchoredScope>\n</template>\n"],"names":["InteractionHostToken","_unref","_renderSlot","_createBlock","AnchoredScope","_createElementVNode","_mergeProps","$attrs","_normalizeStyle","PagePointerSource"],"mappings":";;;;;;;;;;;AA0MA,IAAI,YAAY;AAEhB,SAAS,aAAqB;AAC5B,eAAa;AACb,SAAO;AACT;;;;;;;;;;;AAxKA,UAAM,QAAQ;AAuBd,UAAM,SAAS,cAAA;AACf,UAAM,aAAa,SAAS,MAAM,MAAM,cAAc,OAAO,KAAK;AAElE,yBAAqB,UAAU;AAK/B,UAAM,QAAQ,eAAe,CAAC,WAA4B;AACxD,YAAM,KAAK,WAAW;AACtB,UAAI,CAAC,GAAI,QAAO;AAChB,YAAM,QAAQ,OAAO,UAAU,UAAU,EAAE;AAC3C,YAAM,SAAS,MAAM;AACrB,YAAM,QACJ,OAAO,WAAW,WACd,MAAM,MAAM,IACZ,MAAM,KAAK,CAAC,SAAS,KAAK,IAAI,iBAAiB,OAAO,YAAY;AACxE,aAAO,SAAS;AAAA,IAClB,CAAC;AAED,UAAM,YAAY;AAAA,MAChB;;AAAM,4BAAM,UAAN,mBAAa,WAAU,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO;AAAA;AAAA,IAAA;AAK7E,UAAM,mBAAmB;AAAA,MACvB,MAAA;;AACE,4BAAM,UAAN,mBAAa,IAAI,kBAChB,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO,IAAI,MAAM,KAAK;AAAA;AAAA,IAAA;AAElE,UAAM,UAAU,SAAS,MAAM,UAAU,iBAAiB,KAAK,CAAC;AAKhE,UAAM,QAAQ,SAAS,CAAC,aAAoC;AAC1D,YAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,EAAA,IAAM,MAAM,aAAa,CAAA;AACxE,UACE,YACA,SAAS,QAAQ,OACjB,SAAS,UAAU,SACnB,SAAS,WAAW,UACpB,SAAS,SAAS,MAClB;AACA,eAAO;AAAA,MACT;AACA,aAAO,EAAE,KAAK,OAAO,QAAQ,KAAA;AAAA,IAC/B,CAAC;AAMD,UAAM,YAAY;AAAA,MAChB,MACE;AAAA,QACE;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,OAAO,WAAW,cAAc,OAAO,oBAAoB,IAAI;AAAA,QAAA;AAAA,MACjE;AAAA,IACF;AAKJ,UAAM,OAAO,aAAa,WAAA,CAAY;AAEtC,UAAM,UAAU,IAA2B,IAAI;AAE/C,UAAM,UAAU;AAAA,MACd,MACE;AAAA,QACE,WAAW,SAAS;AAAA,QACpB;AAAA,QACA,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAM,QAAQ,MAAO,sBAAA;AAAA,MAAsB;AAAA,IAC7C;AAEJ,gBAAY,OAAO;AASnB,UAAM,mBAAmB;AAAA,MACvB,OAAyB;AAAA,QACvB,WAAW,oBAAoB,QAAQ,OAAO,MAAM,QAAQ,UAAU,IAAI;AAAA,QAC1E,UAAU,QAAQ;AAAA,QAClB,WAAW;AAAA,MAAA;AAAA,IACb;AAGF,UAAM,aAAa,SAAS,MAAkB,oBAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC;AAG/E,UAAM,OAAO,kBAAkB,CAAC,aAAa,SAAS,IAAI;AAG1D,UAAM,cAAc,sBAAsBA,gBAAoB;AAG9D,UAAM,QAAQ,SAAS,MAAM;AAC3B,YAAM,SAAS,kBAAkB,UAAU,OAAO,MAAM,KAAK;AAC7D,aAAO;AAAA,QACL,OAAO;AAAA,UACL,UAAU;AAAA,UACV,OAAO,GAAG,OAAO,MAAM,KAAK;AAAA,UAC5B,QAAQ,GAAG,OAAO,MAAM,MAAM;AAAA,QAAA;AAAA;AAAA;AAAA,QAIhC,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,GAAG,SAAS,OAAO,MAAM;AAAA,UACzB,WAAW,MAAM,eAAe,KAAK,MAAM,MAAM;AAAA,QAAA;AAAA;AAAA;AAAA,QAInD,SAAS;AAAA,UACP,UAAU;AAAA,UACV,GAAG,SAAS,OAAO,OAAO;AAAA,UAC1B,YAAY,MAAM,mBAAmB,KAAK,MAAM,UAAU;AAAA,UAC1D,WAAW,OAAO,QAAQ;AAAA;AAAA,UAE1B,YAAY;AAAA,UACZ,kBAAkB;AAAA,QAAA;AAAA,MACpB;AAAA,IAEJ,CAAC;;AAac,aAAA,CAAA,WAAA,UAAeC,MAAA,KAAA,IAA5BC,WAAqD,KAAA,QAAA,YAAA,CAAA,GAAA,QAAA,QAAA,CAAA,kBACrDC,YAYgBC,aAAA;AAAA;QAZO,SAAS,iBAAA;AAAA,QAAmB,OAAO,WAAA;AAAA,MAAA;yBAExD,MASM;AAAA,UATNC,mBASM,OATNC,WASM;AAAA,YATA,OAAO,MAAA,MAAM;AAAA,UAAA,GAAeC,KAAAA,MAAM,GAAA;AAAA,YACtCF,mBAA6B,OAAA;AAAA,cAAvB,OAAKG,eAAE,MAAA,MAAM,MAAM;AAAA,YAAA;YACzBH,mBAKM,OAAA;AAAA,uBALG;AAAA,cAAJ,KAAI;AAAA,cAAW,OAAKG,eAAE,MAAA,MAAM,OAAO;AAAA,YAAA;cAGbP,MAAA,WAAA,kBAAzBE,YAAwCM,aAAA,EAAA,KAAA,EAAA,CAAA;cACxCP,WAAwB,KAAA,QAAA,WAAA,EAAjB,MAAM,QAAA,OAAO;AAAA,YAAA;YAEtBA,WAA2C,KAAA,QAAA,eAAA,EAAjB,MAAM,QAAA,OAAO;AAAA,UAAA;;;;;;;"}
|