{"mappings":"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B,IAAK,IAAI4F,EAAQvf,UAAUpC,OAAQuG,EAAO,IAAI8L,MAAMsP,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGrb,EAAKqb,EAAQ,GAAKxf,UAAUwf,GAG9B,OAAO5R,GAAO+L,EAAOxV,GAAM,KAG7Bmb,ICpEA,IAAIG,IAA2B,EAG/B,SAASC,GAAe7Q,GAIjB4Q,KACH,IAAAE,EAAiB9Q,EAAK+Q,OAAQ,CAK5B1f,OAAS4F,IAIP,MAAM+Z,EAAO,oCAAmCC,UAAUha,KAE1D,OAAO,IAAI9C,SAASC,IAClB,GAAI6C,EAAMlI,OAAS,EACjB,OAAOqF,EAAQ,IAGjB8c,MAAMF,GACHlgB,MAAMqgB,GAAaA,EAASC,SAC5BtgB,MAAMmT,IACL7P,EAAQ6P,UAOhBrN,aAAc,CAAC3D,EAAQpE,IAAW,iBAC1BA,qDAEAoE,EAAOoe,0EAGPpe,EAAOqe,+CAcf3a,eAAiB1D,GAAWA,EAAOoe,MAInCtf,SAAWkB,IACThF,OAAOsjB,KAAKte,EAAO+d,QAGvBJ,IAA2B,GAoI/Bd,GAAO,iBAjIe,CACpBxgB,MAAO,EACPyhB,OAAQ,EAAGX,OAAAA,KACMA,IACDzc,cAAc,iBAE9Byc,OAAQ,EAAG9gB,MAAAA,KAAYkiB,EAAK;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;mBAiHXX","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./node_modules/@parcel/scope-hoisting/lib/prelude.js","./node_modules/@trevoreyre/autocomplete-js/dist/autocomplete.esm.js","./node_modules/hybrids/esm/utils.js","./node_modules/hybrids/esm/property.js","./node_modules/hybrids/esm/render.js","./node_modules/hybrids/esm/emitter.js","./node_modules/hybrids/esm/cache.js","./node_modules/hybrids/esm/define.js","./node_modules/hybrids/esm/template/utils.js","./node_modules/hybrids/esm/template/resolvers/array.js","./node_modules/hybrids/esm/template/resolvers/value.js","./node_modules/hybrids/esm/template/resolvers/event.js","./node_modules/hybrids/esm/template/resolvers/class.js","./node_modules/hybrids/esm/template/resolvers/style.js","./node_modules/hybrids/esm/template/resolvers/property.js","./node_modules/hybrids/esm/template/core.js","./node_modules/hybrids/esm/template/helpers.js","./node_modules/hybrids/esm/template/index.js","./src/searchbox.js"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$export(e, n, v) {\n Object.defineProperty(e, n, {get: v, enumerable: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","var $parcel$modules = {};\nvar $parcel$bundles = {};\n\nif (parcelRequire == null) {\n parcelRequire = function(name) {\n // Execute the bundle wrapper function if there is one registered.\n if (name in $parcel$bundles) {\n $parcel$bundles[name]();\n delete $parcel$bundles[name];\n }\n\n if (name in $parcel$modules) {\n return $parcel$modules[name];\n }\n\n // Try the node require function if it exists.\n // Do not use `require` to prevent Webpack from trying to bundle this call\n if (typeof module !== 'undefined' && typeof module.require === 'function') {\n return module.require(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, exports) {\n $parcel$modules[id] = exports;\n };\n\n parcelRequire.registerBundle = function registerBundle(id, fn) {\n $parcel$bundles[id] = fn;\n $parcel$modules[id] = {};\n };\n\n $parcel$global[parcelRequireName] = parcelRequire;\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n// Polyfill for element.matches, to support Internet Explorer. It's a relatively\n// simple polyfill, so we'll just include it rather than require the user to\n// include the polyfill themselves. Adapted from\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\nvar matches = function matches(element, selector) {\n return element.matches ? element.matches(selector) : element.msMatchesSelector ? element.msMatchesSelector(selector) : element.webkitMatchesSelector ? element.webkitMatchesSelector(selector) : null;\n};\n\n// Polyfill for element.closest, to support Internet Explorer. It's a relatively\n\nvar closestPolyfill = function closestPolyfill(el, selector) {\n var element = el;\n\n while (element && element.nodeType === 1) {\n if (matches(element, selector)) {\n return element;\n }\n\n element = element.parentNode;\n }\n\n return null;\n};\n\nvar closest = function closest(element, selector) {\n return element.closest ? element.closest(selector) : closestPolyfill(element, selector);\n};\n\n// Returns true if the value has a \"then\" function. Adapted from\n// https://github.com/graphql/graphql-js/blob/499a75939f70c4863d44149371d6a99d57ff7c35/src/jsutils/isPromise.js\nvar isPromise = function isPromise(value) {\n return Boolean(value && typeof value.then === 'function');\n};\n\nvar AutocompleteCore = function AutocompleteCore() {\n var _this = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n search = _ref.search,\n _ref$autoSelect = _ref.autoSelect,\n autoSelect = _ref$autoSelect === void 0 ? false : _ref$autoSelect,\n _ref$setValue = _ref.setValue,\n setValue = _ref$setValue === void 0 ? function () {} : _ref$setValue,\n _ref$setAttribute = _ref.setAttribute,\n setAttribute = _ref$setAttribute === void 0 ? function () {} : _ref$setAttribute,\n _ref$onUpdate = _ref.onUpdate,\n onUpdate = _ref$onUpdate === void 0 ? function () {} : _ref$onUpdate,\n _ref$onSubmit = _ref.onSubmit,\n onSubmit = _ref$onSubmit === void 0 ? function () {} : _ref$onSubmit,\n _ref$onShow = _ref.onShow,\n onShow = _ref$onShow === void 0 ? function () {} : _ref$onShow,\n _ref$onHide = _ref.onHide,\n onHide = _ref$onHide === void 0 ? function () {} : _ref$onHide,\n _ref$onLoading = _ref.onLoading,\n onLoading = _ref$onLoading === void 0 ? function () {} : _ref$onLoading,\n _ref$onLoaded = _ref.onLoaded,\n onLoaded = _ref$onLoaded === void 0 ? function () {} : _ref$onLoaded;\n\n _classCallCheck(this, AutocompleteCore);\n\n _defineProperty(this, \"value\", '');\n\n _defineProperty(this, \"searchCounter\", 0);\n\n _defineProperty(this, \"results\", []);\n\n _defineProperty(this, \"selectedIndex\", -1);\n\n _defineProperty(this, \"handleInput\", function (event) {\n var value = event.target.value;\n\n _this.updateResults(value);\n\n _this.value = value;\n });\n\n _defineProperty(this, \"handleKeyDown\", function (event) {\n var key = event.key;\n\n switch (key) {\n case 'Up': // IE/Edge\n\n case 'Down': // IE/Edge\n\n case 'ArrowUp':\n case 'ArrowDown':\n {\n var selectedIndex = key === 'ArrowUp' || key === 'Up' ? _this.selectedIndex - 1 : _this.selectedIndex + 1;\n event.preventDefault();\n\n _this.handleArrows(selectedIndex);\n\n break;\n }\n\n case 'Tab':\n {\n _this.selectResult();\n\n break;\n }\n\n case 'Enter':\n {\n var selectedResult = _this.results[_this.selectedIndex];\n\n _this.selectResult();\n\n _this.onSubmit(selectedResult);\n\n break;\n }\n\n case 'Esc': // IE/Edge\n\n case 'Escape':\n {\n _this.hideResults();\n\n _this.setValue();\n\n break;\n }\n\n default:\n return;\n }\n });\n\n _defineProperty(this, \"handleFocus\", function (event) {\n var value = event.target.value;\n\n _this.updateResults(value);\n\n _this.value = value;\n });\n\n _defineProperty(this, \"handleBlur\", function () {\n _this.hideResults();\n });\n\n _defineProperty(this, \"handleResultMouseDown\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(this, \"handleResultClick\", function (event) {\n var target = event.target;\n var result = closest(target, '[data-result-index]');\n\n if (result) {\n _this.selectedIndex = parseInt(result.dataset.resultIndex, 10);\n var selectedResult = _this.results[_this.selectedIndex];\n\n _this.selectResult();\n\n _this.onSubmit(selectedResult);\n }\n });\n\n _defineProperty(this, \"handleArrows\", function (selectedIndex) {\n // Loop selectedIndex back to first or last result if out of bounds\n var resultsCount = _this.results.length;\n _this.selectedIndex = (selectedIndex % resultsCount + resultsCount) % resultsCount; // Update results and aria attributes\n\n _this.onUpdate(_this.results, _this.selectedIndex);\n });\n\n _defineProperty(this, \"selectResult\", function () {\n var selectedResult = _this.results[_this.selectedIndex];\n\n if (selectedResult) {\n _this.setValue(selectedResult);\n }\n\n _this.hideResults();\n });\n\n _defineProperty(this, \"updateResults\", function (value) {\n var currentSearch = ++_this.searchCounter;\n\n _this.onLoading();\n\n _this.search(value).then(function (results) {\n if (currentSearch !== _this.searchCounter) {\n return;\n }\n\n _this.results = results;\n\n _this.onLoaded();\n\n if (_this.results.length === 0) {\n _this.hideResults();\n\n return;\n }\n\n _this.selectedIndex = _this.autoSelect ? 0 : -1;\n\n _this.onUpdate(_this.results, _this.selectedIndex);\n\n _this.showResults();\n });\n });\n\n _defineProperty(this, \"showResults\", function () {\n _this.setAttribute('aria-expanded', true);\n\n _this.onShow();\n });\n\n _defineProperty(this, \"hideResults\", function () {\n _this.selectedIndex = -1;\n _this.results = [];\n\n _this.setAttribute('aria-expanded', false);\n\n _this.setAttribute('aria-activedescendant', '');\n\n _this.onUpdate(_this.results, _this.selectedIndex);\n\n _this.onHide();\n });\n\n _defineProperty(this, \"checkSelectedResultVisible\", function (resultsElement) {\n var selectedResultElement = resultsElement.querySelector(\"[data-result-index=\\\"\".concat(_this.selectedIndex, \"\\\"]\"));\n\n if (!selectedResultElement) {\n return;\n }\n\n var resultsPosition = resultsElement.getBoundingClientRect();\n var selectedPosition = selectedResultElement.getBoundingClientRect();\n\n if (selectedPosition.top < resultsPosition.top) {\n // Element is above viewable area\n resultsElement.scrollTop -= resultsPosition.top - selectedPosition.top;\n } else if (selectedPosition.bottom > resultsPosition.bottom) {\n // Element is below viewable area\n resultsElement.scrollTop += selectedPosition.bottom - resultsPosition.bottom;\n }\n });\n\n this.search = isPromise(search) ? search : function (value) {\n return Promise.resolve(search(value));\n };\n this.autoSelect = autoSelect;\n this.setValue = setValue;\n this.setAttribute = setAttribute;\n this.onUpdate = onUpdate;\n this.onSubmit = onSubmit;\n this.onShow = onShow;\n this.onHide = onHide;\n this.onLoading = onLoading;\n this.onLoaded = onLoaded;\n};\n\n// Generates a unique ID, with optional prefix. Adapted from\n// https://github.com/lodash/lodash/blob/61acdd0c295e4447c9c10da04e287b1ebffe452c/uniqueId.js\nvar idCounter = 0;\n\nvar uniqueId = function uniqueId() {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return \"\".concat(prefix).concat(++idCounter);\n};\n\n// Calculates whether element2 should be above or below element1. Always\n// places element2 below unless all of the following:\n// 1. There isn't enough visible viewport below to fit element2\n// 2. There is more room above element1 than there is below\n// 3. Placing elemen2 above 1 won't overflow window\nvar getRelativePosition = function getRelativePosition(element1, element2) {\n var position1 = element1.getBoundingClientRect();\n var position2 = element2.getBoundingClientRect();\n var positionAbove =\n /* 1 */\n position1.bottom + position2.height > window.innerHeight &&\n /* 2 */\n window.innerHeight - position1.bottom < position1.top &&\n /* 3 */\n window.pageYOffset + position1.top - position2.height > 0;\n return positionAbove ? 'above' : 'below';\n};\n\n// Credit David Walsh (https://davidwalsh.name/javascript-debounce-function)\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nvar debounce = function debounce(func, wait, immediate) {\n var timeout;\n return function executedFunction() {\n var context = this;\n var 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// string in the format: `key1=\"value1\" key2=\"value2\"` for easy use in an HTML string.\n\nvar Props =\n/*#__PURE__*/\nfunction () {\n function Props(index, selectedIndex, baseClass) {\n _classCallCheck(this, Props);\n\n this.id = \"\".concat(baseClass, \"-result-\").concat(index);\n this[\"class\"] = \"\".concat(baseClass, \"-result\");\n this['data-result-index'] = index;\n this.role = 'option';\n\n if (index === selectedIndex) {\n this['aria-selected'] = 'true';\n }\n }\n\n _createClass(Props, [{\n key: \"toString\",\n value: function toString() {\n var _this = this;\n\n return Object.keys(this).reduce(function (str, key) {\n return \"\".concat(str, \" \").concat(key, \"=\\\"\").concat(_this[key], \"\\\"\");\n }, '');\n }\n }]);\n\n return Props;\n}();\n\nvar Autocomplete = function Autocomplete(root) {\n var _this2 = this;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n search = _ref.search,\n _ref$onSubmit = _ref.onSubmit,\n onSubmit = _ref$onSubmit === void 0 ? function () {} : _ref$onSubmit,\n _ref$onUpdate = _ref.onUpdate,\n onUpdate = _ref$onUpdate === void 0 ? function () {} : _ref$onUpdate,\n _ref$baseClass = _ref.baseClass,\n baseClass = _ref$baseClass === void 0 ? 'autocomplete' : _ref$baseClass,\n autoSelect = _ref.autoSelect,\n _ref$getResultValue = _ref.getResultValue,\n getResultValue = _ref$getResultValue === void 0 ? function (result) {\n return result;\n } : _ref$getResultValue,\n renderResult = _ref.renderResult,\n _ref$debounceTime = _ref.debounceTime,\n debounceTime = _ref$debounceTime === void 0 ? 0 : _ref$debounceTime;\n\n _classCallCheck(this, Autocomplete);\n\n _defineProperty(this, \"expanded\", false);\n\n _defineProperty(this, \"loading\", false);\n\n _defineProperty(this, \"position\", {});\n\n _defineProperty(this, \"resetPosition\", true);\n\n _defineProperty(this, \"initialize\", function () {\n _this2.root.style.position = 'relative';\n\n _this2.input.setAttribute('role', 'combobox');\n\n _this2.input.setAttribute('autocomplete', 'off');\n\n _this2.input.setAttribute('autocapitalize', 'off');\n\n _this2.input.setAttribute('autocorrect', 'off');\n\n _this2.input.setAttribute('spellcheck', 'false');\n\n _this2.input.setAttribute('aria-autocomplete', 'list');\n\n _this2.input.setAttribute('aria-haspopup', 'listbox');\n\n _this2.input.setAttribute('aria-expanded', 'false');\n\n _this2.resultList.setAttribute('role', 'listbox');\n\n _this2.resultList.style.position = 'absolute';\n _this2.resultList.style.zIndex = '1';\n _this2.resultList.style.width = '100%';\n _this2.resultList.style.boxSizing = 'border-box'; // Generate ID for results list if it doesn't have one\n\n if (!_this2.resultList.id) {\n _this2.resultList.id = uniqueId(\"\".concat(_this2.baseClass, \"-result-list-\"));\n }\n\n _this2.input.setAttribute('aria-owns', _this2.resultList.id);\n\n document.body.addEventListener('click', _this2.handleDocumentClick);\n\n _this2.input.addEventListener('input', _this2.core.handleInput);\n\n _this2.input.addEventListener('keydown', _this2.core.handleKeyDown);\n\n _this2.input.addEventListener('focus', _this2.core.handleFocus);\n\n _this2.input.addEventListener('blur', _this2.core.handleBlur);\n\n _this2.resultList.addEventListener('mousedown', _this2.core.handleResultMouseDown);\n\n _this2.resultList.addEventListener('click', _this2.core.handleResultClick);\n\n _this2.updateStyle();\n });\n\n _defineProperty(this, \"setAttribute\", function (attribute, value) {\n _this2.input.setAttribute(attribute, value);\n });\n\n _defineProperty(this, \"setValue\", function (result) {\n _this2.input.value = result ? _this2.getResultValue(result) : '';\n });\n\n _defineProperty(this, \"renderResult\", function (result, props) {\n return \"