{"version":3,"file":"iconify-nnhZHWfY.js","sources":["../../../node_modules/@iconify/vue/dist/iconify.mjs"],"sourcesContent":["import { h, defineComponent } from 'vue';\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 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 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 provider,\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\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 'xmlns:xlink': '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 * Aliases for customisations.\n * In Vue 'v-' properties are reserved, so v-flip must be renamed\n */\nconst customisationAliases = {};\n['horizontal', 'vertical'].forEach((prefix) => {\n const attr = prefix.slice(0, 1) + 'Flip';\n // vertical-flip\n customisationAliases[prefix + '-flip'] = attr;\n // v-flip\n customisationAliases[prefix.slice(0, 1) + '-flip'] = attr;\n // verticalFlip\n customisationAliases[prefix + 'Flip'] = attr;\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 // Split properties\n const customisations = mergeCustomisations(defaultExtendedIconCustomisations, props);\n const componentProps = { ...svgDefaults };\n // Check mode\n const mode = props.mode || 'svg';\n // Copy style\n const style = {};\n const propsStyle = props.style;\n const customStyle = typeof propsStyle === 'object' && !(propsStyle instanceof Array)\n ? propsStyle\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 'onLoad':\n case 'mode':\n case 'ssr':\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: override 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 // Vue transforms 'aria-hidden' property to 'ariaHidden'\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n default: {\n const alias = customisationAliases[key];\n if (alias) {\n // Aliases for boolean customisations\n if (value === true || value === 'true' || value === 1) {\n customisations[alias] = true;\n }\n }\n else if (defaultExtendedIconCustomisations[key] === void 0) {\n // Copy missing property if it does not exist in customisations\n componentProps[key] = value;\n }\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 innerHTML and style to props\n componentProps['innerHTML'] = replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyVue');\n // Render icon\n return h('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 h('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}\n/**\n * Empty icon data, rendered when icon is not available\n */\nconst emptyIcon = {\n ...defaultIconProps,\n body: '',\n};\nconst Icon = defineComponent({\n // Do not inherit other attributes: it is handled by render()\n inheritAttrs: false,\n // Set initial data\n data() {\n return {\n // Current icon name\n _name: '',\n // Loading\n _loadingIcon: null,\n // Mounted status\n iconMounted: false,\n // Callback counter to trigger re-render\n counter: 0,\n };\n },\n mounted() {\n // Mark as mounted\n this.iconMounted = true;\n },\n unmounted() {\n this.abortLoading();\n },\n methods: {\n abortLoading() {\n if (this._loadingIcon) {\n this._loadingIcon.abort();\n this._loadingIcon = null;\n }\n },\n // Get data for icon to render or null\n getIcon(icon, onload, customise) {\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._name = '';\n this.abortLoading();\n return {\n data: icon,\n };\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this.abortLoading();\n return null;\n }\n // Load icon\n let data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loadingIcon || this._loadingIcon.name !== icon) {\n // New icon to load\n this.abortLoading();\n this._name = '';\n if (data !== null) {\n // Icon was not loaded\n this._loadingIcon = {\n name: icon,\n abort: loadIcons([iconName], () => {\n this.counter++;\n }),\n };\n }\n }\n return null;\n }\n // Icon data is available\n this.abortLoading();\n if (this._name !== icon) {\n this._name = icon;\n if (onload) {\n onload(icon);\n }\n }\n // Customise icon\n if (customise) {\n // Clone data and customise it\n data = Object.assign({}, data);\n const customised = customise(data.body, iconName.name, iconName.prefix, iconName.provider);\n if (typeof customised === 'string') {\n data.body = customised;\n }\n }\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n return { data, classes };\n },\n },\n // Render icon\n render() {\n // Re-render when counter changes\n this.counter;\n const props = this.$attrs;\n // Get icon data\n const icon = this.iconMounted || props.ssr\n ? this.getIcon(props.icon, props.onLoad, props.customise)\n : null;\n // Validate icon object\n if (!icon) {\n return render(emptyIcon, props);\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n class: (typeof props['class'] === 'string'\n ? props['class'] + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps);\n },\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconLoaded as iconExists, iconLoaded, listIcons, loadIcon, loadIcons, replaceIDs, setCustomIconLoader, setCustomIconsLoader };\n"],"names":["matchIconName","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","name2","prefix","result","validateIconName","name","dashSeparated","icon","defaultIconDimensions","defaultIconTransformations","defaultIconProps","defaultExtendedIconProps","mergeIconTransformations","obj1","obj2","rotate","mergeIconData","parent","child","key","getIconsTree","data","names","icons","aliases","resolved","resolve","internalGetIconData","tree","currentProps","parse","parseIconSet","callback","item","optionalPropertyDefaults","checkOptionalProps","defaults","prop","quicklyValidateIconSet","obj","dataStorage","newStorage","getStorage","providerStorage","addIconSet","storage","addIconToStorage","simpleNames","allowSimpleNames","allow","getIconData","iconName","addIcon","addCollection","added","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","size","ratio","precision","oldParts","newParts","code","isNumber","num","splitSVGDefs","content","tag","defs","index","start","end","endEnd","mergeDefsAndContent","wrapSVGContent","body","split","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","box","props","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","boxWidth","boxHeight","width","height","attributes","setAttr","viewBox","regex","randomPrefix","counter","replaceIDs","ids","match","suffix","id","newID","escapedID","setAPIModule","getAPIModule","createAPIConfig","source","resources","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","detectFetch","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","status","prepare","results","maxLength","type","length","getPath","send","host","params","path","iconsList","urlParams","uri","defaultError","response","fetchAPIModule","sortIcons","a","b","lastIcon","localStorage","list","removeCallback","storages","items","row","updateCallbacks","hasPending","oldLength","idCounter","storeCallback","pendingSources","abort","listToIcons","defaultConfig","sendQuery","payload","query","done","resourcesCount","startIndex","nextIndex","startTime","queriesSent","lastError","timer","queue","doneCallbacks","resetTimer","subscribe","overwrite","getQueryStatus","failQuery","clearQueue","moduleResponse","isError","queued","execNext","resource","status2","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","error","find","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","target","api","cached","moduleKey","emptyCallback","loadedNewIcons","checkIconNamesForAPI","valid","invalid","parseLoaderResponse","checkMissing","pending","err","parsePossiblyAsyncResponse","loadNewIcons","icons2","customIconLoader","iconSet","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","sources","lastProvider","lastPrefix","providerNewIcons","pendingQueue","mergeCustomisations","valueType","separator","flipFromString","custom","flip","str","rotateFromString","defaultValue","units","value2","iconToHTML","renderAttribsHTML","attr","encodeSVGforURL","svg","svgToData","svgToURL","defaultExtendedIconCustomisations","svgDefaults","commonProps","monotoneProps","coloredProps","propsToAdd","propsToAddTo","customisationAliases","fixSize","render","componentProps","mode","style","propsStyle","customStyle","alias","renderAttribs","localCounter","h","useMask","html","_window","preload","providers","emptyIcon","Icon","defineComponent","onload","customise","customised","classes","newProps"],"mappings":"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","x_google_ignoreList":[0]}