{"version":3,"file":"index.cjs","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  \"<\": \"&lt;\",\r\n  \">\": \"&gt;\",\r\n  '\"': \"&quot;\",\r\n  \"'\": \"&#039;\",\r\n  \"&\": \"&amp;\"\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":["defineComponent","ref","reactive","computed","onMounted","onUpdated","toRefs","isVue2","h"],"mappings":"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"}