@coreui/vue-pro 4.9.0 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/form/CFormCheck.d.ts +26 -2
- package/dist/index.es.js +45 -5
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +45 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/form/CFormCheck.ts +54 -5
package/package.json
CHANGED
|
@@ -14,6 +14,12 @@ const CFormCheck = defineComponent({
|
|
|
14
14
|
* @see http://coreui.io/vue/docs/components/button.html
|
|
15
15
|
*/
|
|
16
16
|
button: Object,
|
|
17
|
+
/**
|
|
18
|
+
* Use in conjunction with the v-model directive to specify the value that should be assigned to the bound variable when the checkbox is in the `false` state.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.10.0
|
|
21
|
+
*/
|
|
22
|
+
falseValue: String,
|
|
17
23
|
/**
|
|
18
24
|
* Provide valuable, actionable feedback.
|
|
19
25
|
*
|
|
@@ -66,7 +72,7 @@ const CFormCheck = defineComponent({
|
|
|
66
72
|
* The default name for a value passed using v-model.
|
|
67
73
|
*/
|
|
68
74
|
modelValue: {
|
|
69
|
-
type: [Boolean, String],
|
|
75
|
+
type: [Array, Boolean, String],
|
|
70
76
|
value: undefined,
|
|
71
77
|
},
|
|
72
78
|
/**
|
|
@@ -81,6 +87,12 @@ const CFormCheck = defineComponent({
|
|
|
81
87
|
* @since 4.3.0
|
|
82
88
|
*/
|
|
83
89
|
tooltipFeedback: Boolean,
|
|
90
|
+
/**
|
|
91
|
+
* Use in conjunction with the v-model directive to specify the value that should be assigned to the bound variable when the checkbox is in the `true` state.
|
|
92
|
+
*
|
|
93
|
+
* @since 4.10.0
|
|
94
|
+
*/
|
|
95
|
+
trueValue: String,
|
|
84
96
|
/**
|
|
85
97
|
* Specifies the type of component.
|
|
86
98
|
*
|
|
@@ -111,8 +123,35 @@ const CFormCheck = defineComponent({
|
|
|
111
123
|
],
|
|
112
124
|
setup(props, { attrs, emit, slots }) {
|
|
113
125
|
const handleChange = (event: InputEvent) => {
|
|
126
|
+
const target = event.target as HTMLInputElement
|
|
114
127
|
emit('change', event)
|
|
115
|
-
|
|
128
|
+
|
|
129
|
+
if (props.falseValue && props.trueValue) {
|
|
130
|
+
emit('update:modelValue', target.checked ? props.trueValue : props.falseValue)
|
|
131
|
+
return
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (props.value && Array.isArray(props.modelValue)) {
|
|
135
|
+
if (props.modelValue.includes(props.value)) {
|
|
136
|
+
emit(
|
|
137
|
+
'update:modelValue',
|
|
138
|
+
props.modelValue.filter((value) => value !== props.value),
|
|
139
|
+
)
|
|
140
|
+
} else {
|
|
141
|
+
emit('update:modelValue', [...props.modelValue, props.value])
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (props.value === undefined) {
|
|
148
|
+
emit('update:modelValue', target.checked)
|
|
149
|
+
return
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (props.value && (props.modelValue === undefined || typeof props.modelValue === 'string')) {
|
|
153
|
+
emit('update:modelValue', target.checked ? props.value : undefined)
|
|
154
|
+
}
|
|
116
155
|
}
|
|
117
156
|
|
|
118
157
|
const className = [
|
|
@@ -135,12 +174,22 @@ const CFormCheck = defineComponent({
|
|
|
135
174
|
},
|
|
136
175
|
]
|
|
137
176
|
|
|
138
|
-
const isChecked = computed(() =>
|
|
177
|
+
const isChecked = computed(() => {
|
|
178
|
+
if (Array.isArray(props.modelValue)) {
|
|
179
|
+
return props.modelValue.includes(props.value)
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (typeof props.modelValue === 'string') {
|
|
183
|
+
return props.modelValue === props.value
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return props.modelValue
|
|
187
|
+
})
|
|
139
188
|
|
|
140
189
|
const formControl = () => {
|
|
141
190
|
return h('input', {
|
|
142
191
|
...attrs,
|
|
143
|
-
...(props.modelValue && { checked: isChecked.value }),
|
|
192
|
+
...(props.modelValue && props.value && { checked: isChecked.value }),
|
|
144
193
|
class: inputClassName,
|
|
145
194
|
id: props.id,
|
|
146
195
|
indeterminate: props.indeterminate,
|
|
@@ -210,4 +259,4 @@ const CFormCheck = defineComponent({
|
|
|
210
259
|
},
|
|
211
260
|
})
|
|
212
261
|
|
|
213
|
-
export { CFormCheck }
|
|
262
|
+
export { CFormCheck }
|