{"version":3,"file":"vendors/vendors-main-iconify.cjs.bundle.js","mappings":"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","sources":["webpack://typescript/./node_modules/@iconify/react/dist/iconify.cjs"],"sourcesContent":["'use client';\n\n'use strict';\n\nvar react = require('react');\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (\n // Name cannot be empty\n !name || // Must have body\n typeof icon.body !== \"string\" || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (\n // Name cannot be empty\n !name || // Parent must be set and point to existing icon\n typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n return data;\n}\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!// Check prefix: cannot be empty, unless allowSimpleName is enabled\n // Check name: cannot be empty\n ((allowSimpleName && icon.prefix === \"\" || !!icon.prefix) && !!icon.name);\n};\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n if (data) {\n return addIconToStorage(storage, icon.name, data);\n } else {\n storage.missing.add(icon.name);\n return true;\n }\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconLoaded(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : result;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nfunction splitSVGDefs(content, tag = \"defs\") {\n let defs = \"\";\n const index = content.indexOf(\"<\" + tag);\n while (index >= 0) {\n const start = content.indexOf(\">\", index);\n const end = content.indexOf(\"\" + tag);\n if (start === -1 || end === -1) {\n break;\n }\n const endEnd = content.indexOf(\">\", end);\n if (endEnd === -1) {\n break;\n }\n defs += content.slice(start + 1, end).trim();\n content = content.slice(0, index).trim() + content.slice(endEnd + 1);\n }\n return {\n defs,\n content\n };\n}\nfunction mergeDefsAndContent(defs, content) {\n return defs ? \"\" + defs + \"\" + content : content;\n}\nfunction wrapSVGContent(body, start, end) {\n const split = splitSVGDefs(body);\n return mergeDefsAndContent(split.defs, start + split.content + end);\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = wrapSVGContent(\n body,\n '',\n \"\"\n );\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n const viewBox = [box.left, box.top, boxWidth, boxHeight];\n attributes.viewBox = viewBox.join(\" \");\n return {\n attributes,\n viewBox,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction checkIconNamesForAPI(icons) {\n const valid = [];\n const invalid = [];\n icons.forEach((name) => {\n (name.match(matchIconName) ? valid : invalid).push(name);\n });\n return {\n valid,\n invalid\n };\n}\nfunction parseLoaderResponse(storage, icons, data) {\n function checkMissing() {\n const pending = storage.pendingIcons;\n icons.forEach((name) => {\n if (pending) {\n pending.delete(name);\n }\n if (!storage.icons[name]) {\n storage.missing.add(name);\n }\n });\n }\n if (data && typeof data === \"object\") {\n try {\n const parsed = addIconSet(storage, data);\n if (!parsed.length) {\n checkMissing();\n return;\n }\n } catch (err) {\n console.error(err);\n }\n }\n checkMissing();\n loadedNewIcons(storage);\n}\nfunction parsePossiblyAsyncResponse(response, callback) {\n if (response instanceof Promise) {\n response.then((data) => {\n callback(data);\n }).catch(() => {\n callback(null);\n });\n } else {\n callback(response);\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n if (!icons2 || !icons2.length) {\n return;\n }\n const customIconLoader = storage.loadIcon;\n if (storage.loadIcons && (icons2.length > 1 || !customIconLoader)) {\n parsePossiblyAsyncResponse(\n storage.loadIcons(icons2, prefix, provider),\n (data) => {\n parseLoaderResponse(storage, icons2, data);\n }\n );\n return;\n }\n if (customIconLoader) {\n icons2.forEach((name) => {\n const response = customIconLoader(name, prefix, provider);\n parsePossiblyAsyncResponse(response, (data) => {\n const iconSet = data ? {\n prefix,\n icons: {\n [name]: data\n }\n } : null;\n parseLoaderResponse(storage, [name], iconSet);\n });\n });\n return;\n }\n const { valid, invalid } = checkIconNamesForAPI(icons2);\n if (invalid.length) {\n parseLoaderResponse(storage, invalid, null);\n }\n if (!valid.length) {\n return;\n }\n const api = prefix.match(matchIconName) ? getAPIModule(provider) : null;\n if (!api) {\n parseLoaderResponse(storage, valid, null);\n return;\n }\n const params = api.prepare(provider, prefix, valid);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n parseLoaderResponse(storage, item.icons, data);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const list = newIcons[storage.provider][storage.prefix];\n if (list.length) {\n loadNewIcons(storage, list);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction setCustomIconsLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcons = loader;\n}\nfunction setCustomIconLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcon = loader;\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(//g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nlet policy;\nfunction createPolicy() {\n try {\n policy = window.trustedTypes.createPolicy(\"iconify\", {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n createHTML: (s) => s\n });\n } catch (err) {\n policy = null;\n }\n}\nfunction cleanUpInnerHTML(html) {\n if (policy === void 0) {\n createPolicy();\n }\n return policy ? policy.createHTML(html) : html;\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n WebkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Default values for customisations for inline icon\n */\nconst inlineDefaults = {\n ...defaultExtendedIconCustomisations,\n inline: true,\n};\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops, \n// Icon name\nname) => {\n // Get default properties\n const defaultProps = props.inline\n ? inlineDefaults\n : defaultExtendedIconCustomisations;\n // Get all customisations\n const customisations = mergeCustomisations(defaultProps, props);\n // Check mode\n const mode = props.mode || 'svg';\n // Create style\n const style = {};\n const customStyle = props.style || {};\n // Create SVG component properties\n const componentProps = {\n ...(mode === 'svg' ? svgDefaults : {}),\n };\n if (name) {\n const iconName = stringToIcon(name, false, true);\n if (iconName) {\n const classNames = ['iconify'];\n const props = [\n 'provider',\n 'prefix',\n ];\n for (const prop of props) {\n if (iconName[prop]) {\n classNames.push('iconify--' + iconName[prop]);\n }\n }\n componentProps.className = classNames.join(' ');\n }\n }\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case 'mode':\n case 'ssr':\n break;\n // Forward ref\n case '_ref':\n componentProps.ref = value;\n break;\n // Merge class names\n case 'className':\n componentProps[key] =\n (componentProps[key] ? componentProps[key] + ' ' : '') +\n value;\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: cleanUpInnerHTML(replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyReact')),\n };\n return react.createElement('svg', componentProps);\n }\n // Render with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return react.createElement('span', componentProps);\n};\n\n/**\n * Enable cache\n *\n * @deprecated No longer used\n */\nfunction enableCache(storage) {\n //\n}\n/**\n * Disable cache\n *\n * @deprecated No longer used\n */\nfunction disableCache(storage) {\n //\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\nfunction IconComponent(props) {\n const [mounted, setMounted] = react.useState(!!props.ssr);\n const [abort, setAbort] = react.useState({});\n // Get initial state\n function getInitialState(mounted) {\n if (mounted) {\n const name = props.icon;\n if (typeof name === 'object') {\n // Icon as object\n return {\n name: '',\n data: name,\n };\n }\n const data = getIconData(name);\n if (data) {\n return {\n name,\n data,\n };\n }\n }\n return {\n name: '',\n };\n }\n const [state, setState] = react.useState(getInitialState(!!props.ssr));\n // Cancel loading\n function cleanup() {\n const callback = abort.callback;\n if (callback) {\n callback();\n setAbort({});\n }\n }\n // Change state if it is different\n function changeState(newState) {\n if (JSON.stringify(state) !== JSON.stringify(newState)) {\n cleanup();\n setState(newState);\n return true;\n }\n }\n // Update state\n function updateState() {\n var _a;\n const name = props.icon;\n if (typeof name === 'object') {\n // Icon as object\n changeState({\n name: '',\n data: name,\n });\n return;\n }\n // New icon or got icon data\n const data = getIconData(name);\n if (changeState({\n name,\n data,\n })) {\n if (data === undefined) {\n // Load icon, update state when done\n const callback = loadIcons([name], updateState);\n setAbort({\n callback,\n });\n }\n else if (data) {\n // Icon data is available: trigger onLoad callback if present\n (_a = props.onLoad) === null || _a === void 0 ? void 0 : _a.call(props, name);\n }\n }\n }\n // Mounted state, cleanup for loader\n react.useEffect(() => {\n setMounted(true);\n return cleanup;\n }, []);\n // Icon changed or component mounted\n react.useEffect(() => {\n if (mounted) {\n updateState();\n }\n }, [props.icon, mounted]);\n // Render icon\n const { name, data } = state;\n if (!data) {\n return props.children\n ? props.children\n : props.fallback\n ? props.fallback\n : react.createElement('span', {});\n }\n return render({\n ...defaultIconProps,\n ...data,\n }, props, name);\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nconst Icon = react.forwardRef((props, ref) => IconComponent({\n ...props,\n _ref: ref,\n}));\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nconst InlineIcon = react.forwardRef((props, ref) => IconComponent({\n inline: true,\n ...props,\n _ref: ref,\n}));\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexports.Icon = Icon;\nexports.InlineIcon = InlineIcon;\nexports._api = _api;\nexports.addAPIProvider = addAPIProvider;\nexports.addCollection = addCollection;\nexports.addIcon = addIcon;\nexports.buildIcon = iconToSVG;\nexports.calculateSize = calculateSize;\nexports.disableCache = disableCache;\nexports.enableCache = enableCache;\nexports.getIcon = getIcon;\nexports.iconExists = iconLoaded;\nexports.iconLoaded = iconLoaded;\nexports.listIcons = listIcons;\nexports.loadIcon = loadIcon;\nexports.loadIcons = loadIcons;\nexports.replaceIDs = replaceIDs;\nexports.setCustomIconLoader = setCustomIconLoader;\nexports.setCustomIconsLoader = setCustomIconsLoader;\n"],"names":["react","defaultIconDimensions","Object","freeze","left","top","width","height","defaultIconTransformations","rotate","vFlip","hFlip","defaultIconProps","defaultExtendedIconProps","body","hidden","mergeIconData","parent","child","result","obj1","obj2","mergeIconTransformations","key","internalGetIconData","data","name","tree","icons","aliases","create","currentProps","parse","name2","forEach","parseIconSet","callback","names","not_found","Array","push","resolved","keys","concat","resolve","value","getIconsTree","item","optionalPropertyDefaults","provider","checkOptionalProps","defaults","prop","quicklyValidateIconSet","obj","prefix","icon","matchIconName","stringToIcon","validate","allowSimpleName","colonSeparated","split","slice","length","shift","pop","validateIconName","dashSeparated","join","dataStorage","getStorage","providerStorage","missing","Set","newStorage","addIconSet","storage","add","simpleNames","allowSimpleNames","allow","getIconData","iconName","has","addIcon","err","addIconToStorage","addCollection","added","iconLoaded","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","isNumber","test","num","parseFloat","isNaN","iconToSVG","customisations","fullIcon","fullCustomisations","box","props","transformations","tempValue","rotation","toString","floor","unshift","start","content","tag","defs","index","indexOf","end","endEnd","trim","splitSVGDefs","wrapSVGContent","customisationsWidth","customisationsHeight","boxWidth","boxHeight","attributes","setAttr","isUnsetKeyword","viewBox","regex","randomPrefix","Date","now","random","counter","replaceIDs","ids","match","exec","suffix","id","newID","escapedID","replace","RegExp","setAPIModule","getAPIModule","createAPIConfig","source","resources","path","maxURL","timeout","dataAfterTimeout","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","fetchModule","fetch","detectFetch","fetchAPIModule","prepare","results","maxLength","maxHostLength","host","max","url","calculateMaxLength","type","send","params","getPath","iconsList","URLSearchParams","uri","defaultError","then","response","status","json","setTimeout","shouldAbort","catch","removeCallback","storages","items","loaderCallbacks","filter","row","idCounter","defaultConfig","initRedundancy","cfg","queries","cleanup","query","payload","queryCallback","doneCallback","query2","done","resourcesCount","startIndex","list","nextIndex","startTime","lastError","queriesSent","timer","queue","doneCallbacks","resetTimer","clearTimeout","abort","subscribe","overwrite","failQuery","clearQueue","execNext","resource","status2","isError","queued","moduleResponse","queriesPending","sendQuery","error","find","setIndex","getIndex","emptyCallback$1","redundancyCache","sendAPIQuery","target","redundancy","api","cached","cachedReundancy","getRedundancyCache","emptyCallback","parseLoaderResponse","checkMissing","pending","pendingIcons","delete","console","iconsLoaderFlag","pendingCallbacksFlag","hasPending","oldLength","loaded","updateCallbacks","loadedNewIcons","parsePossiblyAsyncResponse","Promise","loadIcons","cleanedIcons","listToIcons","sortedIcons","sort","a","b","localeCompare","lastIcon","localStorage","sortIcons","callCallback","newIcons","sources","lastProvider","lastPrefix","providerNewIcons","pendingQueue","iconsToLoad","iconsQueueFlag","icons2","customIconLoader","loadIcon","valid","invalid","checkIconNamesForAPI","loadNewIcons","pendingSources","bind","storeCallback","separator","flipFromString","custom","flip","str","rotateFromString","defaultValue","units","value2","parseInt","policy","cleanUpInnerHTML","html","window","trustedTypes","createPolicy","createHTML","s","defaultExtendedIconCustomisations","inline","svgDefaults","commonProps","display","monotoneProps","backgroundColor","coloredProps","propsToAdd","Image","Repeat","Size","propsToAddTo","WebkitMask","mask","background","inlineDefaults","fixSize","document","_window","IconifyPreload","preload","e","IconifyProviders","providers","IconComponent","mounted","setMounted","useState","ssr","setAbort","state","setState","getInitialState","changeState","newState","JSON","stringify","updateState","_a","undefined","onLoad","call","useEffect","defaultProps","valueType","mergeCustomisations","mode","style","customStyle","componentProps","classNames","className","ref","color","renderAttribs","verticalAlign","assign","localCounter","dangerouslySetInnerHTML","__html","createElement","useMask","renderAttribsHTML","attr","iconToHTML","svg","encodeSVGforURL","svgToData","render","children","fallback","Icon","forwardRef","_ref","InlineIcon","_api","setFetch","fetch2","getFetch","listAPIProviders","exports","buildIcon","disableCache","enableCache","getIcon","iconExists","listIcons","allIcons","provider2","prefix2","map","fulfill","reject","iconObj","setCustomIconLoader","loader","setCustomIconsLoader"],"sourceRoot":""}