@ckeditor/ckeditor5-mention 43.3.0-alpha.0 → 43.3.0-alpha.10
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["index.js","../src/mentioncommand.ts","../src/mentionediting.ts","../src/ui/mentionsview.ts","../src/ui/domwrapperview.ts","../src/ui/mentionlistitemview.ts","../src/mentionui.ts","../src/mention.ts"],"names":["BRACKET_PAIRS","MentionCommand","Command","editor","_isEnabledBasedOnSelection","model","doc","document","isEnabled","schema","checkAttributeInSelection","selection","execute","options","mentionData","mention","id","mentionID","range","getFirstRange","canEditAt","mentionText","text","_addMentionAttributes","_text","marker","length","CKEditorError","charAt","change","writer","currentAttributes","toMap","getAttributes","attributesWithMention","Map","entries","set","insertionRange","insertContent","createText","nodeBefore","start","nodeAfter","end","isFollowedByWhiteSpace","is","data","startsWith","isInsertedInBrackets","precedingCharacter","slice","isPrecededByOpeningBracket","isFollowedByBracketClosure","getShiftedBy","MentionEditing","Plugin","pluginName","isOfficialPlugin","extend","allowAttributes","conversion","for","elementToAttribute","view","name","key","classes","value","viewElement","_toMentionAttribute","attributeToElement","createViewMentionElement","add","preventPartialMentionDowncast","registerPostFixer","removePartialMentionPostFixer","extendAttributeOnMentionPostFixer","selectionMentionAttributePostFixer","commands","baseMentionData","Object","assign","uid","viewElementOrMention","dataMention","getAttribute","textNode","getChild","dispatcher","on","evt","conversionApi","attributeNewValue","item","consumable","consume","priority","attributes","class","createAttributeElement","focus","isCollapsed","hasAttribute","shouldNotTypeWithMentionAt","removeSelectionAttribute","position","isAtStart","isAfterAMention","changes","differ","getChanges","wasChanged","type","nodeAfterInsertedTextNode","nextSibling","checkAndFix","insertedNode","createRangeIn","getItems","isInline","nodeAfterInserted","attributeKey","node","isBrokenMentionNode","setAttribute","expectedText","removeAttribute","MentionsView","ListView","selected","constructor","locale","extendTemplate","tabindex","select","index","items","getIndex","indexToGet","get","removeHighlight","highlight","_isItemVisibleInScrolledArea","element","scrollTop","offsetTop","fire","Rect","contains","DomWrapperView","View","domElement","template","undefined","classList","isOn","remove","listenTo","render","MentionListItemView","ListItemView","child","children","first","VERTICAL_SPACING","defaultHandledKeyCodes","keyCodes","arrowup","arrowdown","esc","defaultCommitKeyCodes","enter","tab","MentionUI","_items","Collection","_lastRequested","requires","ContextualBalloon","_mentionsView","_createMentionView","_mentionsConfigurations","_requestFeedDebounced","debounce","_requestFeed","config","define","feeds","commitKeys","handledKeyCodes","concat","_balloon","plugins","editing","isHandledKey","keyCode","_isUIVisible","preventDefault","stop","selectNext","selectPrevious","includes","executeSelected","_hideUIAndRemoveMarker","clickOutsideHandler","emitter","activator","contextElements","callback","mentionDescription","feed","dropdownLimit","isValidMentionMarker","feedCallback","bind","createFeedCallback","itemRenderer","definition","_setupTextWatcher","_handleFeedResponse","destroy","visibleView","mentionsView","bindTo","using","markerDropdownLimit","listItemView","_renderItem","delegate","to","mentionMarker","markers","createPositionAt","getStart","createRange","_getItemRenderer","feedText","feedResponse","isAsynchronous","Promise","then","response","catch","error","logWarning","feedsWithPattern","map","pattern","createRegExp","minimumCharacters","watcher","TextWatcher","createTestCallback","markerDefinition","getLastValidMarkerInText","markerPosition","parent","isPositionInExistingMention","isMarkerInExistingMention","requestFeedText","matchedTextLength","markerRange","checkIfStillInCompletionMode","updateMarker","addMarker","usingOperation","affectsData","mentionCommand","clear","feedItem","_showOrUpdateUI","markerMarker","updatePosition","_getBalloonPanelPositionData","singleViewMode","selectFirst","hasView","removeMarker","label","renderer","renderResult","buttonView","ButtonView","withText","preferredPosition","domConverter","mapper","uiLanguageDirection","target","modelRange","getRange","root","rootName","viewRange","toViewRange","rangeRects","getDomRangeRects","viewRangeToDom","pop","limiter","viewDocument","editableElement","mapViewToDom","positions","getBalloonPanelPositions","targetRect","top","bottom","left","right","withArrow","balloonRect","height","width","prototype","hasOwnProperty","call","caret_se","caret_sw","caret_ne","caret_nw","lastValidMarker","currentMarkerLastIndex","lastIndexOf","substring","match","numberOfCharacters","openAfterCharacters","env","features","isRegExpUnicodePropertySupported","mentionCharacters","replace","RegExp","textMatcher","splitStringFrom","textToTest","test","regExp","textToMatch","feedItems","filteredItems","filter","itemId","String","toLowerCase","hasMention","has","Mention","toMentionAttribute"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { CKEditorError, toMap, uid, Rect, keyCodes, Collection, logWarning, env } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ListView, View, ListItemView, ContextualBalloon, clickOutsideHandler, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { TextWatcher } from '@ckeditor/ckeditor5-typing/dist/index.js';\nimport { debounce } from 'lodash-es';\n\nconst BRACKET_PAIRS = {\n '(': ')',\n '[': ']',\n '{': '}'\n};\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */ class MentionCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n // Since this command may pass range in execution parameters, it should be checked directly in execute block.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'mention');\n }\n /**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */ execute(options) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const mentionData = typeof options.mention == 'string' ? {\n id: options.mention\n } : options.mention;\n const mentionID = mentionData.id;\n const range = options.range || selection.getFirstRange();\n // Don't execute command if range is in non-editable place.\n if (!model.canEditAt(range)) {\n return;\n }\n const mentionText = options.text || mentionID;\n const mention = _addMentionAttributes({\n _text: mentionText,\n id: mentionID\n }, mentionData);\n if (options.marker.length != 1) {\n /**\n\t\t\t * The marker must be a single character.\n\t\t\t *\n\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t *\n\t\t\t * Incorrect markers: `'@@'`, `'[@'`.\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-marker\n\t\t\t */ throw new CKEditorError('mentioncommand-incorrect-marker', this);\n }\n if (mentionID.charAt(0) != options.marker) {\n /**\n\t\t\t * The feed item ID must start with the marker character.\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */ throw new CKEditorError('mentioncommand-incorrect-id', this);\n }\n model.change((writer)=>{\n const currentAttributes = toMap(selection.getAttributes());\n const attributesWithMention = new Map(currentAttributes.entries());\n attributesWithMention.set('mention', mention);\n // Replace a range with the text with a mention.\n const insertionRange = model.insertContent(writer.createText(mentionText, attributesWithMention), range);\n const nodeBefore = insertionRange.start.nodeBefore;\n const nodeAfter = insertionRange.end.nodeAfter;\n const isFollowedByWhiteSpace = nodeAfter && nodeAfter.is('$text') && nodeAfter.data.startsWith(' ');\n let isInsertedInBrackets = false;\n if (nodeBefore && nodeAfter && nodeBefore.is('$text') && nodeAfter.is('$text')) {\n const precedingCharacter = nodeBefore.data.slice(-1);\n const isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n const isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(BRACKET_PAIRS[precedingCharacter]);\n isInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n }\n // Don't add a white space if either of the following is true:\n // * there's already one after the mention;\n // * the mention was inserted in the empty matching brackets.\n // https://github.com/ckeditor/ckeditor5/issues/4651\n if (!isInsertedInBrackets && !isFollowedByWhiteSpace) {\n model.insertContent(writer.createText(' ', currentAttributes), range.start.getShiftedBy(mentionText.length));\n }\n });\n }\n}\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */ class MentionEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n // Allow the mention attribute on all text nodes.\n model.schema.extend('$text', {\n allowAttributes: 'mention'\n });\n // Upcast conversion.\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'span',\n key: 'data-mention',\n classes: 'mention'\n },\n model: {\n key: 'mention',\n value: (viewElement)=>_toMentionAttribute(viewElement)\n }\n });\n // Downcast conversion.\n editor.conversion.for('downcast').attributeToElement({\n model: 'mention',\n view: createViewMentionElement\n });\n editor.conversion.for('downcast').add(preventPartialMentionDowncast);\n doc.registerPostFixer((writer)=>removePartialMentionPostFixer(writer, doc, model.schema));\n doc.registerPostFixer((writer)=>extendAttributeOnMentionPostFixer(writer, doc));\n doc.registerPostFixer((writer)=>selectionMentionAttributePostFixer(writer, doc));\n editor.commands.add('mention', new MentionCommand(editor));\n }\n}\n/**\n * @internal\n */ function _addMentionAttributes(baseMentionData, data) {\n return Object.assign({\n uid: uid()\n }, baseMentionData, data || {});\n}\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */ function _toMentionAttribute(viewElementOrMention, data) {\n const dataMention = viewElementOrMention.getAttribute('data-mention');\n const textNode = viewElementOrMention.getChild(0);\n // Do not convert empty mentions.\n if (!textNode) {\n return;\n }\n const baseMentionData = {\n id: dataMention,\n _text: textNode.data\n };\n return _addMentionAttributes(baseMentionData, data);\n}\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */ function preventPartialMentionDowncast(dispatcher) {\n dispatcher.on('attribute:mention', (evt, data, conversionApi)=>{\n const mention = data.attributeNewValue;\n if (!data.item.is('$textProxy') || !mention) {\n return;\n }\n const start = data.range.start;\n const textNode = start.textNode || start.nodeAfter;\n if (textNode.data != mention._text) {\n // Consume item to prevent partial mention conversion.\n conversionApi.consumable.consume(data.item, evt.name);\n }\n }, {\n priority: 'highest'\n });\n}\n/**\n * Creates a mention element from the mention data.\n */ function createViewMentionElement(mention, { writer }) {\n if (!mention) {\n return;\n }\n const attributes = {\n class: 'mention',\n 'data-mention': mention.id\n };\n const options = {\n id: mention.uid,\n priority: 20\n };\n return writer.createAttributeElement('span', attributes, options);\n}\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */ function selectionMentionAttributePostFixer(writer, doc) {\n const selection = doc.selection;\n const focus = selection.focus;\n if (selection.isCollapsed && selection.hasAttribute('mention') && shouldNotTypeWithMentionAt(focus)) {\n writer.removeSelectionAttribute('mention');\n return true;\n }\n return false;\n}\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */ function shouldNotTypeWithMentionAt(position) {\n const isAtStart = position.isAtStart;\n const isAfterAMention = position.nodeBefore && position.nodeBefore.is('$text');\n return isAfterAMention || isAtStart;\n}\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */ function removePartialMentionPostFixer(writer, doc, schema) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type == 'attribute') {\n continue;\n }\n // Checks the text node on the current position.\n const position = change.position;\n if (change.name == '$text') {\n const nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n // Checks the text node where the change occurred.\n wasChanged = checkAndFix(position.textNode, writer) || wasChanged;\n // Occurs on paste inside a text node with mention.\n wasChanged = checkAndFix(nodeAfterInsertedTextNode, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeAfter, writer) || wasChanged;\n }\n // Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n if (change.name != '$text' && change.type == 'insert') {\n const insertedNode = position.nodeAfter;\n for (const item of writer.createRangeIn(insertedNode).getItems()){\n wasChanged = checkAndFix(item, writer) || wasChanged;\n }\n }\n // Inserted inline elements might break mention.\n if (change.type == 'insert' && schema.isInline(change.name)) {\n const nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(nodeAfterInserted, writer) || wasChanged;\n }\n }\n return wasChanged;\n}\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */ function extendAttributeOnMentionPostFixer(writer, doc) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type === 'attribute' && change.attributeKey != 'mention') {\n // Checks the node on the left side of the range...\n const nodeBefore = change.range.start.nodeBefore;\n // ... and on the right side of the range.\n const nodeAfter = change.range.end.nodeAfter;\n for (const node of [\n nodeBefore,\n nodeAfter\n ]){\n if (isBrokenMentionNode(node) && node.getAttribute(change.attributeKey) != change.attributeNewValue) {\n writer.setAttribute(change.attributeKey, change.attributeNewValue, node);\n wasChanged = true;\n }\n }\n }\n }\n return wasChanged;\n}\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */ function isBrokenMentionNode(node) {\n if (!node || !(node.is('$text') || node.is('$textProxy')) || !node.hasAttribute('mention')) {\n return false;\n }\n const text = node.data;\n const mention = node.getAttribute('mention');\n const expectedText = mention._text;\n return text != expectedText;\n}\n/**\n * Fixes a mention on a text node if it needs a fix.\n */ function checkAndFix(textNode, writer) {\n if (isBrokenMentionNode(textNode)) {\n writer.removeAttribute('mention', textNode);\n return true;\n }\n return false;\n}\n\n/**\n * The mention ui view.\n */ class MentionsView extends ListView {\n selected;\n position;\n /**\n\t * @inheritDoc\n\t */ constructor(locale){\n super(locale);\n this.extendTemplate({\n attributes: {\n class: [\n 'ck-mentions'\n ],\n tabindex: '-1'\n }\n });\n }\n /**\n\t * {@link #select Selects} the first item.\n\t */ selectFirst() {\n this.select(0);\n }\n /**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */ selectNext() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index + 1);\n }\n /**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */ selectPrevious() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index - 1);\n }\n /**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */ select(index) {\n let indexToGet = 0;\n if (index > 0 && index < this.items.length) {\n indexToGet = index;\n } else if (index < 0) {\n indexToGet = this.items.length - 1;\n }\n const item = this.items.get(indexToGet);\n // Return early if item is already selected.\n if (this.selected === item) {\n return;\n }\n // Remove highlight of previously selected item.\n if (this.selected) {\n this.selected.removeHighlight();\n }\n item.highlight();\n this.selected = item;\n // Scroll the mentions view to the selected element.\n if (!this._isItemVisibleInScrolledArea(item)) {\n this.element.scrollTop = item.element.offsetTop;\n }\n }\n /**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */ executeSelected() {\n this.selected.fire('execute');\n }\n /**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */ _isItemVisibleInScrolledArea(item) {\n return new Rect(this.element).contains(new Rect(item.element));\n }\n}\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */ class DomWrapperView extends View {\n /**\n\t * The DOM element for which wrapper was created.\n\t */ domElement;\n /**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~DomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */ constructor(locale, domElement){\n super(locale);\n // Disable template rendering on this view.\n this.template = undefined;\n this.domElement = domElement;\n // Render dom wrapper as a button.\n this.domElement.classList.add('ck-button');\n this.set('isOn', false);\n // Handle isOn state as in buttons.\n this.on('change:isOn', (evt, name, isOn)=>{\n if (isOn) {\n this.domElement.classList.add('ck-on');\n this.domElement.classList.remove('ck-off');\n } else {\n this.domElement.classList.add('ck-off');\n this.domElement.classList.remove('ck-on');\n }\n });\n // Pass click event as execute event.\n this.listenTo(this.domElement, 'click', ()=>{\n this.fire('execute');\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.element = this.domElement;\n }\n /**\n\t * Focuses the DOM element.\n\t */ focus() {\n this.domElement.focus();\n }\n}\n\nclass MentionListItemView extends ListItemView {\n item;\n marker;\n highlight() {\n const child = this.children.first;\n child.isOn = true;\n }\n removeHighlight() {\n const child = this.children.first;\n child.isOn = false;\n }\n}\n\nconst VERTICAL_SPACING = 3;\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n keyCodes.arrowup,\n keyCodes.arrowdown,\n keyCodes.esc\n];\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n keyCodes.enter,\n keyCodes.tab\n];\n/**\n * The mention UI feature.\n */ class MentionUI extends Plugin {\n /**\n\t * The mention view.\n\t */ _mentionsView;\n /**\n\t * Stores mention feeds configurations.\n\t */ _mentionsConfigurations;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n _items = new Collection();\n _lastRequested;\n /**\n\t * Debounced feed requester. It uses `lodash#debounce` method to delay function call.\n\t */ _requestFeedDebounced;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n ContextualBalloon\n ];\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._mentionsView = this._createMentionView();\n this._mentionsConfigurations = new Map();\n this._requestFeedDebounced = debounce(this._requestFeed, 100);\n editor.config.define('mention', {\n feeds: []\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const commitKeys = editor.config.get('mention.commitKeys') || defaultCommitKeyCodes;\n const handledKeyCodes = defaultHandledKeyCodes.concat(commitKeys);\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Key listener that handles navigation in mention view.\n editor.editing.view.document.on('keydown', (evt, data)=>{\n if (isHandledKey(data.keyCode) && this._isUIVisible) {\n data.preventDefault();\n evt.stop(); // Required for Enter key overriding.\n if (data.keyCode == keyCodes.arrowdown) {\n this._mentionsView.selectNext();\n }\n if (data.keyCode == keyCodes.arrowup) {\n this._mentionsView.selectPrevious();\n }\n if (commitKeys.includes(data.keyCode)) {\n this._mentionsView.executeSelected();\n }\n if (data.keyCode == keyCodes.esc) {\n this._hideUIAndRemoveMarker();\n }\n }\n }, {\n priority: 'highest'\n }); // Required to override the Enter key.\n // Close the dropdown upon clicking outside of the plugin UI.\n clickOutsideHandler({\n emitter: this._mentionsView,\n activator: ()=>this._isUIVisible,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>this._hideUIAndRemoveMarker()\n });\n const feeds = editor.config.get('mention.feeds');\n for (const mentionDescription of feeds){\n const { feed, marker, dropdownLimit } = mentionDescription;\n if (!isValidMentionMarker(marker)) {\n /**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param marker Configured marker\n\t\t\t\t */ throw new CKEditorError('mentionconfig-incorrect-marker', null, {\n marker\n });\n }\n const feedCallback = typeof feed == 'function' ? feed.bind(this.editor) : createFeedCallback(feed);\n const itemRenderer = mentionDescription.itemRenderer;\n const definition = {\n marker,\n feedCallback,\n itemRenderer,\n dropdownLimit\n };\n this._mentionsConfigurations.set(marker, definition);\n }\n this._setupTextWatcher(feeds);\n this.listenTo(editor, 'change:isReadOnly', ()=>{\n this._hideUIAndRemoveMarker();\n });\n this.on('requestFeed:response', (evt, data)=>this._handleFeedResponse(data));\n this.on('requestFeed:error', ()=>this._hideUIAndRemoveMarker());\n /**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */ function isHandledKey(keyCode) {\n return handledKeyCodes.includes(keyCode);\n }\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n this._mentionsView.destroy();\n }\n /**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */ get _isUIVisible() {\n return this._balloon.visibleView === this._mentionsView;\n }\n /**\n\t * Creates the {@link #_mentionsView}.\n\t */ _createMentionView() {\n const locale = this.editor.locale;\n const mentionsView = new MentionsView(locale);\n mentionsView.items.bindTo(this._items).using((data)=>{\n const { item, marker } = data;\n const { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get(marker);\n // Set to 10 by default for backwards compatibility. See: #10479\n const dropdownLimit = markerDropdownLimit || this.editor.config.get('mention.dropdownLimit') || 10;\n if (mentionsView.items.length >= dropdownLimit) {\n return null;\n }\n const listItemView = new MentionListItemView(locale);\n const view = this._renderItem(item, marker);\n view.delegate('execute').to(listItemView);\n listItemView.children.add(view);\n listItemView.item = item;\n listItemView.marker = marker;\n listItemView.on('execute', ()=>{\n mentionsView.fire('execute', {\n item,\n marker\n });\n });\n return listItemView;\n });\n mentionsView.on('execute', (evt, data)=>{\n const editor = this.editor;\n const model = editor.model;\n const item = data.item;\n const marker = data.marker;\n const mentionMarker = editor.model.markers.get('mention');\n // Create a range on matched text.\n const end = model.createPositionAt(model.document.selection.focus);\n const start = model.createPositionAt(mentionMarker.getStart());\n const range = model.createRange(start, end);\n this._hideUIAndRemoveMarker();\n editor.execute('mention', {\n mention: item,\n text: item.text,\n marker,\n range\n });\n editor.editing.view.focus();\n });\n return mentionsView;\n }\n /**\n\t * Returns item renderer for the marker.\n\t */ _getItemRenderer(marker) {\n const { itemRenderer } = this._mentionsConfigurations.get(marker);\n return itemRenderer;\n }\n /**\n\t * Requests a feed from a configured callbacks.\n\t */ _requestFeed(marker, feedText) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n // Store the last requested feed - it is used to discard any out-of order requests.\n this._lastRequested = feedText;\n const { feedCallback } = this._mentionsConfigurations.get(marker);\n const feedResponse = feedCallback(feedText);\n const isAsynchronous = feedResponse instanceof Promise;\n // For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n if (!isAsynchronous) {\n this.fire('requestFeed:response', {\n feed: feedResponse,\n marker,\n feedText\n });\n return;\n }\n // Handle the asynchronous responses.\n feedResponse.then((response)=>{\n // Check the feed text of this response with the last requested one so either:\n if (this._lastRequested == feedText) {\n // It is the same and fire the response event.\n this.fire('requestFeed:response', {\n feed: response,\n marker,\n feedText\n });\n } else {\n // It is different - most probably out-of-order one, so fire the discarded event.\n this.fire('requestFeed:discarded', {\n feed: response,\n marker,\n feedText\n });\n }\n }).catch((error)=>{\n this.fire('requestFeed:error', {\n error\n });\n /**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */ logWarning('mention-feed-callback-error', {\n marker\n });\n });\n }\n /**\n\t * Registers a text watcher for the marker.\n\t */ _setupTextWatcher(feeds) {\n const editor = this.editor;\n const feedsWithPattern = feeds.map((feed)=>({\n ...feed,\n pattern: createRegExp(feed.marker, feed.minimumCharacters || 0)\n }));\n const watcher = new TextWatcher(editor.model, createTestCallback(feedsWithPattern));\n watcher.on('matched', (evt, data)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, data.text);\n const selection = editor.model.document.selection;\n const focus = selection.focus;\n const markerPosition = editor.model.createPositionAt(focus.parent, markerDefinition.position);\n if (isPositionInExistingMention(focus) || isMarkerInExistingMention(markerPosition)) {\n this._hideUIAndRemoveMarker();\n return;\n }\n const feedText = requestFeedText(markerDefinition, data.text);\n const matchedTextLength = markerDefinition.marker.length + feedText.length;\n // Create a marker range.\n const start = focus.getShiftedBy(-matchedTextLength);\n const end = focus.getShiftedBy(-feedText.length);\n const markerRange = editor.model.createRange(start, end);\n // @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n // @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n // @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n if (checkIfStillInCompletionMode(editor)) {\n const mentionMarker = editor.model.markers.get('mention');\n // Update the marker - user might've moved the selection to other mention trigger.\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n writer.updateMarker(mentionMarker, {\n range: markerRange\n });\n });\n } else {\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n writer.addMarker('mention', {\n range: markerRange,\n usingOperation: false,\n affectsData: false\n });\n });\n }\n this._requestFeedDebounced(markerDefinition.marker, feedText);\n // @if CK_DEBUG_MENTION // console.groupEnd();\n });\n watcher.on('unmatched', ()=>{\n this._hideUIAndRemoveMarker();\n });\n const mentionCommand = editor.commands.get('mention');\n watcher.bind('isEnabled').to(mentionCommand);\n return watcher;\n }\n /**\n\t * Handles the feed response event data.\n\t */ _handleFeedResponse(data) {\n const { feed, marker } = data;\n // eslint-disable-next-line max-len\n // @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n // If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n if (!checkIfStillInCompletionMode(this.editor)) {\n return;\n }\n // Reset the view.\n this._items.clear();\n for (const feedItem of feed){\n const item = typeof feedItem != 'object' ? {\n id: feedItem,\n text: feedItem\n } : feedItem;\n this._items.add({\n item,\n marker\n });\n }\n const mentionMarker = this.editor.model.markers.get('mention');\n if (this._items.length) {\n this._showOrUpdateUI(mentionMarker);\n } else {\n // Do not show empty mention UI.\n this._hideUIAndRemoveMarker();\n }\n }\n /**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */ _showOrUpdateUI(markerMarker) {\n if (this._isUIVisible) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n // Update balloon position as the mention list view may change its size.\n this._balloon.updatePosition(this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position));\n } else {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n this._balloon.add({\n view: this._mentionsView,\n position: this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position),\n singleViewMode: true\n });\n }\n this._mentionsView.position = this._balloon.view.position;\n this._mentionsView.selectFirst();\n }\n /**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */ _hideUIAndRemoveMarker() {\n // Remove the mention view from balloon before removing marker - it is used by balloon position target().\n if (this._balloon.hasView(this._mentionsView)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n this._balloon.remove(this._mentionsView);\n }\n if (checkIfStillInCompletionMode(this.editor)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n this.editor.model.change((writer)=>writer.removeMarker('mention'));\n }\n // Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n // on the next call.\n this._mentionsView.position = undefined;\n }\n /**\n\t * Renders a single item in the autocomplete list.\n\t */ _renderItem(item, marker) {\n const editor = this.editor;\n let view;\n let label = item.id;\n const renderer = this._getItemRenderer(marker);\n if (renderer) {\n const renderResult = renderer(item);\n if (typeof renderResult != 'string') {\n view = new DomWrapperView(editor.locale, renderResult);\n } else {\n label = renderResult;\n }\n }\n if (!view) {\n const buttonView = new ButtonView(editor.locale);\n buttonView.label = label;\n buttonView.withText = true;\n view = buttonView;\n }\n return view;\n }\n /**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */ _getBalloonPanelPositionData(mentionMarker, preferredPosition) {\n const editor = this.editor;\n const editing = editor.editing;\n const domConverter = editing.view.domConverter;\n const mapper = editing.mapper;\n const uiLanguageDirection = editor.locale.uiLanguageDirection;\n return {\n target: ()=>{\n let modelRange = mentionMarker.getRange();\n // Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n // The logic is used by ContextualBalloon to display another panel in the same place.\n if (modelRange.start.root.rootName == '$graveyard') {\n modelRange = editor.model.document.selection.getFirstRange();\n }\n const viewRange = mapper.toViewRange(modelRange);\n const rangeRects = Rect.getDomRangeRects(domConverter.viewRangeToDom(viewRange));\n return rangeRects.pop();\n },\n limiter: ()=>{\n const view = this.editor.editing.view;\n const viewDocument = view.document;\n const editableElement = viewDocument.selection.editableElement;\n if (editableElement) {\n return view.domConverter.mapViewToDom(editableElement.root);\n }\n return null;\n },\n positions: getBalloonPanelPositions(preferredPosition, uiLanguageDirection)\n };\n }\n}\n/**\n * Returns the balloon positions data callbacks.\n */ function getBalloonPanelPositions(preferredPosition, uiLanguageDirection) {\n const positions = {\n // Positions the panel to the southeast of the caret rectangle.\n 'caret_se': (targetRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_se',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northeast of the caret rectangle.\n 'caret_ne': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_ne',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the southwest of the caret rectangle.\n 'caret_sw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_sw',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northwest of the caret rect.\n 'caret_nw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_nw',\n config: {\n withArrow: false\n }\n };\n }\n };\n // Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n if (Object.prototype.hasOwnProperty.call(positions, preferredPosition)) {\n return [\n positions[preferredPosition]\n ];\n }\n // By default, return all position callbacks ordered depending on the UI language direction.\n return uiLanguageDirection !== 'rtl' ? [\n positions.caret_se,\n positions.caret_sw,\n positions.caret_ne,\n positions.caret_nw\n ] : [\n positions.caret_sw,\n positions.caret_se,\n positions.caret_nw,\n positions.caret_ne\n ];\n}\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */ function getLastValidMarkerInText(feedsWithPattern, text) {\n let lastValidMarker;\n for (const feed of feedsWithPattern){\n const currentMarkerLastIndex = text.lastIndexOf(feed.marker);\n if (currentMarkerLastIndex > 0 && !text.substring(currentMarkerLastIndex - 1).match(feed.pattern)) {\n continue;\n }\n if (!lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position) {\n lastValidMarker = {\n marker: feed.marker,\n position: currentMarkerLastIndex,\n minimumCharacters: feed.minimumCharacters,\n pattern: feed.pattern\n };\n }\n }\n return lastValidMarker;\n}\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n */ function createRegExp(marker, minimumCharacters) {\n const numberOfCharacters = minimumCharacters == 0 ? '*' : `{${minimumCharacters},}`;\n const openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n const mentionCharacters = '.';\n // I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n // When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n // to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n // allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n marker = marker.replace(/[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&');\n // The pattern consists of 3 groups:\n //\n // - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n // - 1: The marker character,\n // - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n //\n // The pattern matches up to the caret (end of string switch - $).\n // (0: opening sequence )(1: marker )(2: typed mention )$\n const pattern = `(?:^|[ ${openAfterCharacters}])([${marker}])(${mentionCharacters}${numberOfCharacters})$`;\n return new RegExp(pattern, 'u');\n}\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */ function createTestCallback(feedsWithPattern) {\n const textMatcher = (text)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, text);\n if (!markerDefinition) {\n return false;\n }\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const textToTest = text.substring(splitStringFrom);\n return markerDefinition.pattern.test(textToTest);\n };\n return textMatcher;\n}\n/**\n * Creates a text matcher from the marker.\n */ function requestFeedText(markerDefinition, text) {\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const regExp = createRegExp(markerDefinition.marker, 0);\n const textToMatch = text.substring(splitStringFrom);\n const match = textToMatch.match(regExp);\n return match[2];\n}\n/**\n * The default feed callback.\n */ function createFeedCallback(feedItems) {\n return (feedText)=>{\n const filteredItems = feedItems// Make the default mention feed case-insensitive.\n .filter((item)=>{\n // Item might be defined as object.\n const itemId = typeof item == 'string' ? item : String(item.id);\n // The default feed is case insensitive.\n return itemId.toLowerCase().includes(feedText.toLowerCase());\n });\n return filteredItems;\n };\n}\n/**\n * Checks if position in inside or right after a text with a mention.\n */ function isPositionInExistingMention(position) {\n // The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n // and you cannot use selection.hasAttribute( 'mention' ) just yet.\n // See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n const hasMention = position.textNode && position.textNode.hasAttribute('mention');\n const nodeBefore = position.nodeBefore;\n return hasMention || nodeBefore && nodeBefore.is('$text') && nodeBefore.hasAttribute('mention');\n}\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */ function isMarkerInExistingMention(markerPosition) {\n const nodeAfter = markerPosition.nodeAfter;\n return nodeAfter && nodeAfter.is('$text') && nodeAfter.hasAttribute('mention');\n}\n/**\n * Checks if string is a valid mention marker.\n */ function isValidMentionMarker(marker) {\n return marker && marker.length == 1;\n}\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */ function checkIfStillInCompletionMode(editor) {\n return editor.model.markers.has('mention');\n}\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */ class Mention extends Plugin {\n toMentionAttribute(viewElement, data) {\n return _toMentionAttribute(viewElement, data);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Mention';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n MentionEditing,\n MentionUI\n ];\n }\n}\n\nexport { DomWrapperView, Mention, MentionEditing, MentionListItemView, MentionUI, MentionsView };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mentioncommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { Range } from 'ckeditor5/src/engine.js';\nimport { CKEditorError, toMap } from 'ckeditor5/src/utils.js';\n\nimport { _addMentionAttributes } from './mentionediting.js';\n\nconst BRACKET_PAIRS = {\n\t'(': ')',\n\t'[': ']',\n\t'{': '}'\n} as const;\n\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */\nexport default class MentionCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command may pass range in execution parameters, it should be checked directly in execute block.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'mention' );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */\n\tpublic override execute( options: {\n\t\tmention: string | { id: string; [ key: string ]: unknown };\n\t\tmarker: string;\n\t\ttext?: string;\n\t\trange?: Range;\n\t} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\t\tconst selection = document.selection;\n\n\t\tconst mentionData = typeof options.mention == 'string' ? { id: options.mention } : options.mention;\n\t\tconst mentionID = mentionData.id;\n\n\t\tconst range = options.range || selection.getFirstRange();\n\n\t\t// Don't execute command if range is in non-editable place.\n\t\tif ( !model.canEditAt( range ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst mentionText = options.text || mentionID;\n\n\t\tconst mention = _addMentionAttributes( { _text: mentionText, id: mentionID }, mentionData );\n\n\t\tif ( options.marker.length != 1 ) {\n\t\t\t/**\n\t\t\t * The marker must be a single character.\n\t\t\t *\n\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t *\n\t\t\t * Incorrect markers: `'@@'`, `'[@'`.\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-marker\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'mentioncommand-incorrect-marker',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tif ( mentionID.charAt( 0 ) != options.marker ) {\n\t\t\t/**\n\t\t\t * The feed item ID must start with the marker character.\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'mentioncommand-incorrect-id',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tconst currentAttributes = toMap( selection.getAttributes() );\n\t\t\tconst attributesWithMention = new Map( currentAttributes.entries() );\n\n\t\t\tattributesWithMention.set( 'mention', mention );\n\n\t\t\t// Replace a range with the text with a mention.\n\t\t\tconst insertionRange = model.insertContent( writer.createText( mentionText, attributesWithMention ), range );\n\t\t\tconst nodeBefore = insertionRange.start.nodeBefore;\n\t\t\tconst nodeAfter = insertionRange.end.nodeAfter;\n\n\t\t\tconst isFollowedByWhiteSpace = nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.data.startsWith( ' ' );\n\t\t\tlet isInsertedInBrackets = false;\n\n\t\t\tif ( nodeBefore && nodeAfter && nodeBefore.is( '$text' ) && nodeAfter.is( '$text' ) ) {\n\t\t\t\tconst precedingCharacter = nodeBefore.data.slice( -1 );\n\t\t\t\tconst isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n\t\t\t\tconst isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(\n\t\t\t\t\tBRACKET_PAIRS[ precedingCharacter as keyof typeof BRACKET_PAIRS ]\n\t\t\t\t);\n\n\t\t\t\tisInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n\t\t\t}\n\n\t\t\t// Don't add a white space if either of the following is true:\n\t\t\t// * there's already one after the mention;\n\t\t\t// * the mention was inserted in the empty matching brackets.\n\t\t\t// https://github.com/ckeditor/ckeditor5/issues/4651\n\t\t\tif ( !isInsertedInBrackets && !isFollowedByWhiteSpace ) {\n\t\t\t\tmodel.insertContent( writer.createText( ' ', currentAttributes ), range!.start.getShiftedBy( mentionText.length ) );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mentionediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type {\n\tElement,\n\tText,\n\tWriter,\n\tDocument,\n\tAttributeElement,\n\tDowncastConversionApi,\n\tDowncastDispatcher,\n\tPosition,\n\tSchema,\n\tDowncastAttributeEvent,\n\tItem\n} from 'ckeditor5/src/engine.js';\nimport { uid } from 'ckeditor5/src/utils.js';\n\nimport MentionCommand from './mentioncommand.js';\nimport type { MentionAttribute } from './mention.js';\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */\nexport default class MentionEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\t// Allow the mention attribute on all text nodes.\n\t\tmodel.schema.extend( '$text', { allowAttributes: 'mention' } );\n\n\t\t// Upcast conversion.\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tkey: 'data-mention',\n\t\t\t\tclasses: 'mention'\n\t\t\t},\n\t\t\tmodel: {\n\t\t\t\tkey: 'mention',\n\t\t\t\tvalue: ( viewElement: Element ) => _toMentionAttribute( viewElement )\n\t\t\t}\n\t\t} );\n\n\t\t// Downcast conversion.\n\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n\t\t\tmodel: 'mention',\n\t\t\tview: createViewMentionElement\n\t\t} );\n\t\teditor.conversion.for( 'downcast' ).add( preventPartialMentionDowncast );\n\n\t\tdoc.registerPostFixer( writer => removePartialMentionPostFixer( writer, doc, model.schema ) );\n\t\tdoc.registerPostFixer( writer => extendAttributeOnMentionPostFixer( writer, doc ) );\n\t\tdoc.registerPostFixer( writer => selectionMentionAttributePostFixer( writer, doc ) );\n\n\t\teditor.commands.add( 'mention', new MentionCommand( editor ) );\n\t}\n}\n\n/**\n * @internal\n */\nexport function _addMentionAttributes(\n\tbaseMentionData: { id: string; _text: string },\n\tdata?: Record<string, unknown>\n): MentionAttribute {\n\treturn Object.assign( { uid: uid() }, baseMentionData, data || {} );\n}\n\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */\nexport function _toMentionAttribute(\n\tviewElementOrMention: Element,\n\tdata?: Record<string, unknown>\n): MentionAttribute | undefined {\n\tconst dataMention = viewElementOrMention.getAttribute( 'data-mention' ) as string;\n\n\tconst textNode = viewElementOrMention.getChild( 0 ) as Text;\n\n\t// Do not convert empty mentions.\n\tif ( !textNode ) {\n\t\treturn;\n\t}\n\n\tconst baseMentionData = {\n\t\tid: dataMention,\n\t\t_text: textNode.data\n\t};\n\n\treturn _addMentionAttributes( baseMentionData, data );\n}\n\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */\nfunction preventPartialMentionDowncast( dispatcher: DowncastDispatcher ) {\n\tdispatcher.on<DowncastAttributeEvent>( 'attribute:mention', ( evt, data, conversionApi ) => {\n\t\tconst mention = data.attributeNewValue as MentionAttribute;\n\n\t\tif ( !data.item.is( '$textProxy' ) || !mention ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst start = data.range.start;\n\t\tconst textNode = start.textNode || start.nodeAfter as Text;\n\n\t\tif ( textNode!.data != mention._text ) {\n\t\t\t// Consume item to prevent partial mention conversion.\n\t\t\tconversionApi.consumable.consume( data.item, evt.name );\n\t\t}\n\t}, { priority: 'highest' } );\n}\n\n/**\n * Creates a mention element from the mention data.\n */\nfunction createViewMentionElement( mention: MentionAttribute, { writer }: DowncastConversionApi ): AttributeElement | undefined {\n\tif ( !mention ) {\n\t\treturn;\n\t}\n\n\tconst attributes = {\n\t\tclass: 'mention',\n\t\t'data-mention': mention.id\n\t};\n\n\tconst options = {\n\t\tid: mention.uid,\n\t\tpriority: 20\n\t};\n\n\treturn writer.createAttributeElement( 'span', attributes, options );\n}\n\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */\nfunction selectionMentionAttributePostFixer( writer: Writer, doc: Document ): boolean {\n\tconst selection = doc.selection;\n\tconst focus = selection.focus;\n\n\tif ( selection.isCollapsed && selection.hasAttribute( 'mention' ) && shouldNotTypeWithMentionAt( focus! ) ) {\n\t\twriter.removeSelectionAttribute( 'mention' );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */\nfunction shouldNotTypeWithMentionAt( position: Position ): boolean {\n\tconst isAtStart = position.isAtStart;\n\tconst isAfterAMention = position.nodeBefore && position.nodeBefore.is( '$text' );\n\n\treturn isAfterAMention || isAtStart;\n}\n\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */\nfunction removePartialMentionPostFixer( writer: Writer, doc: Document, schema: Schema ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type == 'attribute' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Checks the text node on the current position.\n\t\tconst position = change.position;\n\n\t\tif ( change.name == '$text' ) {\n\t\t\tconst nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n\n\t\t\t// Checks the text node where the change occurred.\n\t\t\twasChanged = checkAndFix( position.textNode, writer ) || wasChanged;\n\n\t\t\t// Occurs on paste inside a text node with mention.\n\t\t\twasChanged = checkAndFix( nodeAfterInsertedTextNode, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeAfter, writer ) || wasChanged;\n\t\t}\n\n\t\t// Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n\t\tif ( change.name != '$text' && change.type == 'insert' ) {\n\t\t\tconst insertedNode = position.nodeAfter as Element;\n\n\t\t\tfor ( const item of writer.createRangeIn( insertedNode! ).getItems() ) {\n\t\t\t\twasChanged = checkAndFix( item, writer ) || wasChanged;\n\t\t\t}\n\t\t}\n\n\t\t// Inserted inline elements might break mention.\n\t\tif ( change.type == 'insert' && schema.isInline( change.name ) ) {\n\t\t\tconst nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( nodeAfterInserted, writer ) || wasChanged;\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */\nfunction extendAttributeOnMentionPostFixer( writer: Writer, doc: Document ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type === 'attribute' && change.attributeKey != 'mention' ) {\n\t\t\t// Checks the node on the left side of the range...\n\t\t\tconst nodeBefore = change.range.start.nodeBefore;\n\t\t\t// ... and on the right side of the range.\n\t\t\tconst nodeAfter = change.range.end.nodeAfter;\n\n\t\t\tfor ( const node of [ nodeBefore, nodeAfter ] ) {\n\t\t\t\tif ( isBrokenMentionNode( node ) && node!.getAttribute( change.attributeKey ) != change.attributeNewValue ) {\n\t\t\t\t\twriter.setAttribute( change.attributeKey, change.attributeNewValue, node! );\n\n\t\t\t\t\twasChanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */\nfunction isBrokenMentionNode( node: Item | null ): boolean {\n\tif ( !node || !( node.is( '$text' ) || node.is( '$textProxy' ) ) || !node.hasAttribute( 'mention' ) ) {\n\t\treturn false;\n\t}\n\n\tconst text = node.data;\n\tconst mention = node.getAttribute( 'mention' ) as MentionAttribute;\n\n\tconst expectedText = mention._text;\n\n\treturn text != expectedText;\n}\n\n/**\n * Fixes a mention on a text node if it needs a fix.\n */\nfunction checkAndFix( textNode: Item | null, writer: Writer ): boolean {\n\tif ( isBrokenMentionNode( textNode ) ) {\n\t\twriter.removeAttribute( 'mention', textNode! );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/ui/mentionsview\n */\n\nimport { ListView } from 'ckeditor5/src/ui.js';\nimport { Rect, type Locale } from 'ckeditor5/src/utils.js';\n\nimport type MentionListItemView from './mentionlistitemview.js';\n\nimport '../../theme/mentionui.css';\n\n/**\n * The mention ui view.\n */\nexport default class MentionsView extends ListView {\n\tpublic selected: MentionListItemView | undefined;\n\n\tpublic position: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-mentions'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * {@link #select Selects} the first item.\n\t */\n\tpublic selectFirst(): void {\n\t\tthis.select( 0 );\n\t}\n\n\t/**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */\n\tpublic selectNext(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index + 1 );\n\t}\n\n\t/**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */\n\tpublic selectPrevious(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index - 1 );\n\t}\n\n\t/**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */\n\tpublic select( index: number ): void {\n\t\tlet indexToGet = 0;\n\n\t\tif ( index > 0 && index < this.items.length ) {\n\t\t\tindexToGet = index;\n\t\t} else if ( index < 0 ) {\n\t\t\tindexToGet = this.items.length - 1;\n\t\t}\n\n\t\tconst item = this.items.get( indexToGet ) as MentionListItemView;\n\n\t\t// Return early if item is already selected.\n\t\tif ( this.selected === item ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove highlight of previously selected item.\n\t\tif ( this.selected ) {\n\t\t\tthis.selected.removeHighlight();\n\t\t}\n\n\t\titem.highlight();\n\t\tthis.selected = item;\n\n\t\t// Scroll the mentions view to the selected element.\n\t\tif ( !this._isItemVisibleInScrolledArea( item ) ) {\n\t\t\tthis.element!.scrollTop = item.element!.offsetTop;\n\t\t}\n\t}\n\n\t/**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */\n\tpublic executeSelected(): void {\n\t\tthis.selected!.fire( 'execute' );\n\t}\n\n\t/**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */\n\tprivate _isItemVisibleInScrolledArea( item: MentionListItemView ) {\n\t\treturn new Rect( this.element! ).contains( new Rect( item.element! ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/ui/domwrapperview\n */\n\nimport { View } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */\nexport default class DomWrapperView extends View {\n\t/**\n\t * The DOM element for which wrapper was created.\n\t */\n\tpublic domElement: HTMLElement;\n\n\t/**\n\t * Controls whether the dom wrapper view is \"on\". This is in line with {@link module:ui/button/button~Button#isOn} property.\n\t *\n\t * @observable\n\t * @default true\n\t */\n\tdeclare public isOn: boolean;\n\n\t/**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~DomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */\n\tconstructor( locale: Locale, domElement: HTMLElement ) {\n\t\tsuper( locale );\n\n\t\t// Disable template rendering on this view.\n\t\tthis.template = undefined;\n\n\t\tthis.domElement = domElement;\n\n\t\t// Render dom wrapper as a button.\n\t\tthis.domElement.classList.add( 'ck-button' );\n\n\t\tthis.set( 'isOn', false );\n\n\t\t// Handle isOn state as in buttons.\n\t\tthis.on( 'change:isOn', ( evt, name, isOn ) => {\n\t\t\tif ( isOn ) {\n\t\t\t\tthis.domElement.classList.add( 'ck-on' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-off' );\n\t\t\t} else {\n\t\t\t\tthis.domElement.classList.add( 'ck-off' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-on' );\n\t\t\t}\n\t\t} );\n\n\t\t// Pass click event as execute event.\n\t\tthis.listenTo( this.domElement, 'click', () => {\n\t\t\tthis.fire( 'execute' );\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.element = this.domElement;\n\t}\n\n\t/**\n\t * Focuses the DOM element.\n\t */\n\tpublic focus(): void {\n\t\tthis.domElement.focus();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/ui/mentionlistitemview\n */\n\nimport { ListItemView } from 'ckeditor5/src/ui.js';\n\nimport type { MentionFeedItem } from '../mentionconfig.js';\n\nimport type DomWrapperView from './domwrapperview.js';\n\nexport default class MentionListItemView extends ListItemView {\n\tpublic item!: MentionFeedItem;\n\n\tpublic marker!: string;\n\n\tpublic highlight(): void {\n\t\tconst child = this.children.first as DomWrapperView;\n\n\t\tchild.isOn = true;\n\t}\n\n\tpublic removeHighlight(): void {\n\t\tconst child = this.children.first as DomWrapperView;\n\n\t\tchild.isOn = false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mentionui\n */\n\nimport {\n\tPlugin,\n\ttype Editor\n} from 'ckeditor5/src/core.js';\n\nimport type {\n\tViewDocumentKeyDownEvent,\n\tMarker,\n\tPosition\n} from 'ckeditor5/src/engine.js';\n\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tclickOutsideHandler\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tCKEditorError,\n\tCollection,\n\tRect,\n\tenv,\n\tkeyCodes,\n\tlogWarning,\n\ttype PositionOptions\n} from 'ckeditor5/src/utils.js';\n\nimport { TextWatcher, type TextWatcherMatchedEvent } from 'ckeditor5/src/typing.js';\n\nimport { debounce } from 'lodash-es';\n\nimport MentionsView from './ui/mentionsview.js';\nimport DomWrapperView from './ui/domwrapperview.js';\nimport MentionListItemView from './ui/mentionlistitemview.js';\n\nimport type {\n\tFeedCallback,\n\tMentionFeed,\n\tMentionFeedItem,\n\tItemRenderer,\n\tMentionFeedObjectItem\n} from './mentionconfig.js';\n\nconst VERTICAL_SPACING = 3;\n\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n\tkeyCodes.arrowup,\n\tkeyCodes.arrowdown,\n\tkeyCodes.esc\n];\n\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n\tkeyCodes.enter,\n\tkeyCodes.tab\n];\n\n/**\n * The mention UI feature.\n */\nexport default class MentionUI extends Plugin {\n\t/**\n\t * The mention view.\n\t */\n\tprivate readonly _mentionsView: MentionsView;\n\n\t/**\n\t * Stores mention feeds configurations.\n\t */\n\tprivate _mentionsConfigurations: Map<string, Definition>;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon: ContextualBalloon | undefined;\n\n\tprivate _items = new Collection<{ item: MentionFeedObjectItem; marker: string }>();\n\n\tprivate _lastRequested?: string;\n\n\t/**\n\t * Debounced feed requester. It uses `lodash#debounce` method to delay function call.\n\t */\n\tprivate _requestFeedDebounced: ( marker: string, feedText: string ) => void;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ContextualBalloon ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._mentionsView = this._createMentionView();\n\t\tthis._mentionsConfigurations = new Map();\n\t\tthis._requestFeedDebounced = debounce( this._requestFeed, 100 );\n\n\t\teditor.config.define( 'mention', { feeds: [] } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tconst commitKeys = editor.config.get( 'mention.commitKeys' ) || defaultCommitKeyCodes;\n\t\tconst handledKeyCodes = defaultHandledKeyCodes.concat( commitKeys );\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Key listener that handles navigation in mention view.\n\t\teditor.editing.view.document.on<ViewDocumentKeyDownEvent>( 'keydown', ( evt, data ) => {\n\t\t\tif ( isHandledKey( data.keyCode ) && this._isUIVisible ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t\tevt.stop(); // Required for Enter key overriding.\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowdown ) {\n\t\t\t\t\tthis._mentionsView.selectNext();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowup ) {\n\t\t\t\t\tthis._mentionsView.selectPrevious();\n\t\t\t\t}\n\n\t\t\t\tif ( commitKeys.includes( data.keyCode ) ) {\n\t\t\t\t\tthis._mentionsView.executeSelected();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.esc ) {\n\t\t\t\t\tthis._hideUIAndRemoveMarker();\n\t\t\t\t}\n\t\t\t}\n\t\t}, { priority: 'highest' } ); // Required to override the Enter key.\n\n\t\t// Close the dropdown upon clicking outside of the plugin UI.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this._mentionsView,\n\t\t\tactivator: () => this._isUIVisible,\n\t\t\tcontextElements: () => [ this._balloon!.view.element! ],\n\t\t\tcallback: () => this._hideUIAndRemoveMarker()\n\t\t} );\n\n\t\tconst feeds = editor.config.get( 'mention.feeds' )!;\n\n\t\tfor ( const mentionDescription of feeds ) {\n\t\t\tconst { feed, marker, dropdownLimit } = mentionDescription;\n\n\t\t\tif ( !isValidMentionMarker( marker ) ) {\n\t\t\t\t/**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param marker Configured marker\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'mentionconfig-incorrect-marker', null, { marker } );\n\t\t\t}\n\n\t\t\tconst feedCallback = typeof feed == 'function' ? feed.bind( this.editor ) : createFeedCallback( feed );\n\t\t\tconst itemRenderer = mentionDescription.itemRenderer;\n\t\t\tconst definition = { marker, feedCallback, itemRenderer, dropdownLimit };\n\n\t\t\tthis._mentionsConfigurations.set( marker, definition );\n\t\t}\n\n\t\tthis._setupTextWatcher( feeds );\n\t\tthis.listenTo( editor, 'change:isReadOnly', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\t\tthis.on<RequestFeedResponseEvent>( 'requestFeed:response', ( evt, data ) => this._handleFeedResponse( data ) );\n\t\tthis.on<RequestFeedErrorEvent>( 'requestFeed:error', () => this._hideUIAndRemoveMarker() );\n\n\t\t/**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */\n\t\tfunction isHandledKey( keyCode: number ): boolean {\n\t\t\treturn handledKeyCodes.includes( keyCode );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tthis._mentionsView.destroy();\n\t}\n\n\t/**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _isUIVisible(): boolean {\n\t\treturn this._balloon!.visibleView === this._mentionsView;\n\t}\n\n\t/**\n\t * Creates the {@link #_mentionsView}.\n\t */\n\tprivate _createMentionView(): MentionsView {\n\t\tconst locale = this.editor.locale;\n\n\t\tconst mentionsView = new MentionsView( locale );\n\n\t\tmentionsView.items.bindTo( this._items ).using( data => {\n\t\t\tconst { item, marker } = data;\n\n\t\t\tconst { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get( marker )!;\n\n\t\t\t// Set to 10 by default for backwards compatibility. See: #10479\n\t\t\tconst dropdownLimit = markerDropdownLimit || this.editor.config.get( 'mention.dropdownLimit' ) || 10;\n\n\t\t\tif ( mentionsView.items.length >= dropdownLimit ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst listItemView = new MentionListItemView( locale );\n\n\t\t\tconst view = this._renderItem( item, marker );\n\t\t\tview.delegate( 'execute' ).to( listItemView );\n\n\t\t\tlistItemView.children.add( view );\n\t\t\tlistItemView.item = item;\n\t\t\tlistItemView.marker = marker;\n\n\t\t\tlistItemView.on( 'execute', () => {\n\t\t\t\tmentionsView.fire( 'execute', {\n\t\t\t\t\titem,\n\t\t\t\t\tmarker\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn listItemView;\n\t\t} );\n\n\t\tmentionsView.on( 'execute', ( evt, data ) => {\n\t\t\tconst editor = this.editor;\n\t\t\tconst model = editor.model;\n\n\t\t\tconst item = data.item;\n\t\t\tconst marker = data.marker;\n\n\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' );\n\n\t\t\t// Create a range on matched text.\n\t\t\tconst end = model.createPositionAt( model.document.selection.focus! );\n\t\t\tconst start = model.createPositionAt( mentionMarker!.getStart() );\n\t\t\tconst range = model.createRange( start, end );\n\n\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\teditor.execute( 'mention', {\n\t\t\t\tmention: item,\n\t\t\t\ttext: item.text,\n\t\t\t\tmarker,\n\t\t\t\trange\n\t\t\t} );\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn mentionsView;\n\t}\n\n\t/**\n\t * Returns item renderer for the marker.\n\t */\n\tprivate _getItemRenderer( marker: string ): ItemRenderer | undefined {\n\t\tconst { itemRenderer } = this._mentionsConfigurations.get( marker )!;\n\n\t\treturn itemRenderer;\n\t}\n\n\t/**\n\t * Requests a feed from a configured callbacks.\n\t */\n\tprivate _requestFeed( marker: string, feedText: string ): void {\n\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n\n\t\t// Store the last requested feed - it is used to discard any out-of order requests.\n\t\tthis._lastRequested = feedText;\n\n\t\tconst { feedCallback } = this._mentionsConfigurations.get( marker )!;\n\t\tconst feedResponse = feedCallback( feedText );\n\n\t\tconst isAsynchronous = feedResponse instanceof Promise;\n\n\t\t// For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n\t\tif ( !isAsynchronous ) {\n\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: feedResponse, marker, feedText } );\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Handle the asynchronous responses.\n\t\tfeedResponse\n\t\t\t.then( response => {\n\t\t\t\t// Check the feed text of this response with the last requested one so either:\n\t\t\t\tif ( this._lastRequested == feedText ) {\n\t\t\t\t\t// It is the same and fire the response event.\n\t\t\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: response, marker, feedText } );\n\t\t\t\t} else {\n\t\t\t\t\t// It is different - most probably out-of-order one, so fire the discarded event.\n\t\t\t\t\tthis.fire<RequestFeedDiscardedEvent>( 'requestFeed:discarded', { feed: response, marker, feedText } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( error => {\n\t\t\t\tthis.fire<RequestFeedErrorEvent>( 'requestFeed:error', { error } );\n\n\t\t\t\t/**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */\n\t\t\t\tlogWarning( 'mention-feed-callback-error', { marker } );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Registers a text watcher for the marker.\n\t */\n\tprivate _setupTextWatcher( feeds: Array<MentionFeed> ): TextWatcher {\n\t\tconst editor = this.editor;\n\n\t\tconst feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> = feeds.map( feed => ( {\n\t\t\t...feed,\n\t\t\tpattern: createRegExp( feed.marker, feed.minimumCharacters || 0 )\n\t\t} ) );\n\n\t\tconst watcher = new TextWatcher( editor.model, createTestCallback( feedsWithPattern ) );\n\n\t\twatcher.on<TextWatcherMatchedEvent>( 'matched', ( evt, data ) => {\n\t\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, data.text );\n\t\t\tconst selection = editor.model.document.selection;\n\t\t\tconst focus = selection.focus;\n\t\t\tconst markerPosition = editor.model.createPositionAt( focus!.parent, markerDefinition!.position );\n\n\t\t\tif ( isPositionInExistingMention( focus! ) || isMarkerInExistingMention( markerPosition ) ) {\n\t\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst feedText = requestFeedText( markerDefinition, data.text );\n\t\t\tconst matchedTextLength = markerDefinition!.marker.length + feedText.length;\n\n\t\t\t// Create a marker range.\n\t\t\tconst start = focus!.getShiftedBy( -matchedTextLength );\n\t\t\tconst end = focus!.getShiftedBy( -feedText.length );\n\n\t\t\tconst markerRange = editor.model.createRange( start, end );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n\n\t\t\tif ( checkIfStillInCompletionMode( editor ) ) {\n\t\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' )!;\n\n\t\t\t\t// Update the marker - user might've moved the selection to other mention trigger.\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.updateMarker( mentionMarker, { range: markerRange } );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.addMarker( 'mention', { range: markerRange, usingOperation: false, affectsData: false } );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis._requestFeedDebounced( markerDefinition!.marker, feedText );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.groupEnd();\n\t\t} );\n\n\t\twatcher.on( 'unmatched', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\n\t\tconst mentionCommand = editor.commands.get( 'mention' )!;\n\t\twatcher.bind( 'isEnabled' ).to( mentionCommand );\n\n\t\treturn watcher;\n\t}\n\n\t/**\n\t * Handles the feed response event data.\n\t */\n\tprivate _handleFeedResponse( data: RequestFeedResponseEvent['args'][0] ) {\n\t\tconst { feed, marker } = data;\n\n\t\t// eslint-disable-next-line max-len\n\t\t// @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n\n\t\t// If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n\t\tif ( !checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Reset the view.\n\t\tthis._items.clear();\n\n\t\tfor ( const feedItem of feed ) {\n\t\t\tconst item = typeof feedItem != 'object' ? { id: feedItem, text: feedItem } : feedItem;\n\n\t\t\tthis._items.add( { item, marker } );\n\t\t}\n\n\t\tconst mentionMarker = this.editor.model.markers.get( 'mention' );\n\n\t\tif ( this._items.length ) {\n\t\t\tthis._showOrUpdateUI( mentionMarker! );\n\t\t} else {\n\t\t\t// Do not show empty mention UI.\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */\n\tprivate _showOrUpdateUI( markerMarker: Marker ): void {\n\t\tif ( this._isUIVisible ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n\n\t\t\t// Update balloon position as the mention list view may change its size.\n\t\t\tthis._balloon!.updatePosition( this._getBalloonPanelPositionData( markerMarker, this._mentionsView!.position ) );\n\t\t} else {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.add( {\n\t\t\t\tview: this._mentionsView,\n\t\t\t\tposition: this._getBalloonPanelPositionData( markerMarker, this._mentionsView.position ),\n\t\t\t\tsingleViewMode: true\n\t\t\t} );\n\t\t}\n\n\t\tthis._mentionsView.position = this._balloon!.view.position;\n\t\tthis._mentionsView.selectFirst();\n\t}\n\n\t/**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */\n\tprivate _hideUIAndRemoveMarker(): void {\n\t\t// Remove the mention view from balloon before removing marker - it is used by balloon position target().\n\t\tif ( this._balloon!.hasView( this._mentionsView ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.remove( this._mentionsView );\n\t\t}\n\n\t\tif ( checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n\n\t\t\tthis.editor.model.change( writer => writer.removeMarker( 'mention' ) );\n\t\t}\n\n\t\t// Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n\t\t// on the next call.\n\t\tthis._mentionsView.position = undefined;\n\t}\n\n\t/**\n\t * Renders a single item in the autocomplete list.\n\t */\n\tprivate _renderItem( item: MentionFeedObjectItem, marker: string ): DomWrapperView | ButtonView {\n\t\tconst editor = this.editor;\n\n\t\tlet view;\n\t\tlet label = item.id;\n\n\t\tconst renderer = this._getItemRenderer( marker );\n\n\t\tif ( renderer ) {\n\t\t\tconst renderResult = renderer( item );\n\n\t\t\tif ( typeof renderResult != 'string' ) {\n\t\t\t\tview = new DomWrapperView( editor.locale, renderResult );\n\t\t\t} else {\n\t\t\t\tlabel = renderResult;\n\t\t\t}\n\t\t}\n\n\t\tif ( !view ) {\n\t\t\tconst buttonView = new ButtonView( editor.locale );\n\n\t\t\tbuttonView.label = label;\n\t\t\tbuttonView.withText = true;\n\n\t\t\tview = buttonView;\n\t\t}\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */\n\tprivate _getBalloonPanelPositionData( mentionMarker: Marker, preferredPosition: MentionsView['position'] ): Partial<PositionOptions> {\n\t\tconst editor = this.editor;\n\t\tconst editing = editor.editing;\n\t\tconst domConverter = editing.view.domConverter;\n\t\tconst mapper = editing.mapper;\n\t\tconst uiLanguageDirection = editor.locale.uiLanguageDirection;\n\n\t\treturn {\n\t\t\ttarget: () => {\n\t\t\t\tlet modelRange = mentionMarker.getRange();\n\n\t\t\t\t// Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n\t\t\t\t// The logic is used by ContextualBalloon to display another panel in the same place.\n\t\t\t\tif ( modelRange.start.root.rootName == '$graveyard' ) {\n\t\t\t\t\tmodelRange = editor.model.document.selection.getFirstRange()!;\n\t\t\t\t}\n\n\t\t\t\tconst viewRange = mapper.toViewRange( modelRange );\n\t\t\t\tconst rangeRects = Rect.getDomRangeRects( domConverter.viewRangeToDom( viewRange ) );\n\n\t\t\t\treturn rangeRects.pop()!;\n\t\t\t},\n\t\t\tlimiter: () => {\n\t\t\t\tconst view = this.editor.editing.view;\n\t\t\t\tconst viewDocument = view.document;\n\t\t\t\tconst editableElement = viewDocument.selection.editableElement;\n\n\t\t\t\tif ( editableElement ) {\n\t\t\t\t\treturn view.domConverter.mapViewToDom( editableElement.root ) as HTMLElement;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tpositions: getBalloonPanelPositions( preferredPosition, uiLanguageDirection )\n\t\t};\n\t}\n}\n\n/**\n * Returns the balloon positions data callbacks.\n */\nfunction getBalloonPanelPositions(\n\tpreferredPosition: MentionsView['position'],\n\tuiLanguageDirection: string\n): PositionOptions['positions'] {\n\tconst positions: Record<string, PositionOptions['positions'][0]> = {\n\t\t// Positions the panel to the southeast of the caret rectangle.\n\t\t'caret_se': ( targetRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_se',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northeast of the caret rectangle.\n\t\t'caret_ne': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_ne',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the southwest of the caret rectangle.\n\t\t'caret_sw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_sw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northwest of the caret rect.\n\t\t'caret_nw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_nw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t};\n\n\t// Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n\tif ( Object.prototype.hasOwnProperty.call( positions, preferredPosition! ) ) {\n\t\treturn [\n\t\t\tpositions[ preferredPosition! ]\n\t\t];\n\t}\n\n\t// By default, return all position callbacks ordered depending on the UI language direction.\n\treturn uiLanguageDirection !== 'rtl' ? [\n\t\tpositions.caret_se,\n\t\tpositions.caret_sw,\n\t\tpositions.caret_ne,\n\t\tpositions.caret_nw\n\t] : [\n\t\tpositions.caret_sw,\n\t\tpositions.caret_se,\n\t\tpositions.caret_nw,\n\t\tpositions.caret_ne\n\t];\n}\n\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */\nfunction getLastValidMarkerInText(\n\tfeedsWithPattern: Array<MentionFeed & { pattern: RegExp }>,\n\ttext: string\n): MarkerDefinition {\n\tlet lastValidMarker: any;\n\n\tfor ( const feed of feedsWithPattern ) {\n\t\tconst currentMarkerLastIndex = text.lastIndexOf( feed.marker );\n\n\t\tif ( currentMarkerLastIndex > 0 && !text.substring( currentMarkerLastIndex - 1 ).match( feed.pattern ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( !lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position ) {\n\t\t\tlastValidMarker = {\n\t\t\t\tmarker: feed.marker,\n\t\t\t\tposition: currentMarkerLastIndex,\n\t\t\t\tminimumCharacters: feed.minimumCharacters,\n\t\t\t\tpattern: feed.pattern\n\t\t\t};\n\t\t}\n\t}\n\n\treturn lastValidMarker;\n}\n\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n */\nexport function createRegExp( marker: string, minimumCharacters: number ): RegExp {\n\tconst numberOfCharacters = minimumCharacters == 0 ? '*' : `{${ minimumCharacters },}`;\n\tconst openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n\tconst mentionCharacters = '.';\n\n\t// I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n\t// When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n\t// to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n\t// allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n\tmarker = marker.replace( /[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&' );\n\n\t// The pattern consists of 3 groups:\n\t//\n\t// - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n\t// - 1: The marker character,\n\t// - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n\t//\n\t// The pattern matches up to the caret (end of string switch - $).\n\t// (0: opening sequence )(1: marker )(2: typed mention )$\n\tconst pattern = `(?:^|[ ${ openAfterCharacters }])([${ marker }])(${ mentionCharacters }${ numberOfCharacters })$`;\n\n\treturn new RegExp( pattern, 'u' );\n}\n\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */\nfunction createTestCallback( feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> ): ( text: string ) => boolean {\n\tconst textMatcher = ( text: string ) => {\n\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, text );\n\n\t\tif ( !markerDefinition ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet splitStringFrom = 0;\n\n\t\tif ( markerDefinition.position !== 0 ) {\n\t\t\tsplitStringFrom = markerDefinition.position - 1;\n\t\t}\n\n\t\tconst textToTest = text.substring( splitStringFrom );\n\n\t\treturn markerDefinition.pattern.test( textToTest );\n\t};\n\n\treturn textMatcher;\n}\n\n/**\n * Creates a text matcher from the marker.\n */\nfunction requestFeedText( markerDefinition: MarkerDefinition, text: string ): string {\n\tlet splitStringFrom = 0;\n\n\tif ( markerDefinition.position !== 0 ) {\n\t\tsplitStringFrom = markerDefinition.position - 1;\n\t}\n\n\tconst regExp = createRegExp( markerDefinition.marker, 0 );\n\tconst textToMatch = text.substring( splitStringFrom );\n\tconst match = textToMatch.match( regExp )!;\n\n\treturn match[ 2 ];\n}\n\n/**\n * The default feed callback.\n */\nfunction createFeedCallback( feedItems: Array<MentionFeedItem> ) {\n\treturn ( feedText: string ) => {\n\t\tconst filteredItems = feedItems\n\t\t\t// Make the default mention feed case-insensitive.\n\t\t\t.filter( item => {\n\t\t\t\t// Item might be defined as object.\n\t\t\t\tconst itemId = typeof item == 'string' ? item : String( item.id );\n\n\t\t\t\t// The default feed is case insensitive.\n\t\t\t\treturn itemId.toLowerCase().includes( feedText.toLowerCase() );\n\t\t\t} );\n\t\treturn filteredItems;\n\t};\n}\n\n/**\n * Checks if position in inside or right after a text with a mention.\n */\nfunction isPositionInExistingMention( position: Position ): boolean | null {\n\t// The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n\t// and you cannot use selection.hasAttribute( 'mention' ) just yet.\n\t// See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n\tconst hasMention = position.textNode && position.textNode.hasAttribute( 'mention' );\n\n\tconst nodeBefore = position.nodeBefore;\n\n\treturn hasMention || nodeBefore && nodeBefore.is( '$text' ) && nodeBefore.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */\nfunction isMarkerInExistingMention( markerPosition: Position ): boolean | null {\n\tconst nodeAfter = markerPosition.nodeAfter;\n\n\treturn nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if string is a valid mention marker.\n */\nfunction isValidMentionMarker( marker: string ): boolean | string {\n\treturn marker && marker.length == 1;\n}\n\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */\nfunction checkIfStillInCompletionMode( editor: Editor ): boolean {\n\treturn editor.model.markers.has( 'mention' );\n}\n\ntype RequestFeedResponse = {\n\n\t/**\n\t * Autocomplete items\n\t */\n\tfeed: Array<MentionFeedItem>;\n\n\t/**\n\t * The character which triggers autocompletion for mention.\n\t */\n\tmarker: string;\n\n\t/**\n\t * The text for which feed items were requested.\n\t */\n\tfeedText: string;\n};\n\ntype RequestFeedError = {\n\n\t/**\n\t * The error that was caught.\n\t */\n\terror: ErrorEvent;\n};\n\n/**\n * Fired whenever requested feed has a response.\n */\ntype RequestFeedResponseEvent = {\n\tname: 'requestFeed:response';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested feed was discarded. This happens when the response was delayed and\n * other feed was already requested.\n */\ntype RequestFeedDiscardedEvent = {\n\tname: 'requestFeed:discarded';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested {@link module:mention/mentionconfig~MentionFeed#feed} promise fails with error.\n */\ntype RequestFeedErrorEvent = {\n\tname: 'requestFeed:error';\n\targs: [ RequestFeedError ];\n};\n\ntype Definition = {\n\tmarker: string;\n\tfeedCallback: FeedCallback;\n\titemRenderer?: ItemRenderer;\n\tdropdownLimit?: number;\n};\n\ntype MarkerDefinition = {\n\tmarker: string;\n\tminimumCharacters?: number;\n\tpattern: RegExp;\n\tposition: number;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mention\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { Element } from 'ckeditor5/src/engine.js';\n\nimport MentionEditing, { _toMentionAttribute } from './mentionediting.js';\nimport MentionUI from './mentionui.js';\n\nimport '../theme/mention.css';\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */\nexport default class Mention extends Plugin {\n\t/**\n\t * Creates a mention attribute value from the provided view element and additional data.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement, { userId: '1234' } );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', userId: '1234', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t *\n\t * @param data Additional data to be stored in the mention attribute.\n\t */\n\tpublic toMentionAttribute<MentionData extends Record<string, unknown>>(\n\t\tviewElement: Element,\n\t\tdata: MentionData\n\t): ( MentionAttribute & MentionData ) | undefined;\n\n\t/**\n\t * Creates a mention attribute value from the provided view element.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t */\n\tpublic toMentionAttribute( viewElement: Element ): MentionAttribute | undefined;\n\n\tpublic toMentionAttribute( viewElement: Element, data?: Record<string, unknown> ): MentionAttribute | undefined {\n\t\treturn _toMentionAttribute( viewElement, data );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Mention' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ MentionEditing, MentionUI ] as const;\n\t}\n}\n\n/**\n * Represents a mention in the model.\n *\n * See {@link module:mention/mention~Mention#toMentionAttribute `Mention#toMentionAttribute()`}.\n */\nexport type MentionAttribute = {\n\n\t/**\n\t * The ID of a mention. It identifies the mention item in the mention feed. There can be multiple mentions\n\t * in the document with the same ID (e.g. the same hashtag being mentioned).\n\t */\n\tid: string;\n\n\t/**\n\t * A unique ID of this mention instance. Should be passed as an `option.id` when using\n\t * {@link module:engine/view/downcastwriter~DowncastWriter#createAttributeElement writer.createAttributeElement()}.\n\t */\n\tuid: string;\n\n\t/**\n\t * Helper property that stores the text of the inserted mention. Used for detecting a broken mention\n\t * in the editing area.\n\t *\n\t * @internal\n\t */\n\t_text: string;\n};\n"]}
|
1
|
+
{"version":3,"sources":["index.js","../src/mentioncommand.ts","../src/mentionediting.ts","../src/ui/mentionsview.ts","../src/ui/domwrapperview.ts","../src/ui/mentionlistitemview.ts","../src/mentionui.ts","../src/mention.ts"],"names":["BRACKET_PAIRS","MentionCommand","Command","editor","_isEnabledBasedOnSelection","model","doc","document","isEnabled","schema","checkAttributeInSelection","selection","execute","options","mentionData","mention","id","mentionID","range","getFirstRange","canEditAt","mentionText","text","_addMentionAttributes","_text","marker","length","CKEditorError","charAt","change","writer","currentAttributes","toMap","getAttributes","attributesWithMention","Map","entries","set","insertionRange","insertContent","createText","nodeBefore","start","nodeAfter","end","isFollowedByWhiteSpace","is","data","startsWith","isInsertedInBrackets","precedingCharacter","slice","isPrecededByOpeningBracket","isFollowedByBracketClosure","getShiftedBy","MentionEditing","Plugin","pluginName","isOfficialPlugin","extend","allowAttributes","conversion","for","elementToAttribute","view","name","key","classes","value","viewElement","_toMentionAttribute","attributeToElement","createViewMentionElement","add","preventPartialMentionDowncast","registerPostFixer","removePartialMentionPostFixer","extendAttributeOnMentionPostFixer","selectionMentionAttributePostFixer","commands","baseMentionData","Object","assign","uid","viewElementOrMention","dataMention","getAttribute","textNode","getChild","dispatcher","on","evt","conversionApi","attributeNewValue","item","consumable","consume","priority","attributes","class","createAttributeElement","focus","isCollapsed","hasAttribute","shouldNotTypeWithMentionAt","removeSelectionAttribute","position","isAtStart","isAfterAMention","changes","differ","getChanges","wasChanged","type","nodeAfterInsertedTextNode","nextSibling","checkAndFix","insertedNode","createRangeIn","getItems","isInline","nodeAfterInserted","attributeKey","node","isBrokenMentionNode","setAttribute","expectedText","removeAttribute","MentionsView","ListView","selected","constructor","locale","extendTemplate","tabindex","select","index","items","getIndex","indexToGet","get","removeHighlight","highlight","_isItemVisibleInScrolledArea","element","scrollTop","offsetTop","fire","Rect","contains","DomWrapperView","View","domElement","template","undefined","classList","isOn","remove","listenTo","render","MentionListItemView","ListItemView","child","children","first","VERTICAL_SPACING","defaultHandledKeyCodes","keyCodes","arrowup","arrowdown","esc","defaultCommitKeyCodes","enter","tab","MentionUI","_items","Collection","_lastRequested","requires","ContextualBalloon","_mentionsView","_createMentionView","_mentionsConfigurations","_requestFeedDebounced","debounce","_requestFeed","config","define","feeds","commitKeys","handledKeyCodes","concat","_balloon","plugins","editing","isHandledKey","keyCode","_isUIVisible","preventDefault","stop","selectNext","selectPrevious","includes","executeSelected","_hideUIAndRemoveMarker","clickOutsideHandler","emitter","activator","contextElements","callback","mentionDescription","feed","dropdownLimit","isValidMentionMarker","feedCallback","bind","createFeedCallback","itemRenderer","definition","_setupTextWatcher","_handleFeedResponse","destroy","visibleView","mentionsView","bindTo","using","markerDropdownLimit","listItemView","_renderItem","delegate","to","mentionMarker","markers","createPositionAt","getStart","createRange","_getItemRenderer","feedText","feedResponse","isAsynchronous","Promise","then","response","catch","error","logWarning","feedsWithPattern","map","pattern","createRegExp","minimumCharacters","watcher","TextWatcher","createTestCallback","markerDefinition","getLastValidMarkerInText","markerPosition","parent","isPositionInExistingMention","isMarkerInExistingMention","requestFeedText","matchedTextLength","markerRange","checkIfStillInCompletionMode","updateMarker","addMarker","usingOperation","affectsData","mentionCommand","clear","feedItem","_showOrUpdateUI","markerMarker","updatePosition","_getBalloonPanelPositionData","singleViewMode","selectFirst","hasView","removeMarker","label","renderer","renderResult","buttonView","ButtonView","withText","preferredPosition","domConverter","mapper","uiLanguageDirection","target","modelRange","getRange","root","rootName","viewRange","toViewRange","rangeRects","getDomRangeRects","viewRangeToDom","pop","limiter","viewDocument","editableElement","mapViewToDom","positions","getBalloonPanelPositions","targetRect","top","bottom","left","right","withArrow","balloonRect","height","width","prototype","hasOwnProperty","call","caret_se","caret_sw","caret_ne","caret_nw","lastValidMarker","currentMarkerLastIndex","lastIndexOf","substring","match","numberOfCharacters","openAfterCharacters","env","features","isRegExpUnicodePropertySupported","mentionCharacters","replace","RegExp","textMatcher","splitStringFrom","textToTest","test","regExp","textToMatch","feedItems","filteredItems","filter","itemId","String","toLowerCase","hasMention","has","Mention","toMentionAttribute"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { CKEditorError, toMap, uid, Rect, keyCodes, Collection, logWarning, env } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ListView, View, ListItemView, ContextualBalloon, clickOutsideHandler, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { TextWatcher } from '@ckeditor/ckeditor5-typing/dist/index.js';\nimport { debounce } from 'lodash-es';\n\nconst BRACKET_PAIRS = {\n '(': ')',\n '[': ']',\n '{': '}'\n};\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */ class MentionCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n // Since this command may pass range in execution parameters, it should be checked directly in execute block.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'mention');\n }\n /**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */ execute(options) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const mentionData = typeof options.mention == 'string' ? {\n id: options.mention\n } : options.mention;\n const mentionID = mentionData.id;\n const range = options.range || selection.getFirstRange();\n // Don't execute command if range is in non-editable place.\n if (!model.canEditAt(range)) {\n return;\n }\n const mentionText = options.text || mentionID;\n const mention = _addMentionAttributes({\n _text: mentionText,\n id: mentionID\n }, mentionData);\n if (options.marker.length != 1) {\n /**\n\t\t\t * The marker must be a single character.\n\t\t\t *\n\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t *\n\t\t\t * Incorrect markers: `'@@'`, `'[@'`.\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-marker\n\t\t\t */ throw new CKEditorError('mentioncommand-incorrect-marker', this);\n }\n if (mentionID.charAt(0) != options.marker) {\n /**\n\t\t\t * The feed item ID must start with the marker character.\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */ throw new CKEditorError('mentioncommand-incorrect-id', this);\n }\n model.change((writer)=>{\n const currentAttributes = toMap(selection.getAttributes());\n const attributesWithMention = new Map(currentAttributes.entries());\n attributesWithMention.set('mention', mention);\n // Replace a range with the text with a mention.\n const insertionRange = model.insertContent(writer.createText(mentionText, attributesWithMention), range);\n const nodeBefore = insertionRange.start.nodeBefore;\n const nodeAfter = insertionRange.end.nodeAfter;\n const isFollowedByWhiteSpace = nodeAfter && nodeAfter.is('$text') && nodeAfter.data.startsWith(' ');\n let isInsertedInBrackets = false;\n if (nodeBefore && nodeAfter && nodeBefore.is('$text') && nodeAfter.is('$text')) {\n const precedingCharacter = nodeBefore.data.slice(-1);\n const isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n const isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(BRACKET_PAIRS[precedingCharacter]);\n isInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n }\n // Don't add a white space if either of the following is true:\n // * there's already one after the mention;\n // * the mention was inserted in the empty matching brackets.\n // https://github.com/ckeditor/ckeditor5/issues/4651\n if (!isInsertedInBrackets && !isFollowedByWhiteSpace) {\n model.insertContent(writer.createText(' ', currentAttributes), range.start.getShiftedBy(mentionText.length));\n }\n });\n }\n}\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */ class MentionEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n // Allow the mention attribute on all text nodes.\n model.schema.extend('$text', {\n allowAttributes: 'mention'\n });\n // Upcast conversion.\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'span',\n key: 'data-mention',\n classes: 'mention'\n },\n model: {\n key: 'mention',\n value: (viewElement)=>_toMentionAttribute(viewElement)\n }\n });\n // Downcast conversion.\n editor.conversion.for('downcast').attributeToElement({\n model: 'mention',\n view: createViewMentionElement\n });\n editor.conversion.for('downcast').add(preventPartialMentionDowncast);\n doc.registerPostFixer((writer)=>removePartialMentionPostFixer(writer, doc, model.schema));\n doc.registerPostFixer((writer)=>extendAttributeOnMentionPostFixer(writer, doc));\n doc.registerPostFixer((writer)=>selectionMentionAttributePostFixer(writer, doc));\n editor.commands.add('mention', new MentionCommand(editor));\n }\n}\n/**\n * @internal\n */ function _addMentionAttributes(baseMentionData, data) {\n return Object.assign({\n uid: uid()\n }, baseMentionData, data || {});\n}\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */ function _toMentionAttribute(viewElementOrMention, data) {\n const dataMention = viewElementOrMention.getAttribute('data-mention');\n const textNode = viewElementOrMention.getChild(0);\n // Do not convert empty mentions.\n if (!textNode) {\n return;\n }\n const baseMentionData = {\n id: dataMention,\n _text: textNode.data\n };\n return _addMentionAttributes(baseMentionData, data);\n}\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */ function preventPartialMentionDowncast(dispatcher) {\n dispatcher.on('attribute:mention', (evt, data, conversionApi)=>{\n const mention = data.attributeNewValue;\n if (!data.item.is('$textProxy') || !mention) {\n return;\n }\n const start = data.range.start;\n const textNode = start.textNode || start.nodeAfter;\n if (textNode.data != mention._text) {\n // Consume item to prevent partial mention conversion.\n conversionApi.consumable.consume(data.item, evt.name);\n }\n }, {\n priority: 'highest'\n });\n}\n/**\n * Creates a mention element from the mention data.\n */ function createViewMentionElement(mention, { writer }) {\n if (!mention) {\n return;\n }\n const attributes = {\n class: 'mention',\n 'data-mention': mention.id\n };\n const options = {\n id: mention.uid,\n priority: 20\n };\n return writer.createAttributeElement('span', attributes, options);\n}\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */ function selectionMentionAttributePostFixer(writer, doc) {\n const selection = doc.selection;\n const focus = selection.focus;\n if (selection.isCollapsed && selection.hasAttribute('mention') && shouldNotTypeWithMentionAt(focus)) {\n writer.removeSelectionAttribute('mention');\n return true;\n }\n return false;\n}\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */ function shouldNotTypeWithMentionAt(position) {\n const isAtStart = position.isAtStart;\n const isAfterAMention = position.nodeBefore && position.nodeBefore.is('$text');\n return isAfterAMention || isAtStart;\n}\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */ function removePartialMentionPostFixer(writer, doc, schema) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type == 'attribute') {\n continue;\n }\n // Checks the text node on the current position.\n const position = change.position;\n if (change.name == '$text') {\n const nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n // Checks the text node where the change occurred.\n wasChanged = checkAndFix(position.textNode, writer) || wasChanged;\n // Occurs on paste inside a text node with mention.\n wasChanged = checkAndFix(nodeAfterInsertedTextNode, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeAfter, writer) || wasChanged;\n }\n // Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n if (change.name != '$text' && change.type == 'insert') {\n const insertedNode = position.nodeAfter;\n for (const item of writer.createRangeIn(insertedNode).getItems()){\n wasChanged = checkAndFix(item, writer) || wasChanged;\n }\n }\n // Inserted inline elements might break mention.\n if (change.type == 'insert' && schema.isInline(change.name)) {\n const nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(nodeAfterInserted, writer) || wasChanged;\n }\n }\n return wasChanged;\n}\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */ function extendAttributeOnMentionPostFixer(writer, doc) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type === 'attribute' && change.attributeKey != 'mention') {\n // Checks the node on the left side of the range...\n const nodeBefore = change.range.start.nodeBefore;\n // ... and on the right side of the range.\n const nodeAfter = change.range.end.nodeAfter;\n for (const node of [\n nodeBefore,\n nodeAfter\n ]){\n if (isBrokenMentionNode(node) && node.getAttribute(change.attributeKey) != change.attributeNewValue) {\n writer.setAttribute(change.attributeKey, change.attributeNewValue, node);\n wasChanged = true;\n }\n }\n }\n }\n return wasChanged;\n}\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */ function isBrokenMentionNode(node) {\n if (!node || !(node.is('$text') || node.is('$textProxy')) || !node.hasAttribute('mention')) {\n return false;\n }\n const text = node.data;\n const mention = node.getAttribute('mention');\n const expectedText = mention._text;\n return text != expectedText;\n}\n/**\n * Fixes a mention on a text node if it needs a fix.\n */ function checkAndFix(textNode, writer) {\n if (isBrokenMentionNode(textNode)) {\n writer.removeAttribute('mention', textNode);\n return true;\n }\n return false;\n}\n\n/**\n * The mention ui view.\n */ class MentionsView extends ListView {\n selected;\n position;\n /**\n\t * @inheritDoc\n\t */ constructor(locale){\n super(locale);\n this.extendTemplate({\n attributes: {\n class: [\n 'ck-mentions'\n ],\n tabindex: '-1'\n }\n });\n }\n /**\n\t * {@link #select Selects} the first item.\n\t */ selectFirst() {\n this.select(0);\n }\n /**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */ selectNext() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index + 1);\n }\n /**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */ selectPrevious() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index - 1);\n }\n /**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */ select(index) {\n let indexToGet = 0;\n if (index > 0 && index < this.items.length) {\n indexToGet = index;\n } else if (index < 0) {\n indexToGet = this.items.length - 1;\n }\n const item = this.items.get(indexToGet);\n // Return early if item is already selected.\n if (this.selected === item) {\n return;\n }\n // Remove highlight of previously selected item.\n if (this.selected) {\n this.selected.removeHighlight();\n }\n item.highlight();\n this.selected = item;\n // Scroll the mentions view to the selected element.\n if (!this._isItemVisibleInScrolledArea(item)) {\n this.element.scrollTop = item.element.offsetTop;\n }\n }\n /**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */ executeSelected() {\n this.selected.fire('execute');\n }\n /**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */ _isItemVisibleInScrolledArea(item) {\n return new Rect(this.element).contains(new Rect(item.element));\n }\n}\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */ class DomWrapperView extends View {\n /**\n\t * The DOM element for which wrapper was created.\n\t */ domElement;\n /**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~DomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */ constructor(locale, domElement){\n super(locale);\n // Disable template rendering on this view.\n this.template = undefined;\n this.domElement = domElement;\n // Render dom wrapper as a button.\n this.domElement.classList.add('ck-button');\n this.set('isOn', false);\n // Handle isOn state as in buttons.\n this.on('change:isOn', (evt, name, isOn)=>{\n if (isOn) {\n this.domElement.classList.add('ck-on');\n this.domElement.classList.remove('ck-off');\n } else {\n this.domElement.classList.add('ck-off');\n this.domElement.classList.remove('ck-on');\n }\n });\n // Pass click event as execute event.\n this.listenTo(this.domElement, 'click', ()=>{\n this.fire('execute');\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.element = this.domElement;\n }\n /**\n\t * Focuses the DOM element.\n\t */ focus() {\n this.domElement.focus();\n }\n}\n\nclass MentionListItemView extends ListItemView {\n item;\n marker;\n highlight() {\n const child = this.children.first;\n child.isOn = true;\n }\n removeHighlight() {\n const child = this.children.first;\n child.isOn = false;\n }\n}\n\nconst VERTICAL_SPACING = 3;\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n keyCodes.arrowup,\n keyCodes.arrowdown,\n keyCodes.esc\n];\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n keyCodes.enter,\n keyCodes.tab\n];\n/**\n * The mention UI feature.\n */ class MentionUI extends Plugin {\n /**\n\t * The mention view.\n\t */ _mentionsView;\n /**\n\t * Stores mention feeds configurations.\n\t */ _mentionsConfigurations;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n _items = new Collection();\n _lastRequested;\n /**\n\t * Debounced feed requester. It uses `lodash#debounce` method to delay function call.\n\t */ _requestFeedDebounced;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n ContextualBalloon\n ];\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._mentionsView = this._createMentionView();\n this._mentionsConfigurations = new Map();\n this._requestFeedDebounced = debounce(this._requestFeed, 100);\n editor.config.define('mention', {\n feeds: []\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const commitKeys = editor.config.get('mention.commitKeys') || defaultCommitKeyCodes;\n const handledKeyCodes = defaultHandledKeyCodes.concat(commitKeys);\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Key listener that handles navigation in mention view.\n editor.editing.view.document.on('keydown', (evt, data)=>{\n if (isHandledKey(data.keyCode) && this._isUIVisible) {\n data.preventDefault();\n evt.stop(); // Required for Enter key overriding.\n if (data.keyCode == keyCodes.arrowdown) {\n this._mentionsView.selectNext();\n }\n if (data.keyCode == keyCodes.arrowup) {\n this._mentionsView.selectPrevious();\n }\n if (commitKeys.includes(data.keyCode)) {\n this._mentionsView.executeSelected();\n }\n if (data.keyCode == keyCodes.esc) {\n this._hideUIAndRemoveMarker();\n }\n }\n }, {\n priority: 'highest'\n }); // Required to override the Enter key.\n // Close the dropdown upon clicking outside of the plugin UI.\n clickOutsideHandler({\n emitter: this._mentionsView,\n activator: ()=>this._isUIVisible,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>this._hideUIAndRemoveMarker()\n });\n const feeds = editor.config.get('mention.feeds');\n for (const mentionDescription of feeds){\n const { feed, marker, dropdownLimit } = mentionDescription;\n if (!isValidMentionMarker(marker)) {\n /**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param marker Configured marker\n\t\t\t\t */ throw new CKEditorError('mentionconfig-incorrect-marker', null, {\n marker\n });\n }\n const feedCallback = typeof feed == 'function' ? feed.bind(this.editor) : createFeedCallback(feed);\n const itemRenderer = mentionDescription.itemRenderer;\n const definition = {\n marker,\n feedCallback,\n itemRenderer,\n dropdownLimit\n };\n this._mentionsConfigurations.set(marker, definition);\n }\n this._setupTextWatcher(feeds);\n this.listenTo(editor, 'change:isReadOnly', ()=>{\n this._hideUIAndRemoveMarker();\n });\n this.on('requestFeed:response', (evt, data)=>this._handleFeedResponse(data));\n this.on('requestFeed:error', ()=>this._hideUIAndRemoveMarker());\n /**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */ function isHandledKey(keyCode) {\n return handledKeyCodes.includes(keyCode);\n }\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n this._mentionsView.destroy();\n }\n /**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */ get _isUIVisible() {\n return this._balloon.visibleView === this._mentionsView;\n }\n /**\n\t * Creates the {@link #_mentionsView}.\n\t */ _createMentionView() {\n const locale = this.editor.locale;\n const mentionsView = new MentionsView(locale);\n mentionsView.items.bindTo(this._items).using((data)=>{\n const { item, marker } = data;\n const { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get(marker);\n // Set to 10 by default for backwards compatibility. See: #10479\n const dropdownLimit = markerDropdownLimit || this.editor.config.get('mention.dropdownLimit') || 10;\n if (mentionsView.items.length >= dropdownLimit) {\n return null;\n }\n const listItemView = new MentionListItemView(locale);\n const view = this._renderItem(item, marker);\n view.delegate('execute').to(listItemView);\n listItemView.children.add(view);\n listItemView.item = item;\n listItemView.marker = marker;\n listItemView.on('execute', ()=>{\n mentionsView.fire('execute', {\n item,\n marker\n });\n });\n return listItemView;\n });\n mentionsView.on('execute', (evt, data)=>{\n const editor = this.editor;\n const model = editor.model;\n const item = data.item;\n const marker = data.marker;\n const mentionMarker = editor.model.markers.get('mention');\n // Create a range on matched text.\n const end = model.createPositionAt(model.document.selection.focus);\n const start = model.createPositionAt(mentionMarker.getStart());\n const range = model.createRange(start, end);\n this._hideUIAndRemoveMarker();\n editor.execute('mention', {\n mention: item,\n text: item.text,\n marker,\n range\n });\n editor.editing.view.focus();\n });\n return mentionsView;\n }\n /**\n\t * Returns item renderer for the marker.\n\t */ _getItemRenderer(marker) {\n const { itemRenderer } = this._mentionsConfigurations.get(marker);\n return itemRenderer;\n }\n /**\n\t * Requests a feed from a configured callbacks.\n\t */ _requestFeed(marker, feedText) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n // Store the last requested feed - it is used to discard any out-of order requests.\n this._lastRequested = feedText;\n const { feedCallback } = this._mentionsConfigurations.get(marker);\n const feedResponse = feedCallback(feedText);\n const isAsynchronous = feedResponse instanceof Promise;\n // For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n if (!isAsynchronous) {\n this.fire('requestFeed:response', {\n feed: feedResponse,\n marker,\n feedText\n });\n return;\n }\n // Handle the asynchronous responses.\n feedResponse.then((response)=>{\n // Check the feed text of this response with the last requested one so either:\n if (this._lastRequested == feedText) {\n // It is the same and fire the response event.\n this.fire('requestFeed:response', {\n feed: response,\n marker,\n feedText\n });\n } else {\n // It is different - most probably out-of-order one, so fire the discarded event.\n this.fire('requestFeed:discarded', {\n feed: response,\n marker,\n feedText\n });\n }\n }).catch((error)=>{\n this.fire('requestFeed:error', {\n error\n });\n /**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */ logWarning('mention-feed-callback-error', {\n marker\n });\n });\n }\n /**\n\t * Registers a text watcher for the marker.\n\t */ _setupTextWatcher(feeds) {\n const editor = this.editor;\n const feedsWithPattern = feeds.map((feed)=>({\n ...feed,\n pattern: createRegExp(feed.marker, feed.minimumCharacters || 0)\n }));\n const watcher = new TextWatcher(editor.model, createTestCallback(feedsWithPattern));\n watcher.on('matched', (evt, data)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, data.text);\n const selection = editor.model.document.selection;\n const focus = selection.focus;\n const markerPosition = editor.model.createPositionAt(focus.parent, markerDefinition.position);\n if (isPositionInExistingMention(focus) || isMarkerInExistingMention(markerPosition)) {\n this._hideUIAndRemoveMarker();\n return;\n }\n const feedText = requestFeedText(markerDefinition, data.text);\n const matchedTextLength = markerDefinition.marker.length + feedText.length;\n // Create a marker range.\n const start = focus.getShiftedBy(-matchedTextLength);\n const end = focus.getShiftedBy(-feedText.length);\n const markerRange = editor.model.createRange(start, end);\n // @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n // @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n // @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n if (checkIfStillInCompletionMode(editor)) {\n const mentionMarker = editor.model.markers.get('mention');\n // Update the marker - user might've moved the selection to other mention trigger.\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n writer.updateMarker(mentionMarker, {\n range: markerRange\n });\n });\n } else {\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n writer.addMarker('mention', {\n range: markerRange,\n usingOperation: false,\n affectsData: false\n });\n });\n }\n this._requestFeedDebounced(markerDefinition.marker, feedText);\n // @if CK_DEBUG_MENTION // console.groupEnd();\n });\n watcher.on('unmatched', ()=>{\n this._hideUIAndRemoveMarker();\n });\n const mentionCommand = editor.commands.get('mention');\n watcher.bind('isEnabled').to(mentionCommand);\n return watcher;\n }\n /**\n\t * Handles the feed response event data.\n\t */ _handleFeedResponse(data) {\n const { feed, marker } = data;\n // eslint-disable-next-line max-len\n // @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n // If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n if (!checkIfStillInCompletionMode(this.editor)) {\n return;\n }\n // Reset the view.\n this._items.clear();\n for (const feedItem of feed){\n const item = typeof feedItem != 'object' ? {\n id: feedItem,\n text: feedItem\n } : feedItem;\n this._items.add({\n item,\n marker\n });\n }\n const mentionMarker = this.editor.model.markers.get('mention');\n if (this._items.length) {\n this._showOrUpdateUI(mentionMarker);\n } else {\n // Do not show empty mention UI.\n this._hideUIAndRemoveMarker();\n }\n }\n /**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */ _showOrUpdateUI(markerMarker) {\n if (this._isUIVisible) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n // Update balloon position as the mention list view may change its size.\n this._balloon.updatePosition(this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position));\n } else {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n this._balloon.add({\n view: this._mentionsView,\n position: this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position),\n singleViewMode: true\n });\n }\n this._mentionsView.position = this._balloon.view.position;\n this._mentionsView.selectFirst();\n }\n /**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */ _hideUIAndRemoveMarker() {\n // Remove the mention view from balloon before removing marker - it is used by balloon position target().\n if (this._balloon.hasView(this._mentionsView)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n this._balloon.remove(this._mentionsView);\n }\n if (checkIfStillInCompletionMode(this.editor)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n this.editor.model.change((writer)=>writer.removeMarker('mention'));\n }\n // Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n // on the next call.\n this._mentionsView.position = undefined;\n }\n /**\n\t * Renders a single item in the autocomplete list.\n\t */ _renderItem(item, marker) {\n const editor = this.editor;\n let view;\n let label = item.id;\n const renderer = this._getItemRenderer(marker);\n if (renderer) {\n const renderResult = renderer(item);\n if (typeof renderResult != 'string') {\n view = new DomWrapperView(editor.locale, renderResult);\n } else {\n label = renderResult;\n }\n }\n if (!view) {\n const buttonView = new ButtonView(editor.locale);\n buttonView.label = label;\n buttonView.withText = true;\n view = buttonView;\n }\n return view;\n }\n /**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */ _getBalloonPanelPositionData(mentionMarker, preferredPosition) {\n const editor = this.editor;\n const editing = editor.editing;\n const domConverter = editing.view.domConverter;\n const mapper = editing.mapper;\n const uiLanguageDirection = editor.locale.uiLanguageDirection;\n return {\n target: ()=>{\n let modelRange = mentionMarker.getRange();\n // Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n // The logic is used by ContextualBalloon to display another panel in the same place.\n if (modelRange.start.root.rootName == '$graveyard') {\n modelRange = editor.model.document.selection.getFirstRange();\n }\n const viewRange = mapper.toViewRange(modelRange);\n const rangeRects = Rect.getDomRangeRects(domConverter.viewRangeToDom(viewRange));\n return rangeRects.pop();\n },\n limiter: ()=>{\n const view = this.editor.editing.view;\n const viewDocument = view.document;\n const editableElement = viewDocument.selection.editableElement;\n if (editableElement) {\n return view.domConverter.mapViewToDom(editableElement.root);\n }\n return null;\n },\n positions: getBalloonPanelPositions(preferredPosition, uiLanguageDirection)\n };\n }\n}\n/**\n * Returns the balloon positions data callbacks.\n */ function getBalloonPanelPositions(preferredPosition, uiLanguageDirection) {\n const positions = {\n // Positions the panel to the southeast of the caret rectangle.\n 'caret_se': (targetRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_se',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northeast of the caret rectangle.\n 'caret_ne': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_ne',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the southwest of the caret rectangle.\n 'caret_sw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_sw',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northwest of the caret rect.\n 'caret_nw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_nw',\n config: {\n withArrow: false\n }\n };\n }\n };\n // Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n if (Object.prototype.hasOwnProperty.call(positions, preferredPosition)) {\n return [\n positions[preferredPosition]\n ];\n }\n // By default, return all position callbacks ordered depending on the UI language direction.\n return uiLanguageDirection !== 'rtl' ? [\n positions.caret_se,\n positions.caret_sw,\n positions.caret_ne,\n positions.caret_nw\n ] : [\n positions.caret_sw,\n positions.caret_se,\n positions.caret_nw,\n positions.caret_ne\n ];\n}\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */ function getLastValidMarkerInText(feedsWithPattern, text) {\n let lastValidMarker;\n for (const feed of feedsWithPattern){\n const currentMarkerLastIndex = text.lastIndexOf(feed.marker);\n if (currentMarkerLastIndex > 0 && !text.substring(currentMarkerLastIndex - 1).match(feed.pattern)) {\n continue;\n }\n if (!lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position) {\n lastValidMarker = {\n marker: feed.marker,\n position: currentMarkerLastIndex,\n minimumCharacters: feed.minimumCharacters,\n pattern: feed.pattern\n };\n }\n }\n return lastValidMarker;\n}\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n */ function createRegExp(marker, minimumCharacters) {\n const numberOfCharacters = minimumCharacters == 0 ? '*' : `{${minimumCharacters},}`;\n const openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n const mentionCharacters = '.';\n // I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n // When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n // to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n // allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n marker = marker.replace(/[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&');\n // The pattern consists of 3 groups:\n //\n // - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n // - 1: The marker character,\n // - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n //\n // The pattern matches up to the caret (end of string switch - $).\n // (0: opening sequence )(1: marker )(2: typed mention )$\n const pattern = `(?:^|[ ${openAfterCharacters}])([${marker}])(${mentionCharacters}${numberOfCharacters})$`;\n return new RegExp(pattern, 'u');\n}\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */ function createTestCallback(feedsWithPattern) {\n const textMatcher = (text)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, text);\n if (!markerDefinition) {\n return false;\n }\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const textToTest = text.substring(splitStringFrom);\n return markerDefinition.pattern.test(textToTest);\n };\n return textMatcher;\n}\n/**\n * Creates a text matcher from the marker.\n */ function requestFeedText(markerDefinition, text) {\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const regExp = createRegExp(markerDefinition.marker, 0);\n const textToMatch = text.substring(splitStringFrom);\n const match = textToMatch.match(regExp);\n return match[2];\n}\n/**\n * The default feed callback.\n */ function createFeedCallback(feedItems) {\n return (feedText)=>{\n const filteredItems = feedItems// Make the default mention feed case-insensitive.\n .filter((item)=>{\n // Item might be defined as object.\n const itemId = typeof item == 'string' ? item : String(item.id);\n // The default feed is case insensitive.\n return itemId.toLowerCase().includes(feedText.toLowerCase());\n });\n return filteredItems;\n };\n}\n/**\n * Checks if position in inside or right after a text with a mention.\n */ function isPositionInExistingMention(position) {\n // The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n // and you cannot use selection.hasAttribute( 'mention' ) just yet.\n // See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n const hasMention = position.textNode && position.textNode.hasAttribute('mention');\n const nodeBefore = position.nodeBefore;\n return hasMention || nodeBefore && nodeBefore.is('$text') && nodeBefore.hasAttribute('mention');\n}\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */ function isMarkerInExistingMention(markerPosition) {\n const nodeAfter = markerPosition.nodeAfter;\n return nodeAfter && nodeAfter.is('$text') && nodeAfter.hasAttribute('mention');\n}\n/**\n * Checks if string is a valid mention marker.\n */ function isValidMentionMarker(marker) {\n return marker && marker.length == 1;\n}\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */ function checkIfStillInCompletionMode(editor) {\n return editor.model.markers.has('mention');\n}\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */ class Mention extends Plugin {\n toMentionAttribute(viewElement, data) {\n return _toMentionAttribute(viewElement, data);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Mention';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n MentionEditing,\n MentionUI\n ];\n }\n}\n\nexport { DomWrapperView, Mention, MentionEditing, MentionListItemView, MentionUI, MentionsView };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mentioncommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { Range } from 'ckeditor5/src/engine.js';\nimport { CKEditorError, toMap } from 'ckeditor5/src/utils.js';\n\nimport { _addMentionAttributes } from './mentionediting.js';\n\nconst BRACKET_PAIRS = {\n\t'(': ')',\n\t'[': ']',\n\t'{': '}'\n} as const;\n\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */\nexport default class MentionCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command may pass range in execution parameters, it should be checked directly in execute block.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'mention' );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */\n\tpublic override execute( options: {\n\t\tmention: string | { id: string; [ key: string ]: unknown };\n\t\tmarker: string;\n\t\ttext?: string;\n\t\trange?: Range;\n\t} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\t\tconst selection = document.selection;\n\n\t\tconst mentionData = typeof options.mention == 'string' ? { id: options.mention } : options.mention;\n\t\tconst mentionID = mentionData.id;\n\n\t\tconst range = options.range || selection.getFirstRange();\n\n\t\t// Don't execute command if range is in non-editable place.\n\t\tif ( !model.canEditAt( range ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst mentionText = options.text || mentionID;\n\n\t\tconst mention = _addMentionAttributes( { _text: mentionText, id: mentionID }, mentionData );\n\n\t\tif ( options.marker.length != 1 ) {\n\t\t\t/**\n\t\t\t * The marker must be a single character.\n\t\t\t *\n\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t *\n\t\t\t * Incorrect markers: `'@@'`, `'[@'`.\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-marker\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'mentioncommand-incorrect-marker',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tif ( mentionID.charAt( 0 ) != options.marker ) {\n\t\t\t/**\n\t\t\t * The feed item ID must start with the marker character.\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'mentioncommand-incorrect-id',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tconst currentAttributes = toMap( selection.getAttributes() );\n\t\t\tconst attributesWithMention = new Map( currentAttributes.entries() );\n\n\t\t\tattributesWithMention.set( 'mention', mention );\n\n\t\t\t// Replace a range with the text with a mention.\n\t\t\tconst insertionRange = model.insertContent( writer.createText( mentionText, attributesWithMention ), range );\n\t\t\tconst nodeBefore = insertionRange.start.nodeBefore;\n\t\t\tconst nodeAfter = insertionRange.end.nodeAfter;\n\n\t\t\tconst isFollowedByWhiteSpace = nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.data.startsWith( ' ' );\n\t\t\tlet isInsertedInBrackets = false;\n\n\t\t\tif ( nodeBefore && nodeAfter && nodeBefore.is( '$text' ) && nodeAfter.is( '$text' ) ) {\n\t\t\t\tconst precedingCharacter = nodeBefore.data.slice( -1 );\n\t\t\t\tconst isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n\t\t\t\tconst isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(\n\t\t\t\t\tBRACKET_PAIRS[ precedingCharacter as keyof typeof BRACKET_PAIRS ]\n\t\t\t\t);\n\n\t\t\t\tisInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n\t\t\t}\n\n\t\t\t// Don't add a white space if either of the following is true:\n\t\t\t// * there's already one after the mention;\n\t\t\t// * the mention was inserted in the empty matching brackets.\n\t\t\t// https://github.com/ckeditor/ckeditor5/issues/4651\n\t\t\tif ( !isInsertedInBrackets && !isFollowedByWhiteSpace ) {\n\t\t\t\tmodel.insertContent( writer.createText( ' ', currentAttributes ), range!.start.getShiftedBy( mentionText.length ) );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mentionediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type {\n\tElement,\n\tText,\n\tWriter,\n\tDocument,\n\tAttributeElement,\n\tDowncastConversionApi,\n\tDowncastDispatcher,\n\tPosition,\n\tSchema,\n\tDowncastAttributeEvent,\n\tItem\n} from 'ckeditor5/src/engine.js';\nimport { uid } from 'ckeditor5/src/utils.js';\n\nimport MentionCommand from './mentioncommand.js';\nimport type { MentionAttribute } from './mention.js';\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */\nexport default class MentionEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\t// Allow the mention attribute on all text nodes.\n\t\tmodel.schema.extend( '$text', { allowAttributes: 'mention' } );\n\n\t\t// Upcast conversion.\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tkey: 'data-mention',\n\t\t\t\tclasses: 'mention'\n\t\t\t},\n\t\t\tmodel: {\n\t\t\t\tkey: 'mention',\n\t\t\t\tvalue: ( viewElement: Element ) => _toMentionAttribute( viewElement )\n\t\t\t}\n\t\t} );\n\n\t\t// Downcast conversion.\n\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n\t\t\tmodel: 'mention',\n\t\t\tview: createViewMentionElement\n\t\t} );\n\t\teditor.conversion.for( 'downcast' ).add( preventPartialMentionDowncast );\n\n\t\tdoc.registerPostFixer( writer => removePartialMentionPostFixer( writer, doc, model.schema ) );\n\t\tdoc.registerPostFixer( writer => extendAttributeOnMentionPostFixer( writer, doc ) );\n\t\tdoc.registerPostFixer( writer => selectionMentionAttributePostFixer( writer, doc ) );\n\n\t\teditor.commands.add( 'mention', new MentionCommand( editor ) );\n\t}\n}\n\n/**\n * @internal\n */\nexport function _addMentionAttributes(\n\tbaseMentionData: { id: string; _text: string },\n\tdata?: Record<string, unknown>\n): MentionAttribute {\n\treturn Object.assign( { uid: uid() }, baseMentionData, data || {} );\n}\n\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */\nexport function _toMentionAttribute(\n\tviewElementOrMention: Element,\n\tdata?: Record<string, unknown>\n): MentionAttribute | undefined {\n\tconst dataMention = viewElementOrMention.getAttribute( 'data-mention' ) as string;\n\n\tconst textNode = viewElementOrMention.getChild( 0 ) as Text;\n\n\t// Do not convert empty mentions.\n\tif ( !textNode ) {\n\t\treturn;\n\t}\n\n\tconst baseMentionData = {\n\t\tid: dataMention,\n\t\t_text: textNode.data\n\t};\n\n\treturn _addMentionAttributes( baseMentionData, data );\n}\n\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */\nfunction preventPartialMentionDowncast( dispatcher: DowncastDispatcher ) {\n\tdispatcher.on<DowncastAttributeEvent>( 'attribute:mention', ( evt, data, conversionApi ) => {\n\t\tconst mention = data.attributeNewValue as MentionAttribute;\n\n\t\tif ( !data.item.is( '$textProxy' ) || !mention ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst start = data.range.start;\n\t\tconst textNode = start.textNode || start.nodeAfter as Text;\n\n\t\tif ( textNode!.data != mention._text ) {\n\t\t\t// Consume item to prevent partial mention conversion.\n\t\t\tconversionApi.consumable.consume( data.item, evt.name );\n\t\t}\n\t}, { priority: 'highest' } );\n}\n\n/**\n * Creates a mention element from the mention data.\n */\nfunction createViewMentionElement( mention: MentionAttribute, { writer }: DowncastConversionApi ): AttributeElement | undefined {\n\tif ( !mention ) {\n\t\treturn;\n\t}\n\n\tconst attributes = {\n\t\tclass: 'mention',\n\t\t'data-mention': mention.id\n\t};\n\n\tconst options = {\n\t\tid: mention.uid,\n\t\tpriority: 20\n\t};\n\n\treturn writer.createAttributeElement( 'span', attributes, options );\n}\n\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */\nfunction selectionMentionAttributePostFixer( writer: Writer, doc: Document ): boolean {\n\tconst selection = doc.selection;\n\tconst focus = selection.focus;\n\n\tif ( selection.isCollapsed && selection.hasAttribute( 'mention' ) && shouldNotTypeWithMentionAt( focus! ) ) {\n\t\twriter.removeSelectionAttribute( 'mention' );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */\nfunction shouldNotTypeWithMentionAt( position: Position ): boolean {\n\tconst isAtStart = position.isAtStart;\n\tconst isAfterAMention = position.nodeBefore && position.nodeBefore.is( '$text' );\n\n\treturn isAfterAMention || isAtStart;\n}\n\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */\nfunction removePartialMentionPostFixer( writer: Writer, doc: Document, schema: Schema ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type == 'attribute' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Checks the text node on the current position.\n\t\tconst position = change.position;\n\n\t\tif ( change.name == '$text' ) {\n\t\t\tconst nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n\n\t\t\t// Checks the text node where the change occurred.\n\t\t\twasChanged = checkAndFix( position.textNode, writer ) || wasChanged;\n\n\t\t\t// Occurs on paste inside a text node with mention.\n\t\t\twasChanged = checkAndFix( nodeAfterInsertedTextNode, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeAfter, writer ) || wasChanged;\n\t\t}\n\n\t\t// Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n\t\tif ( change.name != '$text' && change.type == 'insert' ) {\n\t\t\tconst insertedNode = position.nodeAfter as Element;\n\n\t\t\tfor ( const item of writer.createRangeIn( insertedNode! ).getItems() ) {\n\t\t\t\twasChanged = checkAndFix( item, writer ) || wasChanged;\n\t\t\t}\n\t\t}\n\n\t\t// Inserted inline elements might break mention.\n\t\tif ( change.type == 'insert' && schema.isInline( change.name ) ) {\n\t\t\tconst nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( nodeAfterInserted, writer ) || wasChanged;\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */\nfunction extendAttributeOnMentionPostFixer( writer: Writer, doc: Document ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type === 'attribute' && change.attributeKey != 'mention' ) {\n\t\t\t// Checks the node on the left side of the range...\n\t\t\tconst nodeBefore = change.range.start.nodeBefore;\n\t\t\t// ... and on the right side of the range.\n\t\t\tconst nodeAfter = change.range.end.nodeAfter;\n\n\t\t\tfor ( const node of [ nodeBefore, nodeAfter ] ) {\n\t\t\t\tif ( isBrokenMentionNode( node ) && node!.getAttribute( change.attributeKey ) != change.attributeNewValue ) {\n\t\t\t\t\twriter.setAttribute( change.attributeKey, change.attributeNewValue, node! );\n\n\t\t\t\t\twasChanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */\nfunction isBrokenMentionNode( node: Item | null ): boolean {\n\tif ( !node || !( node.is( '$text' ) || node.is( '$textProxy' ) ) || !node.hasAttribute( 'mention' ) ) {\n\t\treturn false;\n\t}\n\n\tconst text = node.data;\n\tconst mention = node.getAttribute( 'mention' ) as MentionAttribute;\n\n\tconst expectedText = mention._text;\n\n\treturn text != expectedText;\n}\n\n/**\n * Fixes a mention on a text node if it needs a fix.\n */\nfunction checkAndFix( textNode: Item | null, writer: Writer ): boolean {\n\tif ( isBrokenMentionNode( textNode ) ) {\n\t\twriter.removeAttribute( 'mention', textNode! );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/ui/mentionsview\n */\n\nimport { ListView } from 'ckeditor5/src/ui.js';\nimport { Rect, type Locale } from 'ckeditor5/src/utils.js';\n\nimport type MentionListItemView from './mentionlistitemview.js';\n\nimport '../../theme/mentionui.css';\n\n/**\n * The mention ui view.\n */\nexport default class MentionsView extends ListView {\n\tpublic selected: MentionListItemView | undefined;\n\n\tpublic position: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-mentions'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * {@link #select Selects} the first item.\n\t */\n\tpublic selectFirst(): void {\n\t\tthis.select( 0 );\n\t}\n\n\t/**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */\n\tpublic selectNext(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index + 1 );\n\t}\n\n\t/**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */\n\tpublic selectPrevious(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index - 1 );\n\t}\n\n\t/**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */\n\tpublic select( index: number ): void {\n\t\tlet indexToGet = 0;\n\n\t\tif ( index > 0 && index < this.items.length ) {\n\t\t\tindexToGet = index;\n\t\t} else if ( index < 0 ) {\n\t\t\tindexToGet = this.items.length - 1;\n\t\t}\n\n\t\tconst item = this.items.get( indexToGet ) as MentionListItemView;\n\n\t\t// Return early if item is already selected.\n\t\tif ( this.selected === item ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove highlight of previously selected item.\n\t\tif ( this.selected ) {\n\t\t\tthis.selected.removeHighlight();\n\t\t}\n\n\t\titem.highlight();\n\t\tthis.selected = item;\n\n\t\t// Scroll the mentions view to the selected element.\n\t\tif ( !this._isItemVisibleInScrolledArea( item ) ) {\n\t\t\tthis.element!.scrollTop = item.element!.offsetTop;\n\t\t}\n\t}\n\n\t/**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */\n\tpublic executeSelected(): void {\n\t\tthis.selected!.fire( 'execute' );\n\t}\n\n\t/**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */\n\tprivate _isItemVisibleInScrolledArea( item: MentionListItemView ) {\n\t\treturn new Rect( this.element! ).contains( new Rect( item.element! ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/ui/domwrapperview\n */\n\nimport { View } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */\nexport default class DomWrapperView extends View {\n\t/**\n\t * The DOM element for which wrapper was created.\n\t */\n\tpublic domElement: HTMLElement;\n\n\t/**\n\t * Controls whether the dom wrapper view is \"on\". This is in line with {@link module:ui/button/button~Button#isOn} property.\n\t *\n\t * @observable\n\t * @default true\n\t */\n\tdeclare public isOn: boolean;\n\n\t/**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~DomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */\n\tconstructor( locale: Locale, domElement: HTMLElement ) {\n\t\tsuper( locale );\n\n\t\t// Disable template rendering on this view.\n\t\tthis.template = undefined;\n\n\t\tthis.domElement = domElement;\n\n\t\t// Render dom wrapper as a button.\n\t\tthis.domElement.classList.add( 'ck-button' );\n\n\t\tthis.set( 'isOn', false );\n\n\t\t// Handle isOn state as in buttons.\n\t\tthis.on( 'change:isOn', ( evt, name, isOn ) => {\n\t\t\tif ( isOn ) {\n\t\t\t\tthis.domElement.classList.add( 'ck-on' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-off' );\n\t\t\t} else {\n\t\t\t\tthis.domElement.classList.add( 'ck-off' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-on' );\n\t\t\t}\n\t\t} );\n\n\t\t// Pass click event as execute event.\n\t\tthis.listenTo( this.domElement, 'click', () => {\n\t\t\tthis.fire( 'execute' );\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.element = this.domElement;\n\t}\n\n\t/**\n\t * Focuses the DOM element.\n\t */\n\tpublic focus(): void {\n\t\tthis.domElement.focus();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/ui/mentionlistitemview\n */\n\nimport { ListItemView } from 'ckeditor5/src/ui.js';\n\nimport type { MentionFeedItem } from '../mentionconfig.js';\n\nimport type DomWrapperView from './domwrapperview.js';\n\nexport default class MentionListItemView extends ListItemView {\n\tpublic item!: MentionFeedItem;\n\n\tpublic marker!: string;\n\n\tpublic highlight(): void {\n\t\tconst child = this.children.first as DomWrapperView;\n\n\t\tchild.isOn = true;\n\t}\n\n\tpublic removeHighlight(): void {\n\t\tconst child = this.children.first as DomWrapperView;\n\n\t\tchild.isOn = false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mentionui\n */\n\nimport {\n\tPlugin,\n\ttype Editor\n} from 'ckeditor5/src/core.js';\n\nimport type {\n\tViewDocumentKeyDownEvent,\n\tMarker,\n\tPosition\n} from 'ckeditor5/src/engine.js';\n\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tclickOutsideHandler\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tCKEditorError,\n\tCollection,\n\tRect,\n\tenv,\n\tkeyCodes,\n\tlogWarning,\n\ttype PositionOptions\n} from 'ckeditor5/src/utils.js';\n\nimport { TextWatcher, type TextWatcherMatchedEvent } from 'ckeditor5/src/typing.js';\n\nimport { debounce } from 'lodash-es';\n\nimport MentionsView from './ui/mentionsview.js';\nimport DomWrapperView from './ui/domwrapperview.js';\nimport MentionListItemView from './ui/mentionlistitemview.js';\n\nimport type {\n\tFeedCallback,\n\tMentionFeed,\n\tMentionFeedItem,\n\tItemRenderer,\n\tMentionFeedObjectItem\n} from './mentionconfig.js';\n\nconst VERTICAL_SPACING = 3;\n\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n\tkeyCodes.arrowup,\n\tkeyCodes.arrowdown,\n\tkeyCodes.esc\n];\n\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n\tkeyCodes.enter,\n\tkeyCodes.tab\n];\n\n/**\n * The mention UI feature.\n */\nexport default class MentionUI extends Plugin {\n\t/**\n\t * The mention view.\n\t */\n\tprivate readonly _mentionsView: MentionsView;\n\n\t/**\n\t * Stores mention feeds configurations.\n\t */\n\tprivate _mentionsConfigurations: Map<string, Definition>;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon: ContextualBalloon | undefined;\n\n\tprivate _items = new Collection<{ item: MentionFeedObjectItem; marker: string }>();\n\n\tprivate _lastRequested?: string;\n\n\t/**\n\t * Debounced feed requester. It uses `lodash#debounce` method to delay function call.\n\t */\n\tprivate _requestFeedDebounced: ( marker: string, feedText: string ) => void;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ContextualBalloon ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._mentionsView = this._createMentionView();\n\t\tthis._mentionsConfigurations = new Map();\n\t\tthis._requestFeedDebounced = debounce( this._requestFeed, 100 );\n\n\t\teditor.config.define( 'mention', { feeds: [] } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tconst commitKeys = editor.config.get( 'mention.commitKeys' ) || defaultCommitKeyCodes;\n\t\tconst handledKeyCodes = defaultHandledKeyCodes.concat( commitKeys );\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Key listener that handles navigation in mention view.\n\t\teditor.editing.view.document.on<ViewDocumentKeyDownEvent>( 'keydown', ( evt, data ) => {\n\t\t\tif ( isHandledKey( data.keyCode ) && this._isUIVisible ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t\tevt.stop(); // Required for Enter key overriding.\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowdown ) {\n\t\t\t\t\tthis._mentionsView.selectNext();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowup ) {\n\t\t\t\t\tthis._mentionsView.selectPrevious();\n\t\t\t\t}\n\n\t\t\t\tif ( commitKeys.includes( data.keyCode ) ) {\n\t\t\t\t\tthis._mentionsView.executeSelected();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.esc ) {\n\t\t\t\t\tthis._hideUIAndRemoveMarker();\n\t\t\t\t}\n\t\t\t}\n\t\t}, { priority: 'highest' } ); // Required to override the Enter key.\n\n\t\t// Close the dropdown upon clicking outside of the plugin UI.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this._mentionsView,\n\t\t\tactivator: () => this._isUIVisible,\n\t\t\tcontextElements: () => [ this._balloon!.view.element! ],\n\t\t\tcallback: () => this._hideUIAndRemoveMarker()\n\t\t} );\n\n\t\tconst feeds = editor.config.get( 'mention.feeds' )!;\n\n\t\tfor ( const mentionDescription of feeds ) {\n\t\t\tconst { feed, marker, dropdownLimit } = mentionDescription;\n\n\t\t\tif ( !isValidMentionMarker( marker ) ) {\n\t\t\t\t/**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param marker Configured marker\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'mentionconfig-incorrect-marker', null, { marker } );\n\t\t\t}\n\n\t\t\tconst feedCallback = typeof feed == 'function' ? feed.bind( this.editor ) : createFeedCallback( feed );\n\t\t\tconst itemRenderer = mentionDescription.itemRenderer;\n\t\t\tconst definition = { marker, feedCallback, itemRenderer, dropdownLimit };\n\n\t\t\tthis._mentionsConfigurations.set( marker, definition );\n\t\t}\n\n\t\tthis._setupTextWatcher( feeds );\n\t\tthis.listenTo( editor, 'change:isReadOnly', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\t\tthis.on<RequestFeedResponseEvent>( 'requestFeed:response', ( evt, data ) => this._handleFeedResponse( data ) );\n\t\tthis.on<RequestFeedErrorEvent>( 'requestFeed:error', () => this._hideUIAndRemoveMarker() );\n\n\t\t/**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */\n\t\tfunction isHandledKey( keyCode: number ): boolean {\n\t\t\treturn handledKeyCodes.includes( keyCode );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tthis._mentionsView.destroy();\n\t}\n\n\t/**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _isUIVisible(): boolean {\n\t\treturn this._balloon!.visibleView === this._mentionsView;\n\t}\n\n\t/**\n\t * Creates the {@link #_mentionsView}.\n\t */\n\tprivate _createMentionView(): MentionsView {\n\t\tconst locale = this.editor.locale;\n\n\t\tconst mentionsView = new MentionsView( locale );\n\n\t\tmentionsView.items.bindTo( this._items ).using( data => {\n\t\t\tconst { item, marker } = data;\n\n\t\t\tconst { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get( marker )!;\n\n\t\t\t// Set to 10 by default for backwards compatibility. See: #10479\n\t\t\tconst dropdownLimit = markerDropdownLimit || this.editor.config.get( 'mention.dropdownLimit' ) || 10;\n\n\t\t\tif ( mentionsView.items.length >= dropdownLimit ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst listItemView = new MentionListItemView( locale );\n\n\t\t\tconst view = this._renderItem( item, marker );\n\t\t\tview.delegate( 'execute' ).to( listItemView );\n\n\t\t\tlistItemView.children.add( view );\n\t\t\tlistItemView.item = item;\n\t\t\tlistItemView.marker = marker;\n\n\t\t\tlistItemView.on( 'execute', () => {\n\t\t\t\tmentionsView.fire( 'execute', {\n\t\t\t\t\titem,\n\t\t\t\t\tmarker\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn listItemView;\n\t\t} );\n\n\t\tmentionsView.on( 'execute', ( evt, data ) => {\n\t\t\tconst editor = this.editor;\n\t\t\tconst model = editor.model;\n\n\t\t\tconst item = data.item;\n\t\t\tconst marker = data.marker;\n\n\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' );\n\n\t\t\t// Create a range on matched text.\n\t\t\tconst end = model.createPositionAt( model.document.selection.focus! );\n\t\t\tconst start = model.createPositionAt( mentionMarker!.getStart() );\n\t\t\tconst range = model.createRange( start, end );\n\n\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\teditor.execute( 'mention', {\n\t\t\t\tmention: item,\n\t\t\t\ttext: item.text,\n\t\t\t\tmarker,\n\t\t\t\trange\n\t\t\t} );\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn mentionsView;\n\t}\n\n\t/**\n\t * Returns item renderer for the marker.\n\t */\n\tprivate _getItemRenderer( marker: string ): ItemRenderer | undefined {\n\t\tconst { itemRenderer } = this._mentionsConfigurations.get( marker )!;\n\n\t\treturn itemRenderer;\n\t}\n\n\t/**\n\t * Requests a feed from a configured callbacks.\n\t */\n\tprivate _requestFeed( marker: string, feedText: string ): void {\n\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n\n\t\t// Store the last requested feed - it is used to discard any out-of order requests.\n\t\tthis._lastRequested = feedText;\n\n\t\tconst { feedCallback } = this._mentionsConfigurations.get( marker )!;\n\t\tconst feedResponse = feedCallback( feedText );\n\n\t\tconst isAsynchronous = feedResponse instanceof Promise;\n\n\t\t// For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n\t\tif ( !isAsynchronous ) {\n\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: feedResponse, marker, feedText } );\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Handle the asynchronous responses.\n\t\tfeedResponse\n\t\t\t.then( response => {\n\t\t\t\t// Check the feed text of this response with the last requested one so either:\n\t\t\t\tif ( this._lastRequested == feedText ) {\n\t\t\t\t\t// It is the same and fire the response event.\n\t\t\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: response, marker, feedText } );\n\t\t\t\t} else {\n\t\t\t\t\t// It is different - most probably out-of-order one, so fire the discarded event.\n\t\t\t\t\tthis.fire<RequestFeedDiscardedEvent>( 'requestFeed:discarded', { feed: response, marker, feedText } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( error => {\n\t\t\t\tthis.fire<RequestFeedErrorEvent>( 'requestFeed:error', { error } );\n\n\t\t\t\t/**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */\n\t\t\t\tlogWarning( 'mention-feed-callback-error', { marker } );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Registers a text watcher for the marker.\n\t */\n\tprivate _setupTextWatcher( feeds: Array<MentionFeed> ): TextWatcher {\n\t\tconst editor = this.editor;\n\n\t\tconst feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> = feeds.map( feed => ( {\n\t\t\t...feed,\n\t\t\tpattern: createRegExp( feed.marker, feed.minimumCharacters || 0 )\n\t\t} ) );\n\n\t\tconst watcher = new TextWatcher( editor.model, createTestCallback( feedsWithPattern ) );\n\n\t\twatcher.on<TextWatcherMatchedEvent>( 'matched', ( evt, data ) => {\n\t\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, data.text );\n\t\t\tconst selection = editor.model.document.selection;\n\t\t\tconst focus = selection.focus;\n\t\t\tconst markerPosition = editor.model.createPositionAt( focus!.parent, markerDefinition!.position );\n\n\t\t\tif ( isPositionInExistingMention( focus! ) || isMarkerInExistingMention( markerPosition ) ) {\n\t\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst feedText = requestFeedText( markerDefinition, data.text );\n\t\t\tconst matchedTextLength = markerDefinition!.marker.length + feedText.length;\n\n\t\t\t// Create a marker range.\n\t\t\tconst start = focus!.getShiftedBy( -matchedTextLength );\n\t\t\tconst end = focus!.getShiftedBy( -feedText.length );\n\n\t\t\tconst markerRange = editor.model.createRange( start, end );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n\n\t\t\tif ( checkIfStillInCompletionMode( editor ) ) {\n\t\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' )!;\n\n\t\t\t\t// Update the marker - user might've moved the selection to other mention trigger.\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.updateMarker( mentionMarker, { range: markerRange } );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.addMarker( 'mention', { range: markerRange, usingOperation: false, affectsData: false } );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis._requestFeedDebounced( markerDefinition!.marker, feedText );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.groupEnd();\n\t\t} );\n\n\t\twatcher.on( 'unmatched', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\n\t\tconst mentionCommand = editor.commands.get( 'mention' )!;\n\t\twatcher.bind( 'isEnabled' ).to( mentionCommand );\n\n\t\treturn watcher;\n\t}\n\n\t/**\n\t * Handles the feed response event data.\n\t */\n\tprivate _handleFeedResponse( data: RequestFeedResponseEvent['args'][0] ) {\n\t\tconst { feed, marker } = data;\n\n\t\t// eslint-disable-next-line max-len\n\t\t// @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n\n\t\t// If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n\t\tif ( !checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Reset the view.\n\t\tthis._items.clear();\n\n\t\tfor ( const feedItem of feed ) {\n\t\t\tconst item = typeof feedItem != 'object' ? { id: feedItem, text: feedItem } : feedItem;\n\n\t\t\tthis._items.add( { item, marker } );\n\t\t}\n\n\t\tconst mentionMarker = this.editor.model.markers.get( 'mention' );\n\n\t\tif ( this._items.length ) {\n\t\t\tthis._showOrUpdateUI( mentionMarker! );\n\t\t} else {\n\t\t\t// Do not show empty mention UI.\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */\n\tprivate _showOrUpdateUI( markerMarker: Marker ): void {\n\t\tif ( this._isUIVisible ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n\n\t\t\t// Update balloon position as the mention list view may change its size.\n\t\t\tthis._balloon!.updatePosition( this._getBalloonPanelPositionData( markerMarker, this._mentionsView!.position ) );\n\t\t} else {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.add( {\n\t\t\t\tview: this._mentionsView,\n\t\t\t\tposition: this._getBalloonPanelPositionData( markerMarker, this._mentionsView.position ),\n\t\t\t\tsingleViewMode: true\n\t\t\t} );\n\t\t}\n\n\t\tthis._mentionsView.position = this._balloon!.view.position;\n\t\tthis._mentionsView.selectFirst();\n\t}\n\n\t/**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */\n\tprivate _hideUIAndRemoveMarker(): void {\n\t\t// Remove the mention view from balloon before removing marker - it is used by balloon position target().\n\t\tif ( this._balloon!.hasView( this._mentionsView ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.remove( this._mentionsView );\n\t\t}\n\n\t\tif ( checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n\n\t\t\tthis.editor.model.change( writer => writer.removeMarker( 'mention' ) );\n\t\t}\n\n\t\t// Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n\t\t// on the next call.\n\t\tthis._mentionsView.position = undefined;\n\t}\n\n\t/**\n\t * Renders a single item in the autocomplete list.\n\t */\n\tprivate _renderItem( item: MentionFeedObjectItem, marker: string ): DomWrapperView | ButtonView {\n\t\tconst editor = this.editor;\n\n\t\tlet view;\n\t\tlet label = item.id;\n\n\t\tconst renderer = this._getItemRenderer( marker );\n\n\t\tif ( renderer ) {\n\t\t\tconst renderResult = renderer( item );\n\n\t\t\tif ( typeof renderResult != 'string' ) {\n\t\t\t\tview = new DomWrapperView( editor.locale, renderResult );\n\t\t\t} else {\n\t\t\t\tlabel = renderResult;\n\t\t\t}\n\t\t}\n\n\t\tif ( !view ) {\n\t\t\tconst buttonView = new ButtonView( editor.locale );\n\n\t\t\tbuttonView.label = label;\n\t\t\tbuttonView.withText = true;\n\n\t\t\tview = buttonView;\n\t\t}\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */\n\tprivate _getBalloonPanelPositionData( mentionMarker: Marker, preferredPosition: MentionsView['position'] ): Partial<PositionOptions> {\n\t\tconst editor = this.editor;\n\t\tconst editing = editor.editing;\n\t\tconst domConverter = editing.view.domConverter;\n\t\tconst mapper = editing.mapper;\n\t\tconst uiLanguageDirection = editor.locale.uiLanguageDirection;\n\n\t\treturn {\n\t\t\ttarget: () => {\n\t\t\t\tlet modelRange = mentionMarker.getRange();\n\n\t\t\t\t// Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n\t\t\t\t// The logic is used by ContextualBalloon to display another panel in the same place.\n\t\t\t\tif ( modelRange.start.root.rootName == '$graveyard' ) {\n\t\t\t\t\tmodelRange = editor.model.document.selection.getFirstRange()!;\n\t\t\t\t}\n\n\t\t\t\tconst viewRange = mapper.toViewRange( modelRange );\n\t\t\t\tconst rangeRects = Rect.getDomRangeRects( domConverter.viewRangeToDom( viewRange ) );\n\n\t\t\t\treturn rangeRects.pop()!;\n\t\t\t},\n\t\t\tlimiter: () => {\n\t\t\t\tconst view = this.editor.editing.view;\n\t\t\t\tconst viewDocument = view.document;\n\t\t\t\tconst editableElement = viewDocument.selection.editableElement;\n\n\t\t\t\tif ( editableElement ) {\n\t\t\t\t\treturn view.domConverter.mapViewToDom( editableElement.root ) as HTMLElement;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tpositions: getBalloonPanelPositions( preferredPosition, uiLanguageDirection )\n\t\t};\n\t}\n}\n\n/**\n * Returns the balloon positions data callbacks.\n */\nfunction getBalloonPanelPositions(\n\tpreferredPosition: MentionsView['position'],\n\tuiLanguageDirection: string\n): PositionOptions['positions'] {\n\tconst positions: Record<string, PositionOptions['positions'][0]> = {\n\t\t// Positions the panel to the southeast of the caret rectangle.\n\t\t'caret_se': ( targetRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_se',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northeast of the caret rectangle.\n\t\t'caret_ne': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_ne',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the southwest of the caret rectangle.\n\t\t'caret_sw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_sw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northwest of the caret rect.\n\t\t'caret_nw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_nw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t};\n\n\t// Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n\tif ( Object.prototype.hasOwnProperty.call( positions, preferredPosition! ) ) {\n\t\treturn [\n\t\t\tpositions[ preferredPosition! ]\n\t\t];\n\t}\n\n\t// By default, return all position callbacks ordered depending on the UI language direction.\n\treturn uiLanguageDirection !== 'rtl' ? [\n\t\tpositions.caret_se,\n\t\tpositions.caret_sw,\n\t\tpositions.caret_ne,\n\t\tpositions.caret_nw\n\t] : [\n\t\tpositions.caret_sw,\n\t\tpositions.caret_se,\n\t\tpositions.caret_nw,\n\t\tpositions.caret_ne\n\t];\n}\n\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */\nfunction getLastValidMarkerInText(\n\tfeedsWithPattern: Array<MentionFeed & { pattern: RegExp }>,\n\ttext: string\n): MarkerDefinition {\n\tlet lastValidMarker: any;\n\n\tfor ( const feed of feedsWithPattern ) {\n\t\tconst currentMarkerLastIndex = text.lastIndexOf( feed.marker );\n\n\t\tif ( currentMarkerLastIndex > 0 && !text.substring( currentMarkerLastIndex - 1 ).match( feed.pattern ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( !lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position ) {\n\t\t\tlastValidMarker = {\n\t\t\t\tmarker: feed.marker,\n\t\t\t\tposition: currentMarkerLastIndex,\n\t\t\t\tminimumCharacters: feed.minimumCharacters,\n\t\t\t\tpattern: feed.pattern\n\t\t\t};\n\t\t}\n\t}\n\n\treturn lastValidMarker;\n}\n\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n */\nexport function createRegExp( marker: string, minimumCharacters: number ): RegExp {\n\tconst numberOfCharacters = minimumCharacters == 0 ? '*' : `{${ minimumCharacters },}`;\n\tconst openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n\tconst mentionCharacters = '.';\n\n\t// I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n\t// When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n\t// to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n\t// allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n\tmarker = marker.replace( /[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&' );\n\n\t// The pattern consists of 3 groups:\n\t//\n\t// - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n\t// - 1: The marker character,\n\t// - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n\t//\n\t// The pattern matches up to the caret (end of string switch - $).\n\t// (0: opening sequence )(1: marker )(2: typed mention )$\n\tconst pattern = `(?:^|[ ${ openAfterCharacters }])([${ marker }])(${ mentionCharacters }${ numberOfCharacters })$`;\n\n\treturn new RegExp( pattern, 'u' );\n}\n\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */\nfunction createTestCallback( feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> ): ( text: string ) => boolean {\n\tconst textMatcher = ( text: string ) => {\n\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, text );\n\n\t\tif ( !markerDefinition ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet splitStringFrom = 0;\n\n\t\tif ( markerDefinition.position !== 0 ) {\n\t\t\tsplitStringFrom = markerDefinition.position - 1;\n\t\t}\n\n\t\tconst textToTest = text.substring( splitStringFrom );\n\n\t\treturn markerDefinition.pattern.test( textToTest );\n\t};\n\n\treturn textMatcher;\n}\n\n/**\n * Creates a text matcher from the marker.\n */\nfunction requestFeedText( markerDefinition: MarkerDefinition, text: string ): string {\n\tlet splitStringFrom = 0;\n\n\tif ( markerDefinition.position !== 0 ) {\n\t\tsplitStringFrom = markerDefinition.position - 1;\n\t}\n\n\tconst regExp = createRegExp( markerDefinition.marker, 0 );\n\tconst textToMatch = text.substring( splitStringFrom );\n\tconst match = textToMatch.match( regExp )!;\n\n\treturn match[ 2 ];\n}\n\n/**\n * The default feed callback.\n */\nfunction createFeedCallback( feedItems: Array<MentionFeedItem> ) {\n\treturn ( feedText: string ) => {\n\t\tconst filteredItems = feedItems\n\t\t\t// Make the default mention feed case-insensitive.\n\t\t\t.filter( item => {\n\t\t\t\t// Item might be defined as object.\n\t\t\t\tconst itemId = typeof item == 'string' ? item : String( item.id );\n\n\t\t\t\t// The default feed is case insensitive.\n\t\t\t\treturn itemId.toLowerCase().includes( feedText.toLowerCase() );\n\t\t\t} );\n\t\treturn filteredItems;\n\t};\n}\n\n/**\n * Checks if position in inside or right after a text with a mention.\n */\nfunction isPositionInExistingMention( position: Position ): boolean | null {\n\t// The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n\t// and you cannot use selection.hasAttribute( 'mention' ) just yet.\n\t// See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n\tconst hasMention = position.textNode && position.textNode.hasAttribute( 'mention' );\n\n\tconst nodeBefore = position.nodeBefore;\n\n\treturn hasMention || nodeBefore && nodeBefore.is( '$text' ) && nodeBefore.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */\nfunction isMarkerInExistingMention( markerPosition: Position ): boolean | null {\n\tconst nodeAfter = markerPosition.nodeAfter;\n\n\treturn nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if string is a valid mention marker.\n */\nfunction isValidMentionMarker( marker: string ): boolean | string {\n\treturn marker && marker.length == 1;\n}\n\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */\nfunction checkIfStillInCompletionMode( editor: Editor ): boolean {\n\treturn editor.model.markers.has( 'mention' );\n}\n\ntype RequestFeedResponse = {\n\n\t/**\n\t * Autocomplete items\n\t */\n\tfeed: Array<MentionFeedItem>;\n\n\t/**\n\t * The character which triggers autocompletion for mention.\n\t */\n\tmarker: string;\n\n\t/**\n\t * The text for which feed items were requested.\n\t */\n\tfeedText: string;\n};\n\ntype RequestFeedError = {\n\n\t/**\n\t * The error that was caught.\n\t */\n\terror: ErrorEvent;\n};\n\n/**\n * Fired whenever requested feed has a response.\n */\ntype RequestFeedResponseEvent = {\n\tname: 'requestFeed:response';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested feed was discarded. This happens when the response was delayed and\n * other feed was already requested.\n */\ntype RequestFeedDiscardedEvent = {\n\tname: 'requestFeed:discarded';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested {@link module:mention/mentionconfig~MentionFeed#feed} promise fails with error.\n */\ntype RequestFeedErrorEvent = {\n\tname: 'requestFeed:error';\n\targs: [ RequestFeedError ];\n};\n\ntype Definition = {\n\tmarker: string;\n\tfeedCallback: FeedCallback;\n\titemRenderer?: ItemRenderer;\n\tdropdownLimit?: number;\n};\n\ntype MarkerDefinition = {\n\tmarker: string;\n\tminimumCharacters?: number;\n\tpattern: RegExp;\n\tposition: number;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module mention/mention\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { Element } from 'ckeditor5/src/engine.js';\n\nimport MentionEditing, { _toMentionAttribute } from './mentionediting.js';\nimport MentionUI from './mentionui.js';\n\nimport '../theme/mention.css';\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */\nexport default class Mention extends Plugin {\n\t/**\n\t * Creates a mention attribute value from the provided view element and additional data.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement, { userId: '1234' } );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', userId: '1234', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t *\n\t * @param data Additional data to be stored in the mention attribute.\n\t */\n\tpublic toMentionAttribute<MentionData extends Record<string, unknown>>(\n\t\tviewElement: Element,\n\t\tdata: MentionData\n\t): ( MentionAttribute & MentionData ) | undefined;\n\n\t/**\n\t * Creates a mention attribute value from the provided view element.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t */\n\tpublic toMentionAttribute( viewElement: Element ): MentionAttribute | undefined;\n\n\tpublic toMentionAttribute( viewElement: Element, data?: Record<string, unknown> ): MentionAttribute | undefined {\n\t\treturn _toMentionAttribute( viewElement, data );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Mention' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ MentionEditing, MentionUI ] as const;\n\t}\n}\n\n/**\n * Represents a mention in the model.\n *\n * See {@link module:mention/mention~Mention#toMentionAttribute `Mention#toMentionAttribute()`}.\n */\nexport type MentionAttribute = {\n\n\t/**\n\t * The ID of a mention. It identifies the mention item in the mention feed. There can be multiple mentions\n\t * in the document with the same ID (e.g. the same hashtag being mentioned).\n\t */\n\tid: string;\n\n\t/**\n\t * A unique ID of this mention instance. Should be passed as an `option.id` when using\n\t * {@link module:engine/view/downcastwriter~DowncastWriter#createAttributeElement writer.createAttributeElement()}.\n\t */\n\tuid: string;\n\n\t/**\n\t * Helper property that stores the text of the inserted mention. Used for detecting a broken mention\n\t * in the editing area.\n\t *\n\t * @internal\n\t */\n\t_text: string;\n};\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ckeditor/ckeditor5-mention",
|
3
|
-
"version": "43.3.0-alpha.
|
3
|
+
"version": "43.3.0-alpha.10",
|
4
4
|
"description": "Mention feature for CKEditor 5.",
|
5
5
|
"keywords": [
|
6
6
|
"ckeditor",
|
@@ -13,11 +13,11 @@
|
|
13
13
|
"type": "module",
|
14
14
|
"main": "src/index.js",
|
15
15
|
"dependencies": {
|
16
|
-
"@ckeditor/ckeditor5-core": "43.3.0-alpha.
|
17
|
-
"@ckeditor/ckeditor5-typing": "43.3.0-alpha.
|
18
|
-
"@ckeditor/ckeditor5-ui": "43.3.0-alpha.
|
19
|
-
"@ckeditor/ckeditor5-utils": "43.3.0-alpha.
|
20
|
-
"ckeditor5": "43.3.0-alpha.
|
16
|
+
"@ckeditor/ckeditor5-core": "43.3.0-alpha.10",
|
17
|
+
"@ckeditor/ckeditor5-typing": "43.3.0-alpha.10",
|
18
|
+
"@ckeditor/ckeditor5-ui": "43.3.0-alpha.10",
|
19
|
+
"@ckeditor/ckeditor5-utils": "43.3.0-alpha.10",
|
20
|
+
"ckeditor5": "43.3.0-alpha.10",
|
21
21
|
"lodash-es": "4.17.21"
|
22
22
|
},
|
23
23
|
"author": "CKSource (http://cksource.com/)",
|