@fiduswriter/editor 0.1.27 → 0.1.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.
@@ -117,7 +117,7 @@ export const contactsTemplate = ({ contacts }) => contacts
117
117
  ${contact.type === "userinvite"
118
118
  ? `${gettext("Invite")}: `
119
119
  : ""}
120
- ${escapeText(contact.name)}
120
+ ${escapeText(contact.name || "")}
121
121
 
122
122
  </span>
123
123
  </td>
@@ -132,7 +132,7 @@ export const collaboratorsTemplate = ({ collaborators }) => collaborators
132
132
  <span>${avatarTemplate({ user: collaborator.holder })}</span>
133
133
  <span class="fw-inline">${collaborator.holder.type === "userinvite"
134
134
  ? `${gettext("Invite")}: `
135
- : ""}${escapeText(collaborator.holder.name)}</span>
135
+ : ""}${escapeText(collaborator.holder.name || "")}</span>
136
136
  </td>
137
137
  <td width="50" align="center">
138
138
  <div class="fw-inline edit-right-wrapper">
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/documents/access_rights/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/documents/access_rights/templates.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  import { Plugin } from "prosemirror-state";
2
2
  import type { EditorState, Transaction } from "prosemirror-state";
3
3
  import type { Node } from "prosemirror-model";
4
+ import type { Editor } from "../types.js";
4
5
  export interface FootnoteMarker {
5
6
  from: number;
6
7
  to: number;
7
8
  }
8
9
  export declare const findFootnoteMarkers: (fromPos: number, toPos: number, doc: Node) => FootnoteMarker[];
9
- export declare const getFootnoteMarkers: (state: EditorState) => FootnoteMarker[];
10
10
  export declare const getFootnoteMarkerContents: (state: EditorState) => any[];
11
11
  export declare const updateFootnoteMarker: (state: EditorState, tr: Transaction, index: number, content: any) => void;
12
- export declare const footnoteMarkersPlugin: (_options: {
13
- editor: unknown;
14
- }) => Plugin<any>;
12
+ export declare const getFootnoteMarkers: (state: EditorState) => FootnoteMarker[];
13
+ export declare const footnoteMarkersPlugin: (options: {
14
+ editor: Editor;
15
+ }) => Plugin<{
16
+ fnMarkers: FootnoteMarker[];
17
+ }>;
15
18
  //# sourceMappingURL=footnote_markers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"footnote_markers.d.ts","sourceRoot":"","sources":["../../src/state_plugins/footnote_markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAA;AAI3C,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,mBAAmB,GAC5B,SAAS,MAAM,EACf,OAAO,MAAM,EACb,KAAK,IAAI,KACV,cAAc,EAchB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,WAAW,KAAG,cAAc,EACT,CAAA;AAE7D,eAAO,MAAM,yBAAyB,GAAI,OAAO,WAAW,KAAG,GAAG,EAI5D,CAAA;AAEN,eAAO,MAAM,oBAAoB,GAC7B,OAAO,WAAW,EAClB,IAAI,WAAW,EACf,OAAO,MAAM,EACb,SAAS,GAAG,KACb,IAcF,CAAA;AA2DD,eAAO,MAAM,qBAAqB,GAAI,UAAU;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,gBAuB3D,CAAA"}
1
+ {"version":3,"file":"footnote_markers.d.ts","sourceRoot":"","sources":["../../src/state_plugins/footnote_markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAIvC,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,mBAAmB,GAC5B,SAAS,MAAM,EACf,OAAO,MAAM,EACb,KAAK,IAAI,KACV,cAAc,EAchB,CAAA;AAyDD,eAAO,MAAM,yBAAyB,GAAI,OAAO,WAAW,KAAG,GAAG,EASjE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC7B,OAAO,WAAW,EAClB,IAAI,WAAW,EACf,OAAO,MAAM,EACb,SAAS,GAAG,KACb,IAkBF,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,WAAW,KAAG,cAAc,EAMrE,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC;eACpC,cAAc,EAAE;EAsIrC,CAAA"}
@@ -15,31 +15,11 @@ export const findFootnoteMarkers = (fromPos, toPos, doc) => {
15
15
  });
16
16
  return footnoteMarkers;
17
17
  };
18
- export const getFootnoteMarkers = (state) => findFootnoteMarkers(0, state.doc.content.size, state.doc);
19
- export const getFootnoteMarkerContents = (state) => getFootnoteMarkers(state).map(marker => {
20
- const node = state.doc.nodeAt(marker.from);
21
- return node ? node.attrs.footnote : undefined;
22
- });
23
- export const updateFootnoteMarker = (state, tr, index, content) => {
24
- const markers = getFootnoteMarkers(state);
25
- const marker = markers[index];
26
- if (!marker) {
27
- return;
28
- }
29
- const node = state.doc.nodeAt(marker.from);
30
- if (!node) {
31
- return;
32
- }
33
- tr.setNodeMarkup(marker.from, null, {
34
- ...node.attrs,
35
- footnote: content
36
- });
37
- };
38
18
  const getAddedRanges = (tr) => {
39
19
  /* find ranges of the current document that have been added by means of
40
20
  * a transaction.
41
21
  */
42
- const ranges = [];
22
+ let ranges = [];
43
23
  tr.steps.forEach((step, index) => {
44
24
  const stepData = step;
45
25
  if (stepData.jsonID === "replace" ||
@@ -50,57 +30,164 @@ const getAddedRanges = (tr) => {
50
30
  });
51
31
  }
52
32
  const map = tr.mapping.maps[index];
53
- map.forEach((_oldStart, _oldEnd, newStart, newEnd) => {
54
- ranges.push({ from: newStart, to: newEnd });
55
- });
33
+ ranges = ranges.map(range => ({
34
+ from: map.map(range.from, -1),
35
+ to: map.map(range.to, 1)
36
+ }));
56
37
  });
57
- return ranges;
58
- };
59
- const getDeletedRanges = (tr) => {
60
- const ranges = [];
61
- tr.steps.forEach((step, index) => {
62
- const stepData = step;
63
- if (stepData.jsonID === "replace" ||
64
- stepData.jsonID === "replaceWrap") {
65
- const map = tr.mapping.maps[index];
66
- map.forEach((oldStart, oldEnd, _newStart, _newEnd) => {
67
- if (oldStart !== oldEnd) {
68
- ranges.push({ from: oldStart, to: oldEnd });
69
- }
70
- });
38
+ const nonOverlappingRanges = [];
39
+ ranges.forEach(range => {
40
+ let addedRange = false;
41
+ nonOverlappingRanges.forEach(noRange => {
42
+ if (!addedRange &&
43
+ range.from <= noRange.from &&
44
+ range.to >= noRange.from) {
45
+ noRange.from = range.from;
46
+ noRange.to = noRange.to > range.to ? noRange.to : range.to;
47
+ addedRange = true;
48
+ }
49
+ else if (!addedRange &&
50
+ range.from <= noRange.to &&
51
+ range.to >= noRange.to) {
52
+ noRange.from =
53
+ noRange.from < range.from ? noRange.from : range.from;
54
+ noRange.to = range.to;
55
+ addedRange = true;
56
+ }
57
+ });
58
+ if (!addedRange) {
59
+ nonOverlappingRanges.push(range);
71
60
  }
72
61
  });
73
- return ranges;
62
+ return nonOverlappingRanges;
63
+ };
64
+ export const getFootnoteMarkerContents = (state) => {
65
+ const fnState = key.getState(state);
66
+ if (!fnState || !fnState.fnMarkers) {
67
+ return [];
68
+ }
69
+ const fnMarkers = fnState.fnMarkers;
70
+ return fnMarkers.map(fnMarker => state.doc.nodeAt(fnMarker.from).attrs.footnote);
74
71
  };
75
- const getNewFootnotes = (tr) => {
76
- const addedRanges = getAddedRanges(tr);
77
- return addedRanges
78
- .map(range => findFootnoteMarkers(range.from, range.to, tr.doc))
79
- .flat();
72
+ export const updateFootnoteMarker = (state, tr, index, content) => {
73
+ const fnState = key.getState(state);
74
+ if (!fnState) {
75
+ return;
76
+ }
77
+ const { fnMarkers } = fnState;
78
+ const footnote = fnMarkers[index];
79
+ if (!footnote) {
80
+ return;
81
+ }
82
+ const node = state.doc.nodeAt(footnote.from);
83
+ if (node.attrs.footnote === content) {
84
+ return;
85
+ }
86
+ tr.setNodeMarkup(footnote.from, node.type, {
87
+ footnote: content
88
+ });
89
+ tr.setMeta("fromFootnote", true);
80
90
  };
81
- const getDeletedFootnotes = (tr) => {
82
- const deletedRanges = getDeletedRanges(tr);
83
- return deletedRanges
84
- .map(range => findFootnoteMarkers(range.from, range.to, tr.before))
85
- .flat();
91
+ export const getFootnoteMarkers = (state) => {
92
+ const fnState = key.getState(state);
93
+ if (!fnState) {
94
+ return [];
95
+ }
96
+ return fnState.fnMarkers;
86
97
  };
87
- export const footnoteMarkersPlugin = (_options) => new Plugin({
98
+ export const footnoteMarkersPlugin = (options) => new Plugin({
88
99
  key,
89
- appendTransaction: (trs, _oldState, newState) => {
90
- const modified = trs.reduce((modified, tr) => modified || tr.docChanged, false);
91
- if (!modified) {
92
- return;
93
- }
94
- const addedFootnotes = trs.map(tr => getNewFootnotes(tr)).flat();
95
- const deletedFootnotes = trs.map(tr => getDeletedFootnotes(tr)).flat();
96
- if (!addedFootnotes.length && !deletedFootnotes.length) {
97
- return;
100
+ state: {
101
+ init(_config, state) {
102
+ const fnMarkers = [];
103
+ state.doc.descendants((node, pos) => {
104
+ if (node.type.name === "footnote") {
105
+ fnMarkers.push({
106
+ from: pos,
107
+ to: pos + node.nodeSize
108
+ });
109
+ }
110
+ });
111
+ return {
112
+ fnMarkers
113
+ };
114
+ },
115
+ apply(tr, _prev, oldState, state) {
116
+ const meta = tr.getMeta(key);
117
+ if (meta) {
118
+ return meta;
119
+ }
120
+ let fnMarkers = [];
121
+ const prevState = key.getState(oldState);
122
+ if (prevState) {
123
+ fnMarkers = prevState.fnMarkers;
124
+ }
125
+ if (!tr.docChanged) {
126
+ return {
127
+ fnMarkers
128
+ };
129
+ }
130
+ const remote = tr.getMeta("remote"), fromFootnote = tr.getMeta("fromFootnote"), ranges = getAddedRanges(tr), deletedFootnotesIndexes = [];
131
+ fnMarkers = fnMarkers
132
+ .map(marker => ({
133
+ from: tr.mapping.map(marker.from, 1),
134
+ to: tr.mapping.map(marker.to, -1)
135
+ }))
136
+ .filter((marker, index) => {
137
+ if (marker.from !== marker.to - 1) {
138
+ deletedFootnotesIndexes.unshift(index);
139
+ return false;
140
+ }
141
+ return true;
142
+ });
143
+ if (fromFootnote) {
144
+ return { fnMarkers };
145
+ }
146
+ const footTr = options.editor.mod.footnotes.fnEditor.view.state.tr;
147
+ footTr.setMeta("fromMain", true);
148
+ deletedFootnotesIndexes.forEach(index => options.editor.mod.footnotes.fnEditor.removeFootnote(index, footTr));
149
+ ranges.forEach(range => {
150
+ let newFootnotes = findFootnoteMarkers(range.from, range.to, tr.doc);
151
+ if (newFootnotes.length) {
152
+ const firstFn = newFootnotes[0];
153
+ let offset = fnMarkers.findIndex(marker => marker.from > firstFn.from);
154
+ if (offset < 0) {
155
+ offset = fnMarkers.length;
156
+ }
157
+ if (remote) {
158
+ newFootnotes = newFootnotes.filter(newMarker => !fnMarkers.find(oldMarker => oldMarker.from === newMarker.from));
159
+ }
160
+ else {
161
+ newFootnotes.forEach((footnote, index) => {
162
+ const fnContent = state.doc.nodeAt(footnote.from).attrs.footnote;
163
+ options.editor.mod.footnotes.fnEditor.renderFootnote(fnContent, offset + index, footTr);
164
+ });
165
+ }
166
+ fnMarkers = fnMarkers
167
+ .concat(newFootnotes)
168
+ .sort((a, b) => (a.from > b.from ? 1 : -1));
169
+ }
170
+ });
171
+ const footMeta = tr.getMeta("toFoot");
172
+ if (footMeta) {
173
+ Object.entries(footMeta).forEach(([key, value]) => {
174
+ footTr.setMeta(key, value);
175
+ });
176
+ }
177
+ if (footTr.docChanged || footMeta) {
178
+ tr.setMeta("footTr", footTr);
179
+ }
180
+ return {
181
+ fnMarkers
182
+ };
98
183
  }
99
- const tr = newState.tr.setMeta("footnoteMarkers", {
100
- addedFootnotes,
101
- deletedFootnotes
102
- });
103
- return tr;
184
+ },
185
+ view(_editorView) {
186
+ return {
187
+ update: (_view, _prevState) => {
188
+ options.editor.mod.footnotes.layout.updateDOM();
189
+ }
190
+ };
104
191
  }
105
192
  });
106
193
  //# sourceMappingURL=footnote_markers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"footnote_markers.js","sourceRoot":"","sources":["../../src/state_plugins/footnote_markers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"footnote_markers.js","sourceRoot":"","sources":["../../src/state_plugins/footnote_markers.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -113,13 +113,15 @@ export interface EditorMod {
113
113
  fnEditor: {
114
114
  view: EditorView;
115
115
  renderAllFootnotes(): void;
116
+ renderFootnote(content: unknown, index: number, tr: Transaction): void;
117
+ removeFootnote(index: number, tr: Transaction): void;
116
118
  applyDiffs(diffs: unknown[], cid: unknown): void;
117
119
  schema: {
118
120
  cached: Record<string, unknown>;
119
121
  };
120
122
  };
121
123
  init(): void;
122
- layout?: {
124
+ layout: {
123
125
  updateDOM(): void;
124
126
  };
125
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiduswriter/editor",
3
- "version": "0.1.27",
3
+ "version": "0.1.29",
4
4
  "description": "Fidus Writer browser editor",
5
5
  "repository": {
6
6
  "type": "git",
@@ -170,7 +170,7 @@ export const contactsTemplate = ({contacts}: {contacts: Contact[]}) =>
170
170
  ? `${gettext("Invite")}:&nbsp;`
171
171
  : ""
172
172
  }
173
- ${escapeText(contact.name)}
173
+ ${escapeText(contact.name || "")}
174
174
 
175
175
  </span>
176
176
  </td>
@@ -196,7 +196,7 @@ export const collaboratorsTemplate = ({
196
196
  collaborator.holder.type === "userinvite"
197
197
  ? `${gettext("Invite")}: `
198
198
  : ""
199
- }${escapeText(collaborator.holder.name)}</span>
199
+ }${escapeText(collaborator.holder.name || "")}</span>
200
200
  </td>
201
201
  <td width="50" align="center">
202
202
  <div class="fw-inline edit-right-wrapper">
@@ -2,7 +2,9 @@ import {Plugin, PluginKey} from "prosemirror-state"
2
2
  import type {EditorState, Transaction} from "prosemirror-state"
3
3
  import type {Node} from "prosemirror-model"
4
4
 
5
- const key = new PluginKey("footnoteMarkers")
5
+ import type {Editor} from "../types.js"
6
+
7
+ const key = new PluginKey<{fnMarkers: FootnoteMarker[]}>("footnoteMarkers")
6
8
 
7
9
  export interface FootnoteMarker {
8
10
  from: number
@@ -29,41 +31,11 @@ export const findFootnoteMarkers = (
29
31
  return footnoteMarkers
30
32
  }
31
33
 
32
- export const getFootnoteMarkers = (state: EditorState): FootnoteMarker[] =>
33
- findFootnoteMarkers(0, state.doc.content.size, state.doc)
34
-
35
- export const getFootnoteMarkerContents = (state: EditorState): any[] =>
36
- getFootnoteMarkers(state).map(marker => {
37
- const node = state.doc.nodeAt(marker.from)
38
- return node ? node.attrs.footnote : undefined
39
- })
40
-
41
- export const updateFootnoteMarker = (
42
- state: EditorState,
43
- tr: Transaction,
44
- index: number,
45
- content: any
46
- ): void => {
47
- const markers = getFootnoteMarkers(state)
48
- const marker = markers[index]
49
- if (!marker) {
50
- return
51
- }
52
- const node = state.doc.nodeAt(marker.from)
53
- if (!node) {
54
- return
55
- }
56
- tr.setNodeMarkup(marker.from, null, {
57
- ...node.attrs,
58
- footnote: content
59
- })
60
- }
61
-
62
34
  const getAddedRanges = (tr: Transaction) => {
63
35
  /* find ranges of the current document that have been added by means of
64
36
  * a transaction.
65
37
  */
66
- const ranges: Array<{from: number; to: number}> = []
38
+ let ranges: Array<{from: number; to: number}> = []
67
39
  tr.steps.forEach((step, index) => {
68
40
  const stepData = step as unknown as Record<string, unknown>
69
41
  if (
@@ -76,67 +48,221 @@ const getAddedRanges = (tr: Transaction) => {
76
48
  })
77
49
  }
78
50
  const map = tr.mapping.maps[index]
79
- map.forEach((_oldStart, _oldEnd, newStart, newEnd) => {
80
- ranges.push({from: newStart, to: newEnd})
81
- })
51
+ ranges = ranges.map(range => ({
52
+ from: map.map(range.from, -1),
53
+ to: map.map(range.to, 1)
54
+ }))
82
55
  })
83
- return ranges
84
- }
85
56
 
86
- const getDeletedRanges = (tr: Transaction) => {
87
- const ranges: Array<{from: number; to: number}> = []
88
- tr.steps.forEach((step, index) => {
89
- const stepData = step as unknown as Record<string, unknown>
90
- if (
91
- stepData.jsonID === "replace" ||
92
- stepData.jsonID === "replaceWrap"
93
- ) {
94
- const map = tr.mapping.maps[index]
95
- map.forEach((oldStart, oldEnd, _newStart, _newEnd) => {
96
- if (oldStart !== oldEnd) {
97
- ranges.push({from: oldStart, to: oldEnd})
98
- }
99
- })
57
+ const nonOverlappingRanges: Array<{from: number; to: number}> = []
58
+
59
+ ranges.forEach(range => {
60
+ let addedRange = false
61
+ nonOverlappingRanges.forEach(noRange => {
62
+ if (
63
+ !addedRange &&
64
+ range.from <= noRange.from &&
65
+ range.to >= noRange.from
66
+ ) {
67
+ noRange.from = range.from
68
+ noRange.to = noRange.to > range.to ? noRange.to : range.to
69
+ addedRange = true
70
+ } else if (
71
+ !addedRange &&
72
+ range.from <= noRange.to &&
73
+ range.to >= noRange.to
74
+ ) {
75
+ noRange.from =
76
+ noRange.from < range.from ? noRange.from : range.from
77
+ noRange.to = range.to
78
+ addedRange = true
79
+ }
80
+ })
81
+ if (!addedRange) {
82
+ nonOverlappingRanges.push(range)
100
83
  }
101
84
  })
102
- return ranges
85
+
86
+ return nonOverlappingRanges
103
87
  }
104
88
 
105
- const getNewFootnotes = (tr: Transaction) => {
106
- const addedRanges = getAddedRanges(tr)
107
- return addedRanges
108
- .map(range => findFootnoteMarkers(range.from, range.to, tr.doc))
109
- .flat()
89
+ export const getFootnoteMarkerContents = (state: EditorState): any[] => {
90
+ const fnState = key.getState(state)
91
+ if (!fnState || !fnState.fnMarkers) {
92
+ return []
93
+ }
94
+ const fnMarkers = fnState.fnMarkers
95
+ return fnMarkers.map(
96
+ fnMarker => (state.doc.nodeAt(fnMarker.from) as Node).attrs.footnote
97
+ )
98
+ }
99
+
100
+ export const updateFootnoteMarker = (
101
+ state: EditorState,
102
+ tr: Transaction,
103
+ index: number,
104
+ content: any
105
+ ): void => {
106
+ const fnState = key.getState(state)
107
+ if (!fnState) {
108
+ return
109
+ }
110
+ const {fnMarkers} = fnState
111
+ const footnote = fnMarkers[index]
112
+ if (!footnote) {
113
+ return
114
+ }
115
+ const node = state.doc.nodeAt(footnote.from) as Node
116
+ if (node.attrs.footnote === content) {
117
+ return
118
+ }
119
+ tr.setNodeMarkup(footnote.from, node.type, {
120
+ footnote: content
121
+ })
122
+ tr.setMeta("fromFootnote", true)
110
123
  }
111
124
 
112
- const getDeletedFootnotes = (tr: Transaction) => {
113
- const deletedRanges = getDeletedRanges(tr)
114
- return deletedRanges
115
- .map(range => findFootnoteMarkers(range.from, range.to, tr.before))
116
- .flat()
125
+ export const getFootnoteMarkers = (state: EditorState): FootnoteMarker[] => {
126
+ const fnState = key.getState(state)
127
+ if (!fnState) {
128
+ return []
129
+ }
130
+ return fnState.fnMarkers
117
131
  }
118
132
 
119
- export const footnoteMarkersPlugin = (_options: {editor: unknown}) =>
120
- new Plugin({
133
+ export const footnoteMarkersPlugin = (options: {editor: Editor}) =>
134
+ new Plugin<{fnMarkers: FootnoteMarker[]}>({
121
135
  key,
122
- appendTransaction: (trs, _oldState, newState) => {
123
- const modified = trs.reduce(
124
- (modified, tr) => modified || tr.docChanged,
125
- false
126
- )
127
- if (!modified) {
128
- return
129
- }
130
- const addedFootnotes = trs.map(tr => getNewFootnotes(tr)).flat()
131
- const deletedFootnotes = trs.map(tr => getDeletedFootnotes(tr)).flat()
136
+ state: {
137
+ init(_config, state) {
138
+ const fnMarkers: FootnoteMarker[] = []
139
+ state.doc.descendants((node, pos) => {
140
+ if (node.type.name === "footnote") {
141
+ fnMarkers.push({
142
+ from: pos,
143
+ to: pos + node.nodeSize
144
+ })
145
+ }
146
+ })
147
+
148
+ return {
149
+ fnMarkers
150
+ }
151
+ },
152
+ apply(tr, _prev, oldState, state) {
153
+ const meta = tr.getMeta(key)
154
+ if (meta) {
155
+ return meta
156
+ }
132
157
 
133
- if (!addedFootnotes.length && !deletedFootnotes.length) {
134
- return
158
+ let fnMarkers: FootnoteMarker[] = []
159
+
160
+ const prevState = key.getState(oldState)
161
+ if (prevState) {
162
+ fnMarkers = prevState.fnMarkers
163
+ }
164
+
165
+ if (!tr.docChanged) {
166
+ return {
167
+ fnMarkers
168
+ }
169
+ }
170
+
171
+ const remote = tr.getMeta("remote"),
172
+ fromFootnote = tr.getMeta("fromFootnote"),
173
+ ranges = getAddedRanges(tr),
174
+ deletedFootnotesIndexes: number[] = []
175
+ fnMarkers = fnMarkers
176
+ .map(marker => ({
177
+ from: tr.mapping.map(marker.from, 1),
178
+ to: tr.mapping.map(marker.to, -1)
179
+ }))
180
+ .filter((marker, index) => {
181
+ if (marker.from !== marker.to - 1) {
182
+ deletedFootnotesIndexes.unshift(index)
183
+ return false
184
+ }
185
+ return true
186
+ })
187
+ if (fromFootnote) {
188
+ return {fnMarkers}
189
+ }
190
+ const footTr =
191
+ options.editor.mod.footnotes!.fnEditor.view.state.tr
192
+
193
+ footTr.setMeta("fromMain", true)
194
+
195
+ deletedFootnotesIndexes.forEach(index =>
196
+ options.editor.mod.footnotes!.fnEditor.removeFootnote(
197
+ index,
198
+ footTr
199
+ )
200
+ )
201
+ ranges.forEach(range => {
202
+ let newFootnotes = findFootnoteMarkers(
203
+ range.from,
204
+ range.to,
205
+ tr.doc
206
+ )
207
+ if (newFootnotes.length) {
208
+ const firstFn = newFootnotes[0]
209
+ let offset = fnMarkers.findIndex(
210
+ marker => marker.from > firstFn.from
211
+ )
212
+ if (offset < 0) {
213
+ offset = fnMarkers.length
214
+ }
215
+ if (remote) {
216
+ newFootnotes = newFootnotes.filter(
217
+ newMarker =>
218
+ !fnMarkers.find(
219
+ oldMarker =>
220
+ oldMarker.from === newMarker.from
221
+ )
222
+ )
223
+ } else {
224
+ newFootnotes.forEach((footnote, index) => {
225
+ const fnContent = (
226
+ state.doc.nodeAt(
227
+ footnote.from
228
+ ) as Node
229
+ ).attrs.footnote
230
+ options.editor.mod.footnotes!.fnEditor.renderFootnote(
231
+ fnContent,
232
+ offset + index,
233
+ footTr
234
+ )
235
+ })
236
+ }
237
+ fnMarkers = fnMarkers
238
+ .concat(newFootnotes)
239
+ .sort((a, b) => (a.from > b.from ? 1 : -1))
240
+ }
241
+ })
242
+
243
+ const footMeta: Record<string, unknown> | undefined =
244
+ tr.getMeta("toFoot")
245
+
246
+ if (footMeta) {
247
+ Object.entries(footMeta).forEach(([key, value]) => {
248
+ footTr.setMeta(key, value)
249
+ })
250
+ }
251
+
252
+ if (footTr.docChanged || footMeta) {
253
+ tr.setMeta("footTr", footTr)
254
+ }
255
+
256
+ return {
257
+ fnMarkers
258
+ }
259
+ }
260
+ },
261
+ view(_editorView) {
262
+ return {
263
+ update: (_view, _prevState) => {
264
+ options.editor.mod.footnotes!.layout.updateDOM()
265
+ }
135
266
  }
136
- const tr = newState.tr.setMeta("footnoteMarkers", {
137
- addedFootnotes,
138
- deletedFootnotes
139
- })
140
- return tr
141
267
  }
142
268
  })
package/src/types.ts CHANGED
@@ -123,11 +123,13 @@ export interface EditorMod {
123
123
  fnEditor: {
124
124
  view: EditorView
125
125
  renderAllFootnotes(): void
126
+ renderFootnote(content: unknown, index: number, tr: Transaction): void
127
+ removeFootnote(index: number, tr: Transaction): void
126
128
  applyDiffs(diffs: unknown[], cid: unknown): void
127
129
  schema: {cached: Record<string, unknown>}
128
130
  }
129
131
  init(): void
130
- layout?: {updateDOM(): void}
132
+ layout: {updateDOM(): void}
131
133
  }
132
134
  comments?: {
133
135
  store: {