@ckeditor/ckeditor5-mention 39.0.1 → 40.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE.md +1 -1
- package/README.md +3 -3
- package/build/mention.js +1 -1
- package/build/mention.js.map +1 -0
- package/package.json +2 -6
- package/src/augmentation.d.ts +23 -23
- package/src/augmentation.js +5 -5
- package/src/index.d.ts +13 -13
- package/src/index.js +11 -11
- package/src/mention.d.ts +77 -66
- package/src/mention.js +33 -47
- package/src/mentioncommand.d.ts +77 -75
- package/src/mentioncommand.js +145 -145
- package/src/mentionconfig.d.ts +265 -265
- package/src/mentionconfig.js +5 -5
- package/src/mentionediting.d.ts +43 -40
- package/src/mentionediting.js +231 -231
- package/src/mentionui.d.ts +102 -102
- package/src/mentionui.js +618 -618
- package/src/ui/domwrapperview.d.ts +41 -37
- package/src/ui/domwrapperview.js +57 -51
- package/src/ui/mentionlistitemview.d.ts +15 -15
- package/src/ui/mentionlistitemview.js +18 -18
- package/src/ui/mentionsview.d.ts +60 -60
- package/src/ui/mentionsview.js +104 -104
package/src/mention.d.ts
CHANGED
@@ -1,66 +1,77 @@
|
|
1
|
-
/**
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
-
*/
|
5
|
-
/**
|
6
|
-
* @module mention/mention
|
7
|
-
*/
|
8
|
-
import { Plugin } from 'ckeditor5/src/core';
|
9
|
-
import type { Element } from 'ckeditor5/src/engine';
|
10
|
-
import MentionEditing from './mentionediting';
|
11
|
-
import MentionUI from './mentionui';
|
12
|
-
import '../theme/mention.css';
|
13
|
-
/**
|
14
|
-
* The mention plugin.
|
15
|
-
*
|
16
|
-
* For a detailed overview, check the {@glink features/mentions Mention feature} guide.
|
17
|
-
*/
|
18
|
-
export default class Mention extends Plugin {
|
19
|
-
/**
|
20
|
-
* Creates a mention attribute value from the provided view element and
|
21
|
-
*
|
22
|
-
* ```ts
|
23
|
-
* editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement, { userId: '1234' } );
|
24
|
-
*
|
25
|
-
* // For a view element: <span data-mention="@joe">@John Doe</span>
|
26
|
-
* // it will return:
|
27
|
-
* // { id: '@joe', userId: '1234', uid: '7a7bc7...', _text: '@John Doe' }
|
28
|
-
* ```
|
29
|
-
*
|
30
|
-
* @param
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
*
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
* @
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
/**
|
50
|
-
*
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
* in the
|
62
|
-
*
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
1
|
+
/**
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
+
*/
|
5
|
+
/**
|
6
|
+
* @module mention/mention
|
7
|
+
*/
|
8
|
+
import { Plugin } from 'ckeditor5/src/core';
|
9
|
+
import type { Element } from 'ckeditor5/src/engine';
|
10
|
+
import MentionEditing from './mentionediting';
|
11
|
+
import MentionUI from './mentionui';
|
12
|
+
import '../theme/mention.css';
|
13
|
+
/**
|
14
|
+
* The mention plugin.
|
15
|
+
*
|
16
|
+
* For a detailed overview, check the {@glink features/mentions Mention feature} guide.
|
17
|
+
*/
|
18
|
+
export default class Mention extends Plugin {
|
19
|
+
/**
|
20
|
+
* Creates a mention attribute value from the provided view element and additional data.
|
21
|
+
*
|
22
|
+
* ```ts
|
23
|
+
* editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement, { userId: '1234' } );
|
24
|
+
*
|
25
|
+
* // For a view element: <span data-mention="@joe">@John Doe</span>
|
26
|
+
* // it will return:
|
27
|
+
* // { id: '@joe', userId: '1234', uid: '7a7bc7...', _text: '@John Doe' }
|
28
|
+
* ```
|
29
|
+
*
|
30
|
+
* @param data Additional data to be stored in the mention attribute.
|
31
|
+
*/
|
32
|
+
toMentionAttribute<MentionData extends Record<string, unknown>>(viewElement: Element, data: MentionData): (MentionAttribute & MentionData) | undefined;
|
33
|
+
/**
|
34
|
+
* Creates a mention attribute value from the provided view element.
|
35
|
+
*
|
36
|
+
* ```ts
|
37
|
+
* editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement );
|
38
|
+
*
|
39
|
+
* // For a view element: <span data-mention="@joe">@John Doe</span>
|
40
|
+
* // it will return:
|
41
|
+
* // { id: '@joe', uid: '7a7bc7...', _text: '@John Doe' }
|
42
|
+
* ```
|
43
|
+
*/
|
44
|
+
toMentionAttribute(viewElement: Element): MentionAttribute | undefined;
|
45
|
+
/**
|
46
|
+
* @inheritDoc
|
47
|
+
*/
|
48
|
+
static get pluginName(): "Mention";
|
49
|
+
/**
|
50
|
+
* @inheritDoc
|
51
|
+
*/
|
52
|
+
static get requires(): readonly [typeof MentionEditing, typeof MentionUI];
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Represents a mention in the model.
|
56
|
+
*
|
57
|
+
* See {@link module:mention/mention~Mention#toMentionAttribute `Mention#toMentionAttribute()`}.
|
58
|
+
*/
|
59
|
+
export type MentionAttribute = {
|
60
|
+
/**
|
61
|
+
* The ID of a mention. It identifies the mention item in the mention feed. There can be multiple mentions
|
62
|
+
* in the document with the same ID (e.g. the same hashtag being mentioned).
|
63
|
+
*/
|
64
|
+
id: string;
|
65
|
+
/**
|
66
|
+
* A unique ID of this mention instance. Should be passed as an `option.id` when using
|
67
|
+
* {@link module:engine/view/downcastwriter~DowncastWriter#createAttributeElement writer.createAttributeElement()}.
|
68
|
+
*/
|
69
|
+
uid: string;
|
70
|
+
/**
|
71
|
+
* Helper property that stores the text of the inserted mention. Used for detecting a broken mention
|
72
|
+
* in the editing area.
|
73
|
+
*
|
74
|
+
* @internal
|
75
|
+
*/
|
76
|
+
_text: string;
|
77
|
+
};
|
package/src/mention.js
CHANGED
@@ -1,47 +1,33 @@
|
|
1
|
-
/**
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
-
*/
|
5
|
-
/**
|
6
|
-
* @module mention/mention
|
7
|
-
*/
|
8
|
-
import { Plugin } from 'ckeditor5/src/core';
|
9
|
-
import MentionEditing, { _toMentionAttribute } from './mentionediting';
|
10
|
-
import MentionUI from './mentionui';
|
11
|
-
import '../theme/mention.css';
|
12
|
-
/**
|
13
|
-
* The mention plugin.
|
14
|
-
*
|
15
|
-
* For a detailed overview, check the {@glink features/mentions Mention feature} guide.
|
16
|
-
*/
|
17
|
-
export default class Mention extends Plugin {
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
*
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
*
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
}
|
35
|
-
/**
|
36
|
-
* @inheritDoc
|
37
|
-
*/
|
38
|
-
static get pluginName() {
|
39
|
-
return 'Mention';
|
40
|
-
}
|
41
|
-
/**
|
42
|
-
* @inheritDoc
|
43
|
-
*/
|
44
|
-
static get requires() {
|
45
|
-
return [MentionEditing, MentionUI];
|
46
|
-
}
|
47
|
-
}
|
1
|
+
/**
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
+
*/
|
5
|
+
/**
|
6
|
+
* @module mention/mention
|
7
|
+
*/
|
8
|
+
import { Plugin } from 'ckeditor5/src/core';
|
9
|
+
import MentionEditing, { _toMentionAttribute } from './mentionediting';
|
10
|
+
import MentionUI from './mentionui';
|
11
|
+
import '../theme/mention.css';
|
12
|
+
/**
|
13
|
+
* The mention plugin.
|
14
|
+
*
|
15
|
+
* For a detailed overview, check the {@glink features/mentions Mention feature} guide.
|
16
|
+
*/
|
17
|
+
export default class Mention extends Plugin {
|
18
|
+
toMentionAttribute(viewElement, data) {
|
19
|
+
return _toMentionAttribute(viewElement, data);
|
20
|
+
}
|
21
|
+
/**
|
22
|
+
* @inheritDoc
|
23
|
+
*/
|
24
|
+
static get pluginName() {
|
25
|
+
return 'Mention';
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* @inheritDoc
|
29
|
+
*/
|
30
|
+
static get requires() {
|
31
|
+
return [MentionEditing, MentionUI];
|
32
|
+
}
|
33
|
+
}
|
package/src/mentioncommand.d.ts
CHANGED
@@ -1,75 +1,77 @@
|
|
1
|
-
/**
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
-
*/
|
5
|
-
/**
|
6
|
-
* @module mention/mentioncommand
|
7
|
-
*/
|
8
|
-
import { Command, type Editor } from 'ckeditor5/src/core';
|
9
|
-
import type { Range } from 'ckeditor5/src/engine';
|
10
|
-
|
11
|
-
|
12
|
-
*
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
16
|
-
*
|
17
|
-
*
|
18
|
-
*
|
19
|
-
*
|
20
|
-
*
|
21
|
-
* //
|
22
|
-
*
|
23
|
-
*
|
24
|
-
*
|
25
|
-
*
|
26
|
-
*
|
27
|
-
*
|
28
|
-
*
|
29
|
-
*
|
30
|
-
*
|
31
|
-
*
|
32
|
-
*
|
33
|
-
* //
|
34
|
-
*
|
35
|
-
*
|
36
|
-
*
|
37
|
-
*
|
38
|
-
*
|
39
|
-
*
|
40
|
-
*
|
41
|
-
*
|
42
|
-
*
|
43
|
-
*
|
44
|
-
*
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
*
|
58
|
-
*
|
59
|
-
* @param options
|
60
|
-
*
|
61
|
-
*
|
62
|
-
* @param options.
|
63
|
-
*
|
64
|
-
*
|
65
|
-
*
|
66
|
-
*
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
1
|
+
/**
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
+
*/
|
5
|
+
/**
|
6
|
+
* @module mention/mentioncommand
|
7
|
+
*/
|
8
|
+
import { Command, type Editor } from 'ckeditor5/src/core';
|
9
|
+
import type { Range } from 'ckeditor5/src/engine';
|
10
|
+
/**
|
11
|
+
* The mention command.
|
12
|
+
*
|
13
|
+
* The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.
|
14
|
+
*
|
15
|
+
* To insert a mention into a range, execute the command and specify a mention object with a range to replace:
|
16
|
+
*
|
17
|
+
* ```ts
|
18
|
+
* const focus = editor.model.document.selection.focus;
|
19
|
+
*
|
20
|
+
* // It will replace one character before the selection focus with the '#1234' text
|
21
|
+
* // with the mention attribute filled with passed attributes.
|
22
|
+
* editor.execute( 'mention', {
|
23
|
+
* marker: '#',
|
24
|
+
* mention: {
|
25
|
+
* id: '#1234',
|
26
|
+
* name: 'Foo',
|
27
|
+
* title: 'Big Foo'
|
28
|
+
* },
|
29
|
+
* range: editor.model.createRange( focus.getShiftedBy( -1 ), focus )
|
30
|
+
* } );
|
31
|
+
*
|
32
|
+
* // It will replace one character before the selection focus with the 'The "Big Foo"' text
|
33
|
+
* // with the mention attribute filled with passed attributes.
|
34
|
+
* editor.execute( 'mention', {
|
35
|
+
* marker: '#',
|
36
|
+
* mention: {
|
37
|
+
* id: '#1234',
|
38
|
+
* name: 'Foo',
|
39
|
+
* title: 'Big Foo'
|
40
|
+
* },
|
41
|
+
* text: 'The "Big Foo"',
|
42
|
+
* range: editor.model.createRange( focus.getShiftedBy( -1 ), focus )
|
43
|
+
* } );
|
44
|
+
* ```
|
45
|
+
*/
|
46
|
+
export default class MentionCommand extends Command {
|
47
|
+
/**
|
48
|
+
* @inheritDoc
|
49
|
+
*/
|
50
|
+
constructor(editor: Editor);
|
51
|
+
/**
|
52
|
+
* @inheritDoc
|
53
|
+
*/
|
54
|
+
refresh(): void;
|
55
|
+
/**
|
56
|
+
* Executes the command.
|
57
|
+
*
|
58
|
+
* @param options Options for the executed command.
|
59
|
+
* @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain
|
60
|
+
* object with the name attribute that equals the passed string.
|
61
|
+
* @param options.marker The marker character (e.g. `'@'`).
|
62
|
+
* @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and
|
63
|
+
* `mention` string or `mention.id` if an object is passed.
|
64
|
+
* @param options.range The range to replace.
|
65
|
+
* Note that the replaced range might be shorter than the inserted text with the mention attribute.
|
66
|
+
* @fires execute
|
67
|
+
*/
|
68
|
+
execute(options: {
|
69
|
+
mention: string | {
|
70
|
+
id: string;
|
71
|
+
[key: string]: unknown;
|
72
|
+
};
|
73
|
+
marker: string;
|
74
|
+
text?: string;
|
75
|
+
range?: Range;
|
76
|
+
}): void;
|
77
|
+
}
|