has to be wrapped in a \n\t var newContainer = document.createElement(\"div\");\n\t newContainer.className = 'miss-plete';\n\t newContainer.appendChild(newUl);\n\t\n\t // Inserts the dropdown just after the element\n\t this.input.parentNode.insertBefore(newContainer, this.input.nextSibling);\n\t this.container = newContainer;\n\t this.ul = newUl;\n\t }\n\t }\n\t }, {\n\t key: 'changeHighlightedOption',\n\t value: function changeHighlightedOption(newHighlightedIndex) {\n\t if (newHighlightedIndex >= -1 && newHighlightedIndex < this.ul.children.length) {\n\t // If any option already selected, then unselect it\n\t if (this.highlightedIndex !== -1) {\n\t this.ul.children[this.highlightedIndex].classList.remove(\"highlight\");\n\t }\n\t\n\t this.highlightedIndex = newHighlightedIndex;\n\t\n\t if (this.highlightedIndex !== -1) {\n\t this.ul.children[this.highlightedIndex].classList.add(\"highlight\");\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'select',\n\t value: function select() {\n\t if (this.highlightedIndex !== -1) {\n\t this.input.value = this.scoredOptions[this.highlightedIndex].displayValue;\n\t this.removeDropdown();\n\t }\n\t }\n\t }, {\n\t key: 'removeDropdown',\n\t value: function removeDropdown() {\n\t this.container && this.container.remove();\n\t this.container = null;\n\t this.ul = null;\n\t }\n\t }], [{\n\t key: 'scoreFn',\n\t value: function scoreFn(inputValue, optionSynonyms) {\n\t var closestSynonym = null;\n\t var _iteratorNormalCompletion = true;\n\t var _didIteratorError = false;\n\t var _iteratorError = undefined;\n\t\n\t try {\n\t for (var _iterator = optionSynonyms[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t var synonym = _step.value;\n\t\n\t var similarity = (0, _jaroWinkler2.default)(synonym.trim().toLowerCase(), inputValue.trim().toLowerCase());\n\t if (closestSynonym === null || similarity > closestSynonym.similarity) {\n\t closestSynonym = { similarity: similarity, value: synonym };\n\t if (similarity === 1) {\n\t break;\n\t }\n\t }\n\t }\n\t } catch (err) {\n\t _didIteratorError = true;\n\t _iteratorError = err;\n\t } finally {\n\t try {\n\t if (!_iteratorNormalCompletion && _iterator.return) {\n\t _iterator.return();\n\t }\n\t } finally {\n\t if (_didIteratorError) {\n\t throw _iteratorError;\n\t }\n\t }\n\t }\n\t\n\t return {\n\t score: closestSynonym.similarity,\n\t displayValue: optionSynonyms[0]\n\t };\n\t }\n\t }, {\n\t key: 'listItemFn',\n\t value: function listItemFn(scoredOption, itemIndex) {\n\t var li = itemIndex > MissPlete.MAX_ITEMS ? null : document.createElement(\"li\");\n\t li && li.appendChild(document.createTextNode(scoredOption.displayValue));\n\t return li;\n\t }\n\t }, {\n\t key: 'MAX_ITEMS',\n\t get: function get() {\n\t return 8;\n\t }\n\t }]);\n\t\n\t return MissPlete;\n\t})();\n\t\n\texports.default = MissPlete;\n\n/***/ },\n/* 194 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tvar _slicedToArray = (function () { function sliceIterator(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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; })();\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\texports.default = function (s1, s2) {\n\t var prefixScalingFactor = arguments.length <= 2 || arguments[2] === undefined ? 0.2 : arguments[2];\n\t\n\t var jaroSimilarity = jaro(s1, s2);\n\t\n\t var commonPrefixLength = 0;\n\t for (var i = 0; i < s1.length; i++) {\n\t if (s1[i] === s2[i]) {\n\t commonPrefixLength++;\n\t } else {\n\t break;\n\t }\n\t }\n\t\n\t return jaroSimilarity + Math.min(commonPrefixLength, 4) * prefixScalingFactor * (1 - jaroSimilarity);\n\t};\n\t\n\t// https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance\n\t\n\tfunction jaro(s1, s2) {\n\t var shorter = undefined,\n\t longer = undefined;\n\t\n\t var _ref = s1.length > s2.length ? [s1, s2] : [s2, s1];\n\t\n\t var _ref2 = _slicedToArray(_ref, 2);\n\t\n\t longer = _ref2[0];\n\t shorter = _ref2[1];\n\t\n\t var matchingWindow = Math.floor(longer.length / 2) - 1;\n\t var shorterMatches = [];\n\t var longerMatches = [];\n\t\n\t for (var i = 0; i < shorter.length; i++) {\n\t var ch = shorter[i];\n\t var windowStart = Math.max(0, i - matchingWindow);\n\t var windowEnd = Math.min(i + matchingWindow + 1, longer.length);\n\t for (var j = windowStart; j < windowEnd; j++) {\n\t if (longerMatches[j] === undefined && ch === longer[j]) {\n\t shorterMatches[i] = longerMatches[j] = ch;\n\t break;\n\t }\n\t }\n\t }\n\t\n\t var shorterMatchesString = shorterMatches.join(\"\");\n\t var longerMatchesString = longerMatches.join(\"\");\n\t var numMatches = shorterMatchesString.length;\n\t\n\t var transpositions = 0;\n\t for (var i = 0; i < shorterMatchesString.length; i++) {\n\t if (shorterMatchesString[i] !== longerMatchesString[i]) {\n\t transpositions++;\n\t }\n\t }\n\t\n\t return numMatches > 0 ? (numMatches / shorter.length + numMatches / longer.length + (numMatches - Math.floor(transpositions / 2)) / numMatches) / 3.0 : 0;\n\t}\n\n/***/ },\n/* 195 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\texports.default = function (fn) {\n\t var cache = {};\n\t\n\t return function () {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t var key = JSON.stringify(args);\n\t return cache[key] || (cache[key] = fn.apply(null, args));\n\t };\n\t};\n\n/***/ },\n/* 196 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// style-loader: Adds some css to the DOM by adding a