{"version":3,"file":"vendors-url-polyfill~polyfills.chunk.dfd93c856231558bf4c4.js","mappings":"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","sources":["webpack://Kristiania.Web/./node_modules/url-polyfill/url-polyfill.js"],"sourcesContent":["(function(global) {\r\n /**\r\n * Polyfill URLSearchParams\r\n *\r\n * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js\r\n */\r\n\r\n var checkIfIteratorIsSupported = function() {\r\n try {\r\n return !!Symbol.iterator;\r\n } catch (error) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var iteratorSupported = checkIfIteratorIsSupported();\r\n\r\n var createIterator = function(items) {\r\n var iterator = {\r\n next: function() {\r\n var value = items.shift();\r\n return { done: value === void 0, value: value };\r\n }\r\n };\r\n\r\n if (iteratorSupported) {\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 /**\r\n * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing\r\n * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.\r\n */\r\n var serializeParam = function(value) {\r\n return encodeURIComponent(value).replace(/%20/g, '+');\r\n };\r\n\r\n var deserializeParam = function(value) {\r\n return decodeURIComponent(String(value).replace(/\\+/g, ' '));\r\n };\r\n\r\n var polyfillURLSearchParams = function() {\r\n\r\n var URLSearchParams = function(searchString) {\r\n Object.defineProperty(this, '_entries', { writable: true, value: {} });\r\n var typeofSearchString = typeof searchString;\r\n\r\n if (typeofSearchString === 'undefined') {\r\n // do nothing\r\n } else if (typeofSearchString === 'string') {\r\n if (searchString !== '') {\r\n this._fromString(searchString);\r\n }\r\n } else if (searchString instanceof URLSearchParams) {\r\n var _this = this;\r\n searchString.forEach(function(value, name) {\r\n _this.append(name, value);\r\n });\r\n } else if ((searchString !== null) && (typeofSearchString === 'object')) {\r\n if (Object.prototype.toString.call(searchString) === '[object Array]') {\r\n for (var i = 0; i < searchString.length; i++) {\r\n var entry = searchString[i];\r\n if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {\r\n this.append(entry[0], entry[1]);\r\n } else {\r\n throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\\'s input');\r\n }\r\n }\r\n } else {\r\n for (var key in searchString) {\r\n if (searchString.hasOwnProperty(key)) {\r\n this.append(key, searchString[key]);\r\n }\r\n }\r\n }\r\n } else {\r\n throw new TypeError('Unsupported input\\'s type for URLSearchParams');\r\n }\r\n };\r\n\r\n var proto = URLSearchParams.prototype;\r\n\r\n proto.append = function(name, value) {\r\n if (name in this._entries) {\r\n this._entries[name].push(String(value));\r\n } else {\r\n this._entries[name] = [String(value)];\r\n }\r\n };\r\n\r\n proto.delete = function(name) {\r\n delete this._entries[name];\r\n };\r\n\r\n proto.get = function(name) {\r\n return (name in this._entries) ? this._entries[name][0] : null;\r\n };\r\n\r\n proto.getAll = function(name) {\r\n return (name in this._entries) ? this._entries[name].slice(0) : [];\r\n };\r\n\r\n proto.has = function(name) {\r\n return (name in this._entries);\r\n };\r\n\r\n proto.set = function(name, value) {\r\n this._entries[name] = [String(value)];\r\n };\r\n\r\n proto.forEach = function(callback, thisArg) {\r\n var entries;\r\n for (var name in this._entries) {\r\n if (this._entries.hasOwnProperty(name)) {\r\n entries = this._entries[name];\r\n for (var i = 0; i < entries.length; i++) {\r\n callback.call(thisArg, entries[i], name, this);\r\n }\r\n }\r\n }\r\n };\r\n\r\n proto.keys = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push(name);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.values = function() {\r\n var items = [];\r\n this.forEach(function(value) {\r\n items.push(value);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.entries = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n if (iteratorSupported) {\r\n proto[Symbol.iterator] = proto.entries;\r\n }\r\n\r\n proto.toString = function() {\r\n var searchArray = [];\r\n this.forEach(function(value, name) {\r\n searchArray.push(serializeParam(name) + '=' + serializeParam(value));\r\n });\r\n return searchArray.join('&');\r\n };\r\n\r\n\r\n global.URLSearchParams = URLSearchParams;\r\n };\r\n\r\n var checkIfURLSearchParamsSupported = function() {\r\n try {\r\n var URLSearchParams = global.URLSearchParams;\r\n\r\n return (\r\n (new URLSearchParams('?a=1').toString() === 'a=1') &&\r\n (typeof URLSearchParams.prototype.set === 'function') &&\r\n (typeof URLSearchParams.prototype.entries === 'function')\r\n );\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n if (!checkIfURLSearchParamsSupported()) {\r\n polyfillURLSearchParams();\r\n }\r\n\r\n var proto = global.URLSearchParams.prototype;\r\n\r\n if (typeof proto.sort !== 'function') {\r\n proto.sort = function() {\r\n var _this = this;\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n if (!_this._entries) {\r\n _this.delete(name);\r\n }\r\n });\r\n items.sort(function(a, b) {\r\n if (a[0] < b[0]) {\r\n return -1;\r\n } else if (a[0] > b[0]) {\r\n return +1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n if (_this._entries) { // force reset because IE keeps keys index\r\n _this._entries = {};\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n this.append(items[i][0], items[i][1]);\r\n }\r\n };\r\n }\r\n\r\n if (typeof proto._fromString !== 'function') {\r\n Object.defineProperty(proto, '_fromString', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function(searchString) {\r\n if (this._entries) {\r\n this._entries = {};\r\n } else {\r\n var keys = [];\r\n this.forEach(function(value, name) {\r\n keys.push(name);\r\n });\r\n for (var i = 0; i < keys.length; i++) {\r\n this.delete(keys[i]);\r\n }\r\n }\r\n\r\n searchString = searchString.replace(/^\\?/, '');\r\n var attributes = searchString.split('&');\r\n var attribute;\r\n for (var i = 0; i < attributes.length; i++) {\r\n attribute = attributes[i].split('=');\r\n this.append(\r\n deserializeParam(attribute[0]),\r\n (attribute.length > 1) ? deserializeParam(attribute[1]) : ''\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n // HTMLAnchorElement\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n\r\n(function(global) {\r\n /**\r\n * Polyfill URL\r\n *\r\n * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js\r\n */\r\n\r\n var checkIfURLIsSupported = function() {\r\n try {\r\n var u = new global.URL('b', 'http://a');\r\n u.pathname = 'c d';\r\n return (u.href === 'http://a/c%20d') && u.searchParams;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var polyfillURL = function() {\r\n var _URL = global.URL;\r\n\r\n var URL = function(url, base) {\r\n if (typeof url !== 'string') url = String(url);\r\n if (base && typeof base !== 'string') base = String(base);\r\n\r\n // Only create another document if the base is different from current location.\r\n var doc = document, baseElement;\r\n if (base && (global.location === void 0 || base !== global.location.href)) {\r\n base = base.toLowerCase();\r\n doc = document.implementation.createHTMLDocument('');\r\n baseElement = doc.createElement('base');\r\n baseElement.href = base;\r\n doc.head.appendChild(baseElement);\r\n try {\r\n if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);\r\n } catch (err) {\r\n throw new Error('URL unable to set base ' + base + ' due to ' + err);\r\n }\r\n }\r\n\r\n var anchorElement = doc.createElement('a');\r\n anchorElement.href = url;\r\n if (baseElement) {\r\n doc.body.appendChild(anchorElement);\r\n anchorElement.href = anchorElement.href; // force href to refresh\r\n }\r\n\r\n var inputElement = doc.createElement('input');\r\n inputElement.type = 'url';\r\n inputElement.value = url;\r\n\r\n if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || (!inputElement.checkValidity() && !base)) {\r\n throw new TypeError('Invalid URL');\r\n }\r\n\r\n Object.defineProperty(this, '_anchorElement', {\r\n value: anchorElement\r\n });\r\n\r\n\r\n // create a linked searchParams which reflect its changes on URL\r\n var searchParams = new global.URLSearchParams(this.search);\r\n var enableSearchUpdate = true;\r\n var enableSearchParamsUpdate = true;\r\n var _this = this;\r\n ['append', 'delete', 'set'].forEach(function(methodName) {\r\n var method = searchParams[methodName];\r\n searchParams[methodName] = function() {\r\n method.apply(searchParams, arguments);\r\n if (enableSearchUpdate) {\r\n enableSearchParamsUpdate = false;\r\n _this.search = searchParams.toString();\r\n enableSearchParamsUpdate = true;\r\n }\r\n };\r\n });\r\n\r\n Object.defineProperty(this, 'searchParams', {\r\n value: searchParams,\r\n enumerable: true\r\n });\r\n\r\n var search = void 0;\r\n Object.defineProperty(this, '_updateSearchParams', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function() {\r\n if (this.search !== search) {\r\n search = this.search;\r\n if (enableSearchParamsUpdate) {\r\n enableSearchUpdate = false;\r\n this.searchParams._fromString(this.search);\r\n enableSearchUpdate = true;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n var proto = URL.prototype;\r\n\r\n var linkURLWithAnchorAttribute = function(attributeName) {\r\n Object.defineProperty(proto, attributeName, {\r\n get: function() {\r\n return this._anchorElement[attributeName];\r\n },\r\n set: function(value) {\r\n this._anchorElement[attributeName] = value;\r\n },\r\n enumerable: true\r\n });\r\n };\r\n\r\n ['hash', 'host', 'hostname', 'port', 'protocol']\r\n .forEach(function(attributeName) {\r\n linkURLWithAnchorAttribute(attributeName);\r\n });\r\n\r\n Object.defineProperty(proto, 'search', {\r\n get: function() {\r\n return this._anchorElement['search'];\r\n },\r\n set: function(value) {\r\n this._anchorElement['search'] = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperties(proto, {\r\n\r\n 'toString': {\r\n get: function() {\r\n var _this = this;\r\n return function() {\r\n return _this.href;\r\n };\r\n }\r\n },\r\n\r\n 'href': {\r\n get: function() {\r\n return this._anchorElement.href.replace(/\\?$/, '');\r\n },\r\n set: function(value) {\r\n this._anchorElement.href = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'pathname': {\r\n get: function() {\r\n return this._anchorElement.pathname.replace(/(^\\/?)/, '/');\r\n },\r\n set: function(value) {\r\n this._anchorElement.pathname = value;\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'origin': {\r\n get: function() {\r\n // get expected port from protocol\r\n var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];\r\n // add port to origin if, expected port is different than actual port\r\n // and it is not empty f.e http://foo:8080\r\n // 8080 != 80 && 8080 != ''\r\n var addPortToOrigin = this._anchorElement.port != expectedPort &&\r\n this._anchorElement.port !== '';\r\n\r\n return this._anchorElement.protocol +\r\n '//' +\r\n this._anchorElement.hostname +\r\n (addPortToOrigin ? (':' + this._anchorElement.port) : '');\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'password': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'username': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n });\r\n\r\n URL.createObjectURL = function(blob) {\r\n return _URL.createObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n URL.revokeObjectURL = function(url) {\r\n return _URL.revokeObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n global.URL = URL;\r\n\r\n };\r\n\r\n if (!checkIfURLIsSupported()) {\r\n polyfillURL();\r\n }\r\n\r\n if ((global.location !== void 0) && !('origin' in global.location)) {\r\n var getOrigin = function() {\r\n return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');\r\n };\r\n\r\n try {\r\n Object.defineProperty(global.location, 'origin', {\r\n get: getOrigin,\r\n enumerable: true\r\n });\r\n } catch (e) {\r\n setInterval(function() {\r\n global.location.origin = getOrigin();\r\n }, 100);\r\n }\r\n }\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n"],"names":["global","iteratorSupported","Symbol","iterator","error","checkIfIteratorIsSupported","createIterator","items","next","value","shift","done","serializeParam","encodeURIComponent","replace","deserializeParam","decodeURIComponent","String","URLSearchParams","toString","prototype","set","entries","e","checkIfURLSearchParamsSupported","searchString","Object","defineProperty","this","writable","typeofSearchString","_fromString","_this","forEach","name","append","TypeError","call","i","length","entry","key","hasOwnProperty","proto","_entries","push","delete","get","getAll","slice","has","callback","thisArg","keys","values","searchArray","join","polyfillURLSearchParams","sort","a","b","enumerable","configurable","attribute","attributes","split","g","window","self","_URL","URL","u","pathname","href","searchParams","checkIfURLIsSupported","url","base","baseElement","doc","document","location","toLowerCase","implementation","createHTMLDocument","createElement","head","appendChild","indexOf","Error","err","anchorElement","body","inputElement","type","protocol","test","checkValidity","search","enableSearchUpdate","enableSearchParamsUpdate","methodName","method","apply","arguments","attributeName","_anchorElement","linkURLWithAnchorAttribute","_updateSearchParams","defineProperties","expectedPort","addPortToOrigin","port","hostname","createObjectURL","blob","revokeObjectURL","getOrigin","setInterval","origin"],"sourceRoot":""}