You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nextcloud/dist/6318-6318.js.map

1 line
178 KiB
Plaintext

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

{"version":3,"file":"6318-6318.js?v=6ddf32e38096b6251432","mappings":"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","sources":["webpack:///nextcloud/node_modules/tributejs/dist/tribute.esm.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-6bc8f6b9.mjs","webpack:///nextcloud/node_modules/string-length/index.js"],"sourcesContent":["if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the <li> container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '<span class=\"tribute-mention\">' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"</span>\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"<span>\",\n post: this.current.collection.searchOpts.post || \"</span>\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import \"../assets/index-d9ae9479.css\";\nimport { r as c } from \"../chunks/index-5f2a5f57.mjs\";\nimport { N as rt } from \"../chunks/index-5f2a5f57.mjs\";\nimport { generateUrl as p } from \"@nextcloud/router\";\nimport { n as u } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { t as o } from \"../chunks/l10n-f692947e.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { emojiAddRecent as m, emojiSearch as d } from \"../Functions/emoji.mjs\";\nimport { n as h, j as f } from \"../chunks/referencePickerModal-6bc8f6b9.mjs\";\nimport \"@nextcloud/axios\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"unified\";\nimport \"remark-parse\";\nimport \"remark-breaks\";\nimport \"remark-rehype\";\nimport \"rehype-react\";\nimport \"rehype-external-links\";\nimport \"./NcEmptyContent.mjs\";\nimport \"./NcSelect.mjs\";\nimport \"./NcLoadingIcon.mjs\";\nimport \"./NcTextField.mjs\";\nimport \"./NcButton.mjs\";\nimport \"./NcModal.mjs\";\nimport \"@nextcloud/event-bus\";\nimport l from \"tributejs/dist/tribute.esm.js\";\nimport _ from \"debounce\";\nimport g from \"string-length\";\nimport { VTooltip as b } from \"floating-vue\";\nconst y = {\n name: \"NcAutoCompleteResult\",\n props: {\n title: {\n type: String,\n required: !0\n },\n subline: {\n type: String,\n default: null\n },\n id: {\n type: String,\n default: null\n },\n icon: {\n type: String,\n required: !0\n },\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: !0\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n computed: {\n avatarUrl() {\n return this.iconUrl ? this.iconUrl : this.id && this.source === \"users\" ? this.getAvatarUrl(this.id, 44) : null;\n },\n haveStatus() {\n var e, t, n;\n return ((e = this.status) == null ? void 0 : e.icon) || ((t = this.status) == null ? void 0 : t.status) && ((n = this.status) == null ? void 0 : n.status) !== \"offline\";\n }\n },\n methods: {\n getAvatarUrl(e, t) {\n return p(\"/avatar/{user}/{size}\", {\n user: e,\n size: t\n });\n }\n }\n};\nvar C = function() {\n var t = this, n = t._self._c;\n return n(\"div\", { staticClass: \"autocomplete-result\" }, [n(\"div\", { staticClass: \"autocomplete-result__icon\", class: [t.icon, `autocomplete-result__icon--${t.avatarUrl ? \"with-avatar\" : \"\"}`], style: t.avatarUrl ? { backgroundImage: `url(${t.avatarUrl})` } : null }, [t.haveStatus ? n(\"div\", { staticClass: \"autocomplete-result__status\", class: [`autocomplete-result__status--${t.status && t.status.icon ? \"icon\" : t.status.status}`] }, [t._v(\" \" + t._s(t.status && t.status.icon || \"\") + \" \")]) : t._e()]), n(\"span\", { staticClass: \"autocomplete-result__content\" }, [n(\"span\", { staticClass: \"autocomplete-result__title\", attrs: { title: t.title } }, [t._v(\" \" + t._s(t.title) + \" \")]), t.subline ? n(\"span\", { staticClass: \"autocomplete-result__subline\" }, [t._v(\" \" + t._s(t.subline) + \" \")]) : t._e()])]);\n}, v = [], k = /* @__PURE__ */ u(\n y,\n C,\n v,\n !1,\n null,\n \"25cf09d8\",\n null,\n null\n);\nconst x = k.exports;\nconst T = {\n name: \"NcRichContenteditable\",\n directives: {\n tooltip: b\n },\n mixins: [c],\n props: {\n value: {\n type: String,\n default: \"\",\n required: !0\n },\n placeholder: {\n type: String,\n default: o(\"Write a message …\")\n },\n autoComplete: {\n type: Function,\n default: () => []\n },\n menuContainer: {\n type: Element,\n default: () => document.body\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: !1\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: !0\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: !0\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: !0\n }\n },\n emits: [\n \"submit\",\n \"paste\",\n \"update:value\",\n \"smart-picker-submit\"\n ],\n data() {\n return {\n textSmiles: [],\n tribute: null,\n autocompleteOptions: {\n // Allow spaces in the middle of mentions\n allowSpaces: !0,\n fillAttr: \"id\",\n // Search against id and title (display name)\n lookup: (e) => `${e.id} ${e.title}`,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => this.renderComponentHtml(e.original, x),\n // Hide if no results\n noMatchTemplate: () => '<span class=\"hidden\"></span>',\n // Inner display of mentions\n selectTemplate: (e) => {\n var t;\n return this.genSelectTemplate((t = e == null ? void 0 : e.original) == null ? void 0 : t.id);\n },\n // Autocompletion results\n values: this.debouncedAutoComplete\n },\n emojiOptions: {\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (e, t) => t,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : `<span class=\"tribute-container-emoji__item__emoji\">${e.original.native}</span> :${e.original.short_name}`,\n // Hide if no results\n noMatchTemplate: () => o(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : (m(e.original), e.original.native),\n // Pass the search results as values\n values: (e, t) => {\n const n = d(e);\n this.textSmiles.includes(\":\" + e) && n.unshift(\":\" + e), t(n);\n },\n // Class added to the menu container\n containerClass: \"tribute-container-emoji\",\n // Class added to each list item\n itemClass: \"tribute-container-emoji__item\"\n },\n linkOptions: {\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (e, t) => t,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => `<img class=\"tribute-container-link__item__icon\" src=\"${e.original.icon_url}\"> <span class=\"tribute-container-link__item__title\">${e.original.title}</span>`,\n // Hide if no results\n noMatchTemplate: () => o(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (e, t) => t(h(e)),\n // Class added to the menu container\n containerClass: \"tribute-container-link\",\n // Class added to each list item\n itemClass: \"tribute-container-link__item\"\n },\n // Represent the raw untrimmed text of the contenteditable\n // serves no other purpose than to check whether the\n // content is empty or not\n localValue: this.value,\n // Is in text composition session in IME\n isComposing: !1\n };\n },\n computed: {\n /**\n * Is the current trimmed value empty?\n *\n * @return {boolean}\n */\n isEmptyValue() {\n return !this.localValue || this.localValue && this.localValue.trim() === \"\";\n },\n /**\n * Is this Firefox? 🙄\n *\n * @return {boolean}\n */\n isFF() {\n return !!navigator.userAgent.match(/firefox/i);\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n return this.isEmptyValue || !this.maxlength ? !1 : g(this.localValue) > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n return this.isOverMaxlength ? {\n content: o(\"Message limit of {count} characters reached\", { count: this.maxlength }),\n shown: !0,\n trigger: \"manual\"\n } : null;\n },\n /**\n * Edit is only allowed when contenteditableis true and disabled is false\n *\n * @return {boolean}\n */\n canEdit() {\n return this.contenteditable && !this.disabled;\n },\n /**\n * Proxied native event handlers without custom event handlers\n *\n * @return {Record<string, Function>}\n */\n listeners() {\n const e = { ...this.$listeners };\n return delete e.paste, e;\n }\n },\n watch: {\n /**\n * If the parent value change, we compare the plain text rendering\n * If it's different, we render everything and update the main content\n */\n value() {\n const e = this.$refs.contenteditable.innerHTML;\n this.value.trim() !== this.parseContent(e).trim() && this.updateContent(this.value);\n }\n },\n mounted() {\n const e = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\n this.textSmiles = [], e.forEach((t) => {\n this.textSmiles.push(\":\" + t), this.textSmiles.push(\":-\" + t);\n }), this.autocompleteTribute = new l(this.autocompleteOptions), this.autocompleteTribute.attach(this.$el), this.emojiAutocomplete && (this.emojiTribute = new l(this.emojiOptions), this.emojiTribute.attach(this.$el)), this.linkAutocomplete && (this.linkTribute = new l(this.linkOptions), this.linkTribute.attach(this.$el)), this.updateContent(this.value), this.$refs.contenteditable.contentEditable = this.canEdit;\n },\n beforeDestroy() {\n this.autocompleteTribute && this.autocompleteTribute.detach(this.$el), this.emojiTribute && this.emojiTribute.detach(this.$el), this.linkTribute && this.linkTribute.detach(this.$el);\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n getLink(e) {\n return f(e.original.id).then((t) => {\n const n = document.getElementById(\"tmp-smart-picker-result-node\"), i = {\n result: t,\n insertText: !0\n };\n if (this.$emit(\"smart-picker-submit\", i), i.insertText) {\n const s = document.createTextNode(t);\n n.replaceWith(s), this.setCursorAfter(s), this.updateValue(this.$refs.contenteditable.innerHTML);\n } else\n n.remove();\n }).catch((t) => {\n console.debug(\"Smart picker promise rejected:\", t);\n const n = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(n), n.remove();\n }), '<span id=\"tmp-smart-picker-result-node\"></span>';\n },\n setCursorAfter(e) {\n const t = document.createRange();\n t.setEndAfter(e), t.collapse();\n const n = window.getSelection();\n n.removeAllRanges(), n.addRange(t);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(e) {\n this.updateValue(e.target.innerHTML);\n },\n /**\n * When pasting, sanitize the content, extract text\n * and render it again\n *\n * @param {Event} event the paste event\n * @fires Event paste the original paste event\n */\n onPaste(e) {\n if (!this.canEdit)\n return;\n e.preventDefault();\n const t = e.clipboardData;\n if (this.$emit(\"paste\", e), t.files.length !== 0 || !Object.values(t.items).find((a) => a == null ? void 0 : a.type.startsWith(\"text\")))\n return;\n const n = t.getData(\"text\"), i = window.getSelection();\n if (!i.rangeCount) {\n this.updateValue(n);\n return;\n }\n const s = i.getRangeAt(0);\n i.deleteFromDocument(), s.insertNode(document.createTextNode(n));\n const r = document.createRange();\n r.setStart(e.target, s.endOffset), r.collapse(!0), i.removeAllRanges(), i.addRange(r), this.updateValue(this.$refs.contenteditable.innerHTML);\n },\n /**\n * Update the value text from the provided html\n *\n * @param {string} htmlOrText the html content (or raw text with @mentions)\n */\n updateValue(e) {\n const t = this.parseContent(e);\n this.localValue = t, this.$emit(\"update:value\", t);\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(e) {\n const t = this.renderContent(e);\n this.$refs.contenteditable.innerHTML = t, this.localValue = e;\n },\n /**\n * Because FF have a decade old bug preventing contenteditable=false\n * to properly be deleted on backspace, we have to hack 👀\n * https://stackoverflow.com/a/59383394/3885878\n * https://stackoverflow.com/a/30574622\n *\n * @param {Event} event the delete keydown event\n */\n onDelete(e) {\n if (!this.isFF || !window.getSelection || !this.canEdit)\n return;\n const t = window.getSelection(), n = e.target;\n if (!t.isCollapsed || !t.rangeCount)\n return;\n const i = t.getRangeAt(t.rangeCount - 1);\n if (i.commonAncestorContainer.nodeType === 3 && i.startOffset > 0)\n return;\n const s = document.createRange();\n if (t.anchorNode !== n)\n s.selectNodeContents(n), s.setEndBefore(t.anchorNode);\n else if (t.anchorOffset > 0)\n s.setEnd(n, t.anchorOffset);\n else\n return;\n s.setStart(n, s.endOffset - 1);\n const r = s.cloneContents().lastChild;\n r && r.contentEditable === \"false\" && (s.deleteContents(), e.preventDefault());\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(e) {\n this.multiline || this.isOverMaxlength || this.autocompleteTribute.isActive || this.emojiTribute.isActive || this.linkTribute.isActive || this.isComposing || (e.preventDefault(), e.stopPropagation(), this.$emit(\"submit\", e));\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(e) {\n this.isOverMaxlength || this.$emit(\"submit\", e);\n },\n /**\n * Debounce the autocomplete function\n */\n debouncedAutoComplete: _(async function(e, t) {\n this.autoComplete(e, t);\n }, 100),\n onKeyUp(e) {\n e.stopImmediatePropagation();\n }\n }\n};\nvar S = function() {\n var t = this, n = t._self._c;\n return n(\"div\", t._g({ directives: [{ name: \"tooltip\", rawName: \"v-tooltip\", value: t.tooltipString, expression: \"tooltipString\" }], ref: \"contenteditable\", staticClass: \"rich-contenteditable__input\", class: {\n \"rich-contenteditable__input--empty\": t.isEmptyValue,\n \"rich-contenteditable__input--multiline\": t.multiline,\n \"rich-contenteditable__input--overflow\": t.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": t.disabled\n }, attrs: { contenteditable: t.canEdit, placeholder: t.placeholder, \"aria-placeholder\": t.placeholder, \"aria-multiline\": \"true\", role: \"textbox\" }, on: { input: t.onInput, compositionstart: function(i) {\n t.isComposing = !0;\n }, compositionend: function(i) {\n t.isComposing = !1;\n }, keydown: [function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"delete\", [8, 46], i.key, [\"Backspace\", \"Delete\", \"Del\"]) ? null : t.onDelete.apply(null, arguments);\n }, function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"enter\", 13, i.key, \"Enter\") || i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : t.onEnter.apply(null, arguments);\n }, function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"enter\", 13, i.key, \"Enter\") || !i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : (i.stopPropagation(), i.preventDefault(), t.onCtrlEnter.apply(null, arguments));\n }], paste: t.onPaste, \"!keyup\": function(i) {\n return i.stopPropagation(), i.preventDefault(), t.onKeyUp.apply(null, arguments);\n } } }, t.listeners));\n}, A = [], E = /* @__PURE__ */ u(\n T,\n S,\n A,\n !1,\n null,\n \"599f92d5\",\n null,\n null\n);\nconst it = E.exports;\nexport {\n x as NcAutoCompleteResult,\n rt as NcMentionBubble,\n it as default\n};\n","import \"../assets/referencePickerModal-3a127978.css\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { t as n } from \"./l10n-f692947e.mjs\";\nimport p from \"@nextcloud/axios\";\nimport { loadState as C } from \"@nextcloud/initial-state\";\nimport { imagePath as L, generateOcsUrl as _ } from \"@nextcloud/router\";\nimport m from \"../Components/NcEmptyContent.mjs\";\nimport { N as P } from \"./index-20a9ace9.mjs\";\nimport w from \"../Components/NcSelect.mjs\";\nimport N from \"../Components/NcLoadingIcon.mjs\";\nimport E from \"../Components/NcTextField.mjs\";\nimport { D as I } from \"./DotsHorizontal-0ee7d901.mjs\";\nimport O from \"../Components/NcButton.mjs\";\nimport B from \"../Components/NcModal.mjs\";\nimport { emit as M } from \"@nextcloud/event-bus\";\nimport { A as V } from \"./ArrowLeft-3779ba88.mjs\";\nimport { C as W } from \"./Close-271f72e2.mjs\";\nimport q from \"vue\";\nwindow._vue_richtext_widgets || (window._vue_richtext_widgets = {});\nconst T = (t) => !!window._vue_richtext_widgets[t], j = (t, e, r = (s) => {\n}) => {\n if (window._vue_richtext_widgets[t]) {\n console.error(\"Widget for id \" + t + \" already registered\");\n return;\n }\n window._vue_richtext_widgets[t] = {\n id: t,\n callback: e,\n onDestroy: r\n };\n}, z = (t, { richObjectType: e, richObject: r, accessible: s }) => {\n if (e !== \"open-graph\") {\n if (!window._vue_richtext_widgets[e]) {\n console.error(\"Widget for rich object type \" + e + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[e].callback(t, { richObjectType: e, richObject: r, accessible: s });\n }\n}, D = (t, e) => {\n t !== \"open-graph\" && window._vue_richtext_widgets[t] && window._vue_richtext_widgets[t].onDestroy(e);\n};\nwindow._registerWidget = j;\nconst A = {\n name: \"NcReferenceWidget\",\n props: {\n reference: {\n type: Object,\n required: !0\n }\n },\n data() {\n return {\n compact: 3\n };\n },\n computed: {\n hasCustomWidget() {\n return T(this.reference.richObjectType);\n },\n noAccess() {\n return this.reference && !this.reference.accessible;\n },\n descriptionStyle() {\n if (this.compact === 0)\n return {\n display: \"none\"\n };\n const t = this.compact < 4 ? this.compact : 3;\n return {\n lineClamp: t,\n webkitLineClamp: t\n };\n },\n compactLink() {\n const t = this.reference.openGraphObject.link;\n return t ? t.startsWith(\"https://\") ? t.substring(8) : t.startsWith(\"http://\") ? t.substring(7) : t : \"\";\n }\n },\n mounted() {\n this.renderWidget(), this.observer = new ResizeObserver((t) => {\n t[0].contentRect.width < 450 ? this.compact = 0 : t[0].contentRect.width < 550 ? this.compact = 1 : t[0].contentRect.width < 650 ? this.compact = 2 : this.compact = 3;\n }), this.observer.observe(this.$el);\n },\n beforeDestroy() {\n this.observer.disconnect(), D(this.reference.richObjectType, this.$el);\n },\n methods: {\n renderWidget() {\n var t;\n this.$refs.customWidget && (this.$refs.customWidget.innerHTML = \"\"), ((t = this == null ? void 0 : this.reference) == null ? void 0 : t.richObjectType) !== \"open-graph\" && this.$nextTick(() => {\n z(this.$refs.customWidget, this.reference);\n });\n }\n }\n};\nvar F = function() {\n var e = this, r = e._self._c;\n return r(\"div\", [e.reference && e.hasCustomWidget ? r(\"div\", { staticClass: \"widget-custom\" }, [r(\"div\", { ref: \"customWidget\" })]) : !e.noAccess && e.reference && e.reference.openGraphObject && !e.hasCustomWidget ? r(\"a\", { staticClass: \"widget-default\", attrs: { href: e.reference.openGraphObject.link, rel: \"noopener noreferrer\", target: \"_blank\" } }, [e.reference.openGraphObject.thumb ? r(\"img\", { staticClass: \"widget-default--image\", attrs: { src: e.reference.openGraphObject.thumb } }) : e._e(), r(\"div\", { staticClass: \"widget-default--details\" }, [r(\"p\", { staticClass: \"widget-default--name\" }, [e._v(e._s(e.reference.openGraphObject.name))]), r(\"p\", { staticClass: \"widget-default--description\", style: e.descriptionStyle }, [e._v(e._s(e.reference.openGraphObject.description))]), r(\"p\", { staticClass: \"widget-default--link\" }, [e._v(e._s(e.compactLink))])])]) : e._e()]);\n}, U = [], Q = /* @__PURE__ */ c(\n A,\n F,\n U,\n !1,\n null,\n \"b1c5a80f\",\n null,\n null\n);\nconst G = Q.exports;\nwindow._vue_richtext_custom_picker_elements || (window._vue_richtext_custom_picker_elements = {});\nclass nt {\n /**\n * @param {HTMLElement} element The HTML element\n * @param {object} object The object\n */\n constructor(e, r) {\n this.element = e, this.object = r;\n }\n}\nconst h = (t) => !!window._vue_richtext_custom_picker_elements[t], H = (t) => {\n var r;\n const e = (r = window._vue_richtext_custom_picker_elements[t]) == null ? void 0 : r.size;\n return [\"small\", \"normal\", \"large\", \"full\"].includes(e) ? e : null;\n}, Z = (t, e, r = (i) => {\n}, s = \"large\") => {\n if (window._vue_richtext_custom_picker_elements[t]) {\n console.error(\"Custom reference picker element for id \" + t + \" already registered\");\n return;\n }\n window._vue_richtext_custom_picker_elements[t] = {\n id: t,\n callback: e,\n onDestroy: r,\n size: s\n };\n}, J = (t, { providerId: e, accessible: r }) => {\n if (!window._vue_richtext_custom_picker_elements[e]) {\n console.error(\"Custom reference picker element for reference provider ID \" + e + \" not registered\");\n return;\n }\n return window._vue_richtext_custom_picker_elements[e].callback(t, { providerId: e, accessible: r });\n}, K = (t, e, r) => {\n window._vue_richtext_custom_picker_elements[t] && window._vue_richtext_custom_picker_elements[t].onDestroy(e, r);\n};\nwindow._registerCustomPickerElement = Z;\nconst X = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: !0\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: h(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n this.isRegistered && this.renderElement();\n },\n beforeDestroy() {\n this.isRegistered && K(this.provider.id, this.$el, this.renderResult);\n },\n methods: {\n renderElement() {\n this.$refs.domElement && (this.$refs.domElement.innerHTML = \"\");\n const t = J(this.$refs.domElement, { providerId: this.provider.id, accessible: !1 });\n Promise.resolve(t).then((e) => {\n var r, s;\n this.renderResult = e, (r = this.renderResult.object) != null && r._isVue && ((s = this.renderResult.object) != null && s.$on) && (this.renderResult.object.$on(\"submit\", this.onSubmit), this.renderResult.object.$on(\"cancel\", this.onCancel)), this.renderResult.element.addEventListener(\"submit\", (i) => {\n this.onSubmit(i.detail);\n }), this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(t) {\n this.$emit(\"submit\", t);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nvar Y = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { ref: \"domElement\" });\n}, ee = [], te = /* @__PURE__ */ c(\n X,\n Y,\n ee,\n !1,\n null,\n \"cf695ff9\",\n null,\n null\n);\nconst re = te.exports, b = \"any-link\", S = {\n id: b,\n title: n(\"Any link\"),\n icon_url: L(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers || (window._vue_richtext_reference_providers = C(\"core\", \"reference-provider-list\", []));\nwindow._vue_richtext_reference_provider_timestamps || (window._vue_richtext_reference_provider_timestamps = C(\"core\", \"reference-provider-timestamps\", {}));\nfunction se(t) {\n return t === b ? S : R().find((e) => e.id === t);\n}\nfunction R() {\n return window._vue_richtext_reference_providers.filter((t) => {\n const e = !!t.search_providers_ids && t.search_providers_ids.length > 0 || h(t.id);\n return e || console.debug(\"[smart picker]\", t.id, \"reference provider is discoverable but does not have any related search provider or custom picker component registered\"), e;\n });\n}\nfunction ie(t) {\n const e = window._vue_richtext_reference_provider_timestamps;\n return t.sort((r, s) => r.order === s.order ? 0 : r.order > s.order ? 1 : -1).sort((r, s) => {\n const i = e[r.id], o = e[s.id];\n return i === o ? 0 : o === void 0 ? -1 : i === void 0 ? 1 : i > o ? -1 : 1;\n });\n}\nfunction ne(t, e = null) {\n const r = R(), s = t.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"), i = new RegExp(s, \"i\"), l = ie(r).filter((a) => a.title.match(i)), u = e ? l.slice(0, e) : l;\n return (t === \"\" || u.length === 0) && u.push(S), u;\n}\nfunction oe(t) {\n const e = Math.floor(Date.now() / 1e3), r = {\n timestamp: e\n }, s = _(\"references/provider/{providerId}\", { providerId: t });\n p.put(s, r).then((i) => {\n window._vue_richtext_reference_provider_timestamps[t] = e;\n });\n}\nlet y = 0;\nfunction x(t, e) {\n return function() {\n const r = this, s = arguments;\n clearTimeout(y), y = setTimeout(function() {\n t.apply(r, s);\n }, e || 0);\n };\n}\nfunction f(t) {\n try {\n return !!new URL(t);\n } catch {\n return !1;\n }\n}\nconst ce = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar le = function() {\n var e = this, r = e._self._c;\n return r(\"span\", e._b({ staticClass: \"material-design-icon link-variant-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [r(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [r(\"path\", { attrs: { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" } }, [e.title ? r(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, ae = [], ue = /* @__PURE__ */ c(\n ce,\n le,\n ae,\n !1,\n null,\n null,\n null,\n null\n);\nconst v = ue.exports;\nconst de = {\n name: \"NcProviderList\",\n components: {\n NcSelect: w,\n NcHighlight: P,\n NcEmptyContent: m,\n LinkVariantIcon: v\n },\n emits: [\n \"select-provider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: n(\"Select provider\"),\n providerIconAlt: n(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const t = [];\n return this.query !== \"\" && f(this.query) && t.push({\n id: this.query,\n title: this.query,\n isLink: !0\n }), t.push(...ne(this.query)), t;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n var t, e, r;\n (r = (e = (t = this.$refs[\"provider-select\"]) == null ? void 0 : t.$el) == null ? void 0 : e.querySelector(\"#provider-select-input\")) == null || r.focus();\n }, 300);\n },\n onProviderSelected(t) {\n t !== null && (t.isLink ? this.$emit(\"submit\", t.title) : this.$emit(\"select-provider\", t), this.selectedProvider = null);\n },\n onSearch(t, e) {\n this.query = t;\n }\n }\n};\nvar he = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"provider-list\" }, [r(\"NcSelect\", { ref: \"provider-select\", staticClass: \"provider-list--select\", attrs: { \"input-id\": \"provider-select-input\", label: \"title\", placeholder: e.multiselectPlaceholder, options: e.options, \"append-to-body\": !1, \"clear-search-on-select\": !0, \"clear-search-on-blur\": () => !1, filterable: !1 }, on: { search: e.onSearch, input: e.onProviderSelected }, scopedSlots: e._u([{ key: \"option\", fn: function(s) {\n return [s.isLink ? r(\"div\", { staticClass: \"provider\" }, [r(\"LinkVariantIcon\", { staticClass: \"link-icon\", attrs: { size: 20 } }), r(\"span\", [e._v(e._s(s.title))])], 1) : r(\"div\", { staticClass: \"provider\" }, [r(\"img\", { staticClass: \"provider-icon\", attrs: { src: s.icon_url, alt: e.providerIconAlt } }), r(\"NcHighlight\", { staticClass: \"option-text\", attrs: { search: e.query, text: s.title } })], 1)];\n } }]), model: { value: e.selectedProvider, callback: function(s) {\n e.selectedProvider = s;\n }, expression: \"selectedProvider\" } }), r(\"NcEmptyContent\", { staticClass: \"provider-list--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"LinkVariantIcon\")];\n }, proxy: !0 }]) })], 1);\n}, _e = [], pe = /* @__PURE__ */ c(\n de,\n he,\n _e,\n !1,\n null,\n \"9d850ea5\",\n null,\n null\n);\nconst me = pe.exports;\nconst fe = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon: v,\n NcEmptyContent: m,\n NcLoadingIcon: N,\n NcReferenceWidget: G,\n NcTextField: E\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: !0\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: !1,\n reference: null,\n abortController: null,\n inputPlaceholder: n(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return f(this.inputValue);\n }\n },\n methods: {\n focus() {\n var t;\n (t = this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]) == null || t.focus();\n },\n onSubmit(t) {\n const e = t.target.value;\n this.isLinkValid && this.$emit(\"submit\", e);\n },\n onClear() {\n this.inputValue = \"\", this.reference = null;\n },\n onInput() {\n this.reference = null, this.abortController && this.abortController.abort(), this.isLinkValid && x(() => {\n this.updateReference();\n }, 500)();\n },\n updateReference() {\n this.loading = !0, this.abortController = new AbortController(), p.get(_(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((t) => {\n this.reference = t.data.ocs.data.references[this.inputValue];\n }).catch((t) => {\n console.error(t);\n }).then(() => {\n this.loading = !1;\n });\n }\n }\n};\nvar ve = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"raw-link\" }, [r(\"div\", { staticClass: \"input-wrapper\" }, [r(\"NcTextField\", { ref: \"url-input\", attrs: { value: e.inputValue, \"show-trailing-button\": e.inputValue !== \"\", label: e.inputPlaceholder }, on: { \"update:value\": [function(s) {\n e.inputValue = s;\n }, e.onInput], \"trailing-button-click\": e.onClear }, nativeOn: { keyup: function(s) {\n return !s.type.indexOf(\"key\") && e._k(s.keyCode, \"enter\", 13, s.key, \"Enter\") ? null : e.onSubmit.apply(null, arguments);\n } } }, [e.loading ? r(\"NcLoadingIcon\", { attrs: { size: 16 } }) : r(\"LinkVariantIcon\", { attrs: { size: 16 } })], 1)], 1), e.reference !== null ? r(\"NcReferenceWidget\", { staticClass: \"reference-widget\", attrs: { reference: e.reference } }) : r(\"NcEmptyContent\", { staticClass: \"raw-link--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon\", attrs: { src: e.provider.icon_url } }) : r(\"LinkVariantIcon\")];\n }, proxy: !0 }]) })], 1);\n}, ge = [], ye = /* @__PURE__ */ c(\n fe,\n ve,\n ge,\n !1,\n null,\n \"d0ba247a\",\n null,\n null\n);\nconst ke = ye.exports;\nconst Ce = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: P\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: !0\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: !0\n }\n }\n};\nvar Pe = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"result\" }, [e.entry.icon ? r(\"div\", { staticClass: \"result--icon-class\", class: { [e.entry.icon]: !0, rounded: e.entry.rounded } }) : r(\"img\", { staticClass: \"result--image\", class: { rounded: e.entry.rounded }, attrs: { src: e.entry.thumbnailUrl } }), r(\"div\", { staticClass: \"result--content\" }, [r(\"span\", { staticClass: \"result--content--name\" }, [r(\"NcHighlight\", { attrs: { search: e.query, text: e.entry.title } })], 1), r(\"span\", { staticClass: \"result--content--subline\" }, [r(\"NcHighlight\", { attrs: { search: e.query, text: e.entry.subline } })], 1)])]);\n}, we = [], be = /* @__PURE__ */ c(\n Ce,\n Pe,\n we,\n !1,\n null,\n \"7a394a58\",\n null,\n null\n);\nconst Se = be.exports;\nconst k = 5, Re = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon: v,\n DotsHorizontalIcon: I,\n NcEmptyContent: m,\n NcSelect: w,\n NcSearchResult: Se\n },\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: !0\n },\n showEmptyContent: {\n type: Boolean,\n default: !0\n },\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: !1,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: n(\"Start typing to search\"),\n providerIconAlt: n(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || n(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\")\n return [];\n const t = [];\n return f(this.searchQuery) && t.push(this.rawLinkEntry), t.push(...this.formattedSearchResults), t;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: !0\n };\n },\n formattedSearchResults() {\n const t = [];\n return this.searchProviderIds.forEach((e) => {\n if (this.resultsBySearchProvider[e].entries.length > 0) {\n (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[e].entries.length > 1) && t.push({\n id: \"groupTitle-\" + e,\n name: this.resultsBySearchProvider[e].name,\n isCustomGroupTitle: !0,\n providerId: e\n });\n const r = this.resultsBySearchProvider[e].entries.map((s, i) => ({\n id: \"provider-\" + e + \"-entry-\" + i,\n ...s\n }));\n t.push(...r), this.resultsBySearchProvider[e].isPaginated && t.push({\n id: \"moreOf-\" + e,\n name: this.resultsBySearchProvider[e].name,\n isMore: !0,\n providerId: e,\n isLoading: this.searchingMoreOf === e\n });\n }\n }), t;\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeDestroy() {\n this.cancelSearchRequests();\n },\n methods: {\n t: n,\n resetResults() {\n const t = {};\n this.searchProviderIds.forEach((e) => {\n t[e] = {\n entries: []\n };\n }), this.resultsBySearchProvider = t;\n },\n focus() {\n setTimeout(() => {\n var t, e, r;\n (r = (e = (t = this.$refs[\"search-select\"]) == null ? void 0 : t.$el) == null ? void 0 : e.querySelector(\"#search-select-input\")) == null || r.focus();\n }, 300);\n },\n cancelSearchRequests() {\n this.abortController && this.abortController.abort();\n },\n onSearchInput(t, e) {\n this.searchQuery = t, x(() => {\n this.updateSearch();\n }, 500)();\n },\n onSelectResultSelected(t) {\n t !== null && (t.resourceUrl ? (this.cancelSearchRequests(), this.$emit(\"submit\", t.resourceUrl)) : t.isMore && this.searchMoreOf(t.providerId).then(() => {\n this.selectedResult = null;\n }));\n },\n searchMoreOf(t) {\n return this.searchingMoreOf = t, this.cancelSearchRequests(), this.searchProviders(t);\n },\n updateSearch() {\n if (this.cancelSearchRequests(), this.resetResults(), this.searchQuery === \"\") {\n this.searching = !1;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(t = null) {\n var r, s;\n this.abortController = new AbortController(), this.searching = !0;\n const e = t === null ? [...this.searchProviderIds].map((i) => this.searchOneProvider(i)) : [this.searchOneProvider(t, (s = (r = this.resultsBySearchProvider[t]) == null ? void 0 : r.cursor) != null ? s : null)];\n return Promise.allSettled(e).then((i) => {\n !!i.find((l) => l.status === \"rejected\" && (l.reason.name === \"CanceledError\" || l.reason.code === \"ERR_CANCELED\")) || (this.searching = !1, this.searchingMoreOf = null);\n });\n },\n searchOneProvider(t, e = null) {\n const r = e === null ? _(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId: t, term: this.searchQuery, limit: k }) : _(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId: t, term: this.searchQuery, limit: k, cursor: e });\n return p.get(r, {\n signal: this.abortController.signal\n }).then((s) => {\n const i = s.data.ocs.data;\n this.resultsBySearchProvider[t].name = i.name, this.resultsBySearchProvider[t].cursor = i.cursor, this.resultsBySearchProvider[t].isPaginated = i.isPaginated, this.resultsBySearchProvider[t].entries.push(...i.entries);\n });\n }\n }\n};\nvar xe = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"smart-picker-search\", class: { \"with-empty-content\": e.showEmptyContent } }, [r(\"NcSelect\", { ref: \"search-select\", staticClass: \"smart-picker-search--select\", attrs: { \"input-id\": \"search-select-input\", label: \"name\", placeholder: e.mySearchPlaceholder, options: e.options, \"append-to-body\": !1, \"close-on-select\": !1, \"clear-search-on-select\": !1, \"clear-search-on-blur\": () => !1, \"reset-focus-on-options-change\": !1, filterable: !1, autoscroll: !0, \"reset-on-options-change\": !1, loading: e.searching }, on: { search: e.onSearchInput, input: e.onSelectResultSelected }, scopedSlots: e._u([{ key: \"option\", fn: function(s) {\n return [s.isRawLink ? r(\"div\", { staticClass: \"custom-option\" }, [r(\"LinkVariantIcon\", { staticClass: \"option-simple-icon\", attrs: { size: 20 } }), r(\"span\", { staticClass: \"option-text\" }, [e._v(\" \" + e._s(e.t(\"Raw link {options}\", { options: s.resourceUrl })) + \" \")])], 1) : s.resourceUrl ? r(\"NcSearchResult\", { staticClass: \"search-result\", attrs: { entry: s, query: e.searchQuery } }) : s.isCustomGroupTitle ? r(\"span\", { staticClass: \"custom-option group-name\" }, [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon group-name-icon\", attrs: { src: e.provider.icon_url } }) : e._e(), r(\"span\", { staticClass: \"option-text\" }, [r(\"strong\", [e._v(e._s(s.name))])])]) : s.isMore ? r(\"span\", { class: { \"custom-option\": !0 } }, [s.isLoading ? r(\"span\", { staticClass: \"option-simple-icon icon-loading-small\" }) : r(\"DotsHorizontalIcon\", { staticClass: \"option-simple-icon\", attrs: { size: 20 } }), r(\"span\", { staticClass: \"option-text\" }, [e._v(\" \" + e._s(e.t('Load more \"{options}\"', { options: s.name })) + \" \")])], 1) : e._e()];\n } }, { key: \"no-options\", fn: function() {\n return [e._v(\" \" + e._s(e.noOptionsText) + \" \")];\n }, proxy: !0 }]), model: { value: e.selectedResult, callback: function(s) {\n e.selectedResult = s;\n }, expression: \"selectedResult\" } }), e.showEmptyContent ? r(\"NcEmptyContent\", { staticClass: \"smart-picker-search--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon\", attrs: { alt: e.providerIconAlt, src: e.provider.icon_url } }) : r(\"LinkVariantIcon\")];\n }, proxy: !0 }], null, !1, 2922132592) }) : e._e()], 1);\n}, $e = [], Le = /* @__PURE__ */ c(\n Re,\n xe,\n $e,\n !1,\n null,\n \"97d196f0\",\n null,\n null\n);\nconst Ne = Le.exports;\nconst d = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n}, Ee = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement: re,\n NcProviderList: me,\n NcRawLinkInput: ke,\n NcSearch: Ne\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: !0\n }\n },\n emits: [\n \"cancel\",\n \"cancel-raw-link\",\n \"cancel-search\",\n \"provider-selected\",\n \"submit\"\n ],\n data() {\n return {\n MODES: d,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? d.providerList : h(this.selectedProvider.id) ? d.customElement : this.selectedProvider.search_providers_ids ? d.searchInput : d.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n this.focusOnCreate && (this.initialProvider ? setTimeout(() => {\n var t;\n (t = this.$refs[\"url-input\"]) == null || t.focus();\n }, 300) : this.$nextTick(() => {\n var t;\n (t = this.$refs[\"provider-list\"]) == null || t.focus();\n }));\n },\n methods: {\n onEscapePressed() {\n this.selectedProvider !== null ? this.deselectProvider() : this.cancelProviderSelection();\n },\n onProviderSelected(t) {\n this.selectedProvider = t, this.$emit(\"provider-selected\", t), this.$nextTick(() => {\n var e;\n (e = this.$refs[\"url-input\"]) == null || e.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n var t;\n this.$emit(\"cancel-search\", (t = this.selectedProvider) == null ? void 0 : t.title), this.deselectProvider();\n },\n cancelRawLinkInput() {\n var t;\n this.$emit(\"cancel-raw-link\", (t = this.selectedProvider) == null ? void 0 : t.title), this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(t) {\n this.selectedProvider !== null && oe(this.selectedProvider.id), this.$emit(\"submit\", t), this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null, this.$emit(\"provider-selected\", null), setTimeout(() => {\n var t;\n (t = this.$refs[\"provider-list\"]) == null || t.focus();\n }, 300);\n }\n }\n};\nvar Ie = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"reference-picker\", style: e.pickerWrapperStyle, attrs: { tabindex: \"-1\" }, on: { keydown: function(s) {\n return !s.type.indexOf(\"key\") && e._k(s.keyCode, \"esc\", 27, s.key, [\"Esc\", \"Escape\"]) ? null : (s.stopPropagation(), s.preventDefault(), e.onEscapePressed.apply(null, arguments));\n } } }, [e.mode === e.MODES.providerList ? r(\"NcProviderList\", { ref: \"provider-list\", on: { \"select-provider\": e.onProviderSelected, submit: e.submitLink, cancel: e.cancelProviderSelection } }) : e.mode === e.MODES.standardLinkInput ? r(\"NcRawLinkInput\", { ref: \"url-input\", attrs: { provider: e.selectedProvider }, on: { submit: e.submitLink, cancel: e.cancelRawLinkInput } }) : e.mode === e.MODES.searchInput ? r(\"NcSearch\", { ref: \"url-input\", attrs: { provider: e.selectedProvider }, on: { cancel: e.cancelSearch, submit: e.submitLink } }) : e.mode === e.MODES.customElement ? r(\"div\", { staticClass: \"custom-element-wrapper\" }, [r(\"NcCustomPickerElement\", { attrs: { provider: e.selectedProvider }, on: { submit: e.submitLink, cancel: e.cancelCustomElement } })], 1) : e._e()], 1);\n}, Oe = [], Be = /* @__PURE__ */ c(\n Ee,\n Ie,\n Oe,\n !1,\n null,\n \"aa77d0d3\",\n null,\n null\n);\nconst Me = Be.exports;\nconst Ve = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker: Me,\n NcModal: B,\n NcButton: O,\n ArrowLeftIcon: V,\n CloseIcon: W\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: !0\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: !0,\n selectedProvider: this.initialProvider,\n backButtonTitle: n(\"Back to provider selection\"),\n closeButtonTitle: n(\"Close\"),\n closeButtonLabel: n(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n var t;\n return this.isProviderSelected && h(this.selectedProvider.id) ? (t = H(this.selectedProvider.id)) != null ? t : \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !h(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : n(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const t = this.$refs.modal_content;\n M(\"viewer:trapElements:changed\", t);\n }\n },\n methods: {\n onCancel() {\n this.show = !1, this.$emit(\"cancel\");\n },\n onSubmit(t) {\n this.show = !1, this.$emit(\"submit\", t);\n },\n onProviderSelect(t) {\n this.selectedProvider = t, t === null && this.initialProvider !== null && this.onCancel();\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nvar We = function() {\n var e = this, r = e._self._c;\n return e.show ? r(\"NcModal\", { staticClass: \"reference-picker-modal\", attrs: { size: e.modalSize, \"can-close\": !1 }, on: { close: e.onCancel } }, [r(\"div\", { ref: \"modal_content\", staticClass: \"reference-picker-modal--content\" }, [e.showBackButton ? r(\"NcButton\", { staticClass: \"back-button\", attrs: { \"aria-label\": e.backButtonTitle, title: e.backButtonTitle }, on: { click: e.onBackClicked }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"ArrowLeftIcon\")];\n }, proxy: !0 }], null, !1, 3001860362) }) : e._e(), r(\"NcButton\", { staticClass: \"close-button\", attrs: { \"aria-label\": e.closeButtonLabel, title: e.closeButtonTitle, type: \"tertiary\" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"CloseIcon\")];\n }, proxy: !0 }], null, !1, 2491825086) }), e.showModalName ? r(\"h2\", [e._v(\" \" + e._s(e.modalName) + \" \")]) : e._e(), r(\"NcReferencePicker\", { ref: \"referencePicker\", attrs: { \"initial-provider\": e.initialProvider, \"focus-on-create\": e.focusOnCreate }, on: { \"provider-selected\": e.onProviderSelect, submit: e.onSubmit, cancel: e.onCancel } })], 1)]) : e._e();\n}, qe = [], Te = /* @__PURE__ */ c(\n Ve,\n We,\n qe,\n !1,\n null,\n \"3f1a4ac7\",\n null,\n null\n);\nconst je = Te.exports;\nasync function ot(t = null, e = void 0) {\n return await new Promise((r, s) => {\n var g;\n const i = \"referencePickerModal\", o = document.createElement(\"div\");\n o.id = i, document.body.append(o);\n const l = t === null ? null : (g = se(t)) != null ? g : null, u = q.extend(je), a = new u({\n propsData: {\n initialProvider: l,\n isInsideViewer: e\n }\n }).$mount(o);\n a.$on(\"cancel\", () => {\n a.$destroy(), s(new Error(\"User cancellation\"));\n }), a.$on(\"submit\", ($) => {\n a.$destroy(), r($);\n });\n });\n}\nexport {\n G as N,\n Me as a,\n je as b,\n Ne as c,\n z as d,\n nt as e,\n Z as f,\n J as g,\n h,\n T as i,\n ot as j,\n b as k,\n se as l,\n R as m,\n ne as n,\n j as r,\n ie as s\n};\n","import stripAnsi from 'strip-ansi';\nimport charRegex from 'char-regex';\n\nexport default function stringLength(string, {countAnsiEscapeCodes = false} = {}) {\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\treturn string.match(charRegex()).length;\n}\n"],"names":["Array","prototype","find","predicate","this","TypeError","value","list","Object","length","thisArg","arguments","i","call","window","CustomEvent","CustomEvent$1","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","Event","TributeEvents","constructor","tribute","events","keys","key","bind","element","boundKeydown","keydown","boundKeyup","keyup","boundInput","input","addEventListener","unbind","removeEventListener","instance","shouldDeactivate","isActive","hideMenu","commandEvent","forEach","o","keyCode","callbacks","toLowerCase","inputEvent","click","menu","contains","target","li","preventDefault","stopPropagation","nodeName","parentNode","Error","selectItemAtIndex","getAttribute","current","externalTrigger","setTimeout","updateSelection","allowSpaces","hasTrailingSpace","autocompleteMode","triggerChar","getKeyCode","isNaN","trigger","triggers","charCodeAt","mentionText","collection","menuShowMinLength","showMenuFor","eventKeyPressed","el","info","range","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","e","collectionItem","item","enter","filteredItems","menuSelected","escape","tab","space","spaceSelectsMatch","up","count","selected","setActiveLi","scrollTop","scrollHeight","down","delete","index","lis","querySelectorAll","parseInt","classList","add","selectClass","liClientRect","getBoundingClientRect","menuClientRect","bottom","scrollDistance","top","remove","getFullHeight","elem","includeMargin","height","style","currentStyle","getComputedStyle","parseFloat","marginTop","marginBottom","TributeMenuEvents","menuEvents","menuClickEvent","menuContainerScrollEvent","debounce","windowResizeEvent","positionMenuAtCaret","getDocument","menuContainer","func","wait","immediate","timeout","context","args","callNow","clearTimeout","apply","TributeRange","iframe","contentWindow","scrollTo","coordinates","positionMenu","cssText","isContentEditable","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","left","right","scrollIntoView","menuDimensions","width","offsetWidth","offsetHeight","menuIsOffScreen","isMenuOffScreen","menuIsOffScreenHorizontally","innerWidth","menuIsOffScreenVertically","innerHeight","menuContainerIsBody","body","selectElement","targetElement","path","offset","childNodes","nextSibling","previousSibling","sel","getWindowSelection","createRange","setStart","setEnd","collapse","removeAllRanges","error","addRange","focus","replaceTriggerText","text","requireLeadingSpace","originalEvent","replaceEvent","replaceTextSuffix","endPos","pasteHtml","myField","textSuffix","startPos","substring","selectionStart","selectionEnd","dispatchEvent","html","anchorNode","deleteContents","createElement","innerHTML","node","lastNode","frag","createDocumentFragment","firstChild","appendChild","insertNode","cloneRange","setStartAfter","getSelection","getNodePositionInParent","getContentEditableSelectedPath","ctx","ce","contentEditable","push","reverse","getRangeAt","startOffset","getTextPrecedingCurrentSelection","selectedElem","workingNodeContent","textContent","selectStartOffset","textComponent","getLastWordInText","wordsArray","replace","split","trim","menuAlreadyActive","isAutocomplete","selectionInfo","effectiveRange","lastWordOfEffectiveRange","mentionSelectedElement","mostRecentTriggerCharPos","config","c","idx","lastIndexWithLeadingSpace","lastIndexOf","test","currentTriggerSnippet","firstSnippetChar","leadingSpace","regex","str","reversedStr","join","cidx","len","firstChar","match","triggerIdx","windowWidth","windowHeight","doc","documentElement","windowLeft","pageXOffset","scrollLeft","clientLeft","windowTop","pageYOffset","clientTop","menuTop","menuRight","menuBottom","menuLeft","Math","floor","ceil","getMenuDimensions","dimensions","position","flipped","isFirefox","mozInnerScreenX","div","id","computed","whiteSpace","wordWrap","visibility","prop","overflowY","overflow","span","rect","offsetTop","borderTopWidth","fontSize","offsetLeft","borderLeftWidth","parentHeight","scrollStillAvailable","removeChild","selectedNodePosition","clientRect","elemTop","elemBottom","maxY","targetY","TributeSearch","search","simpleFilter","pattern","array","filter","string","opts","pre","post","compareString","caseSensitive","skip","rendered","score","patternCache","traverse","render","cache","stringIndex","patternIndex","calculateScore","slice","best","temp","indexOf","pop","indices","arr","reduce","prev","extract","original","sort","a","b","Tribute","values","containerClass","itemClass","selectTemplate","menuItemTemplate","lookup","fillAttr","noMatchTemplate","searchOpts","menuItemLimit","defaultSelectTemplate","defaultMenuItemTemplate","t","console","warn","map","_isActive","val","noMatchEvent","matchItem","inputTypes","attach","jQuery","get","NodeList","HTMLCollection","_attach","hasAttribute","ensureEditable","setAttribute","createMenu","wrapper","ul","className","currentMentionTextSnapshot","tributeMenu","processValues","items","querySelector","fragment","_findLiTarget","movementY","showMenuForCollection","collectionIndex","activeElement","placeCaretAtEnd","insertTextAtCursor","insertAtCaret","selectNodeContents","createTextRange","textRange","moveToElementText","select","textNode","createTextNode","textarea","scrollPos","caretPos","front","back","content","replaceText","_append","newValues","concat","append","appendCurrent","detach","_detach","removeAttribute","y","name","props","title","type","String","required","subline","default","icon","iconUrl","source","status","avatarUrl","getAvatarUrl","haveStatus","n","methods","user","size","C","_self","_c","staticClass","class","backgroundImage","_v","_s","_e","attrs","v","x","exports","T","directives","tooltip","mixins","placeholder","autoComplete","Function","Element","multiline","Boolean","contenteditable","disabled","maxlength","Number","emojiAutocomplete","linkAutocomplete","emits","data","textSmiles","autocompleteOptions","renderComponentHtml","genSelectTemplate","debouncedAutoComplete","emojiOptions","includes","native","short_name","unshift","linkOptions","icon_url","getLink","localValue","isComposing","isEmptyValue","isFF","navigator","userAgent","isOverMaxlength","tooltipString","shown","canEdit","listeners","$listeners","paste","watch","$refs","parseContent","updateContent","mounted","autocompleteTribute","$el","emojiTribute","linkTribute","beforeDestroy","then","getElementById","result","insertText","$emit","s","replaceWith","setCursorAfter","updateValue","catch","debug","setEndAfter","onInput","onPaste","clipboardData","files","startsWith","getData","rangeCount","deleteFromDocument","r","endOffset","renderContent","onDelete","isCollapsed","commonAncestorContainer","nodeType","setEndBefore","anchorOffset","cloneContents","lastChild","onEnter","onCtrlEnter","async","onKeyUp","stopImmediatePropagation","S","_g","rawName","expression","ref","role","on","compositionstart","compositionend","_k","ctrlKey","shiftKey","altKey","metaKey","A","it","_vue_richtext_widgets","_registerWidget","callback","onDestroy","reference","compact","hasCustomWidget","richObjectType","noAccess","accessible","descriptionStyle","display","lineClamp","webkitLineClamp","compactLink","openGraphObject","link","renderWidget","observer","ResizeObserver","contentRect","observe","disconnect","customWidget","$nextTick","richObject","z","F","href","rel","thumb","src","description","U","G","_vue_richtext_custom_picker_elements","h","_registerCustomPickerElement","X","provider","isRegistered","renderResult","renderElement","domElement","providerId","J","Promise","resolve","object","_isVue","$on","onSubmit","onCancel","Y","ee","re","R","_vue_richtext_reference_providers","search_providers_ids","ne","RegExp","l","_vue_richtext_reference_provider_timestamps","order","ie","u","f","URL","fillColor","le","_b","$attrs","fill","viewBox","d","ae","de","components","NcSelect","NcHighlight","NcEmptyContent","LinkVariantIcon","selectedProvider","query","multiselectPlaceholder","providerIconAlt","options","isLink","onProviderSelected","onSearch","he","label","filterable","scopedSlots","_u","fn","alt","model","proxy","me","fe","NcLoadingIcon","NcReferenceWidget","NcTextField","inputValue","loading","abortController","inputPlaceholder","isLinkValid","getElementsByTagName","onClear","abort","updateReference","AbortController","encodeURIComponent","signal","ocs","references","ve","nativeOn","ge","ke","Ce","entry","Pe","rounded","thumbnailUrl","we","Se","Re","DotsHorizontalIcon","NcSearchResult","showEmptyContent","searchPlaceholder","searchQuery","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","noOptionsText","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","entries","isCustomGroupTitle","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviders","searchOneProvider","cursor","allSettled","reason","code","term","limit","xe","autoscroll","$e","Ne","providerList","standardLinkInput","searchInput","customElement","Ee","NcCustomPickerElement","NcProviderList","NcRawLinkInput","NcSearch","initialProvider","focusOnCreate","MODES","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","Date","now","timestamp","put","oe","Ie","tabindex","submit","cancel","Oe","Ve","NcReferencePicker","NcModal","NcButton","ArrowLeftIcon","CloseIcon","isInsideViewer","show","backButtonTitle","closeButtonTitle","closeButtonLabel","isProviderSelected","showBackButton","modalSize","H","showModalName","modalName","modal_content","onProviderSelect","onBackClicked","referencePicker","We","close","qe","je","ot","g","se","extend","propsData","$mount","$destroy","$","stringLength","countAnsiEscapeCodes"],"sourceRoot":""}