Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/assets/vue/components/basecomponents/BaseIcon.vue

49 lines
917 B

<template>
<i :class="iconClass"/>
</template>
<script setup>
import {computed} from "vue";
import {chamiloIconToClass} from "./ChamiloIcons";
const props = defineProps({
icon: {
type: String,
required: true,
validator: (value) => {
if (typeof (value) !== "string") {
return false
}
return Object.keys(chamiloIconToClass).includes(value)
}
},
size: {
type: String,
default: "normal",
validator: (value) => {
if (typeof (value) !== "string") {
return false
}
return [
"normal",
"small",
].includes(value);
}
}
});
const iconClass = computed(() => {
let iconClass = chamiloIconToClass[props.icon] + " ";
switch (props.size) {
case "normal":
iconClass += "text-xl/4 ";
break;
case "small":
iconClass += "text-base/4 ";
break;
}
return iconClass;
});
</script>