kviewer 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.d.mts +1 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +15 -15
- package/dist/runtime/annotation/engine/editor/selector.d.ts +1 -0
- package/dist/runtime/annotation/engine/editor/selector.js +17 -5
- package/dist/runtime/annotation/engine/painter.d.ts +2 -0
- package/dist/runtime/annotation/engine/painter.js +4 -0
- package/dist/runtime/annotation/pdf-export/export-form-fields.js +26 -41
- package/dist/runtime/annotation/pdf-export/print.d.ts +12 -0
- package/dist/runtime/annotation/pdf-export/print.js +63 -0
- package/dist/runtime/assets/kviewer.css +1 -1
- package/dist/runtime/components/AnnotationToolbar.vue +12 -1
- package/dist/runtime/components/FormFieldLayer.vue +7 -2
- package/dist/runtime/components/PdfPage.vue +24 -1
- package/dist/runtime/components/SelectionToolbarItems.d.vue.ts +8 -0
- package/dist/runtime/components/SelectionToolbarItems.vue +43 -0
- package/dist/runtime/components/SelectionToolbarItems.vue.d.ts +8 -0
- package/dist/runtime/components/Viewer.d.vue.ts +17 -1
- package/dist/runtime/components/Viewer.vue +45 -2
- package/dist/runtime/components/Viewer.vue.d.ts +17 -1
- package/dist/runtime/components/ViewerBar.d.vue.ts +4 -4
- package/dist/runtime/components/ViewerBar.vue +2 -1
- package/dist/runtime/components/ViewerBar.vue.d.ts +4 -4
- package/dist/runtime/components/ViewerTabs.d.vue.ts +4 -0
- package/dist/runtime/components/ViewerTabs.vue +2 -0
- package/dist/runtime/components/ViewerTabs.vue.d.ts +4 -0
- package/dist/runtime/components/form-fields/FormFieldWrapper.vue +15 -2
- package/dist/runtime/components/form-fields/PlacedFieldChrome.vue +9 -9
- package/dist/runtime/components/form-fields/PlacedFieldToolbar.d.vue.ts +7 -0
- package/dist/runtime/components/form-fields/PlacedFieldToolbar.vue +51 -0
- package/dist/runtime/components/form-fields/PlacedFieldToolbar.vue.d.ts +7 -0
- package/dist/runtime/components/tools/ToolbarMenu.vue +17 -0
- package/dist/runtime/composables/useScriptingManager.d.ts +5 -0
- package/dist/runtime/composables/useScriptingManager.js +6 -0
- package/dist/runtime/composables/useViewerState.d.ts +2 -0
- package/dist/runtime/composables/useViewerState.js +8 -0
- package/dist/runtime/embed/bridge-client.d.ts +4 -0
- package/dist/runtime/embed/bridge-client.js +6 -0
- package/dist/runtime/embed/bridge-host.d.ts +10 -1
- package/dist/runtime/embed/bridge-host.js +102 -28
- package/dist/runtime/embed/protocol.d.ts +17 -0
- package/dist/runtime/embed/protocol.js +1 -0
- package/dist/runtime/i18n/messages.d.ts +2 -0
- package/dist/runtime/i18n/messages.js +2 -0
- package/dist/runtime/public-types.d.ts +4 -3
- package/dist/runtime/public-types.js +4 -1
- package/dist/runtime/selection-items.d.ts +61 -0
- package/dist/runtime/selection-items.js +1 -0
- package/dist/runtime/toolbar-tools.d.ts +4 -1
- package/dist/types.d.mts +1 -1
- package/package.json +1 -1
|
@@ -3,8 +3,42 @@ import {
|
|
|
3
3
|
EVENT_KIND,
|
|
4
4
|
KVIEWER_EMBED_PROTOCOL_VERSION,
|
|
5
5
|
RESPONSE_KIND,
|
|
6
|
+
UNSUPPORTED_METHOD_ERROR_NAME,
|
|
6
7
|
isRequest
|
|
7
8
|
} from "./protocol.js";
|
|
9
|
+
const METHOD_REQUIREMENT = {
|
|
10
|
+
getAnnotations: "getAnnotations",
|
|
11
|
+
importAnnotations: "importAnnotations",
|
|
12
|
+
exportPdf: "exportPdf",
|
|
13
|
+
printPdf: "printPdf",
|
|
14
|
+
getFormFieldValues: "getFormFieldValues",
|
|
15
|
+
setFormFieldValue: "setFormFieldValue",
|
|
16
|
+
addFormField: "addFormField",
|
|
17
|
+
updateFormField: "updateFormField",
|
|
18
|
+
removeFormField: "removeFormField",
|
|
19
|
+
getFormFields: "getFormFields",
|
|
20
|
+
setFieldDefaults: "setFieldDefaults",
|
|
21
|
+
setClickToSign: "setClickToSign",
|
|
22
|
+
getSignedStatus: "getSignedStatus",
|
|
23
|
+
getSignatureFieldStatus: "getSignatureFieldStatus",
|
|
24
|
+
getFormEditMode: "formEditMode",
|
|
25
|
+
setFormEditMode: "setFormEditMode",
|
|
26
|
+
toggleFormEditMode: "toggleFormEditMode",
|
|
27
|
+
allPagesRead: "allPagesRead",
|
|
28
|
+
getViewedPages: "getViewedPages",
|
|
29
|
+
resetViewedPages: "resetViewedPages"
|
|
30
|
+
};
|
|
31
|
+
const ALL_METHODS = Object.keys(METHOD_REQUIREMENT);
|
|
32
|
+
function supportsMethod(viewer, method) {
|
|
33
|
+
const member = METHOD_REQUIREMENT[method];
|
|
34
|
+
if (!member) return false;
|
|
35
|
+
return member === "formEditMode" ? viewer.formEditMode !== void 0 : typeof viewer[member] === "function";
|
|
36
|
+
}
|
|
37
|
+
function unsupportedMethodError(method) {
|
|
38
|
+
const err = new Error(`KViewer embed host does not implement "${method}"`);
|
|
39
|
+
err.name = UNSUPPORTED_METHOD_ERROR_NAME;
|
|
40
|
+
return err;
|
|
41
|
+
}
|
|
8
42
|
export function useKViewerEmbedBridge(viewerRef, options) {
|
|
9
43
|
const allowAny = options.parentOrigin === "*";
|
|
10
44
|
const winMaybe = options.windowRef ?? (typeof window !== "undefined" ? window : void 0);
|
|
@@ -28,10 +62,17 @@ export function useKViewerEmbedBridge(viewerRef, options) {
|
|
|
28
62
|
parent.postMessage(message, options.parentOrigin);
|
|
29
63
|
}
|
|
30
64
|
async function dispatch(req) {
|
|
31
|
-
const
|
|
32
|
-
if (!
|
|
65
|
+
const host = viewerRef.value;
|
|
66
|
+
if (!host) {
|
|
33
67
|
throw new Error("KViewer ref is not yet available");
|
|
34
68
|
}
|
|
69
|
+
if (!(req.method in METHOD_REQUIREMENT)) {
|
|
70
|
+
throw new Error(`Unknown KViewer embed method: ${req.method}`);
|
|
71
|
+
}
|
|
72
|
+
if (!supportsMethod(host, req.method)) {
|
|
73
|
+
throw unsupportedMethodError(req.method);
|
|
74
|
+
}
|
|
75
|
+
const viewer = host;
|
|
35
76
|
switch (req.method) {
|
|
36
77
|
case "getAnnotations":
|
|
37
78
|
return viewer.getAnnotations();
|
|
@@ -43,6 +84,11 @@ export function useKViewerEmbedBridge(viewerRef, options) {
|
|
|
43
84
|
const [opts] = req.args;
|
|
44
85
|
return viewer.exportPdf(opts);
|
|
45
86
|
}
|
|
87
|
+
case "printPdf": {
|
|
88
|
+
const [opts] = req.args;
|
|
89
|
+
await viewer.printPdf(opts);
|
|
90
|
+
return void 0;
|
|
91
|
+
}
|
|
46
92
|
case "getFormFieldValues":
|
|
47
93
|
return viewer.getFormFieldValues();
|
|
48
94
|
case "setFormFieldValue": {
|
|
@@ -138,32 +184,60 @@ export function useKViewerEmbedBridge(viewerRef, options) {
|
|
|
138
184
|
for (const stop of stopViewerStateWatches) stop();
|
|
139
185
|
stopViewerStateWatches = [];
|
|
140
186
|
if (!viewer) return;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
(
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
)
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
)
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
)
|
|
166
|
-
|
|
187
|
+
const events = ["ready"];
|
|
188
|
+
if (viewer.formEditMode !== void 0) {
|
|
189
|
+
events.push("formEditMode-changed");
|
|
190
|
+
stopViewerStateWatches.push(
|
|
191
|
+
watch(
|
|
192
|
+
() => unref(viewer.formEditMode),
|
|
193
|
+
(enabled) => postEvent("formEditMode-changed", { enabled: enabled ?? false })
|
|
194
|
+
)
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
if (typeof viewer.onFieldPlaced === "function") {
|
|
198
|
+
events.push("field-placed");
|
|
199
|
+
stopViewerStateWatches.push(
|
|
200
|
+
viewer.onFieldPlaced(
|
|
201
|
+
(field) => postEvent("field-placed", { field })
|
|
202
|
+
)
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
if (typeof viewer.onSignedStatusChanged === "function") {
|
|
206
|
+
events.push("signedStatus-changed");
|
|
207
|
+
stopViewerStateWatches.push(
|
|
208
|
+
viewer.onSignedStatusChanged(
|
|
209
|
+
(payload) => postEvent("signedStatus-changed", payload)
|
|
210
|
+
)
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
if (typeof viewer.allPagesRead === "function") {
|
|
214
|
+
events.push("all-pages-read");
|
|
215
|
+
stopViewerStateWatches.push(
|
|
216
|
+
watch(
|
|
217
|
+
() => viewer.allPagesRead?.() ?? false,
|
|
218
|
+
(read, prev) => {
|
|
219
|
+
if (read && !prev) postEvent("all-pages-read", {});
|
|
220
|
+
}
|
|
221
|
+
)
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
if (typeof viewer.getViewedPages === "function") {
|
|
225
|
+
events.push("viewedPages-changed");
|
|
226
|
+
stopViewerStateWatches.push(
|
|
227
|
+
watch(
|
|
228
|
+
() => viewer.getViewedPages?.() ?? [],
|
|
229
|
+
(pages) => postEvent("viewedPages-changed", {
|
|
230
|
+
pages,
|
|
231
|
+
allRead: viewer.allPagesRead?.() ?? false
|
|
232
|
+
})
|
|
233
|
+
)
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
postEvent("ready", {
|
|
237
|
+
protocolVersion: KVIEWER_EMBED_PROTOCOL_VERSION,
|
|
238
|
+
methods: ALL_METHODS.filter((method) => supportsMethod(viewer, method)),
|
|
239
|
+
events
|
|
240
|
+
});
|
|
167
241
|
},
|
|
168
242
|
{ immediate: true }
|
|
169
243
|
);
|
|
@@ -4,6 +4,12 @@ export declare const KVIEWER_EMBED_PROTOCOL_VERSION = 1;
|
|
|
4
4
|
export declare const REQUEST_KIND: "kviewer:request";
|
|
5
5
|
export declare const RESPONSE_KIND: "kviewer:response";
|
|
6
6
|
export declare const EVENT_KIND: "kviewer:event";
|
|
7
|
+
/**
|
|
8
|
+
* `error.name` on a response rejected because the embedding host's viewer
|
|
9
|
+
* adapter does not implement the requested method. Lets a parent tell a
|
|
10
|
+
* missing capability apart from a genuine failure inside the viewer.
|
|
11
|
+
*/
|
|
12
|
+
export declare const UNSUPPORTED_METHOD_ERROR_NAME = "KViewerUnsupportedMethodError";
|
|
7
13
|
export type ImportAnnotationsMode = 'replace' | 'merge';
|
|
8
14
|
export interface MethodSignatures {
|
|
9
15
|
getAnnotations: {
|
|
@@ -23,6 +29,10 @@ export interface MethodSignatures {
|
|
|
23
29
|
args: [options?: ExportPdfOptions];
|
|
24
30
|
result: Uint8Array;
|
|
25
31
|
};
|
|
32
|
+
printPdf: {
|
|
33
|
+
args: [options?: Omit<ExportPdfOptions, 'download' | 'fileName'>];
|
|
34
|
+
result: undefined;
|
|
35
|
+
};
|
|
26
36
|
getFormFieldValues: {
|
|
27
37
|
args: [];
|
|
28
38
|
result: FormFieldValue[];
|
|
@@ -115,6 +125,13 @@ export type ResponseMessage<M extends MethodName = MethodName> = {
|
|
|
115
125
|
export interface EventPayloads {
|
|
116
126
|
ready: {
|
|
117
127
|
protocolVersion: number;
|
|
128
|
+
/** Methods the host's viewer adapter implements. Absent on hosts
|
|
129
|
+
* predating capability discovery, where the full API was mandatory —
|
|
130
|
+
* treat `undefined` as "assume everything". */
|
|
131
|
+
methods?: MethodName[];
|
|
132
|
+
/** Events the host actually subscribed to. Same `undefined` caveat as
|
|
133
|
+
* `methods`. */
|
|
134
|
+
events?: EventName[];
|
|
118
135
|
};
|
|
119
136
|
'formEditMode-changed': {
|
|
120
137
|
enabled: boolean;
|
|
@@ -2,6 +2,7 @@ export const KVIEWER_EMBED_PROTOCOL_VERSION = 1;
|
|
|
2
2
|
export const REQUEST_KIND = "kviewer:request";
|
|
3
3
|
export const RESPONSE_KIND = "kviewer:response";
|
|
4
4
|
export const EVENT_KIND = "kviewer:event";
|
|
5
|
+
export const UNSUPPORTED_METHOD_ERROR_NAME = "KViewerUnsupportedMethodError";
|
|
5
6
|
export function isRequest(msg) {
|
|
6
7
|
return !!msg && typeof msg === "object" && msg.kind === REQUEST_KIND && msg.v === KVIEWER_EMBED_PROTOCOL_VERSION;
|
|
7
8
|
}
|
|
@@ -15,6 +15,7 @@ export declare const messages: {
|
|
|
15
15
|
readonly clear: "Clear";
|
|
16
16
|
readonly delete: "Delete";
|
|
17
17
|
readonly download: "Download";
|
|
18
|
+
readonly print: "Print";
|
|
18
19
|
readonly search: "Search";
|
|
19
20
|
readonly marqueeSelect: "Marquee select";
|
|
20
21
|
readonly eraser: "Eraser";
|
|
@@ -141,6 +142,7 @@ export declare const messages: {
|
|
|
141
142
|
readonly clear: "Leeren";
|
|
142
143
|
readonly delete: "Löschen";
|
|
143
144
|
readonly download: "Herunterladen";
|
|
145
|
+
readonly print: "Drucken";
|
|
144
146
|
readonly search: "Suchen";
|
|
145
147
|
readonly marqueeSelect: "Mehrfachauswahl";
|
|
146
148
|
readonly eraser: "Radierer";
|
|
@@ -7,6 +7,7 @@ export const messages = {
|
|
|
7
7
|
clear: "Clear",
|
|
8
8
|
delete: "Delete",
|
|
9
9
|
download: "Download",
|
|
10
|
+
print: "Print",
|
|
10
11
|
// Toolbar
|
|
11
12
|
search: "Search",
|
|
12
13
|
marqueeSelect: "Marquee select",
|
|
@@ -140,6 +141,7 @@ export const messages = {
|
|
|
140
141
|
clear: "Leeren",
|
|
141
142
|
delete: "L\xF6schen",
|
|
142
143
|
download: "Herunterladen",
|
|
144
|
+
print: "Drucken",
|
|
143
145
|
search: "Suchen",
|
|
144
146
|
marqueeSelect: "Mehrfachauswahl",
|
|
145
147
|
eraser: "Radierer",
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export type { ExportPdfOptions } from './annotation/pdf-export/export.js';
|
|
2
2
|
export type { ViewerTabItem, AddTabOptions } from './components/ViewerTabs.vue.js';
|
|
3
|
-
export type { AddFormFieldPayload, CheckboxStyle, FormFieldDefinition, FormFieldOrigin, FormFieldType, FormFieldValue, PlacedFieldDefaultProps, PlacedFieldDefaults, SignatureData, SignatureFieldStatus, SignatureHandlers, } from './annotation/engine/types.js';
|
|
3
|
+
export type { AddFormFieldPayload, CheckboxStyle, FormFieldDefinition, FormFieldOrigin, FormFieldType, FormFieldValue, IAnnotationStore, PlacedFieldDefaultProps, PlacedFieldDefaults, SignatureData, SignatureFieldStatus, SignatureHandlers, } from './annotation/engine/types.js';
|
|
4
4
|
export type { ViewMode } from './composables/viewMode.js';
|
|
5
5
|
export type { ViewerState, ActiveTool } from './composables/useViewerState.js';
|
|
6
|
-
export type { KViewerApi, KViewerEmbedBridgeOptions, } from './embed/bridge-host.js';
|
|
6
|
+
export type { KViewerApi, KViewerHostApi, KViewerEmbedBridgeOptions, } from './embed/bridge-host.js';
|
|
7
7
|
export { useKViewerEmbedBridge } from './embed/bridge-host.js';
|
|
8
8
|
export type { KViewerEmbedClientOptions } from './embed/bridge-client.js';
|
|
9
9
|
export { KViewerEmbedClient } from './embed/bridge-client.js';
|
|
10
10
|
export type { EventName as KViewerEmbedEventName, EventPayloads as KViewerEmbedEventPayloads, MethodName as KViewerEmbedMethodName, } from './embed/protocol.js';
|
|
11
|
-
export { KVIEWER_EMBED_PROTOCOL_VERSION } from './embed/protocol.js';
|
|
11
|
+
export { KVIEWER_EMBED_PROTOCOL_VERSION, UNSUPPORTED_METHOD_ERROR_NAME as KVIEWER_EMBED_UNSUPPORTED_METHOD_ERROR_NAME, } from './embed/protocol.js';
|
|
12
12
|
export type { ViewerMenuItem, ViewerMenuButtonItem, ViewerMenuCheckboxItem, ViewerMenuSeparatorItem, } from './menu-items.js';
|
|
13
|
+
export type { ViewerSelectionItem, ViewerSelectionButtonItem, ViewerSelectionSelectItem, ViewerSelectionContext, } from './selection-items.js';
|
|
13
14
|
export type { ViewerToolId, ViewerTopToolId, ViewerBottomToolId, ViewerLayoutToolId, ViewerToolEntry, ViewerToolSlot, } from './toolbar-tools.js';
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export { useKViewerEmbedBridge } from "./embed/bridge-host.js";
|
|
2
2
|
export { KViewerEmbedClient } from "./embed/bridge-client.js";
|
|
3
|
-
export {
|
|
3
|
+
export {
|
|
4
|
+
KVIEWER_EMBED_PROTOCOL_VERSION,
|
|
5
|
+
UNSUPPORTED_METHOD_ERROR_NAME as KVIEWER_EMBED_UNSUPPORTED_METHOD_ERROR_NAME
|
|
6
|
+
} from "./embed/protocol.js";
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { InjectionKey, Ref } from 'vue';
|
|
2
|
+
import type { FormFieldDefinition, IAnnotationStore } from './annotation/engine/types.js';
|
|
3
|
+
/** What the floating selection popover is currently attached to. Passed to
|
|
4
|
+
* every custom-item callback so a single item list can serve both the
|
|
5
|
+
* Konva annotation selection and the HTML placed-field selection. */
|
|
6
|
+
export interface ViewerSelectionContext {
|
|
7
|
+
/** `'annotation'` = Konva-drawn annotation(s); `'field'` = a user-placed
|
|
8
|
+
* HTML form field (e.g. a signature field). */
|
|
9
|
+
kind: 'annotation' | 'field';
|
|
10
|
+
/** The selected annotation(s): one entry for a single selection, several
|
|
11
|
+
* for a marquee multi-select, empty when `kind` is `'field'`. */
|
|
12
|
+
annotations: IAnnotationStore[];
|
|
13
|
+
/** The selected placed form field. Null when `kind` is `'annotation'`. */
|
|
14
|
+
field: FormFieldDefinition | null;
|
|
15
|
+
}
|
|
16
|
+
/** A custom control appended to the floating selection popover shown when
|
|
17
|
+
* an annotation or a placed form field is selected. Pass an array of
|
|
18
|
+
* these to `<KViewer :selection-items="...">` (or `<KViewerTabs>`).
|
|
19
|
+
*
|
|
20
|
+
* Mirrors the `menuItems` discriminated-union pattern; scoped to the
|
|
21
|
+
* controls a compact floating toolbar can carry. */
|
|
22
|
+
export type ViewerSelectionItem = ViewerSelectionButtonItem | ViewerSelectionSelectItem;
|
|
23
|
+
export interface ViewerSelectionButtonItem {
|
|
24
|
+
type: 'button';
|
|
25
|
+
/** Stable key for Vue list rendering. Keep unique within the array. */
|
|
26
|
+
key: string;
|
|
27
|
+
/** Tooltip / accessible label. Rendered as text when no icon is set. */
|
|
28
|
+
label: string;
|
|
29
|
+
/** Lucide-style icon name. When set, the button is icon-only. */
|
|
30
|
+
icon?: string;
|
|
31
|
+
/** Fired on click with the current selection. */
|
|
32
|
+
onSelect: (ctx: ViewerSelectionContext) => void;
|
|
33
|
+
/** Disables the item without removing it. */
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
/** Show the item only for selections this predicate accepts. Omit to
|
|
36
|
+
* show it for both annotation and field selections. */
|
|
37
|
+
visible?: (ctx: ViewerSelectionContext) => boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface ViewerSelectionSelectItem {
|
|
40
|
+
type: 'select';
|
|
41
|
+
key: string;
|
|
42
|
+
/** Accessible label / tooltip for the select. */
|
|
43
|
+
label?: string;
|
|
44
|
+
/** Options shown in the dropdown. */
|
|
45
|
+
items: {
|
|
46
|
+
label: string;
|
|
47
|
+
value: string;
|
|
48
|
+
}[];
|
|
49
|
+
/** Current value — a plain (reactive) string, or a getter deriving it
|
|
50
|
+
* from the current selection. */
|
|
51
|
+
value?: string | ((ctx: ViewerSelectionContext) => string | undefined);
|
|
52
|
+
placeholder?: string;
|
|
53
|
+
/** Fired with the chosen option value and the current selection. */
|
|
54
|
+
onUpdate: (value: string, ctx: ViewerSelectionContext) => void;
|
|
55
|
+
disabled?: boolean;
|
|
56
|
+
visible?: (ctx: ViewerSelectionContext) => boolean;
|
|
57
|
+
}
|
|
58
|
+
/** Provided by KViewer so both selection popovers (the Konva annotation
|
|
59
|
+
* toolbar and the placed-field toolbar, which lives deep inside the page
|
|
60
|
+
* DOM layer) can read the host's items without prop-drilling. */
|
|
61
|
+
export declare const SELECTION_ITEMS_KEY: InjectionKey<Ref<ViewerSelectionItem[] | undefined>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const SELECTION_ITEMS_KEY = Symbol("kviewer-selection-items");
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { InjectionKey, Ref } from 'vue';
|
|
2
2
|
import { AnnotationType } from './annotation/engine/types.js';
|
|
3
3
|
/** Built-in tools that live in the top navigation row. Each maps to a
|
|
4
|
-
* whole self-contained sub-component. `hand` / `marquee` are readonly-gated.
|
|
4
|
+
* whole self-contained sub-component. `hand` / `marquee` are readonly-gated.
|
|
5
|
+
* `marquee` has no button in the default toolbar — hand mode rubber-band
|
|
6
|
+
* selects on empty-space mouse drags; the dedicated mode remains for hosts
|
|
7
|
+
* that want touch-capable multi-select via the `tools` prop. */
|
|
5
8
|
export type ViewerTopToolId = 'menu' | 'pageSettings' | 'zoom' | 'hand' | 'marquee' | 'pageInfo' | 'search';
|
|
6
9
|
/** Built-in tools that live in the second (annotation) row, controlled
|
|
7
10
|
* per individual button. IDs match the annotation `name` in
|
package/dist/types.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type ActiveTool, type AddFormFieldPayload, type CheckboxStyle, type ExportPdfOptions, type FormFieldDefinition, type FormFieldOrigin, type FormFieldType, type FormFieldValue, type KVIEWER_EMBED_PROTOCOL_VERSION, type KViewerApi, type KViewerEmbedBridgeOptions, type KViewerEmbedClient, type KViewerEmbedClientOptions, type KViewerEmbedEventName, type KViewerEmbedEventPayloads, type KViewerEmbedMethodName, type PlacedFieldDefaults, type SignatureData, type SignatureFieldStatus, type SignatureHandlers, type ViewMode, type ViewerBottomToolId, type ViewerLayoutToolId, type ViewerMenuButtonItem, type ViewerMenuCheckboxItem, type ViewerMenuItem, type ViewerMenuSeparatorItem, type ViewerState, type ViewerToolEntry, type ViewerToolId, type ViewerToolSlot, type ViewerTopToolId, type useKViewerEmbedBridge } from '../dist/runtime/public-types.js'
|
|
1
|
+
export { type ActiveTool, type AddFormFieldPayload, type CheckboxStyle, type ExportPdfOptions, type FormFieldDefinition, type FormFieldOrigin, type FormFieldType, type FormFieldValue, type IAnnotationStore, type KVIEWER_EMBED_PROTOCOL_VERSION, type KVIEWER_EMBED_UNSUPPORTED_METHOD_ERROR_NAME, type KViewerApi, type KViewerEmbedBridgeOptions, type KViewerEmbedClient, type KViewerEmbedClientOptions, type KViewerEmbedEventName, type KViewerEmbedEventPayloads, type KViewerEmbedMethodName, type KViewerHostApi, type PlacedFieldDefaults, type SignatureData, type SignatureFieldStatus, type SignatureHandlers, type ViewMode, type ViewerBottomToolId, type ViewerLayoutToolId, type ViewerMenuButtonItem, type ViewerMenuCheckboxItem, type ViewerMenuItem, type ViewerMenuSeparatorItem, type ViewerSelectionButtonItem, type ViewerSelectionContext, type ViewerSelectionItem, type ViewerSelectionSelectItem, type ViewerState, type ViewerToolEntry, type ViewerToolId, type ViewerToolSlot, type ViewerTopToolId, type useKViewerEmbedBridge } from '../dist/runtime/public-types.js'
|
|
2
2
|
|
|
3
3
|
export { default } from './module.mjs'
|
|
4
4
|
|