@tiptap/vue-2 2.5.0-beta.2 → 2.5.0-beta.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.
Files changed (183) hide show
  1. package/dist/index.cjs +340 -346
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +339 -339
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.umd.js +340 -346
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/packages/core/src/CommandManager.d.ts +20 -0
  8. package/dist/packages/core/src/Editor.d.ts +161 -0
  9. package/dist/packages/core/src/EventEmitter.d.ts +11 -0
  10. package/dist/packages/core/src/Extension.d.ts +343 -0
  11. package/dist/packages/core/src/ExtensionManager.d.ts +55 -0
  12. package/dist/packages/core/src/InputRule.d.ts +42 -0
  13. package/dist/packages/core/src/Mark.d.ts +451 -0
  14. package/dist/packages/core/src/Node.d.ts +611 -0
  15. package/dist/packages/core/src/NodePos.d.ts +44 -0
  16. package/dist/packages/core/src/NodeView.d.ts +31 -0
  17. package/dist/packages/core/src/PasteRule.d.ts +50 -0
  18. package/dist/packages/core/src/Tracker.d.ts +11 -0
  19. package/dist/packages/core/src/commands/blur.d.ts +13 -0
  20. package/dist/packages/core/src/commands/clearContent.d.ts +14 -0
  21. package/dist/packages/core/src/commands/clearNodes.d.ts +13 -0
  22. package/dist/packages/core/src/commands/command.d.ts +18 -0
  23. package/dist/packages/core/src/commands/createParagraphNear.d.ts +13 -0
  24. package/dist/packages/core/src/commands/cut.d.ts +20 -0
  25. package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +13 -0
  26. package/dist/packages/core/src/commands/deleteNode.d.ts +15 -0
  27. package/dist/packages/core/src/commands/deleteRange.d.ts +14 -0
  28. package/dist/packages/core/src/commands/deleteSelection.d.ts +13 -0
  29. package/dist/packages/core/src/commands/enter.d.ts +13 -0
  30. package/dist/packages/core/src/commands/exitCode.d.ts +13 -0
  31. package/dist/packages/core/src/commands/extendMarkRange.d.ts +25 -0
  32. package/dist/packages/core/src/commands/first.d.ts +14 -0
  33. package/dist/packages/core/src/commands/focus.d.ts +27 -0
  34. package/dist/packages/core/src/commands/forEach.d.ts +14 -0
  35. package/dist/packages/core/src/commands/index.d.ts +55 -0
  36. package/dist/packages/core/src/commands/insertContent.d.ts +34 -0
  37. package/dist/packages/core/src/commands/insertContentAt.d.ts +47 -0
  38. package/dist/packages/core/src/commands/join.d.ts +41 -0
  39. package/dist/packages/core/src/commands/joinItemBackward.d.ts +13 -0
  40. package/dist/packages/core/src/commands/joinItemForward.d.ts +13 -0
  41. package/dist/packages/core/src/commands/joinTextblockBackward.d.ts +12 -0
  42. package/dist/packages/core/src/commands/joinTextblockForward.d.ts +12 -0
  43. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +14 -0
  44. package/dist/packages/core/src/commands/lift.d.ts +17 -0
  45. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +13 -0
  46. package/dist/packages/core/src/commands/liftListItem.d.ts +15 -0
  47. package/dist/packages/core/src/commands/newlineInCode.d.ts +13 -0
  48. package/dist/packages/core/src/commands/resetAttributes.d.ts +16 -0
  49. package/dist/packages/core/src/commands/scrollIntoView.d.ts +13 -0
  50. package/dist/packages/core/src/commands/selectAll.d.ts +13 -0
  51. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +13 -0
  52. package/dist/packages/core/src/commands/selectNodeForward.d.ts +13 -0
  53. package/dist/packages/core/src/commands/selectParentNode.d.ts +13 -0
  54. package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +13 -0
  55. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +13 -0
  56. package/dist/packages/core/src/commands/setContent.d.ts +40 -0
  57. package/dist/packages/core/src/commands/setMark.d.ts +15 -0
  58. package/dist/packages/core/src/commands/setMeta.d.ts +15 -0
  59. package/dist/packages/core/src/commands/setNode.d.ts +16 -0
  60. package/dist/packages/core/src/commands/setNodeSelection.d.ts +14 -0
  61. package/dist/packages/core/src/commands/setTextSelection.d.ts +14 -0
  62. package/dist/packages/core/src/commands/sinkListItem.d.ts +15 -0
  63. package/dist/packages/core/src/commands/splitBlock.d.ts +17 -0
  64. package/dist/packages/core/src/commands/splitListItem.d.ts +15 -0
  65. package/dist/packages/core/src/commands/toggleList.d.ts +18 -0
  66. package/dist/packages/core/src/commands/toggleMark.d.ts +30 -0
  67. package/dist/packages/core/src/commands/toggleNode.d.ts +17 -0
  68. package/dist/packages/core/src/commands/toggleWrap.d.ts +16 -0
  69. package/dist/packages/core/src/commands/undoInputRule.d.ts +13 -0
  70. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +13 -0
  71. package/dist/packages/core/src/commands/unsetMark.d.ts +25 -0
  72. package/dist/packages/core/src/commands/updateAttributes.d.ts +24 -0
  73. package/dist/packages/core/src/commands/wrapIn.d.ts +16 -0
  74. package/dist/packages/core/src/commands/wrapInList.d.ts +16 -0
  75. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +5 -0
  76. package/dist/packages/core/src/extensions/commands.d.ts +3 -0
  77. package/dist/packages/core/src/extensions/editable.d.ts +2 -0
  78. package/dist/packages/core/src/extensions/focusEvents.d.ts +2 -0
  79. package/dist/packages/core/src/extensions/index.d.ts +6 -0
  80. package/dist/packages/core/src/extensions/keymap.d.ts +2 -0
  81. package/dist/packages/core/src/extensions/tabindex.d.ts +2 -0
  82. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +10 -0
  83. package/dist/packages/core/src/helpers/createChainableState.d.ts +10 -0
  84. package/dist/packages/core/src/helpers/createDocument.d.ts +12 -0
  85. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +15 -0
  86. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +7 -0
  87. package/dist/packages/core/src/helpers/findChildren.d.ts +9 -0
  88. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +10 -0
  89. package/dist/packages/core/src/helpers/findParentNode.d.ts +16 -0
  90. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +17 -0
  91. package/dist/packages/core/src/helpers/generateHTML.d.ts +8 -0
  92. package/dist/packages/core/src/helpers/generateJSON.d.ts +8 -0
  93. package/dist/packages/core/src/helpers/generateText.d.ts +12 -0
  94. package/dist/packages/core/src/helpers/getAttributes.d.ts +9 -0
  95. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +6 -0
  96. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +11 -0
  97. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +8 -0
  98. package/dist/packages/core/src/helpers/getExtensionField.d.ts +9 -0
  99. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -0
  100. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +3 -0
  101. package/dist/packages/core/src/helpers/getMarkRange.d.ts +3 -0
  102. package/dist/packages/core/src/helpers/getMarkType.d.ts +2 -0
  103. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +3 -0
  104. package/dist/packages/core/src/helpers/getNodeAtPosition.d.ts +11 -0
  105. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +3 -0
  106. package/dist/packages/core/src/helpers/getNodeType.d.ts +2 -0
  107. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +3 -0
  108. package/dist/packages/core/src/helpers/getSchema.d.ts +4 -0
  109. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +10 -0
  110. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +8 -0
  111. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +8 -0
  112. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +9 -0
  113. package/dist/packages/core/src/helpers/getText.d.ts +15 -0
  114. package/dist/packages/core/src/helpers/getTextBetween.d.ts +14 -0
  115. package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +8 -0
  116. package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +8 -0
  117. package/dist/packages/core/src/helpers/index.d.ts +50 -0
  118. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +9 -0
  119. package/dist/packages/core/src/helpers/isActive.d.ts +2 -0
  120. package/dist/packages/core/src/helpers/isAtEndOfNode.d.ts +2 -0
  121. package/dist/packages/core/src/helpers/isAtStartOfNode.d.ts +2 -0
  122. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -0
  123. package/dist/packages/core/src/helpers/isList.d.ts +2 -0
  124. package/dist/packages/core/src/helpers/isMarkActive.d.ts +3 -0
  125. package/dist/packages/core/src/helpers/isNodeActive.d.ts +3 -0
  126. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +2 -0
  127. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +2 -0
  128. package/dist/packages/core/src/helpers/isTextSelection.d.ts +2 -0
  129. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -0
  130. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +4 -0
  131. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +2 -0
  132. package/dist/packages/core/src/helpers/splitExtensions.d.ts +9 -0
  133. package/dist/packages/core/src/index.d.ts +24 -0
  134. package/dist/packages/core/src/inputRules/index.d.ts +5 -0
  135. package/dist/packages/core/src/inputRules/markInputRule.d.ts +13 -0
  136. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +23 -0
  137. package/dist/packages/core/src/inputRules/textInputRule.d.ts +10 -0
  138. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +15 -0
  139. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +28 -0
  140. package/dist/packages/core/src/pasteRules/index.d.ts +3 -0
  141. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +13 -0
  142. package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +13 -0
  143. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +10 -0
  144. package/dist/packages/core/src/style.d.ts +1 -0
  145. package/dist/packages/core/src/types.d.ts +250 -0
  146. package/dist/packages/core/src/utilities/callOrReturn.d.ts +9 -0
  147. package/dist/packages/core/src/utilities/createStyleTag.d.ts +1 -0
  148. package/dist/packages/core/src/utilities/deleteProps.d.ts +6 -0
  149. package/dist/packages/core/src/utilities/elementFromString.d.ts +1 -0
  150. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +1 -0
  151. package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
  152. package/dist/packages/core/src/utilities/fromString.d.ts +1 -0
  153. package/dist/packages/core/src/utilities/index.d.ts +20 -0
  154. package/dist/packages/core/src/utilities/isAndroid.d.ts +1 -0
  155. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -0
  156. package/dist/packages/core/src/utilities/isFunction.d.ts +1 -0
  157. package/dist/packages/core/src/utilities/isMacOS.d.ts +1 -0
  158. package/dist/packages/core/src/utilities/isNumber.d.ts +1 -0
  159. package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -0
  160. package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -0
  161. package/dist/packages/core/src/utilities/isString.d.ts +1 -0
  162. package/dist/packages/core/src/utilities/isiOS.d.ts +1 -0
  163. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -0
  164. package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -0
  165. package/dist/packages/core/src/utilities/minMax.d.ts +1 -0
  166. package/dist/packages/core/src/utilities/objectIncludes.d.ts +8 -0
  167. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +8 -0
  168. package/dist/packages/extension-bubble-menu/src/bubble-menu-plugin.d.ts +76 -0
  169. package/dist/packages/extension-bubble-menu/src/bubble-menu.d.ts +15 -0
  170. package/dist/packages/extension-bubble-menu/src/index.d.ts +4 -0
  171. package/dist/packages/extension-floating-menu/src/floating-menu-plugin.d.ts +66 -0
  172. package/dist/packages/extension-floating-menu/src/floating-menu.d.ts +15 -0
  173. package/dist/packages/extension-floating-menu/src/index.d.ts +4 -0
  174. package/dist/packages/vue-2/src/BubbleMenu.d.ts +10 -10
  175. package/dist/packages/vue-2/src/Editor.d.ts +5 -5
  176. package/dist/packages/vue-2/src/EditorContent.d.ts +6 -6
  177. package/dist/packages/vue-2/src/FloatingMenu.d.ts +9 -9
  178. package/dist/packages/vue-2/src/NodeViewContent.d.ts +5 -5
  179. package/dist/packages/vue-2/src/NodeViewWrapper.d.ts +9 -9
  180. package/dist/packages/vue-2/src/VueNodeViewRenderer.d.ts +37 -37
  181. package/dist/packages/vue-2/src/VueRenderer.d.ts +12 -12
  182. package/dist/packages/vue-2/src/index.d.ts +9 -9
  183. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -5,359 +5,359 @@ import { FloatingMenuPlugin } from '@tiptap/extension-floating-menu';
5
5
  import Vue from 'vue';
6
6
  import { objectProp, booleanProp, functionProp } from 'vue-ts-types';
7
7
 
8
- const BubbleMenu = {
9
- name: 'BubbleMenu',
10
- props: {
11
- pluginKey: {
12
- type: [String, Object],
13
- default: 'bubbleMenu',
14
- },
15
- editor: {
16
- type: Object,
17
- required: true,
18
- },
19
- updateDelay: {
20
- type: Number,
21
- },
22
- tippyOptions: {
23
- type: Object,
24
- default: () => ({}),
25
- },
26
- shouldShow: {
27
- type: Function,
28
- default: null,
29
- },
30
- },
31
- watch: {
32
- editor: {
33
- immediate: true,
34
- handler(editor) {
35
- if (!editor) {
36
- return;
37
- }
38
- this.$nextTick(() => {
39
- editor.registerPlugin(BubbleMenuPlugin({
40
- updateDelay: this.updateDelay,
41
- editor,
42
- element: this.$el,
43
- pluginKey: this.pluginKey,
44
- shouldShow: this.shouldShow,
45
- tippyOptions: this.tippyOptions,
46
- }));
47
- });
48
- },
49
- },
50
- },
51
- render(createElement) {
52
- return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default);
53
- },
54
- beforeDestroy() {
55
- this.editor.unregisterPlugin(this.pluginKey);
56
- },
8
+ const BubbleMenu = {
9
+ name: 'BubbleMenu',
10
+ props: {
11
+ pluginKey: {
12
+ type: [String, Object],
13
+ default: 'bubbleMenu',
14
+ },
15
+ editor: {
16
+ type: Object,
17
+ required: true,
18
+ },
19
+ updateDelay: {
20
+ type: Number,
21
+ },
22
+ tippyOptions: {
23
+ type: Object,
24
+ default: () => ({}),
25
+ },
26
+ shouldShow: {
27
+ type: Function,
28
+ default: null,
29
+ },
30
+ },
31
+ watch: {
32
+ editor: {
33
+ immediate: true,
34
+ handler(editor) {
35
+ if (!editor) {
36
+ return;
37
+ }
38
+ this.$nextTick(() => {
39
+ editor.registerPlugin(BubbleMenuPlugin({
40
+ updateDelay: this.updateDelay,
41
+ editor,
42
+ element: this.$el,
43
+ pluginKey: this.pluginKey,
44
+ shouldShow: this.shouldShow,
45
+ tippyOptions: this.tippyOptions,
46
+ }));
47
+ });
48
+ },
49
+ },
50
+ },
51
+ render(createElement) {
52
+ return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default);
53
+ },
54
+ beforeDestroy() {
55
+ this.editor.unregisterPlugin(this.pluginKey);
56
+ },
57
57
  };
58
58
 
59
- class Editor extends Editor$1 {
60
- constructor() {
61
- super(...arguments);
62
- this.contentComponent = null;
63
- }
59
+ class Editor extends Editor$1 {
60
+ constructor() {
61
+ super(...arguments);
62
+ this.contentComponent = null;
63
+ }
64
64
  }
65
65
 
66
- const EditorContent = {
67
- name: 'EditorContent',
68
- props: {
69
- editor: {
70
- default: null,
71
- type: Object,
72
- },
73
- },
74
- watch: {
75
- editor: {
76
- immediate: true,
77
- handler(editor) {
78
- if (editor && editor.options.element) {
79
- this.$nextTick(() => {
80
- const element = this.$el;
81
- if (!element || !editor.options.element.firstChild) {
82
- return;
83
- }
84
- element.append(...editor.options.element.childNodes);
85
- editor.contentComponent = this;
86
- editor.setOptions({
87
- element,
88
- });
89
- editor.createNodeViews();
90
- });
91
- }
92
- },
93
- },
94
- },
95
- render(createElement) {
96
- return createElement('div');
97
- },
98
- beforeDestroy() {
99
- const { editor } = this;
100
- if (!editor) {
101
- return;
102
- }
103
- if (!editor.isDestroyed) {
104
- editor.view.setProps({
105
- nodeViews: {},
106
- });
107
- }
108
- editor.contentComponent = null;
109
- if (!editor.options.element.firstChild) {
110
- return;
111
- }
112
- const newElement = document.createElement('div');
113
- newElement.append(...editor.options.element.childNodes);
114
- editor.setOptions({
115
- element: newElement,
116
- });
117
- },
66
+ const EditorContent = {
67
+ name: 'EditorContent',
68
+ props: {
69
+ editor: {
70
+ default: null,
71
+ type: Object,
72
+ },
73
+ },
74
+ watch: {
75
+ editor: {
76
+ immediate: true,
77
+ handler(editor) {
78
+ if (editor && editor.options.element) {
79
+ this.$nextTick(() => {
80
+ const element = this.$el;
81
+ if (!element || !editor.options.element.firstChild) {
82
+ return;
83
+ }
84
+ element.append(...editor.options.element.childNodes);
85
+ editor.contentComponent = this;
86
+ editor.setOptions({
87
+ element,
88
+ });
89
+ editor.createNodeViews();
90
+ });
91
+ }
92
+ },
93
+ },
94
+ },
95
+ render(createElement) {
96
+ return createElement('div');
97
+ },
98
+ beforeDestroy() {
99
+ const { editor } = this;
100
+ if (!editor) {
101
+ return;
102
+ }
103
+ if (!editor.isDestroyed) {
104
+ editor.view.setProps({
105
+ nodeViews: {},
106
+ });
107
+ }
108
+ editor.contentComponent = null;
109
+ if (!editor.options.element.firstChild) {
110
+ return;
111
+ }
112
+ const newElement = document.createElement('div');
113
+ newElement.append(...editor.options.element.childNodes);
114
+ editor.setOptions({
115
+ element: newElement,
116
+ });
117
+ },
118
118
  };
119
119
 
120
- const FloatingMenu = {
121
- name: 'FloatingMenu',
122
- props: {
123
- pluginKey: {
124
- type: [String, Object],
125
- default: 'floatingMenu',
126
- },
127
- editor: {
128
- type: Object,
129
- required: true,
130
- },
131
- tippyOptions: {
132
- type: Object,
133
- default: () => ({}),
134
- },
135
- shouldShow: {
136
- type: Function,
137
- default: null,
138
- },
139
- },
140
- watch: {
141
- editor: {
142
- immediate: true,
143
- handler(editor) {
144
- if (!editor) {
145
- return;
146
- }
147
- this.$nextTick(() => {
148
- editor.registerPlugin(FloatingMenuPlugin({
149
- pluginKey: this.pluginKey,
150
- editor,
151
- element: this.$el,
152
- tippyOptions: this.tippyOptions,
153
- shouldShow: this.shouldShow,
154
- }));
155
- });
156
- },
157
- },
158
- },
159
- render(createElement) {
160
- return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default);
161
- },
162
- beforeDestroy() {
163
- this.editor.unregisterPlugin(this.pluginKey);
164
- },
120
+ const FloatingMenu = {
121
+ name: 'FloatingMenu',
122
+ props: {
123
+ pluginKey: {
124
+ type: [String, Object],
125
+ default: 'floatingMenu',
126
+ },
127
+ editor: {
128
+ type: Object,
129
+ required: true,
130
+ },
131
+ tippyOptions: {
132
+ type: Object,
133
+ default: () => ({}),
134
+ },
135
+ shouldShow: {
136
+ type: Function,
137
+ default: null,
138
+ },
139
+ },
140
+ watch: {
141
+ editor: {
142
+ immediate: true,
143
+ handler(editor) {
144
+ if (!editor) {
145
+ return;
146
+ }
147
+ this.$nextTick(() => {
148
+ editor.registerPlugin(FloatingMenuPlugin({
149
+ pluginKey: this.pluginKey,
150
+ editor,
151
+ element: this.$el,
152
+ tippyOptions: this.tippyOptions,
153
+ shouldShow: this.shouldShow,
154
+ }));
155
+ });
156
+ },
157
+ },
158
+ },
159
+ render(createElement) {
160
+ return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default);
161
+ },
162
+ beforeDestroy() {
163
+ this.editor.unregisterPlugin(this.pluginKey);
164
+ },
165
165
  };
166
166
 
167
- const NodeViewContent = {
168
- props: {
169
- as: {
170
- type: String,
171
- default: 'div',
172
- },
173
- },
174
- render(createElement) {
175
- return createElement(this.as, {
176
- style: {
177
- whiteSpace: 'pre-wrap',
178
- },
179
- attrs: {
180
- 'data-node-view-content': '',
181
- },
182
- });
183
- },
167
+ const NodeViewContent = {
168
+ props: {
169
+ as: {
170
+ type: String,
171
+ default: 'div',
172
+ },
173
+ },
174
+ render(createElement) {
175
+ return createElement(this.as, {
176
+ style: {
177
+ whiteSpace: 'pre-wrap',
178
+ },
179
+ attrs: {
180
+ 'data-node-view-content': '',
181
+ },
182
+ });
183
+ },
184
184
  };
185
185
 
186
- const NodeViewWrapper = {
187
- props: {
188
- as: {
189
- type: String,
190
- default: 'div',
191
- },
192
- },
193
- inject: ['onDragStart', 'decorationClasses'],
194
- render(createElement) {
195
- return createElement(this.as, {
196
- class: this.decorationClasses.value,
197
- style: {
198
- whiteSpace: 'normal',
199
- },
200
- attrs: {
201
- 'data-node-view-wrapper': '',
202
- },
203
- on: {
204
- dragstart: this.onDragStart,
205
- },
206
- }, this.$slots.default);
207
- },
186
+ const NodeViewWrapper = {
187
+ props: {
188
+ as: {
189
+ type: String,
190
+ default: 'div',
191
+ },
192
+ },
193
+ inject: ['onDragStart', 'decorationClasses'],
194
+ render(createElement) {
195
+ return createElement(this.as, {
196
+ class: this.decorationClasses.value,
197
+ style: {
198
+ whiteSpace: 'normal',
199
+ },
200
+ attrs: {
201
+ 'data-node-view-wrapper': '',
202
+ },
203
+ on: {
204
+ dragstart: this.onDragStart,
205
+ },
206
+ }, this.$slots.default);
207
+ },
208
208
  };
209
209
 
210
- /**
211
- * The VueRenderer class is responsible for rendering a Vue component as a ProseMirror node view.
212
- */
213
- class VueRenderer {
214
- constructor(component, props) {
215
- const Component = (typeof component === 'function') ? component : Vue.extend(component);
216
- this.ref = new Component(props).$mount();
217
- }
218
- get element() {
219
- return this.ref.$el;
220
- }
221
- updateProps(props = {}) {
222
- var _a, _b, _c;
223
- if (!this.ref.$props) {
224
- return;
225
- }
226
- // prevents `Avoid mutating a prop directly` error message
227
- // Fix: `VueNodeViewRenderer` change vue Constructor `config.silent` not working
228
- const currentVueConstructor = (_c = (_b = (_a = this.ref.$props.editor) === null || _a === void 0 ? void 0 : _a.contentComponent) === null || _b === void 0 ? void 0 : _b.$options._base) !== null && _c !== void 0 ? _c : Vue; // eslint-disable-line
229
- const originalSilent = currentVueConstructor.config.silent;
230
- currentVueConstructor.config.silent = true;
231
- Object
232
- .entries(props)
233
- .forEach(([key, value]) => {
234
- this.ref.$props[key] = value;
235
- });
236
- currentVueConstructor.config.silent = originalSilent;
237
- }
238
- destroy() {
239
- this.ref.$destroy();
240
- }
210
+ /**
211
+ * The VueRenderer class is responsible for rendering a Vue component as a ProseMirror node view.
212
+ */
213
+ class VueRenderer {
214
+ constructor(component, props) {
215
+ const Component = (typeof component === 'function') ? component : Vue.extend(component);
216
+ this.ref = new Component(props).$mount();
217
+ }
218
+ get element() {
219
+ return this.ref.$el;
220
+ }
221
+ updateProps(props = {}) {
222
+ var _a, _b, _c;
223
+ if (!this.ref.$props) {
224
+ return;
225
+ }
226
+ // prevents `Avoid mutating a prop directly` error message
227
+ // Fix: `VueNodeViewRenderer` change vue Constructor `config.silent` not working
228
+ const currentVueConstructor = (_c = (_b = (_a = this.ref.$props.editor) === null || _a === void 0 ? void 0 : _a.contentComponent) === null || _b === void 0 ? void 0 : _b.$options._base) !== null && _c !== void 0 ? _c : Vue; // eslint-disable-line
229
+ const originalSilent = currentVueConstructor.config.silent;
230
+ currentVueConstructor.config.silent = true;
231
+ Object
232
+ .entries(props)
233
+ .forEach(([key, value]) => {
234
+ this.ref.$props[key] = value;
235
+ });
236
+ currentVueConstructor.config.silent = originalSilent;
237
+ }
238
+ destroy() {
239
+ this.ref.$destroy();
240
+ }
241
241
  }
242
242
 
243
- const nodeViewProps = {
244
- editor: objectProp().required,
245
- node: objectProp().required,
246
- decorations: objectProp().required,
247
- selected: booleanProp().required,
248
- extension: objectProp().required,
249
- getPos: functionProp().required,
250
- updateAttributes: functionProp().required,
251
- deleteNode: functionProp().required,
252
- };
253
- class VueNodeView extends NodeView {
254
- mount() {
255
- var _a, _b;
256
- const props = {
257
- editor: this.editor,
258
- node: this.node,
259
- decorations: this.decorations,
260
- selected: false,
261
- extension: this.extension,
262
- getPos: () => this.getPos(),
263
- updateAttributes: (attributes = {}) => this.updateAttributes(attributes),
264
- deleteNode: () => this.deleteNode(),
265
- };
266
- const onDragStart = this.onDragStart.bind(this);
267
- this.decorationClasses = Vue.observable({
268
- value: this.getDecorationClasses(),
269
- });
270
- // @ts-ignore
271
- const vue = (_b = (_a = this.editor.contentComponent) === null || _a === void 0 ? void 0 : _a.$options._base) !== null && _b !== void 0 ? _b : Vue; // eslint-disable-line
272
- const Component = vue.extend(this.component).extend({
273
- props: Object.keys(props),
274
- provide: () => {
275
- return {
276
- onDragStart,
277
- decorationClasses: this.decorationClasses,
278
- };
279
- },
280
- });
281
- this.renderer = new VueRenderer(Component, {
282
- parent: this.editor.contentComponent,
283
- propsData: props,
284
- });
285
- }
286
- get dom() {
287
- if (!this.renderer.element.hasAttribute('data-node-view-wrapper')) {
288
- throw Error('Please use the NodeViewWrapper component for your node view.');
289
- }
290
- return this.renderer.element;
291
- }
292
- get contentDOM() {
293
- if (this.node.isLeaf) {
294
- return null;
295
- }
296
- const contentElement = this.dom.querySelector('[data-node-view-content]');
297
- return (contentElement || this.dom);
298
- }
299
- update(node, decorations) {
300
- const updateProps = (props) => {
301
- this.decorationClasses.value = this.getDecorationClasses();
302
- this.renderer.updateProps(props);
303
- };
304
- if (typeof this.options.update === 'function') {
305
- const oldNode = this.node;
306
- const oldDecorations = this.decorations;
307
- this.node = node;
308
- this.decorations = decorations;
309
- return this.options.update({
310
- oldNode,
311
- oldDecorations,
312
- newNode: node,
313
- newDecorations: decorations,
314
- updateProps: () => updateProps({ node, decorations }),
315
- });
316
- }
317
- if (node.type !== this.node.type) {
318
- return false;
319
- }
320
- if (node === this.node && this.decorations === decorations) {
321
- return true;
322
- }
323
- this.node = node;
324
- this.decorations = decorations;
325
- updateProps({ node, decorations });
326
- return true;
327
- }
328
- selectNode() {
329
- this.renderer.updateProps({
330
- selected: true,
331
- });
332
- this.renderer.element.classList.add('ProseMirror-selectednode');
333
- }
334
- deselectNode() {
335
- this.renderer.updateProps({
336
- selected: false,
337
- });
338
- this.renderer.element.classList.remove('ProseMirror-selectednode');
339
- }
340
- getDecorationClasses() {
341
- return (this.decorations
342
- // @ts-ignore
343
- .map(item => item.type.attrs.class)
344
- .flat()
345
- .join(' '));
346
- }
347
- destroy() {
348
- this.renderer.destroy();
349
- }
350
- }
351
- function VueNodeViewRenderer(component, options) {
352
- return (props) => {
353
- // try to get the parent component
354
- // this is important for vue devtools to show the component hierarchy correctly
355
- // maybe it’s `undefined` because <editor-content> isn’t rendered yet
356
- if (!props.editor.contentComponent) {
357
- return {};
358
- }
359
- return new VueNodeView(component, props, options);
360
- };
243
+ const nodeViewProps = {
244
+ editor: objectProp().required,
245
+ node: objectProp().required,
246
+ decorations: objectProp().required,
247
+ selected: booleanProp().required,
248
+ extension: objectProp().required,
249
+ getPos: functionProp().required,
250
+ updateAttributes: functionProp().required,
251
+ deleteNode: functionProp().required,
252
+ };
253
+ class VueNodeView extends NodeView {
254
+ mount() {
255
+ var _a, _b;
256
+ const props = {
257
+ editor: this.editor,
258
+ node: this.node,
259
+ decorations: this.decorations,
260
+ selected: false,
261
+ extension: this.extension,
262
+ getPos: () => this.getPos(),
263
+ updateAttributes: (attributes = {}) => this.updateAttributes(attributes),
264
+ deleteNode: () => this.deleteNode(),
265
+ };
266
+ const onDragStart = this.onDragStart.bind(this);
267
+ this.decorationClasses = Vue.observable({
268
+ value: this.getDecorationClasses(),
269
+ });
270
+ // @ts-ignore
271
+ const vue = (_b = (_a = this.editor.contentComponent) === null || _a === void 0 ? void 0 : _a.$options._base) !== null && _b !== void 0 ? _b : Vue; // eslint-disable-line
272
+ const Component = vue.extend(this.component).extend({
273
+ props: Object.keys(props),
274
+ provide: () => {
275
+ return {
276
+ onDragStart,
277
+ decorationClasses: this.decorationClasses,
278
+ };
279
+ },
280
+ });
281
+ this.renderer = new VueRenderer(Component, {
282
+ parent: this.editor.contentComponent,
283
+ propsData: props,
284
+ });
285
+ }
286
+ get dom() {
287
+ if (!this.renderer.element.hasAttribute('data-node-view-wrapper')) {
288
+ throw Error('Please use the NodeViewWrapper component for your node view.');
289
+ }
290
+ return this.renderer.element;
291
+ }
292
+ get contentDOM() {
293
+ if (this.node.isLeaf) {
294
+ return null;
295
+ }
296
+ const contentElement = this.dom.querySelector('[data-node-view-content]');
297
+ return (contentElement || this.dom);
298
+ }
299
+ update(node, decorations) {
300
+ const updateProps = (props) => {
301
+ this.decorationClasses.value = this.getDecorationClasses();
302
+ this.renderer.updateProps(props);
303
+ };
304
+ if (typeof this.options.update === 'function') {
305
+ const oldNode = this.node;
306
+ const oldDecorations = this.decorations;
307
+ this.node = node;
308
+ this.decorations = decorations;
309
+ return this.options.update({
310
+ oldNode,
311
+ oldDecorations,
312
+ newNode: node,
313
+ newDecorations: decorations,
314
+ updateProps: () => updateProps({ node, decorations }),
315
+ });
316
+ }
317
+ if (node.type !== this.node.type) {
318
+ return false;
319
+ }
320
+ if (node === this.node && this.decorations === decorations) {
321
+ return true;
322
+ }
323
+ this.node = node;
324
+ this.decorations = decorations;
325
+ updateProps({ node, decorations });
326
+ return true;
327
+ }
328
+ selectNode() {
329
+ this.renderer.updateProps({
330
+ selected: true,
331
+ });
332
+ this.renderer.element.classList.add('ProseMirror-selectednode');
333
+ }
334
+ deselectNode() {
335
+ this.renderer.updateProps({
336
+ selected: false,
337
+ });
338
+ this.renderer.element.classList.remove('ProseMirror-selectednode');
339
+ }
340
+ getDecorationClasses() {
341
+ return (this.decorations
342
+ // @ts-ignore
343
+ .map(item => item.type.attrs.class)
344
+ .flat()
345
+ .join(' '));
346
+ }
347
+ destroy() {
348
+ this.renderer.destroy();
349
+ }
350
+ }
351
+ function VueNodeViewRenderer(component, options) {
352
+ return (props) => {
353
+ // try to get the parent component
354
+ // this is important for vue devtools to show the component hierarchy correctly
355
+ // maybe it’s `undefined` because <editor-content> isn’t rendered yet
356
+ if (!props.editor.contentComponent) {
357
+ return {};
358
+ }
359
+ return new VueNodeView(component, props, options);
360
+ };
361
361
  }
362
362
 
363
363
  export { BubbleMenu, Editor, EditorContent, FloatingMenu, NodeViewContent, NodeViewWrapper, VueNodeViewRenderer, VueRenderer, nodeViewProps };