UNPKG

@ithinkdt/naive

Version:

iThinkDT Naive UI

49 lines (40 loc) 1.37 kB
import { reactive, isRef } from 'vue' export const SVG_PREFIX = 'data:image/svg+xml;base64,' export const DATA_CATEGORY = 'data-category' export const DATA_NAME = 'data-name' export const handle = (icon, ret = {}) => { ret.body = icon if (icon) { ret.svg = icon.startsWith(SVG_PREFIX) if (ret.svg) { const svg = atob(icon.slice(SVG_PREFIX.length)) ret.source = svg let categoryIndex = svg.indexOf(DATA_CATEGORY) if (categoryIndex !== -1) { categoryIndex = categoryIndex + DATA_CATEGORY.length + 2 const nameIndex = svg.indexOf(DATA_NAME) + DATA_NAME.length + 2 ret.category = svg.slice(categoryIndex, svg.indexOf('"', categoryIndex)) ret.name = svg.slice(nameIndex, svg.indexOf('"', nameIndex)) } } } else { delete ret.svg delete ret.category delete ret.name } return ret } export function getIconFiles(icons) { if (!Array.isArray(icons)) icons = [icons] return icons.map((icon, i) => { const id = new Date().toLocaleDateString() + '_' + i const ret = { id, name: id, type: 'image/*', status: 'finished', url: icon, } return isRef(icon) ? reactive(ret) : ret }) }