{"version":3,"sources":["events.js","geolocation.js","get.js","id-generator.js","Polyfill.js","showHide.js"],"names":["Event","sender","_sender","attach","_listeners","listener","push","args","forEach","notify","getListeners","EventAttacher","eventHandlers","attachEvent","event","handlerName","isValid","str","test","Geolocation","getLocation","options","geolocation","getCurrentPosition","success","error","navigator","window","JOI","ids","generateID","type","id","length","createMethod","_toggle","DOMTokenList","self","document","createElement","token","arguments","original","classList","contains","method","prototype","len","i","toggle","call","this","testElement","force","view","classListProp","protoProp","elemCtrProto","Element","objCtr","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","DOMEx","message","DOMException","checkTokenAndGetIndex","ClassList","elem","classes","getAttribute","trimmedClasses","split","_updateClassName","classListGetter","setAttribute","toString","classListProto","Error","add","tokens","l","updated","remove","splice","index","result","join","defineProperty","enumerable","configurable","get","number","classListPropDesc","ex","__defineGetter__","source","Object","nextKey","output","target","TypeError","hasOwnProperty","isArray","x","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$queue","lib$es6$promise$asap$$len","lib$es6$promise$utils$$isArray","lib$es6$promise$asap$$asap","callback","arg","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$setScheduler","lib$es6$promise$asap$$browserWindow","undefined","lib$es6$promise$asap$$browserGlobal","lib$es6$promise$asap$$BrowserMutationObserver","MutationObserver","WebKitMutationObserver","process","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$useSetTimeout","channel","lib$es6$promise$asap$$useMessageChannel","port1","vertx","lib$es6$promise$asap$$attemptVertx","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$useMutationObserver","data","lib$es6$promise$$internal$$resolve","parent","iterations","nextTick","MessageChannel","onmessage","createTextNode","observer","observe","node","characterData","lib$es6$promise$$internal$$PROMISE_ID","port2","postMessage","require","onFulfillment","onRejection","child","constructor","lib$es6$promise$$internal$$noop","lib$es6$promise$$internal$$subscribe","lib$es6$promise$$internal$$makePromise","state","_state","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$resolve","lib$es6$promise$$internal$$invokeCallback","_result","object","Constructor","lib$es6$promise$promise$resolve$$default","random","lib$es6$promise$$internal$$PENDING","lib$es6$promise$$internal$$REJECTED","lib$es6$promise$$internal$$FULFILLED","promise","lib$es6$promise$$internal$$selfFulfillment","substring","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$getThen","then","thenable","sealed","lib$es6$promise$$internal$$fulfill","value","fulfillmentHandler","rejectionHandler","e","lib$es6$promise$$internal$$reject","reason","maybeThenable","lib$es6$promise$utils$$isFunction","lib$es6$promise$$internal$$handleForeignThenable","_typeof","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$TRY_CATCH_ERROR","hasCallback","succeeded","failed","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$id","entries","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$race","resolve","reject","lib$es6$promise$promise$reject$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$$default","lib$es6$promise$promise$$Promise","lib$es6$promise$promise$$needsResolver","resolver","lib$es6$promise$$internal$$initializePromise","lib$es6$promise$promise$$needsNew","all","lib$es6$promise$enumerator$$default","race","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","c","_instanceConstructor","lib$es6$promise$enumerator$$Enumerator","input","_settledAt","entry","_remaining","lib$es6$promise$$internal$$handleMaybeThenable","_input","_willSettleAt","_enumerate","_eachEntry","enumerator","global","Function","local","lib$es6$promise$umd$$ES6Promise","lib$es6$promise$polyfill$$default","vendors","requestAnimationFrame","Date","getTime","timeToCall","Promise","P","cast","descriptor","define","attributes","module","n0","toUpperCase","charAt","lastTime","attribute","name","element","currTime","bind","Math","max","setTimeout","set","cancelAnimationFrame","clearTimeout","documentElement","dataset","getOwnPropertyDescriptor","searchParams","map","arrayBuffer","getter","setter","removeAttribute","propName","substr","items","shift","iterator","headers","methods","redirectStatuses","normalizeName","list","toLowerCase","normalizeValue","values","iteratorFor","next","has","support","Symbol","Headers","append","getOwnPropertyNames","_bodyText","body","bodyUsed","fileReaderReady","reader","_bodyBlob","blob","FileReader","rejected","Body","_initBody","_bodyInit","readBlobAsArrayBuffer","Blob","isPrototypeOf","FormData","_bodyFormData","URLSearchParams","ArrayBuffer","consumed","upcased","readAsText","url","credentials","text","formData","decode","json","parse","Request","bytes","decodeURIComponent","mode","key","head","referrer","statusText","bodyInit","Response","redirect","status","ok","location","getAll","onload","onerror","thisArg","readAsArrayBuffer","keys","readBlobAsText","clone","request","response","responseURL","RangeError","xhr","getAllResponseHeaders","fetch","appVersion","XDomainRequest","xdr","init","ontimeout","XMLHttpRequest","responseText","open","onprogress","send","withCredentials","responseType","header","getResponseHeader","setRequestHeader","polyfill","showHide","elementClick","addEventListener","stopPropagation","activeElement","parentNode","className","show","blockEvents","hide","sa","time","blockPreceedingEvents"],"mappings":"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","file":"helpers.min.js","sourcesContent":["const Event = (sender) => {\r\n const _sender = sender;\r\n const _listeners = [];\r\n return {\r\n attach: function(listener) {\r\n _listeners.push(listener);\r\n },\r\n notify: function(args) {\r\n _listeners.forEach(listener => {\r\n listener(args, _sender);\r\n })\r\n },\r\n getListeners: () => _listeners\r\n }\r\n}\r\n\r\nconst EventAttacher = (eventHandlers) => {\r\n return {\r\n attachEvent: (event, handlerName) => {\r\n event.attach(eventHandlers[handlerName]);\r\n }\r\n }\r\n}\r\n\r\nfunction isValid(str) {\r\n return !/[~`!#$%\\^&*+=\\\\[\\]\\\\';/{}|\\\\\":<>\\?]/g.test(str);\r\n}","var Geolocation = (function() {\r\n function getLocation(options) {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(options.success, options.error);\r\n } else {\r\n alert('Geolocation er ikke understøttet i din browser');\r\n }\r\n }\r\n function showPosition(postion) {\r\n\r\n }\r\n\r\n return {\r\n getLocation: getLocation\r\n }\r\n})();\r\n","//'use strict';\r\n//function get(url) {\r\n\r\n// // Creating a promise\r\n// var promise = new Promise(function (resolve, reject) {\r\n\r\n// // Instantiates the XMLHttpRequest\r\n// var client = new XMLHttpRequest();\r\n\r\n// client.open('GET', url);\r\n// client.send();\r\n\r\n// client.onload = function () {\r\n// if (this.status >= 200 && this.status < 300) {\r\n// // Performs the function \"resolve\" when this.status is equal to 2xx\r\n// resolve(this.response);\r\n// } else {\r\n// // Performs the function \"reject\" when this.status is different than 2xx\r\n// reject(this.statusText);\r\n// }\r\n// };\r\n// client.onerror = function () {\r\n// reject(this.statusText);\r\n// };\r\n// });\r\n\r\n// // Return the promise\r\n// return promise;\r\n//}","window.JOI = {};\r\nwindow.JOI.ids = [];\r\n\r\nconst generateID = (type) => {\r\n let id = type + window.JOI.ids.length;\r\n window.JOI.ids.push(id);\r\n return id;\r\n}\r\n","(function () {\r\n /* \r\n * classList.js: Cross-browser full element.classList implementation.\r\n * 2014-07-23\r\n *\r\n * By Eli Grey, http://eligrey.com\r\n * Public Domain.\r\n * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\r\n */\r\n\r\n /*global self, document, DOMException */\r\n\r\n /*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/\r\n\r\n if (\"document\" in self) {\r\n\r\n // Full polyfill for browsers with no classList support\r\n if (!(\"classList\" in document.createElement(\"_\"))) {\r\n\r\n (function (view) {\r\n\r\n \"use strict\";\r\n\r\n if (!('Element' in view)) return;\r\n\r\n var\r\n classListProp = \"classList\"\r\n , protoProp = \"prototype\"\r\n , elemCtrProto = view.Element[protoProp]\r\n , objCtr = Object\r\n , strTrim = String[protoProp].trim || function () {\r\n return this.replace(/^\\s+|\\s+$/g, \"\");\r\n }\r\n , arrIndexOf = Array[protoProp].indexOf || function (item) {\r\n var\r\n i = 0\r\n , len = this.length\r\n ;\r\n for (; i < len; i++) {\r\n if (i in this && this[i] === item) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n // Vendors: please allow content code to instantiate DOMExceptions\r\n , DOMEx = function (type, message) {\r\n this.name = type;\r\n this.code = DOMException[type];\r\n this.message = message;\r\n }\r\n , checkTokenAndGetIndex = function (classList, token) {\r\n if (token === \"\") {\r\n throw new DOMEx(\r\n \"SYNTAX_ERR\"\r\n , \"An invalid or illegal string was specified\"\r\n );\r\n }\r\n if (/\\s/.test(token)) {\r\n throw new DOMEx(\r\n \"INVALID_CHARACTER_ERR\"\r\n , \"String contains an invalid character\"\r\n );\r\n }\r\n return arrIndexOf.call(classList, token);\r\n }\r\n , ClassList = function (elem) {\r\n var\r\n trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\r\n , classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\r\n , i = 0\r\n , len = classes.length\r\n ;\r\n for (; i < len; i++) {\r\n this.push(classes[i]);\r\n }\r\n this._updateClassName = function () {\r\n elem.setAttribute(\"class\", this.toString());\r\n };\r\n }\r\n , classListProto = ClassList[protoProp] = []\r\n , classListGetter = function () {\r\n return new ClassList(this);\r\n }\r\n ;\r\n // Most DOMException implementations don't allow calling DOMException's toString()\r\n // on non-DOMExceptions. Error's toString() is sufficient here.\r\n DOMEx[protoProp] = Error[protoProp];\r\n classListProto.item = function (i) {\r\n return this[i] || null;\r\n };\r\n classListProto.contains = function (token) {\r\n token += \"\";\r\n return checkTokenAndGetIndex(this, token) !== -1;\r\n };\r\n classListProto.add = function () {\r\n var\r\n tokens = arguments\r\n , i = 0\r\n , l = tokens.length\r\n , token\r\n , updated = false\r\n ;\r\n do {\r\n token = tokens[i] + \"\";\r\n if (checkTokenAndGetIndex(this, token) === -1) {\r\n this.push(token);\r\n updated = true;\r\n }\r\n }\r\n while (++i < l);\r\n\r\n if (updated) {\r\n this._updateClassName();\r\n }\r\n };\r\n classListProto.remove = function () {\r\n var\r\n tokens = arguments\r\n , i = 0\r\n , l = tokens.length\r\n , token\r\n , updated = false\r\n , index\r\n ;\r\n do {\r\n token = tokens[i] + \"\";\r\n index = checkTokenAndGetIndex(this, token);\r\n while (index !== -1) {\r\n this.splice(index, 1);\r\n updated = true;\r\n index = checkTokenAndGetIndex(this, token);\r\n }\r\n }\r\n while (++i < l);\r\n\r\n if (updated) {\r\n this._updateClassName();\r\n }\r\n };\r\n classListProto.toggle = function (token, force) {\r\n token += \"\";\r\n\r\n var\r\n result = this.contains(token)\r\n , method = result ?\r\n force !== true && \"remove\"\r\n :\r\n force !== false && \"add\"\r\n ;\r\n\r\n if (method) {\r\n this[method](token);\r\n }\r\n\r\n if (force === true || force === false) {\r\n return force;\r\n } else {\r\n return !result;\r\n }\r\n };\r\n classListProto.toString = function () {\r\n return this.join(\" \");\r\n };\r\n\r\n if (objCtr.defineProperty) {\r\n var classListPropDesc = {\r\n get: classListGetter\r\n , enumerable: true\r\n , configurable: true\r\n };\r\n try {\r\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n } catch (ex) { // IE 8 doesn't support enumerable:true\r\n if (ex.number === -0x7FF5EC54) {\r\n classListPropDesc.enumerable = false;\r\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n }\r\n }\r\n } else if (objCtr[protoProp].__defineGetter__) {\r\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\r\n }\r\n\r\n }(self));\r\n\r\n } else {\r\n // There is full or partial native classList support, so just check if we need\r\n // to normalize the add/remove and toggle APIs.\r\n\r\n (function () {\r\n \"use strict\";\r\n\r\n var testElement = document.createElement(\"_\");\r\n\r\n testElement.classList.add(\"c1\", \"c2\");\r\n\r\n // Polyfill for IE 10/11 and Firefox <26, where classList.add and\r\n // classList.remove exist but support only one argument at a time.\r\n if (!testElement.classList.contains(\"c2\")) {\r\n var createMethod = function (method) {\r\n var original = DOMTokenList.prototype[method];\r\n\r\n DOMTokenList.prototype[method] = function (token) {\r\n var i, len = arguments.length;\r\n\r\n for (i = 0; i < len; i++) {\r\n token = arguments[i];\r\n original.call(this, token);\r\n }\r\n };\r\n };\r\n createMethod('add');\r\n createMethod('remove');\r\n }\r\n\r\n testElement.classList.toggle(\"c3\", false);\r\n\r\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\r\n // support the second argument.\r\n if (testElement.classList.contains(\"c3\")) {\r\n var _toggle = DOMTokenList.prototype.toggle;\r\n\r\n DOMTokenList.prototype.toggle = function (token, force) {\r\n if (1 in arguments && !this.contains(token) === !force) {\r\n return force;\r\n } else {\r\n return _toggle.call(this, token);\r\n }\r\n };\r\n\r\n }\r\n\r\n testElement = null;\r\n }());\r\n\r\n }\r\n\r\n }\r\n}).call(this);\r\n\r\n\r\n\r\n(function () {\r\n if (typeof Object.assign != 'function') {\r\n (function () {\r\n Object.assign = function (target) {\r\n 'use strict';\r\n if (target === undefined || target === null) {\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n\r\n var output = Object(target);\r\n for (var index = 1; index < arguments.length; index++) {\r\n var source = arguments[index];\r\n if (source !== undefined && source !== null) {\r\n for (var nextKey in source) {\r\n if (source.hasOwnProperty(nextKey)) {\r\n output[nextKey] = source[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return output;\r\n };\r\n })();\r\n }\r\n}).call(this);\r\n/*!\r\n * @overview es6-promise - a tiny implementation of Promises/A+.\r\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\r\n * @license Licensed under MIT license\r\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\r\n * @version 3.2.1\r\n */\r\n\r\n(function () {\r\n \"use strict\";\r\n function lib$es6$promise$utils$$objectOrFunction(x) {\r\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\r\n }\r\n\r\n function lib$es6$promise$utils$$isFunction(x) {\r\n return typeof x === 'function';\r\n }\r\n\r\n function lib$es6$promise$utils$$isMaybeThenable(x) {\r\n return typeof x === 'object' && x !== null;\r\n }\r\n\r\n var lib$es6$promise$utils$$_isArray;\r\n if (!Array.isArray) {\r\n lib$es6$promise$utils$$_isArray = function (x) {\r\n return Object.prototype.toString.call(x) === '[object Array]';\r\n };\r\n } else {\r\n lib$es6$promise$utils$$_isArray = Array.isArray;\r\n }\r\n\r\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\r\n var lib$es6$promise$asap$$len = 0;\r\n var lib$es6$promise$asap$$vertxNext;\r\n var lib$es6$promise$asap$$customSchedulerFn;\r\n\r\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\r\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\r\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\r\n lib$es6$promise$asap$$len += 2;\r\n if (lib$es6$promise$asap$$len === 2) {\r\n // If len is 2, that means that we need to schedule an async flush.\r\n // If additional callbacks are queued before the queue is flushed, they\r\n // will be processed by this flush that we are scheduling.\r\n if (lib$es6$promise$asap$$customSchedulerFn) {\r\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\r\n } else {\r\n lib$es6$promise$asap$$scheduleFlush();\r\n }\r\n }\r\n }\r\n\r\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\r\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\r\n }\r\n\r\n function lib$es6$promise$asap$$setAsap(asapFn) {\r\n lib$es6$promise$asap$$asap = asapFn;\r\n }\r\n\r\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\r\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\r\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\r\n var lib$es6$promise$asap$$isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\r\n\r\n // test for web worker but not in IE10\r\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\r\n typeof importScripts !== 'undefined' &&\r\n typeof MessageChannel !== 'undefined';\r\n\r\n // node\r\n function lib$es6$promise$asap$$useNextTick() {\r\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\r\n // see https://github.com/cujojs/when/issues/410 for details\r\n return function () {\r\n process.nextTick(lib$es6$promise$asap$$flush);\r\n };\r\n }\r\n\r\n // vertx\r\n function lib$es6$promise$asap$$useVertxTimer() {\r\n return function () {\r\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\r\n };\r\n }\r\n\r\n function lib$es6$promise$asap$$useMutationObserver() {\r\n var iterations = 0;\r\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\r\n var node = document.createTextNode('');\r\n observer.observe(node, { characterData: true });\r\n\r\n return function () {\r\n node.data = (iterations = ++iterations % 2);\r\n };\r\n }\r\n\r\n // web worker\r\n function lib$es6$promise$asap$$useMessageChannel() {\r\n var channel = new MessageChannel();\r\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\r\n return function () {\r\n channel.port2.postMessage(0);\r\n };\r\n }\r\n\r\n function lib$es6$promise$asap$$useSetTimeout() {\r\n return function () {\r\n setTimeout(lib$es6$promise$asap$$flush, 1);\r\n };\r\n }\r\n\r\n var lib$es6$promise$asap$$queue = new Array(1000);\r\n function lib$es6$promise$asap$$flush() {\r\n for (var i = 0; i < lib$es6$promise$asap$$len; i += 2) {\r\n var callback = lib$es6$promise$asap$$queue[i];\r\n var arg = lib$es6$promise$asap$$queue[i + 1];\r\n\r\n callback(arg);\r\n\r\n lib$es6$promise$asap$$queue[i] = undefined;\r\n lib$es6$promise$asap$$queue[i + 1] = undefined;\r\n }\r\n\r\n lib$es6$promise$asap$$len = 0;\r\n }\r\n\r\n function lib$es6$promise$asap$$attemptVertx() {\r\n try {\r\n var r = require;\r\n var vertx = r('vertx');\r\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\r\n return lib$es6$promise$asap$$useVertxTimer();\r\n } catch (e) {\r\n return lib$es6$promise$asap$$useSetTimeout();\r\n }\r\n }\r\n\r\n var lib$es6$promise$asap$$scheduleFlush;\r\n // Decide what async method to use to triggering processing of queued callbacks:\r\n if (lib$es6$promise$asap$$isNode) {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\r\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\r\n } else if (lib$es6$promise$asap$$isWorker) {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\r\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\r\n } else {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\r\n }\r\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\r\n var parent = this;\r\n\r\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\r\n\r\n if (child[lib$es6$promise$$internal$$PROMISE_ID] === undefined) {\r\n lib$es6$promise$$internal$$makePromise(child);\r\n }\r\n\r\n var state = parent._state;\r\n\r\n if (state) {\r\n var callback = arguments[state - 1];\r\n lib$es6$promise$asap$$asap(function () {\r\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, parent._result);\r\n });\r\n } else {\r\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\r\n }\r\n\r\n return child;\r\n }\r\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\r\n function lib$es6$promise$promise$resolve$$resolve(object) {\r\n /*jshint validthis:true */\r\n var Constructor = this;\r\n\r\n if (object && typeof object === 'object' && object.constructor === Constructor) {\r\n return object;\r\n }\r\n\r\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n lib$es6$promise$$internal$$resolve(promise, object);\r\n return promise;\r\n }\r\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\r\n var lib$es6$promise$$internal$$PROMISE_ID = Math.random().toString(36).substring(16);\r\n\r\n function lib$es6$promise$$internal$$noop() { }\r\n\r\n var lib$es6$promise$$internal$$PENDING = void 0;\r\n var lib$es6$promise$$internal$$FULFILLED = 1;\r\n var lib$es6$promise$$internal$$REJECTED = 2;\r\n\r\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\r\n\r\n function lib$es6$promise$$internal$$selfFulfillment() {\r\n return new TypeError(\"You cannot resolve a promise with itself\");\r\n }\r\n\r\n function lib$es6$promise$$internal$$cannotReturnOwn() {\r\n return new TypeError('A promises callback cannot return that same promise.');\r\n }\r\n\r\n function lib$es6$promise$$internal$$getThen(promise) {\r\n try {\r\n return promise.then;\r\n } catch (error) {\r\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\r\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\r\n try {\r\n then.call(value, fulfillmentHandler, rejectionHandler);\r\n } catch (e) {\r\n return e;\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\r\n lib$es6$promise$asap$$asap(function (promise) {\r\n var sealed = false;\r\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function (value) {\r\n if (sealed) { return; }\r\n sealed = true;\r\n if (thenable !== value) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n } else {\r\n lib$es6$promise$$internal$$fulfill(promise, value);\r\n }\r\n }, function (reason) {\r\n if (sealed) { return; }\r\n sealed = true;\r\n\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n }, 'Settle: ' + (promise._label || ' unknown promise'));\r\n\r\n if (!sealed && error) {\r\n sealed = true;\r\n lib$es6$promise$$internal$$reject(promise, error);\r\n }\r\n }, promise);\r\n }\r\n\r\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\r\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\r\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\r\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\r\n lib$es6$promise$$internal$$reject(promise, thenable._result);\r\n } else {\r\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function (value) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n }, function (reason) {\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n });\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\r\n if (maybeThenable.constructor === promise.constructor &&\r\n then === lib$es6$promise$then$$default &&\r\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\r\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\r\n } else {\r\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\r\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\r\n } else if (then === undefined) {\r\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\r\n } else if (lib$es6$promise$utils$$isFunction(then)) {\r\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\r\n } else {\r\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\r\n }\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$resolve(promise, value) {\r\n if (promise === value) {\r\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\r\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\r\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\r\n } else {\r\n lib$es6$promise$$internal$$fulfill(promise, value);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$publishRejection(promise) {\r\n if (promise._onerror) {\r\n promise._onerror(promise._result);\r\n }\r\n\r\n lib$es6$promise$$internal$$publish(promise);\r\n }\r\n\r\n function lib$es6$promise$$internal$$fulfill(promise, value) {\r\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\r\n\r\n promise._result = value;\r\n promise._state = lib$es6$promise$$internal$$FULFILLED;\r\n\r\n if (promise._subscribers.length !== 0) {\r\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$reject(promise, reason) {\r\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\r\n promise._state = lib$es6$promise$$internal$$REJECTED;\r\n promise._result = reason;\r\n\r\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\r\n }\r\n\r\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\r\n var subscribers = parent._subscribers;\r\n var length = subscribers.length;\r\n\r\n parent._onerror = null;\r\n\r\n subscribers[length] = child;\r\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\r\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\r\n\r\n if (length === 0 && parent._state) {\r\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$publish(promise) {\r\n var subscribers = promise._subscribers;\r\n var settled = promise._state;\r\n\r\n if (subscribers.length === 0) { return; }\r\n\r\n var child, callback, detail = promise._result;\r\n\r\n for (var i = 0; i < subscribers.length; i += 3) {\r\n child = subscribers[i];\r\n callback = subscribers[i + settled];\r\n\r\n if (child) {\r\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\r\n } else {\r\n callback(detail);\r\n }\r\n }\r\n\r\n promise._subscribers.length = 0;\r\n }\r\n\r\n function lib$es6$promise$$internal$$ErrorObject() {\r\n this.error = null;\r\n }\r\n\r\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\r\n\r\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\r\n try {\r\n return callback(detail);\r\n } catch (e) {\r\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\r\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\r\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\r\n value, error, succeeded, failed;\r\n\r\n if (hasCallback) {\r\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\r\n\r\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\r\n failed = true;\r\n error = value.error;\r\n value = null;\r\n } else {\r\n succeeded = true;\r\n }\r\n\r\n if (promise === value) {\r\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\r\n return;\r\n }\r\n\r\n } else {\r\n value = detail;\r\n succeeded = true;\r\n }\r\n\r\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\r\n // noop\r\n } else if (hasCallback && succeeded) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n } else if (failed) {\r\n lib$es6$promise$$internal$$reject(promise, error);\r\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\r\n lib$es6$promise$$internal$$fulfill(promise, value);\r\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\r\n lib$es6$promise$$internal$$reject(promise, value);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\r\n try {\r\n resolver(function resolvePromise(value) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n }, function rejectPromise(reason) {\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n });\r\n } catch (e) {\r\n lib$es6$promise$$internal$$reject(promise, e);\r\n }\r\n }\r\n\r\n var lib$es6$promise$$internal$$id = 0;\r\n function lib$es6$promise$$internal$$nextId() {\r\n return lib$es6$promise$$internal$$id++;\r\n }\r\n\r\n function lib$es6$promise$$internal$$makePromise(promise) {\r\n promise[lib$es6$promise$$internal$$PROMISE_ID] = lib$es6$promise$$internal$$id++;\r\n promise._state = undefined;\r\n promise._result = undefined;\r\n promise._subscribers = [];\r\n }\r\n\r\n function lib$es6$promise$promise$all$$all(entries) {\r\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\r\n }\r\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\r\n function lib$es6$promise$promise$race$$race(entries) {\r\n /*jshint validthis:true */\r\n var Constructor = this;\r\n\r\n if (!lib$es6$promise$utils$$isArray(entries)) {\r\n return new Constructor(function (resolve, reject) {\r\n reject(new TypeError('You must pass an array to race.'));\r\n });\r\n } else {\r\n return new Constructor(function (resolve, reject) {\r\n var length = entries.length;\r\n for (var i = 0; i < length; i++) {\r\n Constructor.resolve(entries[i]).then(resolve, reject);\r\n }\r\n });\r\n }\r\n }\r\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\r\n function lib$es6$promise$promise$reject$$reject(reason) {\r\n /*jshint validthis:true */\r\n var Constructor = this;\r\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n return promise;\r\n }\r\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\r\n\r\n\r\n function lib$es6$promise$promise$$needsResolver() {\r\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\r\n }\r\n\r\n function lib$es6$promise$promise$$needsNew() {\r\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\r\n }\r\n\r\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\r\n /**\r\n Promise objects represent the eventual result of an asynchronous operation. The\r\n primary way of interacting with a promise is through its `then` method, which\r\n registers callbacks to receive either a promise's eventual value or the reason\r\n why the promise cannot be fulfilled.\r\n\r\n Terminology\r\n -----------\r\n\r\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\r\n - `thenable` is an object or function that defines a `then` method.\r\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\r\n - `exception` is a value that is thrown using the throw statement.\r\n - `reason` is a value that indicates why a promise was rejected.\r\n - `settled` the final resting state of a promise, fulfilled or rejected.\r\n\r\n A promise can be in one of three states: pending, fulfilled, or rejected.\r\n\r\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\r\n state. Promises that are rejected have a rejection reason and are in the\r\n rejected state. A fulfillment value is never a thenable.\r\n\r\n Promises can also be said to *resolve* a value. If this value is also a\r\n promise, then the original promise's settled state will match the value's\r\n settled state. So a promise that *resolves* a promise that rejects will\r\n itself reject, and a promise that *resolves* a promise that fulfills will\r\n itself fulfill.\r\n\r\n\r\n Basic Usage:\r\n ------------\r\n\r\n ```js\r\n var promise = new Promise(function(resolve, reject) {\r\n // on success\r\n resolve(value);\r\n\r\n // on failure\r\n reject(reason);\r\n });\r\n\r\n promise.then(function(value) {\r\n // on fulfillment\r\n }, function(reason) {\r\n // on rejection\r\n });\r\n ```\r\n\r\n Advanced Usage:\r\n ---------------\r\n\r\n Promises shine when abstracting away asynchronous interactions such as\r\n `XMLHttpRequest`s.\r\n\r\n ```js\r\n function getJSON(url) {\r\n return new Promise(function(resolve, reject){\r\n var xhr = new XMLHttpRequest();\r\n\r\n xhr.open('GET', url);\r\n xhr.onreadystatechange = handler;\r\n xhr.responseType = 'json';\r\n xhr.setRequestHeader('Accept', 'application/json');\r\n xhr.send();\r\n\r\n function handler() {\r\n if (this.readyState === this.DONE) {\r\n if (this.status === 200) {\r\n resolve(this.response);\r\n } else {\r\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n getJSON('/posts.json').then(function(json) {\r\n // on fulfillment\r\n }, function(reason) {\r\n // on rejection\r\n });\r\n ```\r\n\r\n Unlike callbacks, promises are great composable primitives.\r\n\r\n ```js\r\n Promise.all([\r\n getJSON('/posts'),\r\n getJSON('/comments')\r\n ]).then(function(values){\r\n values[0] // => postsJSON\r\n values[1] // => commentsJSON\r\n\r\n return values;\r\n });\r\n ```\r\n\r\n @class Promise\r\n @param {function} resolver\r\n Useful for tooling.\r\n @constructor\r\n */\r\n function lib$es6$promise$promise$$Promise(resolver) {\r\n this[lib$es6$promise$$internal$$PROMISE_ID] = lib$es6$promise$$internal$$nextId();\r\n this._result = this._state = undefined;\r\n this._subscribers = [];\r\n\r\n if (lib$es6$promise$$internal$$noop !== resolver) {\r\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\r\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\r\n }\r\n }\r\n\r\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\r\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\r\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\r\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\r\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\r\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\r\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\r\n\r\n lib$es6$promise$promise$$Promise.prototype = {\r\n constructor: lib$es6$promise$promise$$Promise,\r\n\r\n /**\r\n The primary way of interacting with a promise is through its `then` method,\r\n which registers callbacks to receive either a promise's eventual value or the\r\n reason why the promise cannot be fulfilled.\r\n \r\n ```js\r\n findUser().then(function(user){\r\n // user is available\r\n }, function(reason){\r\n // user is unavailable, and you are given the reason why\r\n });\r\n ```\r\n \r\n Chaining\r\n --------\r\n \r\n The return value of `then` is itself a promise. This second, 'downstream'\r\n promise is resolved with the return value of the first promise's fulfillment\r\n or rejection handler, or rejected if the handler throws an exception.\r\n \r\n ```js\r\n findUser().then(function (user) {\r\n return user.name;\r\n }, function (reason) {\r\n return 'default name';\r\n }).then(function (userName) {\r\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\r\n // will be `'default name'`\r\n });\r\n \r\n findUser().then(function (user) {\r\n throw new Error('Found user, but still unhappy');\r\n }, function (reason) {\r\n throw new Error('`findUser` rejected and we're unhappy');\r\n }).then(function (value) {\r\n // never reached\r\n }, function (reason) {\r\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\r\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\r\n });\r\n ```\r\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\r\n \r\n ```js\r\n findUser().then(function (user) {\r\n throw new PedagogicalException('Upstream error');\r\n }).then(function (value) {\r\n // never reached\r\n }).then(function (value) {\r\n // never reached\r\n }, function (reason) {\r\n // The `PedgagocialException` is propagated all the way down to here\r\n });\r\n ```\r\n \r\n Assimilation\r\n ------------\r\n \r\n Sometimes the value you want to propagate to a downstream promise can only be\r\n retrieved asynchronously. This can be achieved by returning a promise in the\r\n fulfillment or rejection handler. The downstream promise will then be pending\r\n until the returned promise is settled. This is called *assimilation*.\r\n \r\n ```js\r\n findUser().then(function (user) {\r\n return findCommentsByAuthor(user);\r\n }).then(function (comments) {\r\n // The user's comments are now available\r\n });\r\n ```\r\n \r\n If the assimliated promise rejects, then the downstream promise will also reject.\r\n \r\n ```js\r\n findUser().then(function (user) {\r\n return findCommentsByAuthor(user);\r\n }).then(function (comments) {\r\n // If `findCommentsByAuthor` fulfills, we'll have the value here\r\n }, function (reason) {\r\n // If `findCommentsByAuthor` rejects, we'll have the reason here\r\n });\r\n ```\r\n \r\n Simple Example\r\n --------------\r\n \r\n Synchronous Example\r\n \r\n ```javascript\r\n var result;\r\n \r\n try {\r\n result = findResult();\r\n // success\r\n } catch(reason) {\r\n // failure\r\n }\r\n ```\r\n \r\n Errback Example\r\n \r\n ```js\r\n findResult(function(result, err){\r\n if (err) {\r\n // failure\r\n } else {\r\n // success\r\n }\r\n });\r\n ```\r\n \r\n Promise Example;\r\n \r\n ```javascript\r\n findResult().then(function(result){\r\n // success\r\n }, function(reason){\r\n // failure\r\n });\r\n ```\r\n \r\n Advanced Example\r\n --------------\r\n \r\n Synchronous Example\r\n \r\n ```javascript\r\n var author, books;\r\n \r\n try {\r\n author = findAuthor();\r\n books = findBooksByAuthor(author);\r\n // success\r\n } catch(reason) {\r\n // failure\r\n }\r\n ```\r\n \r\n Errback Example\r\n \r\n ```js\r\n \r\n function foundBooks(books) {\r\n \r\n }\r\n \r\n function failure(reason) {\r\n \r\n }\r\n \r\n findAuthor(function(author, err){\r\n if (err) {\r\n failure(err);\r\n // failure\r\n } else {\r\n try {\r\n findBoooksByAuthor(author, function(books, err) {\r\n if (err) {\r\n failure(err);\r\n } else {\r\n try {\r\n foundBooks(books);\r\n } catch(reason) {\r\n failure(reason);\r\n }\r\n }\r\n });\r\n } catch(error) {\r\n failure(err);\r\n }\r\n // success\r\n }\r\n });\r\n ```\r\n \r\n Promise Example;\r\n \r\n ```javascript\r\n findAuthor().\r\n then(findBooksByAuthor).\r\n then(function(books){\r\n // found books\r\n }).catch(function(reason){\r\n // something went wrong\r\n });\r\n ```\r\n \r\n @method then\r\n @param {Function} onFulfilled\r\n @param {Function} onRejected\r\n Useful for tooling.\r\n @return {Promise}\r\n */\r\n then: lib$es6$promise$then$$default,\r\n\r\n /**\r\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\r\n as the catch block of a try/catch statement.\r\n \r\n ```js\r\n function findAuthor(){\r\n throw new Error('couldn't find that author');\r\n }\r\n \r\n // synchronous\r\n try {\r\n findAuthor();\r\n } catch(reason) {\r\n // something went wrong\r\n }\r\n \r\n // async with promises\r\n findAuthor().catch(function(reason){\r\n // something went wrong\r\n });\r\n ```\r\n \r\n @method catch\r\n @param {Function} onRejection\r\n Useful for tooling.\r\n @return {Promise}\r\n */\r\n 'catch': function (onRejection) {\r\n return this.then(null, onRejection);\r\n }\r\n };\r\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\r\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\r\n this._instanceConstructor = Constructor;\r\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n\r\n if (!this.promise[lib$es6$promise$$internal$$PROMISE_ID]) {\r\n lib$es6$promise$$internal$$makePromise(this.promise);\r\n }\r\n\r\n if (Array.isArray(input)) {\r\n this._input = input;\r\n this.length = input.length;\r\n this._remaining = input.length;\r\n\r\n this._result = new Array(this.length);\r\n\r\n if (this.length === 0) {\r\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\r\n } else {\r\n this.length = this.length || 0;\r\n this._enumerate();\r\n if (this._remaining === 0) {\r\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\r\n }\r\n }\r\n } else {\r\n lib$es6$promise$$internal$$reject(this.promise, lib$es6$promise$enumerator$$validationError());\r\n }\r\n }\r\n\r\n function lib$es6$promise$enumerator$$validationError() {\r\n return new Error('Array Methods must be provided an Array');\r\n }\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function () {\r\n var length = this.length;\r\n var input = this._input;\r\n\r\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\r\n this._eachEntry(input[i], i);\r\n }\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function (entry, i) {\r\n var c = this._instanceConstructor;\r\n var resolve = c.resolve;\r\n\r\n if (resolve === lib$es6$promise$promise$resolve$$default) {\r\n var then = lib$es6$promise$$internal$$getThen(entry);\r\n\r\n if (then === lib$es6$promise$then$$default &&\r\n entry._state !== lib$es6$promise$$internal$$PENDING) {\r\n this._settledAt(entry._state, i, entry._result);\r\n } else if (typeof then !== 'function') {\r\n this._remaining--;\r\n this._result[i] = entry;\r\n } else if (c === lib$es6$promise$promise$$default) {\r\n var promise = new c(lib$es6$promise$$internal$$noop);\r\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\r\n this._willSettleAt(promise, i);\r\n } else {\r\n this._willSettleAt(new c(function (resolve) { resolve(entry); }), i);\r\n }\r\n } else {\r\n this._willSettleAt(resolve(entry), i);\r\n }\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function (state, i, value) {\r\n var promise = this.promise;\r\n\r\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\r\n this._remaining--;\r\n\r\n if (state === lib$es6$promise$$internal$$REJECTED) {\r\n lib$es6$promise$$internal$$reject(promise, value);\r\n } else {\r\n this._result[i] = value;\r\n }\r\n }\r\n\r\n if (this._remaining === 0) {\r\n lib$es6$promise$$internal$$fulfill(promise, this._result);\r\n }\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function (promise, i) {\r\n var enumerator = this;\r\n\r\n lib$es6$promise$$internal$$subscribe(promise, undefined, function (value) {\r\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\r\n }, function (reason) {\r\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\r\n });\r\n };\r\n function lib$es6$promise$polyfill$$polyfill() {\r\n var local;\r\n\r\n if (typeof global !== 'undefined') {\r\n local = global;\r\n } else if (typeof self !== 'undefined') {\r\n local = self;\r\n } else {\r\n try {\r\n local = Function('return this')();\r\n } catch (e) {\r\n throw new Error('polyfill failed because global object is unavailable in this environment');\r\n }\r\n }\r\n\r\n var P = local.Promise;\r\n\r\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\r\n return;\r\n }\r\n\r\n local.Promise = lib$es6$promise$promise$$default;\r\n }\r\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\r\n\r\n var lib$es6$promise$umd$$ES6Promise = {\r\n 'Promise': lib$es6$promise$promise$$default,\r\n 'polyfill': lib$es6$promise$polyfill$$default\r\n };\r\n\r\n /* global define:true module:true window: true */\r\n if (typeof define === 'function' && define['amd']) {\r\n define(function () { return lib$es6$promise$umd$$ES6Promise; });\r\n } else if (typeof module !== 'undefined' && module['exports']) {\r\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\r\n } else if (typeof this !== 'undefined') {\r\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\r\n }\r\n\r\n lib$es6$promise$polyfill$$default();\r\n}).call(this);\r\n\r\n\r\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\r\n\r\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\r\n\r\n// MIT license\r\n\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame']\r\n || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function () { callback(currTime + timeToCall); },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\n(function () {\r\n if (!document.documentElement.dataset &&\r\n (\r\n !Object.getOwnPropertyDescriptor(Element.prototype, 'dataset') ||\r\n !Object.getOwnPropertyDescriptor(Element.prototype, 'dataset').get\r\n )\r\n ) {\r\n const descriptor = {}\r\n\r\n descriptor.enumerable = true\r\n\r\n descriptor.get = function () {\r\n const element = this\r\n const map = {}\r\n const attributes = this.attributes\r\n\r\n function toUpperCase(n0) {\r\n return n0.charAt(1).toUpperCase()\r\n }\r\n\r\n function getter() {\r\n return this.value\r\n }\r\n\r\n function setter(name, value) {\r\n if (typeof value !== 'undefined') {\r\n this.setAttribute(name, value)\r\n }\r\n else {\r\n this.removeAttribute(name)\r\n }\r\n }\r\n\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attribute = attributes[i]\r\n\r\n // This test really should allow any XML Name without\r\n // colons (and non-uppercase for XHTML)\r\n\r\n if (attribute && attribute.name && (/^data-\\w[\\w\\-]*$/).test(attribute.name)) {\r\n const name = attribute.name\r\n const value = attribute.value\r\n\r\n // Change to CamelCase\r\n\r\n const propName = name.substr(5).replace(/-./g, toUpperCase)\r\n\r\n Object.defineProperty(map, propName, {\r\n enumerable: this.enumerable,\r\n get: getter.bind({ value: value || '' }),\r\n set: setter.bind(element, name)\r\n })\r\n }\r\n }\r\n return map\r\n }\r\n\r\n Object.defineProperty(Element.prototype, 'dataset', descriptor)\r\n }\r\n}).call(this);\r\n\r\n(function (self) {\r\n 'use strict';\r\n\r\n if (self.fetch) {\r\n return\r\n }\r\n\r\n var support = {\r\n searchParams: 'URLSearchParams' in self,\r\n iterable: 'Symbol' in self && 'iterator' in Symbol,\r\n blob: 'FileReader' in self && 'Blob' in self && (function () {\r\n try {\r\n new Blob()\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n })(),\r\n formData: 'FormData' in self,\r\n arrayBuffer: 'ArrayBuffer' in self\r\n }\r\n\r\n function normalizeName(name) {\r\n if (typeof name !== 'string') {\r\n name = String(name)\r\n }\r\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\r\n throw new TypeError('Invalid character in header field name')\r\n }\r\n return name.toLowerCase()\r\n }\r\n\r\n function normalizeValue(value) {\r\n if (typeof value !== 'string') {\r\n value = String(value)\r\n }\r\n return value\r\n }\r\n\r\n // Build a destructive iterator for the value list\r\n function iteratorFor(items) {\r\n var iterator = {\r\n next: function () {\r\n var value = items.shift()\r\n return { done: value === undefined, value: value }\r\n }\r\n }\r\n\r\n if (support.iterable) {\r\n iterator[Symbol.iterator] = function () {\r\n return iterator\r\n }\r\n }\r\n\r\n return iterator\r\n }\r\n\r\n function Headers(headers) {\r\n this.map = {}\r\n\r\n if (headers instanceof Headers) {\r\n headers.forEach(function (value, name) {\r\n this.append(name, value)\r\n }, this)\r\n\r\n } else if (headers) {\r\n Object.getOwnPropertyNames(headers).forEach(function (name) {\r\n this.append(name, headers[name])\r\n }, this)\r\n }\r\n }\r\n\r\n Headers.prototype.append = function (name, value) {\r\n name = normalizeName(name)\r\n value = normalizeValue(value)\r\n var list = this.map[name]\r\n if (!list) {\r\n list = []\r\n this.map[name] = list\r\n }\r\n list.push(value)\r\n }\r\n\r\n Headers.prototype['delete'] = function (name) {\r\n delete this.map[normalizeName(name)]\r\n }\r\n\r\n Headers.prototype.get = function (name) {\r\n var values = this.map[normalizeName(name)]\r\n return values ? values[0] : null\r\n }\r\n\r\n Headers.prototype.getAll = function (name) {\r\n return this.map[normalizeName(name)] || []\r\n }\r\n\r\n Headers.prototype.has = function (name) {\r\n return this.map.hasOwnProperty(normalizeName(name))\r\n }\r\n\r\n Headers.prototype.set = function (name, value) {\r\n this.map[normalizeName(name)] = [normalizeValue(value)]\r\n }\r\n\r\n Headers.prototype.forEach = function (callback, thisArg) {\r\n Object.getOwnPropertyNames(this.map).forEach(function (name) {\r\n this.map[name].forEach(function (value) {\r\n callback.call(thisArg, value, name, this)\r\n }, this)\r\n }, this)\r\n }\r\n\r\n Headers.prototype.keys = function () {\r\n var items = []\r\n this.forEach(function (value, name) { items.push(name) })\r\n return iteratorFor(items)\r\n }\r\n\r\n Headers.prototype.values = function () {\r\n var items = []\r\n this.forEach(function (value) { items.push(value) })\r\n return iteratorFor(items)\r\n }\r\n\r\n Headers.prototype.entries = function () {\r\n var items = []\r\n this.forEach(function (value, name) { items.push([name, value]) })\r\n return iteratorFor(items)\r\n }\r\n\r\n if (support.iterable) {\r\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\r\n }\r\n\r\n function consumed(body) {\r\n if (body.bodyUsed) {\r\n return Promise.reject(new TypeError('Already read'))\r\n }\r\n body.bodyUsed = true\r\n }\r\n\r\n function fileReaderReady(reader) {\r\n return new Promise(function (resolve, reject) {\r\n reader.onload = function () {\r\n resolve(reader.result)\r\n }\r\n reader.onerror = function () {\r\n reject(reader.error)\r\n }\r\n })\r\n }\r\n\r\n function readBlobAsArrayBuffer(blob) {\r\n var reader = new FileReader()\r\n reader.readAsArrayBuffer(blob)\r\n return fileReaderReady(reader)\r\n }\r\n\r\n function readBlobAsText(blob) {\r\n var reader = new FileReader()\r\n reader.readAsText(blob)\r\n return fileReaderReady(reader)\r\n }\r\n\r\n function Body() {\r\n this.bodyUsed = false\r\n\r\n this._initBody = function (body) {\r\n this._bodyInit = body\r\n if (typeof body === 'string') {\r\n this._bodyText = body\r\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\r\n this._bodyBlob = body\r\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\r\n this._bodyFormData = body\r\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\r\n this._bodyText = body.toString()\r\n } else if (!body) {\r\n this._bodyText = ''\r\n } else if (support.arrayBuffer && ArrayBuffer.prototype.isPrototypeOf(body)) {\r\n // Only support ArrayBuffers for POST method.\r\n // Receiving ArrayBuffers happens via Blobs, instead.\r\n } else {\r\n throw new Error('unsupported BodyInit type')\r\n }\r\n\r\n if (!this.headers.get('content-type')) {\r\n if (typeof body === 'string') {\r\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\r\n } else if (this._bodyBlob && this._bodyBlob.type) {\r\n this.headers.set('content-type', this._bodyBlob.type)\r\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\r\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\r\n }\r\n }\r\n }\r\n\r\n if (support.blob) {\r\n this.blob = function () {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return Promise.resolve(this._bodyBlob)\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as blob')\r\n } else {\r\n return Promise.resolve(new Blob([this._bodyText]))\r\n }\r\n }\r\n\r\n this.arrayBuffer = function () {\r\n return this.blob().then(readBlobAsArrayBuffer)\r\n }\r\n\r\n this.text = function () {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return readBlobAsText(this._bodyBlob)\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as text')\r\n } else {\r\n return Promise.resolve(this._bodyText)\r\n }\r\n }\r\n } else {\r\n this.text = function () {\r\n var rejected = consumed(this)\r\n return rejected ? rejected : Promise.resolve(this._bodyText)\r\n }\r\n }\r\n\r\n if (support.formData) {\r\n this.formData = function () {\r\n return this.text().then(decode)\r\n }\r\n }\r\n\r\n this.json = function () {\r\n return this.text().then(JSON.parse)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // HTTP methods whose capitalization should be normalized\r\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\r\n\r\n function normalizeMethod(method) {\r\n var upcased = method.toUpperCase()\r\n return (methods.indexOf(upcased) > -1) ? upcased : method\r\n }\r\n\r\n function Request(input, options) {\r\n options = options || {}\r\n var body = options.body\r\n if (Request.prototype.isPrototypeOf(input)) {\r\n if (input.bodyUsed) {\r\n throw new TypeError('Already read')\r\n }\r\n this.url = input.url\r\n this.credentials = input.credentials\r\n if (!options.headers) {\r\n this.headers = new Headers(input.headers)\r\n }\r\n this.method = input.method\r\n this.mode = input.mode\r\n if (!body) {\r\n body = input._bodyInit\r\n input.bodyUsed = true\r\n }\r\n } else {\r\n this.url = input\r\n }\r\n\r\n this.credentials = options.credentials || this.credentials || 'omit'\r\n if (options.headers || !this.headers) {\r\n this.headers = new Headers(options.headers)\r\n }\r\n this.method = normalizeMethod(options.method || this.method || 'GET')\r\n this.mode = options.mode || this.mode || null\r\n this.referrer = null\r\n\r\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\r\n throw new TypeError('Body not allowed for GET or HEAD requests')\r\n }\r\n this._initBody(body)\r\n }\r\n\r\n Request.prototype.clone = function () {\r\n return new Request(this)\r\n }\r\n\r\n function decode(body) {\r\n var form = new FormData()\r\n body.trim().split('&').forEach(function (bytes) {\r\n if (bytes) {\r\n var split = bytes.split('=')\r\n var name = split.shift().replace(/\\+/g, ' ')\r\n var value = split.join('=').replace(/\\+/g, ' ')\r\n form.append(decodeURIComponent(name), decodeURIComponent(value))\r\n }\r\n })\r\n return form\r\n }\r\n\r\n function headers(xhr) {\r\n var head = new Headers()\r\n var pairs = (xhr.getAllResponseHeaders() || '').trim().split('\\n')\r\n pairs.forEach(function (header) {\r\n var split = header.trim().split(':')\r\n var key = split.shift().trim()\r\n var value = split.join(':').trim()\r\n head.append(key, value)\r\n })\r\n return head\r\n }\r\n\r\n Body.call(Request.prototype)\r\n\r\n function Response(bodyInit, options) {\r\n if (!options) {\r\n options = {}\r\n }\r\n\r\n this.type = 'default'\r\n this.status = options.status\r\n this.ok = this.status >= 200 && this.status < 300\r\n this.statusText = options.statusText\r\n this.headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers)\r\n this.url = options.url || ''\r\n this._initBody(bodyInit)\r\n }\r\n\r\n Body.call(Response.prototype)\r\n\r\n Response.prototype.clone = function () {\r\n return new Response(this._bodyInit, {\r\n status: this.status,\r\n statusText: this.statusText,\r\n headers: new Headers(this.headers),\r\n url: this.url\r\n })\r\n }\r\n\r\n Response.error = function () {\r\n var response = new Response(null, { status: 0, statusText: '' })\r\n response.type = 'error'\r\n return response\r\n }\r\n\r\n var redirectStatuses = [301, 302, 303, 307, 308]\r\n\r\n Response.redirect = function (url, status) {\r\n if (redirectStatuses.indexOf(status) === -1) {\r\n throw new RangeError('Invalid status code')\r\n }\r\n\r\n return new Response(null, { status: status, headers: { location: url } })\r\n }\r\n\r\n self.Headers = Headers\r\n self.Request = Request\r\n self.Response = Response\r\n\r\n self.fetch = function (input, init) {\r\n \r\n return new Promise(function (resolve, reject) {\r\n \r\n var request\r\n if (Request.prototype.isPrototypeOf(input) && !init) {\r\n request = input\r\n } else {\r\n request = new Request(input, init)\r\n }\r\n //var xhr = new XMLHttpRequest();\r\n var xhr = navigator.appVersion.indexOf(\"MSIE 9.\") !== -1 ? new XDomainRequest : new XMLHttpRequest();\r\n\r\n function responseURL() {\r\n if ('responseURL' in xhr) {\r\n return xhr.responseURL\r\n }\r\n\r\n // Avoid security warnings on getResponseHeader when not allowed by CORS\r\n if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {\r\n return xhr.getResponseHeader('X-Request-URL')\r\n }\r\n\r\n return\r\n }\r\n\r\n if (navigator.appVersion.indexOf(\"MSIE 9.\") !== -1 ) {\r\n // Use Microsoft XDR\r\n var xdr = new XDomainRequest();\r\n xdr.open(\"get\", request.url);\r\n xdr.onload = function () {\r\n resolve(new Response(xdr.responseText))\r\n };\r\n xdr.onprogress = function () { };\r\n xdr.ontimeout = function () { };\r\n xdr.onerror = function () { };\r\n setTimeout(function () {\r\n xdr.send();\r\n }, 0);\r\n } else {\r\n\r\n xhr.onload = function () {\r\n var options = {\r\n status: xhr.status,\r\n statusText: xhr.statusText,\r\n headers: headers(xhr),\r\n url: responseURL()\r\n }\r\n var body = 'response' in xhr ? xhr.response : xhr.responseText\r\n resolve(new Response(body, options))\r\n }\r\n\r\n xhr.onerror = function () {\r\n reject(new TypeError('Network request failed'))\r\n }\r\n\r\n xhr.ontimeout = function () {\r\n reject(new TypeError('Network request failed'))\r\n }\r\n\r\n xhr.open(request.method, request.url, true)\r\n\r\n if (request.credentials === 'include') {\r\n xhr.withCredentials = true\r\n }\r\n\r\n if ('responseType' in xhr && support.blob) {\r\n xhr.responseType = 'blob'\r\n }\r\n\r\n request.headers.forEach(function (value, name) {\r\n xhr.setRequestHeader(name, value)\r\n })\r\n\r\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\r\n }\r\n })\r\n }\r\n self.fetch.polyfill = true\r\n})(typeof self !== 'undefined' ? self : this);","const showHide = (element, eventHandlers) => {\r\n let elementClick = false;\r\n element.classList.add('hide');\r\n\r\n let blockEvents = false;\r\n let elementFirstClick = true;\r\n\r\n element.addEventListener('mousedown', (e) => {\r\n e.stopPropagation();\r\n if (document.activeElement.parentNode.className.indexOf('search__input') !== -1) {\r\n elementClick = true;\r\n }\r\n \r\n });\r\n\r\n const blockPreceedingEvents = (time) => {\r\n blockEvents = true;\r\n setTimeout(() => {\r\n blockEvents = false;\r\n }, time);\r\n }\r\n\r\n eventHandlers.show = () => {\r\n if (!blockEvents) {\r\n element.classList.remove('hide');\r\n window.addEventListener('click', eventHandlers.hide);\r\n }\r\n };\r\n eventHandlers.hide = (e, sa) => {\r\n if (!blockEvents && !elementClick) {\r\n element.classList.add('hide');\r\n window.removeEventListener('click', eventHandlers.hide);\r\n }\r\n elementFirstClick = true;\r\n elementClick = false;\r\n };\r\n\r\n return {\r\n blockEvents: blockPreceedingEvents,\r\n show: eventHandlers.show,\r\n hide: eventHandlers.hide\r\n }\r\n}\r\n"]}