hi-vue-icons
Version:
Include inline SVG icons from different popular icon packs in Vue 2 & 3 easily.
1 lines • 22.8 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../src/utils/index.ts","../src/components/Icon.ts","../../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["const ESCAPE_MAP: { [key: string]: string } = {\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"&\": \"&\"\r\n};\r\n\r\nconst escapeHTML = (html: string): string => {\r\n return html.replace(/[<>\"&]/g, (c) => ESCAPE_MAP[c] || c);\r\n};\r\n\r\nlet id_count = 0;\r\n\r\nconst getID = (prefix: string): string => {\r\n return prefix + id_count++;\r\n};\r\n\r\nexport default {\r\n escapeHTML,\r\n getID\r\n};\r\n","import {\r\n defineComponent,\r\n reactive,\r\n computed,\r\n onMounted,\r\n onUpdated,\r\n toRefs,\r\n ref,\r\n h,\r\n isVue2\r\n} from \"vue-demi\";\r\nimport type { CustomizeIconType, ObjType } from \"../../types/icons\";\r\nimport utils from \"../utils\";\r\n\r\ntype IconsType = {\r\n [key: string]: CustomizeIconType;\r\n};\r\n\r\nconst icons: IconsType = {};\r\n\r\nconst register = (data: CustomizeIconType): void => {\r\n const { name, paths = [], d, polygons = [], points } = data;\r\n\r\n if (d) paths.push({ d });\r\n if (points) polygons.push({ points });\r\n\r\n icons[name] = Object.assign({}, data, {\r\n paths,\r\n polygons\r\n });\r\n\r\n if (!icons[name].minX) icons[name].minX = 0;\r\n if (!icons[name].minY) icons[name].minY = 0;\r\n};\r\n\r\nconst addIcons = (...data: CustomizeIconType[]): void => {\r\n for (const icon of data) register(icon);\r\n};\r\n\r\nconst listIcons = (): IconsType => {\r\n return icons;\r\n};\r\n\r\nconst HiVueIcon = defineComponent({\r\n name: \"HiVueIcon\",\r\n\r\n props: {\r\n name: {\r\n type: String,\r\n validator: (val: string): boolean => {\r\n if (val && !(val in icons)) {\r\n console.warn(\r\n `Invalid prop: prop \"name\" is referring to an unregistered icon \"${val}\".\\n` +\r\n `Please make sure you have imported this icon before using it.`\r\n );\r\n return false;\r\n }\r\n return true;\r\n }\r\n },\r\n title: String,\r\n fill: String,\r\n scale: {\r\n type: [Number, String],\r\n default: 1\r\n },\r\n animation: {\r\n validator: (val: string): boolean => {\r\n return [\r\n \"spin\",\r\n \"spin-pulse\",\r\n \"wrench\",\r\n \"ring\",\r\n \"pulse\",\r\n \"flash\",\r\n \"float\"\r\n ].includes(val);\r\n }\r\n },\r\n hover: Boolean,\r\n flip: {\r\n validator: (val: string): boolean => {\r\n return [\"horizontal\", \"vertical\", \"both\"].includes(val);\r\n }\r\n },\r\n speed: {\r\n validator: (val: string): boolean => {\r\n return val === \"fast\" || val === \"slow\";\r\n }\r\n },\r\n label: String,\r\n inverse: Boolean\r\n },\r\n\r\n setup(props) {\r\n const children = ref([] as any[]);\r\n\r\n const state = reactive({\r\n outerScale: 1.2,\r\n x: null as number | null,\r\n y: null as number | null\r\n });\r\n\r\n const childrenState = reactive({\r\n width: 0,\r\n height: 0\r\n });\r\n\r\n const normalizedScale = computed(() => {\r\n const scale = Number(props.scale);\r\n if (isNaN(scale) || scale <= 0) {\r\n console.warn(`Invalid prop: prop \"scale\" should be a number over 0.`);\r\n return state.outerScale;\r\n }\r\n return scale * state.outerScale;\r\n });\r\n\r\n const klass = computed(() => {\r\n const classes = {\r\n \"ov-icon\": true,\r\n \"ov-inverse\": props.inverse,\r\n \"ov-flip-horizontal\": props.flip === \"horizontal\",\r\n \"ov-flip-vertical\": props.flip === \"vertical\",\r\n \"ov-flip-both\": props.flip === \"both\",\r\n \"ov-spin\": props.animation === \"spin\",\r\n \"ov-spin-pulse\": props.animation === \"spin-pulse\",\r\n \"ov-wrench\": props.animation === \"wrench\",\r\n \"ov-ring\": props.animation === \"ring\",\r\n \"ov-pulse\": props.animation === \"pulse\",\r\n \"ov-flash\": props.animation === \"flash\",\r\n \"ov-float\": props.animation === \"float\",\r\n \"ov-hover\": props.hover,\r\n \"ov-fast\": props.speed === \"fast\",\r\n \"ov-slow\": props.speed === \"slow\"\r\n };\r\n return classes;\r\n });\r\n\r\n const icon = computed((): CustomizeIconType | null => {\r\n if (props.name) return icons[props.name];\r\n return null;\r\n });\r\n\r\n const box = computed((): string => {\r\n if (icon.value) {\r\n return `${icon.value.minX} ${icon.value.minY} ${icon.value.width} ${icon.value.height}`;\r\n }\r\n return `0 0 ${width.value} ${height.value}`;\r\n });\r\n\r\n const ratio = computed((): number => {\r\n if (!icon.value) return 1;\r\n\r\n const { width, height } = icon.value;\r\n return Math.max(width, height) / 16;\r\n });\r\n\r\n const width = computed((): number => {\r\n return (\r\n childrenState.width ||\r\n (icon.value &&\r\n (icon.value.width / ratio.value) * normalizedScale.value) ||\r\n 0\r\n );\r\n });\r\n\r\n const height = computed((): number => {\r\n return (\r\n childrenState.height ||\r\n (icon.value &&\r\n (icon.value.height / ratio.value) * normalizedScale.value) ||\r\n 0\r\n );\r\n });\r\n\r\n const style = computed(() => {\r\n if (normalizedScale.value === 1) return false;\r\n return {\r\n fontSize: normalizedScale.value + \"em\"\r\n };\r\n });\r\n\r\n const raw = computed((): string | null => {\r\n // Generates unique id for each icon's SVG element with ID\r\n if (!icon.value || !icon.value.raw) return null;\r\n\r\n const ids: { [key: string]: string } = {};\r\n let raw = icon.value.raw;\r\n\r\n raw = raw.replace(\r\n /\\s(?:xml:)?id=([\"']?)([^\"')\\s]+)\\1/g,\r\n (match: any, quote: string, id: string) => {\r\n const uniqueId = utils.getID(\"vat-\");\r\n ids[id] = uniqueId;\r\n return ` id=\"${uniqueId}\"`;\r\n }\r\n );\r\n raw = raw.replace(\r\n /#(?:([^'\")\\s]+)|xpointer\\(id\\((['\"]?)([^')]+)\\2\\)\\))/g,\r\n (match: any, rawId: string, _: string, pointerId: string) => {\r\n const id = rawId || pointerId;\r\n if (!id || !ids[id]) return match;\r\n return `#${ids[id]}`;\r\n }\r\n );\r\n return raw;\r\n });\r\n\r\n const attribs = computed((): any => {\r\n if (!icon.value || !icon.value.attr) return {};\r\n return icon.value.attr;\r\n });\r\n\r\n const updateStack = () => {\r\n if (!props.name && props.name !== null && children.value.length === 0) {\r\n console.warn(`Invalid prop: prop \"name\" is required.`);\r\n return;\r\n }\r\n\r\n if (icon.value) return;\r\n\r\n let width = 0,\r\n height = 0;\r\n\r\n children.value.forEach((child: any) => {\r\n child.outerScale = normalizedScale.value;\r\n\r\n width = Math.max(width, child.width);\r\n height = Math.max(height, child.height);\r\n });\r\n\r\n childrenState.width = width;\r\n childrenState.height = height;\r\n\r\n children.value.forEach((child: any) => {\r\n child.x = (width - child.width) / 2;\r\n child.y = (height - child.height) / 2;\r\n });\r\n };\r\n\r\n onMounted(() => {\r\n updateStack();\r\n });\r\n\r\n onUpdated(() => {\r\n updateStack();\r\n });\r\n\r\n return {\r\n ...toRefs(state),\r\n children,\r\n icon,\r\n klass,\r\n style,\r\n width,\r\n height,\r\n box,\r\n attribs,\r\n raw\r\n };\r\n },\r\n\r\n created() {\r\n const parent = this.$parent as any;\r\n if (parent && parent.children) parent.children.push(this);\r\n },\r\n\r\n render() {\r\n const attrs = Object.assign(\r\n {\r\n role: this.$attrs.role || (this.label || this.title ? \"img\" : null),\r\n \"aria-label\": this.label || null,\r\n \"aria-hidden\": !(this.label || this.title),\r\n width: this.width,\r\n height: this.height,\r\n viewBox: this.box\r\n },\r\n this.attribs\r\n ) as any;\r\n\r\n if ((this.attribs as ObjType).stroke)\r\n attrs.stroke = this.fill ? this.fill : \"currentColor\";\r\n else attrs.fill = this.fill ? this.fill : \"currentColor\";\r\n\r\n if (this.x) attrs.x = (this.x as number).toString();\r\n if (this.y) attrs.y = (this.y as number).toString();\r\n\r\n let options = {\r\n class: this.klass,\r\n style: this.style\r\n } as any;\r\n\r\n if (isVue2) {\r\n options.attrs = attrs;\r\n } else {\r\n options = Object.assign(options, attrs);\r\n }\r\n\r\n if (this.raw) {\r\n const html = this.title\r\n ? `<title>${utils.escapeHTML(this.title)}</title>${this.raw}`\r\n : this.raw;\r\n\r\n if (isVue2) {\r\n options.domProps = { innerHTML: html };\r\n } else {\r\n options.innerHTML = html;\r\n }\r\n }\r\n\r\n const content = this.title\r\n ? [h(\"title\", this.title as string)]\r\n : ([] as any[]);\r\n\r\n const svgAttrs = (name: string, value: ObjType, i: number) => {\r\n if (isVue2) {\r\n return h(name, {\r\n attrs: value,\r\n key: `${name}-${i}`\r\n });\r\n } else {\r\n return h(name, {\r\n ...value,\r\n key: `${name}-${i}`\r\n });\r\n }\r\n };\r\n\r\n return h(\r\n \"svg\",\r\n options,\r\n this.raw\r\n ? undefined\r\n : content.concat([\r\n this.$slots.default\r\n ? isVue2\r\n ? this.$slots.default\r\n : // @ts-ignore: this.$slots.default() is only used in Vue3\r\n this.$slots.default()\r\n : this.icon\r\n ? [\r\n ...((this.icon as CustomizeIconType).paths as ObjType[]).map(\r\n (path: ObjType, i: number) => svgAttrs(\"path\", path, i)\r\n ),\r\n ...(\r\n (this.icon as CustomizeIconType).polygons as ObjType[]\r\n ).map((polygon: ObjType, i: number) =>\r\n svgAttrs(\"polygon\", polygon, i)\r\n )\r\n ]\r\n : []\r\n ])\r\n );\r\n }\r\n});\r\n\r\nexport { HiVueIcon, addIcons, listIcons };\r\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":[],"mappings":"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"}