42 lines
986 B
Vue
42 lines
986 B
Vue
<template>
|
|
<div class="emphased">
|
|
<div>
|
|
<input class="hidden" checked ref="input" type="radio" value="unset" :name="questionId">
|
|
</div>
|
|
<RadioButton v-for="(val, index) in values" :key="index" :index="index" :question-id="questionId" :val="val"
|
|
:color="colors[index] ?? 'unset'" />
|
|
</div>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
interface Props {
|
|
values?: string[]
|
|
colors?: string[]
|
|
questionId: string
|
|
}
|
|
|
|
const { values = ["Très bien", "Bien", "Passable", "Insuffisant", "À rejeter"], colors = ["#4DB544", "#87E169", "#FFC33C", "#FF824B", "#E94A4D"], questionId } = defineProps<Props>()
|
|
|
|
</script>
|
|
|
|
|
|
<style scoped="true" lang="css">
|
|
.emphased {
|
|
position: relative;
|
|
margin-top: 2em;
|
|
margin-bottom: 2em;
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
display: inline-flex;
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.emphased div:last-child {
|
|
border-right: 1px solid #444;
|
|
}
|
|
|
|
.hidden {
|
|
display: none;
|
|
}
|
|
</style> |