comic-plus
Version:
<p align="center"> <img width="200px" src="./logo.png"/> </p>
35 lines (34 loc) • 1.07 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
const icon_props = require("./icon.props.js");
const components = require("./components.js");
require("../style/icon.css");
const enums = (() => {
return Object.keys(components).reduce((sum, acc) => {
let key = acc.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").toLowerCase();
sum[key] = acc;
return sum;
}, {});
})();
const Icon = vue.defineComponent({
name: "CuIcon",
props: {
...icon_props.iconProps,
name: {
type: String,
required: true
}
},
setup(props) {
const currentIcon = vue.computed(() => {
if (!enums[props.name]) {
vue.warn("The icon with that name does not exist in the library. Please check if the name is legal");
return null;
}
return vue.h(components[enums[props.name]], props);
});
return () => vue.h("i", { class: "cu-icon" }, currentIcon.value);
}
});
exports.default = Icon;