{"version":3,"file":"js/5703-49cad02b00b9733a6f82.js","mappings":"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","sources":["webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/vendor/tribute.js"],"sourcesContent":["/* eslint-disable */\n\n/*\n Modified file from the original tribute.js\n Adding inside click event the conditional if the li element has no disabled-tribute-element class name. if true, then it must continue with normal behaviour.\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Tribute = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i',\n post: _this2.current.collection.searchOpts.post || '',\n skip: _this2.current.collection.searchOpts.skip,\n extract: function extract(el) {\n if (typeof _this2.current.collection.lookup === 'string') {\n return el[_this2.current.collection.lookup];\n } else if (typeof _this2.current.collection.lookup === 'function') {\n return _this2.current.collection.lookup(el, _this2.current.mentionText);\n } else {\n throw new Error('Invalid lookup attribute, lookup must be string or function.');\n }\n }\n });\n\n if (_this2.current.collection.menuItemLimit) {\n items = items.slice(0, _this2.current.collection.menuItemLimit);\n }\n\n _this2.current.filteredItems = items;\n\n var ul = _this2.menu.querySelector('ul');\n\n _this2.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n var noMatchEvent = new CustomEvent('tribute-no-match', {\n detail: _this2.menu\n });\n\n _this2.current.element.dispatchEvent(noMatchEvent);\n\n if (typeof _this2.current.collection.noMatchTemplate === 'function' && !_this2.current.collection.noMatchTemplate() || !_this2.current.collection.noMatchTemplate) {\n _this2.hideMenu();\n } else {\n typeof _this2.current.collection.noMatchTemplate === 'function' ? ul.innerHTML = _this2.current.collection.noMatchTemplate() : ul.innerHTML = _this2.current.collection.noMatchTemplate;\n }\n\n return;\n }\n\n ul.innerHTML = '';\n\n var fragment = _this2.range.getDocument().createDocumentFragment();\n\n items.forEach(function (item, index) {\n var li = _this2.range.getDocument().createElement('li');\n li.setAttribute('role', 'option');\n li.setAttribute('data-index', index);\n li.addEventListener('mousemove', function (e) {\n var _this2$_findLiTarget = _this2._findLiTarget(e.target),\n _this2$_findLiTarget2 = _slicedToArray(_this2$_findLiTarget, 2),\n li = _this2$_findLiTarget2[0],\n index = _this2$_findLiTarget2[1];\n\n if (e.movementY !== 0) {\n _this2.events.setActiveLi(index);\n }\n });\n\n if (_this2.menuSelected === index) {\n li.className = _this2.current.collection.selectClass;\n }\n\n li.innerHTML = _this2.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 key: \"_findLiTarget\",\n value: function _findLiTarget(el) {\n if (!el) return [];\n var index = el.getAttribute('data-index');\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n }, {\n key: \"showMenuForCollection\",\n value: function 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 if (element.isContentEditable) this.insertTextAtCursor(this.current.collection.trigger);else this.insertAtCaret(element, this.current.collection.trigger);\n this.showMenuFor(element);\n } // TODO: make sure this works for inputs/textareas\n\n }, {\n key: \"placeCaretAtEnd\",\n value: function placeCaretAtEnd(el) {\n el.focus();\n\n if (typeof window.getSelection != \"undefined\" && typeof document.createRange != \"undefined\") {\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 } // for contenteditable\n\n }, {\n key: \"insertTextAtCursor\",\n value: function insertTextAtCursor(text) {\n var sel, range, html;\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 } // for regular inputs\n\n }, {\n key: \"insertAtCaret\",\n value: function insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(textarea.selectionEnd, textarea.value.length);\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 key: \"hideMenu\",\n value: function 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 key: \"selectItemAtIndex\",\n value: function selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== 'number' || isNaN(index)) return;\n var item = this.current.filteredItems[index];\n var content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n }, {\n key: \"replaceText\",\n value: function replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n }, {\n key: \"_append\",\n value: function _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 key: \"append\",\n value: function append(collectionIndex, newValues, replace) {\n var index = parseInt(collectionIndex);\n if (typeof index !== 'number') throw new Error('please provide an index for the collection to update.');\n var collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n }, {\n key: \"appendCurrent\",\n value: function appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error('No active state. Please use append instead and pass an index.');\n }\n }\n }, {\n key: \"detach\",\n value: function detach(el) {\n if (!el) {\n throw new Error('[Tribute] Must pass in a DOM node or NodeList.');\n } // Check if it is a jQuery collection\n\n\n if (typeof jQuery !== 'undefined' && el instanceof jQuery) {\n el = el.get();\n } // Is el an Array/Array-like object?\n\n\n if (el.constructor === NodeList || el.constructor === HTMLCollection || el.constructor === Array) {\n var length = el.length;\n\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n }, {\n key: \"_detach\",\n value: function _detach(el) {\n var _this3 = this;\n\n this.events.unbind(el);\n\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(function () {\n el.removeAttribute('data-tribute');\n _this3.isActive = false;\n\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n }], [{\n key: \"defaultSelectTemplate\",\n value: function defaultSelectTemplate(item) {\n if (typeof item === 'undefined') return null;\n\n if (this.range.isContentEditable(this.current.element)) {\n return '' + (this.current.collection.trigger + item.original[this.current.collection.fillAttr]) + '';\n }\n\n return this.current.collection.trigger + item.original[this.current.collection.fillAttr];\n }\n }, {\n key: \"defaultMenuItemTemplate\",\n value: function defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n }, {\n key: \"inputTypes\",\n value: function inputTypes() {\n return ['TEXTAREA', 'INPUT'];\n }\n }]);\n\n return Tribute;\n}();\n\nvar _default = Tribute;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n},{\"./TributeEvents\":2,\"./TributeMenuEvents\":3,\"./TributeRange\":4,\"./TributeSearch\":5,\"./utils\":7}],2:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar TributeEvents =\n/*#__PURE__*/\nfunction () {\n function TributeEvents(tribute) {\n _classCallCheck(this, TributeEvents);\n\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n _createClass(TributeEvents, [{\n key: \"bind\",\n value: function 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 element.addEventListener('keydown', element.boundKeydown, false);\n element.addEventListener('keyup', element.boundKeyup, false);\n element.addEventListener('input', element.boundInput, false);\n }\n }, {\n key: \"unbind\",\n value: function unbind(element) {\n element.removeEventListener('keydown', element.boundKeydown, false);\n element.removeEventListener('keyup', element.boundKeyup, false);\n element.removeEventListener('input', element.boundInput, false);\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n }, {\n key: \"keydown\",\n value: function keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n var element = this;\n instance.commandEvent = false;\n TributeEvents.keys().forEach(function (o) {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n }, {\n key: \"input\",\n value: function input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n }, {\n key: \"click\",\n value: function click(instance, event) {\n var tribute = instance.tribute;\n\n if (tribute.menu && tribute.menu.contains(event.target)) {\n var li = event.target;\n event.preventDefault();\n event.stopPropagation();\n\n while (li.nodeName.toLowerCase() !== 'li') {\n li = li.parentNode;\n\n if (!li || li === tribute.menu) {\n throw new Error('cannot find the
  • container for the click');\n }\n }\n\n if (li.getElementsByClassName(\"disabled-tribute-element\")[0]==undefined){\n tribute.selectItemAtIndex(li.getAttribute('data-index'), event);\n tribute.hideMenu(); // TODO: should fire with externalTrigger and target is outside of menu\n }\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(function () {\n return tribute.hideMenu();\n });\n }\n }\n }, {\n key: \"keyup\",\n value: function keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n\n instance.updateSelection(this);\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 var keyCode = instance.getKeyCode(instance, this, event);\n if (isNaN(keyCode) || !keyCode) return;\n var trigger = instance.tribute.triggers().find(function (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 ((instance.tribute.current.trigger || instance.tribute.autocompleteMode) && instance.commandEvent === false || instance.tribute.isActive && event.keyCode === 8) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n }, {\n key: \"shouldDeactivate\",\n value: function shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n var eventKeyPressed = false;\n TributeEvents.keys().forEach(function (o) {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n return !eventKeyPressed;\n }\n\n return false;\n }\n }, {\n key: \"getKeyCode\",\n value: function getKeyCode(instance, el, event) {\n var _char;\n\n var tribute = instance.tribute;\n var info = tribute.range.getTriggerInfo(false, tribute.hasTrailingSpace, true, tribute.allowSpaces, tribute.autocompleteMode);\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n }, {\n key: \"updateSelection\",\n value: function updateSelection(el) {\n this.tribute.current.element = el;\n var info = this.tribute.range.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\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 key: \"callbacks\",\n value: function callbacks() {\n var _this = this;\n\n return {\n triggerChar: function triggerChar(e, el, trigger) {\n var tribute = _this.tribute;\n tribute.current.trigger = trigger;\n var collectionItem = tribute.collection.find(function (item) {\n return item.trigger === trigger;\n });\n tribute.current.collection = collectionItem;\n if (tribute.inputEvent) tribute.showMenuFor(el, true);\n },\n enter: function enter(e, el) {\n // choose selection\n if (_this.tribute.isActive && _this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(function () {\n _this.tribute.selectItemAtIndex(_this.tribute.menuSelected, e);\n\n _this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: function escape(e, el) {\n if (_this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n _this.tribute.isActive = false;\n\n _this.tribute.hideMenu();\n }\n },\n tab: function tab(e, el) {\n // choose first match\n _this.callbacks().enter(e, el);\n },\n space: function 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(function () {\n _this.tribute.hideMenu();\n\n _this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: function up(e, el) {\n // navigate up ul\n if (_this.tribute.isActive && _this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n var count = _this.tribute.current.filteredItems.length,\n selected = _this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n _this.tribute.menuSelected--;\n\n _this.setActiveLi();\n } else if (selected === 0) {\n _this.tribute.menuSelected = count - 1;\n\n _this.setActiveLi();\n\n _this.tribute.menu.scrollTop = _this.tribute.menu.scrollHeight;\n }\n }\n },\n down: function down(e, el) {\n // navigate down ul\n if (_this.tribute.isActive && _this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n var count = _this.tribute.current.filteredItems.length - 1,\n selected = _this.tribute.menuSelected;\n\n if (count > selected) {\n _this.tribute.menuSelected++;\n\n _this.setActiveLi();\n } else if (count === selected) {\n _this.tribute.menuSelected = 0;\n\n _this.setActiveLi();\n\n _this.tribute.menu.scrollTop = 0;\n }\n }\n },\n \"delete\": function _delete(e, el) {\n if (_this.tribute.isActive && _this.tribute.current.mentionText.length < 1) {\n _this.tribute.hideMenu();\n } else if (_this.tribute.isActive) {\n _this.tribute.showMenuFor(el);\n }\n }\n };\n }\n }, {\n key: \"setActiveLi\",\n value: function setActiveLi(index) {\n var lis = this.tribute.menu.querySelectorAll('li'),\n length = lis.length >>> 0;\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (var i = 0; i < length; i++) {\n var li = lis[i];\n\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n var liClientRect = li.getBoundingClientRect();\n var menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n var scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n var _scrollDistance = menuClientRect.top - liClientRect.top;\n\n this.tribute.menu.scrollTop -= _scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n }, {\n key: \"getFullHeight\",\n value: function getFullHeight(elem, includeMargin) {\n var height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n var style = elem.currentStyle || window.getComputedStyle(elem);\n return height + parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n }], [{\n key: \"keys\",\n value: function keys() {\n return [{\n key: 9,\n value: 'TAB'\n }, {\n key: 8,\n value: 'DELETE'\n }, {\n key: 13,\n value: 'ENTER'\n }, {\n key: 27,\n value: 'ESCAPE'\n }, {\n key: 32,\n value: 'SPACE'\n }, {\n key: 38,\n value: 'UP'\n }, {\n key: 40,\n value: 'DOWN'\n }];\n }\n }]);\n\n return TributeEvents;\n}();\n\nvar _default = TributeEvents;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n},{}],3:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar TributeMenuEvents =\n/*#__PURE__*/\nfunction () {\n function TributeMenuEvents(tribute) {\n _classCallCheck(this, TributeMenuEvents);\n\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n _createClass(TributeMenuEvents, [{\n key: \"bind\",\n value: function bind(menu) {\n var _this = this;\n\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(function () {\n if (_this.tribute.isActive) {\n _this.tribute.showMenuFor(_this.tribute.current.element, false);\n }\n }, 300, false);\n this.windowResizeEvent = this.debounce(function () {\n if (_this.tribute.isActive) {\n _this.tribute.range.positionMenuAtCaret(true);\n }\n }, 300, false); // fixes IE11 issues with mousedown\n\n this.tribute.range.getDocument().addEventListener('MSPointerDown', this.menuClickEvent, false);\n this.tribute.range.getDocument().addEventListener('mousedown', this.menuClickEvent, false);\n window.addEventListener('resize', this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener('scroll', this.menuContainerScrollEvent, false);\n } else {\n window.addEventListener('scroll', this.menuContainerScrollEvent);\n }\n }\n }, {\n key: \"unbind\",\n value: function unbind(menu) {\n this.tribute.range.getDocument().removeEventListener('mousedown', this.menuClickEvent, false);\n this.tribute.range.getDocument().removeEventListener('MSPointerDown', this.menuClickEvent, false);\n window.removeEventListener('resize', this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener('scroll', this.menuContainerScrollEvent, false);\n } else {\n window.removeEventListener('scroll', this.menuContainerScrollEvent);\n }\n }\n }, {\n key: \"debounce\",\n value: function debounce(func, wait, immediate) {\n var _this2 = this,\n _arguments = arguments;\n\n var timeout;\n return function () {\n var context = _this2,\n args = _arguments;\n\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\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 return TributeMenuEvents;\n}();\n\nvar _default = TributeMenuEvents;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n},{}],4:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// Thanks to https://github.com/jeff-collins/ment.io\nvar TributeRange =\n/*#__PURE__*/\nfunction () {\n function TributeRange(tribute) {\n _classCallCheck(this, TributeRange);\n\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n _createClass(TributeRange, [{\n key: \"getDocument\",\n value: function getDocument() {\n var iframe;\n\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 key: \"positionMenuAtCaret\",\n value: function positionMenuAtCaret(scrollTo) {\n var _this = this;\n\n var context = this.tribute.current,\n coordinates;\n var info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\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, info.mentionPosition);\n } else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = \"top: \".concat(coordinates.top, \"px;\\n left: \").concat(coordinates.left, \"px;\\n right: \").concat(coordinates.right, \"px;\\n bottom: \").concat(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 window.setTimeout(function () {\n var menuDimensions = {\n width: _this.tribute.menu.offsetWidth,\n height: _this.tribute.menu.offsetHeight\n };\n\n var menuIsOffScreen = _this.isMenuOffScreen(coordinates, menuDimensions);\n\n var menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n var menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n _this.tribute.menu.style.cssText = 'display: none';\n\n _this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n }, {\n key: \"selectElement\",\n value: function selectElement(targetElement, path, offset) {\n var range;\n var elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n\n if (elem === undefined) {\n return;\n }\n\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n\n var sel = this.getWindowSelection();\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 key: \"replaceTriggerText\",\n value: function replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n var info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n var context = this.tribute.current;\n var 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 var myField = this.tribute.current.element;\n var textSuffix = typeof this.tribute.replaceTextSuffix == 'string' ? this.tribute.replaceTextSuffix : ' ';\n text += textSuffix;\n var startPos = info.mentionPosition;\n var endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n myField.value = myField.value.substring(0, startPos) + text + 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 var _textSuffix = typeof this.tribute.replaceTextSuffix == 'string' ? this.tribute.replaceTextSuffix : '\\xA0';\n\n text += _textSuffix;\n this.pasteHtml(text, info.mentionPosition, info.mentionPosition + info.mentionText.length + !this.tribute.autocompleteMode);\n }\n\n context.element.dispatchEvent(replaceEvent);\n }\n }\n }, {\n key: \"pasteHtml\",\n value: function pasteHtml(html, startPos, endPos) {\n var 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 var el = this.getDocument().createElement('div');\n el.innerHTML = html;\n var frag = this.getDocument().createDocumentFragment(),\n node,\n lastNode;\n\n while (node = el.firstChild) {\n lastNode = frag.appendChild(node);\n }\n\n range.insertNode(frag); // Preserve the selection\n\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 key: \"getWindowSelection\",\n value: function getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection();\n }\n\n return window.getSelection();\n }\n }, {\n key: \"getNodePositionInParent\",\n value: function getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0;\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n var node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i;\n }\n }\n }\n }, {\n key: \"getContentEditableSelectedPath\",\n value: function getContentEditableSelectedPath(ctx) {\n var sel = this.getWindowSelection();\n var selected = sel.anchorNode;\n var path = [];\n var offset;\n\n if (selected != null) {\n var i;\n var ce = selected.contentEditable;\n\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n\n path.reverse(); // getRangeAt may not exist, need alternative\n\n offset = sel.getRangeAt(0).startOffset;\n return {\n selected: selected,\n path: path,\n offset: offset\n };\n }\n }\n }, {\n key: \"getTextPrecedingCurrentSelection\",\n value: function getTextPrecedingCurrentSelection() {\n var context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n var textComponent = this.tribute.current.element;\n\n if (textComponent) {\n var startPos = textComponent.selectionStart;\n\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n } else {\n var selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n var workingNodeContent = selectedElem.textContent;\n var 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 key: \"getLastWordInText\",\n value: function 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\n var wordsArray = text.split(/\\s+/);\n var worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim();\n }\n }, {\n key: \"getTriggerInfo\",\n value: function getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n var _this2 = this;\n\n var ctx = this.tribute.current;\n var selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n var selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n var effectiveRange = this.getTextPrecedingCurrentSelection();\n var 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 var mostRecentTriggerCharPos = -1;\n var triggerChar;\n this.tribute.collection.forEach(function (config) {\n var c = config.trigger;\n var idx = config.requireLeadingSpace ? _this2.lastIndexWithLeadingSpace(effectiveRange, c) : 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 && (mostRecentTriggerCharPos === 0 || !requireLeadingSpace || /[\\xA0\\s]/g.test(effectiveRange.substring(mostRecentTriggerCharPos - 1, mostRecentTriggerCharPos)))) {\n var currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + 1, effectiveRange.length);\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + 1);\n var firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n var leadingSpace = currentTriggerSnippet.length > 0 && (firstSnippetChar === ' ' || firstSnippetChar === '\\xA0');\n\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n var regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\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 key: \"lastIndexWithLeadingSpace\",\n value: function lastIndexWithLeadingSpace(str, _char) {\n var reversedStr = str.split('').reverse().join('');\n var index = -1;\n\n for (var cidx = 0, len = str.length; cidx < len; cidx++) {\n var firstChar = cidx === str.length - 1;\n var leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n var match = _char === reversedStr[cidx];\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break;\n }\n }\n\n return index;\n }\n }, {\n key: \"isContentEditable\",\n value: function isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA';\n }\n }, {\n key: \"isMenuOffScreen\",\n value: function isMenuOffScreen(coordinates, menuDimensions) {\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var doc = document.documentElement;\n var windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n var windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n var menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n var menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n var menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n var menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\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 key: \"getMenuDimensions\",\n value: function 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 var dimensions = {\n width: null,\n height: null\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 this.tribute.menu.style.cssText = \"display: none;\";\n return dimensions;\n }\n }, {\n key: \"getTextAreaOrInputUnderlinePosition\",\n value: function getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n var properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX', 'overflowY', 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch', 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily', 'textAlign', 'textTransform', 'textIndent', 'textDecoration', 'letterSpacing', 'wordSpacing'];\n var isFirefox = window.mozInnerScreenX !== null;\n var div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n var style = div.style;\n var computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n style.whiteSpace = 'pre-wrap';\n\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n } // position off-screen\n\n\n style.position = 'absolute';\n style.visibility = 'hidden'; // transfer the element's properties to the div\n\n properties.forEach(function (prop) {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = \"\".concat(parseInt(computed.width) - 2, \"px\");\n if (element.scrollHeight > parseInt(computed.height)) 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 var span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n var rect = element.getBoundingClientRect();\n var doc = document.documentElement;\n var windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n var windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n var top = 0;\n var left = 0;\n\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n var 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 var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var menuDimensions = this.getMenuDimensions();\n var menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n var parentHeight = this.tribute.menuContainer ? this.tribute.menuContainer.offsetHeight : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n var parentRect = this.tribute.menuContainer ? this.tribute.menuContainer.getBoundingClientRect() : this.getDocument().body.getBoundingClientRect();\n var scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width ? windowLeft + windowWidth - menuDimensions.width : windowLeft;\n delete coordinates.right;\n }\n\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height ? windowTop + windowHeight - menuDimensions.height : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates;\n }\n }, {\n key: \"getContentEditableCaretPosition\",\n value: function getContentEditableCaretPosition(selectedNodePosition) {\n var markerTextChar = '';\n var markerEl,\n markerId = \"sel_\".concat(new Date().getTime(), \"_\").concat(Math.random().toString().substr(2));\n var range;\n var sel = this.getWindowSelection();\n var prevRange = sel.getRangeAt(0);\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n range.collapse(false); // Create the marker element containing a single invisible character using DOM methods and insert it\n\n markerEl = this.getDocument().createElement('span');\n markerEl.id = markerId;\n markerEl.appendChild(this.getDocument().createTextNode(markerTextChar));\n range.insertNode(markerEl);\n sel.removeAllRanges();\n sel.addRange(prevRange);\n var rect = markerEl.getBoundingClientRect();\n var doc = document.documentElement;\n var windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n var windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n var left = 0;\n var top = 0;\n\n if (this.menuContainerIsBody) {\n left = rect.left;\n top = rect.top;\n } else {\n left = markerEl.offsetLeft;\n top = markerEl.offsetTop;\n }\n\n var coordinates = {\n left: left + windowLeft,\n top: top + markerEl.offsetHeight + windowTop\n };\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var menuDimensions = this.getMenuDimensions();\n var menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n var parentHeight = this.tribute.menuContainer ? this.tribute.menuContainer.offsetHeight : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n var parentRect = this.tribute.menuContainer ? this.tribute.menuContainer.getBoundingClientRect() : this.getDocument().body.getBoundingClientRect();\n var scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width ? windowLeft + windowWidth - menuDimensions.width : windowLeft;\n delete coordinates.right;\n }\n\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height ? windowTop + windowHeight - menuDimensions.height : windowTop;\n delete coordinates.bottom;\n }\n\n markerEl.parentNode.removeChild(markerEl);\n return coordinates;\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView(elem) {\n var reasonableBuffer = 20,\n clientRect;\n var maxScrollDisplacement = 100;\n var e = this.menu;\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\n if (e === undefined || !e.getBoundingClientRect) {\n return;\n }\n }\n }\n\n var elemTop = clientRect.top;\n var 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 var maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n var 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 key: \"menuContainerIsBody\",\n get: function get() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n }]);\n\n return TributeRange;\n}();\n\nvar _default = TributeRange;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n},{}],5:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// Thanks to https://github.com/mattyork/fuzzy\nvar TributeSearch =\n/*#__PURE__*/\nfunction () {\n function TributeSearch(tribute) {\n _classCallCheck(this, TributeSearch);\n\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n _createClass(TributeSearch, [{\n key: \"simpleFilter\",\n value: function simpleFilter(pattern, array) {\n var _this = this;\n\n return array.filter(function (string) {\n return _this.test(pattern, string);\n });\n }\n }, {\n key: \"test\",\n value: function test(pattern, string) {\n return this.match(pattern, string) !== null;\n }\n }, {\n key: \"match\",\n value: function match(pattern, string, opts) {\n opts = opts || {};\n var patternIdx = 0,\n result = [],\n len = string.length,\n totalScore = 0,\n currScore = 0,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase(),\n ch,\n compareChar;\n\n if (opts.skip) {\n return {\n rendered: string,\n score: 0\n };\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n var patternCache = this.traverse(compareString, pattern, 0, 0, []);\n\n if (!patternCache) {\n return null;\n }\n\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n };\n }\n }, {\n key: \"traverse\",\n value: function traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\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 } // if string at end or remaining pattern > remaining string\n\n\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined;\n }\n\n var c = pattern[patternIndex];\n var index = string.indexOf(c, stringIndex);\n var 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(); // if downstream traversal failed, return best answer so far\n\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 key: \"calculateScore\",\n value: function calculateScore(patternCache) {\n var score = 0;\n var temp = 1;\n patternCache.forEach(function (index, i) {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n } else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n return score;\n }\n }, {\n key: \"render\",\n value: function render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n indices.forEach(function (index, i) {\n rendered += pre + string[index] + post + string.substring(index + 1, indices[i + 1] ? indices[i + 1] : string.length);\n });\n return rendered;\n }\n }, {\n key: \"filter\",\n value: function filter(pattern, arr, opts) {\n var _this2 = this;\n\n opts = opts || {};\n return arr.reduce(function (prev, element, idx, arr) {\n var str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) {\n // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n var rendered = _this2.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 }, []).sort(function (a, b) {\n var compare = b.score - a.score;\n if (compare) return compare;\n return a.index - b.index;\n });\n }\n }]);\n\n return TributeSearch;\n}();\n\nvar _default = TributeSearch;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n},{}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Tribute = _interopRequireDefault(require(\"./Tribute\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n* Tribute.js\n* Native ES6 JavaScript @mention Plugin\n**/\nvar _default = _Tribute[\"default\"];\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n},{\"./Tribute\":1}],7:[function(require,module,exports){\n\"use strict\";\n\nif (!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\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\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\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n\n return undefined;\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n var CustomEvent = function CustomEvent(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.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent;\n}\n\n},{}]},{},[6])(6)\n});\n"],"names":["f","r","e","n","t","o","i","u","a","Error","code","p","exports","call","length","require","module","Object","defineProperty","value","_TributeEvents","_interopRequireDefault","_TributeMenuEvents","_TributeRange","_TributeSearch","obj","__esModule","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","_defineProperties","target","props","descriptor","enumerable","configurable","writable","key","_default","Tribute","_ref","_this","this","_ref$values","values","_ref$iframe","iframe","_ref$selectClass","selectClass","_ref$trigger","trigger","_ref$autocompleteMode","autocompleteMode","_ref$selectTemplate","selectTemplate","_ref$menuItemTemplate","menuItemTemplate","_ref$lookup","lookup","_ref$fillAttr","fillAttr","_ref$collection","collection","_ref$menuContainer","menuContainer","_ref$noMatchTemplate","noMatchTemplate","_ref$requireLeadingSp","requireLeadingSpace","_ref$allowSpaces","allowSpaces","_ref$replaceTextSuffi","replaceTextSuffix","_ref$positionMenu","positionMenu","_ref$spaceSelectsMatc","spaceSelectsMatch","_ref$searchOpts","searchOpts","_ref$menuItemLimit","menuItemLimit","instance","Constructor","_classCallCheck","menuSelected","current","inputEvent","isActive","hasTrailingSpace","defaultSelectTemplate","bind","defaultMenuItemTemplate","console","warn","map","item","protoProps","staticProps","range","isContentEditable","element","original","matchItem","string","config","el","jQuery","get","constructor","NodeList","HTMLCollection","_attach","hasAttribute","nodeName","ensureEditable","events","setAttribute","inputTypes","indexOf","contentEditable","wrapper","getDocument","createElement","ul","className","appendChild","body","scrollTo","_this2","mentionText","currentMentionTextSnapshot","menu","createMenu","tributeMenu","menuEvents","processValues","items","search","filter","pre","post","skip","extract","slice","filteredItems","querySelector","positionMenuAtCaret","noMatchEvent","CustomEvent","detail","dispatchEvent","hideMenu","innerHTML","fragment","createDocumentFragment","forEach","index","li","addEventListener","_this2$_findLiTarget2","_findLiTarget","movementY","setActiveLi","getAttribute","parentNode","collectionIndex","document","activeElement","placeCaretAtEnd","externalTrigger","insertTextAtCursor","insertAtCaret","showMenuFor","focus","window","getSelection","createRange","selectNodeContents","collapse","sel","removeAllRanges","addRange","createTextRange","textRange","moveToElementText","select","text","getRangeAt","deleteContents","textNode","createTextNode","insertNode","textarea","scrollPos","scrollTop","caretPos","selectionStart","front","substring","back","selectionEnd","style","cssText","originalEvent","parseInt","isNaN","content","replaceText","replaceTriggerText","newValues","replace","concat","_append","_detach","_this3","unbind","setTimeout","removeAttribute","remove","prototype","TributeEvents","tribute","boundKeydown","keydown","boundKeyup","keyup","boundInput","input","removeEventListener","event","shouldDeactivate","commandEvent","keys","keyCode","callbacks","toLowerCase","contains","preventDefault","stopPropagation","getElementsByClassName","selectItemAtIndex","updateSelection","triggerChar","getKeyCode","triggers","find","charCodeAt","eventKeyPressed","info","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","collectionItem","enter","escape","tab","space","up","count","selected","scrollHeight","down","lis","querySelectorAll","classList","add","liClientRect","getBoundingClientRect","menuClientRect","bottom","scrollDistance","top","_scrollDistance","elem","includeMargin","height","currentStyle","getComputedStyle","parseFloat","marginTop","marginBottom","TributeMenuEvents","menuClickEvent","click","menuContainerScrollEvent","debounce","windowResizeEvent","func","wait","immediate","timeout","_arguments","arguments","context","args","callNow","clearTimeout","apply","TributeRange","contentWindow","coordinates","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","left","right","scrollIntoView","menuDimensions","width","offsetWidth","offsetHeight","menuIsOffScreen","isMenuOffScreen","menuIsOffScreenHorizontally","innerWidth","menuIsOffScreenVertically","innerHeight","targetElement","path","offset","childNodes","nextSibling","previousSibling","getWindowSelection","setStart","setEnd","error","replaceEvent","pasteHtml","myField","textSuffix","startPos","endPos","html","anchorNode","node","lastNode","frag","firstChild","cloneRange","setStartAfter","ctx","ce","getNodePositionInParent","reverse","startOffset","selectedElem","workingNodeContent","textContent","selectStartOffset","textComponent","wordsArray","split","trim","menuAlreadyActive","isAutocomplete","selectionInfo","getContentEditableSelectedPath","effectiveRange","getTextPrecedingCurrentSelection","lastWordOfEffectiveRange","getLastWordInText","mentionSelectedElement","mostRecentTriggerCharPos","c","idx","lastIndexWithLeadingSpace","lastIndexOf","test","currentTriggerSnippet","firstSnippetChar","leadingSpace","regex","str","_char","reversedStr","join","cidx","len","firstChar","windowWidth","windowHeight","doc","documentElement","windowLeft","pageXOffset","scrollLeft","clientLeft","windowTop","pageYOffset","clientTop","menuTop","menuRight","menuBottom","menuLeft","Math","floor","ceil","dimensions","position","flipped","isFirefox","mozInnerScreenX","div","id","computed","whiteSpace","wordWrap","visibility","prop","overflowY","overflow","span","rect","menuContainerIsBody","offsetTop","borderTopWidth","fontSize","offsetLeft","borderLeftWidth","getMenuDimensions","parentHeight","scrollStillAvailable","removeChild","selectedNodePosition","markerEl","markerId","Date","getTime","random","toString","substr","prevRange","clientRect","elemTop","elemBottom","maxY","targetY","TributeSearch","pattern","array","match","opts","compareString","caseSensitive","rendered","score","patternCache","traverse","render","cache","stringIndex","patternIndex","calculateScore","best","temp","pop","indices","reduce","prev","sort","b","compare","predicate","list","thisArg","params","bubbles","cancelable","evt","createEvent","initCustomEvent","Event","_typeof","define"],"sourceRoot":""}