@tiptap/vue-2 2.6.2 → 3.0.0-next.1

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