/
home
/
henzagold
/
customerB
/
export
/
js
/
File Upload :
llllll
Current File: /home/henzagold/customerB/export/js/chunk-2d0d3fbe.12d12cf3.js.map
{"version":3,"sources":["webpack:///./node_modules/@iconify/vue2/dist/iconify.mjs"],"names":["matchName","iconDefaults","Object","freeze","left","top","width","height","rotate","vFlip","hFlip","fullIcon","data","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","split","slice","length","shift","name2","pop","prefix","result","name","validateIcon","dashSeparated","join","icon","match","mergeIconData","alias","key","prop","getIconData$1","full","getIcon","iteration","icons","assign","aliases","item","result2","parent","chars","isVariation","parseIconSet","callback","options","names","not_found","Array","forEach","push","keys","iconData","parseAliases","optionalProperties","quicklyValidateIconSet","obj","body","storageVersion","storage$1","create","w","window","self","_iconifyStorage","version","storage","err","newStorage","missing","getStorage","providerStorage","addIconSet","storage2","t","Date","now","addIconToStorage","getIconFromStorage","simpleNames","allowSimpleNames","allow","getIconData","addIcon","addCollection","added","defaults","inline","hAlign","vAlign","mergeCustomisations","defaults2","attr","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","isNumber","test","num","parseFloat","isNaN","preserveAspectRatio","props","iconToSVG","customisations","box","transformations","tempValue","rotation","toString","floor","unshift","attributes","viewBox","regex","randomPrefix","random","counter","replaceIDs","ids","exec","id","newID","escapedID","replace","RegExp","setAPIModule","getAPIModule","createAPIConfig","source","resources","path","maxURL","timeout","index","dataAfterTimeout","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","concat","mergeParams","base","params","hasParams","indexOf","paramToString","encodeURIComponent","Error","maxLengthCache","pathCache","detectFetch","fetch","fetchModule","calculateMaxLength","maxHostLength","host","max","url","cacheKey","shouldAbort","status","prepare","results","maxLength","type","getPath","send","iconsList","uri","defaultError","then","response","json","setTimeout","catch","fetchAPIModule","sortIcons","loaded","pending","sort","a","b","localeCompare","lastIcon","localStorage","list","callbacks","pendingUpdates","removeCallback","sources","providerCallbacks","items","filter","row","updateCallbacks","providerPendingUpdates","hasPending","oldLength","abort","idCounter","storeCallback","pendingSources","bind","listToIcons","defaultConfig","sendQuery","payload","query","done","resourcesCount","startIndex","nextIndex","startTime","lastError","queriesSent","timer","queue","doneCallbacks","resetTimer","clearTimeout","subscribe","overwrite","getQueryStatus","queriesPending","failQuery","clearQueue","moduleResponse","isError","queued","execNext","resource","status2","setConfig","newConfig","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","error","find","instance","setIndex","getIndex","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","target","api","cached","moduleKey","cache","emptyCallback","pendingIcons","iconsToLoad","loaderFlags","queueFlags","loadedNewIcons","providerLoaderFlags","errorsCache","loadNewIcons","time","console","providerIconsToLoad","providerQueueFlags","providerPendingIcons","icons2","parsed","store","err2","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","lastProvider","lastPrefix","providerNewIcons","pendingQueue","cacheVersion","cachePrefix","countKey","versionKey","hour","cacheExpiration","local","session","count","emptyList","_window","getGlobal","setCount","setItem","getCount","count2","getItem","total","parseInt","initCache","destroyCache","i","removeItem","loadCache","minTime","load","func","valid","JSON","parse","storeCache","stringify","separator","flipFromString","custom","flip","str","trim","alignmentFromString","align","rotateFromString","defaultValue","units","value2","svgDefaults","customisationAliases","suffix","boolean","toLowerCase","render","createElement","contextData","componentProps","style","color","verticalAlign","localCounter","attrs","domProps","innerHTML","class","document","IconifyPreload","preload","e","IconifyProviders","providers","emptyIcon","Icon","extend","inheritAttrs","iconMounted","this","_name","_loadingIcon","abortLoading","methods","onload","iconName","$forceUpdate","classes","$attrs","context","$data","onLoad"],"mappings":"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","file":"js/chunk-2d0d3fbe.12d12cf3.js","sourcesContent":["import Vue from 'vue';\n\nconst matchName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst iconDefaults = Object.freeze({\n left: 0,\n top: 0,\n width: 16,\n height: 16,\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nfunction fullIcon(data) {\n return { ...iconDefaults, ...data };\n}\n\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 provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIcon(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 && !validateIcon(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIcon(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIcon = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchName)) && icon.name.match(matchName));\n};\n\nfunction mergeIconData(icon, alias) {\n const result = { ...icon };\n for (const key in iconDefaults) {\n const prop = key;\n if (alias[prop] !== void 0) {\n const value = alias[prop];\n if (result[prop] === void 0) {\n result[prop] = value;\n continue;\n }\n switch (prop) {\n case \"rotate\":\n result[prop] = (result[prop] + value) % 4;\n break;\n case \"hFlip\":\n case \"vFlip\":\n result[prop] = value !== result[prop];\n break;\n default:\n result[prop] = value;\n }\n }\n }\n return result;\n}\n\nfunction getIconData$1(data, name, full = false) {\n function getIcon(name2, iteration) {\n if (data.icons[name2] !== void 0) {\n return Object.assign({}, data.icons[name2]);\n }\n if (iteration > 5) {\n return null;\n }\n const aliases = data.aliases;\n if (aliases && aliases[name2] !== void 0) {\n const item = aliases[name2];\n const result2 = getIcon(item.parent, iteration + 1);\n if (result2) {\n return mergeIconData(result2, item);\n }\n return result2;\n }\n const chars = data.chars;\n if (!iteration && chars && chars[name2] !== void 0) {\n return getIcon(chars[name2], iteration + 1);\n }\n return null;\n }\n const result = getIcon(name, 0);\n if (result) {\n for (const key in iconDefaults) {\n if (result[key] === void 0 && data[key] !== void 0) {\n result[key] = data[key];\n }\n }\n }\n return result && full ? fullIcon(result) : result;\n}\n\nfunction isVariation(item) {\n for (const key in iconDefaults) {\n if (item[key] !== void 0) {\n return true;\n }\n }\n return false;\n}\nfunction parseIconSet(data, callback, options) {\n options = options || {};\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 icons = data.icons;\n Object.keys(icons).forEach((name) => {\n const iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n const parseAliases = options.aliases || \"all\";\n if (parseAliases !== \"none\" && typeof data.aliases === \"object\") {\n const aliases = data.aliases;\n Object.keys(aliases).forEach((name) => {\n if (parseAliases === \"variations\" && isVariation(aliases[name])) {\n return;\n }\n const iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n }\n return names;\n}\n\nconst optionalProperties = {\n provider: \"string\",\n aliases: \"object\",\n not_found: \"object\"\n};\nfor (const prop in iconDefaults) {\n optionalProperties[prop] = typeof iconDefaults[prop];\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 for (const prop in optionalProperties) {\n if (obj[prop] !== void 0 && typeof obj[prop] !== optionalProperties[prop]) {\n return null;\n }\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchName) || typeof icon.body !== \"string\") {\n return null;\n }\n for (const prop in iconDefaults) {\n if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {\n return null;\n }\n }\n }\n const aliases = data.aliases;\n if (aliases) {\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent]) {\n return null;\n }\n for (const prop in iconDefaults) {\n if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {\n return null;\n }\n }\n }\n }\n return data;\n}\n\nconst storageVersion = 1;\nlet storage$1 = /* @__PURE__ */ Object.create(null);\ntry {\n const w = window || self;\n if (w && w._iconifyStorage.version === storageVersion) {\n storage$1 = w._iconifyStorage.storage;\n }\n} catch (err) {\n}\nfunction shareStorage() {\n try {\n const w = window || self;\n if (w && !w._iconifyStorage) {\n w._iconifyStorage = {\n version: storageVersion,\n storage: storage$1\n };\n }\n } catch (err) {\n }\n}\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ Object.create(null)\n };\n}\nfunction getStorage(provider, prefix) {\n if (storage$1[provider] === void 0) {\n storage$1[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerStorage = storage$1[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = newStorage(provider, prefix);\n }\n return providerStorage[prefix];\n}\nfunction addIconSet(storage2, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n const t = Date.now();\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage2.icons[name] = icon;\n } else {\n storage2.missing[name] = t;\n }\n });\n}\nfunction addIconToStorage(storage2, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage2.icons[name] = Object.freeze(fullIcon(icon));\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction getIconFromStorage(storage2, name) {\n const value = storage2.icons[name];\n return value === void 0 ? null : value;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n let providers;\n if (typeof provider === \"string\") {\n providers = [provider];\n } else {\n providers = Object.keys(storage$1);\n }\n providers.forEach((provider2) => {\n let prefixes;\n if (typeof provider2 === \"string\" && typeof prefix === \"string\") {\n prefixes = [prefix];\n } else {\n prefixes = storage$1[provider2] === void 0 ? [] : Object.keys(storage$1[provider2]);\n }\n prefixes.forEach((prefix2) => {\n const storage2 = getStorage(provider2, prefix2);\n const icons = Object.keys(storage2.icons).map((name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name);\n allIcons = allIcons.concat(icons);\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 return icon ? getIconFromStorage(getStorage(icon.provider, icon.prefix), icon.name) : null;\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 return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = typeof data.provider === \"string\" ? data.provider : \"\";\n }\n if (simpleNames && provider === \"\" && (typeof data.prefix !== \"string\" || data.prefix === \"\")) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n if (typeof data.prefix !== \"string\" || !validateIcon({\n provider,\n prefix: data.prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, data.prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return getIconData(name) !== null;\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? { ...result } : null;\n}\n\nconst defaults = Object.freeze({\n inline: false,\n width: null,\n height: null,\n hAlign: \"center\",\n vAlign: \"middle\",\n slice: false,\n hFlip: false,\n vFlip: false,\n rotate: 0\n});\nfunction mergeCustomisations(defaults2, item) {\n const result = {};\n for (const key in defaults2) {\n const attr = key;\n result[attr] = defaults2[attr];\n if (item[attr] === void 0) {\n continue;\n }\n const value = item[attr];\n switch (attr) {\n case \"inline\":\n case \"slice\":\n if (typeof value === \"boolean\") {\n result[attr] = value;\n }\n break;\n case \"hFlip\":\n case \"vFlip\":\n if (value === true) {\n result[attr] = !result[attr];\n }\n break;\n case \"hAlign\":\n case \"vAlign\":\n if (typeof value === \"string\" && value !== \"\") {\n result[attr] = value;\n }\n break;\n case \"width\":\n case \"height\":\n if (typeof value === \"string\" && value !== \"\" || typeof value === \"number\" && value || value === null) {\n result[attr] = value;\n }\n break;\n case \"rotate\":\n if (typeof value === \"number\") {\n result[attr] += value;\n }\n break;\n }\n }\n return result;\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 === void 0 ? 100 : precision;\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 preserveAspectRatio(props) {\n let result = \"\";\n switch (props.hAlign) {\n case \"left\":\n result += \"xMin\";\n break;\n case \"right\":\n result += \"xMax\";\n break;\n default:\n result += \"xMid\";\n }\n switch (props.vAlign) {\n case \"top\":\n result += \"YMin\";\n break;\n case \"bottom\":\n result += \"YMax\";\n break;\n default:\n result += \"YMid\";\n }\n result += props.slice ? \" slice\" : \" meet\";\n return result;\n}\nfunction iconToSVG(icon, customisations) {\n const box = {\n left: icon.left,\n top: icon.top,\n width: icon.width,\n height: icon.height\n };\n let body = icon.body;\n [icon, customisations].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(\"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\");\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\");\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(\"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n case 2:\n transformations.unshift(\"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\");\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== 0 || box.top !== 0) {\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 = '<g transform=\"' + transformations.join(\" \") + '\">' + body + \"</g>\";\n }\n });\n let width, height;\n if (customisations.width === null && customisations.height === null) {\n height = \"1em\";\n width = calculateSize(height, box.width / box.height);\n } else if (customisations.width !== null && customisations.height !== null) {\n width = customisations.width;\n height = customisations.height;\n } else if (customisations.height !== null) {\n height = customisations.height;\n width = calculateSize(height, box.width / box.height);\n } else {\n width = customisations.width;\n height = calculateSize(width, box.height / box.width);\n }\n if (width === \"auto\") {\n width = box.width;\n }\n if (height === \"auto\") {\n height = box.height;\n }\n width = typeof width === \"string\" ? width : width.toString() + \"\";\n height = typeof height === \"string\" ? height : height.toString() + \"\";\n const result = {\n attributes: {\n width,\n height,\n preserveAspectRatio: preserveAspectRatio(customisations),\n viewBox: box.left.toString() + \" \" + box.top.toString() + \" \" + box.width.toString() + \" \" + box.height.toString()\n },\n body\n };\n if (customisations.inline) {\n result.inline = true;\n }\n return result;\n}\n\nfunction buildIcon(icon, customisations) {\n return iconToSVG(fullIcon(icon), customisations ? mergeCustomisations(defaults, customisations) : defaults);\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 ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"), \"$1\" + newID + \"$3\");\n });\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 resources,\n path: source.path === void 0 ? \"/\" : source.path,\n maxURL: source.maxURL ? source.maxURL : 500,\n rotate: source.rotate ? source.rotate : 750,\n timeout: source.timeout ? source.timeout : 5e3,\n random: source.random === true,\n index: source.index ? source.index : 0,\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 mergeParams = (base, params) => {\n let result = base, hasParams = result.indexOf(\"?\") !== -1;\n function paramToString(value) {\n switch (typeof value) {\n case \"boolean\":\n return value ? \"true\" : \"false\";\n case \"number\":\n return encodeURIComponent(value);\n case \"string\":\n return encodeURIComponent(value);\n default:\n throw new Error(\"Invalid parameter\");\n }\n }\n Object.keys(params).forEach((key) => {\n let value;\n try {\n value = paramToString(params[key]);\n } catch (err) {\n return;\n }\n result += (hasParams ? \"&\" : \"?\") + encodeURIComponent(key) + \"=\" + value;\n hasParams = true;\n });\n return result;\n};\n\nconst maxLengthCache = {};\nconst pathCache = {};\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n return null;\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 = mergeParams(prefix + \".json\", {\n icons: \"\"\n });\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n const cacheKey = provider + \":\" + prefix;\n pathCache[provider] = config.path;\n maxLengthCache[cacheKey] = result;\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n let maxLength = maxLengthCache[prefix];\n if (maxLength === void 0) {\n maxLength = calculateMaxLength(provider, prefix);\n }\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 if (pathCache[provider] === void 0) {\n const config = getAPIConfig(provider);\n if (!config) {\n return \"/\";\n }\n pathCache[provider] = config.path;\n }\n return pathCache[provider];\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 path += mergeParams(prefix + \".json\", {\n icons: iconsList\n });\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 callback(\"next\", defaultError);\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 if (storage[provider] === void 0) {\n storage[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerStorage = storage[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = getStorage(provider, prefix);\n }\n const localStorage = providerStorage[prefix];\n let list;\n if (localStorage.icons[name] !== void 0) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing[name] !== void 0) {\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\nconst callbacks = /* @__PURE__ */ Object.create(null);\nconst pendingUpdates = /* @__PURE__ */ Object.create(null);\nfunction removeCallback(sources, id) {\n sources.forEach((source) => {\n const provider = source.provider;\n if (callbacks[provider] === void 0) {\n return;\n }\n const providerCallbacks = callbacks[provider];\n const prefix = source.prefix;\n const items = providerCallbacks[prefix];\n if (items) {\n providerCallbacks[prefix] = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(provider, prefix) {\n if (pendingUpdates[provider] === void 0) {\n pendingUpdates[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingUpdates = pendingUpdates[provider];\n if (!providerPendingUpdates[prefix]) {\n providerPendingUpdates[prefix] = true;\n setTimeout(() => {\n providerPendingUpdates[prefix] = false;\n if (callbacks[provider] === void 0 || callbacks[provider][prefix] === void 0) {\n return;\n }\n const items = callbacks[provider][prefix].slice(0);\n if (!items.length) {\n return;\n }\n const storage = getStorage(provider, prefix);\n let hasPending = false;\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] !== void 0) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing[name] !== void 0) {\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([\n {\n provider,\n prefix\n }\n ], item.id);\n }\n item.callback(icons.loaded.slice(0), icons.missing.slice(0), icons.pending.slice(0), item.abort);\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((source) => {\n const provider = source.provider;\n const prefix = source.prefix;\n if (callbacks[provider] === void 0) {\n callbacks[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerCallbacks = callbacks[provider];\n if (providerCallbacks[prefix] === void 0) {\n providerCallbacks[prefix] = [];\n }\n providerCallbacks[prefix].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, false, simpleNames) : item;\n if (!validate || validateIcon(icon, simpleNames)) {\n result.push({\n provider: icon.provider,\n prefix: icon.prefix,\n name: icon.name\n });\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 setConfig(config) {\n if (typeof config !== \"object\" || typeof config.resources !== \"object\" || !(config.resources instanceof Array) || !config.resources.length) {\n throw new Error(\"Invalid Reduncancy configuration\");\n }\n const newConfig = /* @__PURE__ */ Object.create(null);\n let key;\n for (key in defaultConfig) {\n if (config[key] !== void 0) {\n newConfig[key] = config[key];\n } else {\n newConfig[key] = defaultConfig[key];\n }\n }\n return newConfig;\n}\nfunction initRedundancy(cfg) {\n const config = setConfig(cfg);\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(config, payload, queryCallback, (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n });\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n const result = queries.find((value) => {\n return callback(value);\n });\n return result !== void 0 ? result : 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] === void 0) {\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\nconst cache = {};\n\nfunction emptyCallback() {\n}\nconst pendingIcons = /* @__PURE__ */ Object.create(null);\nconst iconsToLoad = /* @__PURE__ */ Object.create(null);\nconst loaderFlags = /* @__PURE__ */ Object.create(null);\nconst queueFlags = /* @__PURE__ */ Object.create(null);\nfunction loadedNewIcons(provider, prefix) {\n if (loaderFlags[provider] === void 0) {\n loaderFlags[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerLoaderFlags = loaderFlags[provider];\n if (!providerLoaderFlags[prefix]) {\n providerLoaderFlags[prefix] = true;\n setTimeout(() => {\n providerLoaderFlags[prefix] = false;\n updateCallbacks(provider, prefix);\n });\n }\n}\nconst errorsCache = /* @__PURE__ */ Object.create(null);\nfunction loadNewIcons(provider, prefix, icons) {\n function err() {\n const key = (provider === \"\" ? \"\" : \"@\" + provider + \":\") + prefix;\n const time = Math.floor(Date.now() / 6e4);\n if (errorsCache[key] < time) {\n errorsCache[key] = time;\n console.error('Unable to retrieve icons for \"' + key + '\" because API is not configured properly.');\n }\n }\n if (iconsToLoad[provider] === void 0) {\n iconsToLoad[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerIconsToLoad = iconsToLoad[provider];\n if (queueFlags[provider] === void 0) {\n queueFlags[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerQueueFlags = queueFlags[provider];\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingIcons = pendingIcons[provider];\n if (providerIconsToLoad[prefix] === void 0) {\n providerIconsToLoad[prefix] = icons;\n } else {\n providerIconsToLoad[prefix] = providerIconsToLoad[prefix].concat(icons).sort();\n }\n if (!providerQueueFlags[prefix]) {\n providerQueueFlags[prefix] = true;\n setTimeout(() => {\n providerQueueFlags[prefix] = false;\n const icons2 = providerIconsToLoad[prefix];\n delete providerIconsToLoad[prefix];\n const api = getAPIModule(provider);\n if (!api) {\n err();\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data, error) => {\n const storage = getStorage(provider, prefix);\n if (typeof data !== \"object\") {\n if (error !== 404) {\n return;\n }\n const t = Date.now();\n item.icons.forEach((name) => {\n storage.missing[name] = t;\n });\n } else {\n try {\n const parsed = addIconSet(storage, data);\n if (!parsed.length) {\n return;\n }\n const pending = providerPendingIcons[prefix];\n parsed.forEach((name) => {\n delete pending[name];\n });\n if (cache.store) {\n cache.store(provider, data);\n }\n } catch (err2) {\n console.error(err2);\n }\n }\n loadedNewIcons(provider, prefix);\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(sortedIcons.loaded, sortedIcons.missing, sortedIcons.pending, emptyCallback);\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 = icon.provider;\n const prefix = icon.prefix;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push({\n provider,\n prefix\n });\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingIcons = pendingIcons[provider];\n if (providerPendingIcons[prefix] === void 0) {\n providerPendingIcons[prefix] = /* @__PURE__ */ Object.create(null);\n }\n if (newIcons[provider] === void 0) {\n newIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerNewIcons = newIcons[provider];\n if (providerNewIcons[prefix] === void 0) {\n providerNewIcons[prefix] = [];\n }\n });\n const time = Date.now();\n sortedIcons.pending.forEach((icon) => {\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const pendingQueue = pendingIcons[provider][prefix];\n if (pendingQueue[name] === void 0) {\n pendingQueue[name] = time;\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((source) => {\n const provider = source.provider;\n const prefix = source.prefix;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(provider, prefix, newIcons[provider][prefix]);\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) : icon;\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const storage = getStorage(iconObj.provider, iconObj.prefix);\n const data = getIconFromStorage(storage, iconObj.name);\n if (data) {\n fulfill(data);\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nconst cacheVersion = \"iconify2\";\nconst cachePrefix = \"iconify\";\nconst countKey = cachePrefix + \"-count\";\nconst versionKey = cachePrefix + \"-version\";\nconst hour = 36e5;\nconst cacheExpiration = 168;\nconst config = {\n local: true,\n session: true\n};\nlet loaded = false;\nconst count = {\n local: 0,\n session: 0\n};\nconst emptyList = {\n local: [],\n session: []\n};\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getGlobal(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n config[key] = false;\n return null;\n}\nfunction setCount(storage, key, value) {\n try {\n storage.setItem(countKey, value.toString());\n count[key] = value;\n return true;\n } catch (err) {\n return false;\n }\n}\nfunction getCount(storage) {\n const count2 = storage.getItem(countKey);\n if (count2) {\n const total = parseInt(count2);\n return total ? total : 0;\n }\n return 0;\n}\nfunction initCache(storage, key) {\n try {\n storage.setItem(versionKey, cacheVersion);\n } catch (err) {\n }\n setCount(storage, key, 0);\n}\nfunction destroyCache(storage) {\n try {\n const total = getCount(storage);\n for (let i = 0; i < total; i++) {\n storage.removeItem(cachePrefix + i.toString());\n }\n } catch (err) {\n }\n}\nconst loadCache = () => {\n if (loaded) {\n return;\n }\n loaded = true;\n const minTime = Math.floor(Date.now() / hour) - cacheExpiration;\n function load(key) {\n const func = getGlobal(key);\n if (!func) {\n return;\n }\n const getItem = (index) => {\n const name = cachePrefix + index.toString();\n const item = func.getItem(name);\n if (typeof item !== \"string\") {\n return false;\n }\n let valid = true;\n try {\n const data = JSON.parse(item);\n if (typeof data !== \"object\" || typeof data.cached !== \"number\" || data.cached < minTime || typeof data.provider !== \"string\" || typeof data.data !== \"object\" || typeof data.data.prefix !== \"string\") {\n valid = false;\n } else {\n const provider = data.provider;\n const prefix = data.data.prefix;\n const storage = getStorage(provider, prefix);\n valid = addIconSet(storage, data.data).length > 0;\n }\n } catch (err) {\n valid = false;\n }\n if (!valid) {\n func.removeItem(name);\n }\n return valid;\n };\n try {\n const version = func.getItem(versionKey);\n if (version !== cacheVersion) {\n if (version) {\n destroyCache(func);\n }\n initCache(func, key);\n return;\n }\n let total = getCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!getItem(i)) {\n if (i === total - 1) {\n total--;\n } else {\n emptyList[key].push(i);\n }\n }\n }\n setCount(func, key, total);\n } catch (err) {\n }\n }\n for (const key in config) {\n load(key);\n }\n};\nconst storeCache = (provider, data) => {\n if (!loaded) {\n loadCache();\n }\n function store(key) {\n if (!config[key]) {\n return false;\n }\n const func = getGlobal(key);\n if (!func) {\n return false;\n }\n let index = emptyList[key].shift();\n if (index === void 0) {\n index = count[key];\n if (!setCount(func, key, index + 1)) {\n return false;\n }\n }\n try {\n const item = {\n cached: Math.floor(Date.now() / hour),\n provider,\n data\n };\n func.setItem(cachePrefix + index.toString(), JSON.stringify(item));\n } catch (err) {\n return false;\n }\n return true;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n config[storage] = value;\n break;\n case \"all\":\n for (const key in config) {\n config[key] = value;\n }\n break;\n }\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}\nfunction alignmentFromString(custom, align) {\n align.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"left\":\n case \"center\":\n case \"right\":\n custom.hAlign = value;\n break;\n case \"top\":\n case \"middle\":\n case \"bottom\":\n custom.vAlign = value;\n break;\n case \"slice\":\n case \"crop\":\n custom.slice = true;\n break;\n case \"meet\":\n custom.slice = false;\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\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 * Aliases for customisations.\n * In Vue 'v-' properties are reserved, so v-align and v-flip must be renamed\n */\nlet customisationAliases = {};\n['horizontal', 'vertical'].forEach((prefix) => {\n ['Align', 'Flip'].forEach((suffix) => {\n const attr = prefix.slice(0, 1) + suffix;\n const value = {\n attr,\n boolean: suffix === 'Flip',\n };\n // vertical-align\n customisationAliases[prefix + '-' + suffix.toLowerCase()] = value;\n // v-align\n customisationAliases[prefix.slice(0, 1) + '-' + suffix.toLowerCase()] =\n value;\n // verticalAlign\n customisationAliases[prefix + suffix] = value;\n });\n});\n/**\n * Render icon\n */\nconst render = (createElement, \n// context.props\nprops, \n// context.data\ncontextData, \n// Icon must be validated before calling this function\nicon) => {\n // Split properties\n const customisations = mergeCustomisations(defaults, props);\n const componentProps = { ...svgDefaults };\n // Style in Vue 2 components is always passed to rendered component, so no point in parsing it\n const style = {};\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 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 // Alignment as string\n case 'align':\n if (typeof value === 'string') {\n alignmentFromString(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 if (customisationAliases[key] !== void 0) {\n // Aliases for customisations\n if (customisationAliases[key].boolean &&\n (value === true || value === 'true' || value === 1)) {\n // Check for boolean\n customisations[customisationAliases[key].attr] = true;\n }\n else if (!customisationAliases[key].boolean &&\n typeof value === 'string' &&\n value !== '') {\n // String\n customisations[customisationAliases[key].attr] = value;\n }\n }\n else if (defaults[key] === void 0) {\n // Copy missing property if it does not exist in customisations\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n // Add icon stuff\n for (let key in item.attributes) {\n componentProps[key] = item.attributes[key];\n }\n if (item.inline) {\n style.verticalAlign = '-0.125em';\n }\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 // Generate node data\n const data = {\n attrs: componentProps,\n domProps: {\n innerHTML: replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyVue'),\n },\n };\n if (Object.keys(style).length > 0) {\n data.style = style;\n }\n if (contextData) {\n ['on', 'ref'].forEach((attr) => {\n if (contextData[attr] !== void 0) {\n data[attr] = contextData[attr];\n }\n });\n ['staticClass', 'class'].forEach((attr) => {\n if (contextData[attr] !== void 0) {\n data.class = contextData[attr];\n }\n });\n }\n // Render icon\n return createElement('svg', data);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\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 // Set cache and load existing cache\n cache.store = storeCache;\n loadCache();\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 = fullIcon({\n body: '',\n});\nconst Icon = Vue.extend({\n // Do not inherit other attributes: it is handled by render()\n // In Vue 2 style is still passed!\n inheritAttrs: false,\n // Set initial data\n data() {\n return {\n // Mounted status\n iconMounted: false,\n };\n },\n beforeMount() {\n // Current icon name\n this._name = '';\n // Loading\n this._loadingIcon = null;\n // Mark as mounted\n this.iconMounted = true;\n },\n beforeDestroy() {\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) {\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: fullIcon(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 const data = getIconData(iconName);\n if (data === null) {\n // Icon needs to be loaded\n if (!this._loadingIcon || this._loadingIcon.name !== icon) {\n // New icon to load\n this.abortLoading();\n this._name = '';\n this._loadingIcon = {\n name: icon,\n abort: loadIcons([iconName], () => {\n this.$forceUpdate();\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 // 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(createElement) {\n const props = this.$attrs;\n let context = this.$data;\n // Get icon data\n const icon = this.iconMounted ? this.getIcon(props.icon, props.onLoad) : null;\n // Validate icon object\n if (!icon) {\n return render(createElement, props, context, emptyIcon);\n }\n // Add classes\n if (icon.classes) {\n context = {\n ...context,\n class: (typeof context['class'] === 'string'\n ? context['class'] + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render(createElement, props, context, icon.data);\n },\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n mergeParams,\n};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs, shareStorage };\n"],"sourceRoot":""}
Copyright ©2k19 -
Hexid
|
Tex7ure