@mdzip/editor-react 1.2.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/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/package.json +35 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { MdzipControlPolicy, MdzipControlPreset, MdzipColorScheme, MdzipDocumentChangeEvent, MdzipEditorCommand, MdzipEditorSnapshot, MdzipNavigationMode, MdzipRemoveAssetOptions, MdzipSourceFormat, MdzipWorkspaceChange, MdzipWorkspaceLayout, MdzipWorkspaceMode, MdzipWorkspaceSave, MdzipWorkspaceSnapshot, MdzWorkspace, MdzWorkspaceAsset } from 'mdzip-editor';
|
|
2
|
+
export interface MdzipWorkspaceProps {
|
|
3
|
+
bytes?: Uint8Array | null;
|
|
4
|
+
workspace?: MdzWorkspace | null;
|
|
5
|
+
fileName?: string;
|
|
6
|
+
mode?: MdzipWorkspaceMode;
|
|
7
|
+
sourceFormat?: MdzipSourceFormat;
|
|
8
|
+
controls?: MdzipControlPreset | MdzipControlPolicy;
|
|
9
|
+
initialLayout?: MdzipWorkspaceLayout;
|
|
10
|
+
initialColorScheme?: MdzipColorScheme;
|
|
11
|
+
navigationMode?: MdzipNavigationMode;
|
|
12
|
+
navigationButtonActive?: boolean;
|
|
13
|
+
onChanged?: (event: MdzipWorkspaceChange) => void;
|
|
14
|
+
onSaved?: (event: MdzipWorkspaceSave) => void;
|
|
15
|
+
onWorkspaceChanged?: (event: MdzipDocumentChangeEvent) => void;
|
|
16
|
+
onDocumentChanged?: (event: MdzipDocumentChangeEvent) => void;
|
|
17
|
+
onAssetChanged?: (event: MdzipDocumentChangeEvent) => void;
|
|
18
|
+
onManifestChanged?: (event: MdzipDocumentChangeEvent) => void;
|
|
19
|
+
onSnapshotChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
|
|
20
|
+
onSelectionChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
|
|
21
|
+
onDirtyChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
|
|
22
|
+
onValidationChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
|
|
23
|
+
onColorSchemeChanged?: (colorScheme: MdzipColorScheme) => void;
|
|
24
|
+
onFailed?: (error: unknown) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface MdzipWorkspaceHandle {
|
|
27
|
+
canExecuteCommand(command: MdzipEditorCommand): boolean;
|
|
28
|
+
executeCommand(command: MdzipEditorCommand, file?: File): Promise<boolean>;
|
|
29
|
+
convertToMdz(): Promise<boolean>;
|
|
30
|
+
flush(): Promise<MdzipEditorSnapshot | null>;
|
|
31
|
+
serialize(): Promise<Blob | null>;
|
|
32
|
+
getCurrentSnapshot(): Promise<MdzipEditorSnapshot | null>;
|
|
33
|
+
markPersisted(): void;
|
|
34
|
+
addAsset(archivePath: string, fileBytes: Uint8Array): Promise<void>;
|
|
35
|
+
replaceAsset(archivePath: string, fileBytes: Uint8Array): Promise<boolean>;
|
|
36
|
+
removeAsset(archivePath: string, options?: MdzipRemoveAssetOptions): Promise<boolean>;
|
|
37
|
+
listAssets(): MdzWorkspaceAsset[];
|
|
38
|
+
focus(): void;
|
|
39
|
+
}
|
|
40
|
+
export declare const MdzipWorkspace: import("react").ForwardRefExoticComponent<MdzipWorkspaceProps & import("react").RefAttributes<MdzipWorkspaceHandle>>;
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';
|
|
3
|
+
import { MdzipWorkspaceView } from 'mdzip-editor';
|
|
4
|
+
export const MdzipWorkspace = forwardRef(function MdzipWorkspace({ bytes, workspace, fileName = 'document.mdz', mode = 'read-only', sourceFormat, controls = 'viewer', initialLayout, initialColorScheme, navigationMode, navigationButtonActive, onChanged, onSaved, onWorkspaceChanged, onDocumentChanged, onAssetChanged, onManifestChanged, onSnapshotChanged, onSelectionChanged, onDirtyChanged, onValidationChanged, onColorSchemeChanged, onFailed, }, forwardedRef) {
|
|
5
|
+
const ref = useRef(null);
|
|
6
|
+
const viewRef = useRef(null);
|
|
7
|
+
useImperativeHandle(forwardedRef, () => ({
|
|
8
|
+
canExecuteCommand: (command) => viewRef.current?.canExecuteCommand(command) ?? false,
|
|
9
|
+
executeCommand: (command, file) => viewRef.current?.executeCommand(command, file) ?? Promise.resolve(false),
|
|
10
|
+
convertToMdz: () => viewRef.current?.convertToMdz() ?? Promise.resolve(false),
|
|
11
|
+
flush: () => viewRef.current?.flush() ?? Promise.resolve(null),
|
|
12
|
+
serialize: () => viewRef.current?.serialize() ?? Promise.resolve(null),
|
|
13
|
+
getCurrentSnapshot: () => viewRef.current?.getCurrentSnapshot() ?? Promise.resolve(null),
|
|
14
|
+
markPersisted: () => viewRef.current?.markPersisted(),
|
|
15
|
+
addAsset: (archivePath, fileBytes) => viewRef.current?.addAsset(archivePath, fileBytes) ?? Promise.resolve(),
|
|
16
|
+
replaceAsset: (archivePath, fileBytes) => viewRef.current?.replaceAsset(archivePath, fileBytes) ?? Promise.resolve(false),
|
|
17
|
+
removeAsset: (archivePath, options) => viewRef.current?.removeAsset(archivePath, options) ?? Promise.resolve(false),
|
|
18
|
+
listAssets: () => viewRef.current?.listAssets() ?? [],
|
|
19
|
+
focus: () => viewRef.current?.focus()
|
|
20
|
+
}), []);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (!ref.current)
|
|
23
|
+
return;
|
|
24
|
+
const view = new MdzipWorkspaceView(ref.current, {
|
|
25
|
+
controls,
|
|
26
|
+
initialLayout,
|
|
27
|
+
initialColorScheme,
|
|
28
|
+
navigationMode,
|
|
29
|
+
navigationButtonActive,
|
|
30
|
+
onChanged: (bytes, snapshot) => onChanged?.({ bytes, snapshot }),
|
|
31
|
+
onSaved: (bytes, snapshot) => onSaved?.({ bytes, snapshot }),
|
|
32
|
+
onWorkspaceChanged,
|
|
33
|
+
onDocumentChanged,
|
|
34
|
+
onAssetChanged,
|
|
35
|
+
onManifestChanged,
|
|
36
|
+
onSnapshotChanged,
|
|
37
|
+
onSelectionChanged,
|
|
38
|
+
onDirtyChanged,
|
|
39
|
+
onValidationChanged,
|
|
40
|
+
onColorSchemeChanged,
|
|
41
|
+
onFailed: (e) => onFailed?.(e),
|
|
42
|
+
});
|
|
43
|
+
viewRef.current = view;
|
|
44
|
+
return () => { view.destroy(); viewRef.current = null; };
|
|
45
|
+
}, [
|
|
46
|
+
controls,
|
|
47
|
+
initialLayout,
|
|
48
|
+
initialColorScheme,
|
|
49
|
+
navigationMode,
|
|
50
|
+
navigationButtonActive,
|
|
51
|
+
onChanged,
|
|
52
|
+
onSaved,
|
|
53
|
+
onWorkspaceChanged,
|
|
54
|
+
onDocumentChanged,
|
|
55
|
+
onAssetChanged,
|
|
56
|
+
onManifestChanged,
|
|
57
|
+
onSnapshotChanged,
|
|
58
|
+
onSelectionChanged,
|
|
59
|
+
onDirtyChanged,
|
|
60
|
+
onValidationChanged,
|
|
61
|
+
onColorSchemeChanged,
|
|
62
|
+
onFailed
|
|
63
|
+
]);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (viewRef.current && workspace) {
|
|
66
|
+
void viewRef.current.openWorkspace(workspace, { mode, sourceFormat, fileName });
|
|
67
|
+
}
|
|
68
|
+
else if (viewRef.current && bytes) {
|
|
69
|
+
void viewRef.current.open(bytes, { mode, sourceFormat, fileName });
|
|
70
|
+
}
|
|
71
|
+
}, [bytes, workspace, mode, sourceFormat, fileName]);
|
|
72
|
+
return _jsx("div", { ref: ref, style: { height: '100%', overflow: 'hidden' } });
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mdzip/editor-react",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "React wrapper for the MDZip workspace editor.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc -p tsconfig.json"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"mdzip-editor": "1.2.0"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"react": ">=18.0.0",
|
|
26
|
+
"react-dom": ">=18.0.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/react": "^19.1.6",
|
|
30
|
+
"@types/react-dom": "^19.1.5"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
}
|
|
35
|
+
}
|