@ckeditor/ckeditor5-mention 0.0.0-nightly-20240423.0 → 0.0.0-nightly-20240425.0

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.
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, 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
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module mention/mention
11
+ */
12
+ import { Plugin } from 'ckeditor5/src/core.js';
13
+ import type { Element } from 'ckeditor5/src/engine.js';
14
+ import MentionEditing from './mentionediting.js';
15
+ import MentionUI from './mentionui.js';
16
+ import '../theme/mention.css';
17
+ /**
18
+ * The mention plugin.
19
+ *
20
+ * For a detailed overview, check the {@glink features/mentions Mention feature} guide.
21
+ */
22
+ export default class Mention extends Plugin {
23
+ /**
24
+ * Creates a mention attribute value from the provided view element and additional data.
25
+ *
26
+ * ```ts
27
+ * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement, { userId: '1234' } );
28
+ *
29
+ * // For a view element: <span data-mention="@joe">@John Doe</span>
30
+ * // it will return:
31
+ * // { id: '@joe', userId: '1234', uid: '7a7bc7...', _text: '@John Doe' }
32
+ * ```
33
+ *
34
+ * @param data Additional data to be stored in the mention attribute.
35
+ */
36
+ toMentionAttribute<MentionData extends Record<string, unknown>>(viewElement: Element, data: MentionData): (MentionAttribute & MentionData) | undefined;
37
+ /**
38
+ * Creates a mention attribute value from the provided view element.
39
+ *
40
+ * ```ts
41
+ * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement );
42
+ *
43
+ * // For a view element: <span data-mention="@joe">@John Doe</span>
44
+ * // it will return:
45
+ * // { id: '@joe', uid: '7a7bc7...', _text: '@John Doe' }
46
+ * ```
47
+ */
48
+ toMentionAttribute(viewElement: Element): MentionAttribute | undefined;
49
+ /**
50
+ * @inheritDoc
51
+ */
52
+ static get pluginName(): "Mention";
53
+ /**
54
+ * @inheritDoc
55
+ */
56
+ static get requires(): readonly [typeof MentionEditing, typeof MentionUI];
57
+ }
58
+ /**
59
+ * Represents a mention in the model.
60
+ *
61
+ * See {@link module:mention/mention~Mention#toMentionAttribute `Mention#toMentionAttribute()`}.
62
+ */
63
+ export type MentionAttribute = {
64
+ /**
65
+ * The ID of a mention. It identifies the mention item in the mention feed. There can be multiple mentions
66
+ * in the document with the same ID (e.g. the same hashtag being mentioned).
67
+ */
68
+ id: string;
69
+ /**
70
+ * A unique ID of this mention instance. Should be passed as an `option.id` when using
71
+ * {@link module:engine/view/downcastwriter~DowncastWriter#createAttributeElement writer.createAttributeElement()}.
72
+ */
73
+ uid: string;
74
+ /**
75
+ * Helper property that stores the text of the inserted mention. Used for detecting a broken mention
76
+ * in the editing area.
77
+ *
78
+ * @internal
79
+ */
80
+ _text: string;
81
+ };
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, 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
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module mention/mentioncommand
11
+ */
12
+ import { Command, type Editor } from 'ckeditor5/src/core.js';
13
+ import type { Range } from 'ckeditor5/src/engine.js';
14
+ /**
15
+ * The mention command.
16
+ *
17
+ * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.
18
+ *
19
+ * To insert a mention into a range, execute the command and specify a mention object with a range to replace:
20
+ *
21
+ * ```ts
22
+ * const focus = editor.model.document.selection.focus;
23
+ *
24
+ * // It will replace one character before the selection focus with the '#1234' text
25
+ * // with the mention attribute filled with passed attributes.
26
+ * editor.execute( 'mention', {
27
+ * marker: '#',
28
+ * mention: {
29
+ * id: '#1234',
30
+ * name: 'Foo',
31
+ * title: 'Big Foo'
32
+ * },
33
+ * range: editor.model.createRange( focus.getShiftedBy( -1 ), focus )
34
+ * } );
35
+ *
36
+ * // It will replace one character before the selection focus with the 'The "Big Foo"' text
37
+ * // with the mention attribute filled with passed attributes.
38
+ * editor.execute( 'mention', {
39
+ * marker: '#',
40
+ * mention: {
41
+ * id: '#1234',
42
+ * name: 'Foo',
43
+ * title: 'Big Foo'
44
+ * },
45
+ * text: 'The "Big Foo"',
46
+ * range: editor.model.createRange( focus.getShiftedBy( -1 ), focus )
47
+ * } );
48
+ * ```
49
+ */
50
+ export default class MentionCommand extends Command {
51
+ /**
52
+ * @inheritDoc
53
+ */
54
+ constructor(editor: Editor);
55
+ /**
56
+ * @inheritDoc
57
+ */
58
+ refresh(): void;
59
+ /**
60
+ * Executes the command.
61
+ *
62
+ * @param options Options for the executed command.
63
+ * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain
64
+ * object with the name attribute that equals the passed string.
65
+ * @param options.marker The marker character (e.g. `'@'`).
66
+ * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and
67
+ * `mention` string or `mention.id` if an object is passed.
68
+ * @param options.range The range to replace.
69
+ * Note that the replaced range might be shorter than the inserted text with the mention attribute.
70
+ * @fires execute
71
+ */
72
+ execute(options: {
73
+ mention: string | {
74
+ id: string;
75
+ [key: string]: unknown;
76
+ };
77
+ marker: string;
78
+ text?: string;
79
+ range?: Range;
80
+ }): void;
81
+ }
@@ -0,0 +1,269 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, 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
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module mention/mentionconfig
11
+ */
12
+ /**
13
+ * The configuration of the mention feature.
14
+ *
15
+ * Read more about {@glink features/mentions#configuration configuring the mention feature}.
16
+ *
17
+ * ```ts
18
+ * ClassicEditor
19
+ * .create( editorElement, {
20
+ * mention: ... // Mention feature options.
21
+ * } )
22
+ * .then( ... )
23
+ * .catch( ... );
24
+ * ```
25
+ *
26
+ * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
27
+ */
28
+ export interface MentionConfig {
29
+ /**
30
+ * The list of mention feeds supported by the editor.
31
+ *
32
+ * ```ts
33
+ * ClassicEditor
34
+ * .create( editorElement, {
35
+ * plugins: [ Mention, ... ],
36
+ * mention: {
37
+ * feeds: [
38
+ * {
39
+ * marker: '@',
40
+ * feed: [ '@Barney', '@Lily', '@Marshall', '@Robin', '@Ted' ]
41
+ * },
42
+ * ...
43
+ * ]
44
+ * }
45
+ * } )
46
+ * .then( ... )
47
+ * .catch( ... );
48
+ * ```
49
+ *
50
+ * You can provide many mention feeds but they must use different `marker`s.
51
+ * For example, you can use `'@'` to autocomplete people and `'#'` to autocomplete tags.
52
+ */
53
+ feeds: Array<MentionFeed>;
54
+ /**
55
+ * The configuration of the custom commit keys supported by the editor.
56
+ *
57
+ * ```ts
58
+ * ClassicEditor
59
+ * .create( editorElement, {
60
+ * plugins: [ Mention, ... ],
61
+ * mention: {
62
+ * // [ Enter, Space ]
63
+ * commitKeys: [ 13, 32 ]
64
+ * feeds: [
65
+ * { ... }
66
+ * ...
67
+ * ]
68
+ * }
69
+ * } )
70
+ * .then( ... )
71
+ * .catch( ... );
72
+ * ```
73
+ *
74
+ * Custom commit keys configuration allows you to customize how users will confirm the selection of mentions from the dropdown list.
75
+ * You can add as many mention commit keys as you need. For instance, in the snippet above new mentions will be committed by pressing
76
+ * either <kbd>Enter</kbd> or <kbd>Space</kbd> (13 and 32 key codes respectively).
77
+ *
78
+ * @default [ 13, 9 ] // [ Enter, Tab ]
79
+ */
80
+ commitKeys?: Array<number>;
81
+ /**
82
+ * The configuration of the custom number of visible mentions.
83
+ *
84
+ * Customizing the number of visible mentions allows you to specify how many available elements will the users be able to see
85
+ * in the dropdown list. You can specify any number you see fit. For example, in the snippets below you will find the
86
+ * dropdownLimit set to `20` and `Infinity` (the latter will result in showing all available mentions).
87
+ *
88
+ * ```ts
89
+ * ClassicEditor
90
+ * .create( editorElement, {
91
+ * plugins: [ Mention, ... ],
92
+ * mention: {
93
+ * dropdownLimit: 20,
94
+ * feeds: [
95
+ * { ... }
96
+ * ...
97
+ * ]
98
+ * }
99
+ * } )
100
+ * .then( ... )
101
+ * .catch( ... );
102
+ *
103
+ * ClassicEditor
104
+ * .create( editorElement, {
105
+ * plugins: [ Mention, ... ],
106
+ * mention: {
107
+ * dropdownLimit: Infinity,
108
+ * feeds: [
109
+ * { ... }
110
+ * ...
111
+ * ]
112
+ * }
113
+ * } )
114
+ * .then( ... )
115
+ * .catch( ... );
116
+ * ```
117
+ *
118
+ * @default 10
119
+ */
120
+ dropdownLimit?: number;
121
+ }
122
+ /**
123
+ * The mention feed descriptor. Used in {@link module:mention/mentionconfig~MentionConfig `config.mention`}.
124
+ *
125
+ * See {@link module:mention/mentionconfig~MentionConfig} to learn more.
126
+ *
127
+ * ```ts
128
+ * // Static configuration.
129
+ * const mentionFeedPeople = {
130
+ * marker: '@',
131
+ * feed: [ '@Alice', '@Bob', ... ],
132
+ * minimumCharacters: 2
133
+ * };
134
+ *
135
+ * // Simple synchronous callback.
136
+ * const mentionFeedTags = {
137
+ * marker: '#',
138
+ * feed: ( searchString: string ) => {
139
+ * return tags
140
+ * // Filter the tags list.
141
+ * .filter( tag => {
142
+ * return tag.toLowerCase().includes( queryText.toLowerCase() );
143
+ * } )
144
+ * }
145
+ * };
146
+ *
147
+ * const tags = [ 'wysiwyg', 'rte', 'rich-text-edior', 'collaboration', 'real-time', ... ];
148
+ *
149
+ * // Asynchronous callback.
150
+ * const mentionFeedPlaceholders = {
151
+ * marker: '$',
152
+ * feed: ( searchString: string ) => {
153
+ * return getMatchingPlaceholders( searchString );
154
+ * }
155
+ * };
156
+ *
157
+ * function getMatchingPlaceholders( searchString: string ) {
158
+ * return new Promise<Array<MentionFeedItem>>( resolve => {
159
+ * doSomeXHRQuery( result => {
160
+ * // console.log( result );
161
+ * // -> [ '$name', '$surname', '$postal', ... ]
162
+ *
163
+ * resolve( result );
164
+ * } );
165
+ * } );
166
+ * }
167
+ * ```
168
+ */
169
+ export interface MentionFeed {
170
+ /**
171
+ * The character which triggers autocompletion for mention. It must be a single character.
172
+ */
173
+ marker: string;
174
+ /**
175
+ * Autocomplete items. Provide an array for
176
+ * a static configuration (the mention feature will show matching items automatically) or a function which returns an array of
177
+ * matching items (directly, or via a promise). If a function is passed, it is executed in the context of the editor instance.
178
+ */
179
+ feed: Array<MentionFeedItem> | FeedCallback;
180
+ /**
181
+ * Specifies after how many characters the autocomplete panel should be shown.
182
+ *
183
+ * @default 0
184
+ */
185
+ minimumCharacters?: number;
186
+ /**
187
+ * A function that renders a {@link module:mention/mentionconfig~MentionFeedItem}
188
+ * to the autocomplete panel.
189
+ */
190
+ itemRenderer?: ItemRenderer;
191
+ /**
192
+ * Specify how many available elements per feeds will the users be able to see in the dropdown list.
193
+ * If it not set, limit is inherited from {@link module:mention/mentionconfig~MentionConfig#dropdownLimit MentionConfig}.
194
+ */
195
+ dropdownLimit?: number;
196
+ }
197
+ /**
198
+ * Function that renders an array of {@link module:mention/mentionconfig~MentionFeedItem} based on string input.
199
+ */
200
+ export type FeedCallback = (searchString: string) => Array<MentionFeedItem> | Promise<Array<MentionFeedItem>>;
201
+ /**
202
+ * Function that takes renders a {@link module:mention/mentionconfig~MentionFeedObjectItem} as HTMLElement.
203
+ */
204
+ export type ItemRenderer = (item: MentionFeedObjectItem) => HTMLElement | string;
205
+ /**
206
+ * The mention feed item. It may be defined as a string or a plain object.
207
+ *
208
+ * When defining a feed item as a plain object, the `id` property is obligatory. Additional properties
209
+ * can be used when customizing the mention feature bahavior
210
+ * (see {@glink features/mentions#customizing-the-autocomplete-list "Customizing the autocomplete list"}
211
+ * and {@glink features/mentions#customizing-the-output "Customizing the output"} sections).
212
+ *
213
+ * ```ts
214
+ * ClassicEditor
215
+ * .create( editorElement, {
216
+ * plugins: [ Mention, ... ],
217
+ * mention: {
218
+ * feeds: [
219
+ * // Feed items as objects.
220
+ * {
221
+ * marker: '@',
222
+ * feed: [
223
+ * {
224
+ * id: '@Barney',
225
+ * fullName: 'Barney Bloom'
226
+ * },
227
+ * {
228
+ * id: '@Lily',
229
+ * fullName: 'Lily Smith'
230
+ * },
231
+ * {
232
+ * id: '@Marshall',
233
+ * fullName: 'Marshall McDonald'
234
+ * },
235
+ * {
236
+ * id: '@Robin',
237
+ * fullName: 'Robin Hood'
238
+ * },
239
+ * {
240
+ * id: '@Ted',
241
+ * fullName: 'Ted Cruze'
242
+ * },
243
+ * // ...
244
+ * ]
245
+ * },
246
+ *
247
+ * // Feed items as plain strings.
248
+ * {
249
+ * marker: '#',
250
+ * feed: [ 'wysiwyg', 'rte', 'rich-text-edior', 'collaboration', 'real-time', ... ]
251
+ * },
252
+ * ]
253
+ * }
254
+ * } )
255
+ * .then( ... )
256
+ * .catch( ... );
257
+ * ```
258
+ */
259
+ export type MentionFeedItem = string | MentionFeedObjectItem;
260
+ export type MentionFeedObjectItem = {
261
+ /**
262
+ * A unique ID of the mention. It must start with the marker character.
263
+ */
264
+ id: string;
265
+ /**
266
+ * Text inserted into the editor when creating a mention.
267
+ */
268
+ text?: string;
269
+ };
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, 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
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module mention/mentionediting
11
+ */
12
+ import { Plugin } from 'ckeditor5/src/core.js';
13
+ import type { Element } from 'ckeditor5/src/engine.js';
14
+ import type { MentionAttribute } from './mention.js';
15
+ /**
16
+ * The mention editing feature.
17
+ *
18
+ * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`
19
+ * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}
20
+ * as a `<span class="mention" data-mention="@mention">`.
21
+ */
22
+ export default class MentionEditing extends Plugin {
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static get pluginName(): "MentionEditing";
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ init(): void;
31
+ }
32
+ /**
33
+ * @internal
34
+ */
35
+ export declare function _addMentionAttributes(baseMentionData: {
36
+ id: string;
37
+ _text: string;
38
+ }, data?: Record<string, unknown>): MentionAttribute;
39
+ /**
40
+ * Creates a mention attribute value from the provided view element and optional data.
41
+ *
42
+ * This function is exposed as
43
+ * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.
44
+ *
45
+ * @internal
46
+ */
47
+ export declare function _toMentionAttribute(viewElementOrMention: Element, data?: Record<string, unknown>): MentionAttribute | undefined;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, 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
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module mention/mentionui
11
+ */
12
+ import { Plugin, type Editor } from 'ckeditor5/src/core.js';
13
+ import { ContextualBalloon } from 'ckeditor5/src/ui.js';
14
+ /**
15
+ * The mention UI feature.
16
+ */
17
+ export default class MentionUI extends Plugin {
18
+ /**
19
+ * The mention view.
20
+ */
21
+ private readonly _mentionsView;
22
+ /**
23
+ * Stores mention feeds configurations.
24
+ */
25
+ private _mentionsConfigurations;
26
+ /**
27
+ * The contextual balloon plugin instance.
28
+ */
29
+ private _balloon;
30
+ private _items;
31
+ private _lastRequested?;
32
+ /**
33
+ * Debounced feed requester. It uses `lodash#debounce` method to delay function call.
34
+ */
35
+ private _requestFeedDebounced;
36
+ /**
37
+ * @inheritDoc
38
+ */
39
+ static get pluginName(): "MentionUI";
40
+ /**
41
+ * @inheritDoc
42
+ */
43
+ static get requires(): readonly [typeof ContextualBalloon];
44
+ /**
45
+ * @inheritDoc
46
+ */
47
+ constructor(editor: Editor);
48
+ /**
49
+ * @inheritDoc
50
+ */
51
+ init(): void;
52
+ /**
53
+ * @inheritDoc
54
+ */
55
+ destroy(): void;
56
+ /**
57
+ * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is
58
+ * currently visible.
59
+ */
60
+ private get _isUIVisible();
61
+ /**
62
+ * Creates the {@link #_mentionsView}.
63
+ */
64
+ private _createMentionView;
65
+ /**
66
+ * Returns item renderer for the marker.
67
+ */
68
+ private _getItemRenderer;
69
+ /**
70
+ * Requests a feed from a configured callbacks.
71
+ */
72
+ private _requestFeed;
73
+ /**
74
+ * Registers a text watcher for the marker.
75
+ */
76
+ private _setupTextWatcher;
77
+ /**
78
+ * Handles the feed response event data.
79
+ */
80
+ private _handleFeedResponse;
81
+ /**
82
+ * Shows the mentions balloon. If the panel is already visible, it will reposition it.
83
+ */
84
+ private _showOrUpdateUI;
85
+ /**
86
+ * Hides the mentions balloon and removes the 'mention' marker from the markers collection.
87
+ */
88
+ private _hideUIAndRemoveMarker;
89
+ /**
90
+ * Renders a single item in the autocomplete list.
91
+ */
92
+ private _renderItem;
93
+ /**
94
+ * Creates a position options object used to position the balloon panel.
95
+ *
96
+ * @param mentionMarker
97
+ * @param preferredPosition The name of the last matched position name.
98
+ */
99
+ private _getBalloonPanelPositionData;
100
+ }
101
+ /**
102
+ * Creates a RegExp pattern for the marker.
103
+ *
104
+ * Function has to be exported to achieve 100% code coverage.
105
+ */
106
+ export declare function createRegExp(marker: string, minimumCharacters: number): RegExp;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, 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
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module mention/ui/domwrapperview
11
+ */
12
+ import { View } from 'ckeditor5/src/ui.js';
13
+ import type { Locale } from 'ckeditor5/src/utils.js';
14
+ /**
15
+ * This class wraps DOM element as a CKEditor5 UI View.
16
+ *
17
+ * It allows to render any DOM element and use it in mentions list.
18
+ */
19
+ export default class DomWrapperView extends View {
20
+ /**
21
+ * The DOM element for which wrapper was created.
22
+ */
23
+ domElement: HTMLElement;
24
+ /**
25
+ * Controls whether the dom wrapper view is "on". This is in line with {@link module:ui/button/button~Button#isOn} property.
26
+ *
27
+ * @observable
28
+ * @default true
29
+ */
30
+ isOn: boolean;
31
+ /**
32
+ * Creates an instance of {@link module:mention/ui/domwrapperview~DomWrapperView} class.
33
+ *
34
+ * Also see {@link #render}.
35
+ */
36
+ constructor(locale: Locale, domElement: HTMLElement);
37
+ /**
38
+ * @inheritDoc
39
+ */
40
+ render(): void;
41
+ /**
42
+ * Focuses the DOM element.
43
+ */
44
+ focus(): void;
45
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, 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
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module mention/ui/mentionlistitemview
11
+ */
12
+ import { ListItemView } from 'ckeditor5/src/ui.js';
13
+ import type { MentionFeedItem } from '../mentionconfig.js';
14
+ export default class MentionListItemView extends ListItemView {
15
+ item: MentionFeedItem;
16
+ marker: string;
17
+ highlight(): void;
18
+ removeHighlight(): void;
19
+ }