{"version":3,"sources":["webpack:///./src/js/react-components/news-listing.js","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/filter-obj/index.js","webpack:///./src/js/react-components/hooks/useFetch.js"],"names":["decode","str","replace","match","code","String","fromCharCode","parseInt","Filters","filters","setFilters","selectedFilters","length","className","map","filter","aria-label","key","Value","defaultValue","onChange","e","label","value","target","Options","option","index","ParentLink","Label","Fragment","disabled","Disabled","suboption","replaceAll","renderOptions","Listing","response","item","Id","dateTime","Date","href","Url","Heading","Summary","Thumbnail","src","alt","loading","NewsListing","endpointUrl","rawFilters","loadMoreLabel","endpointUrlRssFeed","logoAltRssFeed","logoSrcRssFeed","labelRssFeed","topic","URL","document","location","searchParams","get","useState","results","setResults","page","setPage","current","dropdowns","useRef","JSON","parse","query","stringifiedUrl","stringifyUrl","url","error","isLoading","useFetch","useEffect","Results","prev","Object","fromEntries","entries","Boolean","RRSFilter","rssLinks","defaultOption","options","push","RssLabel","parentLink","encodeURIComponent","selectedSubOption","rel","getRssLinks","TotalPages","onClick","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","TypeError","encode","strict","removeHash","input","hashStart","indexOf","slice","extract","queryStart","parseValue","parseNumbers","Number","isNaN","trim","parseBooleans","toLowerCase","assign","sort","arrayFormat","arrayFormatSeparator","formatter","result","accumulator","exec","undefined","concat","isArray","includes","isEncodedArray","newValue","split","test","arrayValue","parserForArrayFormat","ret","create","param","keys","k","reduce","Array","keysSorter","a","b","exports","stringify","object","shouldFilter","skipNull","skipEmptyString","join","keyValueSep","encoderForArrayFormat","objectCopy","x","parseUrl","url_","hash","parseFragmentIdentifier","fragmentIdentifier","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","module","charCodeAt","toString","toUpperCase","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","left","right","prototype","call","tokens","i","encodedURI","replaceMap","customDecodeURIComponent","string","separator","separatorIndex","obj","predicate","isArr","val","setResponse","setError","setIsLoading","abortController","AbortController","async","json","window","fetch","signal","then","res","fetchData","abort"],"mappings":"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","file":"19.bundle.js","sourcesContent":["/* eslint-disable indent */\nimport { stringifyUrl } from 'query-string'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { useFetch } from './hooks/useFetch'\n\nfunction decode(str) {\n return str.replace(/\\\\u([0-9A-F]{4})/g, (match, code) => {\n return String.fromCharCode(parseInt(code, 16));\n });\n}\n\nfunction Filters({ filters, setFilters, selectedFilters }) {\n const renderOptions = (option, index) => {\n\n if (option.ParentLink?.Label) {\n return (\n \n \n {decode(option.ParentLink.Label)}\n \n\n {option.Options.map((suboption, index) => (\n \n ))}\n \n )\n } else if (option.Options) {\n return (\n \n {option.Options.map((suboption) => (\n \n ))}\n \n )\n }\n\n return (\n \n )\n }\n\n return filters?.length ? (\n
\n {filters.map((filter) => (\n \n setFilters({\n label: filter.Value,\n value: e.target.value\n })\n }\n value={selectedFilters[filter.Value]}\n >\n {filter.Options?.length &&\n filter.Options.map((option, index) => renderOptions(option, index))}\n \n ))}\n
\n ) : null\n}\n\nfunction Listing({ response }) {\n return response ? (\n
\n {response.map((item) => (\n
\n
\n \n

\n \n {item.Heading}\n \n

\n

{item.Summary}

\n
\n {item.Thumbnail ? (\n \n ) : null}\n
\n ))}\n
\n ) : null\n}\n\nfunction NewsListing({ endpointUrl, filters: rawFilters, loadMoreLabel, endpointUrlRssFeed, logoAltRssFeed, logoSrcRssFeed, labelRssFeed }) {\n const params = (new URL(document.location)).searchParams;\n const topic = params.get('topic')\n const [filters, setFilters] = useState({})\n const [results, setResults] = useState([])\n const [page, setPage] = useState(1)\n const { current: dropdowns } = useRef(JSON.parse(rawFilters))\n const query = {\n ...filters,\n ...(page && { page })\n }\n const stringifiedUrl = stringifyUrl({ url: endpointUrl, query })\n const { response, error, isLoading } = useFetch(stringifiedUrl)\n\n function handleFilterChange(filter) {\n setResults([])\n setPage(1)\n setFilters((prev) =>\n Object.fromEntries(\n Object.entries({ ...prev, [filter.label]: filter.value }).filter(([, value]) =>\n Boolean(value)\n )\n )\n )\n }\n\n function getRssLinks() {\n const RRSFilter = dropdowns.filter((item) => item.Value === 'topic')[0]?.Options;\n const rssLinks = [];\n const defaultOption = RRSFilter?.filter((item) => !item.ParentLink.Value);\n const options = RRSFilter?.filter((item) => item.ParentLink.Value);\n\n if (defaultOption) {\n defaultOption[0].Options.map((item) => {\n rssLinks.push({ label: item.RssLabel, url: endpointUrlRssFeed });\n });\n }\n\n if (filters.topic) {\n if (options) {\n options.map((option) => {\n\n const parentLink = option.ParentLink;\n if (parentLink.Value === filters.topic) {\n rssLinks.push({ label: parentLink.RssLabel, url: `${endpointUrlRssFeed}&topic=${encodeURIComponent(parentLink.Value)}` });\n } else {\n const selectedSubOption = option.Options?.filter((item) => item.Value === filters.topic);\n if (selectedSubOption.length) {\n rssLinks.push({ label: option.ParentLink.RssLabel, url: `${endpointUrlRssFeed}&topic=${encodeURIComponent(option.ParentLink.Value)}` });\n rssLinks.push({ label: selectedSubOption[0]?.RssLabel, url: `${endpointUrlRssFeed}&topic=${encodeURIComponent(selectedSubOption[0]?.Value)}` });\n }\n }\n });\n }\n }\n\n return (\n
\n {logoAltRssFeed}\n

{labelRssFeed}

\n {rssLinks.map((item, index) => {\n return (\n
\n \n {item.label}\n \n
\n );\n })}\n
\n )\n }\n\n function handleFetchMore() {\n setPage((prev) => prev + 1)\n }\n\n useEffect(() => {\n if (response?.Results) setResults((prev) => [...prev, ...response.Results])\n }, [response])\n\n useEffect(() => {\n if (topic) {\n setFilters((prev) => ({ ...prev, topic }))\n }\n }, []);\n\n return (\n <>\n \n {getRssLinks()}\n {results?.length ? : null}\n {page < response?.TotalPages ? (\n
\n \n
\n ) : null}\n \n )\n}\n\nexport default NewsListing\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","import { useEffect, useState } from 'react'\n\nexport function useFetch(url, options) {\n const [response, setResponse] = useState(null)\n const [error, setError] = useState(null)\n const [isLoading, setIsLoading] = useState(false)\n\n useEffect(() => {\n const abortController = new AbortController()\n async function fetchData() {\n setIsLoading(true)\n try {\n const json = await window\n .fetch(url, {\n ...options,\n signal: abortController.signal\n })\n .then((res) => res.json())\n setResponse(json)\n } catch (error) {\n setError(error)\n } finally {\n setIsLoading(false)\n }\n }\n\n fetchData()\n\n return () => abortController.abort()\n }, [url, options])\n\n return { response, error, isLoading }\n}\n"],"sourceRoot":""}