@fiduswriter/editor 0.2.6 → 0.2.9

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.
Files changed (62) hide show
  1. package/css/figure.css +88 -0
  2. package/css/tracking.css +45 -0
  3. package/dist/copyright_dialog/templates.d.ts.map +1 -1
  4. package/dist/copyright_dialog/templates.js +11 -31
  5. package/dist/copyright_dialog/templates.js.map +1 -1
  6. package/dist/dialogs/epub_export.d.ts +15 -0
  7. package/dist/dialogs/epub_export.d.ts.map +1 -0
  8. package/dist/dialogs/epub_export.js +43 -0
  9. package/dist/dialogs/epub_export.js.map +1 -0
  10. package/dist/dialogs/html_export.d.ts +3 -0
  11. package/dist/dialogs/html_export.d.ts.map +1 -1
  12. package/dist/dialogs/html_export.js +4 -3
  13. package/dist/dialogs/html_export.js.map +1 -1
  14. package/dist/dialogs/index.d.ts +2 -0
  15. package/dist/dialogs/index.d.ts.map +1 -1
  16. package/dist/dialogs/index.js +2 -0
  17. package/dist/dialogs/index.js.map +1 -1
  18. package/dist/dialogs/template_export.d.ts +13 -0
  19. package/dist/dialogs/template_export.d.ts.map +1 -0
  20. package/dist/dialogs/template_export.js +46 -0
  21. package/dist/dialogs/template_export.js.map +1 -0
  22. package/dist/dialogs/templates.d.ts +9 -0
  23. package/dist/dialogs/templates.d.ts.map +1 -1
  24. package/dist/dialogs/templates.js +54 -12
  25. package/dist/dialogs/templates.js.map +1 -1
  26. package/dist/document_template/index.d.ts.map +1 -1
  27. package/dist/document_template/index.js +23 -4
  28. package/dist/document_template/index.js.map +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -3
  31. package/dist/index.js.map +1 -1
  32. package/dist/menus/headerbar/model.d.ts.map +1 -1
  33. package/dist/menus/headerbar/model.js +31 -10
  34. package/dist/menus/headerbar/model.js.map +1 -1
  35. package/dist/state_plugins/clipboard.d.ts.map +1 -1
  36. package/dist/state_plugins/clipboard.js +67 -3
  37. package/dist/state_plugins/clipboard.js.map +1 -1
  38. package/dist/track/accept.d.ts.map +1 -1
  39. package/dist/track/accept.js +21 -4
  40. package/dist/track/accept.js.map +1 -1
  41. package/dist/track/reject.d.ts.map +1 -1
  42. package/dist/track/reject.js +17 -5
  43. package/dist/track/reject.js.map +1 -1
  44. package/dist/types.d.ts +0 -1
  45. package/dist/types.d.ts.map +1 -1
  46. package/locale/en/messages.json +18 -1
  47. package/locale/en_US/messages.json +18 -1
  48. package/package.json +6 -6
  49. package/src/copyright_dialog/templates.ts +35 -31
  50. package/src/dialogs/epub_export.ts +66 -0
  51. package/src/dialogs/html_export.ts +11 -3
  52. package/src/dialogs/index.ts +2 -0
  53. package/src/dialogs/template_export.ts +66 -0
  54. package/src/dialogs/templates.ts +117 -14
  55. package/src/document_template/index.ts +23 -4
  56. package/src/index.ts +1 -3
  57. package/src/menus/headerbar/model.ts +39 -10
  58. package/src/state_plugins/clipboard.ts +89 -5
  59. package/src/track/accept.ts +29 -4
  60. package/src/track/reject.ts +23 -5
  61. package/src/types.ts +0 -1
  62. package/src/images/edit_dialog/model.ts +0 -5
@@ -19,7 +19,12 @@ export const reject = (
19
19
  return
20
20
  }
21
21
  const trackMark = nodeAtPos.marks.find(mark => mark.type.name === type)
22
- if (!trackMark) {
22
+ // Block level track changes are stored in the node's track attribute
23
+ // rather than in marks (figures, tables, text blocks).
24
+ const blockTrack = (
25
+ nodeAtPos.attrs.track as Array<{type: string}> | undefined
26
+ )?.find(track => track.type === type)
27
+ if (!trackMark && !blockTrack) {
23
28
  return
24
29
  }
25
30
  view.state.doc.nodesBetween(
@@ -38,10 +43,17 @@ export const reject = (
38
43
  // Change has already affected inline node. Don't apply to block level.
39
44
  return false
40
45
  }
41
- } else if (!trackMark.isInSet(node.marks)) {
42
- reachedEnd = true
43
- return false
44
- } else {
46
+ } else if (trackMark && !trackMark.isInSet(node.marks)) {
47
+ if (
48
+ !(
49
+ node.attrs.track as Array<{type: string}> | undefined
50
+ )?.some(track => track.type === type)
51
+ ) {
52
+ reachedEnd = true
53
+ return false
54
+ }
55
+ inlineChange = true
56
+ } else if (trackMark) {
45
57
  inlineChange = true
46
58
  }
47
59
  if (type === "insertion") {
@@ -66,6 +78,12 @@ export const reject = (
66
78
  )
67
79
  }
68
80
  } else if (type === "format_change") {
81
+ // format_change only exists as a mark, so trackMark is
82
+ // guaranteed to be set here (the guard above would have
83
+ // returned otherwise).
84
+ if (!trackMark) {
85
+ return
86
+ }
69
87
  ;(trackMark.attrs.before as string[]).forEach(oldMark =>
70
88
  tr.step(
71
89
  new AddMarkStep(
package/src/types.ts CHANGED
@@ -313,7 +313,6 @@ export interface EditorMenu {
313
313
  navigatorFilterModel: unknown
314
314
  orderedListMenuModel: unknown
315
315
  selectionMenuModel: unknown
316
- imageEditModel: unknown
317
316
  tableMenuModel: unknown
318
317
  figureMenuModel: unknown
319
318
  toolbarModel: unknown
@@ -1,5 +0,0 @@
1
- // TODO: image editing was originally part of the usermedia Django app.
2
- // This stub keeps the editor package buildable until a decision is made on
3
- // whether image editing belongs in @fiduswriter/editor, @fiduswriter/frontend,
4
- // or a separate package.
5
- export const imageEditModel = (): {content: unknown[]} => ({content: []})