/
home
/
henzagold
/
customerB
/
export
/
js
/
File Upload :
llllll
Current File: /home/henzagold/customerB/export/js/chunk-67ae65fe.e7efbe4c.js.map
{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@iconify/vue2/dist/iconify.mjs","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js"],"names":["$","$values","values","target","stat","O","notARegExp","requireObjectCoercible","correctIsRegExpLogic","proto","forced","includes","searchString","String","this","indexOf","arguments","length","undefined","isRegExp","module","exports","it","TypeError","matchName","iconDefaults","Object","freeze","left","top","width","height","rotate","vFlip","hFlip","fullIcon","data","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","split","slice","shift","name2","pop","prefix","result","name","validateIcon","dashSeparated","join","icon","match","mergeIconData","alias","key","prop","getIconData$1","full","getIcon","iteration","_a","_b","_c","_d","icons","assign","aliases","item","result2","parent","chars","matchChar","validateIconProps","fix","attr","type","validateIconSet","obj","options","Error","keys","forEach","body","validateAlias","validatedAliases","has","failedAliases","add","Set","expectedType","actualType","char","isVariation","parseIconSet","callback","names","err","not_found","Array","push","iconData","parseAliases","storage$1","create","newStorage","missing","getStorage","providerStorage","addIconSet","storage2","t","Date","now","addIconToStorage","getIconFromStorage","simpleNames","allowSimpleNames","allow","getIconData","addIcon","storage","addCollection","added","defaults","inline","hAlign","vAlign","mergeCustomisations","defaults2","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","isNumber","test","num","parseFloat","isNaN","preserveAspectRatio","props","iconToSVG","customisations","box","transformations","tempValue","rotation","floor","unshift","attributes","viewBox","regex","randomPrefix","toString","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","paramToString","encodeURIComponent","maxLengthCache","pathCache","detectFetch","fetch","chunk","fromCharCode","req","global","fetchModule","calculateMaxLength","maxHostLength","host","max","url","cacheKey","prepare","results","maxLength","getPath","send","status","done","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","success","resourcesCount","startIndex","nextIndex","startTime","queriesSent","lastError","timer","queue","doneCallbacks","resetTimer","clearTimeout","subscribe","overwrite","getQueryStatus","queriesPending","failQuery","clearQueue","moduleResponse","error","isError","queued","execNext","resource","timeout2","setConfig","newConfig","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","newIndex","find","instance","setIndex","getIndex","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","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","window","getGlobal","setCount","setItem","getCount","count2","getItem","total","parseInt","initCache","destroyCache","i","removeItem","loadCache","minTime","load","func","valid","JSON","parse","version","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","Icon","extend","inheritAttrs","mounted","_name","_loadingIcon","abortLoading","methods","onload","iconName","$forceUpdate","classes","placeholder","slots","default","$slots","$attrs","onLoad","context","$data","DESCRIPTORS","objectKeys","toIndexedObject","propertyIsEnumerable","f","createMethod","TO_ENTRIES","call","entries","wellKnownSymbol","MATCH","METHOD_NAME","regexp","error1","error2"],"mappings":"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","file":"js/chunk-67ae65fe.e7efbe4c.js","sourcesContent":["var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","import Vue from 'vue';\n\n// src/icon/index.ts\nvar matchName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nvar 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\n// src/icon/name.ts\nvar 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};\nvar 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\n// src/icon/merge.ts\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\n// src/icon-set/get-icon.ts\nfunction getIconData$1(data, name, full = false) {\n function getIcon(name2, iteration) {\n var _a, _b, _c, _d;\n if (data.icons[name2] !== void 0) {\n return Object.assign({}, data.icons[name2]);\n }\n if (iteration > 5) {\n return null;\n }\n if (((_a = data.aliases) == null ? void 0 : _a[name2]) !== void 0) {\n const item = (_b = data.aliases) == null ? void 0 : _b[name2];\n const result2 = getIcon(item.parent, iteration + 1);\n if (result2) {\n return mergeIconData(result2, item);\n }\n return result2;\n }\n if (iteration === 0 && ((_c = data.chars) == null ? void 0 : _c[name2]) !== void 0) {\n return getIcon((_d = data.chars) == null ? void 0 : _d[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\n// src/icon-set/validate.ts\nvar matchChar = /^[a-f0-9]+(-[a-f0-9]+)*$/;\nfunction validateIconProps(item, fix) {\n for (const key in item) {\n const attr = key;\n const value = item[attr];\n const type = typeof value;\n if (type === \"undefined\") {\n delete item[attr];\n continue;\n }\n switch (key) {\n case \"body\":\n case \"parent\":\n if (type !== \"string\") {\n return key;\n }\n break;\n case \"hFlip\":\n case \"vFlip\":\n case \"hidden\":\n if (type !== \"boolean\") {\n if (fix) {\n delete item[attr];\n } else {\n return key;\n }\n }\n break;\n case \"width\":\n case \"height\":\n case \"left\":\n case \"top\":\n case \"rotate\":\n case \"inlineHeight\":\n case \"inlineTop\":\n case \"verticalAlign\":\n if (type !== \"number\") {\n if (fix) {\n delete item[attr];\n } else {\n return key;\n }\n }\n break;\n default:\n if (type === \"object\") {\n if (fix) {\n delete item[attr];\n } else {\n return key;\n }\n }\n }\n }\n return null;\n}\nfunction validateIconSet(obj, options) {\n const fix = !!(options == null ? void 0 : options.fix);\n if (typeof obj !== \"object\" || obj === null || typeof obj.icons !== \"object\" || !obj.icons) {\n throw new Error(\"Bad icon set\");\n }\n const data = obj;\n if (typeof (options == null ? void 0 : options.prefix) === \"string\") {\n data.prefix = options.prefix;\n } else if (typeof data.prefix !== \"string\" || !data.prefix.match(matchName)) {\n throw new Error(\"Invalid prefix\");\n }\n if (typeof (options == null ? void 0 : options.provider) === \"string\") {\n data.provider = options.provider;\n } else if (data.provider !== void 0) {\n const value = data.provider;\n if (typeof value !== \"string\" || value !== \"\" && !value.match(matchName)) {\n if (fix) {\n delete data.provider;\n } else {\n throw new Error(\"Invalid provider\");\n }\n }\n }\n const icons = data.icons;\n Object.keys(icons).forEach((name) => {\n if (!name.match(matchName)) {\n if (fix) {\n delete icons[name];\n return;\n }\n throw new Error(`Invalid icon name: \"${name}\"`);\n }\n const item = icons[name];\n if (typeof item !== \"object\" || item === null || typeof item.body !== \"string\") {\n if (fix) {\n delete icons[name];\n return;\n }\n throw new Error(`Invalid icon: \"${name}\"`);\n }\n const key = typeof item.parent === \"string\" ? \"parent\" : validateIconProps(item, fix);\n if (key !== null) {\n if (fix) {\n delete icons[name];\n return;\n }\n throw new Error(`Invalid property \"${key}\" in icon \"${name}\"`);\n }\n });\n if (!Object.keys(data.icons).length) {\n throw new Error(\"Icon set is empty\");\n }\n if (data.aliases !== void 0) {\n if (typeof data.aliases !== \"object\" || data.aliases === null) {\n if (fix) {\n delete data.aliases;\n } else {\n throw new Error(\"Invalid aliases list\");\n }\n }\n }\n if (typeof data.aliases === \"object\") {\n let validateAlias = function(name, iteration) {\n if (validatedAliases.has(name)) {\n return !failedAliases.has(name);\n }\n const item = aliases[name];\n if (iteration > 5 || typeof item !== \"object\" || item === null || typeof item.parent !== \"string\" || !name.match(matchName)) {\n if (fix) {\n delete aliases[name];\n failedAliases.add(name);\n return false;\n }\n throw new Error(`Invalid icon alias: \"${name}\"`);\n }\n const parent = item.parent;\n if (data.icons[parent] === void 0) {\n if (aliases[parent] === void 0 || !validateAlias(parent, iteration + 1)) {\n if (fix) {\n delete aliases[name];\n failedAliases.add(name);\n return false;\n }\n throw new Error(`Missing parent icon for alias \"${name}`);\n }\n }\n if (fix && item.body !== void 0) {\n delete item.body;\n }\n const key = item.body !== void 0 ? \"body\" : validateIconProps(item, fix);\n if (key !== null) {\n if (fix) {\n delete aliases[name];\n failedAliases.add(name);\n return false;\n }\n throw new Error(`Invalid property \"${key}\" in alias \"${name}\"`);\n }\n validatedAliases.add(name);\n return true;\n };\n const aliases = data.aliases;\n const validatedAliases = new Set();\n const failedAliases = new Set();\n Object.keys(aliases).forEach((name) => {\n validateAlias(name, 0);\n });\n if (fix && !Object.keys(data.aliases).length) {\n delete data.aliases;\n }\n }\n Object.keys(iconDefaults).forEach((prop) => {\n const expectedType = typeof iconDefaults[prop];\n const actualType = typeof data[prop];\n if (actualType !== \"undefined\" && actualType !== expectedType) {\n throw new Error(`Invalid value type for \"${prop}\"`);\n }\n });\n if (data.chars !== void 0) {\n if (typeof data.chars !== \"object\" || data.chars === null) {\n if (fix) {\n delete data.chars;\n } else {\n throw new Error(\"Invalid characters map\");\n }\n }\n }\n if (typeof data.chars === \"object\") {\n const chars = data.chars;\n Object.keys(chars).forEach((char) => {\n var _a;\n if (!char.match(matchChar) || typeof chars[char] !== \"string\") {\n if (fix) {\n delete chars[char];\n return;\n }\n throw new Error(`Invalid character \"${char}\"`);\n }\n const target = chars[char];\n if (data.icons[target] === void 0 && ((_a = data.aliases) == null ? void 0 : _a[target]) === void 0) {\n if (fix) {\n delete chars[char];\n return;\n }\n throw new Error(`Character \"${char}\" points to missing icon \"${target}\"`);\n }\n });\n if (fix && !Object.keys(data.chars).length) {\n delete data.chars;\n }\n }\n return data;\n}\n\n// src/icon-set/parse.ts\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 const validate = options.validate;\n if (validate !== false) {\n try {\n validateIconSet(data, typeof validate === \"object\" ? validate : { fix: true });\n } catch (err) {\n return names;\n }\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\n// src/storage/storage.ts\nvar storage$1 = Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: Object.create(null),\n missing: Object.create(null)\n };\n}\nfunction getStorage(provider, prefix) {\n if (storage$1[provider] === void 0) {\n storage$1[provider] = 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 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\n// src/storage/functions.ts\nvar 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 parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n }, {\n validate: {\n fix: true,\n prefix: \"\"\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\n// src/customisations/index.ts\nvar 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\n// src/svg/size.ts\nvar unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nvar 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\n// src/svg/build.ts\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) + \" \" + (0 - box.top) + \")\");\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\"translate(\" + (0 - box.left) + \" \" + (box.height + box.top) + \")\");\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 + \" \" + tempValue + \")\");\n break;\n case 2:\n transformations.unshift(\"rotate(180 \" + (box.width / 2 + box.left) + \" \" + (box.height / 2 + box.top) + \")\");\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\"rotate(-90 \" + tempValue + \" \" + tempValue + \")\");\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 + \"\";\n height = typeof height === \"string\" ? height : height + \"\";\n const result = {\n attributes: {\n width,\n height,\n preserveAspectRatio: preserveAspectRatio(customisations),\n viewBox: box.left + \" \" + box.top + \" \" + box.width + \" \" + box.height\n },\n body\n };\n if (customisations.inline) {\n result.inline = true;\n }\n return result;\n}\n\n// src/builder/functions.ts\nfunction buildIcon(icon, customisations) {\n return iconToSVG(fullIcon(icon), customisations ? mergeCustomisations(defaults, customisations) : defaults);\n}\n\n// src/svg/id.ts\nvar regex = /\\sid=\"(\\S+)\"/g;\nvar randomPrefix = \"IconifyId-\" + Date.now().toString(16) + \"-\" + (Math.random() * 16777216 | 0).toString(16) + \"-\";\nvar 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++;\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\n// src/api/modules.ts\nvar storage = Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\n// src/api/config.ts\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}\nvar configStorage = Object.create(null);\nvar fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nvar 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\n// src/api/params.ts\nvar 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\n// src/api/modules/fetch.ts\nvar maxLengthCache = Object.create(null);\nvar pathCache = Object.create(null);\nvar detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n try {\n const chunk = String.fromCharCode(114) + String.fromCharCode(101);\n const req = global[chunk + \"qui\" + chunk];\n callback = req(\"cross-fetch\");\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n return null;\n};\nvar fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\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}\nvar 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}\nvar send = (host, params, status) => {\n if (!fetchModule) {\n status.done(void 0, 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 status.done(void 0, 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n if (response.status !== 200) {\n setTimeout(() => {\n status.done(void 0, response.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 status.done(void 0, defaultError);\n });\n return;\n }\n setTimeout(() => {\n status.done(data);\n });\n }).catch(() => {\n status.done(void 0, defaultError);\n });\n};\nvar fetchAPIModule = {\n prepare,\n send\n};\n\n// src/icon/sort.ts\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = 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] = 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\n// src/api/callbacks.ts\nvar callbacks = Object.create(null);\nvar pendingUpdates = 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] = 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}\nvar 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] = 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\n// src/icon/list.ts\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, success) {\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 = void 0;\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.abort) {\n item.abort();\n }\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 = queue.filter((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n if (item.abort) {\n item.abort();\n }\n return false;\n });\n }\n function moduleResponse(item, data, error) {\n const isError = data === void 0;\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 (isError) {\n if (error !== void 0) {\n lastError = error;\n }\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 (success && !config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n success(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 const timeout2 = typeof config.timeout === \"function\" ? config.timeout(startTime) : config.timeout;\n if (timeout2) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, timeout2);\n return;\n }\n }\n failQuery();\n return;\n }\n const item = {\n getQueryStatus,\n status: \"pending\",\n resource,\n done: (data, error) => {\n moduleResponse(item, data, error);\n }\n };\n queue.push(item);\n queriesSent++;\n const timeout = typeof config.rotate === \"function\" ? config.rotate(queriesSent, startTime) : config.rotate;\n timer = setTimeout(execNext, timeout);\n query(resource, payload, item);\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 = 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 }, (newIndex) => {\n config.index = newIndex;\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\n// src/api/query.ts\nfunction emptyCallback$1() {\n}\nvar redundancyCache = 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\n// src/cache.ts\nvar cache = {};\n\n// src/api/icons.ts\nfunction emptyCallback() {\n}\nvar pendingIcons = Object.create(null);\nvar iconsToLoad = Object.create(null);\nvar loaderFlags = Object.create(null);\nvar queueFlags = Object.create(null);\nfunction loadedNewIcons(provider, prefix) {\n if (loaderFlags[provider] === void 0) {\n loaderFlags[provider] = 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}\nvar errorsCache = 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] = Object.create(null);\n }\n const providerIconsToLoad = iconsToLoad[provider];\n if (queueFlags[provider] === void 0) {\n queueFlags[provider] = Object.create(null);\n }\n const providerQueueFlags = queueFlags[provider];\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = 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}\nvar 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 = 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] = Object.create(null);\n }\n const providerPendingIcons = pendingIcons[provider];\n if (providerPendingIcons[prefix] === void 0) {\n providerPendingIcons[prefix] = Object.create(null);\n }\n if (newIcons[provider] === void 0) {\n newIcons[provider] = 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};\n\n// src/browser-storage/index.ts\nvar cacheVersion = \"iconify2\";\nvar cachePrefix = \"iconify\";\nvar countKey = cachePrefix + \"-count\";\nvar versionKey = cachePrefix + \"-version\";\nvar hour = 36e5;\nvar cacheExpiration = 168;\nvar config = {\n local: true,\n session: true\n};\nvar loaded = false;\nvar count = {\n local: 0,\n session: 0\n};\nvar emptyList = {\n local: [],\n session: []\n};\nvar _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 + \"\");\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);\n }\n } catch (err) {\n }\n}\nvar 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;\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};\nvar 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, JSON.stringify(item));\n } catch (err) {\n return false;\n }\n return true;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n};\n\n// src/browser-storage/functions.ts\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\n// src/customisations/shorthand.ts\nvar 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\n// src/customisations/rotate.ts\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 const id = props.id;\n // Generate node data\n const data = {\n attrs: componentProps,\n domProps: {\n innerHTML: replaceIDs(item.body, id ? () => id + '-' + localCounter++ : 'iconify-vue-'),\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}\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 mounted: false,\n };\n },\n beforeMount() {\n // Current icon name\n this._name = '';\n // Loading\n this._loadingIcon = null;\n // Mark as mounted\n this.mounted = 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 function placeholder(slots) {\n // Render child nodes\n if (slots.default) {\n const result = slots.default;\n if (result instanceof Array && result.length > 0) {\n // If there are multiple child nodes, they must be wrapped in Vue 2\n return result.length === 1\n ? result[0]\n : createElement('span', result);\n }\n }\n return null;\n }\n if (!this.mounted) {\n return placeholder(this.$slots);\n }\n // Get icon data\n const props = this.$attrs;\n const icon = this.getIcon(props.icon, props.onLoad);\n // Validate icon object\n if (!icon) {\n // Render child nodes\n return placeholder(this.$slots);\n }\n // Add classes\n let context = this.$data;\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 listAPIProviders,\n mergeParams,\n};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcons, replaceIDs };\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n"],"sourceRoot":""}
Copyright ©2k19 -
Hexid
|
Tex7ure