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.
 
 

114 lines
2.2 KiB

<template>
<div class="tw-flex tw-flex-col">
<label class="tw-body-4 container-checkbox" :for="input.id">
{{ $t(input.label) }}
<input :id="input.id" type="checkbox" :value="value" v-model="inputVal" />
<span class="checkmark"></span>
</label>
</div>
</template>
<script>
export default {
name: "ElementCheckBox",
props: {
input: {
type: Object,
},
default: {
type: String,
},
},
data() {
return {
value: null,
};
},
mounted() { },
watch: {
default: {
handler: function () {
this.value = this.default;
},
},
},
computed: {
inputVal: {
get() {
return this.value;
},
set(val) {
this.value = val;
this.$emit("update", val);
},
},
},
};
</script>
<style lang="scss" scoped>
/* The container */
.container-checkbox {
display: block;
position: relative;
padding-left: 37px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* Hide the browser's default checkbox */
.container-checkbox input {
position: absolute;
opacity: 0;
cursor: pointer;
}
/* Create a custom checkbox */
.container-checkbox .checkmark {
position: absolute;
top: 0;
left: 0;
height: 18px;
width: 18px;
background-color: transparent;
border: 1px solid #f48800;
border-radius: 4px;
}
/* On mouse-over, add a grey background color */
.container-checkbox:hover input~.checkmark {
border-color: #f48800;
}
/* When the checkbox is checked, add a blue background */
.container-checkbox input:checked~.checkmark {
background-color: #f48800;
border-color: #f48800;
}
/* Create the checkmark/indicator (hidden when not checked) */
.container-checkbox .checkmark:after {
content: "";
position: absolute;
display: none;
}
/* Show the checkmark when checked */
.container-checkbox input:checked~.checkmark:after {
display: block;
}
/* Style the checkmark/indicator */
.container-checkbox .checkmark:after {
left: 5px;
top: 2px;
width: 5px;
height: 10px;
border: solid #ffffff;
border-width: 0 2px 2px 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
</style>