@kerebron/extension-yjs 0.4.27 → 0.4.29
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/esm/ExtensionYjs.d.ts +17 -0
- package/esm/ExtensionYjs.d.ts.map +1 -0
- package/esm/ExtensionYjs.js +34 -0
- package/esm/ExtensionYjs.js.map +1 -0
- package/esm/convertUtils.d.ts +59 -0
- package/esm/convertUtils.d.ts.map +1 -0
- package/esm/convertUtils.js +89 -0
- package/esm/convertUtils.js.map +1 -0
- package/esm/keys.d.ts +11 -0
- package/esm/keys.d.ts.map +1 -0
- package/esm/keys.js +10 -0
- package/esm/keys.js.map +1 -0
- package/esm/lib.d.ts +15 -0
- package/esm/lib.d.ts.map +1 -0
- package/esm/lib.js +191 -0
- package/esm/lib.js.map +1 -0
- package/esm/package.json +3 -0
- package/esm/userColors.d.ts +5 -0
- package/esm/userColors.d.ts.map +1 -0
- package/esm/userColors.js +11 -0
- package/esm/userColors.js.map +1 -0
- package/esm/utils.d.ts +2 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/utils.js +11 -0
- package/esm/utils.js.map +1 -0
- package/esm/yPositionPlugin.d.ts +14 -0
- package/esm/yPositionPlugin.d.ts.map +1 -0
- package/esm/yPositionPlugin.js +122 -0
- package/esm/yPositionPlugin.js.map +1 -0
- package/esm/ySyncPlugin.d.ts +102 -0
- package/esm/ySyncPlugin.d.ts.map +1 -0
- package/esm/ySyncPlugin.js +938 -0
- package/esm/ySyncPlugin.js.map +1 -0
- package/esm/yUndoPlugin.d.ts +22 -0
- package/esm/yUndoPlugin.d.ts.map +1 -0
- package/esm/yUndoPlugin.js +90 -0
- package/esm/yUndoPlugin.js.map +1 -0
- package/package.json +7 -4
- package/src/ExtensionYjs.ts +55 -0
- package/src/convertUtils.ts +143 -0
- package/src/keys.ts +14 -0
- package/src/lib.ts +230 -0
- package/src/userColors.ts +10 -0
- package/src/utils.ts +13 -0
- package/src/yPositionPlugin.ts +228 -0
- package/src/ySyncPlugin.ts +1313 -0
- package/src/yUndoPlugin.ts +124 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
import { Plugin, PluginKey } from 'prosemirror-state';
|
|
3
|
+
import { remoteSelectionPluginKey } from '@kerebron/extension-basic-editor/ExtensionRemoteSelection';
|
|
4
|
+
import { absolutePositionToRelativePosition, relativePositionToAbsolutePosition, setMeta, } from './lib.js';
|
|
5
|
+
import { ySyncPluginKey } from './keys.js';
|
|
6
|
+
export const yPositionPluginKey = new PluginKey('yjs-position');
|
|
7
|
+
/**
|
|
8
|
+
* Default awareness state filter
|
|
9
|
+
*/
|
|
10
|
+
export const defaultAwarenessStateFilter = (currentClientId, userClientId, _user) => currentClientId !== userClientId;
|
|
11
|
+
export const yPositionPlugin = (awareness, editor, { getSelection = (state) => state.selection, } = {}, cursorStateField = 'cursor') => {
|
|
12
|
+
return new Plugin({
|
|
13
|
+
key: yPositionPluginKey,
|
|
14
|
+
view: (view) => {
|
|
15
|
+
const extension = editor.getExtension('remote-selection');
|
|
16
|
+
const awarenessListener = ({ added, updated, removed }) => {
|
|
17
|
+
const clients = added.concat(updated).concat(removed);
|
|
18
|
+
if (clients.findIndex((id) => id !== awareness.doc.clientID) ===
|
|
19
|
+
-1) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (view.docView) {
|
|
23
|
+
setMeta(view, remoteSelectionPluginKey, {
|
|
24
|
+
remotePositionUpdated: true,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const remoteStates = [];
|
|
28
|
+
const ystate = ySyncPluginKey.getState(view.state);
|
|
29
|
+
const y = ystate.doc;
|
|
30
|
+
awareness.getStates().forEach((aw, clientId) => {
|
|
31
|
+
if (!defaultAwarenessStateFilter(y.clientID, clientId, aw)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (!aw.cursor) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
let anchor = relativePositionToAbsolutePosition(y, ystate.type, Y.createRelativePositionFromJSON(aw.cursor.anchor), ystate.binding.mapping);
|
|
38
|
+
let head = relativePositionToAbsolutePosition(y, ystate.type, Y.createRelativePositionFromJSON(aw.cursor.head), ystate.binding.mapping);
|
|
39
|
+
if (anchor !== null && head !== null) {
|
|
40
|
+
remoteStates.push({
|
|
41
|
+
clientId,
|
|
42
|
+
user: {
|
|
43
|
+
name: aw.user?.name,
|
|
44
|
+
color: aw.user?.color,
|
|
45
|
+
colorLight: aw.user?.colorLight,
|
|
46
|
+
},
|
|
47
|
+
cursor: {
|
|
48
|
+
anchor,
|
|
49
|
+
head,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
extension.setRemoteStates(remoteStates);
|
|
55
|
+
// view.dispatch({ annotations: [yRemoteSelectionsAnnotation.of([])] });
|
|
56
|
+
};
|
|
57
|
+
{
|
|
58
|
+
// if (
|
|
59
|
+
// ystate.snapshot != null || ystate.prevSnapshot != null ||
|
|
60
|
+
// ystate.binding.mapping.size === 0
|
|
61
|
+
// ) {
|
|
62
|
+
// // do not render cursors while snapshot is active
|
|
63
|
+
// return DecorationSet.create(state.doc, []);
|
|
64
|
+
// }
|
|
65
|
+
}
|
|
66
|
+
const updateAwareness = (selectionAnchor, selectionHead) => {
|
|
67
|
+
const ystate = ySyncPluginKey.getState(view.state);
|
|
68
|
+
const current = awareness.getLocalState() || {};
|
|
69
|
+
const anchor = absolutePositionToRelativePosition(selectionAnchor, ystate.type, ystate.binding.mapping);
|
|
70
|
+
const head = absolutePositionToRelativePosition(selectionHead, ystate.type, ystate.binding.mapping);
|
|
71
|
+
if (current.cursor == null ||
|
|
72
|
+
!Y.compareRelativePositions(Y.createRelativePositionFromJSON(current.cursor.anchor), anchor) ||
|
|
73
|
+
!Y.compareRelativePositions(Y.createRelativePositionFromJSON(current.cursor.head), head)) {
|
|
74
|
+
awareness.setLocalStateField(cursorStateField, {
|
|
75
|
+
anchor,
|
|
76
|
+
head,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const clearAwareness = () => {
|
|
81
|
+
const ystate = ySyncPluginKey.getState(view.state);
|
|
82
|
+
const current = awareness.getLocalState() || {};
|
|
83
|
+
if (current.cursor != null &&
|
|
84
|
+
relativePositionToAbsolutePosition(ystate.doc, ystate.type, Y.createRelativePositionFromJSON(current.cursor.anchor), ystate.binding.mapping) !== null) {
|
|
85
|
+
// delete cursor information if current cursor information is owned by this editor binding
|
|
86
|
+
awareness.setLocalStateField(cursorStateField, null);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const updateCursorInfo = () => {
|
|
90
|
+
if (view.hasFocus()) {
|
|
91
|
+
const selection = getSelection(view.state);
|
|
92
|
+
updateAwareness(selection.anchor, selection.head);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// clearAwareness();
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const localPositionChangedListener = (event) => {
|
|
99
|
+
const { detail } = event;
|
|
100
|
+
updateAwareness(detail.anchor, detail.head);
|
|
101
|
+
};
|
|
102
|
+
editor.addEventListener('localPositionChanged', localPositionChangedListener);
|
|
103
|
+
awareness.on('change', awarenessListener);
|
|
104
|
+
view.dom.addEventListener('focusin', updateCursorInfo);
|
|
105
|
+
view.dom.addEventListener('focusout', updateCursorInfo);
|
|
106
|
+
return {
|
|
107
|
+
update: updateCursorInfo,
|
|
108
|
+
destroy: () => {
|
|
109
|
+
view.dom.removeEventListener('focusin', updateCursorInfo);
|
|
110
|
+
view.dom.removeEventListener('focusout', updateCursorInfo);
|
|
111
|
+
awareness.off('change', awarenessListener);
|
|
112
|
+
awareness.setLocalStateField(cursorStateField, null);
|
|
113
|
+
editor.removeEventListener('localPositionChanged', localPositionChangedListener);
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
updateCursorInfo(state) {
|
|
118
|
+
throw new Error('TODO: merge with updateCursorInfo above');
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=yPositionPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yPositionPlugin.js","sourceRoot":"","sources":["../src/yPositionPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
import * as PModel from 'prosemirror-model';
|
|
3
|
+
import { MarkType, Node, Schema } from 'prosemirror-model';
|
|
4
|
+
import { EditorState } from 'prosemirror-state';
|
|
5
|
+
import { EditorView } from 'prosemirror-view';
|
|
6
|
+
export type TransactFunc<T> = (f: (arg0?: Y.Transaction) => T, origin?: any) => T;
|
|
7
|
+
export interface BindingMetadata {
|
|
8
|
+
mapping: ProsemirrorMapping;
|
|
9
|
+
isOMark: Map<MarkType, boolean>;
|
|
10
|
+
}
|
|
11
|
+
export declare const isVisible: (item: Y.Item, snapshot: Y.Snapshot) => boolean;
|
|
12
|
+
type ProsemirrorMapping = Map<Y.AbstractType<any>, PModel.Node | Array<PModel.Node>>;
|
|
13
|
+
interface ColorDef {
|
|
14
|
+
light: string;
|
|
15
|
+
dark: string;
|
|
16
|
+
}
|
|
17
|
+
interface YSyncOpts {
|
|
18
|
+
colors?: Array<ColorDef>;
|
|
19
|
+
colorMapping?: Map<string, ColorDef>;
|
|
20
|
+
permanentUserData?: Y.PermanentUserData | null;
|
|
21
|
+
mapping?: ProsemirrorMapping;
|
|
22
|
+
onFirstRender?: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* This plugin listens to changes in prosemirror view and keeps yXmlState and view in sync.
|
|
26
|
+
*
|
|
27
|
+
* This plugin also keeps references to the type and the shared document so other plugins can access it.
|
|
28
|
+
*/
|
|
29
|
+
export declare const ySyncPlugin: (yXmlFragment: Y.XmlFragment, { colors, colorMapping, permanentUserData, onFirstRender, mapping, }?: YSyncOpts) => any;
|
|
30
|
+
interface TransactionSelection {
|
|
31
|
+
type: string;
|
|
32
|
+
anchor: Y.RelativePosition;
|
|
33
|
+
head: Y.RelativePosition;
|
|
34
|
+
}
|
|
35
|
+
export declare const getRelativeSelection: (pmbinding: ProsemirrorBinding, state: EditorState) => TransactionSelection;
|
|
36
|
+
interface PluginState {
|
|
37
|
+
addToHistory: boolean;
|
|
38
|
+
isChangeOrigin: boolean;
|
|
39
|
+
restore: any;
|
|
40
|
+
snapshot?: Y.Snapshot;
|
|
41
|
+
prevSnapshot?: Y.Snapshot;
|
|
42
|
+
isUndoRedoOperation: boolean;
|
|
43
|
+
colors: Array<ColorDef>;
|
|
44
|
+
colorMapping: Map<string, ColorDef>;
|
|
45
|
+
permanentUserData: Y.PermanentUserData;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Binding for prosemirror.
|
|
49
|
+
*
|
|
50
|
+
* @protected
|
|
51
|
+
*/
|
|
52
|
+
export declare class ProsemirrorBinding implements BindingMetadata {
|
|
53
|
+
mapping: ProsemirrorMapping;
|
|
54
|
+
ydoc: Y.Doc;
|
|
55
|
+
isOMark: Map<MarkType, boolean>;
|
|
56
|
+
type: Y.XmlFragment;
|
|
57
|
+
private mux;
|
|
58
|
+
prosemirrorView: EditorView | null;
|
|
59
|
+
private _beforeTransactionSelection;
|
|
60
|
+
private beforeAllTransactions;
|
|
61
|
+
private afterAllTransactions;
|
|
62
|
+
private _observeFunction;
|
|
63
|
+
private _domSelectionInView;
|
|
64
|
+
get beforeTransactionSelection(): TransactionSelection;
|
|
65
|
+
set beforeTransactionSelection(value: TransactionSelection);
|
|
66
|
+
constructor(yXmlFragment: Y.XmlFragment, mapping?: ProsemirrorMapping);
|
|
67
|
+
debug(msg?: string): void;
|
|
68
|
+
_isLocalCursorInView(): boolean;
|
|
69
|
+
_isDomSelectionInView(): boolean;
|
|
70
|
+
renderSnapshot(snapshot: Y.Snapshot, prevSnapshot: Y.Snapshot): void;
|
|
71
|
+
unrenderSnapshot(): void;
|
|
72
|
+
_forceRerender(): void;
|
|
73
|
+
_renderSnapshot(snapshot: Y.Snapshot | Uint8Array, prevSnapshot: Y.Snapshot | Uint8Array, pluginState: PluginState): void;
|
|
74
|
+
yXmlChanged(events: Array<Y.YEvent<any>>, transaction: Y.Transaction): void;
|
|
75
|
+
_prosemirrorChanged(doc: Node): void;
|
|
76
|
+
/**
|
|
77
|
+
* View is ready to listen to changes. Register observers.
|
|
78
|
+
*/
|
|
79
|
+
initView(prosemirrorView: any): void;
|
|
80
|
+
destroy(): void;
|
|
81
|
+
}
|
|
82
|
+
export declare const createNodeFromYElement: (el: Y.XmlElement, schema: any, meta: BindingMetadata, snapshot?: Y.Snapshot, prevSnapshot?: Y.Snapshot, computeYChange?: (arg0: "removed" | "added", arg1: Y.ID) => any) => PModel.Node | null;
|
|
83
|
+
export declare const yattr2markname: (attrName: string) => string;
|
|
84
|
+
/**
|
|
85
|
+
* @todo move this to markstoattributes
|
|
86
|
+
*/
|
|
87
|
+
export declare const attributesToMarks: (attrs: {
|
|
88
|
+
[s: string]: any;
|
|
89
|
+
}, schema: Schema) => PModel.Mark[];
|
|
90
|
+
/**
|
|
91
|
+
* Update a yDom node by syncing the current content of the prosemirror node.
|
|
92
|
+
*
|
|
93
|
+
* This is a y-prosemirror internal feature that you can use at your own risk.
|
|
94
|
+
*
|
|
95
|
+
* @private
|
|
96
|
+
* @unstable
|
|
97
|
+
*/
|
|
98
|
+
export declare const updateYFragment: (y: {
|
|
99
|
+
transact: TransactFunc<void>;
|
|
100
|
+
}, yDomFragment: Y.XmlFragment, pNode: Node, meta: BindingMetadata) => void;
|
|
101
|
+
export {};
|
|
102
|
+
//# sourceMappingURL=ySyncPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ySyncPlugin.d.ts","sourceRoot":"","sources":["../src/ySyncPlugin.ts"],"names":[],"mappings":"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"}
|