@tiptap/extension-mention 2.0.0-beta.21 → 2.0.0-beta.210

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.
@@ -1,100 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var core = require('@tiptap/core');
6
- var Suggestion = require('@tiptap/suggestion');
7
-
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
-
10
- var Suggestion__default = /*#__PURE__*/_interopDefaultLegacy(Suggestion);
11
-
12
- const Mention = core.Node.create({
13
- name: 'mention',
14
- defaultOptions: {
15
- HTMLAttributes: {},
16
- suggestion: {
17
- char: '@',
18
- command: ({ editor, range, props }) => {
19
- editor
20
- .chain()
21
- .focus()
22
- .replaceRange(range, 'mention', props)
23
- .insertContent(' ')
24
- .run();
25
- },
26
- allow: ({ editor, range }) => {
27
- return editor.can().replaceRange(range, 'mention');
28
- },
29
- },
30
- },
31
- group: 'inline',
32
- inline: true,
33
- selectable: false,
34
- atom: true,
35
- addAttributes() {
36
- return {
37
- id: {
38
- default: null,
39
- parseHTML: element => {
40
- return {
41
- id: element.getAttribute('data-mention'),
42
- };
43
- },
44
- renderHTML: attributes => {
45
- if (!attributes.id) {
46
- return {};
47
- }
48
- return {
49
- 'data-mention': attributes.id,
50
- };
51
- },
52
- },
53
- };
54
- },
55
- parseHTML() {
56
- return [
57
- {
58
- tag: 'span[data-mention]',
59
- },
60
- ];
61
- },
62
- renderHTML({ node, HTMLAttributes }) {
63
- return ['span', core.mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id}`];
64
- },
65
- renderText({ node }) {
66
- return `@${node.attrs.id}`;
67
- },
68
- addKeyboardShortcuts() {
69
- return {
70
- Backspace: () => this.editor.commands.command(({ tr, state }) => {
71
- let isMention = false;
72
- const { selection } = state;
73
- const { empty, anchor } = selection;
74
- if (!empty) {
75
- return false;
76
- }
77
- state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
78
- if (node.type.name === 'mention') {
79
- isMention = true;
80
- tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize);
81
- return false;
82
- }
83
- });
84
- return isMention;
85
- }),
86
- };
87
- },
88
- addProseMirrorPlugins() {
89
- return [
90
- Suggestion__default['default']({
91
- editor: this.editor,
92
- ...this.options.suggestion,
93
- }),
94
- ];
95
- },
96
- });
97
-
98
- exports.Mention = Mention;
99
- exports.default = Mention;
100
- //# sourceMappingURL=tiptap-extension-mention.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tiptap-extension-mention.cjs.js","sources":["../src/mention.ts"],"sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core'\nimport Suggestion, { SuggestionOptions } from '@tiptap/suggestion'\n\nexport type MentionOptions = {\n HTMLAttributes: {\n [key: string]: any,\n },\n suggestion: Omit<SuggestionOptions, 'editor'>,\n}\n\nexport const Mention = Node.create<MentionOptions>({\n name: 'mention',\n\n defaultOptions: {\n HTMLAttributes: {},\n suggestion: {\n char: '@',\n command: ({ editor, range, props }) => {\n editor\n .chain()\n .focus()\n .replaceRange(range, 'mention', props)\n .insertContent(' ')\n .run()\n },\n allow: ({ editor, range }) => {\n return editor.can().replaceRange(range, 'mention')\n },\n },\n },\n\n group: 'inline',\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => {\n return {\n id: element.getAttribute('data-mention'),\n }\n },\n renderHTML: attributes => {\n if (!attributes.id) {\n return {}\n }\n\n return {\n 'data-mention': attributes.id,\n }\n },\n },\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-mention]',\n },\n ]\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id}`]\n },\n\n renderText({ node }) {\n return `@${node.attrs.id}`\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => this.editor.commands.command(({ tr, state }) => {\n let isMention = false\n const { selection } = state\n const { empty, anchor } = selection\n\n if (!empty) {\n return false\n }\n\n state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {\n if (node.type.name === 'mention') {\n isMention = true\n tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize)\n\n return false\n }\n })\n\n return isMention\n }),\n }\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ]\n },\n})\n"],"names":["Node","mergeAttributes","Suggestion"],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- import { Node, mergeAttributes } from '@tiptap/core';
2
- import Suggestion from '@tiptap/suggestion';
3
-
4
- const Mention = Node.create({
5
- name: 'mention',
6
- defaultOptions: {
7
- HTMLAttributes: {},
8
- suggestion: {
9
- char: '@',
10
- command: ({ editor, range, props }) => {
11
- editor
12
- .chain()
13
- .focus()
14
- .replaceRange(range, 'mention', props)
15
- .insertContent(' ')
16
- .run();
17
- },
18
- allow: ({ editor, range }) => {
19
- return editor.can().replaceRange(range, 'mention');
20
- },
21
- },
22
- },
23
- group: 'inline',
24
- inline: true,
25
- selectable: false,
26
- atom: true,
27
- addAttributes() {
28
- return {
29
- id: {
30
- default: null,
31
- parseHTML: element => {
32
- return {
33
- id: element.getAttribute('data-mention'),
34
- };
35
- },
36
- renderHTML: attributes => {
37
- if (!attributes.id) {
38
- return {};
39
- }
40
- return {
41
- 'data-mention': attributes.id,
42
- };
43
- },
44
- },
45
- };
46
- },
47
- parseHTML() {
48
- return [
49
- {
50
- tag: 'span[data-mention]',
51
- },
52
- ];
53
- },
54
- renderHTML({ node, HTMLAttributes }) {
55
- return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id}`];
56
- },
57
- renderText({ node }) {
58
- return `@${node.attrs.id}`;
59
- },
60
- addKeyboardShortcuts() {
61
- return {
62
- Backspace: () => this.editor.commands.command(({ tr, state }) => {
63
- let isMention = false;
64
- const { selection } = state;
65
- const { empty, anchor } = selection;
66
- if (!empty) {
67
- return false;
68
- }
69
- state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
70
- if (node.type.name === 'mention') {
71
- isMention = true;
72
- tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize);
73
- return false;
74
- }
75
- });
76
- return isMention;
77
- }),
78
- };
79
- },
80
- addProseMirrorPlugins() {
81
- return [
82
- Suggestion({
83
- editor: this.editor,
84
- ...this.options.suggestion,
85
- }),
86
- ];
87
- },
88
- });
89
-
90
- export default Mention;
91
- export { Mention };
92
- //# sourceMappingURL=tiptap-extension-mention.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tiptap-extension-mention.esm.js","sources":["../src/mention.ts"],"sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core'\nimport Suggestion, { SuggestionOptions } from '@tiptap/suggestion'\n\nexport type MentionOptions = {\n HTMLAttributes: {\n [key: string]: any,\n },\n suggestion: Omit<SuggestionOptions, 'editor'>,\n}\n\nexport const Mention = Node.create<MentionOptions>({\n name: 'mention',\n\n defaultOptions: {\n HTMLAttributes: {},\n suggestion: {\n char: '@',\n command: ({ editor, range, props }) => {\n editor\n .chain()\n .focus()\n .replaceRange(range, 'mention', props)\n .insertContent(' ')\n .run()\n },\n allow: ({ editor, range }) => {\n return editor.can().replaceRange(range, 'mention')\n },\n },\n },\n\n group: 'inline',\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => {\n return {\n id: element.getAttribute('data-mention'),\n }\n },\n renderHTML: attributes => {\n if (!attributes.id) {\n return {}\n }\n\n return {\n 'data-mention': attributes.id,\n }\n },\n },\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-mention]',\n },\n ]\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id}`]\n },\n\n renderText({ node }) {\n return `@${node.attrs.id}`\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => this.editor.commands.command(({ tr, state }) => {\n let isMention = false\n const { selection } = state\n const { empty, anchor } = selection\n\n if (!empty) {\n return false\n }\n\n state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {\n if (node.type.name === 'mention') {\n isMention = true\n tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize)\n\n return false\n }\n })\n\n return isMention\n }),\n }\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ]\n },\n})\n"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@tiptap/core'), require('@tiptap/suggestion')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@tiptap/core', '@tiptap/suggestion'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['@tiptap/extension-mention'] = {}, global.core, global.Suggestion));
5
- }(this, (function (exports, core, Suggestion) { 'use strict';
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var Suggestion__default = /*#__PURE__*/_interopDefaultLegacy(Suggestion);
10
-
11
- const Mention = core.Node.create({
12
- name: 'mention',
13
- defaultOptions: {
14
- HTMLAttributes: {},
15
- suggestion: {
16
- char: '@',
17
- command: ({ editor, range, props }) => {
18
- editor
19
- .chain()
20
- .focus()
21
- .replaceRange(range, 'mention', props)
22
- .insertContent(' ')
23
- .run();
24
- },
25
- allow: ({ editor, range }) => {
26
- return editor.can().replaceRange(range, 'mention');
27
- },
28
- },
29
- },
30
- group: 'inline',
31
- inline: true,
32
- selectable: false,
33
- atom: true,
34
- addAttributes() {
35
- return {
36
- id: {
37
- default: null,
38
- parseHTML: element => {
39
- return {
40
- id: element.getAttribute('data-mention'),
41
- };
42
- },
43
- renderHTML: attributes => {
44
- if (!attributes.id) {
45
- return {};
46
- }
47
- return {
48
- 'data-mention': attributes.id,
49
- };
50
- },
51
- },
52
- };
53
- },
54
- parseHTML() {
55
- return [
56
- {
57
- tag: 'span[data-mention]',
58
- },
59
- ];
60
- },
61
- renderHTML({ node, HTMLAttributes }) {
62
- return ['span', core.mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id}`];
63
- },
64
- renderText({ node }) {
65
- return `@${node.attrs.id}`;
66
- },
67
- addKeyboardShortcuts() {
68
- return {
69
- Backspace: () => this.editor.commands.command(({ tr, state }) => {
70
- let isMention = false;
71
- const { selection } = state;
72
- const { empty, anchor } = selection;
73
- if (!empty) {
74
- return false;
75
- }
76
- state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
77
- if (node.type.name === 'mention') {
78
- isMention = true;
79
- tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize);
80
- return false;
81
- }
82
- });
83
- return isMention;
84
- }),
85
- };
86
- },
87
- addProseMirrorPlugins() {
88
- return [
89
- Suggestion__default['default']({
90
- editor: this.editor,
91
- ...this.options.suggestion,
92
- }),
93
- ];
94
- },
95
- });
96
-
97
- exports.Mention = Mention;
98
- exports.default = Mention;
99
-
100
- Object.defineProperty(exports, '__esModule', { value: true });
101
-
102
- })));
103
- //# sourceMappingURL=tiptap-extension-mention.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tiptap-extension-mention.umd.js","sources":["../src/mention.ts"],"sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core'\nimport Suggestion, { SuggestionOptions } from '@tiptap/suggestion'\n\nexport type MentionOptions = {\n HTMLAttributes: {\n [key: string]: any,\n },\n suggestion: Omit<SuggestionOptions, 'editor'>,\n}\n\nexport const Mention = Node.create<MentionOptions>({\n name: 'mention',\n\n defaultOptions: {\n HTMLAttributes: {},\n suggestion: {\n char: '@',\n command: ({ editor, range, props }) => {\n editor\n .chain()\n .focus()\n .replaceRange(range, 'mention', props)\n .insertContent(' ')\n .run()\n },\n allow: ({ editor, range }) => {\n return editor.can().replaceRange(range, 'mention')\n },\n },\n },\n\n group: 'inline',\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => {\n return {\n id: element.getAttribute('data-mention'),\n }\n },\n renderHTML: attributes => {\n if (!attributes.id) {\n return {}\n }\n\n return {\n 'data-mention': attributes.id,\n }\n },\n },\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-mention]',\n },\n ]\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id}`]\n },\n\n renderText({ node }) {\n return `@${node.attrs.id}`\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => this.editor.commands.command(({ tr, state }) => {\n let isMention = false\n const { selection } = state\n const { empty, anchor } = selection\n\n if (!empty) {\n return false\n }\n\n state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {\n if (node.type.name === 'mention') {\n isMention = true\n tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize)\n\n return false\n }\n })\n\n return isMention\n }),\n }\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ]\n },\n})\n"],"names":["Node","mergeAttributes","Suggestion"],"mappings":"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"}