vueless 0.0.747 → 0.0.749
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/package.json +1 -1
- package/ui.button-toggle/UToggle.vue +3 -6
- package/ui.button-toggle/storybook/stories.ts +5 -5
- package/ui.container-accordion/UAccordion.vue +2 -1
- package/ui.container-card/UCard.vue +2 -1
- package/ui.container-col/UCol.vue +2 -2
- package/ui.container-divider/UDivider.vue +5 -2
- package/ui.container-group/UGroup.vue +2 -1
- package/ui.container-groups/UGroups.vue +2 -2
- package/ui.container-modal/UModal.vue +3 -2
- package/ui.container-modal-confirm/UModalConfirm.vue +10 -5
- package/ui.container-page/UPage.vue +2 -1
- package/ui.container-row/URow.vue +2 -2
- package/ui.data-list/UDataList.vue +7 -6
- package/ui.data-table/UTable.vue +8 -7
- package/ui.data-table/UTableRow.vue +11 -5
- package/ui.dropdown-badge/UDropdownBadge.vue +11 -5
- package/ui.dropdown-button/UDropdownButton.vue +11 -5
- package/ui.dropdown-list/UDropdownList.vue +5 -4
- package/ui.form-calendar/config.ts +3 -3
- package/ui.form-calendar/utilFormatting.ts +1 -1
- package/ui.form-checkbox/UCheckbox.vue +10 -4
- package/ui.form-checkbox-group/UCheckboxGroup.vue +4 -3
- package/ui.form-date-picker/UDatePicker.vue +1 -0
- package/ui.form-date-picker/config.ts +5 -5
- package/ui.form-date-picker-range/config.ts +3 -3
- package/ui.form-input/UInput.vue +3 -2
- package/ui.form-input-file/UInputFile.vue +3 -2
- package/ui.form-input-money/UInputMoney.vue +2 -2
- package/ui.form-input-number/UInputNumber.vue +4 -3
- package/ui.form-input-rating/UInputRating.vue +3 -3
- package/ui.form-input-search/UInputSearch.vue +5 -4
- package/ui.form-label/ULabel.vue +15 -10
- package/ui.form-radio/URadio.vue +3 -3
- package/ui.form-radio-group/URadioGroup.vue +3 -3
- package/ui.form-switch/USwitch.vue +2 -1
- package/ui.form-textarea/UTextarea.vue +10 -4
- package/ui.image-avatar/UAvatar.vue +2 -2
- package/ui.loader/ULoader.vue +2 -2
- package/ui.loader-overlay/ULoaderOverlay.vue +2 -2
- package/ui.loader-progress/ULoaderProgress.vue +2 -2
- package/ui.navigation-breadcrumbs/UBreadcrumbs.vue +9 -3
- package/ui.navigation-pagination/UPagination.vue +7 -6
- package/ui.navigation-progress/UProgress.vue +10 -3
- package/ui.navigation-tab/UTab.vue +5 -2
- package/ui.navigation-tabs/UTabs.vue +3 -2
- package/ui.other-dot/UDot.vue +2 -2
- package/ui.text-alert/UAlert.vue +3 -2
- package/ui.text-badge/UBadge.vue +3 -5
- package/ui.text-block/UText.vue +2 -2
- package/ui.text-empty/UEmpty.vue +2 -1
- package/ui.text-file/UFile.vue +3 -2
- package/ui.text-files/UFiles.vue +2 -2
- package/ui.text-header/UHeader.vue +2 -2
- package/ui.text-money/UMoney.vue +2 -2
- package/ui.text-notify/UNotify.vue +3 -2
- package/ui.text-number/UNumber.vue +2 -2
package/package.json
CHANGED
|
@@ -17,7 +17,6 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
17
17
|
...getDefaults<Props, Config>(defaultConfig, COMPONENT_NAME),
|
|
18
18
|
options: () => [],
|
|
19
19
|
modelValue: () => [],
|
|
20
|
-
label: "",
|
|
21
20
|
});
|
|
22
21
|
|
|
23
22
|
const emit = defineEmits([
|
|
@@ -64,10 +63,8 @@ const mutatedProps = computed(() => ({
|
|
|
64
63
|
selected: isSelected,
|
|
65
64
|
}));
|
|
66
65
|
|
|
67
|
-
const { optionsAttrs, toggleButtonInactiveAttrs, toggleButtonActiveAttrs } =
|
|
68
|
-
defaultConfig,
|
|
69
|
-
mutatedProps,
|
|
70
|
-
);
|
|
66
|
+
const { getDataTest, optionsAttrs, toggleButtonInactiveAttrs, toggleButtonActiveAttrs } =
|
|
67
|
+
useUI<Config>(defaultConfig, mutatedProps);
|
|
71
68
|
</script>
|
|
72
69
|
|
|
73
70
|
<template>
|
|
@@ -84,7 +81,7 @@ const { optionsAttrs, toggleButtonInactiveAttrs, toggleButtonActiveAttrs } = use
|
|
|
84
81
|
:square="square"
|
|
85
82
|
:disabled="disabled"
|
|
86
83
|
v-bind="isSelected(option) ? toggleButtonActiveAttrs : toggleButtonInactiveAttrs"
|
|
87
|
-
:data-test="
|
|
84
|
+
:data-test="getDataTest(`option-${index}`)"
|
|
88
85
|
@click="onClickOption(option)"
|
|
89
86
|
>
|
|
90
87
|
<template #left="{ iconName }">
|
|
@@ -130,22 +130,22 @@ Square.args = {
|
|
|
130
130
|
{ value: "13", label: "timer" },
|
|
131
131
|
],
|
|
132
132
|
slotTemplate: `
|
|
133
|
-
<template #
|
|
133
|
+
<template #option="{ label, index }">
|
|
134
134
|
<UIcon :name="label" color="inherit" />
|
|
135
135
|
</template>
|
|
136
136
|
`,
|
|
137
137
|
};
|
|
138
138
|
|
|
139
|
-
export const
|
|
140
|
-
|
|
141
|
-
name: "
|
|
139
|
+
export const OptionSlot = DefaultTemplate.bind({});
|
|
140
|
+
OptionSlot.args = {
|
|
141
|
+
name: "optionSlot",
|
|
142
142
|
options: [
|
|
143
143
|
{ value: "1", label: "Download", rightIcon: "download", color: "green" },
|
|
144
144
|
{ value: "2", label: "Edit", rightIcon: "edit_note", color: "orange" },
|
|
145
145
|
{ value: "3", label: "Delete", rightIcon: "delete", color: "red" },
|
|
146
146
|
],
|
|
147
147
|
slotTemplate: `
|
|
148
|
-
<template #
|
|
148
|
+
<template #option="{ label, index }">
|
|
149
149
|
<UBadge
|
|
150
150
|
:label="label"
|
|
151
151
|
:color="args.options[index].color"
|
|
@@ -47,6 +47,7 @@ const mutatedProps = computed(() => ({
|
|
|
47
47
|
}));
|
|
48
48
|
|
|
49
49
|
const {
|
|
50
|
+
getDataTest,
|
|
50
51
|
config,
|
|
51
52
|
wrapperAttrs,
|
|
52
53
|
descriptionAttrs,
|
|
@@ -58,7 +59,7 @@ const {
|
|
|
58
59
|
</script>
|
|
59
60
|
|
|
60
61
|
<template>
|
|
61
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
62
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()" @click="onClickItem">
|
|
62
63
|
<div v-bind="bodyAttrs">
|
|
63
64
|
<div v-bind="titleAttrs">
|
|
64
65
|
{{ title }}
|
|
@@ -37,6 +37,7 @@ const isShownFooter = computed(() => {
|
|
|
37
37
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
38
38
|
*/
|
|
39
39
|
const {
|
|
40
|
+
getDataTest,
|
|
40
41
|
wrapperAttrs,
|
|
41
42
|
titleAttrs,
|
|
42
43
|
cardDividerAttrs,
|
|
@@ -50,7 +51,7 @@ const {
|
|
|
50
51
|
</script>
|
|
51
52
|
|
|
52
53
|
<template>
|
|
53
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
54
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
54
55
|
<div v-if="isShownHeader" v-bind="headerAttrs">
|
|
55
56
|
<div v-bind="headerLeftAttrs">
|
|
56
57
|
<!-- @slot Use it to add something before left side of the header. -->
|
|
@@ -18,11 +18,11 @@ withDefaults(defineProps<Props>(), {
|
|
|
18
18
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
const { wrapperAttrs } = useUI<Config>(defaultConfig);
|
|
21
|
+
const { getDataTest, wrapperAttrs } = useUI<Config>(defaultConfig);
|
|
22
22
|
</script>
|
|
23
23
|
|
|
24
24
|
<template>
|
|
25
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
25
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
26
26
|
<!-- @slot Use it to add something inside. -->
|
|
27
27
|
<slot />
|
|
28
28
|
</div>
|
|
@@ -20,11 +20,14 @@ const mutatedProps = computed(() => ({
|
|
|
20
20
|
label: Boolean(props.label),
|
|
21
21
|
}));
|
|
22
22
|
|
|
23
|
-
const { wrapperAttrs, dividerAttrs, labelAttrs } = useUI<Config>(
|
|
23
|
+
const { getDataTest, wrapperAttrs, dividerAttrs, labelAttrs } = useUI<Config>(
|
|
24
|
+
defaultConfig,
|
|
25
|
+
mutatedProps,
|
|
26
|
+
);
|
|
24
27
|
</script>
|
|
25
28
|
|
|
26
29
|
<template>
|
|
27
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
30
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
28
31
|
<div v-bind="dividerAttrs" />
|
|
29
32
|
<span v-if="label" v-bind="labelAttrs" v-text="label" />
|
|
30
33
|
</div>
|
|
@@ -20,6 +20,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
20
20
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
21
21
|
*/
|
|
22
22
|
const {
|
|
23
|
+
getDataTest,
|
|
23
24
|
headerAttrs,
|
|
24
25
|
wrapperAttrs,
|
|
25
26
|
headerLeftFallbackAttrs,
|
|
@@ -31,7 +32,7 @@ const {
|
|
|
31
32
|
</script>
|
|
32
33
|
|
|
33
34
|
<template>
|
|
34
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
35
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
35
36
|
<template v-if="title">
|
|
36
37
|
<UDivider v-if="upperlined" size="xl" padding="after" v-bind="upperlineAttrs" />
|
|
37
38
|
|
|
@@ -17,11 +17,11 @@ withDefaults(defineProps<Props>(), {
|
|
|
17
17
|
* Get element / nested component attributes for each config token ✨
|
|
18
18
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
19
19
|
*/
|
|
20
|
-
const { wrapperAttrs } = useUI<Config>(defaultConfig);
|
|
20
|
+
const { getDataTest, wrapperAttrs } = useUI<Config>(defaultConfig);
|
|
21
21
|
</script>
|
|
22
22
|
|
|
23
23
|
<template>
|
|
24
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
24
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
25
25
|
<!-- @slot Use it to add something inside. -->
|
|
26
26
|
<slot />
|
|
27
27
|
</div>
|
|
@@ -110,6 +110,7 @@ function closeModal() {
|
|
|
110
110
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
111
111
|
*/
|
|
112
112
|
const {
|
|
113
|
+
getDataTest,
|
|
113
114
|
config,
|
|
114
115
|
modalAttrs,
|
|
115
116
|
titleAttrs,
|
|
@@ -145,7 +146,7 @@ const {
|
|
|
145
146
|
ref="wrapperRef"
|
|
146
147
|
tabindex="0"
|
|
147
148
|
v-bind="wrapperAttrs"
|
|
148
|
-
:data-test="
|
|
149
|
+
:data-test="getDataTest()"
|
|
149
150
|
@keydown.self.esc="onKeydownEsc"
|
|
150
151
|
>
|
|
151
152
|
<div v-bind="innerWrapperAttrs" @click.self="onClickOutside">
|
|
@@ -203,7 +204,7 @@ const {
|
|
|
203
204
|
size="sm"
|
|
204
205
|
:name="config.defaults.closeIcon"
|
|
205
206
|
v-bind="closeIconAttrs"
|
|
206
|
-
:data-test="
|
|
207
|
+
:data-test="getDataTest('close')"
|
|
207
208
|
@click="onClickCloseModal"
|
|
208
209
|
/>
|
|
209
210
|
</slot>
|
|
@@ -71,8 +71,13 @@ function emitConfirmAction() {
|
|
|
71
71
|
* Get element / nested component attributes for each config token ✨
|
|
72
72
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
73
73
|
*/
|
|
74
|
-
const {
|
|
75
|
-
|
|
74
|
+
const {
|
|
75
|
+
getDataTest,
|
|
76
|
+
footerLeftFallbackAttrs,
|
|
77
|
+
confirmModalAttrs,
|
|
78
|
+
confirmButtonAttrs,
|
|
79
|
+
cancelButtonAttrs,
|
|
80
|
+
} = useUI<Config>(defaultConfig);
|
|
76
81
|
</script>
|
|
77
82
|
|
|
78
83
|
<template>
|
|
@@ -90,7 +95,7 @@ const { footerLeftFallbackAttrs, confirmModalAttrs, confirmButtonAttrs, cancelBu
|
|
|
90
95
|
no-divider
|
|
91
96
|
mobile-bottom-align
|
|
92
97
|
v-bind="confirmModalAttrs"
|
|
93
|
-
:data-test="
|
|
98
|
+
:data-test="getDataTest()"
|
|
94
99
|
>
|
|
95
100
|
<template #header-left>
|
|
96
101
|
<!-- @slot Use it to add something to the left side of the header. -->
|
|
@@ -133,7 +138,7 @@ const { footerLeftFallbackAttrs, confirmModalAttrs, confirmButtonAttrs, cancelBu
|
|
|
133
138
|
:color="confirmColor"
|
|
134
139
|
:disabled="confirmDisabled"
|
|
135
140
|
v-bind="confirmButtonAttrs"
|
|
136
|
-
:data-test="
|
|
141
|
+
:data-test="getDataTest('confirm')"
|
|
137
142
|
@click="emitConfirmAction"
|
|
138
143
|
/>
|
|
139
144
|
|
|
@@ -143,7 +148,7 @@ const { footerLeftFallbackAttrs, confirmModalAttrs, confirmButtonAttrs, cancelBu
|
|
|
143
148
|
variant="secondary"
|
|
144
149
|
color="gray"
|
|
145
150
|
v-bind="cancelButtonAttrs"
|
|
146
|
-
:data-test="
|
|
151
|
+
:data-test="getDataTest('close')"
|
|
147
152
|
@click="onCloseModal"
|
|
148
153
|
/>
|
|
149
154
|
</div>
|
|
@@ -72,6 +72,7 @@ function onClickBackLink() {
|
|
|
72
72
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
73
73
|
*/
|
|
74
74
|
const {
|
|
75
|
+
getDataTest,
|
|
75
76
|
config,
|
|
76
77
|
wrapperAttrs,
|
|
77
78
|
pageAttrs,
|
|
@@ -94,7 +95,7 @@ const {
|
|
|
94
95
|
</script>
|
|
95
96
|
|
|
96
97
|
<template>
|
|
97
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
98
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
98
99
|
<div v-bind="pageAttrs">
|
|
99
100
|
<!-- @slot Use it to add something before the header. -->
|
|
100
101
|
<slot name="header-before" />
|
|
@@ -17,11 +17,11 @@ withDefaults(defineProps<Props>(), {
|
|
|
17
17
|
* Get element / nested component attributes for each config token ✨
|
|
18
18
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
19
19
|
*/
|
|
20
|
-
const { wrapperAttrs } = useUI<Config>(defaultConfig);
|
|
20
|
+
const { getDataTest, wrapperAttrs } = useUI<Config>(defaultConfig);
|
|
21
21
|
</script>
|
|
22
22
|
|
|
23
23
|
<template>
|
|
24
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
24
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
25
25
|
<!-- @slot Use it to add something inside. -->
|
|
26
26
|
<slot />
|
|
27
27
|
</div>
|
|
@@ -105,6 +105,7 @@ function prepareSortData(list: DataListItem[] = [], parentValue: string | number
|
|
|
105
105
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
106
106
|
*/
|
|
107
107
|
const {
|
|
108
|
+
getDataTest,
|
|
108
109
|
config,
|
|
109
110
|
wrapperAttrs,
|
|
110
111
|
emptyAttrs,
|
|
@@ -151,13 +152,13 @@ const {
|
|
|
151
152
|
:ghost-class="config.draggableGhost"
|
|
152
153
|
:drag-class="config.draggableDrag"
|
|
153
154
|
v-bind="draggableAttrs"
|
|
154
|
-
:data-test="
|
|
155
|
+
:data-test="getDataTest()"
|
|
155
156
|
:move="onDragMove"
|
|
156
157
|
@end="onDragEnd"
|
|
157
158
|
>
|
|
158
159
|
<template #item="{ element }">
|
|
159
|
-
<div :id="element[valueKey]" v-bind="itemWrapperAttrs" :data-test="
|
|
160
|
-
<div v-bind="itemAttrs" :data-test="
|
|
160
|
+
<div :id="element[valueKey]" v-bind="itemWrapperAttrs" :data-test="getDataTest('item')">
|
|
161
|
+
<div v-bind="itemAttrs" :data-test="getDataTest(`item-${element[valueKey]}`)">
|
|
161
162
|
<!--
|
|
162
163
|
@slot Use it to add something instead of the drag icon.
|
|
163
164
|
@binding {object} item
|
|
@@ -210,7 +211,7 @@ const {
|
|
|
210
211
|
:name="config.defaults.deleteIcon"
|
|
211
212
|
:tooltip="currentLocale.delete"
|
|
212
213
|
v-bind="deleteIconAttrs"
|
|
213
|
-
:data-test="
|
|
214
|
+
:data-test="getDataTest('delete')"
|
|
214
215
|
@click="onClickDelete(element[valueKey], element[labelKey])"
|
|
215
216
|
/>
|
|
216
217
|
</slot>
|
|
@@ -229,7 +230,7 @@ const {
|
|
|
229
230
|
:name="config.defaults.editIcon"
|
|
230
231
|
:tooltip="currentLocale.edit"
|
|
231
232
|
v-bind="editIconAttrs"
|
|
232
|
-
:data-test="
|
|
233
|
+
:data-test="getDataTest('edit')"
|
|
233
234
|
@click="onClickEdit(element[valueKey], element[labelKey])"
|
|
234
235
|
/>
|
|
235
236
|
</slot>
|
|
@@ -243,7 +244,7 @@ const {
|
|
|
243
244
|
:list="element.children"
|
|
244
245
|
:group="group"
|
|
245
246
|
v-bind="nestedAttrs"
|
|
246
|
-
:data-test="
|
|
247
|
+
:data-test="getDataTest('table')"
|
|
247
248
|
@click-delete="onClickDelete"
|
|
248
249
|
@click-edit="onClickEdit"
|
|
249
250
|
@drag-sort="onDragEnd"
|
package/ui.data-table/UTable.vue
CHANGED
|
@@ -448,6 +448,7 @@ const mutatedProps = computed(() => ({
|
|
|
448
448
|
}));
|
|
449
449
|
|
|
450
450
|
const {
|
|
451
|
+
getDataTest,
|
|
451
452
|
config,
|
|
452
453
|
wrapperAttrs,
|
|
453
454
|
stickyHeaderCellAttrs,
|
|
@@ -494,7 +495,7 @@ const {
|
|
|
494
495
|
</script>
|
|
495
496
|
|
|
496
497
|
<template>
|
|
497
|
-
<div v-bind="wrapperAttrs" :data-test="
|
|
498
|
+
<div v-bind="wrapperAttrs" :data-test="getDataTest()">
|
|
498
499
|
<div
|
|
499
500
|
v-show="isHeaderSticky && !isShownActionsHeader"
|
|
500
501
|
ref="sticky-header-row"
|
|
@@ -508,7 +509,7 @@ const {
|
|
|
508
509
|
size="md"
|
|
509
510
|
:partial="!isSelectedAllRows"
|
|
510
511
|
v-bind="stickyHeaderCheckboxAttrs"
|
|
511
|
-
:data-test="
|
|
512
|
+
:data-test="getDataTest('select-all')"
|
|
512
513
|
/>
|
|
513
514
|
|
|
514
515
|
<div
|
|
@@ -562,7 +563,7 @@ const {
|
|
|
562
563
|
size="md"
|
|
563
564
|
:partial="!isSelectedAllRows"
|
|
564
565
|
v-bind="headerActionsCheckboxAttrs"
|
|
565
|
-
:data-test="
|
|
566
|
+
:data-test="getDataTest('select-all')"
|
|
566
567
|
/>
|
|
567
568
|
</div>
|
|
568
569
|
|
|
@@ -595,7 +596,7 @@ const {
|
|
|
595
596
|
size="md"
|
|
596
597
|
:partial="!isSelectedAllRows"
|
|
597
598
|
v-bind="headerActionsCheckboxAttrs"
|
|
598
|
-
:data-test="
|
|
599
|
+
:data-test="getDataTest('select-all')"
|
|
599
600
|
/>
|
|
600
601
|
</div>
|
|
601
602
|
|
|
@@ -634,7 +635,7 @@ const {
|
|
|
634
635
|
size="md"
|
|
635
636
|
:partial="!isSelectedAllRows"
|
|
636
637
|
v-bind="headerCheckboxAttrs"
|
|
637
|
-
:data-test="
|
|
638
|
+
:data-test="getDataTest('select-all')"
|
|
638
639
|
/>
|
|
639
640
|
|
|
640
641
|
<div
|
|
@@ -725,7 +726,7 @@ const {
|
|
|
725
726
|
:attrs="tableRowAttrs as unknown as UTableRowAttrs"
|
|
726
727
|
:nested-level="0"
|
|
727
728
|
:empty-cell-label="emptyCellLabel"
|
|
728
|
-
:data-test="
|
|
729
|
+
:data-test="getDataTest('row')"
|
|
729
730
|
@click="onClickRow"
|
|
730
731
|
@dblclick="onDoubleClickRow"
|
|
731
732
|
@click-cell="onClickCell"
|
|
@@ -788,7 +789,7 @@ const {
|
|
|
788
789
|
size="md"
|
|
789
790
|
:description="currentLocale.noData"
|
|
790
791
|
v-bind="bodyEmptyStateAttrs"
|
|
791
|
-
:data-test="
|
|
792
|
+
:data-test="getDataTest('empty')"
|
|
792
793
|
/>
|
|
793
794
|
</slot>
|
|
794
795
|
</td>
|
|
@@ -7,10 +7,13 @@ import { PX_IN_REM } from "../constants.js";
|
|
|
7
7
|
import { mapRowColumns } from "./utilTable.ts";
|
|
8
8
|
|
|
9
9
|
import { useMutationObserver } from "../composables/useMutationObserver.ts";
|
|
10
|
+
import useUI from "../composables/useUI.ts";
|
|
10
11
|
|
|
11
12
|
import UIcon from "../ui.image-icon/UIcon.vue";
|
|
12
13
|
import UCheckbox from "../ui.form-checkbox/UCheckbox.vue";
|
|
13
14
|
|
|
15
|
+
import defaultConfig from "./config.ts";
|
|
16
|
+
|
|
14
17
|
import type {
|
|
15
18
|
Cell,
|
|
16
19
|
CellObject,
|
|
@@ -18,6 +21,7 @@ import type {
|
|
|
18
21
|
RowScopedExpandProps,
|
|
19
22
|
RowScopedProps,
|
|
20
23
|
UTableRowProps,
|
|
24
|
+
Config,
|
|
21
25
|
} from "./types.ts";
|
|
22
26
|
|
|
23
27
|
const NESTED_ROW_SHIFT_REM = 1;
|
|
@@ -244,6 +248,8 @@ function getRowAttrs(rowId: string | number) {
|
|
|
244
248
|
function onToggleExpand(row: Row, expanded?: boolean) {
|
|
245
249
|
emit("toggleExpand", row, expanded || isExpanded(row));
|
|
246
250
|
}
|
|
251
|
+
|
|
252
|
+
const { getDataTest } = useUI<Config>(defaultConfig);
|
|
247
253
|
</script>
|
|
248
254
|
|
|
249
255
|
<template>
|
|
@@ -265,7 +271,7 @@ function onToggleExpand(row: Row, expanded?: boolean) {
|
|
|
265
271
|
:value="row.id"
|
|
266
272
|
v-bind="attrs.bodyCheckboxAttrs.value"
|
|
267
273
|
:data-id="row.id"
|
|
268
|
-
:data-test="
|
|
274
|
+
:data-test="getDataTest('body-checkbox')"
|
|
269
275
|
/>
|
|
270
276
|
</td>
|
|
271
277
|
|
|
@@ -311,7 +317,7 @@ function onToggleExpand(row: Row, expanded?: boolean) {
|
|
|
311
317
|
:class="
|
|
312
318
|
cx([attrs.bodyCellContentAttrs.value.class, getCellContentClasses(row, String(key))])
|
|
313
319
|
"
|
|
314
|
-
:data-test="`${
|
|
320
|
+
:data-test="getDataTest(`${key}-cell`)"
|
|
315
321
|
>
|
|
316
322
|
{{ formatCellValue(value) }}
|
|
317
323
|
</div>
|
|
@@ -326,7 +332,7 @@ function onToggleExpand(row: Row, expanded?: boolean) {
|
|
|
326
332
|
:class="
|
|
327
333
|
cx([attrs.bodyCellContentAttrs.value.class, getCellContentClasses(row, String(key))])
|
|
328
334
|
"
|
|
329
|
-
:data-test="`${
|
|
335
|
+
:data-test="getDataTest(`${key}-cell`)"
|
|
330
336
|
>
|
|
331
337
|
{{ formatCellValue(value) }}
|
|
332
338
|
</div>
|
|
@@ -358,7 +364,7 @@ function onToggleExpand(row: Row, expanded?: boolean) {
|
|
|
358
364
|
:attrs="attrs"
|
|
359
365
|
:columns="columns"
|
|
360
366
|
:row="row.row as Row"
|
|
361
|
-
:data-test="
|
|
367
|
+
:data-test="getDataTest()"
|
|
362
368
|
:nested-level="nestedLevel + 1"
|
|
363
369
|
:config="config"
|
|
364
370
|
:selectable="selectable"
|
|
@@ -394,7 +400,7 @@ function onToggleExpand(row: Row, expanded?: boolean) {
|
|
|
394
400
|
:attrs="attrs"
|
|
395
401
|
:columns="columns"
|
|
396
402
|
:row="nestedRow"
|
|
397
|
-
:data-test="
|
|
403
|
+
:data-test="getDataTest()"
|
|
398
404
|
:nested-level="nestedLevel + 1"
|
|
399
405
|
:config="config"
|
|
400
406
|
:selectable="selectable"
|
|
@@ -66,8 +66,14 @@ const mutatedProps = computed(() => ({
|
|
|
66
66
|
opened: isShownOptions.value,
|
|
67
67
|
}));
|
|
68
68
|
|
|
69
|
-
const {
|
|
70
|
-
|
|
69
|
+
const {
|
|
70
|
+
getDataTest,
|
|
71
|
+
config,
|
|
72
|
+
wrapperAttrs,
|
|
73
|
+
dropdownBadgeAttrs,
|
|
74
|
+
dropdownListAttrs,
|
|
75
|
+
dropdownIconAttrs,
|
|
76
|
+
} = useUI<Config>(defaultConfig, mutatedProps);
|
|
71
77
|
</script>
|
|
72
78
|
|
|
73
79
|
<template>
|
|
@@ -81,7 +87,7 @@ const { config, wrapperAttrs, dropdownBadgeAttrs, dropdownListAttrs, dropdownIco
|
|
|
81
87
|
:round="round"
|
|
82
88
|
v-bind="dropdownBadgeAttrs"
|
|
83
89
|
tabindex="0"
|
|
84
|
-
:data-test="
|
|
90
|
+
:data-test="getDataTest()"
|
|
85
91
|
@click="onClickBadge"
|
|
86
92
|
@keydown.enter="onClickBadge"
|
|
87
93
|
@keydown.space.prevent="onClickBadge"
|
|
@@ -114,7 +120,7 @@ const { config, wrapperAttrs, dropdownBadgeAttrs, dropdownListAttrs, dropdownIco
|
|
|
114
120
|
color="inherit"
|
|
115
121
|
:name="config.defaults.dropdownIcon"
|
|
116
122
|
v-bind="dropdownIconAttrs"
|
|
117
|
-
:data-test="
|
|
123
|
+
:data-test="getDataTest('dropdown')"
|
|
118
124
|
/>
|
|
119
125
|
</slot>
|
|
120
126
|
</template>
|
|
@@ -128,7 +134,7 @@ const { config, wrapperAttrs, dropdownBadgeAttrs, dropdownListAttrs, dropdownIco
|
|
|
128
134
|
:options="options"
|
|
129
135
|
:label-key="labelKey"
|
|
130
136
|
v-bind="dropdownListAttrs"
|
|
131
|
-
:data-test="
|
|
137
|
+
:data-test="getDataTest('list')"
|
|
132
138
|
@click-option="onClickOption"
|
|
133
139
|
/>
|
|
134
140
|
</div>
|
|
@@ -68,8 +68,14 @@ const mutatedProps = computed(() => ({
|
|
|
68
68
|
opened: isShownOptions.value,
|
|
69
69
|
}));
|
|
70
70
|
|
|
71
|
-
const {
|
|
72
|
-
|
|
71
|
+
const {
|
|
72
|
+
getDataTest,
|
|
73
|
+
config,
|
|
74
|
+
dropdownButtonAttrs,
|
|
75
|
+
dropdownListAttrs,
|
|
76
|
+
dropdownIconAttrs,
|
|
77
|
+
wrapperAttrs,
|
|
78
|
+
} = useUI<Config>(defaultConfig, mutatedProps);
|
|
73
79
|
</script>
|
|
74
80
|
|
|
75
81
|
<template>
|
|
@@ -85,7 +91,7 @@ const { config, dropdownButtonAttrs, dropdownListAttrs, dropdownIconAttrs, wrapp
|
|
|
85
91
|
:disabled="disabled"
|
|
86
92
|
:filled="filled || isShownOptions"
|
|
87
93
|
v-bind="dropdownButtonAttrs"
|
|
88
|
-
:data-test="
|
|
94
|
+
:data-test="getDataTest()"
|
|
89
95
|
@click="onClickButton"
|
|
90
96
|
>
|
|
91
97
|
<template #left>
|
|
@@ -116,7 +122,7 @@ const { config, dropdownButtonAttrs, dropdownListAttrs, dropdownIconAttrs, wrapp
|
|
|
116
122
|
color="inherit"
|
|
117
123
|
:name="config.defaults.dropdownIcon"
|
|
118
124
|
v-bind="dropdownIconAttrs"
|
|
119
|
-
:data-test="
|
|
125
|
+
:data-test="getDataTest('dropdown')"
|
|
120
126
|
/>
|
|
121
127
|
</slot>
|
|
122
128
|
</template>
|
|
@@ -129,7 +135,7 @@ const { config, dropdownButtonAttrs, dropdownListAttrs, dropdownIconAttrs, wrapp
|
|
|
129
135
|
:options="options"
|
|
130
136
|
:label-key="labelKey"
|
|
131
137
|
v-bind="dropdownListAttrs"
|
|
132
|
-
:data-test="
|
|
138
|
+
:data-test="getDataTest('list')"
|
|
133
139
|
@click-option="onClickOption"
|
|
134
140
|
/>
|
|
135
141
|
</div>
|
|
@@ -248,6 +248,7 @@ defineExpose({
|
|
|
248
248
|
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
249
249
|
*/
|
|
250
250
|
const {
|
|
251
|
+
getDataTest,
|
|
251
252
|
config,
|
|
252
253
|
wrapperAttrs,
|
|
253
254
|
listAttrs,
|
|
@@ -272,7 +273,7 @@ const {
|
|
|
272
273
|
tabindex="1"
|
|
273
274
|
:style="{ maxHeight: wrapperMaxHeight }"
|
|
274
275
|
v-bind="wrapperAttrs"
|
|
275
|
-
:data-test="
|
|
276
|
+
:data-test="getDataTest('list')"
|
|
276
277
|
@keydown.self.down.prevent="pointerForward"
|
|
277
278
|
@keydown.self.up.prevent="pointerBackward"
|
|
278
279
|
@keydown.enter.stop.self="addPointerElement('Enter')"
|
|
@@ -296,7 +297,7 @@ const {
|
|
|
296
297
|
!option.divider
|
|
297
298
|
"
|
|
298
299
|
v-bind="isSelectedOption(option) ? optionActiveAttrs : optionAttrs"
|
|
299
|
-
:data-test="
|
|
300
|
+
:data-test="getDataTest('option')"
|
|
300
301
|
:class="optionHighlight(index, option)"
|
|
301
302
|
@click="select(option), onClickOption(option)"
|
|
302
303
|
@mouseenter.self="pointerSet(index)"
|
|
@@ -362,7 +363,7 @@ const {
|
|
|
362
363
|
ref="add-option"
|
|
363
364
|
role="option"
|
|
364
365
|
v-bind="addOptionLabelWrapperAttrs"
|
|
365
|
-
:data-test="
|
|
366
|
+
:data-test="getDataTest('add')"
|
|
366
367
|
@click="onClickAddOption"
|
|
367
368
|
@mouseenter.self="pointerSet(options.length + 1)"
|
|
368
369
|
>
|
|
@@ -376,7 +377,7 @@ const {
|
|
|
376
377
|
round
|
|
377
378
|
square
|
|
378
379
|
v-bind="addOptionButtonAttrs"
|
|
379
|
-
:data-test="
|
|
380
|
+
:data-test="getDataTest('add-button')"
|
|
380
381
|
@click="onClickAddOption"
|
|
381
382
|
>
|
|
382
383
|
<UIcon
|
|
@@ -75,9 +75,9 @@ export default /*tw*/ {
|
|
|
75
75
|
timepickerInputSeconds: "{>timepickerInput} rounded-r-dynamic",
|
|
76
76
|
timepickerSubmitButton: "{UButton} py-2 border-0",
|
|
77
77
|
i18n: {
|
|
78
|
-
today: "Today
|
|
79
|
-
yesterday: "Yesterday
|
|
80
|
-
tomorrow: "Tomorrow
|
|
78
|
+
today: "Today",
|
|
79
|
+
yesterday: "Yesterday",
|
|
80
|
+
tomorrow: "Tomorrow",
|
|
81
81
|
weekdays: {
|
|
82
82
|
shorthand: {
|
|
83
83
|
sunday: "Sun",
|
|
@@ -119,8 +119,14 @@ const mutatedProps = computed(() => ({
|
|
|
119
119
|
error: Boolean(props.error),
|
|
120
120
|
}));
|
|
121
121
|
|
|
122
|
-
const {
|
|
123
|
-
|
|
122
|
+
const {
|
|
123
|
+
getDataTest,
|
|
124
|
+
config,
|
|
125
|
+
checkboxAttrs,
|
|
126
|
+
iconWrapperAttrs,
|
|
127
|
+
checkboxLabelAttrs,
|
|
128
|
+
checkedIconAttrs,
|
|
129
|
+
} = useUI<Config>(defaultConfig, mutatedProps);
|
|
124
130
|
</script>
|
|
125
131
|
|
|
126
132
|
<template>
|
|
@@ -134,7 +140,7 @@ const { config, checkboxAttrs, iconWrapperAttrs, checkboxLabelAttrs, checkedIcon
|
|
|
134
140
|
:description="description"
|
|
135
141
|
interactive
|
|
136
142
|
v-bind="checkboxLabelAttrs"
|
|
137
|
-
:data-test="
|
|
143
|
+
:data-test="getDataTest('label')"
|
|
138
144
|
>
|
|
139
145
|
<template #label>
|
|
140
146
|
<!--
|
|
@@ -154,7 +160,7 @@ const { config, checkboxAttrs, iconWrapperAttrs, checkboxLabelAttrs, checkedIcon
|
|
|
154
160
|
:checked="isChecked"
|
|
155
161
|
:disabled="disabled"
|
|
156
162
|
v-bind="checkboxAttrs"
|
|
157
|
-
:data-test="
|
|
163
|
+
:data-test="getDataTest()"
|
|
158
164
|
@change="onChange"
|
|
159
165
|
/>
|
|
160
166
|
|