@ckeditor/ckeditor5-emoji 45.2.1-alpha.9 → 46.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/emoji.js +1 -1
- package/dist/index-editor.css +62 -62
- package/dist/index.css +79 -79
- package/dist/index.css.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
- package/src/emoji.d.ts +3 -3
- package/src/emoji.js +3 -3
- package/src/emojicommand.d.ts +1 -1
- package/src/emojicommand.js +1 -1
- package/src/emojiconfig.d.ts +2 -2
- package/src/emojimention.d.ts +3 -3
- package/src/emojimention.js +2 -2
- package/src/emojipicker.d.ts +6 -6
- package/src/emojipicker.js +5 -5
- package/src/emojirepository.d.ts +7 -7
- package/src/emojirepository.js +2 -2
- package/src/emojiutils.d.ts +1 -1
- package/src/emojiutils.js +2 -2
- package/src/index.d.ts +14 -7
- package/src/index.js +13 -6
- package/src/ui/emojicategoriesview.d.ts +1 -1
- package/src/ui/emojicategoriesview.js +1 -1
- package/src/ui/emojigridview.d.ts +4 -4
- package/src/ui/emojigridview.js +1 -1
- package/src/ui/emojipickerformview.d.ts +1 -1
- package/src/ui/emojipickerformview.js +1 -1
- package/src/ui/emojipickerview.d.ts +9 -9
- package/src/ui/emojipickerview.js +5 -5
- package/src/ui/emojisearchview.d.ts +2 -2
- package/src/ui/emojisearchview.js +1 -1
- package/src/ui/emojitoneview.d.ts +6 -6
- package/src/ui/emojitoneview.js +3 -3
- package/src/utils/isemojisupported.d.ts +3 -1
- package/src/utils/isemojisupported.js +3 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js","../src/utils/isemojisupported.ts","../src/emojiutils.ts","../src/emojirepository.ts","../src/emojimention.ts","../src/emojicommand.ts","../src/ui/emojigridview.ts","../src/ui/emojicategoriesview.ts","../src/ui/emojisearchview.ts","../src/ui/emojitoneview.ts","../src/ui/emojipickerview.ts","../src/ui/emojipickerformview.ts","../src/emojipicker.ts","../src/emoji.ts"],"names":["isEmojiSupported","unicode","ctx","getCanvas","CANVAS_HEIGHT","CANVAS_WIDTH","textSize","Math","floor","font","textBaseline","canvas","width","height","clearRect","fillStyle","fillText","a","getImageData","data","count","length","i","x","y","b","measureText","document","createElement","getContext","willReadFrequently","SKIN_TONE_MAP","EMOJI_SUPPORT_LEVEL","BASELINE_EMOJI_WIDTH","EmojiUtils","Plugin","pluginName","isOfficialPlugin","item","emojiSupportedVersionByOs","container","isEmojiVersionSupported","version","hasZwj","emoji","isEmojiZwjSupported","getEmojiSupportedVersionByOs","emojiVersion","Object","entries","_isEmojiSupported","includes","emojiWidth","getNodeWidth","node","span","textContent","appendChild","nodeWidth","offsetWidth","removeChild","createEmojiWidthTestingContainer","setAttribute","style","position","left","whiteSpace","fontSize","normalizeEmojiSkinTone","entry","skins","default","forEach","skin","skinTone","tone","isEmojiCategoryAllowed","group","DEFAULT_EMOJI_DATABASE_URL","DEFAULT_EMOJI_VERSION","EmojiRepository","_items","_url","_repositoryPromise","requires","editor","config","define","undefined","definitionsUrl","useCustomFont","_getUrl","Promise","resolve","_repositoryPromiseResolveCallback","init","_warnAboutCdnUse","_loadAndCacheEmoji","_getItems","logWarning","getEmojiByQuery","searchQuery","searchQueryTokens","split","filter","Boolean","shouldSearch","some","token","fuzzysort","go","threshold","keys","emojiEntry","matchedTags","flatMap","tok","tags","t","startsWith","join","map","result","obj","getEmojiCategories","repository","locale","categories","title","icon","groupId","groups","groupBy","category","items","getSkinTones","id","tooltip","isReady","get","urlVersion","url","URL","replace","toString","searchParams","set","editorVersion","licenseKey","distributionChannel","Symbol","for","_results","href","fetch","cache","then","response","ok","json","catch","_normalizeEmoji","emojiUtils","plugins","insertableEmoji","body","results","remove","EMOJI_MENTION_MARKER","EMOJI_SHOW_ALL_OPTION_ID","EMOJI_HINT_OPTION_ID","EmojiMention","_emojiDropdownLimit","_skinTone","Typing","dropdownLimit","_setupMentionConfiguration","mergeFieldsPrefix","mentionFeedsConfigs","isEmojiMarkerUsedByMergeFields","isEmojiMarkerUsedByMention","_isEmojiMarker","marker","isEmojiConfigDefined","emojiMentionFeedConfig","itemRenderer","_customItemRendererFactory","feed","_queryEmojiCallbackFactory","emojiPickerPlugin","has","emojiRepositoryPlugin","_isEmojiRepositoryAvailable","once","_overrideMentionExecuteListener","bind","itemElement","classList","add","slice","type","tabIndex","labelElement","text","commands","on","event","eventData","stop","mention","range","getItems","is","reduce","model","change","writer","deleteContent","createSelection","showUI","setTimeout","emojiPickerView","focus","execute","priority","emojis","annotation","actionItem","EmojiCommand","Command","refresh","schema","selection","isEnabled","checkChild","getFirstPosition","searchValue","EmojiGridView","View","tiles","focusTracker","keystrokes","emojiCategories","cachedTiles","_getEmojiByQuery","categoryName","createCollection","FocusTracker","KeystrokeHandler","bindTemplate","setTemplate","tag","children","attributes","role","class","if","value","addKeyboardHandlingForGrid","keystrokeHandler","gridItems","numberOfColumns","global","window","getComputedStyle","element","firstChild","getPropertyValue","uiLanguageDirection","render","listenTo","destroy","firstTile","first","pattern","matchingItems","allItems","_getItemsByQuery","source","_getItemsByCategory","_updateGrid","resultsCount","totalItemsCount","query","emojiCategory","find","_createTile","name","tile","ButtonView","viewUid","extendTemplate","label","withText","ariaLabel","ariaLabelledBy","fire","EmojiCategoriesView","focusCycler","buttonViews","_createCategoryButton","FocusCycler","focusables","actions","focusPrevious","focusNext","newValue","oldValue","oldCategoryButton","button","isOn","newCategoryButton","buttonView","enableCategories","disableCategories","to","EmojiSearchView","inputView","gridView","resultsView","SearchTextView","queryView","creator","createLabeledInputText","filteredView","infoView","instance","tabindex","delegate","search","regExp","RegExp","escapeRegExp","filteringResults","setInputValue","fieldView","reset","getInputValue","EmojiToneView","dropdownView","_skinTones","skinTones","accessibleLabel","createDropdown","itemDefinitions","Collection","def","ViewModel","tooltipPosition","addListToDropdown","_getSkinTone","evt","EmojiPickerView","searchView","toneView","categoriesView","SearchInfoView","_setupEventListeners","primaryText","secondaryText","isVisible","scrollTo","ev","args","propertyName","EmojiPickerFormView","backButtonView","_focusables","ViewCollection","_focusCycler","_createBackButton","_createHeaderView","childViews","isFocusable","v","isViewWithFocusCycler","chain","focusFirst","backButton","IconPreviousArrow","header","FormHeaderView","VISUAL_SELECTION_MARKER_NAME","EmojiPicker","ContextualBalloon","Dialog","balloonPlugin","command","ui","componentFactory","_createButton","MenuBarMenuListItemButtonView","_setupConversion","_showFakeVisualSelection","_createEmojiPickerView","emojiPickerFormView","_createEmojiPickerFormView","hasView","visibleView","view","_getBalloonPositionData","balloonClassName","ViewClass","IconEmoji","isToggleable","editing","scrollToTheSelection","textToInsert","_hideUI","updatePosition","cancel","clickOutsideHandler","emitter","contextElements","callback","activator","updateFocus","_hideFakeVisualSelection","conversion","markerToHighlight","classes","markerToElement","markerRange","isCollapsed","markerElement","createUIElement","addClass","viewDocument","target","domConverter","viewRangeToDom","getFirstRange","markers","updateMarker","start","isAtEnd","startPosition","getLastMatchingPosition","isContent","boundaries","addMarker","usingOperation","affectsData","createRange","end","removeMarker","Emoji"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { logWarning, version, FocusTracker, KeystrokeHandler, global, Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { Typing } from '@ckeditor/ckeditor5-typing/dist/index.js';\nimport fuzzysort from 'fuzzysort';\nimport { groupBy, escapeRegExp } from 'es-toolkit/compat';\nimport { View, addKeyboardHandlingForGrid, ButtonView, FocusCycler, SearchTextView, createLabeledInputText, createDropdown, ViewModel, addListToDropdown, SearchInfoView, ViewCollection, isFocusable, isViewWithFocusCycler, FormHeaderView, ContextualBalloon, Dialog, MenuBarMenuListItemButtonView, clickOutsideHandler } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconPreviousArrow, IconEmoji } from '@ckeditor/ckeditor5-icons/dist/index.js';\n\n/**\n * @license Copyright (c) 2023, Koala Interactive SAS\n * For licensing, see https://github.com/koala-interactive/is-emoji-supported/blob/master/LICENSE.md\n */ /**\n * @module emoji/utils/isemojisupported\n */ /**\n * Checks if the two pixels parts are the same using canvas.\n */ function isEmojiSupported(unicode) {\n const ctx = getCanvas();\n /* istanbul ignore next -- @preserve */ if (!ctx) {\n return false;\n }\n const CANVAS_HEIGHT = 25;\n const CANVAS_WIDTH = 20;\n const textSize = Math.floor(CANVAS_HEIGHT / 2);\n // Initialize canvas context.\n ctx.font = textSize + 'px Arial, Sans-Serif';\n ctx.textBaseline = 'top';\n ctx.canvas.width = CANVAS_WIDTH * 2;\n ctx.canvas.height = CANVAS_HEIGHT;\n ctx.clearRect(0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT);\n // Draw in red on the left.\n ctx.fillStyle = '#FF0000';\n ctx.fillText(unicode, 0, 22);\n // Draw in blue on right.\n ctx.fillStyle = '#0000FF';\n ctx.fillText(unicode, CANVAS_WIDTH, 22);\n const a = ctx.getImageData(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT).data;\n const count = a.length;\n let i = 0;\n // Search the first visible pixel.\n for(; i < count && !a[i + 3]; i += 4);\n // No visible pixel.\n /* istanbul ignore next -- @preserve */ if (i >= count) {\n return false;\n }\n // Emoji has immutable color, so we check the color of the emoji in two different colors.\n // the result show be the same.\n const x = CANVAS_WIDTH + i / 4 % CANVAS_WIDTH;\n const y = Math.floor(i / 4 / CANVAS_WIDTH);\n const b = ctx.getImageData(x, y, 1, 1).data;\n /* istanbul ignore next -- @preserve */ if (a[i] !== b[0] || a[i + 2] !== b[2]) {\n return false;\n }\n //Some emojis consist of different ones, so they will show multiple characters if they are not supported.\n /* istanbul ignore next -- @preserve */ if (ctx.measureText(unicode).width >= CANVAS_WIDTH) {\n return false;\n }\n // Supported.\n return true;\n}\nfunction getCanvas() {\n try {\n return document.createElement('canvas').getContext('2d', {\n willReadFrequently: true\n });\n } catch {\n /* istanbul ignore next -- @preserve */ return null;\n }\n}\n\n/**\n * @module emoji/emojiutils\n */ const SKIN_TONE_MAP = {\n 0: 'default',\n 1: 'light',\n 2: 'medium-light',\n 3: 'medium',\n 4: 'medium-dark',\n 5: 'dark'\n};\n/**\n * A map representing an emoji and its release version.\n * It's used to identify a user's minimal supported emoji level.\n * We skip versions with older patches, such as 15.0 instead of 15.1 etc.\n */ const EMOJI_SUPPORT_LEVEL = {\n '': 16,\n '🫨': 15.1,\n '🫠': 14,\n '😶🌫️': 13.1,\n '🧑💻': 12.1,\n '🥰': 11,\n '🤪': 5,\n '⚕️': 4,\n '🤣': 3,\n '👋🏽': 2,\n '😀': 1,\n '😐': 0.7,\n '😂': 0.6 // Face with Tears of Joy.\n};\nconst BASELINE_EMOJI_WIDTH = 24;\n/**\n * The Emoji utilities plugin.\n */ class EmojiUtils extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiUtils';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * Checks if the emoji is supported by verifying the emoji version supported by the system first.\n\t * Then checks if emoji contains a zero width joiner (ZWJ), and if yes, then checks if it is supported by the system.\n\t */ isEmojiSupported(item, emojiSupportedVersionByOs, container) {\n const isEmojiVersionSupported = item.version <= emojiSupportedVersionByOs;\n if (!isEmojiVersionSupported) {\n return false;\n }\n if (!this.hasZwj(item.emoji)) {\n return true;\n }\n return this.isEmojiZwjSupported(item, container);\n }\n /**\n\t * Checks the supported emoji version by the OS, by sampling some representatives from different emoji releases.\n\t */ getEmojiSupportedVersionByOs() {\n for (const [emoji, emojiVersion] of Object.entries(EMOJI_SUPPORT_LEVEL)){\n if (EmojiUtils._isEmojiSupported(emoji)) {\n return emojiVersion;\n }\n }\n return 0;\n }\n /**\n\t * Check for ZWJ (zero width joiner) character.\n\t */ hasZwj(emoji) {\n return emoji.includes('\\u200d');\n }\n /**\n\t * Checks whether the emoji is supported in the operating system.\n\t */ isEmojiZwjSupported(item, container) {\n const emojiWidth = this.getNodeWidth(container, item.emoji);\n // On Windows, some supported emoji are ~50% bigger than the baseline emoji, but what we really want to guard\n // against are the ones that are 2x the size, because those are truly broken (person with red hair = person with\n // floating red wig, black cat = cat with black square, polar bear = bear with snowflake, etc.)\n // So here we set the threshold at 1.8 times the size of the baseline emoji.\n return emojiWidth < BASELINE_EMOJI_WIDTH * 1.8;\n }\n /**\n\t * Returns the width of the provided node.\n\t */ getNodeWidth(container, node) {\n const span = document.createElement('span');\n span.textContent = node;\n container.appendChild(span);\n const nodeWidth = span.offsetWidth;\n container.removeChild(span);\n return nodeWidth;\n }\n /**\n\t * Creates a div for emoji width testing purposes.\n\t */ createEmojiWidthTestingContainer() {\n const container = document.createElement('div');\n container.setAttribute('aria-hidden', 'true');\n container.style.position = 'absolute';\n container.style.left = '-9999px';\n container.style.whiteSpace = 'nowrap';\n container.style.fontSize = BASELINE_EMOJI_WIDTH + 'px';\n return container;\n }\n /**\n\t * Adds default skin tone property to each emoji. If emoji defines other skin tones, they are added as well.\n\t */ normalizeEmojiSkinTone(item) {\n const entry = {\n ...item,\n skins: {\n default: item.emoji\n }\n };\n if (item.skins) {\n item.skins.forEach((skin)=>{\n const skinTone = SKIN_TONE_MAP[skin.tone];\n entry.skins[skinTone] = skin.emoji;\n });\n }\n return entry;\n }\n /**\n\t * Checks whether the emoji belongs to a group that is allowed.\n\t */ isEmojiCategoryAllowed(item) {\n // Category group=2 contains skin tones only, which we do not want to render.\n return item.group !== 2;\n }\n /**\n\t * A function used to determine if emoji is supported by detecting pixels.\n\t *\n\t * Referenced for unit testing purposes. Kept in a separate file because of licensing.\n\t */ static _isEmojiSupported = isEmojiSupported;\n}\n\n// An endpoint from which the emoji data will be downloaded during plugin initialization.\n// The `{version}` placeholder is replaced with the value from editor config.\nconst DEFAULT_EMOJI_DATABASE_URL = 'https://cdn.ckeditor.com/ckeditor5/data/emoji/{version}/en.json';\nconst DEFAULT_EMOJI_VERSION = 16;\n/**\n * The emoji repository plugin.\n *\n * Loads the emoji repository from URL during plugin initialization and provides utility methods to search it.\n */ class EmojiRepository extends Plugin {\n /**\n\t * Emoji repository in a configured version.\n\t */ _items;\n /**\n\t * The resolved URL from which the emoji repository is downloaded.\n\t */ _url;\n /**\n\t * A promise resolved after downloading the emoji collection.\n\t * The promise resolves with `true` when the repository is successfully downloaded or `false` otherwise.\n\t */ _repositoryPromise;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiUtils\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiRepository';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('emoji', {\n version: undefined,\n skinTone: 'default',\n definitionsUrl: undefined,\n useCustomFont: false\n });\n this._url = this._getUrl();\n this._repositoryPromise = new Promise((resolve)=>{\n this._repositoryPromiseResolveCallback = resolve;\n });\n this._items = null;\n }\n /**\n\t * @inheritDoc\n\t */ async init() {\n this._warnAboutCdnUse();\n await this._loadAndCacheEmoji();\n this._items = this._getItems();\n if (!this._items) {\n /**\n\t\t\t * Unable to identify the available emoji to display.\n\t\t\t *\n\t\t\t * See the {@glink features/emoji#troubleshooting troubleshooting} section in the {@glink features/emoji Emoji feature} guide\n\t\t\t * for more details.\n\t\t\t *\n\t\t\t * @error emoji-repository-empty\n\t\t\t */ logWarning('emoji-repository-empty');\n return this._repositoryPromiseResolveCallback(false);\n }\n return this._repositoryPromiseResolveCallback(true);\n }\n /**\n\t * Returns an array of emoji entries that match the search query.\n\t * If the emoji repository is not loaded this method returns an empty array.\n\t *\n\t * @param searchQuery A search query to match emoji.\n\t * @returns An array of emoji entries that match the search query.\n\t */ getEmojiByQuery(searchQuery) {\n if (!this._items) {\n return [];\n }\n const searchQueryTokens = searchQuery.split(/\\s/).filter(Boolean);\n // Perform the search only if there is at least two non-white characters next to each other.\n const shouldSearch = searchQueryTokens.some((token)=>token.length >= 2);\n if (!shouldSearch) {\n return [];\n }\n return fuzzysort.go(searchQuery, this._items, {\n threshold: 0.6,\n keys: [\n 'emoticon',\n 'annotation',\n (emojiEntry)=>{\n // Instead of searching over all tags, let's use only those that matches the query.\n // It enables searching in tags with the space character in names.\n const searchQueryTokens = searchQuery.split(/\\s/).filter(Boolean);\n const matchedTags = searchQueryTokens.flatMap((tok)=>{\n return emojiEntry.tags?.filter((t)=>t.startsWith(tok));\n });\n return matchedTags.join();\n }\n ]\n }).map((result)=>result.obj);\n }\n /**\n\t * Groups all emojis by categories.\n\t * If the emoji repository is not loaded, it returns an empty array.\n\t *\n\t * @returns An array of emoji entries grouped by categories.\n\t */ getEmojiCategories() {\n const repository = this._getItems();\n if (!repository) {\n return [];\n }\n const { t } = this.editor.locale;\n const categories = [\n {\n title: t('Smileys & Expressions'),\n icon: '😄',\n groupId: 0\n },\n {\n title: t('Gestures & People'),\n icon: '👋',\n groupId: 1\n },\n {\n title: t('Animals & Nature'),\n icon: '🐻',\n groupId: 3\n },\n {\n title: t('Food & Drinks'),\n icon: '🍎',\n groupId: 4\n },\n {\n title: t('Travel & Places'),\n icon: '🚘',\n groupId: 5\n },\n {\n title: t('Activities'),\n icon: '🏀',\n groupId: 6\n },\n {\n title: t('Objects'),\n icon: '💡',\n groupId: 7\n },\n {\n title: t('Symbols'),\n icon: '🔵',\n groupId: 8\n },\n {\n title: t('Flags'),\n icon: '🏁',\n groupId: 9\n }\n ];\n const groups = groupBy(repository, (item)=>item.group);\n return categories.map((category)=>{\n return {\n ...category,\n items: groups[category.groupId]\n };\n });\n }\n /**\n\t * Returns an array of available skin tones.\n\t */ getSkinTones() {\n const { t } = this.editor.locale;\n return [\n {\n id: 'default',\n icon: '👋',\n tooltip: t('Default skin tone')\n },\n {\n id: 'light',\n icon: '👋🏻',\n tooltip: t('Light skin tone')\n },\n {\n id: 'medium-light',\n icon: '👋🏼',\n tooltip: t('Medium Light skin tone')\n },\n {\n id: 'medium',\n icon: '👋🏽',\n tooltip: t('Medium skin tone')\n },\n {\n id: 'medium-dark',\n icon: '👋🏾',\n tooltip: t('Medium Dark skin tone')\n },\n {\n id: 'dark',\n icon: '👋🏿',\n tooltip: t('Dark skin tone')\n }\n ];\n }\n /**\n\t * Indicates whether the emoji repository has been successfully downloaded and the plugin is operational.\n\t */ isReady() {\n return this._repositoryPromise;\n }\n /**\n\t * Returns the URL from which the emoji repository is downloaded. If the URL is not provided\n\t * in the configuration, the default URL is used with the version from the configuration.\n\t *\n\t * If both the URL and version are provided, a warning is logged.\n\t */ _getUrl() {\n const { definitionsUrl, version: version$1 } = this.editor.config.get('emoji');\n if (!definitionsUrl || definitionsUrl === 'cdn') {\n // URL was not provided or is set to 'cdn', so we use the default CDN URL.\n const urlVersion = version$1 || DEFAULT_EMOJI_VERSION;\n const url = new URL(DEFAULT_EMOJI_DATABASE_URL.replace('{version}', urlVersion.toString()));\n url.searchParams.set('editorVersion', version);\n return url;\n }\n if (version$1) {\n /**\n\t\t\t * Both {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`} and\n\t\t\t * {@link module:emoji/emojiconfig~EmojiConfig#version `emoji.version`} configuration options\n\t\t\t * are set. Only the `emoji.definitionsUrl` option will be used.\n\t\t\t *\n\t\t\t * The `emoji.version` option will be ignored and should be removed from the configuration.\n\t\t\t *\n\t\t\t * @error emoji-repository-redundant-version\n\t\t\t */ logWarning('emoji-repository-redundant-version');\n }\n return new URL(definitionsUrl);\n }\n /**\n\t * Warn users on self-hosted installations that this plugin uses a CDN to fetch the emoji repository.\n\t */ _warnAboutCdnUse() {\n const editor = this.editor;\n const config = editor.config.get('emoji');\n const licenseKey = editor.config.get('licenseKey');\n const distributionChannel = window[Symbol.for('cke distribution')];\n if (licenseKey === 'GPL') {\n // Don't warn GPL users.\n return;\n }\n if (distributionChannel === 'cloud') {\n // Don't warn cloud users, because they already use our CDN.\n return;\n }\n if (config && config.definitionsUrl) {\n // Don't warn users who have configured their own definitions URL.\n return;\n }\n /**\n\t\t * It was detected that your installation uses a commercial license key,\n\t\t * and the default {@glink features/emoji#emoji-source CKEditor CDN for Emoji plugin data}.\n\t\t *\n\t\t * To avoid this, you can use the {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`}\n\t\t * configuration option to provide a URL to your own emoji repository.\n\t\t *\n\t\t * If you want to suppress this warning, while using the default CDN, set this configuration option to `cdn`.\n\t\t *\n\t\t * @error emoji-repository-cdn-use\n\t\t */ logWarning('emoji-repository-cdn-use');\n }\n /**\n\t * Returns the emoji repository in a configured version if it is a non-empty array. Returns `null` otherwise.\n\t */ _getItems() {\n const repository = EmojiRepository._results[this._url.href];\n return repository && repository.length ? repository : null;\n }\n /**\n\t * Loads the emoji repository. If the repository is already loaded, it returns the cached result.\n\t * Otherwise, it fetches the repository from the URL and adds it to the cache.\n\t */ async _loadAndCacheEmoji() {\n if (EmojiRepository._results[this._url.href]) {\n // The repository has already been downloaded.\n return;\n }\n const result = await fetch(this._url, {\n cache: 'force-cache'\n }).then((response)=>{\n if (!response.ok) {\n return [];\n }\n return response.json();\n }).catch(()=>{\n return [];\n });\n EmojiRepository._results[this._url.href] = this._normalizeEmoji(result);\n }\n /**\n\t * Normalizes the raw data fetched from CDN. By normalization, we meant:\n\t *\n\t * * Filter out unsupported emoji (these that will not render correctly),\n\t * * Prepare skin tone variants if an emoji defines them.\n\t */ _normalizeEmoji(data) {\n const editor = this.editor;\n const useCustomFont = editor.config.get('emoji.useCustomFont');\n const emojiUtils = editor.plugins.get('EmojiUtils');\n const insertableEmoji = data.filter((item)=>emojiUtils.isEmojiCategoryAllowed(item));\n // When using a custom font, the feature does not filter any emoji.\n if (useCustomFont) {\n return insertableEmoji.map((item)=>emojiUtils.normalizeEmojiSkinTone(item));\n }\n const emojiSupportedVersionByOs = emojiUtils.getEmojiSupportedVersionByOs();\n const container = emojiUtils.createEmojiWidthTestingContainer();\n document.body.appendChild(container);\n const results = insertableEmoji.filter((item)=>emojiUtils.isEmojiSupported(item, emojiSupportedVersionByOs, container)).map((item)=>emojiUtils.normalizeEmojiSkinTone(item));\n container.remove();\n return results;\n }\n /**\n\t * Versioned emoji repository.\n\t */ static _results = {};\n}\n /**\n * Unable to load the emoji repository from the URL.\n *\n * If the URL works properly and there is no disruption of communication, please check your\n * {@glink getting-started/setup/csp Content Security Policy (CSP)} setting and make sure\n * the URL connection is allowed by the editor.\n *\n * @error emoji-repository-load-failed\n */\n\nconst EMOJI_MENTION_MARKER = ':';\nconst EMOJI_SHOW_ALL_OPTION_ID = ':__EMOJI_SHOW_ALL:';\nconst EMOJI_HINT_OPTION_ID = ':__EMOJI_HINT:';\n/**\n * The emoji mention plugin.\n *\n * Introduces the autocomplete of emojis while typing.\n */ class EmojiMention extends Plugin {\n /**\n\t * Defines a number of displayed items in the auto complete dropdown.\n\t *\n\t * It includes the \"Show all emoji...\" option if the `EmojiPicker` plugin is loaded.\n\t */ _emojiDropdownLimit;\n /**\n\t * Defines a skin tone that is set in the emoji config.\n\t */ _skinTone;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiRepository,\n Typing,\n 'Mention'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiMention';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this.editor.config.define('emoji', {\n dropdownLimit: 6\n });\n this._emojiDropdownLimit = editor.config.get('emoji.dropdownLimit');\n this._skinTone = editor.config.get('emoji.skinTone');\n this._setupMentionConfiguration(editor);\n }\n /**\n\t * Initializes the configuration for emojis in the mention feature.\n\t * If the marker used by emoji mention is already registered, it displays a warning.\n\t * If emoji mention configuration is detected, it does not register it for a second time.\n\t */ _setupMentionConfiguration(editor) {\n const mergeFieldsPrefix = editor.config.get('mergeFields.prefix');\n const mentionFeedsConfigs = editor.config.get('mention.feeds');\n const isEmojiMarkerUsedByMergeFields = mergeFieldsPrefix ? mergeFieldsPrefix[0] === EMOJI_MENTION_MARKER : false;\n const isEmojiMarkerUsedByMention = mentionFeedsConfigs.filter((config)=>!config._isEmojiMarker).some((config)=>config.marker === EMOJI_MENTION_MARKER);\n if (isEmojiMarkerUsedByMention || isEmojiMarkerUsedByMergeFields) {\n /**\n\t\t\t * The `marker` in the `emoji` config is already used by other plugin configuration.\n\t\t\t *\n\t\t\t * @error emoji-config-marker-already-used\n\t\t\t * @param {string} marker Used marker.\n\t\t\t */ logWarning('emoji-config-marker-already-used', {\n marker: EMOJI_MENTION_MARKER\n });\n return;\n }\n const isEmojiConfigDefined = mentionFeedsConfigs.some((config)=>config._isEmojiMarker);\n if (isEmojiConfigDefined) {\n return;\n }\n const emojiMentionFeedConfig = {\n _isEmojiMarker: true,\n marker: EMOJI_MENTION_MARKER,\n dropdownLimit: this._emojiDropdownLimit,\n itemRenderer: this._customItemRendererFactory(this.editor.t),\n feed: this._queryEmojiCallbackFactory()\n };\n this.editor.config.set('mention.feeds', [\n ...mentionFeedsConfigs,\n emojiMentionFeedConfig\n ]);\n }\n /**\n\t * @inheritDoc\n\t */ async init() {\n const editor = this.editor;\n this.emojiPickerPlugin = editor.plugins.has('EmojiPicker') ? editor.plugins.get('EmojiPicker') : null;\n this.emojiRepositoryPlugin = editor.plugins.get('EmojiRepository');\n this._isEmojiRepositoryAvailable = await this.emojiRepositoryPlugin.isReady();\n // Override the `mention` command listener if the emoji repository is ready.\n if (this._isEmojiRepositoryAvailable) {\n editor.once('ready', this._overrideMentionExecuteListener.bind(this));\n }\n }\n /**\n\t * Returns the `itemRenderer()` callback for mention config.\n\t */ _customItemRendererFactory(t) {\n return (item)=>{\n const itemElement = document.createElement('button');\n itemElement.classList.add('ck');\n itemElement.classList.add('ck-button');\n itemElement.classList.add('ck-button_with-text');\n itemElement.id = `mention-list-item-id${item.id.slice(0, -1)}`;\n itemElement.type = 'button';\n itemElement.tabIndex = -1;\n const labelElement = document.createElement('span');\n labelElement.classList.add('ck');\n labelElement.classList.add('ck-button__label');\n itemElement.appendChild(labelElement);\n if (item.id === EMOJI_HINT_OPTION_ID) {\n itemElement.classList.add('ck-list-item-button');\n itemElement.classList.add('ck-disabled');\n labelElement.textContent = t('Keep on typing to see the emoji.');\n } else if (item.id === EMOJI_SHOW_ALL_OPTION_ID) {\n labelElement.textContent = t('Show all emoji...');\n } else {\n labelElement.textContent = `${item.text} ${item.id}`;\n }\n return itemElement;\n };\n }\n /**\n\t * Overrides the default mention execute listener to insert an emoji as plain text instead.\n\t */ _overrideMentionExecuteListener() {\n const editor = this.editor;\n editor.commands.get('mention').on('execute', (event, data)=>{\n const eventData = data[0];\n // Ignore non-emoji auto-complete actions.\n if (eventData.marker !== EMOJI_MENTION_MARKER) {\n return;\n }\n // Do not propagate the event.\n event.stop();\n // Do nothing when executing after selecting a hint message.\n if (eventData.mention.id === EMOJI_HINT_OPTION_ID) {\n return;\n }\n // Trigger the picker UI.\n if (eventData.mention.id === EMOJI_SHOW_ALL_OPTION_ID) {\n const text = [\n ...eventData.range.getItems()\n ].filter((item)=>item.is('$textProxy')).map((item)=>item.data).reduce((result, text)=>result + text, '');\n editor.model.change((writer)=>{\n editor.model.deleteContent(writer.createSelection(eventData.range));\n });\n const emojiPickerPlugin = this.emojiPickerPlugin;\n emojiPickerPlugin.showUI(text.slice(1));\n setTimeout(()=>{\n emojiPickerPlugin.emojiPickerView.focus();\n });\n } else {\n editor.execute('insertText', {\n text: eventData.mention.text,\n range: eventData.range\n });\n }\n }, {\n priority: 'high'\n });\n }\n /**\n\t * Returns the `feed()` callback for mention config.\n\t */ _queryEmojiCallbackFactory() {\n return (searchQuery)=>{\n // Do not show anything when a query starts with a space.\n if (searchQuery.startsWith(' ')) {\n return [];\n }\n // Do not show anything when a query starts with a marker character.\n if (searchQuery.startsWith(EMOJI_MENTION_MARKER)) {\n return [];\n }\n // If the repository plugin is not available, return an empty feed to avoid confusion. See: #17842.\n if (!this._isEmojiRepositoryAvailable) {\n return [];\n }\n const emojis = this.emojiRepositoryPlugin.getEmojiByQuery(searchQuery).map((emoji)=>{\n let text = emoji.skins[this._skinTone] || emoji.skins.default;\n if (this.emojiPickerPlugin) {\n text = emoji.skins[this.emojiPickerPlugin.skinTone] || emoji.skins.default;\n }\n return {\n id: `:${emoji.annotation}:`,\n text\n };\n });\n if (!this.emojiPickerPlugin) {\n return emojis.slice(0, this._emojiDropdownLimit);\n }\n const actionItem = {\n id: searchQuery.length > 1 ? EMOJI_SHOW_ALL_OPTION_ID : EMOJI_HINT_OPTION_ID\n };\n return [\n ...emojis.slice(0, this._emojiDropdownLimit - 1),\n actionItem\n ];\n };\n }\n}\n\n/**\n * Command that shows the emoji user interface.\n */ class EmojiCommand extends Command {\n /**\n\t * Updates the command's {@link #isEnabled} based on the current selection.\n\t */ refresh() {\n const editor = this.editor;\n const model = editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n this.isEnabled = schema.checkChild(selection.getFirstPosition(), '$text');\n }\n /**\n\t * Opens emoji user interface for the current document selection.\n\t *\n\t * @fires execute\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */ execute(searchValue = '') {\n const emojiPickerPlugin = this.editor.plugins.get('EmojiPicker');\n emojiPickerPlugin.showUI(searchValue);\n }\n}\n\n/**\n * A grid of emoji tiles. It allows browsing emojis and selecting them to be inserted into the content.\n */ class EmojiGridView extends View {\n /**\n\t * A collection of the child tile views. Each tile represents a particular emoji.\n\t */ tiles;\n /**\n\t * Tracks information about the DOM focus in the grid.\n\t */ focusTracker;\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes;\n /**\n\t * An array containing all emojis grouped by their categories.\n\t */ emojiCategories;\n /**\n\t * A collection of all already created tile views. Each tile represents a particular emoji.\n\t * The cached tiles collection is used for efficiency purposes to avoid re-creating a particular\n\t * tile again when the grid view has changed.\n\t */ cachedTiles;\n /**\n\t * A callback used to filter grid items by a specified query.\n\t */ _getEmojiByQuery;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { categoryName, emojiCategories, getEmojiByQuery, skinTone }){\n super(locale);\n this.set('isEmpty', true);\n this.set('categoryName', categoryName);\n this.set('skinTone', skinTone);\n this.tiles = this.createCollection();\n this.cachedTiles = this.createCollection();\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this._getEmojiByQuery = getEmojiByQuery;\n this.emojiCategories = emojiCategories;\n const bind = this.bindTemplate;\n this.setTemplate({\n tag: 'div',\n children: [\n {\n tag: 'div',\n attributes: {\n role: 'grid',\n class: [\n 'ck',\n 'ck-emoji__grid'\n ]\n },\n children: this.tiles\n }\n ],\n attributes: {\n role: 'tabpanel',\n class: [\n 'ck',\n 'ck-emoji__tiles',\n // To avoid issues with focus cycling, ignore a grid when it's empty.\n bind.if('isEmpty', 'ck-hidden', (value)=>value)\n ]\n }\n });\n addKeyboardHandlingForGrid({\n keystrokeHandler: this.keystrokes,\n focusTracker: this.focusTracker,\n gridItems: this.tiles,\n numberOfColumns: ()=>global.window.getComputedStyle(this.element.firstChild) // Responsive `.ck-emoji-grid__tiles`.\n .getPropertyValue('grid-template-columns').split(' ').length,\n uiLanguageDirection: this.locale && this.locale.uiLanguageDirection\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.keystrokes.destroy();\n this.focusTracker.destroy();\n }\n /**\n\t * Focuses the first focusable in {@link ~EmojiGridView#tiles} if available.\n\t */ focus() {\n const firstTile = this.tiles.first;\n if (firstTile) {\n firstTile.focus();\n }\n }\n /**\n\t * Filters the grid view by the given regular expression.\n\t *\n\t * It filters either by the pattern or an emoji category, but never both.\n\t *\n\t * @param pattern Expression to search or `null` when filter by category name.\n\t */ filter(pattern) {\n const { matchingItems, allItems } = pattern ? this._getItemsByQuery(pattern.source) : this._getItemsByCategory();\n this._updateGrid(matchingItems);\n this.set('isEmpty', matchingItems.length === 0);\n return {\n resultsCount: matchingItems.length,\n totalItemsCount: allItems.length\n };\n }\n /**\n\t * Filters emojis to show based on the specified query phrase.\n\t *\n\t * @param query A query used to filter the grid.\n\t */ _getItemsByQuery(query) {\n return {\n matchingItems: this._getEmojiByQuery(query),\n allItems: this.emojiCategories.flatMap((group)=>group.items)\n };\n }\n /**\n\t * Returns emojis that belong to the specified category.\n\t */ _getItemsByCategory() {\n const emojiCategory = this.emojiCategories.find((item)=>item.title === this.categoryName);\n const { items } = emojiCategory;\n return {\n matchingItems: items,\n allItems: items\n };\n }\n /**\n\t * Updates the grid by removing the existing items and insert the new ones.\n\t *\n\t * @param items An array of items to insert.\n\t */ _updateGrid(items) {\n // Clean-up.\n [\n ...this.tiles\n ].forEach((item)=>{\n this.focusTracker.remove(item);\n this.tiles.remove(item);\n });\n items// Create tiles from matching results.\n .map((item)=>{\n const emoji = item.skins[this.skinTone] || item.skins.default;\n return this.cachedTiles.get(emoji) || this._createTile(emoji, item.annotation);\n })// Insert new elements.\n .forEach((item)=>{\n this.tiles.add(item);\n this.focusTracker.add(item);\n });\n }\n /**\n\t * Creates a new tile for the grid. Created tile is added to the {@link #cachedTiles} collection for further usage, if needed.\n\t *\n\t * @param emoji The emoji itself.\n\t * @param name The name of the emoji (e.g. \"Smiling Face with Smiling Eyes\").\n\t */ _createTile(emoji, name) {\n const tile = new ButtonView(this.locale);\n tile.viewUid = emoji;\n tile.extendTemplate({\n attributes: {\n class: [\n 'ck-emoji__tile'\n ]\n }\n });\n tile.set({\n label: emoji,\n tooltip: name,\n withText: true,\n ariaLabel: name,\n // To improve accessibility, disconnect a button and its label connection so that screen\n // readers can read the `[aria-label]` attribute directly from the more descriptive button.\n ariaLabelledBy: undefined\n });\n tile.on('execute', ()=>{\n this.fire('execute', {\n name,\n emoji\n });\n });\n this.cachedTiles.add(tile);\n return tile;\n }\n}\n\n/**\n * A class representing the navigation part of the emoji UI.\n * It is responsible allowing the user to select a particular emoji category.\n */ class EmojiCategoriesView extends View {\n /**\n\t * Tracks information about the DOM focus in the grid.\n\t */ focusTracker;\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes;\n /**\n\t * Helps cycling over focusable children in the input view.\n\t */ focusCycler;\n /**\n\t * A collection of the categories buttons.\n\t */ buttonViews;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { emojiCategories, categoryName }){\n super(locale);\n this.buttonViews = this.createCollection(emojiCategories.map((emojiCategory)=>this._createCategoryButton(emojiCategory)));\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this.focusCycler = new FocusCycler({\n focusables: this.buttonViews,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n focusPrevious: 'arrowleft',\n focusNext: 'arrowright'\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-emoji__categories-list'\n ],\n role: 'tablist'\n },\n children: this.buttonViews\n });\n this.on('change:categoryName', (event, name, newValue, oldValue)=>{\n const oldCategoryButton = this.buttonViews.find((button)=>button.tooltip === oldValue);\n if (oldCategoryButton) {\n oldCategoryButton.isOn = false;\n }\n const newCategoryButton = this.buttonViews.find((button)=>button.tooltip === newValue);\n newCategoryButton.isOn = true;\n });\n this.set('categoryName', categoryName);\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.buttonViews.forEach((buttonView)=>{\n this.focusTracker.add(buttonView);\n });\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n this.buttonViews.destroy();\n }\n /**\n\t * @inheritDoc\n\t */ focus() {\n this.buttonViews.first.focus();\n }\n /**\n\t * Marks all categories buttons as enabled (clickable).\n\t */ enableCategories() {\n this.buttonViews.forEach((buttonView)=>{\n buttonView.isEnabled = true;\n });\n }\n /**\n\t * Marks all categories buttons as disabled (non-clickable).\n\t */ disableCategories() {\n this.buttonViews.forEach((buttonView)=>{\n buttonView.set({\n class: '',\n isEnabled: false,\n isOn: false\n });\n });\n }\n /**\n\t * Creates a button representing a category item.\n\t */ _createCategoryButton(emojiCategory) {\n const buttonView = new ButtonView();\n const bind = buttonView.bindTemplate;\n // A `[role=\"tab\"]` element requires also the `[aria-selected]` attribute with its state.\n buttonView.extendTemplate({\n attributes: {\n 'aria-selected': bind.to('isOn', (value)=>value.toString()),\n class: [\n 'ck-emoji__category-item'\n ]\n }\n });\n buttonView.set({\n ariaLabel: emojiCategory.title,\n label: emojiCategory.icon,\n role: 'tab',\n tooltip: emojiCategory.title,\n withText: true,\n // To improve accessibility, disconnect a button and its label connection so that screen\n // readers can read the `[aria-label]` attribute directly from the more descriptive button.\n ariaLabelledBy: undefined\n });\n buttonView.on('execute', ()=>{\n this.categoryName = emojiCategory.title;\n });\n buttonView.on('change:isEnabled', ()=>{\n if (buttonView.isEnabled && buttonView.tooltip === this.categoryName) {\n buttonView.isOn = true;\n }\n });\n return buttonView;\n }\n}\n\n/**\n * A view responsible for providing an input element that allows filtering emoji by the provided query.\n */ class EmojiSearchView extends View {\n /**\n\t * The find in text input view that stores the searched string.\n\t */ inputView;\n /**\n\t * An instance of the `EmojiGridView`.\n\t */ gridView;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { gridView, resultsView }){\n super(locale);\n this.gridView = gridView;\n const t = locale.t;\n this.inputView = new SearchTextView(this.locale, {\n queryView: {\n label: t('Find an emoji (min. 2 characters)'),\n creator: createLabeledInputText\n },\n filteredView: this.gridView,\n infoView: {\n instance: resultsView\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-search'\n ],\n tabindex: '-1'\n },\n children: [\n this.inputView.queryView\n ]\n });\n // Pass through the `search` event to handle it by a parent view.\n this.inputView.delegate('search').to(this);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.inputView.destroy();\n }\n /**\n\t * Searches the {@link #gridView} for the given query.\n\t *\n\t * @param query The search query string.\n\t */ search(query) {\n const regExp = query ? new RegExp(escapeRegExp(query), 'ig') : null;\n const filteringResults = this.gridView.filter(regExp);\n this.inputView.fire('search', {\n query,\n ...filteringResults\n });\n }\n /**\n\t * Allows defining the default value in the search text field.\n\t *\n\t * @param value The new value.\n\t */ setInputValue(value) {\n if (!value) {\n this.inputView.queryView.fieldView.reset();\n } else {\n this.inputView.queryView.fieldView.value = value;\n }\n }\n /**\n\t * Returns an input provided by a user in the search text field.\n\t */ getInputValue() {\n return this.inputView.queryView.fieldView.element.value;\n }\n /**\n\t * @inheritDoc\n\t */ focus() {\n this.inputView.focus();\n }\n}\n\n/**\n * A view responsible for selecting a skin tone for an emoji.\n */ class EmojiToneView extends View {\n /**\n\t * A dropdown element for selecting an active skin tone.\n\t */ dropdownView;\n /**\n\t * An array of available skin tones.\n\t */ _skinTones;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { skinTone, skinTones }){\n super(locale);\n this.set('skinTone', skinTone);\n this._skinTones = skinTones;\n const t = locale.t;\n const accessibleLabel = t('Select skin tone');\n const dropdownView = createDropdown(locale);\n const itemDefinitions = new Collection();\n for (const { id, icon, tooltip } of this._skinTones){\n const def = {\n type: 'button',\n model: new ViewModel({\n value: id,\n label: icon,\n ariaLabel: tooltip,\n tooltip,\n tooltipPosition: 'e',\n role: 'menuitemradio',\n withText: true,\n // To improve accessibility, disconnect a button and its label connection so that screen\n // readers can read the `[aria-label]` attribute directly from the more descriptive button.\n ariaLabelledBy: undefined\n })\n };\n def.model.bind('isOn').to(this, 'skinTone', (value)=>value === id);\n itemDefinitions.add(def);\n }\n addListToDropdown(dropdownView, itemDefinitions, {\n ariaLabel: accessibleLabel,\n role: 'menu'\n });\n dropdownView.buttonView.set({\n label: this._getSkinTone().icon,\n ariaLabel: accessibleLabel,\n ariaLabelledBy: undefined,\n isOn: false,\n withText: true,\n tooltip: accessibleLabel\n });\n this.dropdownView = dropdownView;\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', (evt)=>{\n this.skinTone = evt.source.value;\n });\n dropdownView.buttonView.bind('label').to(this, 'skinTone', ()=>{\n return this._getSkinTone().icon;\n });\n dropdownView.buttonView.bind('ariaLabel').to(this, 'skinTone', ()=>{\n // Render a current state, but also what the dropdown does.\n return `${this._getSkinTone().tooltip}, ${accessibleLabel}`;\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-emoji__skin-tone'\n ]\n },\n children: [\n dropdownView\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ focus() {\n this.dropdownView.buttonView.focus();\n }\n /**\n\t * Helper method for receiving an object describing the active skin tone.\n\t */ _getSkinTone() {\n return this._skinTones.find((tone)=>tone.id === this.skinTone);\n }\n}\n\n/**\n * A view that glues pieces of the emoji panel together.\n */ class EmojiPickerView extends View {\n /**\n\t * A collection of the focusable children of the view.\n\t */ items;\n /**\n\t * Tracks information about the DOM focus in the view.\n\t */ focusTracker;\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes;\n /**\n\t * Helps cycling over focusable {@link #items} in the view.\n\t */ focusCycler;\n /**\n\t * An instance of the `EmojiSearchView`.\n\t */ searchView;\n /**\n\t * An instance of the `EmojiToneView`.\n\t */ toneView;\n /**\n\t * An instance of the `EmojiCategoriesView`.\n\t */ categoriesView;\n /**\n\t * An instance of the `EmojiGridView`.\n\t */ gridView;\n /**\n\t * An instance of the `EmojiGridView`.\n\t */ infoView;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { emojiCategories, getEmojiByQuery, skinTone, skinTones }){\n super(locale);\n const categoryName = emojiCategories[0].title;\n this.gridView = new EmojiGridView(locale, {\n categoryName,\n emojiCategories,\n getEmojiByQuery,\n skinTone\n });\n this.infoView = new SearchInfoView();\n this.searchView = new EmojiSearchView(locale, {\n gridView: this.gridView,\n resultsView: this.infoView\n });\n this.categoriesView = new EmojiCategoriesView(locale, {\n emojiCategories,\n categoryName\n });\n this.toneView = new EmojiToneView(locale, {\n skinTone,\n skinTones\n });\n this.items = this.createCollection([\n this.searchView,\n this.toneView,\n this.categoriesView,\n this.gridView,\n this.infoView\n ]);\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this.focusCycler = new FocusCycler({\n focusables: this.items,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n focusPrevious: 'shift + tab',\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'div',\n children: [\n {\n tag: 'div',\n children: [\n this.searchView,\n this.toneView\n ],\n attributes: {\n class: [\n 'ck',\n 'ck-emoji__search'\n ]\n }\n },\n this.categoriesView,\n this.gridView,\n {\n tag: 'div',\n children: [\n this.infoView\n ],\n attributes: {\n class: [\n 'ck',\n 'ck-search__results'\n ]\n }\n }\n ],\n attributes: {\n tabindex: '-1',\n class: [\n 'ck',\n 'ck-emoji',\n 'ck-search'\n ]\n }\n });\n this._setupEventListeners();\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.focusTracker.add(this.searchView.element);\n this.focusTracker.add(this.toneView.element);\n this.focusTracker.add(this.categoriesView.element);\n this.focusTracker.add(this.gridView.element);\n this.focusTracker.add(this.infoView.element);\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the search input.\n\t */ focus() {\n this.searchView.focus();\n }\n /**\n\t * Initializes interactions between sub-views.\n\t */ _setupEventListeners() {\n const t = this.locale.t;\n // Disable the category switcher when filtering by a query.\n this.searchView.on('search', (evt, data)=>{\n if (data.query) {\n this.categoriesView.disableCategories();\n } else {\n this.categoriesView.enableCategories();\n }\n });\n // Show a user-friendly message depending on the search query.\n this.searchView.on('search', (evt, data)=>{\n if (data.query.length === 1) {\n this.infoView.set({\n primaryText: t('Keep on typing to see the emoji.'),\n secondaryText: t('The query must contain at least two characters.'),\n isVisible: true\n });\n } else if (!data.resultsCount) {\n this.infoView.set({\n primaryText: t('No emojis were found matching \"%0\".', data.query),\n secondaryText: t('Please try a different phrase or check the spelling.'),\n isVisible: true\n });\n } else {\n this.infoView.set({\n isVisible: false\n });\n }\n });\n // Emit an update event to react to balloon dimensions changes.\n this.searchView.on('search', ()=>{\n this.fire('update');\n this.gridView.element.scrollTo(0, 0);\n });\n // Update the grid of emojis when the selected category is changed.\n this.categoriesView.on('change:categoryName', (ev, args, categoryName)=>{\n this.gridView.categoryName = categoryName;\n this.searchView.search('');\n });\n // Update the grid of emojis when the selected skin tone is changed.\n // In such a case, the displayed emoji should use an updated skin tone value.\n this.toneView.on('change:skinTone', (evt, propertyName, newValue)=>{\n this.gridView.skinTone = newValue;\n this.searchView.search(this.searchView.getInputValue());\n });\n }\n}\n\n/**\n * The emoji picker form view.\n */ class EmojiPickerFormView extends View {\n /**\n\t * The Back button view displayed in the header.\n\t */ backButtonView;\n /**\n\t * Tracks information about DOM focus in the form.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * A collection of child views.\n\t */ children;\n /**\n\t * A collection of views that can be focused in the form.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */ _focusCycler;\n /**\n\t * Creates an instance of the {@link module:emoji/ui/emojipickerformview~EmojiPickerFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t */ constructor(locale){\n super(locale);\n this.backButtonView = this._createBackButton();\n this.children = this.createCollection([\n this._createHeaderView()\n ]);\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backward using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-form',\n 'ck-emoji-picker-form',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: this.children\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n const childViews = [\n ...this.children.filter(isFocusable),\n this.backButtonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n // Register the view in the focus cycler to avoid nested focus cycles traps.\n if (isViewWithFocusCycler(v)) {\n this._focusCycler.chain(v.focusCycler);\n }\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */ focus() {\n this._focusCycler.focusFirst();\n }\n /**\n\t * Creates a back button view that cancels the form.\n\t */ _createBackButton() {\n const t = this.locale.t;\n const backButton = new ButtonView(this.locale);\n backButton.set({\n class: 'ck-button-back',\n label: t('Back'),\n icon: IconPreviousArrow,\n tooltip: true\n });\n backButton.delegate('execute').to(this, 'cancel');\n return backButton;\n }\n /**\n\t * Creates a header view for the form.\n\t */ _createHeaderView() {\n const t = this.locale.t;\n const header = new FormHeaderView(this.locale, {\n label: t('Emoji picker')\n });\n header.children.add(this.backButtonView, 0);\n return header;\n }\n}\n\nconst VISUAL_SELECTION_MARKER_NAME = 'emoji-picker';\n/**\n * The emoji picker plugin.\n *\n * Introduces the `'emoji'` dropdown.\n */ class EmojiPicker extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiRepository,\n ContextualBalloon,\n Dialog,\n Typing\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiPicker';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ async init() {\n const editor = this.editor;\n this.balloonPlugin = editor.plugins.get('ContextualBalloon');\n this.emojiRepositoryPlugin = editor.plugins.get('EmojiRepository');\n // Skip registering a button in the toolbar and list item in the menu bar if the emoji repository is not ready.\n if (!await this.emojiRepositoryPlugin.isReady()) {\n return;\n }\n const command = new EmojiCommand(editor);\n editor.commands.add('emoji', command);\n editor.ui.componentFactory.add('emoji', ()=>{\n const button = this._createButton(ButtonView, command);\n button.set({\n tooltip: true\n });\n return button;\n });\n editor.ui.componentFactory.add('menuBar:emoji', ()=>{\n return this._createButton(MenuBarMenuListItemButtonView, command);\n });\n this._setupConversion();\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n if (this.emojiPickerView) {\n this.emojiPickerView.destroy();\n }\n }\n /**\n\t * Represents an active skin tone. Its value depends on the emoji UI plugin.\n\t *\n\t * Before opening the UI for the first time, the returned value is read from the editor configuration.\n\t * Otherwise, it reflects the user's intention.\n\t */ get skinTone() {\n if (!this.emojiPickerView) {\n return this.editor.config.get('emoji.skinTone');\n }\n return this.emojiPickerView.gridView.skinTone;\n }\n /**\n\t * Displays the balloon with the emoji picker.\n\t *\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */ showUI(searchValue = '') {\n // Show visual selection on a text when the contextual balloon is displayed.\n // See #17654.\n this._showFakeVisualSelection();\n if (!this.emojiPickerView) {\n this.emojiPickerView = this._createEmojiPickerView();\n }\n if (searchValue) {\n this.emojiPickerView.searchView.setInputValue(searchValue);\n }\n this.emojiPickerView.searchView.search(searchValue);\n if (!this.emojiPickerFormView) {\n this.emojiPickerFormView = this._createEmojiPickerFormView();\n }\n if (!this.balloonPlugin.hasView(this.emojiPickerFormView)) {\n // Show back button if there is another balloon view visible.\n this.emojiPickerFormView.backButtonView.isVisible = !!this.balloonPlugin.visibleView;\n this.balloonPlugin.add({\n view: this.emojiPickerFormView,\n position: this._getBalloonPositionData(),\n balloonClassName: 'ck-emoji-picker-balloon'\n });\n }\n this.emojiPickerView.focus();\n }\n /**\n\t * Creates a button for toolbar and menu bar that will show the emoji dialog.\n\t */ _createButton(ViewClass, command) {\n const buttonView = new ViewClass(this.editor.locale);\n const t = this.editor.locale.t;\n buttonView.bind('isEnabled').to(command, 'isEnabled');\n buttonView.set({\n label: t('Emoji'),\n icon: IconEmoji,\n isToggleable: true\n });\n buttonView.on('execute', ()=>{\n this.editor.editing.view.scrollToTheSelection();\n this.showUI();\n });\n return buttonView;\n }\n /**\n\t * Creates an instance of the `EmojiPickerView` class that represents an emoji balloon.\n\t */ _createEmojiPickerView() {\n const emojiPickerView = new EmojiPickerView(this.editor.locale, {\n emojiCategories: this.emojiRepositoryPlugin.getEmojiCategories(),\n skinTone: this.editor.config.get('emoji.skinTone'),\n skinTones: this.emojiRepositoryPlugin.getSkinTones(),\n getEmojiByQuery: (query)=>{\n return this.emojiRepositoryPlugin.getEmojiByQuery(query);\n }\n });\n // Insert an emoji on a tile click.\n this.listenTo(emojiPickerView.gridView, 'execute', (evt, data)=>{\n const editor = this.editor;\n const textToInsert = data.emoji;\n this._hideUI();\n editor.execute('insertText', {\n text: textToInsert\n });\n });\n return emojiPickerView;\n }\n /**\n\t * Creates an instance of the `EmojiPickerFormView` class that represents a balloon with the emoji picker.\n\t */ _createEmojiPickerFormView() {\n const emojiPickerFormView = new EmojiPickerFormView(this.editor.locale);\n emojiPickerFormView.children.add(this.emojiPickerView);\n // Update the balloon position when layout is changed.\n this.listenTo(this.emojiPickerView, 'update', ()=>{\n if (this.balloonPlugin.visibleView === emojiPickerFormView) {\n this.balloonPlugin.updatePosition();\n }\n });\n // Close the dialog when the back button is clicked.\n this.listenTo(emojiPickerFormView, 'cancel', ()=>{\n this._hideUI();\n });\n // Close the panel on `Esc` key press when the **actions have focus**.\n emojiPickerFormView.keystrokes.set('Esc', (data, cancel)=>{\n this._hideUI();\n cancel();\n });\n // Close the dialog when clicking outside of it.\n clickOutsideHandler({\n emitter: emojiPickerFormView,\n contextElements: [\n this.balloonPlugin.view.element\n ],\n callback: ()=>{\n // Focusing on the editable during a click outside the balloon panel might\n // cause the selection to move to the beginning of the editable, so we avoid\n // focusing on it during this action.\n // See: https://github.com/ckeditor/ckeditor5/issues/18253\n this._hideUI(false);\n },\n activator: ()=>this.balloonPlugin.visibleView === emojiPickerFormView\n });\n return emojiPickerFormView;\n }\n /**\n\t * Hides the balloon with the emoji picker.\n\t *\n\t * @param updateFocus Whether to focus the editor after closing the emoji picker.\n\t */ _hideUI(updateFocus = true) {\n this.balloonPlugin.remove(this.emojiPickerFormView);\n this.emojiPickerView.searchView.setInputValue('');\n if (updateFocus) {\n this.editor.editing.view.focus();\n }\n this._hideFakeVisualSelection();\n }\n /**\n\t * Registers converters.\n\t */ _setupConversion() {\n const editor = this.editor;\n // Renders a fake visual selection marker on an expanded selection.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n classes: [\n 'ck-fake-emoji-selection'\n ]\n }\n });\n // Renders a fake visual selection marker on a collapsed selection.\n editor.conversion.for('editingDowncast').markerToElement({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: (data, { writer })=>{\n if (!data.markerRange.isCollapsed) {\n return null;\n }\n const markerElement = writer.createUIElement('span');\n writer.addClass([\n 'ck-fake-emoji-selection',\n 'ck-fake-emoji-selection_collapsed'\n ], markerElement);\n return markerElement;\n }\n });\n }\n /**\n\t * Returns positioning options for the {@link #balloonPlugin}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */ _getBalloonPositionData() {\n const view = this.editor.editing.view;\n const viewDocument = view.document;\n // Set a target position by converting view selection range to DOM.\n const target = ()=>view.domConverter.viewRangeToDom(viewDocument.selection.getFirstRange());\n return {\n target\n };\n }\n /**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds an 'emoji-picker' marker into the document that is rendered as a highlight on selected text fragment.\n\t */ _showFakeVisualSelection() {\n const model = this.editor.model;\n model.change((writer)=>{\n const range = model.document.selection.getFirstRange();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n writer.updateMarker(VISUAL_SELECTION_MARKER_NAME, {\n range\n });\n } else {\n if (range.start.isAtEnd) {\n const startPosition = range.start.getLastMatchingPosition(({ item })=>!model.schema.isContent(item), {\n boundaries: range\n });\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(startPosition, range.end)\n });\n } else {\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range\n });\n }\n }\n });\n }\n /**\n\t * Hides the fake visual selection.\n\t */ _hideFakeVisualSelection() {\n const model = this.editor.model;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n model.change((writer)=>{\n writer.removeMarker(VISUAL_SELECTION_MARKER_NAME);\n });\n }\n }\n}\n\n/**\n * The emoji plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:emoji/emojimention~EmojiMention},\n * * {@link module:emoji/emojipicker~EmojiPicker},\n */ class Emoji extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiMention,\n EmojiPicker\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Emoji';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Emoji, EmojiCommand, EmojiMention, EmojiPicker, EmojiRepository, EmojiUtils };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2023, Koala Interactive SAS\n * For licensing, see https://github.com/koala-interactive/is-emoji-supported/blob/master/LICENSE.md\n */\n\n/**\n * @module emoji/utils/isemojisupported\n */\n\n/**\n * Checks if the two pixels parts are the same using canvas.\n */\nexport default function isEmojiSupported( unicode: string ): boolean {\n\tconst ctx = getCanvas();\n\n\t/* istanbul ignore next -- @preserve */\n\tif ( !ctx ) {\n\t\treturn false;\n\t}\n\n\tconst CANVAS_HEIGHT = 25;\n\tconst CANVAS_WIDTH = 20;\n\tconst textSize = Math.floor( CANVAS_HEIGHT / 2 );\n\n\t// Initialize canvas context.\n\tctx.font = textSize + 'px Arial, Sans-Serif';\n\tctx.textBaseline = 'top';\n\tctx.canvas.width = CANVAS_WIDTH * 2;\n\tctx.canvas.height = CANVAS_HEIGHT;\n\n\tctx.clearRect( 0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT );\n\n\t// Draw in red on the left.\n\tctx.fillStyle = '#FF0000';\n\tctx.fillText( unicode, 0, 22 );\n\n\t// Draw in blue on right.\n\tctx.fillStyle = '#0000FF';\n\tctx.fillText( unicode, CANVAS_WIDTH, 22 );\n\n\tconst a = ctx.getImageData( 0, 0, CANVAS_WIDTH, CANVAS_HEIGHT ).data;\n\tconst count = a.length;\n\tlet i = 0;\n\n\t// Search the first visible pixel.\n\tfor ( ; i < count && !a[ i + 3 ]; i += 4 );\n\n\t// No visible pixel.\n\t/* istanbul ignore next -- @preserve */\n\tif ( i >= count ) {\n\t\treturn false;\n\t}\n\n\t// Emoji has immutable color, so we check the color of the emoji in two different colors.\n\t// the result show be the same.\n\tconst x = CANVAS_WIDTH + ( ( i / 4 ) % CANVAS_WIDTH );\n\tconst y = Math.floor( i / 4 / CANVAS_WIDTH );\n\tconst b = ctx.getImageData( x, y, 1, 1 ).data;\n\n\t/* istanbul ignore next -- @preserve */\n\tif ( a[ i ] !== b[ 0 ] || a[ i + 2 ] !== b[ 2 ]) {\n\t\treturn false;\n\t}\n\n\t//Some emojis consist of different ones, so they will show multiple characters if they are not supported.\n\t/* istanbul ignore next -- @preserve */\n\tif ( ctx.measureText( unicode ).width >= CANVAS_WIDTH ) {\n\t\treturn false;\n\t}\n\n\t// Supported.\n\treturn true;\n};\n\nfunction getCanvas(): CanvasRenderingContext2D | null {\n\ttry {\n\t\treturn document.createElement( 'canvas' ).getContext( '2d', { willReadFrequently: true } );\n\t} catch {\n\t\t/* istanbul ignore next -- @preserve */\n\t\treturn null;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { EmojiCdnResource, EmojiEntry } from './emojirepository.js';\nimport type { SkinToneId } from './emojiconfig.js';\nimport isEmojiSupported from './utils/isemojisupported.js';\n\n/**\n * @module emoji/emojiutils\n */\n\nconst SKIN_TONE_MAP: Record<number, SkinToneId> = {\n\t0: 'default',\n\t1: 'light',\n\t2: 'medium-light',\n\t3: 'medium',\n\t4: 'medium-dark',\n\t5: 'dark'\n};\n\n/**\n * A map representing an emoji and its release version.\n * It's used to identify a user's minimal supported emoji level.\n * We skip versions with older patches, such as 15.0 instead of 15.1 etc.\n */\nconst EMOJI_SUPPORT_LEVEL: Record<string, number> = {\n\t'': 16, // Face with bags under eyes.\n\t'🫨': 15.1, // Shaking Face.\n\t'🫠': 14, // Melting Face.\n\t'😶🌫️': 13.1, // Face in Clouds.\n\t'🧑💻': 12.1, // Technologist.\n\t'🥰': 11, // Smiling Face with Hearts.\n\t'🤪': 5, // Zany Face.\n\t'⚕️': 4, // Medical Symbol.\n\t'🤣': 3, // Rolling on the Floor Laughing.\n\t'👋🏽': 2, // Waving Hand: Medium Skin Tone.\n\t'😀': 1, // Grinning Face.\n\t'😐': 0.7, // Neutral Face.\n\t'😂': 0.6 // Face with Tears of Joy.\n};\n\nconst BASELINE_EMOJI_WIDTH = 24;\n\n/**\n * The Emoji utilities plugin.\n */\nexport default class EmojiUtils extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiUtils' 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 * Checks if the emoji is supported by verifying the emoji version supported by the system first.\n\t * Then checks if emoji contains a zero width joiner (ZWJ), and if yes, then checks if it is supported by the system.\n\t */\n\tpublic isEmojiSupported( item: EmojiCdnResource, emojiSupportedVersionByOs: number, container: HTMLDivElement ): boolean {\n\t\tconst isEmojiVersionSupported = item.version <= emojiSupportedVersionByOs;\n\n\t\tif ( !isEmojiVersionSupported ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !this.hasZwj( item.emoji ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.isEmojiZwjSupported( item, container );\n\t}\n\n\t/**\n\t * Checks the supported emoji version by the OS, by sampling some representatives from different emoji releases.\n\t */\n\tpublic getEmojiSupportedVersionByOs(): number {\n\t\tfor ( const [ emoji, emojiVersion ] of Object.entries( EMOJI_SUPPORT_LEVEL ) ) {\n\t\t\tif ( EmojiUtils._isEmojiSupported( emoji ) ) {\n\t\t\t\treturn emojiVersion;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Check for ZWJ (zero width joiner) character.\n\t */\n\tpublic hasZwj( emoji: string ): boolean {\n\t\treturn emoji.includes( '\\u200d' );\n\t}\n\n\t/**\n\t * Checks whether the emoji is supported in the operating system.\n\t */\n\tpublic isEmojiZwjSupported( item: EmojiCdnResource, container: HTMLDivElement ): boolean {\n\t\tconst emojiWidth = this.getNodeWidth( container, item.emoji );\n\n\t\t// On Windows, some supported emoji are ~50% bigger than the baseline emoji, but what we really want to guard\n\t\t// against are the ones that are 2x the size, because those are truly broken (person with red hair = person with\n\t\t// floating red wig, black cat = cat with black square, polar bear = bear with snowflake, etc.)\n\t\t// So here we set the threshold at 1.8 times the size of the baseline emoji.\n\t\treturn emojiWidth < BASELINE_EMOJI_WIDTH * 1.8;\n\t}\n\n\t/**\n\t * Returns the width of the provided node.\n\t */\n\tpublic getNodeWidth( container: HTMLDivElement, node: string ): number {\n\t\tconst span = document.createElement( 'span' );\n\t\tspan.textContent = node;\n\t\tcontainer.appendChild( span );\n\t\tconst nodeWidth = span.offsetWidth;\n\t\tcontainer.removeChild( span );\n\n\t\treturn nodeWidth;\n\t}\n\n\t/**\n\t * Creates a div for emoji width testing purposes.\n\t */\n\tpublic createEmojiWidthTestingContainer(): HTMLDivElement {\n\t\tconst container = document.createElement( 'div' );\n\n\t\tcontainer.setAttribute( 'aria-hidden', 'true' );\n\t\tcontainer.style.position = 'absolute';\n\t\tcontainer.style.left = '-9999px';\n\t\tcontainer.style.whiteSpace = 'nowrap';\n\t\tcontainer.style.fontSize = BASELINE_EMOJI_WIDTH + 'px';\n\n\t\treturn container;\n\t}\n\n\t/**\n\t * Adds default skin tone property to each emoji. If emoji defines other skin tones, they are added as well.\n\t */\n\tpublic normalizeEmojiSkinTone( item: EmojiCdnResource ): EmojiEntry {\n\t\tconst entry: EmojiEntry = {\n\t\t\t...item,\n\t\t\tskins: {\n\t\t\t\tdefault: item.emoji\n\t\t\t}\n\t\t};\n\n\t\tif ( item.skins ) {\n\t\t\titem.skins.forEach( skin => {\n\t\t\t\tconst skinTone = SKIN_TONE_MAP[ skin.tone ];\n\n\t\t\t\tentry.skins[ skinTone ] = skin.emoji;\n\t\t\t} );\n\t\t}\n\n\t\treturn entry;\n\t}\n\n\t/**\n\t * Checks whether the emoji belongs to a group that is allowed.\n\t */\n\tpublic isEmojiCategoryAllowed( item: EmojiCdnResource ): boolean {\n\t\t// Category group=2 contains skin tones only, which we do not want to render.\n\t\treturn item.group !== 2;\n\t}\n\n\t/**\n\t * A function used to determine if emoji is supported by detecting pixels.\n\t *\n\t * Referenced for unit testing purposes. Kept in a separate file because of licensing.\n\t */\n\tprivate static _isEmojiSupported = isEmojiSupported;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojirepository\n */\n\nimport fuzzysort from 'fuzzysort';\nimport { groupBy } from 'es-toolkit/compat';\n\nimport { type Editor, Plugin } from 'ckeditor5/src/core.js';\nimport { logWarning, version as editorVersion } from 'ckeditor5/src/utils.js';\nimport EmojiUtils from './emojiutils.js';\nimport type { SkinToneId } from './emojiconfig.js';\n\n// An endpoint from which the emoji data will be downloaded during plugin initialization.\n// The `{version}` placeholder is replaced with the value from editor config.\nconst DEFAULT_EMOJI_DATABASE_URL = 'https://cdn.ckeditor.com/ckeditor5/data/emoji/{version}/en.json';\n\nconst DEFAULT_EMOJI_VERSION = 16;\n\n/**\n * The emoji repository plugin.\n *\n * Loads the emoji repository from URL during plugin initialization and provides utility methods to search it.\n */\nexport default class EmojiRepository extends Plugin {\n\t/**\n\t * A callback to resolve the {@link #_repositoryPromise} to control the return value of this promise.\n\t */\n\tdeclare private _repositoryPromiseResolveCallback: ( value: boolean ) => void;\n\n\t/**\n\t * Emoji repository in a configured version.\n\t */\n\tprivate _items: Array<EmojiEntry> | null;\n\n\t/**\n\t * The resolved URL from which the emoji repository is downloaded.\n\t */\n\tprivate readonly _url: URL;\n\n\t/**\n\t * A promise resolved after downloading the emoji collection.\n\t * The promise resolves with `true` when the repository is successfully downloaded or `false` otherwise.\n\t */\n\tprivate readonly _repositoryPromise: Promise<boolean>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiRepository' 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\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'emoji', {\n\t\t\tversion: undefined,\n\t\t\tskinTone: 'default',\n\t\t\tdefinitionsUrl: undefined,\n\t\t\tuseCustomFont: false\n\t\t} );\n\n\t\tthis._url = this._getUrl();\n\n\t\tthis._repositoryPromise = new Promise<boolean>( resolve => {\n\t\t\tthis._repositoryPromiseResolveCallback = resolve;\n\t\t} );\n\n\t\tthis._items = null;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async init(): Promise<void> {\n\t\tthis._warnAboutCdnUse();\n\n\t\tawait this._loadAndCacheEmoji();\n\n\t\tthis._items = this._getItems();\n\n\t\tif ( !this._items ) {\n\t\t\t/**\n\t\t\t * Unable to identify the available emoji to display.\n\t\t\t *\n\t\t\t * See the {@glink features/emoji#troubleshooting troubleshooting} section in the {@glink features/emoji Emoji feature} guide\n\t\t\t * for more details.\n\t\t\t *\n\t\t\t * @error emoji-repository-empty\n\t\t\t */\n\t\t\tlogWarning( 'emoji-repository-empty' );\n\n\t\t\treturn this._repositoryPromiseResolveCallback( false );\n\t\t}\n\n\t\treturn this._repositoryPromiseResolveCallback( true );\n\t}\n\n\t/**\n\t * Returns an array of emoji entries that match the search query.\n\t * If the emoji repository is not loaded this method returns an empty array.\n\t *\n\t * @param searchQuery A search query to match emoji.\n\t * @returns An array of emoji entries that match the search query.\n\t */\n\tpublic getEmojiByQuery( searchQuery: string ): Array<EmojiEntry> {\n\t\tif ( !this._items ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst searchQueryTokens = searchQuery.split( /\\s/ ).filter( Boolean );\n\n\t\t// Perform the search only if there is at least two non-white characters next to each other.\n\t\tconst shouldSearch = searchQueryTokens.some( token => token.length >= 2 );\n\n\t\tif ( !shouldSearch ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn fuzzysort\n\t\t\t.go( searchQuery, this._items, {\n\t\t\t\tthreshold: 0.6,\n\t\t\t\tkeys: [\n\t\t\t\t\t'emoticon',\n\t\t\t\t\t'annotation',\n\t\t\t\t\t( emojiEntry: EmojiEntry ) => {\n\t\t\t\t\t\t// Instead of searching over all tags, let's use only those that matches the query.\n\t\t\t\t\t\t// It enables searching in tags with the space character in names.\n\t\t\t\t\t\tconst searchQueryTokens = searchQuery.split( /\\s/ ).filter( Boolean );\n\n\t\t\t\t\t\tconst matchedTags = searchQueryTokens.flatMap( tok => {\n\t\t\t\t\t\t\treturn emojiEntry.tags?.filter( t => t.startsWith( tok ) );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\treturn matchedTags.join();\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t} )\n\t\t\t.map( result => result.obj );\n\t}\n\n\t/**\n\t * Groups all emojis by categories.\n\t * If the emoji repository is not loaded, it returns an empty array.\n\t *\n\t * @returns An array of emoji entries grouped by categories.\n\t */\n\tpublic getEmojiCategories(): Array<EmojiCategory> {\n\t\tconst repository = this._getItems();\n\n\t\tif ( !repository ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst { t } = this.editor.locale;\n\n\t\tconst categories = [\n\t\t\t{ title: t( 'Smileys & Expressions' ), icon: '😄', groupId: 0 },\n\t\t\t{ title: t( 'Gestures & People' ), icon: '👋', groupId: 1 },\n\t\t\t{ title: t( 'Animals & Nature' ), icon: '🐻', groupId: 3 },\n\t\t\t{ title: t( 'Food & Drinks' ), icon: '🍎', groupId: 4 },\n\t\t\t{ title: t( 'Travel & Places' ), icon: '🚘', groupId: 5 },\n\t\t\t{ title: t( 'Activities' ), icon: '🏀', groupId: 6 },\n\t\t\t{ title: t( 'Objects' ), icon: '💡', groupId: 7 },\n\t\t\t{ title: t( 'Symbols' ), icon: '🔵', groupId: 8 },\n\t\t\t{ title: t( 'Flags' ), icon: '🏁', groupId: 9 }\n\t\t];\n\n\t\tconst groups = groupBy( repository, item => item.group );\n\n\t\treturn categories.map( category => {\n\t\t\treturn {\n\t\t\t\t...category,\n\t\t\t\titems: groups[ category.groupId ]\n\t\t\t};\n\t\t} );\n\t}\n\n\t/**\n\t * Returns an array of available skin tones.\n\t */\n\tpublic getSkinTones(): Array<SkinTone> {\n\t\tconst { t } = this.editor.locale;\n\n\t\treturn [\n\t\t\t{ id: 'default', icon: '👋', tooltip: t( 'Default skin tone' ) },\n\t\t\t{ id: 'light', icon: '👋🏻', tooltip: t( 'Light skin tone' ) },\n\t\t\t{ id: 'medium-light', icon: '👋🏼', tooltip: t( 'Medium Light skin tone' ) },\n\t\t\t{ id: 'medium', icon: '👋🏽', tooltip: t( 'Medium skin tone' ) },\n\t\t\t{ id: 'medium-dark', icon: '👋🏾', tooltip: t( 'Medium Dark skin tone' ) },\n\t\t\t{ id: 'dark', icon: '👋🏿', tooltip: t( 'Dark skin tone' ) }\n\t\t];\n\t}\n\n\t/**\n\t * Indicates whether the emoji repository has been successfully downloaded and the plugin is operational.\n\t */\n\tpublic isReady(): Promise<boolean> {\n\t\treturn this._repositoryPromise;\n\t}\n\n\t/**\n\t * Returns the URL from which the emoji repository is downloaded. If the URL is not provided\n\t * in the configuration, the default URL is used with the version from the configuration.\n\t *\n\t * If both the URL and version are provided, a warning is logged.\n\t */\n\tprivate _getUrl(): URL {\n\t\tconst { definitionsUrl, version } = this.editor.config.get( 'emoji' )!;\n\n\t\tif ( !definitionsUrl || definitionsUrl === 'cdn' ) {\n\t\t\t// URL was not provided or is set to 'cdn', so we use the default CDN URL.\n\t\t\tconst urlVersion = version || DEFAULT_EMOJI_VERSION;\n\t\t\tconst url = new URL( DEFAULT_EMOJI_DATABASE_URL.replace( '{version}', urlVersion.toString() ) );\n\n\t\t\turl.searchParams.set( 'editorVersion', editorVersion );\n\n\t\t\treturn url;\n\t\t}\n\n\t\tif ( version ) {\n\t\t\t/**\n\t\t\t * Both {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`} and\n\t\t\t * {@link module:emoji/emojiconfig~EmojiConfig#version `emoji.version`} configuration options\n\t\t\t * are set. Only the `emoji.definitionsUrl` option will be used.\n\t\t\t *\n\t\t\t * The `emoji.version` option will be ignored and should be removed from the configuration.\n\t\t\t *\n\t\t\t * @error emoji-repository-redundant-version\n\t\t\t */\n\t\t\tlogWarning( 'emoji-repository-redundant-version' );\n\t\t}\n\n\t\treturn new URL( definitionsUrl );\n\t}\n\n\t/**\n\t * Warn users on self-hosted installations that this plugin uses a CDN to fetch the emoji repository.\n\t */\n\tprivate _warnAboutCdnUse(): void {\n\t\tconst editor = this.editor;\n\t\tconst config = editor.config.get( 'emoji' );\n\t\tconst licenseKey = editor.config.get( 'licenseKey' );\n\t\tconst distributionChannel = ( window as any )[ Symbol.for( 'cke distribution' ) ];\n\n\t\tif ( licenseKey === 'GPL' ) {\n\t\t\t// Don't warn GPL users.\n\t\t\treturn;\n\t\t}\n\n\t\tif ( distributionChannel === 'cloud' ) {\n\t\t\t// Don't warn cloud users, because they already use our CDN.\n\t\t\treturn;\n\t\t}\n\n\t\tif ( config && config.definitionsUrl ) {\n\t\t\t// Don't warn users who have configured their own definitions URL.\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * It was detected that your installation uses a commercial license key,\n\t\t * and the default {@glink features/emoji#emoji-source CKEditor CDN for Emoji plugin data}.\n\t\t *\n\t\t * To avoid this, you can use the {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`}\n\t\t * configuration option to provide a URL to your own emoji repository.\n\t\t *\n\t\t * If you want to suppress this warning, while using the default CDN, set this configuration option to `cdn`.\n\t\t *\n\t\t * @error emoji-repository-cdn-use\n\t\t */\n\t\tlogWarning( 'emoji-repository-cdn-use' );\n\t}\n\n\t/**\n\t * Returns the emoji repository in a configured version if it is a non-empty array. Returns `null` otherwise.\n\t */\n\tprivate _getItems(): Array<EmojiEntry> | null {\n\t\tconst repository = EmojiRepository._results[ this._url.href ];\n\n\t\treturn repository && repository.length ? repository : null;\n\t}\n\n\t/**\n\t * Loads the emoji repository. If the repository is already loaded, it returns the cached result.\n\t * Otherwise, it fetches the repository from the URL and adds it to the cache.\n\t */\n\tprivate async _loadAndCacheEmoji(): Promise<void> {\n\t\tif ( EmojiRepository._results[ this._url.href ] ) {\n\t\t\t// The repository has already been downloaded.\n\t\t\treturn;\n\t\t}\n\n\t\tconst result: Array<EmojiCdnResource> = await fetch( this._url, { cache: 'force-cache' } )\n\t\t\t.then( response => {\n\t\t\t\tif ( !response.ok ) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\treturn response.json();\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\treturn [];\n\t\t\t} );\n\n\t\tEmojiRepository._results[ this._url.href ] = this._normalizeEmoji( result );\n\t}\n\n\t/**\n\t * Normalizes the raw data fetched from CDN. By normalization, we meant:\n\t *\n\t * * Filter out unsupported emoji (these that will not render correctly),\n\t * * Prepare skin tone variants if an emoji defines them.\n\t */\n\tprivate _normalizeEmoji( data: Array<EmojiCdnResource> ): Array<EmojiEntry> {\n\t\tconst editor = this.editor;\n\t\tconst useCustomFont = editor.config.get( 'emoji.useCustomFont' );\n\t\tconst emojiUtils = editor.plugins.get( 'EmojiUtils' );\n\n\t\tconst insertableEmoji = data.filter( item => emojiUtils.isEmojiCategoryAllowed( item ) );\n\n\t\t// When using a custom font, the feature does not filter any emoji.\n\t\tif ( useCustomFont ) {\n\t\t\treturn insertableEmoji.map( item => emojiUtils.normalizeEmojiSkinTone( item ) );\n\t\t}\n\n\t\tconst emojiSupportedVersionByOs = emojiUtils.getEmojiSupportedVersionByOs();\n\n\t\tconst container = emojiUtils.createEmojiWidthTestingContainer();\n\t\tdocument.body.appendChild( container );\n\n\t\tconst results = insertableEmoji\n\t\t\t.filter( item => emojiUtils.isEmojiSupported( item, emojiSupportedVersionByOs, container ) )\n\t\t\t.map( item => emojiUtils.normalizeEmojiSkinTone( item ) );\n\n\t\tcontainer.remove();\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Versioned emoji repository.\n\t */\n\tprivate static _results: {\n\t\t[ key in string ]?: Array<EmojiEntry>\n\t} = {};\n}\n\n/**\n * Represents a single group of the emoji category, e.g., \"Smileys & Expressions\".\n */\nexport type EmojiCategory = {\n\n\t/**\n\t * A name of the category.\n\t */\n\ttitle: string;\n\n\t/**\n\t * An example emoji representing items belonging to the category.\n\t */\n\ticon: string;\n\n\t/**\n\t * Group id used to assign {@link #items}.\n\t */\n\tgroupId: number;\n\n\t/**\n\t * An array of emojis.\n\t */\n\titems: Array<EmojiEntry>;\n};\n\n/**\n * Represents a single item fetched from the CDN.\n */\nexport type EmojiCdnResource = {\n\tannotation: string;\n\temoji: string;\n\tgroup: number;\n\torder: number;\n\tversion: number;\n\temoticon?: string;\n\tshortcodes?: Array<string>;\n\tskins?: Array<{\n\t\temoji: string;\n\t\ttone: number;\n\t\tversion: number;\n\t}>;\n\ttags?: Array<string>;\n};\n\n/**\n * Represents a single emoji item used by the Emoji feature.\n */\nexport type EmojiEntry = Omit<EmojiCdnResource, 'skins'> & {\n\tskins: EmojiMap;\n};\n\n/**\n * Represents mapping between a skin tone and its corresponding emoji.\n *\n * The `default` key is always present. Additional values are assigned only if an emoji supports skin tones.\n */\nexport type EmojiMap = { [K in Exclude<SkinToneId, 'default'>]?: string; } & {\n\tdefault: string;\n};\n\n/**\n * Represents an emoji skin tone variant.\n */\nexport type SkinTone = {\n\tid: SkinToneId;\n\ticon: string;\n\ttooltip: string;\n};\n\n/**\n * Unable to load the emoji repository from the URL.\n *\n * If the URL works properly and there is no disruption of communication, please check your\n * {@glink getting-started/setup/csp Content Security Policy (CSP)} setting and make sure\n * the URL connection is allowed by the editor.\n *\n * @error emoji-repository-load-failed\n */\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojimention\n */\n\nimport { logWarning, type LocaleTranslate } from 'ckeditor5/src/utils.js';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { Typing } from 'ckeditor5/src/typing.js';\nimport type { MentionFeed, MentionFeedObjectItem, ItemRenderer } from '@ckeditor/ckeditor5-mention';\n\nimport EmojiRepository from './emojirepository.js';\nimport type EmojiPicker from './emojipicker.js';\nimport type { SkinToneId } from './emojiconfig.js';\n\nconst EMOJI_MENTION_MARKER = ':';\nconst EMOJI_SHOW_ALL_OPTION_ID = ':__EMOJI_SHOW_ALL:';\nconst EMOJI_HINT_OPTION_ID = ':__EMOJI_HINT:';\n\n/**\n * The emoji mention plugin.\n *\n * Introduces the autocomplete of emojis while typing.\n */\nexport default class EmojiMention extends Plugin {\n\t/**\n\t * An instance of the {@link module:emoji/emojipicker~EmojiPicker} plugin if it is loaded in the editor.\n\t */\n\tdeclare public emojiPickerPlugin: EmojiPicker | null;\n\n\t/**\n\t * An instance of the {@link module:emoji/emojirepository~EmojiRepository} plugin.\n\t */\n\tdeclare public emojiRepositoryPlugin: EmojiRepository;\n\n\t/**\n\t * A flag that informs if the {@link module:emoji/emojirepository~EmojiRepository} plugin is loaded correctly.\n\t */\n\tdeclare private _isEmojiRepositoryAvailable: boolean;\n\n\t/**\n\t * Defines a number of displayed items in the auto complete dropdown.\n\t *\n\t * It includes the \"Show all emoji...\" option if the `EmojiPicker` plugin is loaded.\n\t */\n\tprivate readonly _emojiDropdownLimit: number;\n\n\t/**\n\t * Defines a skin tone that is set in the emoji config.\n\t */\n\tprivate readonly _skinTone: SkinToneId;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiRepository, Typing, 'Mention' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiMention' 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\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.editor.config.define( 'emoji', {\n\t\t\tdropdownLimit: 6\n\t\t} );\n\n\t\tthis._emojiDropdownLimit = editor.config.get( 'emoji.dropdownLimit' )!;\n\t\tthis._skinTone = editor.config.get( 'emoji.skinTone' )!;\n\n\t\tthis._setupMentionConfiguration( editor );\n\t}\n\n\t/**\n\t * Initializes the configuration for emojis in the mention feature.\n\t * If the marker used by emoji mention is already registered, it displays a warning.\n\t * If emoji mention configuration is detected, it does not register it for a second time.\n\t */\n\tprivate _setupMentionConfiguration( editor: Editor ) {\n\t\tconst mergeFieldsPrefix = editor.config.get( 'mergeFields.prefix' )! as string;\n\t\tconst mentionFeedsConfigs = editor.config.get( 'mention.feeds' )! as Array<EmojiMentionFeed>;\n\n\t\tconst isEmojiMarkerUsedByMergeFields = mergeFieldsPrefix ? mergeFieldsPrefix[ 0 ] === EMOJI_MENTION_MARKER : false;\n\t\tconst isEmojiMarkerUsedByMention = mentionFeedsConfigs\n\t\t\t.filter( config => !config._isEmojiMarker )\n\t\t\t.some( config => config.marker === EMOJI_MENTION_MARKER );\n\n\t\tif ( isEmojiMarkerUsedByMention || isEmojiMarkerUsedByMergeFields ) {\n\t\t\t/**\n\t\t\t * The `marker` in the `emoji` config is already used by other plugin configuration.\n\t\t\t *\n\t\t\t * @error emoji-config-marker-already-used\n\t\t\t * @param {string} marker Used marker.\n\t\t\t */\n\t\t\tlogWarning( 'emoji-config-marker-already-used', { marker: EMOJI_MENTION_MARKER } );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst isEmojiConfigDefined = mentionFeedsConfigs.some( config => config._isEmojiMarker );\n\n\t\tif ( isEmojiConfigDefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst emojiMentionFeedConfig = {\n\t\t\t_isEmojiMarker: true,\n\t\t\tmarker: EMOJI_MENTION_MARKER,\n\t\t\tdropdownLimit: this._emojiDropdownLimit,\n\t\t\titemRenderer: this._customItemRendererFactory( this.editor.t ),\n\t\t\tfeed: this._queryEmojiCallbackFactory()\n\t\t};\n\n\t\tthis.editor.config.set( 'mention.feeds', [ ...mentionFeedsConfigs, emojiMentionFeedConfig ] );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async init(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tthis.emojiPickerPlugin = editor.plugins.has( 'EmojiPicker' ) ? editor.plugins.get( 'EmojiPicker' ) : null;\n\t\tthis.emojiRepositoryPlugin = editor.plugins.get( 'EmojiRepository' );\n\t\tthis._isEmojiRepositoryAvailable = await this.emojiRepositoryPlugin.isReady();\n\n\t\t// Override the `mention` command listener if the emoji repository is ready.\n\t\tif ( this._isEmojiRepositoryAvailable ) {\n\t\t\teditor.once( 'ready', this._overrideMentionExecuteListener.bind( this ) );\n\t\t}\n\t}\n\n\t/**\n\t * Returns the `itemRenderer()` callback for mention config.\n\t */\n\tprivate _customItemRendererFactory( t: LocaleTranslate ): ItemRenderer {\n\t\treturn ( item: MentionFeedObjectItem ) => {\n\t\t\tconst itemElement = document.createElement( 'button' );\n\n\t\t\titemElement.classList.add( 'ck' );\n\t\t\titemElement.classList.add( 'ck-button' );\n\t\t\titemElement.classList.add( 'ck-button_with-text' );\n\n\t\t\titemElement.id = `mention-list-item-id${ item.id.slice( 0, -1 ) }`;\n\t\t\titemElement.type = 'button';\n\t\t\titemElement.tabIndex = -1;\n\n\t\t\tconst labelElement = document.createElement( 'span' );\n\n\t\t\tlabelElement.classList.add( 'ck' );\n\t\t\tlabelElement.classList.add( 'ck-button__label' );\n\n\t\t\titemElement.appendChild( labelElement );\n\n\t\t\tif ( item.id === EMOJI_HINT_OPTION_ID ) {\n\t\t\t\titemElement.classList.add( 'ck-list-item-button' );\n\t\t\t\titemElement.classList.add( 'ck-disabled' );\n\t\t\t\tlabelElement.textContent = t( 'Keep on typing to see the emoji.' );\n\t\t\t} else if ( item.id === EMOJI_SHOW_ALL_OPTION_ID ) {\n\t\t\t\tlabelElement.textContent = t( 'Show all emoji...' );\n\t\t\t} else {\n\t\t\t\tlabelElement.textContent = `${ item.text } ${ item.id }`;\n\t\t\t}\n\n\t\t\treturn itemElement;\n\t\t};\n\t}\n\n\t/**\n\t * Overrides the default mention execute listener to insert an emoji as plain text instead.\n\t */\n\tprivate _overrideMentionExecuteListener(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.commands.get( 'mention' )!.on( 'execute', ( event, data ) => {\n\t\t\tconst eventData = data[ 0 ];\n\n\t\t\t// Ignore non-emoji auto-complete actions.\n\t\t\tif ( eventData.marker !== EMOJI_MENTION_MARKER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Do not propagate the event.\n\t\t\tevent.stop();\n\n\t\t\t// Do nothing when executing after selecting a hint message.\n\t\t\tif ( eventData.mention.id === EMOJI_HINT_OPTION_ID ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Trigger the picker UI.\n\t\t\tif ( eventData.mention.id === EMOJI_SHOW_ALL_OPTION_ID ) {\n\t\t\t\tconst text = [ ...eventData.range.getItems() ]\n\t\t\t\t\t.filter( item => item.is( '$textProxy' ) )\n\t\t\t\t\t.map( item => item.data )\n\t\t\t\t\t.reduce( ( result, text ) => result + text, '' );\n\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\teditor.model.deleteContent( writer.createSelection( eventData.range ) );\n\t\t\t\t} );\n\n\t\t\t\tconst emojiPickerPlugin = this.emojiPickerPlugin!;\n\n\t\t\t\temojiPickerPlugin.showUI( text.slice( 1 ) );\n\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\temojiPickerPlugin.emojiPickerView!.focus();\n\t\t\t\t} );\n\t\t\t}\n\t\t\t// Or insert the emoji to editor.\n\t\t\telse {\n\t\t\t\teditor.execute( 'insertText', {\n\t\t\t\t\ttext: eventData.mention.text,\n\t\t\t\t\trange: eventData.range\n\t\t\t\t} );\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Returns the `feed()` callback for mention config.\n\t */\n\tprivate _queryEmojiCallbackFactory(): ( searchQuery: string ) => Array<MentionFeedObjectItem> {\n\t\treturn ( searchQuery: string ) => {\n\t\t\t// Do not show anything when a query starts with a space.\n\t\t\tif ( searchQuery.startsWith( ' ' ) ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\t// Do not show anything when a query starts with a marker character.\n\t\t\tif ( searchQuery.startsWith( EMOJI_MENTION_MARKER ) ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\t// If the repository plugin is not available, return an empty feed to avoid confusion. See: #17842.\n\t\t\tif ( !this._isEmojiRepositoryAvailable ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst emojis: Array<MentionFeedObjectItem> = this.emojiRepositoryPlugin.getEmojiByQuery( searchQuery )\n\t\t\t\t.map( emoji => {\n\t\t\t\t\tlet text = emoji.skins[ this._skinTone ] || emoji.skins.default;\n\n\t\t\t\t\tif ( this.emojiPickerPlugin ) {\n\t\t\t\t\t\ttext = emoji.skins[ this.emojiPickerPlugin.skinTone ] || emoji.skins.default;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: `:${ emoji.annotation }:`,\n\t\t\t\t\t\ttext\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\tif ( !this.emojiPickerPlugin ) {\n\t\t\t\treturn emojis.slice( 0, this._emojiDropdownLimit );\n\t\t\t}\n\n\t\t\tconst actionItem: MentionFeedObjectItem = {\n\t\t\t\tid: searchQuery.length > 1 ? EMOJI_SHOW_ALL_OPTION_ID : EMOJI_HINT_OPTION_ID\n\t\t\t};\n\n\t\t\treturn [\n\t\t\t\t...emojis.slice( 0, this._emojiDropdownLimit - 1 ),\n\t\t\t\tactionItem\n\t\t\t];\n\t\t};\n\t}\n}\n\ntype EmojiMentionFeed = MentionFeed & {\n\n\t/**\n\t * It's used prevent displaying an emoji mention feed warning when editor plugins are initialized more than once.\n\t */\n\t_isEmojiMarker?: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojicommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type EmojiPicker from './emojipicker.js';\n\n/**\n * Command that shows the emoji user interface.\n */\nexport default class EmojiCommand extends Command {\n\t/**\n\t * Updates the command's {@link #isEnabled} based on the current selection.\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tthis.isEnabled = schema.checkChild( selection.getFirstPosition()!, '$text' );\n\t}\n\n\t/**\n\t * Opens emoji user interface for the current document selection.\n\t *\n\t * @fires execute\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */\n\tpublic override execute( searchValue: string = '' ): void {\n\t\tconst emojiPickerPlugin: EmojiPicker = this.editor.plugins.get( 'EmojiPicker' );\n\n\t\temojiPickerPlugin.showUI( searchValue );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojigridview\n */\n\nimport { addKeyboardHandlingForGrid, ButtonView, type FilteredView, View, type ViewCollection } from 'ckeditor5/src/ui.js';\nimport { FocusTracker, global, KeystrokeHandler, type Locale } from 'ckeditor5/src/utils.js';\nimport type { EmojiCategory, EmojiEntry } from '../emojirepository.js';\nimport type { SkinToneId } from '../emojiconfig.js';\n\nimport '../../theme/emojigrid.css';\n\n/**\n * A grid of emoji tiles. It allows browsing emojis and selecting them to be inserted into the content.\n */\nexport default class EmojiGridView extends View<HTMLDivElement> implements FilteredView {\n\t/**\n\t * Defines the active category name.\n\t *\n\t * @observable\n\t */\n\tdeclare public categoryName: string;\n\n\t/**\n\t * Active skin tone.\n\t *\n\t * @observable\n\t */\n\tdeclare public skinTone: SkinToneId;\n\n\t/**\n\t * Set to `true` when the {@link #tiles} collection does not contain items to display.\n\t *\n\t * @observable\n\t */\n\tdeclare public isEmpty: boolean;\n\n\t/**\n\t * A collection of the child tile views. Each tile represents a particular emoji.\n\t */\n\tpublic readonly tiles: ViewCollection<ButtonView>;\n\n\t/**\n\t * Tracks information about the DOM focus in the grid.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * An array containing all emojis grouped by their categories.\n\t */\n\tpublic readonly emojiCategories: Array<EmojiCategory>;\n\n\t/**\n\t * A collection of all already created tile views. Each tile represents a particular emoji.\n\t * The cached tiles collection is used for efficiency purposes to avoid re-creating a particular\n\t * tile again when the grid view has changed.\n\t */\n\tpublic readonly cachedTiles: ViewCollection<ButtonView>;\n\n\t/**\n\t * A callback used to filter grid items by a specified query.\n\t */\n\tprivate readonly _getEmojiByQuery: EmojiSearchQueryCallback;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { categoryName, emojiCategories, getEmojiByQuery, skinTone }: {\n\t\tcategoryName: string;\n\t\temojiCategories: Array<EmojiCategory>;\n\t\tgetEmojiByQuery: EmojiSearchQueryCallback;\n\t\tskinTone: SkinToneId;\n\t} ) {\n\t\tsuper( locale );\n\n\t\tthis.set( 'isEmpty', true );\n\t\tthis.set( 'categoryName', categoryName );\n\t\tthis.set( 'skinTone', skinTone );\n\n\t\tthis.tiles = this.createCollection() as ViewCollection<ButtonView>;\n\t\tthis.cachedTiles = this.createCollection() as ViewCollection<ButtonView>;\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\tthis._getEmojiByQuery = getEmojiByQuery;\n\t\tthis.emojiCategories = emojiCategories;\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\trole: 'grid',\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-emoji__grid'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.tiles\n\t\t\t\t}\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\trole: 'tabpanel',\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-emoji__tiles',\n\t\t\t\t\t// To avoid issues with focus cycling, ignore a grid when it's empty.\n\t\t\t\t\tbind.if( 'isEmpty', 'ck-hidden', value => value )\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\taddKeyboardHandlingForGrid( {\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tgridItems: this.tiles,\n\t\t\tnumberOfColumns: () => global.window\n\t\t\t\t.getComputedStyle( this.element!.firstChild as Element ) // Responsive `.ck-emoji-grid__tiles`.\n\t\t\t\t.getPropertyValue( 'grid-template-columns' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.length,\n\t\t\tuiLanguageDirection: this.locale && this.locale.uiLanguageDirection\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.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.keystrokes.destroy();\n\t\tthis.focusTracker.destroy();\n\t}\n\n\t/**\n\t * Focuses the first focusable in {@link ~EmojiGridView#tiles} if available.\n\t */\n\tpublic focus(): void {\n\t\tconst firstTile = this.tiles.first;\n\n\t\tif ( firstTile ) {\n\t\t\tfirstTile.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Filters the grid view by the given regular expression.\n\t *\n\t * It filters either by the pattern or an emoji category, but never both.\n\t *\n\t * @param pattern Expression to search or `null` when filter by category name.\n\t */\n\tpublic filter( pattern: RegExp | null ): { resultsCount: number; totalItemsCount: number } {\n\t\tconst { matchingItems, allItems } = pattern ? this._getItemsByQuery( pattern.source ) : this._getItemsByCategory();\n\n\t\tthis._updateGrid( matchingItems );\n\t\tthis.set( 'isEmpty', matchingItems.length === 0 );\n\n\t\treturn {\n\t\t\tresultsCount: matchingItems.length,\n\t\t\ttotalItemsCount: allItems.length\n\t\t};\n\t}\n\n\t/**\n\t * Filters emojis to show based on the specified query phrase.\n\t *\n\t * @param query A query used to filter the grid.\n\t */\n\tprivate _getItemsByQuery( query: string ): { matchingItems: Array<EmojiEntry>; allItems: Array<EmojiEntry> } {\n\t\treturn {\n\t\t\tmatchingItems: this._getEmojiByQuery( query ),\n\t\t\tallItems: this.emojiCategories.flatMap( group => group.items )\n\t\t};\n\t}\n\n\t/**\n\t * Returns emojis that belong to the specified category.\n\t */\n\tprivate _getItemsByCategory(): { matchingItems: Array<EmojiEntry>; allItems: Array<EmojiEntry> } {\n\t\tconst emojiCategory = this.emojiCategories.find( item => item.title === this.categoryName )!;\n\t\tconst { items } = emojiCategory;\n\n\t\treturn {\n\t\t\tmatchingItems: items,\n\t\t\tallItems: items\n\t\t};\n\t}\n\n\t/**\n\t * Updates the grid by removing the existing items and insert the new ones.\n\t *\n\t * @param items An array of items to insert.\n\t */\n\tprivate _updateGrid( items: Array<EmojiEntry> ): void {\n\t\t// Clean-up.\n\t\t[ ...this.tiles ].forEach( item => {\n\t\t\tthis.focusTracker.remove( item );\n\t\t\tthis.tiles.remove( item );\n\t\t} );\n\n\t\titems\n\t\t\t// Create tiles from matching results.\n\t\t\t.map( item => {\n\t\t\t\tconst emoji = item.skins[ this.skinTone ] || item.skins.default;\n\n\t\t\t\treturn this.cachedTiles.get( emoji ) || this._createTile( emoji, item.annotation );\n\t\t\t} )\n\t\t\t// Insert new elements.\n\t\t\t.forEach( item => {\n\t\t\t\tthis.tiles.add( item );\n\t\t\t\tthis.focusTracker.add( item );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Creates a new tile for the grid. Created tile is added to the {@link #cachedTiles} collection for further usage, if needed.\n\t *\n\t * @param emoji The emoji itself.\n\t * @param name The name of the emoji (e.g. \"Smiling Face with Smiling Eyes\").\n\t */\n\tprivate _createTile( emoji: string, name: string ): ButtonView {\n\t\tconst tile = new ButtonView( this.locale );\n\n\t\ttile.viewUid = emoji;\n\n\t\ttile.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-emoji__tile'\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\ttile.set( {\n\t\t\tlabel: emoji,\n\t\t\ttooltip: name,\n\t\t\twithText: true,\n\t\t\tariaLabel: name,\n\t\t\t// To improve accessibility, disconnect a button and its label connection so that screen\n\t\t\t// readers can read the `[aria-label]` attribute directly from the more descriptive button.\n\t\t\tariaLabelledBy: undefined\n\t\t} );\n\n\t\ttile.on( 'execute', () => {\n\t\t\tthis.fire<EmojiGridViewExecuteEvent>( 'execute', { name, emoji } );\n\t\t} );\n\n\t\tthis.cachedTiles.add( tile );\n\n\t\treturn tile;\n\t}\n}\n\n/**\n * A callback used to filter grid items by a specified query.\n */\nexport type EmojiSearchQueryCallback = ( query: string ) => Array<EmojiEntry>;\n\n/**\n * Fired when any of {@link ~EmojiGridView#tiles grid tiles} is clicked.\n *\n * @eventName ~EmojiGridView#execute\n * @param data Additional information about the event.\n */\nexport type EmojiGridViewExecuteEvent = {\n\tname: 'execute';\n\targs: [ data: EmojiGridViewEventData ];\n};\n\nexport type EmojiGridViewEventData = {\n\n\t/**\n\t * The name of the emoji (e.g. \"Smiling Face with Smiling Eyes\").\n\t */\n\tname: string;\n\n\t/**\n\t * The emoji itself.\n\t */\n\temoji: string;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojicategoriesview\n */\n\nimport { ButtonView, View, FocusCycler, type ViewCollection } from 'ckeditor5/src/ui.js';\nimport { FocusTracker, KeystrokeHandler, type Locale, type ObservableChangeEvent } from 'ckeditor5/src/utils.js';\nimport type { EmojiCategory } from '../emojirepository.js';\n\nimport '../../theme/emojicategories.css';\n\n/**\n * A class representing the navigation part of the emoji UI.\n * It is responsible allowing the user to select a particular emoji category.\n */\nexport default class EmojiCategoriesView extends View {\n\t/**\n\t * Currently selected emoji category name.\n\t */\n\tdeclare public categoryName: string;\n\n\t/**\n\t * Tracks information about the DOM focus in the grid.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Helps cycling over focusable children in the input view.\n\t */\n\tpublic readonly focusCycler: FocusCycler;\n\n\t/**\n\t * A collection of the categories buttons.\n\t */\n\tpublic readonly buttonViews: ViewCollection<ButtonView>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { emojiCategories, categoryName }: { emojiCategories: Array<EmojiCategory>; categoryName: string } ) {\n\t\tsuper( locale );\n\n\t\tthis.buttonViews = this.createCollection(\n\t\t\temojiCategories.map( emojiCategory => this._createCategoryButton( emojiCategory ) )\n\t\t);\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis.focusCycler = new FocusCycler( {\n\t\t\tfocusables: this.buttonViews,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\tfocusPrevious: 'arrowleft',\n\t\t\t\tfocusNext: 'arrowright'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-emoji__categories-list' ],\n\t\t\t\trole: 'tablist'\n\t\t\t},\n\t\t\tchildren: this.buttonViews\n\t\t} );\n\n\t\tthis.on<ObservableChangeEvent<string>>( 'change:categoryName', ( event, name, newValue, oldValue ) => {\n\t\t\tconst oldCategoryButton = this.buttonViews.find( button => button.tooltip === oldValue );\n\n\t\t\tif ( oldCategoryButton ) {\n\t\t\t\toldCategoryButton.isOn = false;\n\t\t\t}\n\n\t\t\tconst newCategoryButton = this.buttonViews.find( button => button.tooltip === newValue )!;\n\t\t\tnewCategoryButton.isOn = true;\n\t\t} );\n\n\t\tthis.set( 'categoryName', categoryName );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.buttonViews.forEach( buttonView => {\n\t\t\tthis.focusTracker.add( buttonView );\n\t\t} );\n\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t\tthis.buttonViews.destroy();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.buttonViews.first!.focus();\n\t}\n\n\t/**\n\t * Marks all categories buttons as enabled (clickable).\n\t */\n\tpublic enableCategories(): void {\n\t\tthis.buttonViews.forEach( buttonView => {\n\t\t\tbuttonView.isEnabled = true;\n\t\t} );\n\t}\n\n\t/**\n\t * Marks all categories buttons as disabled (non-clickable).\n\t */\n\tpublic disableCategories(): void {\n\t\tthis.buttonViews.forEach( buttonView => {\n\t\t\tbuttonView.set( {\n\t\t\t\tclass: '',\n\t\t\t\tisEnabled: false,\n\t\t\t\tisOn: false\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button representing a category item.\n\t */\n\tprivate _createCategoryButton( emojiCategory: EmojiCategory ): ButtonView {\n\t\tconst buttonView = new ButtonView();\n\t\tconst bind = buttonView.bindTemplate;\n\n\t\t// A `[role=\"tab\"]` element requires also the `[aria-selected]` attribute with its state.\n\t\tbuttonView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\t'aria-selected': bind.to( 'isOn', value => value.toString() ),\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-emoji__category-item'\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\tbuttonView.set( {\n\t\t\tariaLabel: emojiCategory.title,\n\t\t\tlabel: emojiCategory.icon,\n\t\t\trole: 'tab',\n\t\t\ttooltip: emojiCategory.title,\n\t\t\twithText: true,\n\t\t\t// To improve accessibility, disconnect a button and its label connection so that screen\n\t\t\t// readers can read the `[aria-label]` attribute directly from the more descriptive button.\n\t\t\tariaLabelledBy: undefined\n\t\t} );\n\n\t\tbuttonView.on( 'execute', () => {\n\t\t\tthis.categoryName = emojiCategory.title;\n\t\t} );\n\n\t\tbuttonView.on<ObservableChangeEvent<boolean>>( 'change:isEnabled', () => {\n\t\t\tif ( buttonView.isEnabled && buttonView.tooltip === this.categoryName ) {\n\t\t\t\tbuttonView.isOn = true;\n\t\t\t}\n\t\t} );\n\n\t\treturn buttonView;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojisearchview\n */\n\nimport { escapeRegExp } from 'es-toolkit/compat';\nimport { createLabeledInputText, SearchTextView, View, type SearchTextViewSearchEvent, type SearchInfoView } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\nimport type EmojiGridView from './emojigridview.js';\n\n/**\n * A view responsible for providing an input element that allows filtering emoji by the provided query.\n */\nexport default class EmojiSearchView extends View {\n\t/**\n\t * The find in text input view that stores the searched string.\n\t */\n\tpublic readonly inputView: SearchTextView;\n\n\t/**\n\t * An instance of the `EmojiGridView`.\n\t */\n\tpublic readonly gridView: EmojiGridView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { gridView, resultsView }: { gridView: EmojiGridView; resultsView: SearchInfoView } ) {\n\t\tsuper( locale );\n\n\t\tthis.gridView = gridView;\n\n\t\tconst t = locale.t;\n\n\t\tthis.inputView = new SearchTextView( this.locale!, {\n\t\t\tqueryView: {\n\t\t\t\tlabel: t( 'Find an emoji (min. 2 characters)' ),\n\t\t\t\tcreator: createLabeledInputText\n\t\t\t},\n\t\t\tfilteredView: this.gridView,\n\t\t\tinfoView: {\n\t\t\t\tinstance: resultsView\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-search'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tthis.inputView.queryView\n\t\t\t]\n\t\t} );\n\n\t\t// Pass through the `search` event to handle it by a parent view.\n\t\tthis.inputView.delegate( 'search' ).to( this );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.inputView.destroy();\n\t}\n\n\t/**\n\t * Searches the {@link #gridView} for the given query.\n\t *\n\t * @param query The search query string.\n\t */\n\tpublic search( query: string ): void {\n\t\tconst regExp = query ? new RegExp( escapeRegExp( query ), 'ig' ) : null;\n\t\tconst filteringResults = this.gridView.filter( regExp );\n\n\t\tthis.inputView.fire<SearchTextViewSearchEvent>( 'search', { query, ...filteringResults } );\n\t}\n\n\t/**\n\t * Allows defining the default value in the search text field.\n\t *\n\t * @param value The new value.\n\t */\n\tpublic setInputValue( value: string ): void {\n\t\tif ( !value ) {\n\t\t\tthis.inputView.queryView.fieldView.reset();\n\t\t} else {\n\t\t\tthis.inputView.queryView.fieldView.value = value;\n\t\t}\n\t}\n\n\t/**\n\t * Returns an input provided by a user in the search text field.\n\t */\n\tpublic getInputValue(): string {\n\t\treturn this.inputView.queryView.fieldView.element!.value;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.inputView.focus();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojitoneview\n */\n\nimport {\n\tcreateDropdown,\n\taddListToDropdown,\n\tView,\n\tViewModel,\n\ttype ButtonExecuteEvent,\n\ttype DropdownView,\n\ttype ListDropdownItemDefinition\n} from 'ckeditor5/src/ui.js';\nimport { Collection, type Locale } from 'ckeditor5/src/utils.js';\nimport type { SkinToneId } from '../emojiconfig.js';\nimport type { SkinTone } from '../emojirepository.js';\n\nimport '../../theme/emojitone.css';\n\n/**\n * A view responsible for selecting a skin tone for an emoji.\n */\nexport default class EmojiToneView extends View {\n\t/**\n\t * Active skin tone.\n\t *\n\t * @observable\n\t */\n\tdeclare public skinTone: SkinToneId;\n\n\t/**\n\t * A dropdown element for selecting an active skin tone.\n\t */\n\tpublic readonly dropdownView: DropdownView;\n\n\t/**\n\t * An array of available skin tones.\n\t */\n\tprivate readonly _skinTones: Array<SkinTone>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { skinTone, skinTones }: { skinTone: SkinToneId; skinTones: Array<SkinTone> } ) {\n\t\tsuper( locale );\n\n\t\tthis.set( 'skinTone', skinTone );\n\t\tthis._skinTones = skinTones;\n\n\t\tconst t = locale.t;\n\t\tconst accessibleLabel = t( 'Select skin tone' );\n\n\t\tconst dropdownView = createDropdown( locale );\n\t\tconst itemDefinitions: Collection<ListDropdownItemDefinition> = new Collection();\n\n\t\tfor ( const { id, icon, tooltip } of this._skinTones ) {\n\t\t\tconst def: ListDropdownItemDefinition = {\n\t\t\t\ttype: 'button',\n\t\t\t\tmodel: new ViewModel( {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel: icon,\n\t\t\t\t\tariaLabel: tooltip,\n\t\t\t\t\ttooltip,\n\t\t\t\t\ttooltipPosition: 'e',\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t\twithText: true,\n\t\t\t\t\t// To improve accessibility, disconnect a button and its label connection so that screen\n\t\t\t\t\t// readers can read the `[aria-label]` attribute directly from the more descriptive button.\n\t\t\t\t\tariaLabelledBy: undefined\n\t\t\t\t} )\n\t\t\t};\n\n\t\t\tdef.model.bind( 'isOn' ).to( this, 'skinTone', value => value === id );\n\n\t\t\titemDefinitions.add( def );\n\t\t}\n\n\t\taddListToDropdown(\n\t\t\tdropdownView,\n\t\t\titemDefinitions,\n\t\t\t{\n\t\t\t\tariaLabel: accessibleLabel,\n\t\t\t\trole: 'menu'\n\t\t\t}\n\t\t);\n\n\t\tdropdownView.buttonView.set( {\n\t\t\tlabel: this._getSkinTone().icon,\n\t\t\tariaLabel: accessibleLabel,\n\t\t\tariaLabelledBy: undefined,\n\t\t\tisOn: false,\n\t\t\twithText: true,\n\t\t\ttooltip: accessibleLabel\n\t\t} );\n\n\t\tthis.dropdownView = dropdownView;\n\n\t\t// Execute command when an item from the dropdown is selected.\n\t\tthis.listenTo<ButtonExecuteEvent>( dropdownView, 'execute', evt => {\n\t\t\tthis.skinTone = ( evt.source as any ).value;\n\t\t} );\n\n\t\tdropdownView.buttonView.bind( 'label' ).to( this, 'skinTone', () => {\n\t\t\treturn this._getSkinTone().icon;\n\t\t} );\n\n\t\tdropdownView.buttonView.bind( 'ariaLabel' ).to( this, 'skinTone', () => {\n\t\t\t// Render a current state, but also what the dropdown does.\n\t\t\treturn `${ this._getSkinTone().tooltip }, ${ accessibleLabel }`;\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-emoji__skin-tone' ]\n\t\t\t},\n\t\t\tchildren: [ dropdownView ]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.dropdownView.buttonView.focus();\n\t}\n\n\t/**\n\t * Helper method for receiving an object describing the active skin tone.\n\t */\n\tprivate _getSkinTone(): SkinTone {\n\t\treturn this._skinTones.find( tone => tone.id === this.skinTone )!;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojipickerview\n */\n\nimport {\n\tFocusCycler,\n\tSearchInfoView,\n\tView,\n\ttype FocusableView,\n\ttype ViewCollection,\n\ttype SearchTextViewSearchEvent\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale,\n\ttype ObservableChangeEvent\n} from 'ckeditor5/src/utils.js';\nimport EmojiGridView, { type EmojiSearchQueryCallback } from './emojigridview.js';\nimport EmojiCategoriesView from './emojicategoriesview.js';\nimport EmojiSearchView from './emojisearchview.js';\nimport EmojiToneView from './emojitoneview.js';\nimport type { SkinToneId } from '../emojiconfig.js';\nimport type { EmojiCategory, SkinTone } from '../emojirepository.js';\n\n/**\n * A view that glues pieces of the emoji panel together.\n */\nexport default class EmojiPickerView extends View<HTMLDivElement> {\n\t/**\n\t * A collection of the focusable children of the view.\n\t */\n\tpublic readonly items: ViewCollection<FocusableView>;\n\n\t/**\n\t * Tracks information about the DOM focus in the view.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Helps cycling over focusable {@link #items} in the view.\n\t */\n\tpublic readonly focusCycler: FocusCycler;\n\n\t/**\n\t * An instance of the `EmojiSearchView`.\n\t */\n\tpublic readonly searchView: EmojiSearchView;\n\n\t/**\n\t * An instance of the `EmojiToneView`.\n\t */\n\tpublic readonly toneView: EmojiToneView;\n\n\t/**\n\t * An instance of the `EmojiCategoriesView`.\n\t */\n\tpublic readonly categoriesView: EmojiCategoriesView;\n\n\t/**\n\t * An instance of the `EmojiGridView`.\n\t */\n\tpublic readonly gridView: EmojiGridView;\n\n\t/**\n\t * An instance of the `EmojiGridView`.\n\t */\n\tpublic readonly infoView: SearchInfoView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{ emojiCategories, getEmojiByQuery, skinTone, skinTones }: {\n\t\t\temojiCategories: Array<EmojiCategory>;\n\t\t\tgetEmojiByQuery: EmojiSearchQueryCallback;\n\t\t\tskinTone: SkinToneId;\n\t\t\tskinTones: Array<SkinTone>;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\n\t\tconst categoryName = emojiCategories[ 0 ].title;\n\n\t\tthis.gridView = new EmojiGridView( locale, {\n\t\t\tcategoryName,\n\t\t\temojiCategories,\n\t\t\tgetEmojiByQuery,\n\t\t\tskinTone\n\t\t} );\n\t\tthis.infoView = new SearchInfoView();\n\t\tthis.searchView = new EmojiSearchView( locale, {\n\t\t\tgridView: this.gridView,\n\t\t\tresultsView: this.infoView\n\t\t} );\n\t\tthis.categoriesView = new EmojiCategoriesView( locale, {\n\t\t\temojiCategories,\n\t\t\tcategoryName\n\t\t} );\n\t\tthis.toneView = new EmojiToneView( locale, {\n\t\t\tskinTone,\n\t\t\tskinTones\n\t\t} );\n\n\t\tthis.items = this.createCollection( [\n\t\t\tthis.searchView,\n\t\t\tthis.toneView,\n\t\t\tthis.categoriesView,\n\t\t\tthis.gridView,\n\t\t\tthis.infoView\n\t\t] );\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis.focusCycler = new FocusCycler( {\n\t\t\tfocusables: this.items,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\tfocusPrevious: 'shift + tab',\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tthis.searchView,\n\t\t\t\t\t\tthis.toneView\n\t\t\t\t\t],\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [ 'ck', 'ck-emoji__search' ]\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis.categoriesView,\n\t\t\t\tthis.gridView,\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tthis.infoView\n\t\t\t\t\t],\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [ 'ck', 'ck-search__results' ]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\ttabindex: '-1',\n\t\t\t\tclass: [ 'ck', 'ck-emoji', 'ck-search' ]\n\t\t\t}\n\t\t} );\n\n\t\tthis._setupEventListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.focusTracker.add( this.searchView.element! );\n\t\tthis.focusTracker.add( this.toneView.element! );\n\t\tthis.focusTracker.add( this.categoriesView.element! );\n\t\tthis.focusTracker.add( this.gridView.element! );\n\t\tthis.focusTracker.add( this.infoView.element! );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the search input.\n\t */\n\tpublic focus(): void {\n\t\tthis.searchView.focus();\n\t}\n\n\t/**\n\t * Initializes interactions between sub-views.\n\t */\n\tprivate _setupEventListeners(): void {\n\t\tconst t = this.locale!.t;\n\n\t\t// Disable the category switcher when filtering by a query.\n\t\tthis.searchView.on<SearchTextViewSearchEvent>( 'search', ( evt, data ) => {\n\t\t\tif ( data.query ) {\n\t\t\t\tthis.categoriesView.disableCategories();\n\t\t\t} else {\n\t\t\t\tthis.categoriesView.enableCategories();\n\t\t\t}\n\t\t} );\n\n\t\t// Show a user-friendly message depending on the search query.\n\t\tthis.searchView.on<SearchTextViewSearchEvent>( 'search', ( evt, data ) => {\n\t\t\tif ( data.query.length === 1 ) {\n\t\t\t\tthis.infoView.set( {\n\t\t\t\t\tprimaryText: t( 'Keep on typing to see the emoji.' ),\n\t\t\t\t\tsecondaryText: t( 'The query must contain at least two characters.' ),\n\t\t\t\t\tisVisible: true\n\t\t\t\t} );\n\t\t\t} else if ( !data.resultsCount ) {\n\t\t\t\tthis.infoView.set( {\n\t\t\t\t\tprimaryText: t( 'No emojis were found matching \"%0\".', data.query ),\n\t\t\t\t\tsecondaryText: t( 'Please try a different phrase or check the spelling.' ),\n\t\t\t\t\tisVisible: true\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tthis.infoView.set( {\n\t\t\t\t\tisVisible: false\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Emit an update event to react to balloon dimensions changes.\n\t\tthis.searchView.on<SearchTextViewSearchEvent>( 'search', () => {\n\t\t\tthis.fire<EmojiPickerViewUpdateEvent>( 'update' );\n\t\t\tthis.gridView.element!.scrollTo( 0, 0 );\n\t\t} );\n\n\t\t// Update the grid of emojis when the selected category is changed.\n\t\tthis.categoriesView.on<ObservableChangeEvent<string>>( 'change:categoryName', ( ev, args, categoryName ) => {\n\t\t\tthis.gridView.categoryName = categoryName;\n\t\t\tthis.searchView.search( '' );\n\t\t} );\n\n\t\t// Update the grid of emojis when the selected skin tone is changed.\n\t\t// In such a case, the displayed emoji should use an updated skin tone value.\n\t\tthis.toneView.on<ObservableChangeEvent<SkinToneId>>( 'change:skinTone', ( evt, propertyName, newValue ) => {\n\t\t\tthis.gridView.skinTone = newValue;\n\t\t\tthis.searchView.search( this.searchView.getInputValue() );\n\t\t} );\n\t}\n}\n\n/**\n * Fired when the {@link module:emoji/ui/emojipickerview~EmojiPickerView} layout is changed, either by filtering emoji tiles or\n * showing a hint to a user regarding the provided query.\n *\n * @eventName ~EmojiPickerView#update\n */\nexport type EmojiPickerViewUpdateEvent = {\n\tname: 'update';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojipickerformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tFormHeaderView,\n\tView,\n\tViewCollection,\n\tisFocusable,\n\tisViewWithFocusCycler,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\nimport { IconPreviousArrow } from 'ckeditor5/src/icons.js';\n\n// See: https://github.com/ckeditor/ckeditor5/issues/8833\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/form/form.css';\n\nimport '../../theme/emojipickerform.css';\n\n/**\n * The emoji picker form view.\n */\nexport default class EmojiPickerFormView extends View {\n\t/**\n\t * The Back button view displayed in the header.\n\t */\n\tpublic backButtonView: ButtonView;\n\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * A collection of child views.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * Creates an instance of the {@link module:emoji/ui/emojipickerformview~EmojiPickerFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.backButtonView = this._createBackButton();\n\t\tthis.children = this.createCollection( [\n\t\t\tthis._createHeaderView()\n\t\t] );\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backward using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-form',\n\t\t\t\t\t'ck-emoji-picker-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children\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\tconst childViews = [\n\t\t\t...this.children.filter( isFocusable ) as Array<FocusableView>,\n\t\t\tthis.backButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\n\t\t\t// Register the view in the focus cycler to avoid nested focus cycles traps.\n\t\t\tif ( isViewWithFocusCycler( v ) ) {\n\t\t\t\tthis._focusCycler.chain( v.focusCycler );\n\t\t\t}\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Creates a back button view that cancels the form.\n\t */\n\tprivate _createBackButton(): ButtonView {\n\t\tconst t = this.locale!.t;\n\t\tconst backButton = new ButtonView( this.locale );\n\n\t\tbackButton.set( {\n\t\t\tclass: 'ck-button-back',\n\t\t\tlabel: t( 'Back' ),\n\t\t\ticon: IconPreviousArrow,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbackButton.delegate( 'execute' ).to( this, 'cancel' );\n\n\t\treturn backButton;\n\t}\n\n\t/**\n\t * Creates a header view for the form.\n\t */\n\tprivate _createHeaderView(): FormHeaderView {\n\t\tconst t = this.locale!.t;\n\n\t\tconst header = new FormHeaderView( this.locale, {\n\t\t\tlabel: t( 'Emoji picker' )\n\t\t} );\n\n\t\theader.children.add( this.backButtonView, 0 );\n\n\t\treturn header;\n\t}\n}\n\n/**\n * Fired when the form view is canceled, for example with a click on {@link ~EmojiPickerFormView#backButtonView}.\n *\n * @eventName ~EmojiPickerFormView#cancel\n */\nexport type EmojiPickerFormViewCancelEvent = {\n\tname: 'cancel';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojipicker\n */\n\nimport { ButtonView, clickOutsideHandler, ContextualBalloon, Dialog, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport type { PositionOptions } from 'ckeditor5/src/utils.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Typing } from 'ckeditor5/src/typing.js';\nimport { IconEmoji } from 'ckeditor5/src/icons.js';\n\nimport EmojiCommand from './emojicommand.js';\nimport EmojiRepository from './emojirepository.js';\nimport EmojiPickerView, { type EmojiPickerViewUpdateEvent } from './ui/emojipickerview.js';\nimport EmojiPickerFormView, { type EmojiPickerFormViewCancelEvent } from './ui/emojipickerformview.js';\nimport { type EmojiGridViewExecuteEvent } from './ui/emojigridview.js';\nimport type { SkinToneId } from './emojiconfig.js';\n\nimport '../theme/emojipicker.css';\n\nconst VISUAL_SELECTION_MARKER_NAME = 'emoji-picker';\n\n/**\n * The emoji picker plugin.\n *\n * Introduces the `'emoji'` dropdown.\n */\nexport default class EmojiPicker extends Plugin {\n\t/**\n\t * The actions view displayed inside the balloon.\n\t */\n\tdeclare public emojiPickerView: EmojiPickerView | undefined;\n\n\t/**\n\t * The form view displayed inside the balloon.\n\t */\n\tdeclare public emojiPickerFormView: EmojiPickerFormView | undefined;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tdeclare public balloonPlugin: ContextualBalloon;\n\n\t/**\n\t * An instance of the {@link module:emoji/emojirepository~EmojiRepository} plugin.\n\t */\n\tdeclare public emojiRepositoryPlugin: EmojiRepository;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiRepository, ContextualBalloon, Dialog, Typing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiPicker' 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 async init(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tthis.balloonPlugin = editor.plugins.get( 'ContextualBalloon' );\n\t\tthis.emojiRepositoryPlugin = editor.plugins.get( 'EmojiRepository' );\n\n\t\t// Skip registering a button in the toolbar and list item in the menu bar if the emoji repository is not ready.\n\t\tif ( !await this.emojiRepositoryPlugin.isReady() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst command = new EmojiCommand( editor );\n\n\t\teditor.commands.add( 'emoji', command );\n\n\t\teditor.ui.componentFactory.add( 'emoji', () => {\n\t\t\tconst button = this._createButton( ButtonView, command );\n\n\t\t\tbutton.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:emoji', () => {\n\t\t\treturn this._createButton( MenuBarMenuListItemButtonView, command );\n\t\t} );\n\n\t\tthis._setupConversion();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tif ( this.emojiPickerView ) {\n\t\t\tthis.emojiPickerView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Represents an active skin tone. Its value depends on the emoji UI plugin.\n\t *\n\t * Before opening the UI for the first time, the returned value is read from the editor configuration.\n\t * Otherwise, it reflects the user's intention.\n\t */\n\tpublic get skinTone(): SkinToneId {\n\t\tif ( !this.emojiPickerView ) {\n\t\t\treturn this.editor.config.get( 'emoji.skinTone' )!;\n\t\t}\n\n\t\treturn this.emojiPickerView.gridView.skinTone;\n\t}\n\n\t/**\n\t * Displays the balloon with the emoji picker.\n\t *\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */\n\tpublic showUI( searchValue: string = '' ): void {\n\t\t// Show visual selection on a text when the contextual balloon is displayed.\n\t\t// See #17654.\n\t\tthis._showFakeVisualSelection();\n\n\t\tif ( !this.emojiPickerView ) {\n\t\t\tthis.emojiPickerView = this._createEmojiPickerView();\n\t\t}\n\n\t\tif ( searchValue ) {\n\t\t\tthis.emojiPickerView.searchView.setInputValue( searchValue );\n\t\t}\n\n\t\tthis.emojiPickerView.searchView.search( searchValue );\n\n\t\tif ( !this.emojiPickerFormView ) {\n\t\t\tthis.emojiPickerFormView = this._createEmojiPickerFormView();\n\t\t}\n\n\t\tif ( !this.balloonPlugin.hasView( this.emojiPickerFormView ) ) {\n\t\t\t// Show back button if there is another balloon view visible.\n\t\t\tthis.emojiPickerFormView!.backButtonView.isVisible = !!this.balloonPlugin.visibleView;\n\n\t\t\tthis.balloonPlugin.add( {\n\t\t\t\tview: this.emojiPickerFormView,\n\t\t\t\tposition: this._getBalloonPositionData(),\n\t\t\t\tballoonClassName: 'ck-emoji-picker-balloon'\n\t\t\t} );\n\t\t}\n\n\t\tthis.emojiPickerView.focus();\n\t}\n\n\t/**\n\t * Creates a button for toolbar and menu bar that will show the emoji dialog.\n\t */\n\tprivate _createButton<T extends typeof ButtonView>( ViewClass: T, command: EmojiCommand ): InstanceType<T> {\n\t\tconst buttonView = new ViewClass( this.editor.locale ) as InstanceType<T>;\n\t\tconst t = this.editor.locale.t;\n\n\t\tbuttonView.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\tbuttonView.set( {\n\t\t\tlabel: t( 'Emoji' ),\n\t\t\ticon: IconEmoji,\n\t\t\tisToggleable: true\n\t\t} );\n\n\t\tbuttonView.on( 'execute', () => {\n\t\t\tthis.editor.editing.view.scrollToTheSelection();\n\t\t\tthis.showUI();\n\t\t} );\n\n\t\treturn buttonView;\n\t}\n\n\t/**\n\t * Creates an instance of the `EmojiPickerView` class that represents an emoji balloon.\n\t */\n\tprivate _createEmojiPickerView(): EmojiPickerView {\n\t\tconst emojiPickerView = new EmojiPickerView( this.editor.locale, {\n\t\t\temojiCategories: this.emojiRepositoryPlugin.getEmojiCategories(),\n\t\t\tskinTone: this.editor.config.get( 'emoji.skinTone' )!,\n\t\t\tskinTones: this.emojiRepositoryPlugin.getSkinTones(),\n\t\t\tgetEmojiByQuery: ( query: string ) => {\n\t\t\t\treturn this.emojiRepositoryPlugin.getEmojiByQuery( query );\n\t\t\t}\n\t\t} );\n\n\t\t// Insert an emoji on a tile click.\n\t\tthis.listenTo<EmojiGridViewExecuteEvent>( emojiPickerView.gridView, 'execute', ( evt, data ) => {\n\t\t\tconst editor = this.editor;\n\t\t\tconst textToInsert = data.emoji;\n\n\t\t\tthis._hideUI();\n\t\t\teditor.execute( 'insertText', { text: textToInsert } );\n\t\t} );\n\n\t\treturn emojiPickerView;\n\t}\n\n\t/**\n\t * Creates an instance of the `EmojiPickerFormView` class that represents a balloon with the emoji picker.\n\t */\n\tprivate _createEmojiPickerFormView(): EmojiPickerFormView {\n\t\tconst emojiPickerFormView = new EmojiPickerFormView( this.editor.locale );\n\n\t\temojiPickerFormView.children.add( this.emojiPickerView! );\n\n\t\t// Update the balloon position when layout is changed.\n\t\tthis.listenTo<EmojiPickerViewUpdateEvent>( this.emojiPickerView!, 'update', () => {\n\t\t\tif ( this.balloonPlugin.visibleView === emojiPickerFormView ) {\n\t\t\t\tthis.balloonPlugin.updatePosition();\n\t\t\t}\n\t\t} );\n\n\t\t// Close the dialog when the back button is clicked.\n\t\tthis.listenTo<EmojiPickerFormViewCancelEvent>( emojiPickerFormView, 'cancel', () => {\n\t\t\tthis._hideUI();\n\t\t} );\n\n\t\t// Close the panel on `Esc` key press when the **actions have focus**.\n\t\temojiPickerFormView.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis._hideUI();\n\t\t\tcancel();\n\t\t} );\n\n\t\t// Close the dialog when clicking outside of it.\n\t\tclickOutsideHandler( {\n\t\t\temitter: emojiPickerFormView,\n\t\t\tcontextElements: [ this.balloonPlugin.view.element! ],\n\t\t\tcallback: () => {\n\t\t\t\t// Focusing on the editable during a click outside the balloon panel might\n\t\t\t\t// cause the selection to move to the beginning of the editable, so we avoid\n\t\t\t\t// focusing on it during this action.\n\t\t\t\t// See: https://github.com/ckeditor/ckeditor5/issues/18253\n\t\t\t\tthis._hideUI( false );\n\t\t\t},\n\t\t\tactivator: () => this.balloonPlugin.visibleView === emojiPickerFormView\n\t\t} );\n\n\t\treturn emojiPickerFormView;\n\t}\n\n\t/**\n\t * Hides the balloon with the emoji picker.\n\t *\n\t * @param updateFocus Whether to focus the editor after closing the emoji picker.\n\t */\n\tprivate _hideUI( updateFocus: boolean = true ): void {\n\t\tthis.balloonPlugin.remove( this.emojiPickerFormView! );\n\t\tthis.emojiPickerView!.searchView.setInputValue( '' );\n\n\t\tif ( updateFocus ) {\n\t\t\tthis.editor.editing.view.focus();\n\t\t}\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Registers converters.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Renders a fake visual selection marker on an expanded selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToHighlight( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: {\n\t\t\t\tclasses: [ 'ck-fake-emoji-selection' ]\n\t\t\t}\n\t\t} );\n\n\t\t// Renders a fake visual selection marker on a collapsed selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: ( data, { writer } ) => {\n\t\t\t\tif ( !data.markerRange.isCollapsed ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst markerElement = writer.createUIElement( 'span' );\n\n\t\t\t\twriter.addClass(\n\t\t\t\t\t[ 'ck-fake-emoji-selection', 'ck-fake-emoji-selection_collapsed' ],\n\t\t\t\t\tmarkerElement\n\t\t\t\t);\n\n\t\t\t\treturn markerElement;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns positioning options for the {@link #balloonPlugin}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */\n\tprivate _getBalloonPositionData(): Partial<PositionOptions> {\n\t\tconst view = this.editor.editing.view;\n\t\tconst viewDocument = view.document;\n\n\t\t// Set a target position by converting view selection range to DOM.\n\t\tconst target = () => view.domConverter.viewRangeToDom( viewDocument.selection.getFirstRange()! );\n\n\t\treturn {\n\t\t\ttarget\n\t\t};\n\t}\n\n\t/**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds an 'emoji-picker' marker into the document that is rendered as a highlight on selected text fragment.\n\t */\n\tprivate _showFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst range = model.document.selection.getFirstRange()!;\n\n\t\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t\twriter.updateMarker( VISUAL_SELECTION_MARKER_NAME, { range } );\n\t\t\t} else {\n\t\t\t\tif ( range.start.isAtEnd ) {\n\t\t\t\t\tconst startPosition = range.start.getLastMatchingPosition(\n\t\t\t\t\t\t( { item } ) => !model.schema.isContent( item ),\n\t\t\t\t\t\t{ boundaries: range }\n\t\t\t\t\t);\n\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange: writer.createRange( startPosition, range.end )\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Hides the fake visual selection.\n\t */\n\tprivate _hideFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.removeMarker( VISUAL_SELECTION_MARKER_NAME );\n\t\t\t} );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emoji\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport EmojiMention from './emojimention.js';\nimport EmojiPicker from './emojipicker.js';\n\n/**\n * The emoji plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:emoji/emojimention~EmojiMention},\n * * {@link module:emoji/emojipicker~EmojiPicker},\n */\nexport default class Emoji extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiMention, EmojiPicker ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Emoji' 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"]}
|
|
1
|
+
{"version":3,"sources":["index.js","../src/utils/isemojisupported.ts","../src/emojiutils.ts","../src/emojirepository.ts","../src/emojimention.ts","../src/emojicommand.ts","../src/ui/emojigridview.ts","../src/ui/emojicategoriesview.ts","../src/ui/emojisearchview.ts","../src/ui/emojitoneview.ts","../src/ui/emojipickerview.ts","../src/ui/emojipickerformview.ts","../src/emojipicker.ts","../src/emoji.ts"],"names":["isEmojiSupported","unicode","ctx","getCanvas","CANVAS_HEIGHT","CANVAS_WIDTH","textSize","Math","floor","font","textBaseline","canvas","width","height","clearRect","fillStyle","fillText","a","getImageData","data","count","length","i","x","y","b","measureText","document","createElement","getContext","willReadFrequently","SKIN_TONE_MAP","EMOJI_SUPPORT_LEVEL","BASELINE_EMOJI_WIDTH","EmojiUtils","Plugin","pluginName","isOfficialPlugin","item","emojiSupportedVersionByOs","container","isEmojiVersionSupported","version","hasZwj","emoji","isEmojiZwjSupported","getEmojiSupportedVersionByOs","emojiVersion","Object","entries","_isEmojiSupported","includes","emojiWidth","getNodeWidth","node","span","textContent","appendChild","nodeWidth","offsetWidth","removeChild","createEmojiWidthTestingContainer","setAttribute","style","position","left","whiteSpace","fontSize","normalizeEmojiSkinTone","entry","skins","default","forEach","skin","skinTone","tone","isEmojiCategoryAllowed","group","DEFAULT_EMOJI_DATABASE_URL","DEFAULT_EMOJI_VERSION","EmojiRepository","_items","_url","_repositoryPromise","requires","editor","config","define","undefined","definitionsUrl","useCustomFont","_getUrl","Promise","resolve","_repositoryPromiseResolveCallback","init","_warnAboutCdnUse","_loadAndCacheEmoji","_getItems","logWarning","getEmojiByQuery","searchQuery","searchQueryTokens","split","filter","Boolean","shouldSearch","some","token","fuzzysort","go","threshold","keys","emojiEntry","matchedTags","flatMap","tok","tags","t","startsWith","join","map","result","obj","getEmojiCategories","repository","locale","categories","title","icon","groupId","groups","groupBy","category","items","getSkinTones","id","tooltip","isReady","get","urlVersion","url","URL","replace","toString","searchParams","set","editorVersion","licenseKey","distributionChannel","Symbol","for","_results","href","fetch","cache","then","response","ok","json","catch","_normalizeEmoji","emojiUtils","plugins","insertableEmoji","body","results","remove","EMOJI_MENTION_MARKER","EMOJI_SHOW_ALL_OPTION_ID","EMOJI_HINT_OPTION_ID","EmojiMention","_emojiDropdownLimit","_skinTone","Typing","dropdownLimit","_setupMentionConfiguration","mergeFieldsPrefix","mentionFeedsConfigs","isEmojiMarkerUsedByMergeFields","isEmojiMarkerUsedByMention","_isEmojiMarker","marker","isEmojiConfigDefined","emojiMentionFeedConfig","itemRenderer","_customItemRendererFactory","feed","_queryEmojiCallbackFactory","emojiPickerPlugin","has","emojiRepositoryPlugin","_isEmojiRepositoryAvailable","once","_overrideMentionExecuteListener","bind","itemElement","classList","add","slice","type","tabIndex","labelElement","text","commands","on","event","eventData","stop","mention","range","getItems","is","reduce","model","change","writer","deleteContent","createSelection","showUI","setTimeout","emojiPickerView","focus","execute","priority","emojis","annotation","actionItem","EmojiCommand","Command","refresh","schema","selection","isEnabled","checkChild","getFirstPosition","searchValue","EmojiGridView","View","tiles","focusTracker","keystrokes","emojiCategories","cachedTiles","_getEmojiByQuery","categoryName","createCollection","FocusTracker","KeystrokeHandler","bindTemplate","setTemplate","tag","children","attributes","role","class","if","value","addKeyboardHandlingForGrid","keystrokeHandler","gridItems","numberOfColumns","global","window","getComputedStyle","element","firstChild","getPropertyValue","uiLanguageDirection","render","listenTo","destroy","firstTile","first","pattern","matchingItems","allItems","_getItemsByQuery","source","_getItemsByCategory","_updateGrid","resultsCount","totalItemsCount","query","emojiCategory","find","_createTile","name","tile","ButtonView","viewUid","extendTemplate","label","withText","ariaLabel","ariaLabelledBy","fire","EmojiCategoriesView","focusCycler","buttonViews","_createCategoryButton","FocusCycler","focusables","actions","focusPrevious","focusNext","newValue","oldValue","oldCategoryButton","button","isOn","newCategoryButton","buttonView","enableCategories","disableCategories","to","EmojiSearchView","inputView","gridView","resultsView","SearchTextView","queryView","creator","createLabeledInputText","filteredView","infoView","instance","tabindex","delegate","search","regExp","RegExp","escapeRegExp","filteringResults","setInputValue","fieldView","reset","getInputValue","EmojiToneView","dropdownView","_skinTones","skinTones","accessibleLabel","createDropdown","itemDefinitions","Collection","def","UIModel","tooltipPosition","addListToDropdown","_getSkinTone","evt","EmojiPickerView","searchView","toneView","categoriesView","SearchInfoView","_setupEventListeners","primaryText","secondaryText","isVisible","scrollTo","ev","args","propertyName","EmojiPickerFormView","backButtonView","_focusables","ViewCollection","_focusCycler","_createBackButton","_createHeaderView","childViews","isFocusable","v","isViewWithFocusCycler","chain","focusFirst","backButton","IconPreviousArrow","header","FormHeaderView","VISUAL_SELECTION_MARKER_NAME","EmojiPicker","ContextualBalloon","Dialog","balloonPlugin","command","ui","componentFactory","_createButton","MenuBarMenuListItemButtonView","_setupConversion","_showFakeVisualSelection","_createEmojiPickerView","emojiPickerFormView","_createEmojiPickerFormView","hasView","visibleView","view","_getBalloonPositionData","balloonClassName","ViewClass","IconEmoji","isToggleable","editing","scrollToTheSelection","textToInsert","_hideUI","updatePosition","cancel","clickOutsideHandler","emitter","contextElements","callback","activator","updateFocus","_hideFakeVisualSelection","conversion","markerToHighlight","classes","markerToElement","markerRange","isCollapsed","markerElement","createUIElement","addClass","viewDocument","target","domConverter","viewRangeToDom","getFirstRange","markers","updateMarker","start","isAtEnd","startPosition","getLastMatchingPosition","isContent","boundaries","addMarker","usingOperation","affectsData","createRange","end","removeMarker","Emoji"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { logWarning, version, FocusTracker, KeystrokeHandler, global, Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { Typing } from '@ckeditor/ckeditor5-typing/dist/index.js';\nimport fuzzysort from 'fuzzysort';\nimport { groupBy, escapeRegExp } from 'es-toolkit/compat';\nimport { View, addKeyboardHandlingForGrid, ButtonView, FocusCycler, SearchTextView, createLabeledInputText, createDropdown, UIModel, addListToDropdown, SearchInfoView, ViewCollection, isFocusable, isViewWithFocusCycler, FormHeaderView, ContextualBalloon, Dialog, MenuBarMenuListItemButtonView, clickOutsideHandler } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconPreviousArrow, IconEmoji } from '@ckeditor/ckeditor5-icons/dist/index.js';\n\n/**\n * @license Copyright (c) 2023, Koala Interactive SAS\n * For licensing, see https://github.com/koala-interactive/is-emoji-supported/blob/master/LICENSE.md\n */ /**\n * @module emoji/utils/isemojisupported\n */ /**\n * Checks if the two pixels parts are the same using canvas.\n *\n * @internal\n */ function isEmojiSupported(unicode) {\n const ctx = getCanvas();\n /* istanbul ignore next -- @preserve */ if (!ctx) {\n return false;\n }\n const CANVAS_HEIGHT = 25;\n const CANVAS_WIDTH = 20;\n const textSize = Math.floor(CANVAS_HEIGHT / 2);\n // Initialize canvas context.\n ctx.font = textSize + 'px Arial, Sans-Serif';\n ctx.textBaseline = 'top';\n ctx.canvas.width = CANVAS_WIDTH * 2;\n ctx.canvas.height = CANVAS_HEIGHT;\n ctx.clearRect(0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT);\n // Draw in red on the left.\n ctx.fillStyle = '#FF0000';\n ctx.fillText(unicode, 0, 22);\n // Draw in blue on right.\n ctx.fillStyle = '#0000FF';\n ctx.fillText(unicode, CANVAS_WIDTH, 22);\n const a = ctx.getImageData(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT).data;\n const count = a.length;\n let i = 0;\n // Search the first visible pixel.\n for(; i < count && !a[i + 3]; i += 4);\n // No visible pixel.\n /* istanbul ignore next -- @preserve */ if (i >= count) {\n return false;\n }\n // Emoji has immutable color, so we check the color of the emoji in two different colors.\n // the result show be the same.\n const x = CANVAS_WIDTH + i / 4 % CANVAS_WIDTH;\n const y = Math.floor(i / 4 / CANVAS_WIDTH);\n const b = ctx.getImageData(x, y, 1, 1).data;\n /* istanbul ignore next -- @preserve */ if (a[i] !== b[0] || a[i + 2] !== b[2]) {\n return false;\n }\n //Some emojis consist of different ones, so they will show multiple characters if they are not supported.\n /* istanbul ignore next -- @preserve */ if (ctx.measureText(unicode).width >= CANVAS_WIDTH) {\n return false;\n }\n // Supported.\n return true;\n}\nfunction getCanvas() {\n try {\n return document.createElement('canvas').getContext('2d', {\n willReadFrequently: true\n });\n } catch {\n /* istanbul ignore next -- @preserve */ return null;\n }\n}\n\n/**\n * @module emoji/emojiutils\n */ const SKIN_TONE_MAP = {\n 0: 'default',\n 1: 'light',\n 2: 'medium-light',\n 3: 'medium',\n 4: 'medium-dark',\n 5: 'dark'\n};\n/**\n * A map representing an emoji and its release version.\n * It's used to identify a user's minimal supported emoji level.\n * We skip versions with older patches, such as 15.0 instead of 15.1 etc.\n */ const EMOJI_SUPPORT_LEVEL = {\n '': 16,\n '🫨': 15.1,\n '🫠': 14,\n '😶🌫️': 13.1,\n '🧑💻': 12.1,\n '🥰': 11,\n '🤪': 5,\n '⚕️': 4,\n '🤣': 3,\n '👋🏽': 2,\n '😀': 1,\n '😐': 0.7,\n '😂': 0.6 // Face with Tears of Joy.\n};\nconst BASELINE_EMOJI_WIDTH = 24;\n/**\n * The Emoji utilities plugin.\n */ class EmojiUtils extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiUtils';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * Checks if the emoji is supported by verifying the emoji version supported by the system first.\n\t * Then checks if emoji contains a zero width joiner (ZWJ), and if yes, then checks if it is supported by the system.\n\t */ isEmojiSupported(item, emojiSupportedVersionByOs, container) {\n const isEmojiVersionSupported = item.version <= emojiSupportedVersionByOs;\n if (!isEmojiVersionSupported) {\n return false;\n }\n if (!this.hasZwj(item.emoji)) {\n return true;\n }\n return this.isEmojiZwjSupported(item, container);\n }\n /**\n\t * Checks the supported emoji version by the OS, by sampling some representatives from different emoji releases.\n\t */ getEmojiSupportedVersionByOs() {\n for (const [emoji, emojiVersion] of Object.entries(EMOJI_SUPPORT_LEVEL)){\n if (EmojiUtils._isEmojiSupported(emoji)) {\n return emojiVersion;\n }\n }\n return 0;\n }\n /**\n\t * Check for ZWJ (zero width joiner) character.\n\t */ hasZwj(emoji) {\n return emoji.includes('\\u200d');\n }\n /**\n\t * Checks whether the emoji is supported in the operating system.\n\t */ isEmojiZwjSupported(item, container) {\n const emojiWidth = this.getNodeWidth(container, item.emoji);\n // On Windows, some supported emoji are ~50% bigger than the baseline emoji, but what we really want to guard\n // against are the ones that are 2x the size, because those are truly broken (person with red hair = person with\n // floating red wig, black cat = cat with black square, polar bear = bear with snowflake, etc.)\n // So here we set the threshold at 1.8 times the size of the baseline emoji.\n return emojiWidth < BASELINE_EMOJI_WIDTH * 1.8;\n }\n /**\n\t * Returns the width of the provided node.\n\t */ getNodeWidth(container, node) {\n const span = document.createElement('span');\n span.textContent = node;\n container.appendChild(span);\n const nodeWidth = span.offsetWidth;\n container.removeChild(span);\n return nodeWidth;\n }\n /**\n\t * Creates a div for emoji width testing purposes.\n\t */ createEmojiWidthTestingContainer() {\n const container = document.createElement('div');\n container.setAttribute('aria-hidden', 'true');\n container.style.position = 'absolute';\n container.style.left = '-9999px';\n container.style.whiteSpace = 'nowrap';\n container.style.fontSize = BASELINE_EMOJI_WIDTH + 'px';\n return container;\n }\n /**\n\t * Adds default skin tone property to each emoji. If emoji defines other skin tones, they are added as well.\n\t */ normalizeEmojiSkinTone(item) {\n const entry = {\n ...item,\n skins: {\n default: item.emoji\n }\n };\n if (item.skins) {\n item.skins.forEach((skin)=>{\n const skinTone = SKIN_TONE_MAP[skin.tone];\n entry.skins[skinTone] = skin.emoji;\n });\n }\n return entry;\n }\n /**\n\t * Checks whether the emoji belongs to a group that is allowed.\n\t */ isEmojiCategoryAllowed(item) {\n // Category group=2 contains skin tones only, which we do not want to render.\n return item.group !== 2;\n }\n /**\n\t * A function used to determine if emoji is supported by detecting pixels.\n\t *\n\t * Referenced for unit testing purposes. Kept in a separate file because of licensing.\n\t */ static _isEmojiSupported = isEmojiSupported;\n}\n\n// An endpoint from which the emoji data will be downloaded during plugin initialization.\n// The `{version}` placeholder is replaced with the value from editor config.\nconst DEFAULT_EMOJI_DATABASE_URL = 'https://cdn.ckeditor.com/ckeditor5/data/emoji/{version}/en.json';\nconst DEFAULT_EMOJI_VERSION = 16;\n/**\n * The emoji repository plugin.\n *\n * Loads the emoji repository from URL during plugin initialization and provides utility methods to search it.\n */ class EmojiRepository extends Plugin {\n /**\n\t * Emoji repository in a configured version.\n\t */ _items;\n /**\n\t * The resolved URL from which the emoji repository is downloaded.\n\t */ _url;\n /**\n\t * A promise resolved after downloading the emoji collection.\n\t * The promise resolves with `true` when the repository is successfully downloaded or `false` otherwise.\n\t */ _repositoryPromise;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiUtils\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiRepository';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('emoji', {\n version: undefined,\n skinTone: 'default',\n definitionsUrl: undefined,\n useCustomFont: false\n });\n this._url = this._getUrl();\n this._repositoryPromise = new Promise((resolve)=>{\n this._repositoryPromiseResolveCallback = resolve;\n });\n this._items = null;\n }\n /**\n\t * @inheritDoc\n\t */ async init() {\n this._warnAboutCdnUse();\n await this._loadAndCacheEmoji();\n this._items = this._getItems();\n if (!this._items) {\n /**\n\t\t\t * Unable to identify the available emoji to display.\n\t\t\t *\n\t\t\t * See the {@glink features/emoji#troubleshooting troubleshooting} section in the {@glink features/emoji Emoji feature} guide\n\t\t\t * for more details.\n\t\t\t *\n\t\t\t * @error emoji-repository-empty\n\t\t\t */ logWarning('emoji-repository-empty');\n return this._repositoryPromiseResolveCallback(false);\n }\n return this._repositoryPromiseResolveCallback(true);\n }\n /**\n\t * Returns an array of emoji entries that match the search query.\n\t * If the emoji repository is not loaded this method returns an empty array.\n\t *\n\t * @param searchQuery A search query to match emoji.\n\t * @returns An array of emoji entries that match the search query.\n\t */ getEmojiByQuery(searchQuery) {\n if (!this._items) {\n return [];\n }\n const searchQueryTokens = searchQuery.split(/\\s/).filter(Boolean);\n // Perform the search only if there is at least two non-white characters next to each other.\n const shouldSearch = searchQueryTokens.some((token)=>token.length >= 2);\n if (!shouldSearch) {\n return [];\n }\n return fuzzysort.go(searchQuery, this._items, {\n threshold: 0.6,\n keys: [\n 'emoticon',\n 'annotation',\n (emojiEntry)=>{\n // Instead of searching over all tags, let's use only those that matches the query.\n // It enables searching in tags with the space character in names.\n const searchQueryTokens = searchQuery.split(/\\s/).filter(Boolean);\n const matchedTags = searchQueryTokens.flatMap((tok)=>{\n return emojiEntry.tags?.filter((t)=>t.startsWith(tok));\n });\n return matchedTags.join();\n }\n ]\n }).map((result)=>result.obj);\n }\n /**\n\t * Groups all emojis by categories.\n\t * If the emoji repository is not loaded, it returns an empty array.\n\t *\n\t * @returns An array of emoji entries grouped by categories.\n\t */ getEmojiCategories() {\n const repository = this._getItems();\n if (!repository) {\n return [];\n }\n const { t } = this.editor.locale;\n const categories = [\n {\n title: t('Smileys & Expressions'),\n icon: '😄',\n groupId: 0\n },\n {\n title: t('Gestures & People'),\n icon: '👋',\n groupId: 1\n },\n {\n title: t('Animals & Nature'),\n icon: '🐻',\n groupId: 3\n },\n {\n title: t('Food & Drinks'),\n icon: '🍎',\n groupId: 4\n },\n {\n title: t('Travel & Places'),\n icon: '🚘',\n groupId: 5\n },\n {\n title: t('Activities'),\n icon: '🏀',\n groupId: 6\n },\n {\n title: t('Objects'),\n icon: '💡',\n groupId: 7\n },\n {\n title: t('Symbols'),\n icon: '🔵',\n groupId: 8\n },\n {\n title: t('Flags'),\n icon: '🏁',\n groupId: 9\n }\n ];\n const groups = groupBy(repository, (item)=>item.group);\n return categories.map((category)=>{\n return {\n ...category,\n items: groups[category.groupId]\n };\n });\n }\n /**\n\t * Returns an array of available skin tones.\n\t */ getSkinTones() {\n const { t } = this.editor.locale;\n return [\n {\n id: 'default',\n icon: '👋',\n tooltip: t('Default skin tone')\n },\n {\n id: 'light',\n icon: '👋🏻',\n tooltip: t('Light skin tone')\n },\n {\n id: 'medium-light',\n icon: '👋🏼',\n tooltip: t('Medium Light skin tone')\n },\n {\n id: 'medium',\n icon: '👋🏽',\n tooltip: t('Medium skin tone')\n },\n {\n id: 'medium-dark',\n icon: '👋🏾',\n tooltip: t('Medium Dark skin tone')\n },\n {\n id: 'dark',\n icon: '👋🏿',\n tooltip: t('Dark skin tone')\n }\n ];\n }\n /**\n\t * Indicates whether the emoji repository has been successfully downloaded and the plugin is operational.\n\t */ isReady() {\n return this._repositoryPromise;\n }\n /**\n\t * Returns the URL from which the emoji repository is downloaded. If the URL is not provided\n\t * in the configuration, the default URL is used with the version from the configuration.\n\t *\n\t * If both the URL and version are provided, a warning is logged.\n\t */ _getUrl() {\n const { definitionsUrl, version: version$1 } = this.editor.config.get('emoji');\n if (!definitionsUrl || definitionsUrl === 'cdn') {\n // URL was not provided or is set to 'cdn', so we use the default CDN URL.\n const urlVersion = version$1 || DEFAULT_EMOJI_VERSION;\n const url = new URL(DEFAULT_EMOJI_DATABASE_URL.replace('{version}', urlVersion.toString()));\n url.searchParams.set('editorVersion', version);\n return url;\n }\n if (version$1) {\n /**\n\t\t\t * Both {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`} and\n\t\t\t * {@link module:emoji/emojiconfig~EmojiConfig#version `emoji.version`} configuration options\n\t\t\t * are set. Only the `emoji.definitionsUrl` option will be used.\n\t\t\t *\n\t\t\t * The `emoji.version` option will be ignored and should be removed from the configuration.\n\t\t\t *\n\t\t\t * @error emoji-repository-redundant-version\n\t\t\t */ logWarning('emoji-repository-redundant-version');\n }\n return new URL(definitionsUrl);\n }\n /**\n\t * Warn users on self-hosted installations that this plugin uses a CDN to fetch the emoji repository.\n\t */ _warnAboutCdnUse() {\n const editor = this.editor;\n const config = editor.config.get('emoji');\n const licenseKey = editor.config.get('licenseKey');\n const distributionChannel = window[Symbol.for('cke distribution')];\n if (licenseKey === 'GPL') {\n // Don't warn GPL users.\n return;\n }\n if (distributionChannel === 'cloud') {\n // Don't warn cloud users, because they already use our CDN.\n return;\n }\n if (config && config.definitionsUrl) {\n // Don't warn users who have configured their own definitions URL.\n return;\n }\n /**\n\t\t * It was detected that your installation uses a commercial license key,\n\t\t * and the default {@glink features/emoji#emoji-source CKEditor CDN for Emoji plugin data}.\n\t\t *\n\t\t * To avoid this, you can use the {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`}\n\t\t * configuration option to provide a URL to your own emoji repository.\n\t\t *\n\t\t * If you want to suppress this warning, while using the default CDN, set this configuration option to `cdn`.\n\t\t *\n\t\t * @error emoji-repository-cdn-use\n\t\t */ logWarning('emoji-repository-cdn-use');\n }\n /**\n\t * Returns the emoji repository in a configured version if it is a non-empty array. Returns `null` otherwise.\n\t */ _getItems() {\n const repository = EmojiRepository._results[this._url.href];\n return repository && repository.length ? repository : null;\n }\n /**\n\t * Loads the emoji repository. If the repository is already loaded, it returns the cached result.\n\t * Otherwise, it fetches the repository from the URL and adds it to the cache.\n\t */ async _loadAndCacheEmoji() {\n if (EmojiRepository._results[this._url.href]) {\n // The repository has already been downloaded.\n return;\n }\n const result = await fetch(this._url, {\n cache: 'force-cache'\n }).then((response)=>{\n if (!response.ok) {\n return [];\n }\n return response.json();\n }).catch(()=>{\n return [];\n });\n EmojiRepository._results[this._url.href] = this._normalizeEmoji(result);\n }\n /**\n\t * Normalizes the raw data fetched from CDN. By normalization, we meant:\n\t *\n\t * * Filter out unsupported emoji (these that will not render correctly),\n\t * * Prepare skin tone variants if an emoji defines them.\n\t */ _normalizeEmoji(data) {\n const editor = this.editor;\n const useCustomFont = editor.config.get('emoji.useCustomFont');\n const emojiUtils = editor.plugins.get('EmojiUtils');\n const insertableEmoji = data.filter((item)=>emojiUtils.isEmojiCategoryAllowed(item));\n // When using a custom font, the feature does not filter any emoji.\n if (useCustomFont) {\n return insertableEmoji.map((item)=>emojiUtils.normalizeEmojiSkinTone(item));\n }\n const emojiSupportedVersionByOs = emojiUtils.getEmojiSupportedVersionByOs();\n const container = emojiUtils.createEmojiWidthTestingContainer();\n document.body.appendChild(container);\n const results = insertableEmoji.filter((item)=>emojiUtils.isEmojiSupported(item, emojiSupportedVersionByOs, container)).map((item)=>emojiUtils.normalizeEmojiSkinTone(item));\n container.remove();\n return results;\n }\n /**\n\t * Versioned emoji repository.\n\t */ static _results = {};\n}\n /**\n * Unable to load the emoji repository from the URL.\n *\n * If the URL works properly and there is no disruption of communication, please check your\n * {@glink getting-started/setup/csp Content Security Policy (CSP)} setting and make sure\n * the URL connection is allowed by the editor.\n *\n * @error emoji-repository-load-failed\n */\n\nconst EMOJI_MENTION_MARKER = ':';\nconst EMOJI_SHOW_ALL_OPTION_ID = ':__EMOJI_SHOW_ALL:';\nconst EMOJI_HINT_OPTION_ID = ':__EMOJI_HINT:';\n/**\n * The emoji mention plugin.\n *\n * Introduces the autocomplete of emojis while typing.\n */ class EmojiMention extends Plugin {\n /**\n\t * Defines a number of displayed items in the auto complete dropdown.\n\t *\n\t * It includes the \"Show all emoji...\" option if the `EmojiPicker` plugin is loaded.\n\t */ _emojiDropdownLimit;\n /**\n\t * Defines a skin tone that is set in the emoji config.\n\t */ _skinTone;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiRepository,\n Typing,\n 'Mention'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiMention';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this.editor.config.define('emoji', {\n dropdownLimit: 6\n });\n this._emojiDropdownLimit = editor.config.get('emoji.dropdownLimit');\n this._skinTone = editor.config.get('emoji.skinTone');\n this._setupMentionConfiguration(editor);\n }\n /**\n\t * Initializes the configuration for emojis in the mention feature.\n\t * If the marker used by emoji mention is already registered, it displays a warning.\n\t * If emoji mention configuration is detected, it does not register it for a second time.\n\t */ _setupMentionConfiguration(editor) {\n const mergeFieldsPrefix = editor.config.get('mergeFields.prefix');\n const mentionFeedsConfigs = editor.config.get('mention.feeds');\n const isEmojiMarkerUsedByMergeFields = mergeFieldsPrefix ? mergeFieldsPrefix[0] === EMOJI_MENTION_MARKER : false;\n const isEmojiMarkerUsedByMention = mentionFeedsConfigs.filter((config)=>!config._isEmojiMarker).some((config)=>config.marker === EMOJI_MENTION_MARKER);\n if (isEmojiMarkerUsedByMention || isEmojiMarkerUsedByMergeFields) {\n /**\n\t\t\t * The `marker` in the `emoji` config is already used by other plugin configuration.\n\t\t\t *\n\t\t\t * @error emoji-config-marker-already-used\n\t\t\t * @param {string} marker Used marker.\n\t\t\t */ logWarning('emoji-config-marker-already-used', {\n marker: EMOJI_MENTION_MARKER\n });\n return;\n }\n const isEmojiConfigDefined = mentionFeedsConfigs.some((config)=>config._isEmojiMarker);\n if (isEmojiConfigDefined) {\n return;\n }\n const emojiMentionFeedConfig = {\n _isEmojiMarker: true,\n marker: EMOJI_MENTION_MARKER,\n dropdownLimit: this._emojiDropdownLimit,\n itemRenderer: this._customItemRendererFactory(this.editor.t),\n feed: this._queryEmojiCallbackFactory()\n };\n this.editor.config.set('mention.feeds', [\n ...mentionFeedsConfigs,\n emojiMentionFeedConfig\n ]);\n }\n /**\n\t * @inheritDoc\n\t */ async init() {\n const editor = this.editor;\n this.emojiPickerPlugin = editor.plugins.has('EmojiPicker') ? editor.plugins.get('EmojiPicker') : null;\n this.emojiRepositoryPlugin = editor.plugins.get('EmojiRepository');\n this._isEmojiRepositoryAvailable = await this.emojiRepositoryPlugin.isReady();\n // Override the `mention` command listener if the emoji repository is ready.\n if (this._isEmojiRepositoryAvailable) {\n editor.once('ready', this._overrideMentionExecuteListener.bind(this));\n }\n }\n /**\n\t * Returns the `itemRenderer()` callback for mention config.\n\t */ _customItemRendererFactory(t) {\n return (item)=>{\n const itemElement = document.createElement('button');\n itemElement.classList.add('ck');\n itemElement.classList.add('ck-button');\n itemElement.classList.add('ck-button_with-text');\n itemElement.id = `mention-list-item-id${item.id.slice(0, -1)}`;\n itemElement.type = 'button';\n itemElement.tabIndex = -1;\n const labelElement = document.createElement('span');\n labelElement.classList.add('ck');\n labelElement.classList.add('ck-button__label');\n itemElement.appendChild(labelElement);\n if (item.id === EMOJI_HINT_OPTION_ID) {\n itemElement.classList.add('ck-list-item-button');\n itemElement.classList.add('ck-disabled');\n labelElement.textContent = t('Keep on typing to see the emoji.');\n } else if (item.id === EMOJI_SHOW_ALL_OPTION_ID) {\n labelElement.textContent = t('Show all emoji...');\n } else {\n labelElement.textContent = `${item.text} ${item.id}`;\n }\n return itemElement;\n };\n }\n /**\n\t * Overrides the default mention execute listener to insert an emoji as plain text instead.\n\t */ _overrideMentionExecuteListener() {\n const editor = this.editor;\n editor.commands.get('mention').on('execute', (event, data)=>{\n const eventData = data[0];\n // Ignore non-emoji auto-complete actions.\n if (eventData.marker !== EMOJI_MENTION_MARKER) {\n return;\n }\n // Do not propagate the event.\n event.stop();\n // Do nothing when executing after selecting a hint message.\n if (eventData.mention.id === EMOJI_HINT_OPTION_ID) {\n return;\n }\n // Trigger the picker UI.\n if (eventData.mention.id === EMOJI_SHOW_ALL_OPTION_ID) {\n const text = [\n ...eventData.range.getItems()\n ].filter((item)=>item.is('$textProxy')).map((item)=>item.data).reduce((result, text)=>result + text, '');\n editor.model.change((writer)=>{\n editor.model.deleteContent(writer.createSelection(eventData.range));\n });\n const emojiPickerPlugin = this.emojiPickerPlugin;\n emojiPickerPlugin.showUI(text.slice(1));\n setTimeout(()=>{\n emojiPickerPlugin.emojiPickerView.focus();\n });\n } else {\n editor.execute('insertText', {\n text: eventData.mention.text,\n range: eventData.range\n });\n }\n }, {\n priority: 'high'\n });\n }\n /**\n\t * Returns the `feed()` callback for mention config.\n\t */ _queryEmojiCallbackFactory() {\n return (searchQuery)=>{\n // Do not show anything when a query starts with a space.\n if (searchQuery.startsWith(' ')) {\n return [];\n }\n // Do not show anything when a query starts with a marker character.\n if (searchQuery.startsWith(EMOJI_MENTION_MARKER)) {\n return [];\n }\n // If the repository plugin is not available, return an empty feed to avoid confusion. See: #17842.\n if (!this._isEmojiRepositoryAvailable) {\n return [];\n }\n const emojis = this.emojiRepositoryPlugin.getEmojiByQuery(searchQuery).map((emoji)=>{\n let text = emoji.skins[this._skinTone] || emoji.skins.default;\n if (this.emojiPickerPlugin) {\n text = emoji.skins[this.emojiPickerPlugin.skinTone] || emoji.skins.default;\n }\n return {\n id: `:${emoji.annotation}:`,\n text\n };\n });\n if (!this.emojiPickerPlugin) {\n return emojis.slice(0, this._emojiDropdownLimit);\n }\n const actionItem = {\n id: searchQuery.length > 1 ? EMOJI_SHOW_ALL_OPTION_ID : EMOJI_HINT_OPTION_ID\n };\n return [\n ...emojis.slice(0, this._emojiDropdownLimit - 1),\n actionItem\n ];\n };\n }\n}\n\n/**\n * Command that shows the emoji user interface.\n */ class EmojiCommand extends Command {\n /**\n\t * Updates the command's {@link #isEnabled} based on the current selection.\n\t */ refresh() {\n const editor = this.editor;\n const model = editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n this.isEnabled = schema.checkChild(selection.getFirstPosition(), '$text');\n }\n /**\n\t * Opens emoji user interface for the current document selection.\n\t *\n\t * @fires execute\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */ execute(searchValue = '') {\n const emojiPickerPlugin = this.editor.plugins.get('EmojiPicker');\n emojiPickerPlugin.showUI(searchValue);\n }\n}\n\n/**\n * A grid of emoji tiles. It allows browsing emojis and selecting them to be inserted into the content.\n */ class EmojiGridView extends View {\n /**\n\t * A collection of the child tile views. Each tile represents a particular emoji.\n\t */ tiles;\n /**\n\t * Tracks information about the DOM focus in the grid.\n\t */ focusTracker;\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes;\n /**\n\t * An array containing all emojis grouped by their categories.\n\t */ emojiCategories;\n /**\n\t * A collection of all already created tile views. Each tile represents a particular emoji.\n\t * The cached tiles collection is used for efficiency purposes to avoid re-creating a particular\n\t * tile again when the grid view has changed.\n\t */ cachedTiles;\n /**\n\t * A callback used to filter grid items by a specified query.\n\t */ _getEmojiByQuery;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { categoryName, emojiCategories, getEmojiByQuery, skinTone }){\n super(locale);\n this.set('isEmpty', true);\n this.set('categoryName', categoryName);\n this.set('skinTone', skinTone);\n this.tiles = this.createCollection();\n this.cachedTiles = this.createCollection();\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this._getEmojiByQuery = getEmojiByQuery;\n this.emojiCategories = emojiCategories;\n const bind = this.bindTemplate;\n this.setTemplate({\n tag: 'div',\n children: [\n {\n tag: 'div',\n attributes: {\n role: 'grid',\n class: [\n 'ck',\n 'ck-emoji__grid'\n ]\n },\n children: this.tiles\n }\n ],\n attributes: {\n role: 'tabpanel',\n class: [\n 'ck',\n 'ck-emoji__tiles',\n // To avoid issues with focus cycling, ignore a grid when it's empty.\n bind.if('isEmpty', 'ck-hidden', (value)=>value)\n ]\n }\n });\n addKeyboardHandlingForGrid({\n keystrokeHandler: this.keystrokes,\n focusTracker: this.focusTracker,\n gridItems: this.tiles,\n numberOfColumns: ()=>global.window.getComputedStyle(this.element.firstChild) // Responsive `.ck-emoji-grid__tiles`.\n .getPropertyValue('grid-template-columns').split(' ').length,\n uiLanguageDirection: this.locale && this.locale.uiLanguageDirection\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.keystrokes.destroy();\n this.focusTracker.destroy();\n }\n /**\n\t * Focuses the first focusable in {@link ~EmojiGridView#tiles} if available.\n\t */ focus() {\n const firstTile = this.tiles.first;\n if (firstTile) {\n firstTile.focus();\n }\n }\n /**\n\t * Filters the grid view by the given regular expression.\n\t *\n\t * It filters either by the pattern or an emoji category, but never both.\n\t *\n\t * @param pattern Expression to search or `null` when filter by category name.\n\t */ filter(pattern) {\n const { matchingItems, allItems } = pattern ? this._getItemsByQuery(pattern.source) : this._getItemsByCategory();\n this._updateGrid(matchingItems);\n this.set('isEmpty', matchingItems.length === 0);\n return {\n resultsCount: matchingItems.length,\n totalItemsCount: allItems.length\n };\n }\n /**\n\t * Filters emojis to show based on the specified query phrase.\n\t *\n\t * @param query A query used to filter the grid.\n\t */ _getItemsByQuery(query) {\n return {\n matchingItems: this._getEmojiByQuery(query),\n allItems: this.emojiCategories.flatMap((group)=>group.items)\n };\n }\n /**\n\t * Returns emojis that belong to the specified category.\n\t */ _getItemsByCategory() {\n const emojiCategory = this.emojiCategories.find((item)=>item.title === this.categoryName);\n const { items } = emojiCategory;\n return {\n matchingItems: items,\n allItems: items\n };\n }\n /**\n\t * Updates the grid by removing the existing items and insert the new ones.\n\t *\n\t * @param items An array of items to insert.\n\t */ _updateGrid(items) {\n // Clean-up.\n [\n ...this.tiles\n ].forEach((item)=>{\n this.focusTracker.remove(item);\n this.tiles.remove(item);\n });\n items// Create tiles from matching results.\n .map((item)=>{\n const emoji = item.skins[this.skinTone] || item.skins.default;\n return this.cachedTiles.get(emoji) || this._createTile(emoji, item.annotation);\n })// Insert new elements.\n .forEach((item)=>{\n this.tiles.add(item);\n this.focusTracker.add(item);\n });\n }\n /**\n\t * Creates a new tile for the grid. Created tile is added to the {@link #cachedTiles} collection for further usage, if needed.\n\t *\n\t * @param emoji The emoji itself.\n\t * @param name The name of the emoji (e.g. \"Smiling Face with Smiling Eyes\").\n\t */ _createTile(emoji, name) {\n const tile = new ButtonView(this.locale);\n tile.viewUid = emoji;\n tile.extendTemplate({\n attributes: {\n class: [\n 'ck-emoji__tile'\n ]\n }\n });\n tile.set({\n label: emoji,\n tooltip: name,\n withText: true,\n ariaLabel: name,\n // To improve accessibility, disconnect a button and its label connection so that screen\n // readers can read the `[aria-label]` attribute directly from the more descriptive button.\n ariaLabelledBy: undefined\n });\n tile.on('execute', ()=>{\n this.fire('execute', {\n name,\n emoji\n });\n });\n this.cachedTiles.add(tile);\n return tile;\n }\n}\n\n/**\n * A class representing the navigation part of the emoji UI.\n * It is responsible allowing the user to select a particular emoji category.\n */ class EmojiCategoriesView extends View {\n /**\n\t * Tracks information about the DOM focus in the grid.\n\t */ focusTracker;\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes;\n /**\n\t * Helps cycling over focusable children in the input view.\n\t */ focusCycler;\n /**\n\t * A collection of the categories buttons.\n\t */ buttonViews;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { emojiCategories, categoryName }){\n super(locale);\n this.buttonViews = this.createCollection(emojiCategories.map((emojiCategory)=>this._createCategoryButton(emojiCategory)));\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this.focusCycler = new FocusCycler({\n focusables: this.buttonViews,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n focusPrevious: 'arrowleft',\n focusNext: 'arrowright'\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-emoji__categories-list'\n ],\n role: 'tablist'\n },\n children: this.buttonViews\n });\n this.on('change:categoryName', (event, name, newValue, oldValue)=>{\n const oldCategoryButton = this.buttonViews.find((button)=>button.tooltip === oldValue);\n if (oldCategoryButton) {\n oldCategoryButton.isOn = false;\n }\n const newCategoryButton = this.buttonViews.find((button)=>button.tooltip === newValue);\n newCategoryButton.isOn = true;\n });\n this.set('categoryName', categoryName);\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.buttonViews.forEach((buttonView)=>{\n this.focusTracker.add(buttonView);\n });\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n this.buttonViews.destroy();\n }\n /**\n\t * @inheritDoc\n\t */ focus() {\n this.buttonViews.first.focus();\n }\n /**\n\t * Marks all categories buttons as enabled (clickable).\n\t */ enableCategories() {\n this.buttonViews.forEach((buttonView)=>{\n buttonView.isEnabled = true;\n });\n }\n /**\n\t * Marks all categories buttons as disabled (non-clickable).\n\t */ disableCategories() {\n this.buttonViews.forEach((buttonView)=>{\n buttonView.set({\n class: '',\n isEnabled: false,\n isOn: false\n });\n });\n }\n /**\n\t * Creates a button representing a category item.\n\t */ _createCategoryButton(emojiCategory) {\n const buttonView = new ButtonView();\n const bind = buttonView.bindTemplate;\n // A `[role=\"tab\"]` element requires also the `[aria-selected]` attribute with its state.\n buttonView.extendTemplate({\n attributes: {\n 'aria-selected': bind.to('isOn', (value)=>value.toString()),\n class: [\n 'ck-emoji__category-item'\n ]\n }\n });\n buttonView.set({\n ariaLabel: emojiCategory.title,\n label: emojiCategory.icon,\n role: 'tab',\n tooltip: emojiCategory.title,\n withText: true,\n // To improve accessibility, disconnect a button and its label connection so that screen\n // readers can read the `[aria-label]` attribute directly from the more descriptive button.\n ariaLabelledBy: undefined\n });\n buttonView.on('execute', ()=>{\n this.categoryName = emojiCategory.title;\n });\n buttonView.on('change:isEnabled', ()=>{\n if (buttonView.isEnabled && buttonView.tooltip === this.categoryName) {\n buttonView.isOn = true;\n }\n });\n return buttonView;\n }\n}\n\n/**\n * A view responsible for providing an input element that allows filtering emoji by the provided query.\n */ class EmojiSearchView extends View {\n /**\n\t * The find in text input view that stores the searched string.\n\t */ inputView;\n /**\n\t * An instance of the `EmojiGridView`.\n\t */ gridView;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { gridView, resultsView }){\n super(locale);\n this.gridView = gridView;\n const t = locale.t;\n this.inputView = new SearchTextView(this.locale, {\n queryView: {\n label: t('Find an emoji (min. 2 characters)'),\n creator: createLabeledInputText\n },\n filteredView: this.gridView,\n infoView: {\n instance: resultsView\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-search'\n ],\n tabindex: '-1'\n },\n children: [\n this.inputView.queryView\n ]\n });\n // Pass through the `search` event to handle it by a parent view.\n this.inputView.delegate('search').to(this);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.inputView.destroy();\n }\n /**\n\t * Searches the {@link #gridView} for the given query.\n\t *\n\t * @param query The search query string.\n\t */ search(query) {\n const regExp = query ? new RegExp(escapeRegExp(query), 'ig') : null;\n const filteringResults = this.gridView.filter(regExp);\n this.inputView.fire('search', {\n query,\n ...filteringResults\n });\n }\n /**\n\t * Allows defining the default value in the search text field.\n\t *\n\t * @param value The new value.\n\t */ setInputValue(value) {\n if (!value) {\n this.inputView.queryView.fieldView.reset();\n } else {\n this.inputView.queryView.fieldView.value = value;\n }\n }\n /**\n\t * Returns an input provided by a user in the search text field.\n\t */ getInputValue() {\n return this.inputView.queryView.fieldView.element.value;\n }\n /**\n\t * @inheritDoc\n\t */ focus() {\n this.inputView.focus();\n }\n}\n\n/**\n * A view responsible for selecting a skin tone for an emoji.\n */ class EmojiToneView extends View {\n /**\n\t * A dropdown element for selecting an active skin tone.\n\t */ dropdownView;\n /**\n\t * An array of available skin tones.\n\t */ _skinTones;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { skinTone, skinTones }){\n super(locale);\n this.set('skinTone', skinTone);\n this._skinTones = skinTones;\n const t = locale.t;\n const accessibleLabel = t('Select skin tone');\n const dropdownView = createDropdown(locale);\n const itemDefinitions = new Collection();\n for (const { id, icon, tooltip } of this._skinTones){\n const def = {\n type: 'button',\n model: new UIModel({\n value: id,\n label: icon,\n ariaLabel: tooltip,\n tooltip,\n tooltipPosition: 'e',\n role: 'menuitemradio',\n withText: true,\n // To improve accessibility, disconnect a button and its label connection so that screen\n // readers can read the `[aria-label]` attribute directly from the more descriptive button.\n ariaLabelledBy: undefined\n })\n };\n def.model.bind('isOn').to(this, 'skinTone', (value)=>value === id);\n itemDefinitions.add(def);\n }\n addListToDropdown(dropdownView, itemDefinitions, {\n ariaLabel: accessibleLabel,\n role: 'menu'\n });\n dropdownView.buttonView.set({\n label: this._getSkinTone().icon,\n ariaLabel: accessibleLabel,\n ariaLabelledBy: undefined,\n isOn: false,\n withText: true,\n tooltip: accessibleLabel\n });\n this.dropdownView = dropdownView;\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', (evt)=>{\n this.skinTone = evt.source.value;\n });\n dropdownView.buttonView.bind('label').to(this, 'skinTone', ()=>{\n return this._getSkinTone().icon;\n });\n dropdownView.buttonView.bind('ariaLabel').to(this, 'skinTone', ()=>{\n // Render a current state, but also what the dropdown does.\n return `${this._getSkinTone().tooltip}, ${accessibleLabel}`;\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-emoji__skin-tone'\n ]\n },\n children: [\n dropdownView\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ focus() {\n this.dropdownView.buttonView.focus();\n }\n /**\n\t * Helper method for receiving an object describing the active skin tone.\n\t */ _getSkinTone() {\n return this._skinTones.find((tone)=>tone.id === this.skinTone);\n }\n}\n\n/**\n * A view that glues pieces of the emoji panel together.\n */ class EmojiPickerView extends View {\n /**\n\t * A collection of the focusable children of the view.\n\t */ items;\n /**\n\t * Tracks information about the DOM focus in the view.\n\t */ focusTracker;\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes;\n /**\n\t * Helps cycling over focusable {@link #items} in the view.\n\t */ focusCycler;\n /**\n\t * An instance of the `EmojiSearchView`.\n\t */ searchView;\n /**\n\t * An instance of the `EmojiToneView`.\n\t */ toneView;\n /**\n\t * An instance of the `EmojiCategoriesView`.\n\t */ categoriesView;\n /**\n\t * An instance of the `EmojiGridView`.\n\t */ gridView;\n /**\n\t * An instance of the `EmojiGridView`.\n\t */ infoView;\n /**\n\t * @inheritDoc\n\t */ constructor(locale, { emojiCategories, getEmojiByQuery, skinTone, skinTones }){\n super(locale);\n const categoryName = emojiCategories[0].title;\n this.gridView = new EmojiGridView(locale, {\n categoryName,\n emojiCategories,\n getEmojiByQuery,\n skinTone\n });\n this.infoView = new SearchInfoView();\n this.searchView = new EmojiSearchView(locale, {\n gridView: this.gridView,\n resultsView: this.infoView\n });\n this.categoriesView = new EmojiCategoriesView(locale, {\n emojiCategories,\n categoryName\n });\n this.toneView = new EmojiToneView(locale, {\n skinTone,\n skinTones\n });\n this.items = this.createCollection([\n this.searchView,\n this.toneView,\n this.categoriesView,\n this.gridView,\n this.infoView\n ]);\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this.focusCycler = new FocusCycler({\n focusables: this.items,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n focusPrevious: 'shift + tab',\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'div',\n children: [\n {\n tag: 'div',\n children: [\n this.searchView,\n this.toneView\n ],\n attributes: {\n class: [\n 'ck',\n 'ck-emoji__search'\n ]\n }\n },\n this.categoriesView,\n this.gridView,\n {\n tag: 'div',\n children: [\n this.infoView\n ],\n attributes: {\n class: [\n 'ck',\n 'ck-search__results'\n ]\n }\n }\n ],\n attributes: {\n tabindex: '-1',\n class: [\n 'ck',\n 'ck-emoji',\n 'ck-search'\n ]\n }\n });\n this._setupEventListeners();\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.focusTracker.add(this.searchView.element);\n this.focusTracker.add(this.toneView.element);\n this.focusTracker.add(this.categoriesView.element);\n this.focusTracker.add(this.gridView.element);\n this.focusTracker.add(this.infoView.element);\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the search input.\n\t */ focus() {\n this.searchView.focus();\n }\n /**\n\t * Initializes interactions between sub-views.\n\t */ _setupEventListeners() {\n const t = this.locale.t;\n // Disable the category switcher when filtering by a query.\n this.searchView.on('search', (evt, data)=>{\n if (data.query) {\n this.categoriesView.disableCategories();\n } else {\n this.categoriesView.enableCategories();\n }\n });\n // Show a user-friendly message depending on the search query.\n this.searchView.on('search', (evt, data)=>{\n if (data.query.length === 1) {\n this.infoView.set({\n primaryText: t('Keep on typing to see the emoji.'),\n secondaryText: t('The query must contain at least two characters.'),\n isVisible: true\n });\n } else if (!data.resultsCount) {\n this.infoView.set({\n primaryText: t('No emojis were found matching \"%0\".', data.query),\n secondaryText: t('Please try a different phrase or check the spelling.'),\n isVisible: true\n });\n } else {\n this.infoView.set({\n isVisible: false\n });\n }\n });\n // Emit an update event to react to balloon dimensions changes.\n this.searchView.on('search', ()=>{\n this.fire('update');\n this.gridView.element.scrollTo(0, 0);\n });\n // Update the grid of emojis when the selected category is changed.\n this.categoriesView.on('change:categoryName', (ev, args, categoryName)=>{\n this.gridView.categoryName = categoryName;\n this.searchView.search('');\n });\n // Update the grid of emojis when the selected skin tone is changed.\n // In such a case, the displayed emoji should use an updated skin tone value.\n this.toneView.on('change:skinTone', (evt, propertyName, newValue)=>{\n this.gridView.skinTone = newValue;\n this.searchView.search(this.searchView.getInputValue());\n });\n }\n}\n\n/**\n * The emoji picker form view.\n */ class EmojiPickerFormView extends View {\n /**\n\t * The Back button view displayed in the header.\n\t */ backButtonView;\n /**\n\t * Tracks information about DOM focus in the form.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * A collection of child views.\n\t */ children;\n /**\n\t * A collection of views that can be focused in the form.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */ _focusCycler;\n /**\n\t * Creates an instance of the {@link module:emoji/ui/emojipickerformview~EmojiPickerFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t */ constructor(locale){\n super(locale);\n this.backButtonView = this._createBackButton();\n this.children = this.createCollection([\n this._createHeaderView()\n ]);\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backward using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-form',\n 'ck-emoji-picker-form',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: this.children\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n const childViews = [\n ...this.children.filter(isFocusable),\n this.backButtonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n // Register the view in the focus cycler to avoid nested focus cycles traps.\n if (isViewWithFocusCycler(v)) {\n this._focusCycler.chain(v.focusCycler);\n }\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */ focus() {\n this._focusCycler.focusFirst();\n }\n /**\n\t * Creates a back button view that cancels the form.\n\t */ _createBackButton() {\n const t = this.locale.t;\n const backButton = new ButtonView(this.locale);\n backButton.set({\n class: 'ck-button-back',\n label: t('Back'),\n icon: IconPreviousArrow,\n tooltip: true\n });\n backButton.delegate('execute').to(this, 'cancel');\n return backButton;\n }\n /**\n\t * Creates a header view for the form.\n\t */ _createHeaderView() {\n const t = this.locale.t;\n const header = new FormHeaderView(this.locale, {\n label: t('Emoji picker')\n });\n header.children.add(this.backButtonView, 0);\n return header;\n }\n}\n\nconst VISUAL_SELECTION_MARKER_NAME = 'emoji-picker';\n/**\n * The emoji picker plugin.\n *\n * Introduces the `'emoji'` dropdown.\n */ class EmojiPicker extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiRepository,\n ContextualBalloon,\n Dialog,\n Typing\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'EmojiPicker';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ async init() {\n const editor = this.editor;\n this.balloonPlugin = editor.plugins.get('ContextualBalloon');\n this.emojiRepositoryPlugin = editor.plugins.get('EmojiRepository');\n // Skip registering a button in the toolbar and list item in the menu bar if the emoji repository is not ready.\n if (!await this.emojiRepositoryPlugin.isReady()) {\n return;\n }\n const command = new EmojiCommand(editor);\n editor.commands.add('emoji', command);\n editor.ui.componentFactory.add('emoji', ()=>{\n const button = this._createButton(ButtonView, command);\n button.set({\n tooltip: true\n });\n return button;\n });\n editor.ui.componentFactory.add('menuBar:emoji', ()=>{\n return this._createButton(MenuBarMenuListItemButtonView, command);\n });\n this._setupConversion();\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n if (this.emojiPickerView) {\n this.emojiPickerView.destroy();\n }\n }\n /**\n\t * Represents an active skin tone. Its value depends on the emoji UI plugin.\n\t *\n\t * Before opening the UI for the first time, the returned value is read from the editor configuration.\n\t * Otherwise, it reflects the user's intention.\n\t */ get skinTone() {\n if (!this.emojiPickerView) {\n return this.editor.config.get('emoji.skinTone');\n }\n return this.emojiPickerView.gridView.skinTone;\n }\n /**\n\t * Displays the balloon with the emoji picker.\n\t *\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */ showUI(searchValue = '') {\n // Show visual selection on a text when the contextual balloon is displayed.\n // See #17654.\n this._showFakeVisualSelection();\n if (!this.emojiPickerView) {\n this.emojiPickerView = this._createEmojiPickerView();\n }\n if (searchValue) {\n this.emojiPickerView.searchView.setInputValue(searchValue);\n }\n this.emojiPickerView.searchView.search(searchValue);\n if (!this.emojiPickerFormView) {\n this.emojiPickerFormView = this._createEmojiPickerFormView();\n }\n if (!this.balloonPlugin.hasView(this.emojiPickerFormView)) {\n // Show back button if there is another balloon view visible.\n this.emojiPickerFormView.backButtonView.isVisible = !!this.balloonPlugin.visibleView;\n this.balloonPlugin.add({\n view: this.emojiPickerFormView,\n position: this._getBalloonPositionData(),\n balloonClassName: 'ck-emoji-picker-balloon'\n });\n }\n this.emojiPickerView.focus();\n }\n /**\n\t * Creates a button for toolbar and menu bar that will show the emoji dialog.\n\t */ _createButton(ViewClass, command) {\n const buttonView = new ViewClass(this.editor.locale);\n const t = this.editor.locale.t;\n buttonView.bind('isEnabled').to(command, 'isEnabled');\n buttonView.set({\n label: t('Emoji'),\n icon: IconEmoji,\n isToggleable: true\n });\n buttonView.on('execute', ()=>{\n this.editor.editing.view.scrollToTheSelection();\n this.showUI();\n });\n return buttonView;\n }\n /**\n\t * Creates an instance of the `EmojiPickerView` class that represents an emoji balloon.\n\t */ _createEmojiPickerView() {\n const emojiPickerView = new EmojiPickerView(this.editor.locale, {\n emojiCategories: this.emojiRepositoryPlugin.getEmojiCategories(),\n skinTone: this.editor.config.get('emoji.skinTone'),\n skinTones: this.emojiRepositoryPlugin.getSkinTones(),\n getEmojiByQuery: (query)=>{\n return this.emojiRepositoryPlugin.getEmojiByQuery(query);\n }\n });\n // Insert an emoji on a tile click.\n this.listenTo(emojiPickerView.gridView, 'execute', (evt, data)=>{\n const editor = this.editor;\n const textToInsert = data.emoji;\n this._hideUI();\n editor.execute('insertText', {\n text: textToInsert\n });\n });\n return emojiPickerView;\n }\n /**\n\t * Creates an instance of the `EmojiPickerFormView` class that represents a balloon with the emoji picker.\n\t */ _createEmojiPickerFormView() {\n const emojiPickerFormView = new EmojiPickerFormView(this.editor.locale);\n emojiPickerFormView.children.add(this.emojiPickerView);\n // Update the balloon position when layout is changed.\n this.listenTo(this.emojiPickerView, 'update', ()=>{\n if (this.balloonPlugin.visibleView === emojiPickerFormView) {\n this.balloonPlugin.updatePosition();\n }\n });\n // Close the dialog when the back button is clicked.\n this.listenTo(emojiPickerFormView, 'cancel', ()=>{\n this._hideUI();\n });\n // Close the panel on `Esc` key press when the **actions have focus**.\n emojiPickerFormView.keystrokes.set('Esc', (data, cancel)=>{\n this._hideUI();\n cancel();\n });\n // Close the dialog when clicking outside of it.\n clickOutsideHandler({\n emitter: emojiPickerFormView,\n contextElements: [\n this.balloonPlugin.view.element\n ],\n callback: ()=>{\n // Focusing on the editable during a click outside the balloon panel might\n // cause the selection to move to the beginning of the editable, so we avoid\n // focusing on it during this action.\n // See: https://github.com/ckeditor/ckeditor5/issues/18253\n this._hideUI(false);\n },\n activator: ()=>this.balloonPlugin.visibleView === emojiPickerFormView\n });\n return emojiPickerFormView;\n }\n /**\n\t * Hides the balloon with the emoji picker.\n\t *\n\t * @param updateFocus Whether to focus the editor after closing the emoji picker.\n\t */ _hideUI(updateFocus = true) {\n this.balloonPlugin.remove(this.emojiPickerFormView);\n this.emojiPickerView.searchView.setInputValue('');\n if (updateFocus) {\n this.editor.editing.view.focus();\n }\n this._hideFakeVisualSelection();\n }\n /**\n\t * Registers converters.\n\t */ _setupConversion() {\n const editor = this.editor;\n // Renders a fake visual selection marker on an expanded selection.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n classes: [\n 'ck-fake-emoji-selection'\n ]\n }\n });\n // Renders a fake visual selection marker on a collapsed selection.\n editor.conversion.for('editingDowncast').markerToElement({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: (data, { writer })=>{\n if (!data.markerRange.isCollapsed) {\n return null;\n }\n const markerElement = writer.createUIElement('span');\n writer.addClass([\n 'ck-fake-emoji-selection',\n 'ck-fake-emoji-selection_collapsed'\n ], markerElement);\n return markerElement;\n }\n });\n }\n /**\n\t * Returns positioning options for the {@link #balloonPlugin}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */ _getBalloonPositionData() {\n const view = this.editor.editing.view;\n const viewDocument = view.document;\n // Set a target position by converting view selection range to DOM.\n const target = ()=>view.domConverter.viewRangeToDom(viewDocument.selection.getFirstRange());\n return {\n target\n };\n }\n /**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds an 'emoji-picker' marker into the document that is rendered as a highlight on selected text fragment.\n\t */ _showFakeVisualSelection() {\n const model = this.editor.model;\n model.change((writer)=>{\n const range = model.document.selection.getFirstRange();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n writer.updateMarker(VISUAL_SELECTION_MARKER_NAME, {\n range\n });\n } else {\n if (range.start.isAtEnd) {\n const startPosition = range.start.getLastMatchingPosition(({ item })=>!model.schema.isContent(item), {\n boundaries: range\n });\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(startPosition, range.end)\n });\n } else {\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range\n });\n }\n }\n });\n }\n /**\n\t * Hides the fake visual selection.\n\t */ _hideFakeVisualSelection() {\n const model = this.editor.model;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n model.change((writer)=>{\n writer.removeMarker(VISUAL_SELECTION_MARKER_NAME);\n });\n }\n }\n}\n\n/**\n * The emoji plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:emoji/emojimention~EmojiMention},\n * * {@link module:emoji/emojipicker~EmojiPicker},\n */ class Emoji extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n EmojiMention,\n EmojiPicker\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Emoji';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Emoji, EmojiCategoriesView, EmojiCommand, EmojiGridView, EmojiMention, EmojiPicker, EmojiPickerFormView, EmojiPickerView, EmojiRepository, EmojiSearchView, EmojiToneView, EmojiUtils, isEmojiSupported as _isEmojiSupported };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2023, Koala Interactive SAS\n * For licensing, see https://github.com/koala-interactive/is-emoji-supported/blob/master/LICENSE.md\n */\n\n/**\n * @module emoji/utils/isemojisupported\n */\n\n/**\n * Checks if the two pixels parts are the same using canvas.\n *\n * @internal\n */\nexport function isEmojiSupported( unicode: string ): boolean {\n\tconst ctx = getCanvas();\n\n\t/* istanbul ignore next -- @preserve */\n\tif ( !ctx ) {\n\t\treturn false;\n\t}\n\n\tconst CANVAS_HEIGHT = 25;\n\tconst CANVAS_WIDTH = 20;\n\tconst textSize = Math.floor( CANVAS_HEIGHT / 2 );\n\n\t// Initialize canvas context.\n\tctx.font = textSize + 'px Arial, Sans-Serif';\n\tctx.textBaseline = 'top';\n\tctx.canvas.width = CANVAS_WIDTH * 2;\n\tctx.canvas.height = CANVAS_HEIGHT;\n\n\tctx.clearRect( 0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT );\n\n\t// Draw in red on the left.\n\tctx.fillStyle = '#FF0000';\n\tctx.fillText( unicode, 0, 22 );\n\n\t// Draw in blue on right.\n\tctx.fillStyle = '#0000FF';\n\tctx.fillText( unicode, CANVAS_WIDTH, 22 );\n\n\tconst a = ctx.getImageData( 0, 0, CANVAS_WIDTH, CANVAS_HEIGHT ).data;\n\tconst count = a.length;\n\tlet i = 0;\n\n\t// Search the first visible pixel.\n\tfor ( ; i < count && !a[ i + 3 ]; i += 4 );\n\n\t// No visible pixel.\n\t/* istanbul ignore next -- @preserve */\n\tif ( i >= count ) {\n\t\treturn false;\n\t}\n\n\t// Emoji has immutable color, so we check the color of the emoji in two different colors.\n\t// the result show be the same.\n\tconst x = CANVAS_WIDTH + ( ( i / 4 ) % CANVAS_WIDTH );\n\tconst y = Math.floor( i / 4 / CANVAS_WIDTH );\n\tconst b = ctx.getImageData( x, y, 1, 1 ).data;\n\n\t/* istanbul ignore next -- @preserve */\n\tif ( a[ i ] !== b[ 0 ] || a[ i + 2 ] !== b[ 2 ]) {\n\t\treturn false;\n\t}\n\n\t//Some emojis consist of different ones, so they will show multiple characters if they are not supported.\n\t/* istanbul ignore next -- @preserve */\n\tif ( ctx.measureText( unicode ).width >= CANVAS_WIDTH ) {\n\t\treturn false;\n\t}\n\n\t// Supported.\n\treturn true;\n};\n\nfunction getCanvas(): CanvasRenderingContext2D | null {\n\ttry {\n\t\treturn document.createElement( 'canvas' ).getContext( '2d', { willReadFrequently: true } );\n\t} catch {\n\t\t/* istanbul ignore next -- @preserve */\n\t\treturn null;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { EmojiCdnResource, EmojiEntry } from './emojirepository.js';\nimport type { EmojiSkinToneId } from './emojiconfig.js';\nimport { isEmojiSupported } from './utils/isemojisupported.js';\n\n/**\n * @module emoji/emojiutils\n */\n\nconst SKIN_TONE_MAP: Record<number, EmojiSkinToneId> = {\n\t0: 'default',\n\t1: 'light',\n\t2: 'medium-light',\n\t3: 'medium',\n\t4: 'medium-dark',\n\t5: 'dark'\n};\n\n/**\n * A map representing an emoji and its release version.\n * It's used to identify a user's minimal supported emoji level.\n * We skip versions with older patches, such as 15.0 instead of 15.1 etc.\n */\nconst EMOJI_SUPPORT_LEVEL: Record<string, number> = {\n\t'': 16, // Face with bags under eyes.\n\t'🫨': 15.1, // Shaking Face.\n\t'🫠': 14, // Melting Face.\n\t'😶🌫️': 13.1, // Face in Clouds.\n\t'🧑💻': 12.1, // Technologist.\n\t'🥰': 11, // Smiling Face with Hearts.\n\t'🤪': 5, // Zany Face.\n\t'⚕️': 4, // Medical Symbol.\n\t'🤣': 3, // Rolling on the Floor Laughing.\n\t'👋🏽': 2, // Waving Hand: Medium Skin Tone.\n\t'😀': 1, // Grinning Face.\n\t'😐': 0.7, // Neutral Face.\n\t'😂': 0.6 // Face with Tears of Joy.\n};\n\nconst BASELINE_EMOJI_WIDTH = 24;\n\n/**\n * The Emoji utilities plugin.\n */\nexport class EmojiUtils extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiUtils' 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 * Checks if the emoji is supported by verifying the emoji version supported by the system first.\n\t * Then checks if emoji contains a zero width joiner (ZWJ), and if yes, then checks if it is supported by the system.\n\t */\n\tpublic isEmojiSupported( item: EmojiCdnResource, emojiSupportedVersionByOs: number, container: HTMLDivElement ): boolean {\n\t\tconst isEmojiVersionSupported = item.version <= emojiSupportedVersionByOs;\n\n\t\tif ( !isEmojiVersionSupported ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !this.hasZwj( item.emoji ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.isEmojiZwjSupported( item, container );\n\t}\n\n\t/**\n\t * Checks the supported emoji version by the OS, by sampling some representatives from different emoji releases.\n\t */\n\tpublic getEmojiSupportedVersionByOs(): number {\n\t\tfor ( const [ emoji, emojiVersion ] of Object.entries( EMOJI_SUPPORT_LEVEL ) ) {\n\t\t\tif ( EmojiUtils._isEmojiSupported( emoji ) ) {\n\t\t\t\treturn emojiVersion;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Check for ZWJ (zero width joiner) character.\n\t */\n\tpublic hasZwj( emoji: string ): boolean {\n\t\treturn emoji.includes( '\\u200d' );\n\t}\n\n\t/**\n\t * Checks whether the emoji is supported in the operating system.\n\t */\n\tpublic isEmojiZwjSupported( item: EmojiCdnResource, container: HTMLDivElement ): boolean {\n\t\tconst emojiWidth = this.getNodeWidth( container, item.emoji );\n\n\t\t// On Windows, some supported emoji are ~50% bigger than the baseline emoji, but what we really want to guard\n\t\t// against are the ones that are 2x the size, because those are truly broken (person with red hair = person with\n\t\t// floating red wig, black cat = cat with black square, polar bear = bear with snowflake, etc.)\n\t\t// So here we set the threshold at 1.8 times the size of the baseline emoji.\n\t\treturn emojiWidth < BASELINE_EMOJI_WIDTH * 1.8;\n\t}\n\n\t/**\n\t * Returns the width of the provided node.\n\t */\n\tpublic getNodeWidth( container: HTMLDivElement, node: string ): number {\n\t\tconst span = document.createElement( 'span' );\n\t\tspan.textContent = node;\n\t\tcontainer.appendChild( span );\n\t\tconst nodeWidth = span.offsetWidth;\n\t\tcontainer.removeChild( span );\n\n\t\treturn nodeWidth;\n\t}\n\n\t/**\n\t * Creates a div for emoji width testing purposes.\n\t */\n\tpublic createEmojiWidthTestingContainer(): HTMLDivElement {\n\t\tconst container = document.createElement( 'div' );\n\n\t\tcontainer.setAttribute( 'aria-hidden', 'true' );\n\t\tcontainer.style.position = 'absolute';\n\t\tcontainer.style.left = '-9999px';\n\t\tcontainer.style.whiteSpace = 'nowrap';\n\t\tcontainer.style.fontSize = BASELINE_EMOJI_WIDTH + 'px';\n\n\t\treturn container;\n\t}\n\n\t/**\n\t * Adds default skin tone property to each emoji. If emoji defines other skin tones, they are added as well.\n\t */\n\tpublic normalizeEmojiSkinTone( item: EmojiCdnResource ): EmojiEntry {\n\t\tconst entry: EmojiEntry = {\n\t\t\t...item,\n\t\t\tskins: {\n\t\t\t\tdefault: item.emoji\n\t\t\t}\n\t\t};\n\n\t\tif ( item.skins ) {\n\t\t\titem.skins.forEach( skin => {\n\t\t\t\tconst skinTone = SKIN_TONE_MAP[ skin.tone ];\n\n\t\t\t\tentry.skins[ skinTone ] = skin.emoji;\n\t\t\t} );\n\t\t}\n\n\t\treturn entry;\n\t}\n\n\t/**\n\t * Checks whether the emoji belongs to a group that is allowed.\n\t */\n\tpublic isEmojiCategoryAllowed( item: EmojiCdnResource ): boolean {\n\t\t// Category group=2 contains skin tones only, which we do not want to render.\n\t\treturn item.group !== 2;\n\t}\n\n\t/**\n\t * A function used to determine if emoji is supported by detecting pixels.\n\t *\n\t * Referenced for unit testing purposes. Kept in a separate file because of licensing.\n\t */\n\tprivate static _isEmojiSupported = isEmojiSupported;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojirepository\n */\n\nimport fuzzysort from 'fuzzysort';\nimport { groupBy } from 'es-toolkit/compat';\n\nimport { type Editor, Plugin } from 'ckeditor5/src/core.js';\nimport { logWarning, version as editorVersion } from 'ckeditor5/src/utils.js';\nimport { EmojiUtils } from './emojiutils.js';\nimport type { EmojiSkinToneId } from './emojiconfig.js';\n\n// An endpoint from which the emoji data will be downloaded during plugin initialization.\n// The `{version}` placeholder is replaced with the value from editor config.\nconst DEFAULT_EMOJI_DATABASE_URL = 'https://cdn.ckeditor.com/ckeditor5/data/emoji/{version}/en.json';\n\nconst DEFAULT_EMOJI_VERSION = 16;\n\n/**\n * The emoji repository plugin.\n *\n * Loads the emoji repository from URL during plugin initialization and provides utility methods to search it.\n */\nexport class EmojiRepository extends Plugin {\n\t/**\n\t * A callback to resolve the {@link #_repositoryPromise} to control the return value of this promise.\n\t */\n\tdeclare private _repositoryPromiseResolveCallback: ( value: boolean ) => void;\n\n\t/**\n\t * Emoji repository in a configured version.\n\t */\n\tprivate _items: Array<EmojiEntry> | null;\n\n\t/**\n\t * The resolved URL from which the emoji repository is downloaded.\n\t */\n\tprivate readonly _url: URL;\n\n\t/**\n\t * A promise resolved after downloading the emoji collection.\n\t * The promise resolves with `true` when the repository is successfully downloaded or `false` otherwise.\n\t */\n\tprivate readonly _repositoryPromise: Promise<boolean>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiRepository' 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\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'emoji', {\n\t\t\tversion: undefined,\n\t\t\tskinTone: 'default',\n\t\t\tdefinitionsUrl: undefined,\n\t\t\tuseCustomFont: false\n\t\t} );\n\n\t\tthis._url = this._getUrl();\n\n\t\tthis._repositoryPromise = new Promise<boolean>( resolve => {\n\t\t\tthis._repositoryPromiseResolveCallback = resolve;\n\t\t} );\n\n\t\tthis._items = null;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async init(): Promise<void> {\n\t\tthis._warnAboutCdnUse();\n\n\t\tawait this._loadAndCacheEmoji();\n\n\t\tthis._items = this._getItems();\n\n\t\tif ( !this._items ) {\n\t\t\t/**\n\t\t\t * Unable to identify the available emoji to display.\n\t\t\t *\n\t\t\t * See the {@glink features/emoji#troubleshooting troubleshooting} section in the {@glink features/emoji Emoji feature} guide\n\t\t\t * for more details.\n\t\t\t *\n\t\t\t * @error emoji-repository-empty\n\t\t\t */\n\t\t\tlogWarning( 'emoji-repository-empty' );\n\n\t\t\treturn this._repositoryPromiseResolveCallback( false );\n\t\t}\n\n\t\treturn this._repositoryPromiseResolveCallback( true );\n\t}\n\n\t/**\n\t * Returns an array of emoji entries that match the search query.\n\t * If the emoji repository is not loaded this method returns an empty array.\n\t *\n\t * @param searchQuery A search query to match emoji.\n\t * @returns An array of emoji entries that match the search query.\n\t */\n\tpublic getEmojiByQuery( searchQuery: string ): Array<EmojiEntry> {\n\t\tif ( !this._items ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst searchQueryTokens = searchQuery.split( /\\s/ ).filter( Boolean );\n\n\t\t// Perform the search only if there is at least two non-white characters next to each other.\n\t\tconst shouldSearch = searchQueryTokens.some( token => token.length >= 2 );\n\n\t\tif ( !shouldSearch ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn fuzzysort\n\t\t\t.go( searchQuery, this._items, {\n\t\t\t\tthreshold: 0.6,\n\t\t\t\tkeys: [\n\t\t\t\t\t'emoticon',\n\t\t\t\t\t'annotation',\n\t\t\t\t\t( emojiEntry: EmojiEntry ) => {\n\t\t\t\t\t\t// Instead of searching over all tags, let's use only those that matches the query.\n\t\t\t\t\t\t// It enables searching in tags with the space character in names.\n\t\t\t\t\t\tconst searchQueryTokens = searchQuery.split( /\\s/ ).filter( Boolean );\n\n\t\t\t\t\t\tconst matchedTags = searchQueryTokens.flatMap( tok => {\n\t\t\t\t\t\t\treturn emojiEntry.tags?.filter( t => t.startsWith( tok ) );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\treturn matchedTags.join();\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t} )\n\t\t\t.map( result => result.obj );\n\t}\n\n\t/**\n\t * Groups all emojis by categories.\n\t * If the emoji repository is not loaded, it returns an empty array.\n\t *\n\t * @returns An array of emoji entries grouped by categories.\n\t */\n\tpublic getEmojiCategories(): Array<EmojiCategory> {\n\t\tconst repository = this._getItems();\n\n\t\tif ( !repository ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst { t } = this.editor.locale;\n\n\t\tconst categories = [\n\t\t\t{ title: t( 'Smileys & Expressions' ), icon: '😄', groupId: 0 },\n\t\t\t{ title: t( 'Gestures & People' ), icon: '👋', groupId: 1 },\n\t\t\t{ title: t( 'Animals & Nature' ), icon: '🐻', groupId: 3 },\n\t\t\t{ title: t( 'Food & Drinks' ), icon: '🍎', groupId: 4 },\n\t\t\t{ title: t( 'Travel & Places' ), icon: '🚘', groupId: 5 },\n\t\t\t{ title: t( 'Activities' ), icon: '🏀', groupId: 6 },\n\t\t\t{ title: t( 'Objects' ), icon: '💡', groupId: 7 },\n\t\t\t{ title: t( 'Symbols' ), icon: '🔵', groupId: 8 },\n\t\t\t{ title: t( 'Flags' ), icon: '🏁', groupId: 9 }\n\t\t];\n\n\t\tconst groups = groupBy( repository, item => item.group );\n\n\t\treturn categories.map( category => {\n\t\t\treturn {\n\t\t\t\t...category,\n\t\t\t\titems: groups[ category.groupId ]\n\t\t\t};\n\t\t} );\n\t}\n\n\t/**\n\t * Returns an array of available skin tones.\n\t */\n\tpublic getSkinTones(): Array<EmojiSkinTone> {\n\t\tconst { t } = this.editor.locale;\n\n\t\treturn [\n\t\t\t{ id: 'default', icon: '👋', tooltip: t( 'Default skin tone' ) },\n\t\t\t{ id: 'light', icon: '👋🏻', tooltip: t( 'Light skin tone' ) },\n\t\t\t{ id: 'medium-light', icon: '👋🏼', tooltip: t( 'Medium Light skin tone' ) },\n\t\t\t{ id: 'medium', icon: '👋🏽', tooltip: t( 'Medium skin tone' ) },\n\t\t\t{ id: 'medium-dark', icon: '👋🏾', tooltip: t( 'Medium Dark skin tone' ) },\n\t\t\t{ id: 'dark', icon: '👋🏿', tooltip: t( 'Dark skin tone' ) }\n\t\t];\n\t}\n\n\t/**\n\t * Indicates whether the emoji repository has been successfully downloaded and the plugin is operational.\n\t */\n\tpublic isReady(): Promise<boolean> {\n\t\treturn this._repositoryPromise;\n\t}\n\n\t/**\n\t * Returns the URL from which the emoji repository is downloaded. If the URL is not provided\n\t * in the configuration, the default URL is used with the version from the configuration.\n\t *\n\t * If both the URL and version are provided, a warning is logged.\n\t */\n\tprivate _getUrl(): URL {\n\t\tconst { definitionsUrl, version } = this.editor.config.get( 'emoji' )!;\n\n\t\tif ( !definitionsUrl || definitionsUrl === 'cdn' ) {\n\t\t\t// URL was not provided or is set to 'cdn', so we use the default CDN URL.\n\t\t\tconst urlVersion = version || DEFAULT_EMOJI_VERSION;\n\t\t\tconst url = new URL( DEFAULT_EMOJI_DATABASE_URL.replace( '{version}', urlVersion.toString() ) );\n\n\t\t\turl.searchParams.set( 'editorVersion', editorVersion );\n\n\t\t\treturn url;\n\t\t}\n\n\t\tif ( version ) {\n\t\t\t/**\n\t\t\t * Both {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`} and\n\t\t\t * {@link module:emoji/emojiconfig~EmojiConfig#version `emoji.version`} configuration options\n\t\t\t * are set. Only the `emoji.definitionsUrl` option will be used.\n\t\t\t *\n\t\t\t * The `emoji.version` option will be ignored and should be removed from the configuration.\n\t\t\t *\n\t\t\t * @error emoji-repository-redundant-version\n\t\t\t */\n\t\t\tlogWarning( 'emoji-repository-redundant-version' );\n\t\t}\n\n\t\treturn new URL( definitionsUrl );\n\t}\n\n\t/**\n\t * Warn users on self-hosted installations that this plugin uses a CDN to fetch the emoji repository.\n\t */\n\tprivate _warnAboutCdnUse(): void {\n\t\tconst editor = this.editor;\n\t\tconst config = editor.config.get( 'emoji' );\n\t\tconst licenseKey = editor.config.get( 'licenseKey' );\n\t\tconst distributionChannel = ( window as any )[ Symbol.for( 'cke distribution' ) ];\n\n\t\tif ( licenseKey === 'GPL' ) {\n\t\t\t// Don't warn GPL users.\n\t\t\treturn;\n\t\t}\n\n\t\tif ( distributionChannel === 'cloud' ) {\n\t\t\t// Don't warn cloud users, because they already use our CDN.\n\t\t\treturn;\n\t\t}\n\n\t\tif ( config && config.definitionsUrl ) {\n\t\t\t// Don't warn users who have configured their own definitions URL.\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * It was detected that your installation uses a commercial license key,\n\t\t * and the default {@glink features/emoji#emoji-source CKEditor CDN for Emoji plugin data}.\n\t\t *\n\t\t * To avoid this, you can use the {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`}\n\t\t * configuration option to provide a URL to your own emoji repository.\n\t\t *\n\t\t * If you want to suppress this warning, while using the default CDN, set this configuration option to `cdn`.\n\t\t *\n\t\t * @error emoji-repository-cdn-use\n\t\t */\n\t\tlogWarning( 'emoji-repository-cdn-use' );\n\t}\n\n\t/**\n\t * Returns the emoji repository in a configured version if it is a non-empty array. Returns `null` otherwise.\n\t */\n\tprivate _getItems(): Array<EmojiEntry> | null {\n\t\tconst repository = EmojiRepository._results[ this._url.href ];\n\n\t\treturn repository && repository.length ? repository : null;\n\t}\n\n\t/**\n\t * Loads the emoji repository. If the repository is already loaded, it returns the cached result.\n\t * Otherwise, it fetches the repository from the URL and adds it to the cache.\n\t */\n\tprivate async _loadAndCacheEmoji(): Promise<void> {\n\t\tif ( EmojiRepository._results[ this._url.href ] ) {\n\t\t\t// The repository has already been downloaded.\n\t\t\treturn;\n\t\t}\n\n\t\tconst result: Array<EmojiCdnResource> = await fetch( this._url, { cache: 'force-cache' } )\n\t\t\t.then( response => {\n\t\t\t\tif ( !response.ok ) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\treturn response.json();\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\treturn [];\n\t\t\t} );\n\n\t\tEmojiRepository._results[ this._url.href ] = this._normalizeEmoji( result );\n\t}\n\n\t/**\n\t * Normalizes the raw data fetched from CDN. By normalization, we meant:\n\t *\n\t * * Filter out unsupported emoji (these that will not render correctly),\n\t * * Prepare skin tone variants if an emoji defines them.\n\t */\n\tprivate _normalizeEmoji( data: Array<EmojiCdnResource> ): Array<EmojiEntry> {\n\t\tconst editor = this.editor;\n\t\tconst useCustomFont = editor.config.get( 'emoji.useCustomFont' );\n\t\tconst emojiUtils = editor.plugins.get( 'EmojiUtils' );\n\n\t\tconst insertableEmoji = data.filter( item => emojiUtils.isEmojiCategoryAllowed( item ) );\n\n\t\t// When using a custom font, the feature does not filter any emoji.\n\t\tif ( useCustomFont ) {\n\t\t\treturn insertableEmoji.map( item => emojiUtils.normalizeEmojiSkinTone( item ) );\n\t\t}\n\n\t\tconst emojiSupportedVersionByOs = emojiUtils.getEmojiSupportedVersionByOs();\n\n\t\tconst container = emojiUtils.createEmojiWidthTestingContainer();\n\t\tdocument.body.appendChild( container );\n\n\t\tconst results = insertableEmoji\n\t\t\t.filter( item => emojiUtils.isEmojiSupported( item, emojiSupportedVersionByOs, container ) )\n\t\t\t.map( item => emojiUtils.normalizeEmojiSkinTone( item ) );\n\n\t\tcontainer.remove();\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Versioned emoji repository.\n\t */\n\tprivate static _results: {\n\t\t[ key in string ]?: Array<EmojiEntry>\n\t} = {};\n}\n\n/**\n * Represents a single group of the emoji category, e.g., \"Smileys & Expressions\".\n */\nexport type EmojiCategory = {\n\n\t/**\n\t * A name of the category.\n\t */\n\ttitle: string;\n\n\t/**\n\t * An example emoji representing items belonging to the category.\n\t */\n\ticon: string;\n\n\t/**\n\t * Group id used to assign {@link #items}.\n\t */\n\tgroupId: number;\n\n\t/**\n\t * An array of emojis.\n\t */\n\titems: Array<EmojiEntry>;\n};\n\n/**\n * Represents a single item fetched from the CDN.\n */\nexport type EmojiCdnResource = {\n\tannotation: string;\n\temoji: string;\n\tgroup: number;\n\torder: number;\n\tversion: number;\n\temoticon?: string;\n\tshortcodes?: Array<string>;\n\tskins?: Array<{\n\t\temoji: string;\n\t\ttone: number;\n\t\tversion: number;\n\t}>;\n\ttags?: Array<string>;\n};\n\n/**\n * Represents a single emoji item used by the Emoji feature.\n */\nexport type EmojiEntry = Omit<EmojiCdnResource, 'skins'> & {\n\tskins: EmojiMap;\n};\n\n/**\n * Represents mapping between a skin tone and its corresponding emoji.\n *\n * The `default` key is always present. Additional values are assigned only if an emoji supports skin tones.\n */\nexport type EmojiMap = { [K in Exclude<EmojiSkinToneId, 'default'>]?: string; } & {\n\tdefault: string;\n};\n\n/**\n * Represents an emoji skin tone variant.\n */\nexport type EmojiSkinTone = {\n\tid: EmojiSkinToneId;\n\ticon: string;\n\ttooltip: string;\n};\n\n/**\n * Unable to load the emoji repository from the URL.\n *\n * If the URL works properly and there is no disruption of communication, please check your\n * {@glink getting-started/setup/csp Content Security Policy (CSP)} setting and make sure\n * the URL connection is allowed by the editor.\n *\n * @error emoji-repository-load-failed\n */\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojimention\n */\n\nimport { logWarning, type LocaleTranslate } from 'ckeditor5/src/utils.js';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { Typing } from 'ckeditor5/src/typing.js';\nimport type { MentionFeed, MentionFeedObjectItem, MentionItemRenderer } from '@ckeditor/ckeditor5-mention';\n\nimport { EmojiRepository } from './emojirepository.js';\nimport { type EmojiPicker } from './emojipicker.js';\nimport type { EmojiSkinToneId } from './emojiconfig.js';\n\nconst EMOJI_MENTION_MARKER = ':';\nconst EMOJI_SHOW_ALL_OPTION_ID = ':__EMOJI_SHOW_ALL:';\nconst EMOJI_HINT_OPTION_ID = ':__EMOJI_HINT:';\n\n/**\n * The emoji mention plugin.\n *\n * Introduces the autocomplete of emojis while typing.\n */\nexport class EmojiMention extends Plugin {\n\t/**\n\t * An instance of the {@link module:emoji/emojipicker~EmojiPicker} plugin if it is loaded in the editor.\n\t */\n\tdeclare public emojiPickerPlugin: EmojiPicker | null;\n\n\t/**\n\t * An instance of the {@link module:emoji/emojirepository~EmojiRepository} plugin.\n\t */\n\tdeclare public emojiRepositoryPlugin: EmojiRepository;\n\n\t/**\n\t * A flag that informs if the {@link module:emoji/emojirepository~EmojiRepository} plugin is loaded correctly.\n\t */\n\tdeclare private _isEmojiRepositoryAvailable: boolean;\n\n\t/**\n\t * Defines a number of displayed items in the auto complete dropdown.\n\t *\n\t * It includes the \"Show all emoji...\" option if the `EmojiPicker` plugin is loaded.\n\t */\n\tprivate readonly _emojiDropdownLimit: number;\n\n\t/**\n\t * Defines a skin tone that is set in the emoji config.\n\t */\n\tprivate readonly _skinTone: EmojiSkinToneId;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiRepository, Typing, 'Mention' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiMention' 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\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.editor.config.define( 'emoji', {\n\t\t\tdropdownLimit: 6\n\t\t} );\n\n\t\tthis._emojiDropdownLimit = editor.config.get( 'emoji.dropdownLimit' )!;\n\t\tthis._skinTone = editor.config.get( 'emoji.skinTone' )!;\n\n\t\tthis._setupMentionConfiguration( editor );\n\t}\n\n\t/**\n\t * Initializes the configuration for emojis in the mention feature.\n\t * If the marker used by emoji mention is already registered, it displays a warning.\n\t * If emoji mention configuration is detected, it does not register it for a second time.\n\t */\n\tprivate _setupMentionConfiguration( editor: Editor ) {\n\t\tconst mergeFieldsPrefix = editor.config.get( 'mergeFields.prefix' )! as string;\n\t\tconst mentionFeedsConfigs = editor.config.get( 'mention.feeds' )! as Array<EmojiMentionFeed>;\n\n\t\tconst isEmojiMarkerUsedByMergeFields = mergeFieldsPrefix ? mergeFieldsPrefix[ 0 ] === EMOJI_MENTION_MARKER : false;\n\t\tconst isEmojiMarkerUsedByMention = mentionFeedsConfigs\n\t\t\t.filter( config => !config._isEmojiMarker )\n\t\t\t.some( config => config.marker === EMOJI_MENTION_MARKER );\n\n\t\tif ( isEmojiMarkerUsedByMention || isEmojiMarkerUsedByMergeFields ) {\n\t\t\t/**\n\t\t\t * The `marker` in the `emoji` config is already used by other plugin configuration.\n\t\t\t *\n\t\t\t * @error emoji-config-marker-already-used\n\t\t\t * @param {string} marker Used marker.\n\t\t\t */\n\t\t\tlogWarning( 'emoji-config-marker-already-used', { marker: EMOJI_MENTION_MARKER } );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst isEmojiConfigDefined = mentionFeedsConfigs.some( config => config._isEmojiMarker );\n\n\t\tif ( isEmojiConfigDefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst emojiMentionFeedConfig = {\n\t\t\t_isEmojiMarker: true,\n\t\t\tmarker: EMOJI_MENTION_MARKER,\n\t\t\tdropdownLimit: this._emojiDropdownLimit,\n\t\t\titemRenderer: this._customItemRendererFactory( this.editor.t ),\n\t\t\tfeed: this._queryEmojiCallbackFactory()\n\t\t};\n\n\t\tthis.editor.config.set( 'mention.feeds', [ ...mentionFeedsConfigs, emojiMentionFeedConfig ] );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async init(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tthis.emojiPickerPlugin = editor.plugins.has( 'EmojiPicker' ) ? editor.plugins.get( 'EmojiPicker' ) : null;\n\t\tthis.emojiRepositoryPlugin = editor.plugins.get( 'EmojiRepository' );\n\t\tthis._isEmojiRepositoryAvailable = await this.emojiRepositoryPlugin.isReady();\n\n\t\t// Override the `mention` command listener if the emoji repository is ready.\n\t\tif ( this._isEmojiRepositoryAvailable ) {\n\t\t\teditor.once( 'ready', this._overrideMentionExecuteListener.bind( this ) );\n\t\t}\n\t}\n\n\t/**\n\t * Returns the `itemRenderer()` callback for mention config.\n\t */\n\tprivate _customItemRendererFactory( t: LocaleTranslate ): MentionItemRenderer {\n\t\treturn ( item: MentionFeedObjectItem ) => {\n\t\t\tconst itemElement = document.createElement( 'button' );\n\n\t\t\titemElement.classList.add( 'ck' );\n\t\t\titemElement.classList.add( 'ck-button' );\n\t\t\titemElement.classList.add( 'ck-button_with-text' );\n\n\t\t\titemElement.id = `mention-list-item-id${ item.id.slice( 0, -1 ) }`;\n\t\t\titemElement.type = 'button';\n\t\t\titemElement.tabIndex = -1;\n\n\t\t\tconst labelElement = document.createElement( 'span' );\n\n\t\t\tlabelElement.classList.add( 'ck' );\n\t\t\tlabelElement.classList.add( 'ck-button__label' );\n\n\t\t\titemElement.appendChild( labelElement );\n\n\t\t\tif ( item.id === EMOJI_HINT_OPTION_ID ) {\n\t\t\t\titemElement.classList.add( 'ck-list-item-button' );\n\t\t\t\titemElement.classList.add( 'ck-disabled' );\n\t\t\t\tlabelElement.textContent = t( 'Keep on typing to see the emoji.' );\n\t\t\t} else if ( item.id === EMOJI_SHOW_ALL_OPTION_ID ) {\n\t\t\t\tlabelElement.textContent = t( 'Show all emoji...' );\n\t\t\t} else {\n\t\t\t\tlabelElement.textContent = `${ item.text } ${ item.id }`;\n\t\t\t}\n\n\t\t\treturn itemElement;\n\t\t};\n\t}\n\n\t/**\n\t * Overrides the default mention execute listener to insert an emoji as plain text instead.\n\t */\n\tprivate _overrideMentionExecuteListener(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.commands.get( 'mention' )!.on( 'execute', ( event, data ) => {\n\t\t\tconst eventData = data[ 0 ];\n\n\t\t\t// Ignore non-emoji auto-complete actions.\n\t\t\tif ( eventData.marker !== EMOJI_MENTION_MARKER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Do not propagate the event.\n\t\t\tevent.stop();\n\n\t\t\t// Do nothing when executing after selecting a hint message.\n\t\t\tif ( eventData.mention.id === EMOJI_HINT_OPTION_ID ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Trigger the picker UI.\n\t\t\tif ( eventData.mention.id === EMOJI_SHOW_ALL_OPTION_ID ) {\n\t\t\t\tconst text = [ ...eventData.range.getItems() ]\n\t\t\t\t\t.filter( item => item.is( '$textProxy' ) )\n\t\t\t\t\t.map( item => item.data )\n\t\t\t\t\t.reduce( ( result, text ) => result + text, '' );\n\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\teditor.model.deleteContent( writer.createSelection( eventData.range ) );\n\t\t\t\t} );\n\n\t\t\t\tconst emojiPickerPlugin = this.emojiPickerPlugin!;\n\n\t\t\t\temojiPickerPlugin.showUI( text.slice( 1 ) );\n\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\temojiPickerPlugin.emojiPickerView!.focus();\n\t\t\t\t} );\n\t\t\t}\n\t\t\t// Or insert the emoji to editor.\n\t\t\telse {\n\t\t\t\teditor.execute( 'insertText', {\n\t\t\t\t\ttext: eventData.mention.text,\n\t\t\t\t\trange: eventData.range\n\t\t\t\t} );\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Returns the `feed()` callback for mention config.\n\t */\n\tprivate _queryEmojiCallbackFactory(): ( searchQuery: string ) => Array<MentionFeedObjectItem> {\n\t\treturn ( searchQuery: string ) => {\n\t\t\t// Do not show anything when a query starts with a space.\n\t\t\tif ( searchQuery.startsWith( ' ' ) ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\t// Do not show anything when a query starts with a marker character.\n\t\t\tif ( searchQuery.startsWith( EMOJI_MENTION_MARKER ) ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\t// If the repository plugin is not available, return an empty feed to avoid confusion. See: #17842.\n\t\t\tif ( !this._isEmojiRepositoryAvailable ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst emojis: Array<MentionFeedObjectItem> = this.emojiRepositoryPlugin.getEmojiByQuery( searchQuery )\n\t\t\t\t.map( emoji => {\n\t\t\t\t\tlet text = emoji.skins[ this._skinTone ] || emoji.skins.default;\n\n\t\t\t\t\tif ( this.emojiPickerPlugin ) {\n\t\t\t\t\t\ttext = emoji.skins[ this.emojiPickerPlugin.skinTone ] || emoji.skins.default;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: `:${ emoji.annotation }:`,\n\t\t\t\t\t\ttext\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\tif ( !this.emojiPickerPlugin ) {\n\t\t\t\treturn emojis.slice( 0, this._emojiDropdownLimit );\n\t\t\t}\n\n\t\t\tconst actionItem: MentionFeedObjectItem = {\n\t\t\t\tid: searchQuery.length > 1 ? EMOJI_SHOW_ALL_OPTION_ID : EMOJI_HINT_OPTION_ID\n\t\t\t};\n\n\t\t\treturn [\n\t\t\t\t...emojis.slice( 0, this._emojiDropdownLimit - 1 ),\n\t\t\t\tactionItem\n\t\t\t];\n\t\t};\n\t}\n}\n\ntype EmojiMentionFeed = MentionFeed & {\n\n\t/**\n\t * It's used prevent displaying an emoji mention feed warning when editor plugins are initialized more than once.\n\t */\n\t_isEmojiMarker?: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojicommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport { type EmojiPicker } from './emojipicker.js';\n\n/**\n * Command that shows the emoji user interface.\n */\nexport class EmojiCommand extends Command {\n\t/**\n\t * Updates the command's {@link #isEnabled} based on the current selection.\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tthis.isEnabled = schema.checkChild( selection.getFirstPosition()!, '$text' );\n\t}\n\n\t/**\n\t * Opens emoji user interface for the current document selection.\n\t *\n\t * @fires execute\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */\n\tpublic override execute( searchValue: string = '' ): void {\n\t\tconst emojiPickerPlugin: EmojiPicker = this.editor.plugins.get( 'EmojiPicker' );\n\n\t\temojiPickerPlugin.showUI( searchValue );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojigridview\n */\n\nimport { addKeyboardHandlingForGrid, ButtonView, type FilteredView, View, type ViewCollection } from 'ckeditor5/src/ui.js';\nimport { FocusTracker, global, KeystrokeHandler, type Locale } from 'ckeditor5/src/utils.js';\nimport type { EmojiCategory, EmojiEntry } from '../emojirepository.js';\nimport type { EmojiSkinToneId } from '../emojiconfig.js';\n\nimport '../../theme/emojigrid.css';\n\n/**\n * A grid of emoji tiles. It allows browsing emojis and selecting them to be inserted into the content.\n */\nexport class EmojiGridView extends View<HTMLDivElement> implements FilteredView {\n\t/**\n\t * Defines the active category name.\n\t *\n\t * @observable\n\t */\n\tdeclare public categoryName: string;\n\n\t/**\n\t * Active skin tone.\n\t *\n\t * @observable\n\t */\n\tdeclare public skinTone: EmojiSkinToneId;\n\n\t/**\n\t * Set to `true` when the {@link #tiles} collection does not contain items to display.\n\t *\n\t * @observable\n\t */\n\tdeclare public isEmpty: boolean;\n\n\t/**\n\t * A collection of the child tile views. Each tile represents a particular emoji.\n\t */\n\tpublic readonly tiles: ViewCollection<ButtonView>;\n\n\t/**\n\t * Tracks information about the DOM focus in the grid.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * An array containing all emojis grouped by their categories.\n\t */\n\tpublic readonly emojiCategories: Array<EmojiCategory>;\n\n\t/**\n\t * A collection of all already created tile views. Each tile represents a particular emoji.\n\t * The cached tiles collection is used for efficiency purposes to avoid re-creating a particular\n\t * tile again when the grid view has changed.\n\t */\n\tpublic readonly cachedTiles: ViewCollection<ButtonView>;\n\n\t/**\n\t * A callback used to filter grid items by a specified query.\n\t */\n\tprivate readonly _getEmojiByQuery: EmojiSearchQueryCallback;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { categoryName, emojiCategories, getEmojiByQuery, skinTone }: {\n\t\tcategoryName: string;\n\t\temojiCategories: Array<EmojiCategory>;\n\t\tgetEmojiByQuery: EmojiSearchQueryCallback;\n\t\tskinTone: EmojiSkinToneId;\n\t} ) {\n\t\tsuper( locale );\n\n\t\tthis.set( 'isEmpty', true );\n\t\tthis.set( 'categoryName', categoryName );\n\t\tthis.set( 'skinTone', skinTone );\n\n\t\tthis.tiles = this.createCollection() as ViewCollection<ButtonView>;\n\t\tthis.cachedTiles = this.createCollection() as ViewCollection<ButtonView>;\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\tthis._getEmojiByQuery = getEmojiByQuery;\n\t\tthis.emojiCategories = emojiCategories;\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\trole: 'grid',\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-emoji__grid'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.tiles\n\t\t\t\t}\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\trole: 'tabpanel',\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-emoji__tiles',\n\t\t\t\t\t// To avoid issues with focus cycling, ignore a grid when it's empty.\n\t\t\t\t\tbind.if( 'isEmpty', 'ck-hidden', value => value )\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\taddKeyboardHandlingForGrid( {\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tgridItems: this.tiles,\n\t\t\tnumberOfColumns: () => global.window\n\t\t\t\t.getComputedStyle( this.element!.firstChild as Element ) // Responsive `.ck-emoji-grid__tiles`.\n\t\t\t\t.getPropertyValue( 'grid-template-columns' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.length,\n\t\t\tuiLanguageDirection: this.locale && this.locale.uiLanguageDirection\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.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.keystrokes.destroy();\n\t\tthis.focusTracker.destroy();\n\t}\n\n\t/**\n\t * Focuses the first focusable in {@link ~EmojiGridView#tiles} if available.\n\t */\n\tpublic focus(): void {\n\t\tconst firstTile = this.tiles.first;\n\n\t\tif ( firstTile ) {\n\t\t\tfirstTile.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Filters the grid view by the given regular expression.\n\t *\n\t * It filters either by the pattern or an emoji category, but never both.\n\t *\n\t * @param pattern Expression to search or `null` when filter by category name.\n\t */\n\tpublic filter( pattern: RegExp | null ): { resultsCount: number; totalItemsCount: number } {\n\t\tconst { matchingItems, allItems } = pattern ? this._getItemsByQuery( pattern.source ) : this._getItemsByCategory();\n\n\t\tthis._updateGrid( matchingItems );\n\t\tthis.set( 'isEmpty', matchingItems.length === 0 );\n\n\t\treturn {\n\t\t\tresultsCount: matchingItems.length,\n\t\t\ttotalItemsCount: allItems.length\n\t\t};\n\t}\n\n\t/**\n\t * Filters emojis to show based on the specified query phrase.\n\t *\n\t * @param query A query used to filter the grid.\n\t */\n\tprivate _getItemsByQuery( query: string ): { matchingItems: Array<EmojiEntry>; allItems: Array<EmojiEntry> } {\n\t\treturn {\n\t\t\tmatchingItems: this._getEmojiByQuery( query ),\n\t\t\tallItems: this.emojiCategories.flatMap( group => group.items )\n\t\t};\n\t}\n\n\t/**\n\t * Returns emojis that belong to the specified category.\n\t */\n\tprivate _getItemsByCategory(): { matchingItems: Array<EmojiEntry>; allItems: Array<EmojiEntry> } {\n\t\tconst emojiCategory = this.emojiCategories.find( item => item.title === this.categoryName )!;\n\t\tconst { items } = emojiCategory;\n\n\t\treturn {\n\t\t\tmatchingItems: items,\n\t\t\tallItems: items\n\t\t};\n\t}\n\n\t/**\n\t * Updates the grid by removing the existing items and insert the new ones.\n\t *\n\t * @param items An array of items to insert.\n\t */\n\tprivate _updateGrid( items: Array<EmojiEntry> ): void {\n\t\t// Clean-up.\n\t\t[ ...this.tiles ].forEach( item => {\n\t\t\tthis.focusTracker.remove( item );\n\t\t\tthis.tiles.remove( item );\n\t\t} );\n\n\t\titems\n\t\t\t// Create tiles from matching results.\n\t\t\t.map( item => {\n\t\t\t\tconst emoji = item.skins[ this.skinTone ] || item.skins.default;\n\n\t\t\t\treturn this.cachedTiles.get( emoji ) || this._createTile( emoji, item.annotation );\n\t\t\t} )\n\t\t\t// Insert new elements.\n\t\t\t.forEach( item => {\n\t\t\t\tthis.tiles.add( item );\n\t\t\t\tthis.focusTracker.add( item );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Creates a new tile for the grid. Created tile is added to the {@link #cachedTiles} collection for further usage, if needed.\n\t *\n\t * @param emoji The emoji itself.\n\t * @param name The name of the emoji (e.g. \"Smiling Face with Smiling Eyes\").\n\t */\n\tprivate _createTile( emoji: string, name: string ): ButtonView {\n\t\tconst tile = new ButtonView( this.locale );\n\n\t\ttile.viewUid = emoji;\n\n\t\ttile.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-emoji__tile'\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\ttile.set( {\n\t\t\tlabel: emoji,\n\t\t\ttooltip: name,\n\t\t\twithText: true,\n\t\t\tariaLabel: name,\n\t\t\t// To improve accessibility, disconnect a button and its label connection so that screen\n\t\t\t// readers can read the `[aria-label]` attribute directly from the more descriptive button.\n\t\t\tariaLabelledBy: undefined\n\t\t} );\n\n\t\ttile.on( 'execute', () => {\n\t\t\tthis.fire<EmojiGridViewExecuteEvent>( 'execute', { name, emoji } );\n\t\t} );\n\n\t\tthis.cachedTiles.add( tile );\n\n\t\treturn tile;\n\t}\n}\n\n/**\n * A callback used to filter grid items by a specified query.\n */\nexport type EmojiSearchQueryCallback = ( query: string ) => Array<EmojiEntry>;\n\n/**\n * Fired when any of {@link ~EmojiGridView#tiles grid tiles} is clicked.\n *\n * @eventName ~EmojiGridView#execute\n * @param data Additional information about the event.\n */\nexport type EmojiGridViewExecuteEvent = {\n\tname: 'execute';\n\targs: [ data: EmojiGridViewEventData ];\n};\n\nexport type EmojiGridViewEventData = {\n\n\t/**\n\t * The name of the emoji (e.g. \"Smiling Face with Smiling Eyes\").\n\t */\n\tname: string;\n\n\t/**\n\t * The emoji itself.\n\t */\n\temoji: string;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojicategoriesview\n */\n\nimport { ButtonView, View, FocusCycler, type ViewCollection } from 'ckeditor5/src/ui.js';\nimport { FocusTracker, KeystrokeHandler, type Locale, type ObservableChangeEvent } from 'ckeditor5/src/utils.js';\nimport type { EmojiCategory } from '../emojirepository.js';\n\nimport '../../theme/emojicategories.css';\n\n/**\n * A class representing the navigation part of the emoji UI.\n * It is responsible allowing the user to select a particular emoji category.\n */\nexport class EmojiCategoriesView extends View {\n\t/**\n\t * Currently selected emoji category name.\n\t */\n\tdeclare public categoryName: string;\n\n\t/**\n\t * Tracks information about the DOM focus in the grid.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Helps cycling over focusable children in the input view.\n\t */\n\tpublic readonly focusCycler: FocusCycler;\n\n\t/**\n\t * A collection of the categories buttons.\n\t */\n\tpublic readonly buttonViews: ViewCollection<ButtonView>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { emojiCategories, categoryName }: { emojiCategories: Array<EmojiCategory>; categoryName: string } ) {\n\t\tsuper( locale );\n\n\t\tthis.buttonViews = this.createCollection(\n\t\t\temojiCategories.map( emojiCategory => this._createCategoryButton( emojiCategory ) )\n\t\t);\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis.focusCycler = new FocusCycler( {\n\t\t\tfocusables: this.buttonViews,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\tfocusPrevious: 'arrowleft',\n\t\t\t\tfocusNext: 'arrowright'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-emoji__categories-list' ],\n\t\t\t\trole: 'tablist'\n\t\t\t},\n\t\t\tchildren: this.buttonViews\n\t\t} );\n\n\t\tthis.on<ObservableChangeEvent<string>>( 'change:categoryName', ( event, name, newValue, oldValue ) => {\n\t\t\tconst oldCategoryButton = this.buttonViews.find( button => button.tooltip === oldValue );\n\n\t\t\tif ( oldCategoryButton ) {\n\t\t\t\toldCategoryButton.isOn = false;\n\t\t\t}\n\n\t\t\tconst newCategoryButton = this.buttonViews.find( button => button.tooltip === newValue )!;\n\t\t\tnewCategoryButton.isOn = true;\n\t\t} );\n\n\t\tthis.set( 'categoryName', categoryName );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.buttonViews.forEach( buttonView => {\n\t\t\tthis.focusTracker.add( buttonView );\n\t\t} );\n\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t\tthis.buttonViews.destroy();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.buttonViews.first!.focus();\n\t}\n\n\t/**\n\t * Marks all categories buttons as enabled (clickable).\n\t */\n\tpublic enableCategories(): void {\n\t\tthis.buttonViews.forEach( buttonView => {\n\t\t\tbuttonView.isEnabled = true;\n\t\t} );\n\t}\n\n\t/**\n\t * Marks all categories buttons as disabled (non-clickable).\n\t */\n\tpublic disableCategories(): void {\n\t\tthis.buttonViews.forEach( buttonView => {\n\t\t\tbuttonView.set( {\n\t\t\t\tclass: '',\n\t\t\t\tisEnabled: false,\n\t\t\t\tisOn: false\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button representing a category item.\n\t */\n\tprivate _createCategoryButton( emojiCategory: EmojiCategory ): ButtonView {\n\t\tconst buttonView = new ButtonView();\n\t\tconst bind = buttonView.bindTemplate;\n\n\t\t// A `[role=\"tab\"]` element requires also the `[aria-selected]` attribute with its state.\n\t\tbuttonView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\t'aria-selected': bind.to( 'isOn', value => value.toString() ),\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-emoji__category-item'\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\tbuttonView.set( {\n\t\t\tariaLabel: emojiCategory.title,\n\t\t\tlabel: emojiCategory.icon,\n\t\t\trole: 'tab',\n\t\t\ttooltip: emojiCategory.title,\n\t\t\twithText: true,\n\t\t\t// To improve accessibility, disconnect a button and its label connection so that screen\n\t\t\t// readers can read the `[aria-label]` attribute directly from the more descriptive button.\n\t\t\tariaLabelledBy: undefined\n\t\t} );\n\n\t\tbuttonView.on( 'execute', () => {\n\t\t\tthis.categoryName = emojiCategory.title;\n\t\t} );\n\n\t\tbuttonView.on<ObservableChangeEvent<boolean>>( 'change:isEnabled', () => {\n\t\t\tif ( buttonView.isEnabled && buttonView.tooltip === this.categoryName ) {\n\t\t\t\tbuttonView.isOn = true;\n\t\t\t}\n\t\t} );\n\n\t\treturn buttonView;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojisearchview\n */\n\nimport { escapeRegExp } from 'es-toolkit/compat';\nimport { createLabeledInputText, SearchTextView, View, type SearchTextViewSearchEvent, type SearchInfoView } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\nimport { type EmojiGridView } from './emojigridview.js';\n\n/**\n * A view responsible for providing an input element that allows filtering emoji by the provided query.\n */\nexport class EmojiSearchView extends View {\n\t/**\n\t * The find in text input view that stores the searched string.\n\t */\n\tpublic readonly inputView: SearchTextView;\n\n\t/**\n\t * An instance of the `EmojiGridView`.\n\t */\n\tpublic readonly gridView: EmojiGridView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { gridView, resultsView }: { gridView: EmojiGridView; resultsView: SearchInfoView } ) {\n\t\tsuper( locale );\n\n\t\tthis.gridView = gridView;\n\n\t\tconst t = locale.t;\n\n\t\tthis.inputView = new SearchTextView( this.locale!, {\n\t\t\tqueryView: {\n\t\t\t\tlabel: t( 'Find an emoji (min. 2 characters)' ),\n\t\t\t\tcreator: createLabeledInputText\n\t\t\t},\n\t\t\tfilteredView: this.gridView,\n\t\t\tinfoView: {\n\t\t\t\tinstance: resultsView\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-search'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tthis.inputView.queryView\n\t\t\t]\n\t\t} );\n\n\t\t// Pass through the `search` event to handle it by a parent view.\n\t\tthis.inputView.delegate( 'search' ).to( this );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.inputView.destroy();\n\t}\n\n\t/**\n\t * Searches the {@link #gridView} for the given query.\n\t *\n\t * @param query The search query string.\n\t */\n\tpublic search( query: string ): void {\n\t\tconst regExp = query ? new RegExp( escapeRegExp( query ), 'ig' ) : null;\n\t\tconst filteringResults = this.gridView.filter( regExp );\n\n\t\tthis.inputView.fire<SearchTextViewSearchEvent>( 'search', { query, ...filteringResults } );\n\t}\n\n\t/**\n\t * Allows defining the default value in the search text field.\n\t *\n\t * @param value The new value.\n\t */\n\tpublic setInputValue( value: string ): void {\n\t\tif ( !value ) {\n\t\t\tthis.inputView.queryView.fieldView.reset();\n\t\t} else {\n\t\t\tthis.inputView.queryView.fieldView.value = value;\n\t\t}\n\t}\n\n\t/**\n\t * Returns an input provided by a user in the search text field.\n\t */\n\tpublic getInputValue(): string {\n\t\treturn this.inputView.queryView.fieldView.element!.value;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.inputView.focus();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojitoneview\n */\n\nimport {\n\tcreateDropdown,\n\taddListToDropdown,\n\tView,\n\tUIModel,\n\ttype ButtonExecuteEvent,\n\ttype DropdownView,\n\ttype ListDropdownItemDefinition\n} from 'ckeditor5/src/ui.js';\nimport { Collection, type Locale } from 'ckeditor5/src/utils.js';\nimport type { EmojiSkinToneId } from '../emojiconfig.js';\nimport type { EmojiSkinTone } from '../emojirepository.js';\n\nimport '../../theme/emojitone.css';\n\n/**\n * A view responsible for selecting a skin tone for an emoji.\n */\nexport class EmojiToneView extends View {\n\t/**\n\t * Active skin tone.\n\t *\n\t * @observable\n\t */\n\tdeclare public skinTone: EmojiSkinToneId;\n\n\t/**\n\t * A dropdown element for selecting an active skin tone.\n\t */\n\tpublic readonly dropdownView: DropdownView;\n\n\t/**\n\t * An array of available skin tones.\n\t */\n\tprivate readonly _skinTones: Array<EmojiSkinTone>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, { skinTone, skinTones }: { skinTone: EmojiSkinToneId; skinTones: Array<EmojiSkinTone> } ) {\n\t\tsuper( locale );\n\n\t\tthis.set( 'skinTone', skinTone );\n\t\tthis._skinTones = skinTones;\n\n\t\tconst t = locale.t;\n\t\tconst accessibleLabel = t( 'Select skin tone' );\n\n\t\tconst dropdownView = createDropdown( locale );\n\t\tconst itemDefinitions: Collection<ListDropdownItemDefinition> = new Collection();\n\n\t\tfor ( const { id, icon, tooltip } of this._skinTones ) {\n\t\t\tconst def: ListDropdownItemDefinition = {\n\t\t\t\ttype: 'button',\n\t\t\t\tmodel: new UIModel( {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel: icon,\n\t\t\t\t\tariaLabel: tooltip,\n\t\t\t\t\ttooltip,\n\t\t\t\t\ttooltipPosition: 'e',\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t\twithText: true,\n\t\t\t\t\t// To improve accessibility, disconnect a button and its label connection so that screen\n\t\t\t\t\t// readers can read the `[aria-label]` attribute directly from the more descriptive button.\n\t\t\t\t\tariaLabelledBy: undefined\n\t\t\t\t} )\n\t\t\t};\n\n\t\t\tdef.model.bind( 'isOn' ).to( this, 'skinTone', value => value === id );\n\n\t\t\titemDefinitions.add( def );\n\t\t}\n\n\t\taddListToDropdown(\n\t\t\tdropdownView,\n\t\t\titemDefinitions,\n\t\t\t{\n\t\t\t\tariaLabel: accessibleLabel,\n\t\t\t\trole: 'menu'\n\t\t\t}\n\t\t);\n\n\t\tdropdownView.buttonView.set( {\n\t\t\tlabel: this._getSkinTone().icon,\n\t\t\tariaLabel: accessibleLabel,\n\t\t\tariaLabelledBy: undefined,\n\t\t\tisOn: false,\n\t\t\twithText: true,\n\t\t\ttooltip: accessibleLabel\n\t\t} );\n\n\t\tthis.dropdownView = dropdownView;\n\n\t\t// Execute command when an item from the dropdown is selected.\n\t\tthis.listenTo<ButtonExecuteEvent>( dropdownView, 'execute', evt => {\n\t\t\tthis.skinTone = ( evt.source as any ).value;\n\t\t} );\n\n\t\tdropdownView.buttonView.bind( 'label' ).to( this, 'skinTone', () => {\n\t\t\treturn this._getSkinTone().icon;\n\t\t} );\n\n\t\tdropdownView.buttonView.bind( 'ariaLabel' ).to( this, 'skinTone', () => {\n\t\t\t// Render a current state, but also what the dropdown does.\n\t\t\treturn `${ this._getSkinTone().tooltip }, ${ accessibleLabel }`;\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-emoji__skin-tone' ]\n\t\t\t},\n\t\t\tchildren: [ dropdownView ]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.dropdownView.buttonView.focus();\n\t}\n\n\t/**\n\t * Helper method for receiving an object describing the active skin tone.\n\t */\n\tprivate _getSkinTone(): EmojiSkinTone {\n\t\treturn this._skinTones.find( tone => tone.id === this.skinTone )!;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojipickerview\n */\n\nimport {\n\tFocusCycler,\n\tSearchInfoView,\n\tView,\n\ttype FocusableView,\n\ttype ViewCollection,\n\ttype SearchTextViewSearchEvent\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale,\n\ttype ObservableChangeEvent\n} from 'ckeditor5/src/utils.js';\nimport { EmojiGridView, type EmojiSearchQueryCallback } from './emojigridview.js';\nimport { EmojiCategoriesView } from './emojicategoriesview.js';\nimport { EmojiSearchView } from './emojisearchview.js';\nimport { EmojiToneView } from './emojitoneview.js';\nimport type { EmojiSkinToneId } from '../emojiconfig.js';\nimport type { EmojiCategory, EmojiSkinTone } from '../emojirepository.js';\n\n/**\n * A view that glues pieces of the emoji panel together.\n */\nexport class EmojiPickerView extends View<HTMLDivElement> {\n\t/**\n\t * A collection of the focusable children of the view.\n\t */\n\tpublic readonly items: ViewCollection<FocusableView>;\n\n\t/**\n\t * Tracks information about the DOM focus in the view.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Helps cycling over focusable {@link #items} in the view.\n\t */\n\tpublic readonly focusCycler: FocusCycler;\n\n\t/**\n\t * An instance of the `EmojiSearchView`.\n\t */\n\tpublic readonly searchView: EmojiSearchView;\n\n\t/**\n\t * An instance of the `EmojiToneView`.\n\t */\n\tpublic readonly toneView: EmojiToneView;\n\n\t/**\n\t * An instance of the `EmojiCategoriesView`.\n\t */\n\tpublic readonly categoriesView: EmojiCategoriesView;\n\n\t/**\n\t * An instance of the `EmojiGridView`.\n\t */\n\tpublic readonly gridView: EmojiGridView;\n\n\t/**\n\t * An instance of the `EmojiGridView`.\n\t */\n\tpublic readonly infoView: SearchInfoView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{ emojiCategories, getEmojiByQuery, skinTone, skinTones }: {\n\t\t\temojiCategories: Array<EmojiCategory>;\n\t\t\tgetEmojiByQuery: EmojiSearchQueryCallback;\n\t\t\tskinTone: EmojiSkinToneId;\n\t\t\tskinTones: Array<EmojiSkinTone>;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\n\t\tconst categoryName = emojiCategories[ 0 ].title;\n\n\t\tthis.gridView = new EmojiGridView( locale, {\n\t\t\tcategoryName,\n\t\t\temojiCategories,\n\t\t\tgetEmojiByQuery,\n\t\t\tskinTone\n\t\t} );\n\t\tthis.infoView = new SearchInfoView();\n\t\tthis.searchView = new EmojiSearchView( locale, {\n\t\t\tgridView: this.gridView,\n\t\t\tresultsView: this.infoView\n\t\t} );\n\t\tthis.categoriesView = new EmojiCategoriesView( locale, {\n\t\t\temojiCategories,\n\t\t\tcategoryName\n\t\t} );\n\t\tthis.toneView = new EmojiToneView( locale, {\n\t\t\tskinTone,\n\t\t\tskinTones\n\t\t} );\n\n\t\tthis.items = this.createCollection( [\n\t\t\tthis.searchView,\n\t\t\tthis.toneView,\n\t\t\tthis.categoriesView,\n\t\t\tthis.gridView,\n\t\t\tthis.infoView\n\t\t] );\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis.focusCycler = new FocusCycler( {\n\t\t\tfocusables: this.items,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\tfocusPrevious: 'shift + tab',\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tthis.searchView,\n\t\t\t\t\t\tthis.toneView\n\t\t\t\t\t],\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [ 'ck', 'ck-emoji__search' ]\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis.categoriesView,\n\t\t\t\tthis.gridView,\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tthis.infoView\n\t\t\t\t\t],\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [ 'ck', 'ck-search__results' ]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\ttabindex: '-1',\n\t\t\t\tclass: [ 'ck', 'ck-emoji', 'ck-search' ]\n\t\t\t}\n\t\t} );\n\n\t\tthis._setupEventListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.focusTracker.add( this.searchView.element! );\n\t\tthis.focusTracker.add( this.toneView.element! );\n\t\tthis.focusTracker.add( this.categoriesView.element! );\n\t\tthis.focusTracker.add( this.gridView.element! );\n\t\tthis.focusTracker.add( this.infoView.element! );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the search input.\n\t */\n\tpublic focus(): void {\n\t\tthis.searchView.focus();\n\t}\n\n\t/**\n\t * Initializes interactions between sub-views.\n\t */\n\tprivate _setupEventListeners(): void {\n\t\tconst t = this.locale!.t;\n\n\t\t// Disable the category switcher when filtering by a query.\n\t\tthis.searchView.on<SearchTextViewSearchEvent>( 'search', ( evt, data ) => {\n\t\t\tif ( data.query ) {\n\t\t\t\tthis.categoriesView.disableCategories();\n\t\t\t} else {\n\t\t\t\tthis.categoriesView.enableCategories();\n\t\t\t}\n\t\t} );\n\n\t\t// Show a user-friendly message depending on the search query.\n\t\tthis.searchView.on<SearchTextViewSearchEvent>( 'search', ( evt, data ) => {\n\t\t\tif ( data.query.length === 1 ) {\n\t\t\t\tthis.infoView.set( {\n\t\t\t\t\tprimaryText: t( 'Keep on typing to see the emoji.' ),\n\t\t\t\t\tsecondaryText: t( 'The query must contain at least two characters.' ),\n\t\t\t\t\tisVisible: true\n\t\t\t\t} );\n\t\t\t} else if ( !data.resultsCount ) {\n\t\t\t\tthis.infoView.set( {\n\t\t\t\t\tprimaryText: t( 'No emojis were found matching \"%0\".', data.query ),\n\t\t\t\t\tsecondaryText: t( 'Please try a different phrase or check the spelling.' ),\n\t\t\t\t\tisVisible: true\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tthis.infoView.set( {\n\t\t\t\t\tisVisible: false\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Emit an update event to react to balloon dimensions changes.\n\t\tthis.searchView.on<SearchTextViewSearchEvent>( 'search', () => {\n\t\t\tthis.fire<EmojiPickerViewUpdateEvent>( 'update' );\n\t\t\tthis.gridView.element!.scrollTo( 0, 0 );\n\t\t} );\n\n\t\t// Update the grid of emojis when the selected category is changed.\n\t\tthis.categoriesView.on<ObservableChangeEvent<string>>( 'change:categoryName', ( ev, args, categoryName ) => {\n\t\t\tthis.gridView.categoryName = categoryName;\n\t\t\tthis.searchView.search( '' );\n\t\t} );\n\n\t\t// Update the grid of emojis when the selected skin tone is changed.\n\t\t// In such a case, the displayed emoji should use an updated skin tone value.\n\t\tthis.toneView.on<ObservableChangeEvent<EmojiSkinToneId>>( 'change:skinTone', ( evt, propertyName, newValue ) => {\n\t\t\tthis.gridView.skinTone = newValue;\n\t\t\tthis.searchView.search( this.searchView.getInputValue() );\n\t\t} );\n\t}\n}\n\n/**\n * Fired when the {@link module:emoji/ui/emojipickerview~EmojiPickerView} layout is changed, either by filtering emoji tiles or\n * showing a hint to a user regarding the provided query.\n *\n * @eventName ~EmojiPickerView#update\n */\nexport type EmojiPickerViewUpdateEvent = {\n\tname: 'update';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/ui/emojipickerformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tFormHeaderView,\n\tView,\n\tViewCollection,\n\tisFocusable,\n\tisViewWithFocusCycler,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\nimport { IconPreviousArrow } from 'ckeditor5/src/icons.js';\n\n// See: https://github.com/ckeditor/ckeditor5/issues/8833\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/form/form.css';\n\nimport '../../theme/emojipickerform.css';\n\n/**\n * The emoji picker form view.\n */\nexport class EmojiPickerFormView extends View {\n\t/**\n\t * The Back button view displayed in the header.\n\t */\n\tpublic backButtonView: ButtonView;\n\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * A collection of child views.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * Creates an instance of the {@link module:emoji/ui/emojipickerformview~EmojiPickerFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.backButtonView = this._createBackButton();\n\t\tthis.children = this.createCollection( [\n\t\t\tthis._createHeaderView()\n\t\t] );\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backward using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-form',\n\t\t\t\t\t'ck-emoji-picker-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children\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\tconst childViews = [\n\t\t\t...this.children.filter( isFocusable ) as Array<FocusableView>,\n\t\t\tthis.backButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\n\t\t\t// Register the view in the focus cycler to avoid nested focus cycles traps.\n\t\t\tif ( isViewWithFocusCycler( v ) ) {\n\t\t\t\tthis._focusCycler.chain( v.focusCycler );\n\t\t\t}\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Creates a back button view that cancels the form.\n\t */\n\tprivate _createBackButton(): ButtonView {\n\t\tconst t = this.locale!.t;\n\t\tconst backButton = new ButtonView( this.locale );\n\n\t\tbackButton.set( {\n\t\t\tclass: 'ck-button-back',\n\t\t\tlabel: t( 'Back' ),\n\t\t\ticon: IconPreviousArrow,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbackButton.delegate( 'execute' ).to( this, 'cancel' );\n\n\t\treturn backButton;\n\t}\n\n\t/**\n\t * Creates a header view for the form.\n\t */\n\tprivate _createHeaderView(): FormHeaderView {\n\t\tconst t = this.locale!.t;\n\n\t\tconst header = new FormHeaderView( this.locale, {\n\t\t\tlabel: t( 'Emoji picker' )\n\t\t} );\n\n\t\theader.children.add( this.backButtonView, 0 );\n\n\t\treturn header;\n\t}\n}\n\n/**\n * Fired when the form view is canceled, for example with a click on {@link ~EmojiPickerFormView#backButtonView}.\n *\n * @eventName ~EmojiPickerFormView#cancel\n */\nexport type EmojiPickerFormViewCancelEvent = {\n\tname: 'cancel';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emojipicker\n */\n\nimport { ButtonView, clickOutsideHandler, ContextualBalloon, Dialog, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport type { DomOptimalPositionOptions } from 'ckeditor5/src/utils.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Typing } from 'ckeditor5/src/typing.js';\nimport { IconEmoji } from 'ckeditor5/src/icons.js';\n\nimport { EmojiCommand } from './emojicommand.js';\nimport { EmojiRepository } from './emojirepository.js';\nimport { EmojiPickerView, type EmojiPickerViewUpdateEvent } from './ui/emojipickerview.js';\nimport { EmojiPickerFormView, type EmojiPickerFormViewCancelEvent } from './ui/emojipickerformview.js';\nimport { type EmojiGridViewExecuteEvent } from './ui/emojigridview.js';\nimport type { EmojiSkinToneId } from './emojiconfig.js';\n\nimport '../theme/emojipicker.css';\n\nconst VISUAL_SELECTION_MARKER_NAME = 'emoji-picker';\n\n/**\n * The emoji picker plugin.\n *\n * Introduces the `'emoji'` dropdown.\n */\nexport class EmojiPicker extends Plugin {\n\t/**\n\t * The actions view displayed inside the balloon.\n\t */\n\tdeclare public emojiPickerView: EmojiPickerView | undefined;\n\n\t/**\n\t * The form view displayed inside the balloon.\n\t */\n\tdeclare public emojiPickerFormView: EmojiPickerFormView | undefined;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tdeclare public balloonPlugin: ContextualBalloon;\n\n\t/**\n\t * An instance of the {@link module:emoji/emojirepository~EmojiRepository} plugin.\n\t */\n\tdeclare public emojiRepositoryPlugin: EmojiRepository;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiRepository, ContextualBalloon, Dialog, Typing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'EmojiPicker' 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 async init(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tthis.balloonPlugin = editor.plugins.get( 'ContextualBalloon' );\n\t\tthis.emojiRepositoryPlugin = editor.plugins.get( 'EmojiRepository' );\n\n\t\t// Skip registering a button in the toolbar and list item in the menu bar if the emoji repository is not ready.\n\t\tif ( !await this.emojiRepositoryPlugin.isReady() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst command = new EmojiCommand( editor );\n\n\t\teditor.commands.add( 'emoji', command );\n\n\t\teditor.ui.componentFactory.add( 'emoji', () => {\n\t\t\tconst button = this._createButton( ButtonView, command );\n\n\t\t\tbutton.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:emoji', () => {\n\t\t\treturn this._createButton( MenuBarMenuListItemButtonView, command );\n\t\t} );\n\n\t\tthis._setupConversion();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tif ( this.emojiPickerView ) {\n\t\t\tthis.emojiPickerView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Represents an active skin tone. Its value depends on the emoji UI plugin.\n\t *\n\t * Before opening the UI for the first time, the returned value is read from the editor configuration.\n\t * Otherwise, it reflects the user's intention.\n\t */\n\tpublic get skinTone(): EmojiSkinToneId {\n\t\tif ( !this.emojiPickerView ) {\n\t\t\treturn this.editor.config.get( 'emoji.skinTone' )!;\n\t\t}\n\n\t\treturn this.emojiPickerView.gridView.skinTone;\n\t}\n\n\t/**\n\t * Displays the balloon with the emoji picker.\n\t *\n\t * @param [searchValue=''] A default query used to filer the grid when opening the UI.\n\t */\n\tpublic showUI( searchValue: string = '' ): void {\n\t\t// Show visual selection on a text when the contextual balloon is displayed.\n\t\t// See #17654.\n\t\tthis._showFakeVisualSelection();\n\n\t\tif ( !this.emojiPickerView ) {\n\t\t\tthis.emojiPickerView = this._createEmojiPickerView();\n\t\t}\n\n\t\tif ( searchValue ) {\n\t\t\tthis.emojiPickerView.searchView.setInputValue( searchValue );\n\t\t}\n\n\t\tthis.emojiPickerView.searchView.search( searchValue );\n\n\t\tif ( !this.emojiPickerFormView ) {\n\t\t\tthis.emojiPickerFormView = this._createEmojiPickerFormView();\n\t\t}\n\n\t\tif ( !this.balloonPlugin.hasView( this.emojiPickerFormView ) ) {\n\t\t\t// Show back button if there is another balloon view visible.\n\t\t\tthis.emojiPickerFormView!.backButtonView.isVisible = !!this.balloonPlugin.visibleView;\n\n\t\t\tthis.balloonPlugin.add( {\n\t\t\t\tview: this.emojiPickerFormView,\n\t\t\t\tposition: this._getBalloonPositionData(),\n\t\t\t\tballoonClassName: 'ck-emoji-picker-balloon'\n\t\t\t} );\n\t\t}\n\n\t\tthis.emojiPickerView.focus();\n\t}\n\n\t/**\n\t * Creates a button for toolbar and menu bar that will show the emoji dialog.\n\t */\n\tprivate _createButton<T extends typeof ButtonView>( ViewClass: T, command: EmojiCommand ): InstanceType<T> {\n\t\tconst buttonView = new ViewClass( this.editor.locale ) as InstanceType<T>;\n\t\tconst t = this.editor.locale.t;\n\n\t\tbuttonView.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\tbuttonView.set( {\n\t\t\tlabel: t( 'Emoji' ),\n\t\t\ticon: IconEmoji,\n\t\t\tisToggleable: true\n\t\t} );\n\n\t\tbuttonView.on( 'execute', () => {\n\t\t\tthis.editor.editing.view.scrollToTheSelection();\n\t\t\tthis.showUI();\n\t\t} );\n\n\t\treturn buttonView;\n\t}\n\n\t/**\n\t * Creates an instance of the `EmojiPickerView` class that represents an emoji balloon.\n\t */\n\tprivate _createEmojiPickerView(): EmojiPickerView {\n\t\tconst emojiPickerView = new EmojiPickerView( this.editor.locale, {\n\t\t\temojiCategories: this.emojiRepositoryPlugin.getEmojiCategories(),\n\t\t\tskinTone: this.editor.config.get( 'emoji.skinTone' )!,\n\t\t\tskinTones: this.emojiRepositoryPlugin.getSkinTones(),\n\t\t\tgetEmojiByQuery: ( query: string ) => {\n\t\t\t\treturn this.emojiRepositoryPlugin.getEmojiByQuery( query );\n\t\t\t}\n\t\t} );\n\n\t\t// Insert an emoji on a tile click.\n\t\tthis.listenTo<EmojiGridViewExecuteEvent>( emojiPickerView.gridView, 'execute', ( evt, data ) => {\n\t\t\tconst editor = this.editor;\n\t\t\tconst textToInsert = data.emoji;\n\n\t\t\tthis._hideUI();\n\t\t\teditor.execute( 'insertText', { text: textToInsert } );\n\t\t} );\n\n\t\treturn emojiPickerView;\n\t}\n\n\t/**\n\t * Creates an instance of the `EmojiPickerFormView` class that represents a balloon with the emoji picker.\n\t */\n\tprivate _createEmojiPickerFormView(): EmojiPickerFormView {\n\t\tconst emojiPickerFormView = new EmojiPickerFormView( this.editor.locale );\n\n\t\temojiPickerFormView.children.add( this.emojiPickerView! );\n\n\t\t// Update the balloon position when layout is changed.\n\t\tthis.listenTo<EmojiPickerViewUpdateEvent>( this.emojiPickerView!, 'update', () => {\n\t\t\tif ( this.balloonPlugin.visibleView === emojiPickerFormView ) {\n\t\t\t\tthis.balloonPlugin.updatePosition();\n\t\t\t}\n\t\t} );\n\n\t\t// Close the dialog when the back button is clicked.\n\t\tthis.listenTo<EmojiPickerFormViewCancelEvent>( emojiPickerFormView, 'cancel', () => {\n\t\t\tthis._hideUI();\n\t\t} );\n\n\t\t// Close the panel on `Esc` key press when the **actions have focus**.\n\t\temojiPickerFormView.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis._hideUI();\n\t\t\tcancel();\n\t\t} );\n\n\t\t// Close the dialog when clicking outside of it.\n\t\tclickOutsideHandler( {\n\t\t\temitter: emojiPickerFormView,\n\t\t\tcontextElements: [ this.balloonPlugin.view.element! ],\n\t\t\tcallback: () => {\n\t\t\t\t// Focusing on the editable during a click outside the balloon panel might\n\t\t\t\t// cause the selection to move to the beginning of the editable, so we avoid\n\t\t\t\t// focusing on it during this action.\n\t\t\t\t// See: https://github.com/ckeditor/ckeditor5/issues/18253\n\t\t\t\tthis._hideUI( false );\n\t\t\t},\n\t\t\tactivator: () => this.balloonPlugin.visibleView === emojiPickerFormView\n\t\t} );\n\n\t\treturn emojiPickerFormView;\n\t}\n\n\t/**\n\t * Hides the balloon with the emoji picker.\n\t *\n\t * @param updateFocus Whether to focus the editor after closing the emoji picker.\n\t */\n\tprivate _hideUI( updateFocus: boolean = true ): void {\n\t\tthis.balloonPlugin.remove( this.emojiPickerFormView! );\n\t\tthis.emojiPickerView!.searchView.setInputValue( '' );\n\n\t\tif ( updateFocus ) {\n\t\t\tthis.editor.editing.view.focus();\n\t\t}\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Registers converters.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Renders a fake visual selection marker on an expanded selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToHighlight( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: {\n\t\t\t\tclasses: [ 'ck-fake-emoji-selection' ]\n\t\t\t}\n\t\t} );\n\n\t\t// Renders a fake visual selection marker on a collapsed selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: ( data, { writer } ) => {\n\t\t\t\tif ( !data.markerRange.isCollapsed ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst markerElement = writer.createUIElement( 'span' );\n\n\t\t\t\twriter.addClass(\n\t\t\t\t\t[ 'ck-fake-emoji-selection', 'ck-fake-emoji-selection_collapsed' ],\n\t\t\t\t\tmarkerElement\n\t\t\t\t);\n\n\t\t\t\treturn markerElement;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns positioning options for the {@link #balloonPlugin}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */\n\tprivate _getBalloonPositionData(): Partial<DomOptimalPositionOptions> {\n\t\tconst view = this.editor.editing.view;\n\t\tconst viewDocument = view.document;\n\n\t\t// Set a target position by converting view selection range to DOM.\n\t\tconst target = () => view.domConverter.viewRangeToDom( viewDocument.selection.getFirstRange()! );\n\n\t\treturn {\n\t\t\ttarget\n\t\t};\n\t}\n\n\t/**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds an 'emoji-picker' marker into the document that is rendered as a highlight on selected text fragment.\n\t */\n\tprivate _showFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst range = model.document.selection.getFirstRange()!;\n\n\t\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t\twriter.updateMarker( VISUAL_SELECTION_MARKER_NAME, { range } );\n\t\t\t} else {\n\t\t\t\tif ( range.start.isAtEnd ) {\n\t\t\t\t\tconst startPosition = range.start.getLastMatchingPosition(\n\t\t\t\t\t\t( { item } ) => !model.schema.isContent( item ),\n\t\t\t\t\t\t{ boundaries: range }\n\t\t\t\t\t);\n\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange: writer.createRange( startPosition, range.end )\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Hides the fake visual selection.\n\t */\n\tprivate _hideFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.removeMarker( VISUAL_SELECTION_MARKER_NAME );\n\t\t\t} );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module emoji/emoji\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { EmojiMention } from './emojimention.js';\nimport { EmojiPicker } from './emojipicker.js';\n\n/**\n * The emoji plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:emoji/emojimention~EmojiMention},\n * * {@link module:emoji/emojipicker~EmojiPicker},\n */\nexport class Emoji extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ EmojiMention, EmojiPicker ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Emoji' 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"]}
|