{"version":3,"sources":["webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/sources/hits.js","webpack:///./node_modules/immediate/lib/mutation.js","webpack:///./node_modules/uuid/lib/v35.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/index.js","webpack:///./node_modules/algoliasearch/src/version.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/places.js/src/configure/index.js","webpack:///./node_modules/insert-css/index.js","webpack:///./node_modules/places.js/src/findType.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/sources/index.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/algoliasearch/src/deprecatedMessage.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/common/dom.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/version.js","webpack:///./node_modules/algoliasearch/src/merge.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/places.js/src/createAutocompleteDataset.js","webpack:///./node_modules/places.js/src/findCountryCode.js","webpack:///(webpack)/node_modules/events/events.js","webpack:///./node_modules/algoliasearch/src/omit.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/css.js","webpack:///./node_modules/uuid/lib/sha1-browser.js","webpack:///./node_modules/algoliasearch/src/browser/createAlgoliasearch.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/places.js/src/formatDropdownValue.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/common/parseAlgoliaClientVersion.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/input.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/dataset.js","webpack:///./node_modules/algoliasearch/src/errors.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/common/utils.js","webpack:///./node_modules/uuid/v5.js","webpack:///./node_modules/algoliasearch/src/browser/inline-headers.js","webpack:///./node_modules/immediate/lib/index.js","webpack:///./node_modules/algoliasearch/src/exitPromise.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/zepto.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/html.js","webpack:///./node_modules/algoliasearch/src/store.js","webpack:///./node_modules/immediate/lib/stateChange.js","webpack:///./node_modules/algoliasearch/src/IndexCore.js","webpack:///./node_modules/places.js/src/formatInputValue.js","webpack:///./node_modules/places.js/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/debug/src/debug.js","webpack:///./node_modules/algoliasearch/src/deprecate.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/event_emitter.js","webpack:///./node_modules/places.js/src/navigatorLanguage.js","webpack:///./node_modules/places.js/src/version.js","webpack:///./node_modules/places.js/src/defaultTemplates.js","webpack:///./node_modules/algoliasearch/src/clone.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/algoliasearch/src/browser/builds/algoliasearchLite.js","webpack:///./node_modules/immediate/lib/nextTick.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/event_bus.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/foreach/index.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/standalone/index.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/sources/popularIn.js","webpack:///./node_modules/uuid/v4.js","webpack:///./node_modules/immediate/lib/messageChannel.js","webpack:///./node_modules/algoliasearch/src/AlgoliaSearchCore.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/typeahead.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/places.js/node_modules/autocomplete.js/src/autocomplete/dropdown.js","webpack:///./node_modules/immediate/lib/timeout.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/algoliasearch/src/places.js","webpack:///./node_modules/places.js/src/createReverseGeocodingSource.js","webpack:///./node_modules/algoliasearch/src/map.js","webpack:///./node_modules/places.js/src/places.js","webpack:///./node_modules/vue-uuid/dist/vue-uuid.es.js","webpack:///./src/components/Places.vue?bf0e","webpack:///src/components/Places.vue","webpack:///./src/components/Places.vue?ae2e","webpack:///./src/components/Places.vue","webpack:///./node_modules/algoliasearch/src/buildSearchMethod.js","webpack:///./node_modules/places.js/src/errors.js","webpack:///./node_modules/places.js/src/createAutocompleteSource.js","webpack:///./node_modules/places.js/src/formatHit.js","webpack:///./node_modules/algoliasearch/src/browser/jsonp-request.js"],"names":["_","version","parseAlgoliaClientVersion","module","exports","index","params","algoliaVersion","as","_ua","additionalUA","sourceFn","query","cb","search","error","content","message","hits","Mutation","global","MutationObserver","WebKitMutationObserver","test","install","handle","called","observer","element","document","createTextNode","observe","characterData","data","bytesToUuid","uuidToBytes","uuid","bytes","replace","hex","push","parseInt","stringToBytes","str","unescape","encodeURIComponent","Array","length","i","charCodeAt","name","hashfunc","generateUUID","value","namespace","buf","offset","off","isArray","TypeError","concat","idx","err","DNS","URL","factory","this","objectOrFunction","x","type","isFunction","_isArray","Object","prototype","toString","call","len","vertxNext","customSchedulerFn","asap","callback","arg","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","window","undefined","browserGlobal","BrowserMutationObserver","isNode","self","process","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","node","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","setTimeout","attemptVertx","vertx","Function","require","runOnLoop","runOnContext","e","then","onFulfillment","onRejection","parent","child","constructor","noop","PROMISE_ID","makePromise","_state","arguments","invokeCallback","_result","subscribe","resolve$1","object","Constructor","promise","resolve","Math","random","substring","PENDING","FULFILLED","REJECTED","TRY_CATCH_ERROR","selfFulfillment","cannotReturnOwn","getThen","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","reject","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","tryCatch","hasCallback","succeeded","failed","initializePromise","resolver","id","nextId","validationError","Error","Enumerator","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","c","resolve$$1","_then","_settledAt","Promise$1","_willSettleAt","state","enumerator","all","entries","race","reject$1","needsResolver","needsNew","Promise","catch","finally","polyfill","local","P","promiseToString","cast","_setScheduler","_setAsap","_asap","s","m","h","d","y","parse","String","match","exec","n","parseFloat","toLowerCase","fmtShort","ms","round","fmtLong","plural","floor","ceil","val","options","isNaN","long","JSON","stringify","_objectSpread","target","source","ownKeys","keys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","enumerable","forEach","key","_defineProperty","obj","defineProperty","configurable","writable","extractParams","_ref","hitsPerPage","aroundLatLng","aroundRadius","aroundLatLngViaIP","insideBoundingBox","insidePolygon","getRankingInfo","countries","language","extracted","navigator","split","map","country","extractControls","_ref2","_ref2$useDeviceLocati","useDeviceLocation","_ref2$computeQueryPar","computeQueryParams","formatInputValue","_ref2$onHits","onHits","_ref2$onError","onError","onRateLimitReached","onInvalidCredentials","controls","configure","configuration","_default","containers","styleElements","usage","insertCss","css","styleElement","position","prepend","container","querySelector","containerId","indexOf","createStyleElement","insertBefore","childNodes","appendChild","substr","styleSheet","cssText","textContent","createElement","setAttribute","findType","tags","types","city","t","popularIn","byteToHex","bth","join","previousUsage","newUsage","githubAnchorLink","foreach","merge","destination","sources","slice","keyName","hasOwnProperty","useColors","documentElement","style","WebkitAppearance","console","firebug","exception","table","userAgent","RegExp","$1","formatArgs","args","humanize","diff","color","splice","lastC","log","apply","save","namespaces","storage","removeItem","debug","load","r","DEBUG","localstorage","localStorage","chrome","colors","formatters","j","v","enable","createAutocompleteDataset","_createAutocompleteSource","_interopRequireDefault","_defaultTemplates","__esModule","templates","displayKey","cache","findCountryCode","tagIndex","tag","find","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","warn","getOwnPropertyNames","NumberIsNaN","Number","EventEmitter","init","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","events","existing","create","newListener","emit","unshift","warned","w","emitter","count","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","arr","copy","spliceOne","list","pop","ret","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","on","addEventListener","wrapListener","removeEventListener","get","set","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","listeners","addListener","prependListener","prependOnceListener","originalListener","shift","removeAllListeners","rawListeners","eventNames","filtered","wrapper","display","hint","top","left","borderColor","boxShadow","opacity","verticalAlign","backgroundColor","inputWithNoHint","dropdown","zIndex","suggestions","suggestion","whiteSpace","cursor","suggestionChild","ltr","right","rtl","defaultClasses","root","prefix","noPrefix","dropdownMenu","dataset","empty","appendTo","isMsie","mixin","backgroundImage","marginTop","f","z","ROTL","sha1","K","H","msg","l","N","M","pow","W","a","b","T","AlgoliaSearch","uaSuffix","inherits","errors","inlineHeaders","jsonpRequest","places","algoliasearch","applicationID","apiKey","opts","cloneDeep","ua","AlgoliaSearchBrowser","initPlaces","__algolia","support","hasXMLHttpRequest","hasXDomainRequest","cors","XMLHttpRequest","_request","url","headers","reqTimeout","timedOut","body","req","XDomainRequest","connected","onTimeout","timeouts","connect","onprogress","onProgress","onreadystatechange","onReadyStateChange","onload","onLoad","onerror","open","method","forceAuthHeaders","setRequestHeader","send","Network","out","clearTimeout","responseText","statusCode","status","getAllResponseHeaders","UnparsableJSON","more","event","abort","RequestTimeout","onConnect","complete","readyState","fallback","_promise","delay","promises","ctor","superCtor","super_","TempCtor","formatDropdownValue","addressIcon","cityIcon","countryIcon","busIcon","trainIcon","townhallIcon","planeIcon","icons","address","busStop","trainStation","townhall","airport","highlight","administrative","trim","token","agent","parsed","specialKeyCodeMap","9","27","37","39","13","38","40","DOM","Input","o","onBlur","onFocus","onKeydown","onInput","_onBlur","_onFocus","_onKeydown","_onInput","$hint","$input","setHint","getHint","clearHint","clearHintIfInvalid","$e","which","keyCode","defer","$overflowHelper","buildOverflowHelper","visibility","fontFamily","fontSize","fontStyle","fontVariant","fontWeight","wordSpacing","letterSpacing","textIndent","textRendering","textTransform","insertAfter","areQueriesEquivalent","normalizeQuery","withModifier","altKey","ctrlKey","metaKey","shiftKey","resetInputValue","removeAttr","trigger","_managePreventDefault","_shouldTrigger","_checkInputValue","preventDefault","hintValue","inputValue","getInputValue","areEquivalent","hasDifferentWhitespace","focus","blur","getQuery","setQuery","setInputValue","silent","expand","attr","collapse","setActiveDescendant","activedescendantId","removeActiveDescendant","valIsPrefixOfHint","isValid","hasOverflow","getLanguageDirection","constraint","width","text","isCursorAtEnd","valueLength","selectionStart","range","isNumber","selection","createRange","moveStart","destroy","datasetKey","valueKey","datumKey","html","Dataset","isValidName","_isEmpty","getUniqueId","displayFn","getDisplayFn","debounce","getTemplates","cssClasses","formattedPrefix","formatPrefix","clazz","className","$el","$menu","clearCachedSuggestions","templatify","header","footer","suggestionTemplate","extractDatasetName","el","extractValue","extractDatum","datum","_render","hasSuggestions","renderArgs","getEmptyHtml","getHeaderHtml","append","getFooterHtml","getSuggestionsHtml","addClass","removeClass","isEmpty","$suggestions","nodes","suggestionsHtml","getSuggestionNode","suggestionHtml","role","children","each","getRoot","update","handleSuggestions","canceled","extraArgs","cacheSuggestions","shouldFetchFromCache","cachedSuggestions","cachedRenderExtraArgs","execSource","later","debounceTimeout","cachedQuery","cancel","clear","AlgoliaSearchError","extraProperties","captureStackTrace","stack","createCustomError","AlgoliaSearchCustomError","JSONPScriptFail","JSONPScriptError","Unknown","escapeRegExp","isObject","agentString","escapeRegExChars","toStr","clone","every","result","any","found","counter","$template","prop","fn","skipDot","escapeHighlightedString","highlightPreTag","highlightPostTag","pre","post","div","innerHTML","v35","encode","draining","currentQueue","scheduleDrain","queueIndex","scheduled","cleanUpNextTick","timeout","run","Item","fun","array","immediate","task","_setTimeout","Zepto","$","classList","camelize","uniq","emptyArray","elementDisplay","classCache","cssNumber","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","adjacencyOperators","tableRow","readyRE","simpleSelectorRE","class2type","zepto","tempParent","propMap","isWindow","isDocument","nodeType","DOCUMENT_NODE","isPlainObject","likeArray","compact","item","flatten","dasherize","classRE","maybeAddPx","defaultDisplay","nodeName","getComputedStyle","getPropertyValue","parentNode","removeChild","Z","dom","selector","extend","deep","funcArg","payload","removeAttribute","klass","svg","baseVal","deserializeValue","parseJSON","traverseNode","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","temp","qsa","chr","toUpperCase","fragment","properties","isZ","ready","maybeID","maybeClass","nameOnly","isSimple","getElementById","getElementsByClassName","getElementsByTagName","querySelectorAll","contains","isEmptyObject","isNumeric","num","isFinite","inArray","elem","camelCase","expr","elements","values","grep","reduce","sort","toArray","size","remove","not","add","is","excludes","has","eq","first","last","$this","some","closest","collection","parents","ancestors","pluck","contents","contentDocument","siblings","property","show","replaceWith","newContent","before","wrap","structure","func","wrapAll","cloneNode","wrapInner","hide","toggle","setting","prev","next","originHtml","newText","getAttribute","attribute","removeProp","attrName","multiple","selected","coordinates","coords","parentOffset","offsetParent","props","getBoundingClientRect","pageXOffset","pageYOffset","height","computedStyle","removeProperty","hasClass","cls","newName","toggleClass","when","names","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","detach","dimension","dimensionProperty","operator","operatorIndex","inside","argType","copyByClone","nextSibling","firstChild","parentInDocument","src","ownerDocument","defaultView","_zid","isString","handlers","specialEvents","focusinSupported","hover","mouseenter","mouseleave","zid","findHandlers","ns","matcher","matcherFor","sel","parts","eventCapture","captureSetting","del","realEvent","delegator","capture","related","relatedTarget","proxy","compatible","isImmediatePropagationStopped","dataPropDescriptor","_args","stopPropagation","click","mousedown","mouseup","mousemove","proxyFn","unbind","one","returnTrue","returnFalse","ignoreProperties","eventMethods","stopImmediatePropagation","isDefaultPrevented","predicate","sourceMethod","timeStamp","Date","now","defaultPrevented","returnValue","getPreventDefault","createProxy","originalEvent","delegate","undelegate","live","die","autoRemove","evt","currentTarget","liveFired","Event","dispatchEvent","triggerHandler","createEvent","bubbles","initEvent","tagName","dataAttr","exp","expando","getData","store","setData","camelName","attributeData","attributes","hasData","removeData","methodName","origFn","localStorageNamespace","moduleStore","localStorageStore","localStorageFailure","cleanup","getOrSet","supportsLocalStorage","setItem","scriptEl","buildSearchMethod","deprecate","deprecatedMessage","IndexCore","indexName","typeAheadArgs","typeAheadValueOption","clearCache","similarSearch","browse","queryParameters","page","indexObj","_getSearchParams","_jsonRequest","hostType","browseFrom","searchForFacetValues","omit","facetName","facetQuery","filteredParams","searchParameters","searchFacet","_search","getObject","objectID","attrs","getObjects","objectIDs","attributesToRetrieve","requests","request","qs","sep","regexp","maxKeys","kstr","vstr","k","decodeURIComponent","xs","prevTime","selectColor","hash","abs","createDebug","enabled","curr","coerce","format","formatter","logFn","skips","disable","deprecated","splitter","bindContext","_callbacks","sync","async","onAsync","onSync","callbacks","syncFlush","asyncFlush","getFlush","cancelled","userLanguage","_formatInputValue","_formatDropdownValue","algoliaLogo","osmLogo","keysShim","isArgs","isEnumerable","propertyIsEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","isArguments","theKeys","skipProto","skipConstructor","decode","AlgoliaSearchCore","createAlgoliasearch","browser","EventBus","win","hasOwn","ctx","reverseArgs","typeaheadKey","Typeahead","autocomplete","datasets","typeaheadObject","inputs","eventBus","typeahead","dropdownMenuContainer","minLength","autoselect","autoselectOnBlur","tabAutocomplete","openOnFocus","clearOnSelected","keyboardShortcuts","autoWidth","ariaLabel","methodArguments","wasAutocompleteSet","oldAutocomplete","noConflict","_nodeId","_clockseq","rng","_lastMSecs","_lastNSecs","v1","clockseq","seedBytes","msecs","getTime","nsecs","dt","tl","tmh","details","hit","detailsIndex","detailsParams","detailsAlgoliaVersion","error2","content2","includeAll","label","allTitle","facet","nbHits","facets","v4","rnds","ii","setImmediate","exitPromise","MAX_API_KEY_LENGTH","RESET_APP_DATA_TIMER","_allowEmptyCredentials","hosts","read","write","_timeouts","protocol","_checkAppIdData","defaultHosts","_shuffleResult","hostNumber","mainSuffix","dsn","prepareHost","extraHeaders","_cache","_useCache","_useRequestCache","_useFallback","useFallback","host","safeJSONStringify","toJSON","shuffle","temporaryValue","randomIndex","currentIndex","removeCredentials","newHeaders","headerName","initIndex","setExtraHeader","getExtraHeader","unsetExtraHeader","addAlgoliaAgent","algoliaAgent","initialOpts","cacheID","requestDebug","client","tries","usingFallback","hasFallback","_computeRequestHeaders","withApiKey","debugData","doRequest","requester","reqOpts","startTime","isCacheValidWithCurrentID","jsonBody","_getTimeoutsForRequest","_setHostIndexByType","currentHost","_getHostByType","success","tryFallback","httpResponse","httpResponseOk","endTime","contentLength","duration","shouldRetry","retryRequest","unrecoverableError","retryRequestWithHigherTimeout","_incrementHostIndex","_incrementTimeoutMultipler","useRequestCache","currentCache","currentCacheID","interopCallbackReturn","maybePromiseForCache","promiseForCache","requestHeaders","userToken","securityTags","queries","postObj","JSONPParams","requestId","strategy","setSecurityTags","strTags","oredTags","setUserToken","setRequestTimeout","milliseconds","setTimeouts","getTimeouts","_getAppIdData","_cacheAppIdData","_setAppIdData","lastChange","_resetInitialAppIdData","newData","hostIndexes","timeoutMultiplier","shuffleResult","_hostIndexes","_timeoutMultiplier","_partialAppIdDataUpdate","currentData","_getHostIndexByType","_getTimeoutMultiplier","hostIndex","newHostIndexes","max","callee","origKeys","originalKeys","shim","keysWorksWithArguments","attrsKey","Dropdown","isActivated","listboxId","domElts","buildDom","$node","menu","active","activeElement","_onSuggestionClicked","_onCursorMoved","_onCursorRemoved","_onOpened","_onClosed","_onShown","_onEmpty","_onRedrawn","_onDatasetRendered","_onFocused","_onBlurred","_onEnterKeyed","_onTabKeyed","_onEscKeyed","_onUpKeyed","_onDownKeyed","_onLeftKeyed","_onRightKeyed","_onQueryChanged","_onWhitespaceChanged","_bindKeyboardShortcuts","_setLanguageDirection","$wrapper","$dropdown","dropdownHtml","getBackgroundStyles","spellcheck","tabindex","dir","backgroundAttachment","backgroundClip","backgroundOrigin","backgroundPosition","backgroundRepeat","backgroundSize","destroyDomStructure","keydown","elt","srcElement","isContentEditable","selectionMethod","getDatumForSuggestion","_select","updateInput","getDatumForCursor","currentCursorId","getCurrentCursor","raw","datasetName","_updateHint","inputRect","wrapperRect","bottom","cursorTopSuggestion","cursorDatum","topSuggestionDatum","getDatumForTopSuggestion","close","_autocomplete","moveCursorUp","moveCursorDown","setLanguageDirection","escapedQuery","frontMatchRegEx","isVisible","laxCursor","setVal","getVal","getWrapper","$container","stringifyPrimitive","objectKeys","ks","res","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","onSuggestionClick","onSuggestionMouseEnter","onSuggestionMouseLeave","isOpen","_onSuggestionClick","_onSuggestionMouseEnter","_onSuggestionMouseLeave","cssClass","$empty","oDataset","initializeDataset","_onRendered","resize","_redraw","_removeCursor","_setCursor","isDatasetEmpty","_hide","_show","hasEmptyTemplate","_getSuggestions","_getCursor","_moveCursor","increment","$oldCursor","newCursorIndex","$newCursor","_ensureVisible","elTop","elBottom","menuScrollTop","menuHeight","updateDataset","clearDataset","destroyDataset","createPlacesClient","qs3","appID","reverse","encoded","_configure","_formatHit","_version","filterApplicableParams","createReverseGeocodingSource","clientOptions","appId","_ref$formatInputValue","_ref$language","_ref$onHits","_ref$onError","placesClient","searcher","queryAroundLatLng","finalAroundLatLng","hitIndex","rawAnswer","partial","updated","newArr","itemIndex","_algoliasearchLite","_createAutocompleteDataset","_insertCss","_errors","_createReverseGeocodingSource","clearIcon","pinIcon","_options$autocomplete","autocompleteOptions","userAutocompleteOptions","NodeList","multiContainers","resolvedContainer","HTMLInputElement","badContainer","placesInstance","autocompleteDataset","rateLimitReached","startsWith","invalidCredentials","invalidAppId","autocompleteInstance","autocompleteContainer","autocompleteChangeEvents","eventName","suggestionIndex","pin","previousQuery","inputListener","autocompleteIsomorphicMethods","_autocompleteInstance","_autocompleteInstance2","_autocompleteInstance3","safeConfig","v5","render","_vm","_h","$createElement","_c","_self","staticRenderFns","required","apiCountry","placeholder","instance","methods","onChange","$emit","mounted","ph","beforeDestroy","watch","newVal","component","queryParam","createAutocompleteSource","_ref$computeQueryPara","_ref$useDeviceLocatio","userCoords","tracker","searchParams","geolocation","watchPosition","latitude","longitude","_ref3","clearWatch","formatHit","_findCountryCode","_findType","getBestHighlightedForm","highlightedValues","defaultValue","bestAttributes","matchLevel","words","matchedWords","getBestPostcode","postcodes","highlightedPostcodes","postcode","highlightedPostcode","locale_names","suburb","county","_highlightResult","countryCode","_tags","latlng","lat","_geoloc","lng","JSONPCounter","cbCalled","head","script","cbName","done","removeGlobals","clean","ontimeout","readystatechange"],"mappings":"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","file":"js/chunk-2cc3265d.ffe73b17.js","sourcesContent":["'use strict';\n\nvar _ = require('../common/utils.js');\nvar version = require('../../version.js');\nvar parseAlgoliaClientVersion = require('../common/parseAlgoliaClientVersion.js');\n\nmodule.exports = function search(index, params) {\n var algoliaVersion = parseAlgoliaClientVersion(index.as._ua);\n if (algoliaVersion && algoliaVersion[0] >= 3 && algoliaVersion[1] > 20) {\n params = params || {};\n params.additionalUA = 'autocomplete.js ' + version;\n }\n return sourceFn;\n\n function sourceFn(query, cb) {\n index.search(query, params, function(error, content) {\n if (error) {\n _.error(error.message);\n return;\n }\n cb(content.hits, content);\n });\n }\n};\n","'use strict';\n//based off rsvp https://github.com/tildeio/rsvp.js\n//license https://github.com/tildeio/rsvp.js/blob/master/LICENSE\n//https://github.com/tildeio/rsvp.js/blob/master/lib/rsvp/asap.js\n\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nexports.test = function () {\n return Mutation;\n};\n\nexports.install = function (handle) {\n var called = 0;\n var observer = new Mutation(handle);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n return function () {\n element.data = (called = ++called % 2);\n };\n};","var bytesToUuid = require('./bytesToUuid');\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {\n bytes.push(parseInt(hex, 16));\n });\n\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n var bytes = new Array(str.length);\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n return bytes;\n}\n\nmodule.exports = function(name, version, hashfunc) {\n var generateUUID = function(value, namespace, buf, offset) {\n var off = buf && offset || 0;\n\n if (typeof(value) == 'string') value = stringToBytes(value);\n if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);\n\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');\n\n // Per 4.3\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = (bytes[6] & 0x0f) | version;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off+idx] = bytes[idx];\n }\n }\n\n return buf || bytesToUuid(bytes);\n };\n\n // Function#name is not settable on some platforms (#270)\n try {\n generateUUID.name = name;\n } catch (err) {\n }\n\n // Pre-defined namespaces, per Appendix C\n generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\n generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n\n return generateUUID;\n};\n","'use strict';\n\nmodule.exports = require('./src/standalone/');\n","'use strict';\n\nmodule.exports = '3.32.1';\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.6+9869a4bc\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar extractParams = function extractParams(_ref) {\n var hitsPerPage = _ref.hitsPerPage,\n aroundLatLng = _ref.aroundLatLng,\n aroundRadius = _ref.aroundRadius,\n aroundLatLngViaIP = _ref.aroundLatLngViaIP,\n insideBoundingBox = _ref.insideBoundingBox,\n insidePolygon = _ref.insidePolygon,\n getRankingInfo = _ref.getRankingInfo,\n countries = _ref.countries,\n language = _ref.language,\n type = _ref.type;\n var extracted = {\n countries: countries,\n hitsPerPage: hitsPerPage || 5,\n language: language || navigator.language.split('-')[0],\n type: type\n };\n\n if (Array.isArray(countries)) {\n extracted.countries = extracted.countries.map(function (country) {\n return country.toLowerCase();\n });\n }\n\n if (typeof extracted.language === 'string') {\n extracted.language = extracted.language.toLowerCase();\n }\n\n if (aroundLatLng) {\n extracted.aroundLatLng = aroundLatLng;\n } else if (aroundLatLngViaIP !== undefined) {\n extracted.aroundLatLngViaIP = aroundLatLngViaIP;\n }\n\n return _objectSpread({}, extracted, {\n aroundRadius: aroundRadius,\n insideBoundingBox: insideBoundingBox,\n insidePolygon: insidePolygon,\n getRankingInfo: getRankingInfo\n });\n};\n\nvar extractControls = function extractControls(_ref2) {\n var _ref2$useDeviceLocati = _ref2.useDeviceLocation,\n useDeviceLocation = _ref2$useDeviceLocati === void 0 ? false : _ref2$useDeviceLocati,\n _ref2$computeQueryPar = _ref2.computeQueryParams,\n computeQueryParams = _ref2$computeQueryPar === void 0 ? function (params) {\n return params;\n } : _ref2$computeQueryPar,\n formatInputValue = _ref2.formatInputValue,\n _ref2$onHits = _ref2.onHits,\n onHits = _ref2$onHits === void 0 ? function () {} : _ref2$onHits,\n _ref2$onError = _ref2.onError,\n onError = _ref2$onError === void 0 ? function (e) {\n throw e;\n } : _ref2$onError,\n onRateLimitReached = _ref2.onRateLimitReached,\n onInvalidCredentials = _ref2.onInvalidCredentials;\n return {\n useDeviceLocation: useDeviceLocation,\n computeQueryParams: computeQueryParams,\n formatInputValue: formatInputValue,\n onHits: onHits,\n onError: onError,\n onRateLimitReached: onRateLimitReached,\n onInvalidCredentials: onInvalidCredentials\n };\n};\n\nvar params = {};\nvar controls = {};\n\nvar configure = function configure(configuration) {\n params = extractParams(_objectSpread({}, params, configuration));\n controls = extractControls(_objectSpread({}, controls, configuration));\n return {\n params: params,\n controls: controls\n };\n};\n\nvar _default = configure;\nexports[\"default\"] = _default;","var containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = findType;\n\nfunction findType(tags) {\n var types = {\n country: 'country',\n city: 'city',\n 'amenity/bus_station': 'busStop',\n 'amenity/townhall': 'townhall',\n 'railway/station': 'trainStation',\n 'aeroway/aerodrome': 'airport',\n 'aeroway/terminal': 'airport',\n 'aeroway/gate': 'airport'\n };\n\n for (var t in types) {\n if (tags.indexOf(t) !== -1) {\n return types[t];\n }\n }\n\n return 'address';\n}","'use strict';\n\nmodule.exports = {\n hits: require('./hits.js'),\n popularIn: require('./popularIn.js')\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","module.exports = function deprecatedMessage(previousUsage, newUsage) {\n var githubAnchorLink = previousUsage.toLowerCase()\n .replace(/[\\.\\(\\)]/g, '');\n\n return 'algoliasearch: `' + previousUsage + '` was replaced by `' + newUsage +\n '`. Please see https://github.com/algolia/algoliasearch-client-javascript/wiki/Deprecated#' + githubAnchorLink;\n};\n","'use strict';\n\nmodule.exports = {\n element: null\n};\n","module.exports = \"0.36.0\";\n","var foreach = require('foreach');\n\nmodule.exports = function merge(destination/* , sources */) {\n var sources = Array.prototype.slice.call(arguments);\n\n foreach(sources, function(source) {\n for (var keyName in source) {\n if (source.hasOwnProperty(keyName)) {\n if (typeof destination[keyName] === 'object' && typeof source[keyName] === 'object') {\n destination[keyName] = merge({}, destination[keyName], source[keyName]);\n } else if (source[keyName] !== undefined) {\n destination[keyName] = source[keyName];\n }\n }\n }\n });\n\n return destination;\n};\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createAutocompleteDataset;\n\nvar _createAutocompleteSource = _interopRequireDefault(require(\"./createAutocompleteSource\"));\n\nvar _defaultTemplates = _interopRequireDefault(require(\"./defaultTemplates\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction createAutocompleteDataset(options) {\n var templates = _objectSpread({}, _defaultTemplates[\"default\"], options.templates);\n\n var source = (0, _createAutocompleteSource[\"default\"])(_objectSpread({}, options, {\n formatInputValue: templates.value,\n templates: undefined\n }));\n return {\n source: source,\n templates: templates,\n displayKey: 'value',\n name: 'places',\n cache: false\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = findCountryCode;\n\nfunction findCountryCode(tags) {\n for (var tagIndex = 0; tagIndex < tags.length; tagIndex++) {\n var tag = tags[tagIndex];\n var find = tag.match(/country\\/(.*)?/);\n\n if (find) {\n return find[1];\n }\n }\n\n return undefined;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = function omit(obj, test) {\n var keys = require('object-keys');\n var foreach = require('foreach');\n\n var filtered = {};\n\n foreach(keys(obj), function doFilter(keyName) {\n if (test(keyName) !== true) {\n filtered[keyName] = obj[keyName];\n }\n });\n\n return filtered;\n};\n","'use strict';\n\nvar _ = require('../common/utils.js');\n\nvar css = {\n wrapper: {\n position: 'relative',\n display: 'inline-block'\n },\n hint: {\n position: 'absolute',\n top: '0',\n left: '0',\n borderColor: 'transparent',\n boxShadow: 'none',\n // #741: fix hint opacity issue on iOS\n opacity: '1'\n },\n input: {\n position: 'relative',\n verticalAlign: 'top',\n backgroundColor: 'transparent'\n },\n inputWithNoHint: {\n position: 'relative',\n verticalAlign: 'top'\n },\n dropdown: {\n position: 'absolute',\n top: '100%',\n left: '0',\n zIndex: '100',\n display: 'none'\n },\n suggestions: {\n display: 'block'\n },\n suggestion: {\n whiteSpace: 'nowrap',\n cursor: 'pointer'\n },\n suggestionChild: {\n whiteSpace: 'normal'\n },\n ltr: {\n left: '0',\n right: 'auto'\n },\n rtl: {\n left: 'auto',\n right: '0'\n },\n defaultClasses: {\n root: 'algolia-autocomplete',\n prefix: 'aa',\n noPrefix: false,\n dropdownMenu: 'dropdown-menu',\n input: 'input',\n hint: 'hint',\n suggestions: 'suggestions',\n suggestion: 'suggestion',\n cursor: 'cursor',\n dataset: 'dataset',\n empty: 'empty'\n },\n // will be merged with the default ones if appendTo is used\n appendTo: {\n wrapper: {\n position: 'absolute',\n zIndex: '100',\n display: 'none'\n },\n input: {},\n inputWithNoHint: {},\n dropdown: {\n display: 'block'\n }\n }\n};\n\n// ie specific styling\nif (_.isMsie()) {\n // ie6-8 (and 9?) doesn't fire hover and click events for elements with\n // transparent backgrounds, for a workaround, use 1x1 transparent gif\n _.mixin(css.input, {\n backgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)'\n });\n}\n\n// ie7 and under specific styling\nif (_.isMsie() && _.isMsie() <= 7) {\n // if someone can tell me why this is necessary to align\n // the hint with the query in ie7, i'll send you $5 - @JakeHarding\n _.mixin(css.input, {marginTop: '-1px'});\n}\n\nmodule.exports = css;\n","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\n'use strict';\n\nfunction f(s, x, y, z) {\n switch (s) {\n case 0: return (x & y) ^ (~x & z);\n case 1: return x ^ y ^ z;\n case 2: return (x & y) ^ (x & z) ^ (y & z);\n case 3: return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return (x << n) | (x>>> (32 - n));\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof(bytes) == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n bytes = new Array(msg.length);\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n\n var l = bytes.length/4 + 2;\n var N = Math.ceil(l/16);\n var M = new Array(N);\n\n for (var i=0; i>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = (H[0] + a) >>> 0;\n H[1] = (H[1] + b) >>> 0;\n H[2] = (H[2] + c) >>> 0;\n H[3] = (H[3] + d) >>> 0;\n H[4] = (H[4] + e) >>> 0;\n }\n\n return [\n H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff,\n H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff,\n H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff,\n H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff,\n H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff\n ];\n}\n\nmodule.exports = sha1;\n","'use strict';\n\nvar global = require('global');\nvar Promise = global.Promise || require('es6-promise').Promise;\n\n// This is the standalone browser build entry point\n// Browser implementation of the Algolia Search JavaScript client,\n// using XMLHttpRequest, XDomainRequest and JSONP as fallback\nmodule.exports = function createAlgoliasearch(AlgoliaSearch, uaSuffix) {\n var inherits = require('inherits');\n var errors = require('../errors');\n var inlineHeaders = require('./inline-headers');\n var jsonpRequest = require('./jsonp-request');\n var places = require('../places.js');\n uaSuffix = uaSuffix || '';\n\n if (process.env.NODE_ENV === 'debug') {\n require('debug').enable('algoliasearch*');\n }\n\n function algoliasearch(applicationID, apiKey, opts) {\n var cloneDeep = require('../clone.js');\n\n opts = cloneDeep(opts || {});\n\n opts._ua = opts._ua || algoliasearch.ua;\n\n return new AlgoliaSearchBrowser(applicationID, apiKey, opts);\n }\n\n algoliasearch.version = require('../version.js');\n algoliasearch.ua = 'Algolia for vanilla JavaScript ' + uaSuffix + algoliasearch.version;\n algoliasearch.initPlaces = places(algoliasearch);\n\n // we expose into window no matter how we are used, this will allow\n // us to easily debug any website running algolia\n global.__algolia = {\n debug: require('debug'),\n algoliasearch: algoliasearch\n };\n\n var support = {\n hasXMLHttpRequest: 'XMLHttpRequest' in global,\n hasXDomainRequest: 'XDomainRequest' in global\n };\n\n if (support.hasXMLHttpRequest) {\n support.cors = 'withCredentials' in new XMLHttpRequest();\n }\n\n function AlgoliaSearchBrowser() {\n // call AlgoliaSearch constructor\n AlgoliaSearch.apply(this, arguments);\n }\n\n inherits(AlgoliaSearchBrowser, AlgoliaSearch);\n\n AlgoliaSearchBrowser.prototype._request = function request(url, opts) {\n return new Promise(function wrapRequest(resolve, reject) {\n // no cors or XDomainRequest, no request\n if (!support.cors && !support.hasXDomainRequest) {\n // very old browser, not supported\n reject(new errors.Network('CORS not supported'));\n return;\n }\n\n url = inlineHeaders(url, opts.headers);\n\n var body = opts.body;\n var req = support.cors ? new XMLHttpRequest() : new XDomainRequest();\n var reqTimeout;\n var timedOut;\n var connected = false;\n\n reqTimeout = setTimeout(onTimeout, opts.timeouts.connect);\n // we set an empty onprogress listener\n // so that XDomainRequest on IE9 is not aborted\n // refs:\n // - https://github.com/algolia/algoliasearch-client-js/issues/76\n // - https://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified?forum=iewebdevelopment\n req.onprogress = onProgress;\n if ('onreadystatechange' in req) req.onreadystatechange = onReadyStateChange;\n req.onload = onLoad;\n req.onerror = onError;\n\n // do not rely on default XHR async flag, as some analytics code like hotjar\n // breaks it and set it to false by default\n if (req instanceof XMLHttpRequest) {\n req.open(opts.method, url, true);\n\n // The Analytics API never accepts Auth headers as query string\n // this option exists specifically for them.\n if (opts.forceAuthHeaders) {\n req.setRequestHeader(\n 'x-algolia-application-id',\n opts.headers['x-algolia-application-id']\n );\n req.setRequestHeader(\n 'x-algolia-api-key',\n opts.headers['x-algolia-api-key']\n );\n }\n } else {\n req.open(opts.method, url);\n }\n\n // headers are meant to be sent after open\n if (support.cors) {\n if (body) {\n if (opts.method === 'POST') {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests\n req.setRequestHeader('content-type', 'application/x-www-form-urlencoded');\n } else {\n req.setRequestHeader('content-type', 'application/json');\n }\n }\n req.setRequestHeader('accept', 'application/json');\n }\n\n if (body) {\n req.send(body);\n } else {\n req.send();\n }\n\n // event object not received in IE8, at least\n // but we do not use it, still important to note\n function onLoad(/* event */) {\n // When browser does not supports req.timeout, we can\n // have both a load and timeout event, since handled by a dumb setTimeout\n if (timedOut) {\n return;\n }\n\n clearTimeout(reqTimeout);\n\n var out;\n\n try {\n out = {\n body: JSON.parse(req.responseText),\n responseText: req.responseText,\n statusCode: req.status,\n // XDomainRequest does not have any response headers\n headers: req.getAllResponseHeaders && req.getAllResponseHeaders() || {}\n };\n } catch (e) {\n out = new errors.UnparsableJSON({\n more: req.responseText\n });\n }\n\n if (out instanceof errors.UnparsableJSON) {\n reject(out);\n } else {\n resolve(out);\n }\n }\n\n function onError(event) {\n if (timedOut) {\n return;\n }\n\n clearTimeout(reqTimeout);\n\n // error event is trigerred both with XDR/XHR on:\n // - DNS error\n // - unallowed cross domain request\n reject(\n new errors.Network({\n more: event\n })\n );\n }\n\n function onTimeout() {\n timedOut = true;\n req.abort();\n\n reject(new errors.RequestTimeout());\n }\n\n function onConnect() {\n connected = true;\n clearTimeout(reqTimeout);\n reqTimeout = setTimeout(onTimeout, opts.timeouts.complete);\n }\n\n function onProgress() {\n if (!connected) onConnect();\n }\n\n function onReadyStateChange() {\n if (!connected && req.readyState > 1) onConnect();\n }\n });\n };\n\n AlgoliaSearchBrowser.prototype._request.fallback = function requestFallback(url, opts) {\n url = inlineHeaders(url, opts.headers);\n\n return new Promise(function wrapJsonpRequest(resolve, reject) {\n jsonpRequest(url, opts, function jsonpRequestDone(err, content) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(content);\n });\n });\n };\n\n AlgoliaSearchBrowser.prototype._promise = {\n reject: function rejectPromise(val) {\n return Promise.reject(val);\n },\n resolve: function resolvePromise(val) {\n return Promise.resolve(val);\n },\n delay: function delayPromise(ms) {\n return new Promise(function resolveOnTimeout(resolve/* , reject*/) {\n setTimeout(resolve, ms);\n });\n },\n all: function all(promises) {\n return Promise.all(promises);\n }\n };\n\n return algoliasearch;\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = formatDropdownValue;\n\n/* babel-plugin-inline-import './icons/address.svg' */\nvar addressIcon = \"\\n\";\n\n/* babel-plugin-inline-import './icons/city.svg' */\nvar cityIcon = \"\\n\";\n\n/* babel-plugin-inline-import './icons/country.svg' */\nvar countryIcon = \"\\n \\n\\n\";\n\n/* babel-plugin-inline-import './icons/bus.svg' */\nvar busIcon = \"\\n\";\n\n/* babel-plugin-inline-import './icons/train.svg' */\nvar trainIcon = \"\\n \\n\\n\";\n\n/* babel-plugin-inline-import './icons/townhall.svg' */\nvar townhallIcon = \"\\n\";\n\n/* babel-plugin-inline-import './icons/plane.svg' */\nvar planeIcon = \"\\n\";\nvar icons = {\n address: addressIcon,\n city: cityIcon,\n country: countryIcon,\n busStop: busIcon,\n trainStation: trainIcon,\n townhall: townhallIcon,\n airport: planeIcon\n};\n\nfunction formatDropdownValue(_ref) {\n var type = _ref.type,\n highlight = _ref.highlight;\n var name = highlight.name,\n administrative = highlight.administrative,\n city = highlight.city,\n country = highlight.country;\n var out = \"\".concat(icons[type].trim(), \"\\n\").concat(name, \"\\n\\n \").concat([city, administrative, country].filter(function (token) {\n return token !== undefined;\n }).join(', '), \"\").replace(/\\s*\\n\\s*/g, ' ');\n return out;\n}","'use strict';\nmodule.exports = function parseAlgoliaClientVersion(agent) {\n var parsed = agent.match(/Algolia for vanilla JavaScript (\\d+\\.)(\\d+\\.)(\\d+)/);\n if (parsed) return [parsed[1], parsed[2], parsed[3]];\n return undefined;\n};\n","'use strict';\n\nvar specialKeyCodeMap;\n\nspecialKeyCodeMap = {\n 9: 'tab',\n 27: 'esc',\n 37: 'left',\n 39: 'right',\n 13: 'enter',\n 38: 'up',\n 40: 'down'\n};\n\nvar _ = require('../common/utils.js');\nvar DOM = require('../common/dom.js');\nvar EventEmitter = require('./event_emitter.js');\n\n// constructor\n// -----------\n\nfunction Input(o) {\n var that = this;\n var onBlur;\n var onFocus;\n var onKeydown;\n var onInput;\n\n o = o || {};\n\n if (!o.input) {\n _.error('input is missing');\n }\n\n // bound functions\n onBlur = _.bind(this._onBlur, this);\n onFocus = _.bind(this._onFocus, this);\n onKeydown = _.bind(this._onKeydown, this);\n onInput = _.bind(this._onInput, this);\n\n this.$hint = DOM.element(o.hint);\n this.$input = DOM.element(o.input)\n .on('blur.aa', onBlur)\n .on('focus.aa', onFocus)\n .on('keydown.aa', onKeydown);\n\n // if no hint, noop all the hint related functions\n if (this.$hint.length === 0) {\n this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop;\n }\n\n // ie7 and ie8 don't support the input event\n // ie9 doesn't fire the input event when characters are removed\n // not sure if ie10 is compatible\n if (!_.isMsie()) {\n this.$input.on('input.aa', onInput);\n } else {\n this.$input.on('keydown.aa keypress.aa cut.aa paste.aa', function($e) {\n // if a special key triggered this, ignore it\n if (specialKeyCodeMap[$e.which || $e.keyCode]) {\n return;\n }\n\n // give the browser a chance to update the value of the input\n // before checking to see if the query changed\n _.defer(_.bind(that._onInput, that, $e));\n });\n }\n\n // the query defaults to whatever the value of the input is\n // on initialization, it'll most likely be an empty string\n this.query = this.$input.val();\n\n // helps with calculating the width of the input's value\n this.$overflowHelper = buildOverflowHelper(this.$input);\n}\n\n// static methods\n// --------------\n\nInput.normalizeQuery = function(str) {\n // strips leading whitespace and condenses all whitespace\n return (str || '').replace(/^\\s*/g, '').replace(/\\s{2,}/g, ' ');\n};\n\n// instance methods\n// ----------------\n\n_.mixin(Input.prototype, EventEmitter, {\n\n // ### private\n\n _onBlur: function onBlur() {\n this.resetInputValue();\n this.$input.removeAttr('aria-activedescendant');\n this.trigger('blurred');\n },\n\n _onFocus: function onFocus() {\n this.trigger('focused');\n },\n\n _onKeydown: function onKeydown($e) {\n // which is normalized and consistent (but not for ie)\n var keyName = specialKeyCodeMap[$e.which || $e.keyCode];\n\n this._managePreventDefault(keyName, $e);\n if (keyName && this._shouldTrigger(keyName, $e)) {\n this.trigger(keyName + 'Keyed', $e);\n }\n },\n\n _onInput: function onInput() {\n this._checkInputValue();\n },\n\n _managePreventDefault: function managePreventDefault(keyName, $e) {\n var preventDefault;\n var hintValue;\n var inputValue;\n\n switch (keyName) {\n case 'tab':\n hintValue = this.getHint();\n inputValue = this.getInputValue();\n\n preventDefault = hintValue &&\n hintValue !== inputValue &&\n !withModifier($e);\n break;\n\n case 'up':\n case 'down':\n preventDefault = !withModifier($e);\n break;\n\n default:\n preventDefault = false;\n }\n\n if (preventDefault) {\n $e.preventDefault();\n }\n },\n\n _shouldTrigger: function shouldTrigger(keyName, $e) {\n var trigger;\n\n switch (keyName) {\n case 'tab':\n trigger = !withModifier($e);\n break;\n\n default:\n trigger = true;\n }\n\n return trigger;\n },\n\n _checkInputValue: function checkInputValue() {\n var inputValue;\n var areEquivalent;\n var hasDifferentWhitespace;\n\n inputValue = this.getInputValue();\n areEquivalent = areQueriesEquivalent(inputValue, this.query);\n hasDifferentWhitespace = areEquivalent && this.query ?\n this.query.length !== inputValue.length : false;\n\n this.query = inputValue;\n\n if (!areEquivalent) {\n this.trigger('queryChanged', this.query);\n } else if (hasDifferentWhitespace) {\n this.trigger('whitespaceChanged', this.query);\n }\n },\n\n // ### public\n\n focus: function focus() {\n this.$input.focus();\n },\n\n blur: function blur() {\n this.$input.blur();\n },\n\n getQuery: function getQuery() {\n return this.query;\n },\n\n setQuery: function setQuery(query) {\n this.query = query;\n },\n\n getInputValue: function getInputValue() {\n return this.$input.val();\n },\n\n setInputValue: function setInputValue(value, silent) {\n if (typeof value === 'undefined') {\n value = this.query;\n }\n this.$input.val(value);\n\n // silent prevents any additional events from being triggered\n if (silent) {\n this.clearHint();\n } else {\n this._checkInputValue();\n }\n },\n\n expand: function expand() {\n this.$input.attr('aria-expanded', 'true');\n },\n\n collapse: function collapse() {\n this.$input.attr('aria-expanded', 'false');\n },\n\n setActiveDescendant: function setActiveDescendant(activedescendantId) {\n this.$input.attr('aria-activedescendant', activedescendantId);\n },\n\n removeActiveDescendant: function removeActiveDescendant() {\n this.$input.removeAttr('aria-activedescendant');\n },\n\n resetInputValue: function resetInputValue() {\n this.setInputValue(this.query, true);\n },\n\n getHint: function getHint() {\n return this.$hint.val();\n },\n\n setHint: function setHint(value) {\n this.$hint.val(value);\n },\n\n clearHint: function clearHint() {\n this.setHint('');\n },\n\n clearHintIfInvalid: function clearHintIfInvalid() {\n var val;\n var hint;\n var valIsPrefixOfHint;\n var isValid;\n\n val = this.getInputValue();\n hint = this.getHint();\n valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0;\n isValid = val !== '' && valIsPrefixOfHint && !this.hasOverflow();\n\n if (!isValid) {\n this.clearHint();\n }\n },\n\n getLanguageDirection: function getLanguageDirection() {\n return (this.$input.css('direction') || 'ltr').toLowerCase();\n },\n\n hasOverflow: function hasOverflow() {\n // 2 is arbitrary, just picking a small number to handle edge cases\n var constraint = this.$input.width() - 2;\n\n this.$overflowHelper.text(this.getInputValue());\n\n return this.$overflowHelper.width() >= constraint;\n },\n\n isCursorAtEnd: function() {\n var valueLength;\n var selectionStart;\n var range;\n\n valueLength = this.$input.val().length;\n selectionStart = this.$input[0].selectionStart;\n\n if (_.isNumber(selectionStart)) {\n return selectionStart === valueLength;\n } else if (document.selection) {\n // NOTE: this won't work unless the input has focus, the good news\n // is this code should only get called when the input has focus\n range = document.selection.createRange();\n range.moveStart('character', -valueLength);\n\n return valueLength === range.text.length;\n }\n\n return true;\n },\n\n destroy: function destroy() {\n this.$hint.off('.aa');\n this.$input.off('.aa');\n\n this.$hint = this.$input = this.$overflowHelper = null;\n }\n});\n\n// helper functions\n// ----------------\n\nfunction buildOverflowHelper($input) {\n return DOM.element('
')\n    .css({\n      // position helper off-screen\n      position: 'absolute',\n      visibility: 'hidden',\n      // avoid line breaks and whitespace collapsing\n      whiteSpace: 'pre',\n      // use same font css as input to calculate accurate width\n      fontFamily: $input.css('font-family'),\n      fontSize: $input.css('font-size'),\n      fontStyle: $input.css('font-style'),\n      fontVariant: $input.css('font-variant'),\n      fontWeight: $input.css('font-weight'),\n      wordSpacing: $input.css('word-spacing'),\n      letterSpacing: $input.css('letter-spacing'),\n      textIndent: $input.css('text-indent'),\n      textRendering: $input.css('text-rendering'),\n      textTransform: $input.css('text-transform')\n    })\n    .insertAfter($input);\n}\n\nfunction areQueriesEquivalent(a, b) {\n  return Input.normalizeQuery(a) === Input.normalizeQuery(b);\n}\n\nfunction withModifier($e) {\n  return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey;\n}\n\nmodule.exports = Input;\n","'use strict';\n\nvar datasetKey = 'aaDataset';\nvar valueKey = 'aaValue';\nvar datumKey = 'aaDatum';\n\nvar _ = require('../common/utils.js');\nvar DOM = require('../common/dom.js');\nvar html = require('./html.js');\nvar css = require('./css.js');\nvar EventEmitter = require('./event_emitter.js');\n\n// constructor\n// -----------\n\nfunction Dataset(o) {\n  o = o || {};\n  o.templates = o.templates || {};\n\n  if (!o.source) {\n    _.error('missing source');\n  }\n\n  if (o.name && !isValidName(o.name)) {\n    _.error('invalid dataset name: ' + o.name);\n  }\n\n  // tracks the last query the dataset was updated for\n  this.query = null;\n  this._isEmpty = true;\n\n  this.highlight = !!o.highlight;\n  this.name = typeof o.name === 'undefined' || o.name === null ? _.getUniqueId() : o.name;\n\n  this.source = o.source;\n  this.displayFn = getDisplayFn(o.display || o.displayKey);\n\n  this.debounce = o.debounce;\n\n  this.cache = o.cache !== false;\n\n  this.templates = getTemplates(o.templates, this.displayFn);\n\n  this.css = _.mixin({}, css, o.appendTo ? css.appendTo : {});\n  this.cssClasses = o.cssClasses = _.mixin({}, css.defaultClasses, o.cssClasses || {});\n  this.cssClasses.prefix =\n    o.cssClasses.formattedPrefix || _.formatPrefix(this.cssClasses.prefix, this.cssClasses.noPrefix);\n\n  var clazz = _.className(this.cssClasses.prefix, this.cssClasses.dataset);\n  this.$el = o.$menu && o.$menu.find(clazz + '-' + this.name).length > 0 ?\n    DOM.element(o.$menu.find(clazz + '-' + this.name)[0]) :\n    DOM.element(\n      html.dataset.replace('%CLASS%', this.name)\n        .replace('%PREFIX%', this.cssClasses.prefix)\n        .replace('%DATASET%', this.cssClasses.dataset)\n    );\n\n  this.$menu = o.$menu;\n  this.clearCachedSuggestions();\n}\n\n// static methods\n// --------------\n\nDataset.extractDatasetName = function extractDatasetName(el) {\n  return DOM.element(el).data(datasetKey);\n};\n\nDataset.extractValue = function extractValue(el) {\n  return DOM.element(el).data(valueKey);\n};\n\nDataset.extractDatum = function extractDatum(el) {\n  var datum = DOM.element(el).data(datumKey);\n  if (typeof datum === 'string') {\n    // Zepto has an automatic deserialization of the\n    // JSON encoded data attribute\n    datum = JSON.parse(datum);\n  }\n  return datum;\n};\n\n// instance methods\n// ----------------\n\n_.mixin(Dataset.prototype, EventEmitter, {\n\n  // ### private\n\n  _render: function render(query, suggestions) {\n    if (!this.$el) {\n      return;\n    }\n    var that = this;\n\n    var hasSuggestions;\n    var renderArgs = [].slice.call(arguments, 2);\n    this.$el.empty();\n\n    hasSuggestions = suggestions && suggestions.length;\n    this._isEmpty = !hasSuggestions;\n\n    if (!hasSuggestions && this.templates.empty) {\n      this.$el\n        .html(getEmptyHtml.apply(this, renderArgs))\n        .prepend(that.templates.header ? getHeaderHtml.apply(this, renderArgs) : null)\n        .append(that.templates.footer ? getFooterHtml.apply(this, renderArgs) : null);\n    } else if (hasSuggestions) {\n      this.$el\n        .html(getSuggestionsHtml.apply(this, renderArgs))\n        .prepend(that.templates.header ? getHeaderHtml.apply(this, renderArgs) : null)\n        .append(that.templates.footer ? getFooterHtml.apply(this, renderArgs) : null);\n    } else if (suggestions && !Array.isArray(suggestions)) {\n      throw new TypeError('suggestions must be an array');\n    }\n\n    if (this.$menu) {\n      this.$menu.addClass(\n        this.cssClasses.prefix + (hasSuggestions ? 'with' : 'without') + '-' + this.name\n      ).removeClass(\n        this.cssClasses.prefix + (hasSuggestions ? 'without' : 'with') + '-' + this.name\n      );\n    }\n\n    this.trigger('rendered', query);\n\n    function getEmptyHtml() {\n      var args = [].slice.call(arguments, 0);\n      args = [{query: query, isEmpty: true}].concat(args);\n      return that.templates.empty.apply(this, args);\n    }\n\n    function getSuggestionsHtml() {\n      var args = [].slice.call(arguments, 0);\n      var $suggestions;\n      var nodes;\n      var self = this;\n\n      var suggestionsHtml = html.suggestions.\n        replace('%PREFIX%', this.cssClasses.prefix).\n        replace('%SUGGESTIONS%', this.cssClasses.suggestions);\n      $suggestions = DOM\n        .element(suggestionsHtml)\n        .css(this.css.suggestions);\n\n      // jQuery#append doesn't support arrays as the first argument\n      // until version 1.8, see http://bugs.jquery.com/ticket/11231\n      nodes = _.map(suggestions, getSuggestionNode);\n      $suggestions.append.apply($suggestions, nodes);\n\n      return $suggestions;\n\n      function getSuggestionNode(suggestion) {\n        var $el;\n\n        var suggestionHtml = html.suggestion.\n          replace('%PREFIX%', self.cssClasses.prefix).\n          replace('%SUGGESTION%', self.cssClasses.suggestion);\n        $el = DOM.element(suggestionHtml)\n          .attr({\n            role: 'option',\n            id: ['option', Math.floor(Math.random() * 100000000)].join('-')\n          })\n          .append(that.templates.suggestion.apply(this, [suggestion].concat(args)));\n\n        $el.data(datasetKey, that.name);\n        $el.data(valueKey, that.displayFn(suggestion) || undefined); // this led to undefined return value\n        $el.data(datumKey, JSON.stringify(suggestion));\n        $el.children().each(function() { DOM.element(this).css(self.css.suggestionChild); });\n\n        return $el;\n      }\n    }\n\n    function getHeaderHtml() {\n      var args = [].slice.call(arguments, 0);\n      args = [{query: query, isEmpty: !hasSuggestions}].concat(args);\n      return that.templates.header.apply(this, args);\n    }\n\n    function getFooterHtml() {\n      var args = [].slice.call(arguments, 0);\n      args = [{query: query, isEmpty: !hasSuggestions}].concat(args);\n      return that.templates.footer.apply(this, args);\n    }\n  },\n\n  // ### public\n\n  getRoot: function getRoot() {\n    return this.$el;\n  },\n\n  update: function update(query) {\n    function handleSuggestions(suggestions) {\n      // if the update has been canceled or if the query has changed\n      // do not render the suggestions as they've become outdated\n      if (!this.canceled && query === this.query) {\n        // concat all the other arguments that could have been passed\n        // to the render function, and forward them to _render\n        var extraArgs = [].slice.call(arguments, 1);\n        this.cacheSuggestions(query, suggestions, extraArgs);\n        this._render.apply(this, [query, suggestions].concat(extraArgs));\n      }\n    }\n\n    this.query = query;\n    this.canceled = false;\n\n    if (this.shouldFetchFromCache(query)) {\n      handleSuggestions.apply(this, [this.cachedSuggestions].concat(this.cachedRenderExtraArgs));\n    } else {\n      var that = this;\n      var execSource = function() {\n        // When the call is debounced the condition avoid to do a useless\n        // request with the last character when the input has been cleared\n        if (!that.canceled) {\n          that.source(query, handleSuggestions.bind(that));\n        }\n      };\n\n      if (this.debounce) {\n        var later = function() {\n          that.debounceTimeout = null;\n          execSource();\n        };\n        clearTimeout(this.debounceTimeout);\n        this.debounceTimeout = setTimeout(later, this.debounce);\n      } else {\n        execSource();\n      }\n    }\n  },\n\n  cacheSuggestions: function cacheSuggestions(query, suggestions, extraArgs) {\n    this.cachedQuery = query;\n    this.cachedSuggestions = suggestions;\n    this.cachedRenderExtraArgs = extraArgs;\n  },\n\n  shouldFetchFromCache: function shouldFetchFromCache(query) {\n    return this.cache &&\n      this.cachedQuery === query &&\n      this.cachedSuggestions &&\n      this.cachedSuggestions.length;\n  },\n\n  clearCachedSuggestions: function clearCachedSuggestions() {\n    delete this.cachedQuery;\n    delete this.cachedSuggestions;\n    delete this.cachedRenderExtraArgs;\n  },\n\n  cancel: function cancel() {\n    this.canceled = true;\n  },\n\n  clear: function clear() {\n    this.cancel();\n    this.$el.empty();\n    this.trigger('rendered', '');\n  },\n\n  isEmpty: function isEmpty() {\n    return this._isEmpty;\n  },\n\n  destroy: function destroy() {\n    this.clearCachedSuggestions();\n    this.$el = null;\n  }\n});\n\n// helper functions\n// ----------------\n\nfunction getDisplayFn(display) {\n  display = display || 'value';\n\n  return _.isFunction(display) ? display : displayFn;\n\n  function displayFn(obj) {\n    return obj[display];\n  }\n}\n\nfunction getTemplates(templates, displayFn) {\n  return {\n    empty: templates.empty && _.templatify(templates.empty),\n    header: templates.header && _.templatify(templates.header),\n    footer: templates.footer && _.templatify(templates.footer),\n    suggestion: templates.suggestion || suggestionTemplate\n  };\n\n  function suggestionTemplate(context) {\n    return '

' + displayFn(context) + '

';\n }\n}\n\nfunction isValidName(str) {\n // dashes, underscores, letters, and numbers\n return (/^[_a-zA-Z0-9-]+$/).test(str);\n}\n\nmodule.exports = Dataset;\n","'use strict';\n\n// This file hosts our error definitions\n// We use custom error \"types\" so that we can act on them when we need it\n// e.g.: if error instanceof errors.UnparsableJSON then..\n\nvar inherits = require('inherits');\n\nfunction AlgoliaSearchError(message, extraProperties) {\n var forEach = require('foreach');\n\n var error = this;\n\n // try to get a stacktrace\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor);\n } else {\n error.stack = (new Error()).stack || 'Cannot get a stacktrace, browser is too old';\n }\n\n this.name = 'AlgoliaSearchError';\n this.message = message || 'Unknown error';\n\n if (extraProperties) {\n forEach(extraProperties, function addToErrorObject(value, key) {\n error[key] = value;\n });\n }\n}\n\ninherits(AlgoliaSearchError, Error);\n\nfunction createCustomError(name, message) {\n function AlgoliaSearchCustomError() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n // custom message not set, use default\n if (typeof args[0] !== 'string') {\n args.unshift(message);\n }\n\n AlgoliaSearchError.apply(this, args);\n this.name = 'AlgoliaSearch' + name + 'Error';\n }\n\n inherits(AlgoliaSearchCustomError, AlgoliaSearchError);\n\n return AlgoliaSearchCustomError;\n}\n\n// late exports to let various fn defs and inherits take place\nmodule.exports = {\n AlgoliaSearchError: AlgoliaSearchError,\n UnparsableJSON: createCustomError(\n 'UnparsableJSON',\n 'Could not parse the incoming response as JSON, see err.more for details'\n ),\n RequestTimeout: createCustomError(\n 'RequestTimeout',\n 'Request timed out before getting a response'\n ),\n Network: createCustomError(\n 'Network',\n 'Network issue, see err.more for details'\n ),\n JSONPScriptFail: createCustomError(\n 'JSONPScriptFail',\n '","import mod from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--12-1!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Places.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--12-1!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Places.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Places.vue?vue&type=template&id=a737c69a&\"\nimport script from \"./Places.vue?vue&type=script&lang=js&\"\nexport * from \"./Places.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = buildSearchMethod;\n\nvar errors = require('./errors.js');\n\n/**\n * Creates a search method to be used in clients\n * @param {string} queryParam the name of the attribute used for the query\n * @param {string} url the url\n * @return {function} the search method\n */\nfunction buildSearchMethod(queryParam, url) {\n /**\n * The search method. Prepares the data and send the query to Algolia.\n * @param {string} query the string used for query search\n * @param {object} args additional parameters to send with the search\n * @param {function} [callback] the callback to be called with the client gets the answer\n * @return {undefined|Promise} If the callback is not provided then this methods returns a Promise\n */\n return function search(query, args, callback) {\n // warn V2 users on how to search\n if (typeof query === 'function' && typeof args === 'object' ||\n typeof callback === 'object') {\n // .search(query, params, cb)\n // .search(cb, params)\n throw new errors.AlgoliaSearchError('index.search usage is index.search(query, params, cb)');\n }\n\n // Normalizing the function signature\n if (arguments.length === 0 || typeof query === 'function') {\n // Usage : .search(), .search(cb)\n callback = query;\n query = '';\n } else if (arguments.length === 1 || typeof args === 'function') {\n // Usage : .search(query/args), .search(query, cb)\n callback = args;\n args = undefined;\n }\n // At this point we have 3 arguments with values\n\n // Usage : .search(args) // careful: typeof null === 'object'\n if (typeof query === 'object' && query !== null) {\n args = query;\n query = undefined;\n } else if (query === undefined || query === null) { // .search(undefined/null)\n query = '';\n }\n\n var params = '';\n\n if (query !== undefined) {\n params += queryParam + '=' + encodeURIComponent(query);\n }\n\n var additionalUA;\n if (args !== undefined) {\n if (args.additionalUA) {\n additionalUA = args.additionalUA;\n delete args.additionalUA;\n }\n // `_getSearchParams` will augment params, do not be fooled by the = versus += from previous if\n params = this.as._getSearchParams(args, params);\n }\n\n\n return this._search(params, url, callback, additionalUA);\n };\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _default = {\n multiContainers: \"Algolia Places: 'container' must point to a single element.\\nExample: instantiate the library twice if you want to bind two .\\n\\nSee https://community.algolia.com/places/documentation.html#api-options-container\",\n badContainer: \"Algolia Places: 'container' must point to an element.\\n\\nSee https://community.algolia.com/places/documentation.html#api-options-container\",\n rateLimitReached: \"Algolia Places: Current rate limit reached.\\n\\nSign up for a free 100,000 queries/month account at\\nhttps://www.algolia.com/users/sign_up/places.\\n\\nOr upgrade your 100,000 queries/month plan by contacting us at\\nhttps://community.algolia.com/places/contact.html.\",\n invalidCredentials: \"The APP ID or API key provided is invalid.\",\n invalidAppId: \"Your APP ID is invalid. A Places APP ID starts with 'pl'. You must create a valid Places app first.\\n\\nCreate a free Places app here: https://www.algolia.com/users/sign_up/places\"\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createAutocompleteSource;\n\nvar _configure = _interopRequireDefault(require(\"./configure\"));\n\nvar _formatHit = _interopRequireDefault(require(\"./formatHit\"));\n\nvar _version = _interopRequireDefault(require(\"./version\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction createAutocompleteSource(_ref) {\n var algoliasearch = _ref.algoliasearch,\n clientOptions = _ref.clientOptions,\n apiKey = _ref.apiKey,\n appId = _ref.appId,\n hitsPerPage = _ref.hitsPerPage,\n aroundLatLng = _ref.aroundLatLng,\n aroundRadius = _ref.aroundRadius,\n aroundLatLngViaIP = _ref.aroundLatLngViaIP,\n insideBoundingBox = _ref.insideBoundingBox,\n insidePolygon = _ref.insidePolygon,\n getRankingInfo = _ref.getRankingInfo,\n countries = _ref.countries,\n formatInputValue = _ref.formatInputValue,\n _ref$computeQueryPara = _ref.computeQueryParams,\n computeQueryParams = _ref$computeQueryPara === void 0 ? function (params) {\n return params;\n } : _ref$computeQueryPara,\n _ref$useDeviceLocatio = _ref.useDeviceLocation,\n useDeviceLocation = _ref$useDeviceLocatio === void 0 ? false : _ref$useDeviceLocatio,\n _ref$language = _ref.language,\n language = _ref$language === void 0 ? navigator.language.split('-')[0] : _ref$language,\n _ref$onHits = _ref.onHits,\n onHits = _ref$onHits === void 0 ? function () {} : _ref$onHits,\n _ref$onError = _ref.onError,\n onError = _ref$onError === void 0 ? function (e) {\n throw e;\n } : _ref$onError,\n onRateLimitReached = _ref.onRateLimitReached,\n onInvalidCredentials = _ref.onInvalidCredentials,\n type = _ref.type;\n var placesClient = algoliasearch.initPlaces(appId, apiKey, clientOptions);\n placesClient.as.addAlgoliaAgent(\"Algolia Places \".concat(_version[\"default\"]));\n var configuration = (0, _configure[\"default\"])({\n hitsPerPage: hitsPerPage,\n type: type,\n countries: countries,\n language: language,\n aroundLatLng: aroundLatLng,\n aroundRadius: aroundRadius,\n aroundLatLngViaIP: aroundLatLngViaIP,\n insideBoundingBox: insideBoundingBox,\n insidePolygon: insidePolygon,\n getRankingInfo: getRankingInfo,\n formatInputValue: formatInputValue,\n computeQueryParams: computeQueryParams,\n useDeviceLocation: useDeviceLocation,\n onHits: onHits,\n onError: onError,\n onRateLimitReached: onRateLimitReached,\n onInvalidCredentials: onInvalidCredentials\n });\n var params = configuration.params;\n var controls = configuration.controls;\n var userCoords;\n var tracker = null;\n\n if (controls.useDeviceLocation) {\n tracker = navigator.geolocation.watchPosition(function (_ref2) {\n var coords = _ref2.coords;\n userCoords = \"\".concat(coords.latitude, \",\").concat(coords.longitude);\n });\n }\n\n function searcher(query, cb) {\n var searchParams = _objectSpread({}, params, {\n query: query\n });\n\n if (userCoords) {\n searchParams.aroundLatLng = userCoords;\n }\n\n return placesClient.search(controls.computeQueryParams(searchParams)).then(function (content) {\n var hits = content.hits.map(function (hit, hitIndex) {\n return (0, _formatHit[\"default\"])({\n formatInputValue: controls.formatInputValue,\n hit: hit,\n hitIndex: hitIndex,\n query: query,\n rawAnswer: content\n });\n });\n controls.onHits({\n hits: hits,\n query: query,\n rawAnswer: content\n });\n return hits;\n }).then(cb)[\"catch\"](function (e) {\n if (e.statusCode === 403 && e.message === 'Invalid Application-ID or API key') {\n controls.onInvalidCredentials();\n return;\n } else if (e.statusCode === 429) {\n controls.onRateLimitReached();\n return;\n }\n\n controls.onError(e);\n });\n }\n\n searcher.configure = function (partial) {\n var updated = (0, _configure[\"default\"])(_objectSpread({}, params, controls, partial));\n params = updated.params;\n controls = updated.controls;\n\n if (controls.useDeviceLocation && tracker === null) {\n tracker = navigator.geolocation.watchPosition(function (_ref3) {\n var coords = _ref3.coords;\n userCoords = \"\".concat(coords.latitude, \",\").concat(coords.longitude);\n });\n } else if (!controls.useDeviceLocation && tracker !== null) {\n navigator.geolocation.clearWatch(tracker);\n tracker = null;\n userCoords = null;\n }\n };\n\n return searcher;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = formatHit;\n\nvar _findCountryCode = _interopRequireDefault(require(\"./findCountryCode\"));\n\nvar _findType = _interopRequireDefault(require(\"./findType\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getBestHighlightedForm(highlightedValues) {\n var defaultValue = highlightedValues[0].value; // collect all other matches\n\n var bestAttributes = [];\n\n for (var i = 1; i < highlightedValues.length; ++i) {\n if (highlightedValues[i].matchLevel !== 'none') {\n bestAttributes.push({\n index: i,\n words: highlightedValues[i].matchedWords\n });\n }\n } // no matches in this attribute, retrieve first value\n\n\n if (bestAttributes.length === 0) {\n return defaultValue;\n } // sort the matches by `desc(words), asc(index)`\n\n\n bestAttributes.sort(function (a, b) {\n if (a.words > b.words) {\n return -1;\n } else if (a.words < b.words) {\n return 1;\n }\n\n return a.index - b.index;\n }); // and append the best match to the first value\n\n return bestAttributes[0].index === 0 ? \"\".concat(defaultValue, \" (\").concat(highlightedValues[bestAttributes[1].index].value, \")\") : \"\".concat(highlightedValues[bestAttributes[0].index].value, \" (\").concat(defaultValue, \")\");\n}\n\nfunction getBestPostcode(postcodes, highlightedPostcodes) {\n var defaultValue = highlightedPostcodes[0].value; // collect all other matches\n\n var bestAttributes = [];\n\n for (var i = 1; i < highlightedPostcodes.length; ++i) {\n if (highlightedPostcodes[i].matchLevel !== 'none') {\n bestAttributes.push({\n index: i,\n words: highlightedPostcodes[i].matchedWords\n });\n }\n } // no matches in this attribute, retrieve first value\n\n\n if (bestAttributes.length === 0) {\n return {\n postcode: postcodes[0],\n highlightedPostcode: defaultValue\n };\n } // sort the matches by `desc(words)`\n\n\n bestAttributes.sort(function (a, b) {\n if (a.words > b.words) {\n return -1;\n } else if (a.words < b.words) {\n return 1;\n }\n\n return a.index - b.index;\n });\n var postcode = postcodes[bestAttributes[0].index];\n return {\n postcode: postcode,\n highlightedPostcode: highlightedPostcodes[bestAttributes[0].index].value\n };\n}\n\nfunction formatHit(_ref) {\n var formatInputValue = _ref.formatInputValue,\n hit = _ref.hit,\n hitIndex = _ref.hitIndex,\n query = _ref.query,\n rawAnswer = _ref.rawAnswer;\n\n try {\n var name = hit.locale_names[0];\n var country = hit.country;\n var administrative = hit.administrative && hit.administrative[0] !== name ? hit.administrative[0] : undefined;\n var city = hit.city && hit.city[0] !== name ? hit.city[0] : undefined;\n var suburb = hit.suburb && hit.suburb[0] !== name ? hit.suburb[0] : undefined;\n var county = hit.county && hit.county[0] !== name ? hit.county[0] : undefined;\n\n var _ref2 = hit.postcode && hit.postcode.length ? getBestPostcode(hit.postcode, hit._highlightResult.postcode) : {\n postcode: undefined,\n highlightedPostcode: undefined\n },\n postcode = _ref2.postcode,\n highlightedPostcode = _ref2.highlightedPostcode;\n\n var highlight = {\n name: getBestHighlightedForm(hit._highlightResult.locale_names),\n city: city ? getBestHighlightedForm(hit._highlightResult.city) : undefined,\n administrative: administrative ? getBestHighlightedForm(hit._highlightResult.administrative) : undefined,\n country: country ? hit._highlightResult.country.value : undefined,\n suburb: suburb ? getBestHighlightedForm(hit._highlightResult.suburb) : undefined,\n county: county ? getBestHighlightedForm(hit._highlightResult.county) : undefined,\n postcode: highlightedPostcode\n };\n var suggestion = {\n name: name,\n administrative: administrative,\n county: county,\n city: city,\n suburb: suburb,\n country: country,\n countryCode: (0, _findCountryCode[\"default\"])(hit._tags),\n type: (0, _findType[\"default\"])(hit._tags),\n latlng: {\n lat: hit._geoloc.lat,\n lng: hit._geoloc.lng\n },\n postcode: postcode,\n postcodes: hit.postcode && hit.postcode.length ? hit.postcode : undefined\n }; // this is the value to put inside the script loading error\n if (!cbCalled) {\n opts.debug('JSONP: Fail. Script loaded but did not call the callback');\n clean();\n cb(new errors.JSONPScriptFail());\n }\n }\n\n function readystatechange() {\n if (this.readyState === 'loaded' || this.readyState === 'complete') {\n success();\n }\n }\n\n function clean() {\n clearTimeout(ontimeout);\n script.onload = null;\n script.onreadystatechange = null;\n script.onerror = null;\n head.removeChild(script);\n }\n\n function removeGlobals() {\n try {\n delete window[cbName];\n delete window[cbName + '_loaded'];\n } catch (e) {\n window[cbName] = window[cbName + '_loaded'] = undefined;\n }\n }\n\n function timeout() {\n opts.debug('JSONP: Script timeout');\n timedOut = true;\n clean();\n cb(new errors.RequestTimeout());\n }\n\n function error() {\n opts.debug('JSONP: Script error');\n\n if (done || timedOut) {\n return;\n }\n\n clean();\n cb(new errors.JSONPScriptError());\n }\n}\n"],"sourceRoot":""}