/
home
/
maktab
/
admin
/
js
/
File Upload :
llllll
Current File: /home/maktab/admin/js/chunk-3ba62305.ddcd3c23.js.map
{"version":3,"sources":["webpack:///./src/assets/icons/UI/Icon.vue?f8a0","webpack:///./node_modules/@iconify/vue2/dist/iconify.mjs","webpack:///src/assets/icons/UI/Icon.vue","webpack:///./src/assets/icons/UI/Icon.vue?a769","webpack:///./src/assets/icons/UI/Icon.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","style","transform","rotate","width","height","attrs","domProps","_s","tempIcon","icon","staticRenderFns","matchIconName","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","split","slice","length","shift","name2","pop","prefix","result","name","validateIconName","dashSeparated","join","match","defaultIconDimensions","Object","freeze","left","top","defaultIconTransformations","vFlip","hFlip","defaultIconProps","defaultExtendedIconProps","body","hidden","mergeIconTransformations","obj1","obj2","mergeIconData","parent","child","key","getIconsTree","data","names","icons","aliases","create","resolved","resolve","concat","keys","forEach","internalGetIconData","tree","currentProps","parse","parseIconSet","callback","not_found","Array","push","item","optionalPropertyDefaults","checkOptionalProps","defaults","prop","quicklyValidateIconSet","obj","dataStorage","newStorage","missing","Set","getStorage","providerStorage","addIconSet","storage","add","addIconToStorage","err","simpleNames","allowSimpleNames","allow","getIconData","iconName","has","addIcon","addCollection","added","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","isNumber","test","num","parseFloat","isNaN","iconToSVG","customisations","fullIcon","fullCustomisations","box","props","transformations","tempValue","rotation","toString","floor","unshift","customisationsWidth","customisationsHeight","boxWidth","boxHeight","attributes","viewBox","regex","randomPrefix","Date","now","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","detectFetch","fetch","fetchModule","calculateMaxLength","maxHostLength","host","max","url","shouldAbort","status","prepare","results","maxLength","type","getPath","send","params","iconsList","urlParams","URLSearchParams","uri","defaultError","then","response","json","setTimeout","catch","fetchAPIModule","sortIcons","loaded","pending","sort","a","b","localeCompare","lastIcon","localStorage","list","removeCallback","storages","items","loaderCallbacks","filter","row","updateCallbacks","pendingCallbacksFlag","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","indexOf","resource","status2","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","error","find","instance","setIndex","getIndex","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","target","api","cached","moduleKey","browserCacheVersion","browserCachePrefix","browserCacheCountKey","browserCacheVersionKey","browserStorageHour","browserStorageCacheExpiration","getStoredItem","func","getItem","setStoredItem","setItem","removeStoredItem","removeItem","setBrowserStorageItemsCount","getBrowserStorageItemsCount","parseInt","browserStorageConfig","local","session","browserStorageEmptyItems","browserStorageStatus","setBrowserStorageStatus","_window","window","getBrowserStorage","attr","iterateBrowserStorage","version","total2","i","minTime","parseItem","JSON","total","initBrowserStorage","iconSet","lastModified","lastModifiedCached","min","updateLastModified","lastValue","storeInBrowserStorage","store","set","delete","from","stringify","assign","emptyCallback","loadedNewIcons","iconsLoaderFlag","loadNewIcons","iconsToLoad","iconsQueueFlag","icons2","parsed","pendingIcons","console","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","sources","lastProvider","lastPrefix","providerNewIcons","pendingQueue","mergeCustomisations","valueType","separator","flipFromString","custom","flip","str","trim","rotateFromString","defaultValue","units","value2","defaultExtendedIconCustomisations","inline","svgDefaults","customisationAliases","createElement","contextData","componentProps","color","alias","verticalAlign","localCounter","innerHTML","class","document","IconifyPreload","preload","e","IconifyProviders","providers","emptyIcon","Icon","extend","inheritAttrs","iconMounted","_name","_loadingIcon","abortLoading","methods","onload","$forceUpdate","classes","$attrs","context","$data","getIcon","onLoad","components","computed","isVuesax","component"],"mappings":"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","file":"js/chunk-3ba62305.ddcd3c23.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVuesax)?_c('svg',{staticClass:\"iconify transition-200 transition-transform p-2\",style:({transform: (\"rotate(\" + _vm.rotate + \")\"), width: '2.5em', height: '2.5em'}),attrs:{\"viewBox\":\"0 0 24 24\"},domProps:{\"innerHTML\":_vm._s(_vm.tempIcon)}}):_c('Icon',{attrs:{\"icon\":_vm.icon,\"rotate\":_vm.rotate}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchIconName) || typeof icon.body !== \"string\" || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchIconName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n 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 = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : null;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n ...defaultIconSizeCustomisations,\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '<g transform=\"' + transformations.join(\" \") + '\">' + body + \"</g>\";\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const result = {\n attributes: {\n width: width.toString(),\n height: height.toString(),\n viewBox: box.left.toString() + \" \" + box.top.toString() + \" \" + boxWidth.toString() + \" \" + boxHeight.toString()\n },\n body\n };\n return result;\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(\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + \"$3\"\n );\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 || \"/\",\n maxURL: source.maxURL || 500,\n rotate: source.rotate || 750,\n timeout: source.timeout || 5e3,\n random: source.random === true,\n 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 detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst browserCacheVersion = \"iconify2\";\nconst browserCachePrefix = \"iconify\";\nconst browserCacheCountKey = browserCachePrefix + \"-count\";\nconst browserCacheVersionKey = browserCachePrefix + \"-version\";\nconst browserStorageHour = 36e5;\nconst browserStorageCacheExpiration = 168;\n\nfunction getStoredItem(func, key) {\n try {\n return func.getItem(key);\n } catch (err) {\n }\n}\nfunction setStoredItem(func, key, value) {\n try {\n func.setItem(key, value);\n return true;\n } catch (err) {\n }\n}\nfunction removeStoredItem(func, key) {\n try {\n func.removeItem(key);\n } catch (err) {\n }\n}\n\nfunction setBrowserStorageItemsCount(storage, value) {\n return setStoredItem(storage, browserCacheCountKey, value.toString());\n}\nfunction getBrowserStorageItemsCount(storage) {\n return parseInt(getStoredItem(storage, browserCacheCountKey)) || 0;\n}\n\nconst browserStorageConfig = {\n local: true,\n session: true\n};\nconst browserStorageEmptyItems = {\n local: /* @__PURE__ */ new Set(),\n session: /* @__PURE__ */ new Set()\n};\nlet browserStorageStatus = false;\nfunction setBrowserStorageStatus(status) {\n browserStorageStatus = status;\n}\n\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getBrowserStorage(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 browserStorageConfig[key] = false;\n}\n\nfunction iterateBrowserStorage(key, callback) {\n const func = getBrowserStorage(key);\n if (!func) {\n return;\n }\n const version = getStoredItem(func, browserCacheVersionKey);\n if (version !== browserCacheVersion) {\n if (version) {\n const total2 = getBrowserStorageItemsCount(func);\n for (let i = 0; i < total2; i++) {\n removeStoredItem(func, browserCachePrefix + i.toString());\n }\n }\n setStoredItem(func, browserCacheVersionKey, browserCacheVersion);\n setBrowserStorageItemsCount(func, 0);\n return;\n }\n const minTime = Math.floor(Date.now() / browserStorageHour) - browserStorageCacheExpiration;\n const parseItem = (index) => {\n const name = browserCachePrefix + index.toString();\n const item = getStoredItem(func, name);\n if (typeof item !== \"string\") {\n return;\n }\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\" && callback(data, index)) {\n return true;\n }\n } catch (err) {\n }\n removeStoredItem(func, name);\n };\n let total = getBrowserStorageItemsCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!parseItem(i)) {\n if (i === total - 1) {\n total--;\n setBrowserStorageItemsCount(func, total);\n } else {\n browserStorageEmptyItems[key].add(i);\n }\n }\n }\n}\n\nfunction initBrowserStorage() {\n if (browserStorageStatus) {\n return;\n }\n setBrowserStorageStatus(true);\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n const provider = item.provider;\n const prefix = iconSet.prefix;\n const storage = getStorage(\n provider,\n prefix\n );\n if (!addIconSet(storage, iconSet).length) {\n return false;\n }\n const lastModified = iconSet.lastModified || -1;\n storage.lastModifiedCached = storage.lastModifiedCached ? Math.min(storage.lastModifiedCached, lastModified) : lastModified;\n return true;\n });\n }\n}\n\nfunction updateLastModified(storage, lastModified) {\n const lastValue = storage.lastModifiedCached;\n if (lastValue && lastValue >= lastModified) {\n return lastValue === lastModified;\n }\n storage.lastModifiedCached = lastModified;\n if (lastValue) {\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n return item.provider !== storage.provider || iconSet.prefix !== storage.prefix || iconSet.lastModified === lastModified;\n });\n }\n }\n return true;\n}\nfunction storeInBrowserStorage(storage, data) {\n if (!browserStorageStatus) {\n initBrowserStorage();\n }\n function store(key) {\n let func;\n if (!browserStorageConfig[key] || !(func = getBrowserStorage(key))) {\n return;\n }\n const set = browserStorageEmptyItems[key];\n let index;\n if (set.size) {\n set.delete(index = Array.from(set).shift());\n } else {\n index = getBrowserStorageItemsCount(func);\n if (!setBrowserStorageItemsCount(func, index + 1)) {\n return;\n }\n }\n const item = {\n cached: Math.floor(Date.now() / browserStorageHour),\n provider: storage.provider,\n data\n };\n return setStoredItem(\n func,\n browserCachePrefix + index.toString(),\n JSON.stringify(item)\n );\n }\n if (data.lastModified && !updateLastModified(storage, data.lastModified)) {\n return;\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 emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n let api;\n if (!icons2 || !(api = getAPIModule(provider))) {\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n if (typeof data !== \"object\") {\n item.icons.forEach((name) => {\n storage.missing.add(name);\n });\n } else {\n try {\n const parsed = addIconSet(\n storage,\n data\n );\n if (!parsed.length) {\n return;\n }\n const pending = storage.pendingIcons;\n if (pending) {\n parsed.forEach((name) => {\n pending.delete(name);\n });\n }\n storeInBrowserStorage(storage, data);\n } catch (err) {\n console.error(err);\n }\n }\n loadedNewIcons(storage);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const { provider, prefix } = storage;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(storage, 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, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n browserStorageConfig[storage] = value;\n break;\n case \"all\":\n for (const key in browserStorageConfig) {\n browserStorageConfig[key] = value;\n }\n break;\n }\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Aliases for customisations.\n * In Vue 'v-' properties are reserved, so v-flip must be renamed\n */\nconst customisationAliases = {};\n['horizontal', 'vertical'].forEach((prefix) => {\n const attr = prefix.slice(0, 1) + 'Flip';\n // vertical-flip\n customisationAliases[prefix + '-flip'] = attr;\n // v-flip\n customisationAliases[prefix.slice(0, 1) + '-flip'] = attr;\n // verticalFlip\n customisationAliases[prefix + 'Flip'] = attr;\n});\n/**\n * 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(defaultExtendedIconCustomisations, 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 // Color: override style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n // Vue transforms 'aria-hidden' property to 'ariaHidden'\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n default:\n const alias = customisationAliases[key];\n if (alias) {\n // Aliases for boolean customisations\n if (value === true || value === 'true' || value === 1) {\n customisations[alias] = true;\n }\n }\n else if (defaultExtendedIconCustomisations[key] === void 0) {\n // Copy missing property if it does not exist in customisations\n componentProps[key] = value;\n }\n }\n }\n // 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 (customisations.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 initBrowserStorage();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\n/**\n * Empty icon data, rendered when icon is not available\n */\nconst emptyIcon = {\n 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: 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) {\n // Icon data is not available\n if (!this._loadingIcon || this._loadingIcon.name !== icon) {\n // New icon to load\n this.abortLoading();\n this._name = '';\n if (data !== null) {\n // Icon was not loaded\n this._loadingIcon = {\n name: icon,\n abort: loadIcons([iconName], () => {\n this.$forceUpdate();\n }),\n };\n }\n }\n return null;\n }\n // Icon data is available\n this.abortLoading();\n if (this._name !== icon) {\n this._name = icon;\n if (onload) {\n onload(icon);\n }\n }\n // 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 = Object.assign({}, this.$attrs);\n let context = this.$data;\n // Get icon data\n const icon = this.iconMounted\n ? this.getIcon(props.icon, props.onLoad)\n : 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};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs };\n","<template>\r\n <svg v-if=\"isVuesax\" viewBox=\"0 0 24 24\" v-html=\"tempIcon\" :style=\"{transform: `rotate(${rotate})`, width: '2.5em', height: '2.5em'}\"\r\n class=\"iconify transition-200 transition-transform p-2\"/>\r\n <Icon v-else :icon=\"icon\" :rotate=\"rotate\"/>\r\n</template>\r\n\r\n<script>\r\nimport {Icon} from '@iconify/vue2'\r\nimport icons from './vuesax.json'\r\n\r\nexport default {\r\n name: \"IconVuesax\",\r\n components: {\r\n Icon,\r\n },\r\n props: {\r\n icon: String,\r\n rotate: String,\r\n color: [String, null, undefined],\r\n size: [String, Number, null, undefined],\r\n },\r\n data() {\r\n return {\r\n icons\r\n }\r\n },\r\n computed: {\r\n isVuesax() {\r\n return this.icon.includes('vuesax:')\r\n },\r\n tempIcon() {\r\n if (this.icon.includes('vuesax:'))\r\n return this.icons[this.icon.replace('vuesax:', '')] || icons['vuesax-linear']\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Icon.vue?vue&type=template&id=05efaa36&\"\nimport script from \"./Icon.vue?vue&type=script&lang=js&\"\nexport * from \"./Icon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}
Copyright ©2k19 -
Hexid
|
Tex7ure