{"version":3,"file":"js/155-58aa3e3d836f024c5855.js","mappings":"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","sources":["webpack://decidim_application/./vendor/bundle/ruby/2.7.0/gems/decidim-core-0.26.2/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<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nrequire(\"./utils\");\n\nvar _TributeEvents = _interopRequireDefault(require(\"./TributeEvents\"));\n\nvar _TributeMenuEvents = _interopRequireDefault(require(\"./TributeMenuEvents\"));\n\nvar _TributeRange = _interopRequireDefault(require(\"./TributeRange\"));\n\nvar _TributeSearch = _interopRequireDefault(require(\"./TributeSearch\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 Tribute =\n/*#__PURE__*/\nfunction () {\n  function Tribute(_ref) {\n    var _this = this;\n\n    var _ref$values = _ref.values,\n        values = _ref$values === void 0 ? null : _ref$values,\n        _ref$iframe = _ref.iframe,\n        iframe = _ref$iframe === void 0 ? null : _ref$iframe,\n        _ref$selectClass = _ref.selectClass,\n        selectClass = _ref$selectClass === void 0 ? 'highlight' : _ref$selectClass,\n        _ref$trigger = _ref.trigger,\n        trigger = _ref$trigger === void 0 ? '@' : _ref$trigger,\n        _ref$autocompleteMode = _ref.autocompleteMode,\n        autocompleteMode = _ref$autocompleteMode === void 0 ? false : _ref$autocompleteMode,\n        _ref$selectTemplate = _ref.selectTemplate,\n        selectTemplate = _ref$selectTemplate === void 0 ? null : _ref$selectTemplate,\n        _ref$menuItemTemplate = _ref.menuItemTemplate,\n        menuItemTemplate = _ref$menuItemTemplate === void 0 ? null : _ref$menuItemTemplate,\n        _ref$lookup = _ref.lookup,\n        lookup = _ref$lookup === void 0 ? 'key' : _ref$lookup,\n        _ref$fillAttr = _ref.fillAttr,\n        fillAttr = _ref$fillAttr === void 0 ? 'value' : _ref$fillAttr,\n        _ref$collection = _ref.collection,\n        collection = _ref$collection === void 0 ? null : _ref$collection,\n        _ref$menuContainer = _ref.menuContainer,\n        menuContainer = _ref$menuContainer === void 0 ? null : _ref$menuContainer,\n        _ref$noMatchTemplate = _ref.noMatchTemplate,\n        noMatchTemplate = _ref$noMatchTemplate === void 0 ? null : _ref$noMatchTemplate,\n        _ref$requireLeadingSp = _ref.requireLeadingSpace,\n        requireLeadingSpace = _ref$requireLeadingSp === void 0 ? true : _ref$requireLeadingSp,\n        _ref$allowSpaces = _ref.allowSpaces,\n        allowSpaces = _ref$allowSpaces === void 0 ? false : _ref$allowSpaces,\n        _ref$replaceTextSuffi = _ref.replaceTextSuffix,\n        replaceTextSuffix = _ref$replaceTextSuffi === void 0 ? null : _ref$replaceTextSuffi,\n        _ref$positionMenu = _ref.positionMenu,\n        positionMenu = _ref$positionMenu === void 0 ? true : _ref$positionMenu,\n        _ref$spaceSelectsMatc = _ref.spaceSelectsMatch,\n        spaceSelectsMatch = _ref$spaceSelectsMatc === void 0 ? false : _ref$spaceSelectsMatc,\n        _ref$searchOpts = _ref.searchOpts,\n        searchOpts = _ref$searchOpts === void 0 ? {} : _ref$searchOpts,\n        _ref$menuItemLimit = _ref.menuItemLimit,\n        menuItemLimit = _ref$menuItemLimit === void 0 ? null : _ref$menuItemLimit;\n\n    _classCallCheck(this, Tribute);\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        // symbol that starts the lookup\n        trigger: trigger,\n        // is it wrapped in an iframe\n        iframe: iframe,\n        // class applied to selected item\n        selectClass: selectClass,\n        // function called on select that retuns the content to insert\n        selectTemplate: (selectTemplate || Tribute.defaultSelectTemplate).bind(this),\n        // function called that returns content for an item\n        menuItemTemplate: (menuItemTemplate || Tribute.defaultMenuItemTemplate).bind(this),\n        // function called when menu is empty, disables hiding of menu.\n        noMatchTemplate: function (t) {\n          if (typeof t === 'function') {\n            return t.bind(_this);\n          }\n\n          return noMatchTemplate || function () {\n            return '';\n          }.bind(_this);\n        }(noMatchTemplate),\n        // column to search against in the object\n        lookup: lookup,\n        // column that contains the content to insert by default\n        fillAttr: fillAttr,\n        // array of objects or a function returning an array of objects\n        values: values,\n        requireLeadingSpace: requireLeadingSpace,\n        searchOpts: searchOpts,\n        menuItemLimit: menuItemLimit\n      }];\n    } else if (collection) {\n      if (this.autocompleteMode) console.warn('Tribute in autocomplete mode does not work for collections');\n      this.collection = collection.map(function (item) {\n        return {\n          trigger: item.trigger || trigger,\n          iframe: item.iframe || iframe,\n          selectClass: item.selectClass || selectClass,\n          selectTemplate: (item.selectTemplate || Tribute.defaultSelectTemplate).bind(_this),\n          menuItemTemplate: (item.menuItemTemplate || Tribute.defaultMenuItemTemplate).bind(_this),\n          // function called when menu is empty, disables hiding of menu.\n          noMatchTemplate: function (t) {\n            if (typeof t === 'function') {\n              return t.bind(_this);\n            }\n\n            return null;\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        };\n      });\n    } else {\n      throw new Error('[Tribute] No collection specified.');\n    }\n\n    new _TributeRange[\"default\"](this);\n    new _TributeEvents[\"default\"](this);\n    new _TributeMenuEvents[\"default\"](this);\n    new _TributeSearch[\"default\"](this);\n  }\n\n  _createClass(Tribute, [{\n    key: \"triggers\",\n    value: function triggers() {\n      return this.collection.map(function (config) {\n        return config.trigger;\n      });\n    }\n  }, {\n    key: \"attach\",\n    value: function attach(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._attach(el[i]);\n        }\n      } else {\n        this._attach(el);\n      }\n    }\n  }, {\n    key: \"_attach\",\n    value: function _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    key: \"ensureEditable\",\n    value: function 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    key: \"createMenu\",\n    value: function createMenu() {\n      var wrapper = this.range.getDocument().createElement('div'),\n          ul = this.range.getDocument().createElement('ul');\n      wrapper.className = 'tribute-container';\n      wrapper.setAttribute('aria-expanded','true');\n      ul.setAttribute('id','results');\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    key: \"showMenuFor\",\n    value: function showMenuFor(element, scrollTo) {\n      var _this2 = this;\n\n      // Only proceed if menu isn't already shown for the current element & mentionText\n      if (this.isActive && this.current.element === element && this.current.mentionText === this.currentMentionTextSnapshot) {\n        return;\n      }\n\n      this.currentMentionTextSnapshot = this.current.mentionText; // create the menu if it doesn't exist.\n\n      if (!this.menu) {\n        this.menu = this.createMenu();\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      var processValues = function processValues(values) {\n        // Tribute may not be active any more by the time the value callback returns\n        if (!_this2.isActive) {\n          return;\n        }\n\n        var items = _this2.search.filter(_this2.current.mentionText, values, {\n          pre: _this2.current.collection.searchOpts.pre || '<span>',\n          post: _this2.current.collection.searchOpts.post || '</span>',\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 '<span class=\"tribute-mention\">' + (this.current.collection.trigger + item.original[this.current.collection.fillAttr]) + '</span>';\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 <li> 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","p","exports","require","module","Object","value","_TributeEvents","_interopRequireDefault","_TributeMenuEvents","_TributeRange","_TributeSearch","obj","_slicedToArray","arr","Array","_arrayWithHoles","_arr","_n","_d","_e","_i","Symbol","_s","_iterableToArrayLimit","_nonIterableRest","_defineProperties","target","props","descriptor","_default","Tribute","_ref","_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","_classCallCheck","this","menuSelected","current","inputEvent","isActive","hasTrailingSpace","console","item","Constructor","key","range","isContentEditable","matchItem","config","el","jQuery","length","_attach","ensureEditable","events","bind","element","wrapper","getDocument","createElement","ul","_this2","mentionText","currentMentionTextSnapshot","menu","menuEvents","processValues","items","pre","post","skip","extract","noMatchEvent","CustomEvent","detail","fragment","li","_this2$_findLiTarget2","index","_findLiTarget","document","placeCaretAtEnd","collectionIndex","externalTrigger","insertTextAtCursor","showMenuFor","window","sel","textRange","text","textNode","textarea","scrollPos","caretPos","front","back","style","cssText","parseInt","isNaN","filteredItems","content","replaceText","replaceTriggerText","_append","newValues","_detach","_this3","unbind","setTimeout","TributeEvents","tribute","keydown","keyup","input","event","keyCode","eventKeyPressed","info","getTriggerInfo","selectedPath","selectedOffset","triggerChar","collectionItem","enter","escape","tab","space","up","count","selected","down","lis","querySelectorAll","liClientRect","menuClientRect","scrollDistance","scrollTop","_scrollDistance","elem","height","parseFloat","TributeMenuEvents","menuClickEvent","click","menuContainerScrollEvent","debounce","windowResizeEvent","addEventListener","removeEventListener","func","timeout","_arguments","context","args","callNow","immediate","clearTimeout","TributeRange","scrollTo","coordinates","getContentEditableCaretPosition","getTextAreaOrInputUnderlinePosition","concat","left","top","scrollIntoView","menuDimensions","width","offsetHeight","menuIsOffScreen","menuIsOffScreenHorizontally","menuIsOffScreenVertically","targetElement","path","offset","replaceEvent","originalEvent","pasteHtml","myField","textSuffix","startPos","endPos","html","frag","node","lastNode","ctx","ce","getNodePositionInParent","selectedElem","getWindowSelection","workingNodeContent","selectStartOffset","getRangeAt","textComponent","wordsArray","menuAlreadyActive","selectionInfo","getContentEditableSelectedPath","effectiveRange","lastWordOfEffectiveRange","getLastWordInText","mentionPosition","mentionSelectedElement","mentionSelectedPath","mentionSelectedOffset","mostRecentTriggerCharPos","forEach","c","idx","test","currentTriggerSnippet","firstSnippetChar","leadingSpace","regex","mentionTriggerChar","str","reversedStr","cidx","len","firstChar","_char","windowWidth","windowHeight","doc","windowLeft","windowTop","menuTop","menuRight","menuBottom","menuLeft","Math","right","bottom","dimensions","isFirefox","div","body","appendChild","computed","getComputedStyle","properties","span","rect","isMenuOffScreen","parentHeight","scrollStillAvailable","removeChild","selectedNodePosition","markerEl","markerId","Date","prevRange","createTextNode","clientRect","elemTop","elemBottom","maxY","targetY","get","TributeSearch","search","pattern","array","opts","string","compareString","rendered","score","patternCache","traverse","render","calculateScore","cache","best","temp","patternIndex","indices","prev","original","compare","b","predicate","list","thisArg","arguments","params","bubbles","cancelable","undefined","evt","define"],"sourceRoot":""}