@coreui/vue-pro 4.9.0-rc.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/README.md +1 -1
- package/dist/components/dropdown/CDropdown.d.ts +2 -2
- package/dist/components/form/CFormCheck.d.ts +27 -3
- package/dist/components/form/CFormControl.d.ts +1 -1
- package/dist/components/form/CFormInput.d.ts +2 -2
- package/dist/components/form/CFormTextarea.d.ts +2 -2
- package/dist/components/multi-select/CMultiSelect.d.ts +7 -7
- package/dist/components/multi-select/CMultiSelectNativeSelect.d.ts +1 -1
- package/dist/components/multi-select/CMultiSelectSelection.d.ts +1 -1
- package/dist/components/picker/CPicker.d.ts +3 -3
- package/dist/components/popover/CPopover.d.ts +6 -6
- package/dist/components/tooltip/CTooltip.d.ts +6 -6
- package/dist/index.es.js +2922 -2864
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +2921 -2863
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
- package/src/components/date-range-picker/CDateRangePicker.ts +86 -73
- package/src/components/dropdown/CDropdown.ts +1 -1
- package/src/components/form/CFormCheck.ts +54 -5
- package/src/components/multi-select/CMultiSelect.ts +3 -3
- package/src/components/popover/CPopover.ts +3 -3
- package/src/components/time-picker/CTimePicker.ts +63 -52
- package/src/components/tooltip/CTooltip.ts +3 -3
- package/src/utils/getRTLPlacement.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coreui/vue-pro",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.10.0",
|
|
4
4
|
"description": "UI Components Library for Vue.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -38,21 +38,21 @@
|
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@popperjs/core": "^2.11.8",
|
|
41
|
-
"@rollup/plugin-commonjs": "^25.0.
|
|
41
|
+
"@rollup/plugin-commonjs": "^25.0.2",
|
|
42
42
|
"@rollup/plugin-node-resolve": "^15.1.0",
|
|
43
|
-
"@rollup/plugin-typescript": "^11.1.
|
|
43
|
+
"@rollup/plugin-typescript": "^11.1.2",
|
|
44
44
|
"@types/jest": "^29.5.2",
|
|
45
|
-
"@vue/test-utils": "^2.
|
|
45
|
+
"@vue/test-utils": "^2.4.0",
|
|
46
46
|
"@vue/vue3-jest": "29.2.4",
|
|
47
47
|
"date-fns": "^2.29.3",
|
|
48
|
-
"jest": "^29.
|
|
49
|
-
"jest-environment-jsdom": "^29.
|
|
50
|
-
"rollup": "^3.
|
|
48
|
+
"jest": "^29.6.1",
|
|
49
|
+
"jest-environment-jsdom": "^29.6.1",
|
|
50
|
+
"rollup": "^3.26.2",
|
|
51
51
|
"rollup-plugin-vue": "^6.0.0",
|
|
52
|
-
"ts-jest": "^29.1.
|
|
52
|
+
"ts-jest": "^29.1.1",
|
|
53
53
|
"typescript": "^4.9.5",
|
|
54
54
|
"vue": "^3.3.4",
|
|
55
|
-
"vue-types": "^5.0
|
|
55
|
+
"vue-types": "^5.1.0"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@coreui/coreui-pro": "^4.5.0",
|
|
@@ -4,7 +4,6 @@ import { format as dateFormat } from 'date-fns'
|
|
|
4
4
|
|
|
5
5
|
import { CButton } from '../button'
|
|
6
6
|
import { CCalendar } from '../calendar'
|
|
7
|
-
import { CInputGroup } from '../form'
|
|
8
7
|
import { CFormControlWrapper } from './../form/CFormControlWrapper'
|
|
9
8
|
import { CPicker } from '../picker'
|
|
10
9
|
import { CTimePicker } from '../time-picker'
|
|
@@ -645,61 +644,30 @@ const CDateRangePicker = defineComponent({
|
|
|
645
644
|
}
|
|
646
645
|
|
|
647
646
|
const InputGroup = () =>
|
|
648
|
-
h(
|
|
649
|
-
|
|
650
|
-
|
|
647
|
+
h(
|
|
648
|
+
'div',
|
|
649
|
+
{
|
|
651
650
|
class: [
|
|
652
|
-
'
|
|
651
|
+
'input-group',
|
|
652
|
+
'picker-input-group',
|
|
653
653
|
{
|
|
654
|
-
|
|
654
|
+
[`input-group-${props.size}`]: props.size,
|
|
655
655
|
},
|
|
656
656
|
],
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
onClick: () => {
|
|
660
|
-
selectEndDate.value = false
|
|
661
|
-
},
|
|
662
|
-
onInput: (event: Event) => {
|
|
663
|
-
const date = getLocalDateFromString(
|
|
664
|
-
(event.target as HTMLInputElement).value,
|
|
665
|
-
props.locale,
|
|
666
|
-
props.timepicker,
|
|
667
|
-
)
|
|
668
|
-
if (date instanceof Date && date.getTime()) {
|
|
669
|
-
calendarDate.value = date
|
|
670
|
-
startDate.value = date
|
|
671
|
-
}
|
|
672
|
-
},
|
|
673
|
-
placeholder: Array.isArray(props.placeholder) ? props.placeholder[0] : props.placeholder,
|
|
674
|
-
readonly: props.inputReadOnly || typeof props.format === 'string',
|
|
675
|
-
required: props.required,
|
|
676
|
-
ref: inputStartRef,
|
|
677
|
-
value: inputStartHoverValue.value
|
|
678
|
-
? setInputValue(inputStartHoverValue.value)
|
|
679
|
-
: setInputValue(startDate.value),
|
|
680
|
-
}),
|
|
681
|
-
props.range &&
|
|
682
|
-
props.separator !== false &&
|
|
683
|
-
h(
|
|
684
|
-
'span',
|
|
685
|
-
{ class: 'input-group-text' },
|
|
686
|
-
slots.separator
|
|
687
|
-
? slots.separator()
|
|
688
|
-
: h('span', { class: 'picker-input-group-icon date-picker-arrow-icon' }),
|
|
689
|
-
),
|
|
690
|
-
props.range &&
|
|
657
|
+
},
|
|
658
|
+
[
|
|
691
659
|
h('input', {
|
|
692
660
|
autocomplete: 'off',
|
|
693
661
|
class: [
|
|
694
662
|
'form-control date-picker-input',
|
|
695
663
|
{
|
|
696
|
-
hover:
|
|
664
|
+
hover: inputStartHoverValue.value,
|
|
697
665
|
},
|
|
698
666
|
],
|
|
699
667
|
disabled: props.disabled,
|
|
700
|
-
...(props.id && { name: `${props.id}-
|
|
668
|
+
...(props.id && { name: props.range ? `${props.id}-start-date` : `${props.id}-date` }),
|
|
701
669
|
onClick: () => {
|
|
702
|
-
selectEndDate.value =
|
|
670
|
+
selectEndDate.value = false
|
|
703
671
|
},
|
|
704
672
|
onInput: (event: Event) => {
|
|
705
673
|
const date = getLocalDateFromString(
|
|
@@ -709,43 +677,88 @@ const CDateRangePicker = defineComponent({
|
|
|
709
677
|
)
|
|
710
678
|
if (date instanceof Date && date.getTime()) {
|
|
711
679
|
calendarDate.value = date
|
|
712
|
-
|
|
680
|
+
startDate.value = date
|
|
713
681
|
}
|
|
714
682
|
},
|
|
715
|
-
placeholder: props.placeholder
|
|
683
|
+
placeholder: Array.isArray(props.placeholder)
|
|
684
|
+
? props.placeholder[0]
|
|
685
|
+
: props.placeholder,
|
|
716
686
|
readonly: props.inputReadOnly || typeof props.format === 'string',
|
|
717
687
|
required: props.required,
|
|
718
|
-
ref:
|
|
719
|
-
value:
|
|
720
|
-
? setInputValue(
|
|
721
|
-
: setInputValue(
|
|
688
|
+
ref: inputStartRef,
|
|
689
|
+
value: inputStartHoverValue.value
|
|
690
|
+
? setInputValue(inputStartHoverValue.value)
|
|
691
|
+
: setInputValue(startDate.value),
|
|
722
692
|
}),
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
},
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
'span',
|
|
693
|
+
props.range &&
|
|
694
|
+
props.separator !== false &&
|
|
695
|
+
h(
|
|
696
|
+
'span',
|
|
697
|
+
{ class: 'input-group-text' },
|
|
698
|
+
slots.separator
|
|
699
|
+
? slots.separator()
|
|
700
|
+
: h('span', { class: 'picker-input-group-icon date-picker-arrow-icon' }),
|
|
701
|
+
),
|
|
702
|
+
props.range &&
|
|
703
|
+
h('input', {
|
|
704
|
+
autocomplete: 'off',
|
|
705
|
+
class: [
|
|
706
|
+
'form-control date-picker-input',
|
|
738
707
|
{
|
|
739
|
-
|
|
740
|
-
onClick: (event: Event) => handleClear(event),
|
|
741
|
-
role: 'button',
|
|
708
|
+
hover: inputEndHoverValue.value,
|
|
742
709
|
},
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
)
|
|
747
|
-
|
|
748
|
-
|
|
710
|
+
],
|
|
711
|
+
disabled: props.disabled,
|
|
712
|
+
...(props.id && { name: `${props.id}-end-date` }),
|
|
713
|
+
onClick: () => {
|
|
714
|
+
selectEndDate.value = true
|
|
715
|
+
},
|
|
716
|
+
onInput: (event: Event) => {
|
|
717
|
+
const date = getLocalDateFromString(
|
|
718
|
+
(event.target as HTMLInputElement).value,
|
|
719
|
+
props.locale,
|
|
720
|
+
props.timepicker,
|
|
721
|
+
)
|
|
722
|
+
if (date instanceof Date && date.getTime()) {
|
|
723
|
+
calendarDate.value = date
|
|
724
|
+
endDate.value = date
|
|
725
|
+
}
|
|
726
|
+
},
|
|
727
|
+
placeholder: props.placeholder[1],
|
|
728
|
+
readonly: props.inputReadOnly || typeof props.format === 'string',
|
|
729
|
+
required: props.required,
|
|
730
|
+
ref: inputEndRef,
|
|
731
|
+
value: inputEndHoverValue.value
|
|
732
|
+
? setInputValue(inputEndHoverValue.value)
|
|
733
|
+
: setInputValue(endDate.value),
|
|
734
|
+
}),
|
|
735
|
+
(props.indicator || props.cleaner) &&
|
|
736
|
+
h('span', { class: 'input-group-text' }, [
|
|
737
|
+
props.indicator &&
|
|
738
|
+
h(
|
|
739
|
+
'span',
|
|
740
|
+
{
|
|
741
|
+
class: 'picker-input-group-indicator',
|
|
742
|
+
},
|
|
743
|
+
slots.indicator
|
|
744
|
+
? slots.indicator()
|
|
745
|
+
: h('span', { class: 'picker-input-group-icon date-picker-input-icon' }),
|
|
746
|
+
),
|
|
747
|
+
props.cleaner &&
|
|
748
|
+
h(
|
|
749
|
+
'span',
|
|
750
|
+
{
|
|
751
|
+
class: 'picker-input-group-cleaner',
|
|
752
|
+
onClick: (event: Event) => handleClear(event),
|
|
753
|
+
role: 'button',
|
|
754
|
+
},
|
|
755
|
+
slots.cleaner
|
|
756
|
+
? slots.cleaner()
|
|
757
|
+
: h('span', { class: 'picker-input-group-icon date-picker-cleaner-icon' }),
|
|
758
|
+
),
|
|
759
|
+
]),
|
|
760
|
+
],
|
|
761
|
+
)
|
|
749
762
|
|
|
750
763
|
return () =>
|
|
751
764
|
h(
|
|
@@ -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 }
|
|
@@ -19,7 +19,7 @@ const CMultiSelect = defineComponent({
|
|
|
19
19
|
/**
|
|
20
20
|
* Allow users to create options if they are not in the list of options.
|
|
21
21
|
*
|
|
22
|
-
* @since 4.9.0
|
|
22
|
+
* @since 4.9.0
|
|
23
23
|
*/
|
|
24
24
|
allowCreateOptions: Boolean,
|
|
25
25
|
/**
|
|
@@ -34,7 +34,7 @@ const CMultiSelect = defineComponent({
|
|
|
34
34
|
/**
|
|
35
35
|
* Clear current search on selecting an item.
|
|
36
36
|
*
|
|
37
|
-
* @since 4.9.0
|
|
37
|
+
* @since 4.9.0
|
|
38
38
|
*/
|
|
39
39
|
clearSearchOnSelect: Boolean,
|
|
40
40
|
/**
|
|
@@ -78,7 +78,7 @@ const CMultiSelect = defineComponent({
|
|
|
78
78
|
/**
|
|
79
79
|
* When set, the options list will have a loading style: loading spinner and reduced opacity.
|
|
80
80
|
*
|
|
81
|
-
* @since 4.9.0
|
|
81
|
+
* @since 4.9.0
|
|
82
82
|
*/
|
|
83
83
|
loading: Boolean,
|
|
84
84
|
/**
|
|
@@ -12,7 +12,7 @@ const CPopover = defineComponent({
|
|
|
12
12
|
/**
|
|
13
13
|
* Apply a CSS fade transition to the popover.
|
|
14
14
|
*
|
|
15
|
-
* @since 4.9.0
|
|
15
|
+
* @since 4.9.0
|
|
16
16
|
*/
|
|
17
17
|
animation: {
|
|
18
18
|
type: Boolean,
|
|
@@ -25,7 +25,7 @@ const CPopover = defineComponent({
|
|
|
25
25
|
/**
|
|
26
26
|
* The delay for displaying and hiding the popover (in milliseconds). When a numerical value is provided, the delay applies to both the hide and show actions. The object structure for specifying the delay is as follows: delay: `{ 'show': 500, 'hide': 100 }`.
|
|
27
27
|
*
|
|
28
|
-
* @since 4.9.0
|
|
28
|
+
* @since 4.9.0
|
|
29
29
|
*/
|
|
30
30
|
delay: {
|
|
31
31
|
type: [Number, Object] as PropType<number | { show: number; hide: number }>,
|
|
@@ -34,7 +34,7 @@ const CPopover = defineComponent({
|
|
|
34
34
|
/**
|
|
35
35
|
* Specify the desired order of fallback placements by providing a list of placements as an array. The placements should be prioritized based on preference.
|
|
36
36
|
*
|
|
37
|
-
* @since 4.9.0
|
|
37
|
+
* @since 4.9.0
|
|
38
38
|
*/
|
|
39
39
|
fallbackPlacements: {
|
|
40
40
|
type: [String, Array] as PropType<Placements | Placements[]>,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { defineComponent, h, ref, watch } from 'vue'
|
|
2
2
|
|
|
3
3
|
import { CButton } from '../button'
|
|
4
|
-
import { CInputGroup } from '../form'
|
|
5
4
|
import { CFormControlWrapper } from '../form/CFormControlWrapper'
|
|
6
5
|
import { CPicker } from '../picker'
|
|
7
6
|
|
|
@@ -392,60 +391,72 @@ const CTimePicker = defineComponent({
|
|
|
392
391
|
}
|
|
393
392
|
|
|
394
393
|
const InputGroup = () =>
|
|
395
|
-
h(
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
class:
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
394
|
+
h(
|
|
395
|
+
'div',
|
|
396
|
+
{
|
|
397
|
+
class: [
|
|
398
|
+
'input-group',
|
|
399
|
+
'picker-input-group',
|
|
400
|
+
{
|
|
401
|
+
[`input-group-${props.size}`]: props.size,
|
|
402
|
+
},
|
|
403
|
+
],
|
|
404
|
+
},
|
|
405
|
+
[
|
|
406
|
+
h('input', {
|
|
407
|
+
autocomplete: 'off',
|
|
408
|
+
class: 'form-control',
|
|
409
|
+
disabled: props.disabled,
|
|
410
|
+
onInput: (event: Event) => {
|
|
411
|
+
if (isValidTime((event.target as HTMLInputElement).value)) {
|
|
412
|
+
date.value = convertTimeToDate((event.target as HTMLInputElement).value)
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
placeholder: props.placeholder,
|
|
416
|
+
readonly: props.inputReadOnly,
|
|
417
|
+
ref: inputRef,
|
|
418
|
+
required: props.required,
|
|
419
|
+
value: date.value
|
|
420
|
+
? date.value.toLocaleTimeString(props.locale, {
|
|
421
|
+
hour12: localizedTimePartials.value && localizedTimePartials.value.hour12,
|
|
422
|
+
...(!props.seconds && { timeStyle: 'short' }),
|
|
423
|
+
})
|
|
424
|
+
: '',
|
|
425
|
+
}),
|
|
426
|
+
(props.indicator || props.cleaner) &&
|
|
427
|
+
h('div', { class: 'input-group-text' }, [
|
|
428
|
+
props.indicator &&
|
|
429
|
+
h(
|
|
430
|
+
'span',
|
|
431
|
+
{
|
|
432
|
+
class: 'picker-input-group-indicator',
|
|
433
|
+
},
|
|
434
|
+
slots.indicator
|
|
435
|
+
? slots.indicator()
|
|
436
|
+
: h('span', { class: 'picker-input-group-icon time-picker-input-icon' }),
|
|
437
|
+
),
|
|
438
|
+
props.cleaner &&
|
|
439
|
+
h(
|
|
440
|
+
'span',
|
|
441
|
+
{
|
|
442
|
+
class: 'picker-input-group-cleaner',
|
|
443
|
+
onClick: (event: Event) => handleClear(event),
|
|
444
|
+
role: 'button',
|
|
445
|
+
},
|
|
446
|
+
slots.cleaner
|
|
447
|
+
? slots.cleaner()
|
|
448
|
+
: h('span', { class: 'picker-input-group-icon time-picker-cleaner-icon' }),
|
|
449
|
+
),
|
|
450
|
+
]),
|
|
451
|
+
],
|
|
452
|
+
)
|
|
442
453
|
|
|
443
454
|
const TimePickerSelect = () => [
|
|
444
455
|
h('span', { class: 'time-picker-inline-icon' }),
|
|
445
456
|
h(
|
|
446
457
|
'select',
|
|
447
458
|
{
|
|
448
|
-
class: '
|
|
459
|
+
class: 'form-select',
|
|
449
460
|
disabled: props.disabled,
|
|
450
461
|
onChange: (event: Event) =>
|
|
451
462
|
handleTimeChange('hours', (event.target as HTMLSelectElement).value),
|
|
@@ -466,7 +477,7 @@ const CTimePicker = defineComponent({
|
|
|
466
477
|
h(
|
|
467
478
|
'select',
|
|
468
479
|
{
|
|
469
|
-
class: '
|
|
480
|
+
class: 'form-select',
|
|
470
481
|
disabled: props.disabled,
|
|
471
482
|
onChange: (event: Event) =>
|
|
472
483
|
handleTimeChange('minutes', (event.target as HTMLSelectElement).value),
|
|
@@ -488,7 +499,7 @@ const CTimePicker = defineComponent({
|
|
|
488
499
|
h(
|
|
489
500
|
'select',
|
|
490
501
|
{
|
|
491
|
-
class: '
|
|
502
|
+
class: 'form-select',
|
|
492
503
|
disabled: props.disabled,
|
|
493
504
|
onChange: (event: Event) =>
|
|
494
505
|
handleTimeChange('seconds', (event.target as HTMLSelectElement).value),
|
|
@@ -510,7 +521,7 @@ const CTimePicker = defineComponent({
|
|
|
510
521
|
h(
|
|
511
522
|
'select',
|
|
512
523
|
{
|
|
513
|
-
class: '
|
|
524
|
+
class: 'form-select',
|
|
514
525
|
disabled: props.disabled,
|
|
515
526
|
onChange: (event: Event) =>
|
|
516
527
|
handleTimeChange('toggle', (event.target as HTMLSelectElement).value),
|
|
@@ -12,7 +12,7 @@ const CTooltip = defineComponent({
|
|
|
12
12
|
/**
|
|
13
13
|
* Apply a CSS fade transition to the tooltip.
|
|
14
14
|
*
|
|
15
|
-
* @since 4.9.0
|
|
15
|
+
* @since 4.9.0
|
|
16
16
|
*/
|
|
17
17
|
animation: {
|
|
18
18
|
type: Boolean,
|
|
@@ -25,7 +25,7 @@ const CTooltip = defineComponent({
|
|
|
25
25
|
/**
|
|
26
26
|
* The delay for displaying and hiding the popover (in milliseconds). When a numerical value is provided, the delay applies to both the hide and show actions. The object structure for specifying the delay is as follows: delay: `{ 'show': 500, 'hide': 100 }`.
|
|
27
27
|
*
|
|
28
|
-
* @since 4.9.0
|
|
28
|
+
* @since 4.9.0
|
|
29
29
|
*/
|
|
30
30
|
delay: {
|
|
31
31
|
type: [Number, Object] as PropType<number | { show: number; hide: number }>,
|
|
@@ -34,7 +34,7 @@ const CTooltip = defineComponent({
|
|
|
34
34
|
/**
|
|
35
35
|
* Specify the desired order of fallback placements by providing a list of placements as an array. The placements should be prioritized based on preference.
|
|
36
36
|
*
|
|
37
|
-
* @since 4.9.0
|
|
37
|
+
* @since 4.9.0
|
|
38
38
|
*/
|
|
39
39
|
fallbackPlacements: {
|
|
40
40
|
type: [String, Array] as PropType<Placements | Placements[]>,
|