edvoyui-component-library-test-flight 0.0.110 → 0.0.112
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/EUISelectSearch.vue.d.ts +4 -0
- package/dist/EUISelectSearch.vue.d.ts.map +1 -0
- package/dist/accordion/EUIAccordion.vue.d.ts +2 -2
- package/dist/accordion/EUIAccordion.vue.d.ts.map +1 -1
- package/dist/alerts/EUIAlerts.vue.d.ts +2 -2
- package/dist/alerts/EUIAlerts.vue.d.ts.map +1 -1
- package/dist/avatar/EUIAvatar.vue.d.ts +2 -2
- package/dist/avatar/EUIAvatar.vue.d.ts.map +1 -1
- package/dist/breadcrumb/EUIBreadcrumb.vue.d.ts +2 -2
- package/dist/breadcrumb/EUIBreadcrumb.vue.d.ts.map +1 -1
- package/dist/button/EUIButton.vue.d.ts +5 -0
- package/dist/button/EUIButton.vue.d.ts.map +1 -0
- package/dist/checkbox/EUICheckbox.vue.d.ts +3 -3
- package/dist/checkbox/EUICheckbox.vue.d.ts.map +1 -1
- package/dist/datepicker/EUIDatepicker.vue.d.ts +3 -3
- package/dist/datepicker/EUIDatepicker.vue.d.ts.map +1 -1
- package/dist/dropdown/EUIMultiDropdown.vue.d.ts +2 -2
- package/dist/dropdown/EUIMultiDropdown.vue.d.ts.map +1 -1
- package/dist/errorMessage/EUIErrorMessage.vue.d.ts +2 -2
- package/dist/errorMessage/EUIErrorMessage.vue.d.ts.map +1 -1
- package/dist/input/EUIInput.vue.d.ts +2 -2
- package/dist/input/EUIInput.vue.d.ts.map +1 -1
- package/dist/library-vue-ts.cjs.js +1 -1
- package/dist/library-vue-ts.es.js +38 -17
- package/dist/library-vue-ts.umd.js +1 -1
- package/dist/loader/EUICircleLoader.vue.d.ts +1 -1
- package/dist/loader/EUICircleLoader.vue.d.ts.map +1 -1
- package/dist/loader/EUICubeLoader.vue.d.ts +1 -1
- package/dist/loader/EUICubeLoader.vue.d.ts.map +1 -1
- package/dist/loader/EUILoader.vue.d.ts +2 -2
- package/dist/loader/EUILoader.vue.d.ts.map +1 -1
- package/dist/loader/EUISquareLoader.vue.d.ts +1 -1
- package/dist/loader/EUISquareLoader.vue.d.ts.map +1 -1
- package/dist/modal/EUIModal.vue.d.ts +2 -2
- package/dist/modal/EUIModal.vue.d.ts.map +1 -1
- package/dist/pillSelect/EUIPillSelect.vue.d.ts +2 -2
- package/dist/pillSelect/EUIPillSelect.vue.d.ts.map +1 -1
- package/dist/popover/EUIPopover.vue.d.ts +2 -2
- package/dist/popover/EUIPopover.vue.d.ts.map +1 -1
- package/dist/radio/EUIRadio.vue.d.ts +2 -2
- package/dist/radio/EUIRadio.vue.d.ts.map +1 -1
- package/dist/searchInput/EUISearch.vue.d.ts +2 -2
- package/dist/searchInput/EUISearch.vue.d.ts.map +1 -1
- package/dist/searchexpand/EUISearchExpand.vue.d.ts +2 -2
- package/dist/searchexpand/EUISearchExpand.vue.d.ts.map +1 -1
- package/dist/searchexpand/EUISearchToggle.vue.d.ts +2 -2
- package/dist/searchexpand/EUISearchToggle.vue.d.ts.map +1 -1
- package/dist/select/EUISelect.vue.d.ts +3 -3
- package/dist/select/EUISelect.vue.d.ts.map +1 -1
- package/dist/slideover/EUISlideover.vue.d.ts +2 -2
- package/dist/slideover/EUISlideover.vue.d.ts.map +1 -1
- package/dist/stepperTimeline/EUIStepperHorizontal.vue.d.ts +2 -2
- package/dist/stepperTimeline/EUIStepperHorizontal.vue.d.ts.map +1 -1
- package/dist/stepperTimeline/EUIStepperTimeline.vue.d.ts +2 -2
- package/dist/stepperTimeline/EUIStepperTimeline.vue.d.ts.map +1 -1
- package/dist/stepperTimeline/EUIStepperVertical.vue.d.ts +2 -2
- package/dist/stepperTimeline/EUIStepperVertical.vue.d.ts.map +1 -1
- package/dist/table/EUIDashboardTable.vue.d.ts +2 -2
- package/dist/table/EUIDashboardTable.vue.d.ts.map +1 -1
- package/dist/table/EUIPageLimit.vue.d.ts +2 -2
- package/dist/table/EUIPageLimit.vue.d.ts.map +1 -1
- package/dist/table/EUIPagination.vue.d.ts +2 -2
- package/dist/table/EUIPagination.vue.d.ts.map +1 -1
- package/dist/table/EUIStudentPagination.vue.d.ts +2 -2
- package/dist/table/EUIStudentPagination.vue.d.ts.map +1 -1
- package/dist/table/EUITable.vue.d.ts +2 -2
- package/dist/table/EUITable.vue.d.ts.map +1 -1
- package/dist/table/EUITableCheckbox.vue.d.ts +3 -3
- package/dist/table/EUITableCheckbox.vue.d.ts.map +1 -1
- package/dist/table/GrowthTable.vue.d.ts +2 -2
- package/dist/table/GrowthTable.vue.d.ts.map +1 -1
- package/dist/table/UCheckbox.vue.d.ts +2 -2
- package/dist/table/UCheckbox.vue.d.ts.map +1 -1
- package/dist/table/UTable.vue.d.ts +2 -2
- package/dist/table/UTable.vue.d.ts.map +1 -1
- package/dist/tabs/EUITabs.vue.d.ts +2 -2
- package/dist/tabs/EUITabs.vue.d.ts.map +1 -1
- package/dist/tag/EUITag.vue.d.ts +2 -2
- package/dist/tag/EUITag.vue.d.ts.map +1 -1
- package/dist/telephone/EUITelephone.vue.d.ts +3 -3
- package/dist/telephone/EUITelephone.vue.d.ts.map +1 -1
- package/dist/textArea/EUITextArea.vue.d.ts +2 -2
- package/dist/textArea/EUITextArea.vue.d.ts.map +1 -1
- package/dist/timeLine/EUITimeLine.vue.d.ts +2 -2
- package/dist/timeLine/EUITimeLine.vue.d.ts.map +1 -1
- package/dist/timeLine/EUITimeLineItem.vue.d.ts +2 -2
- package/dist/timeLine/EUITimeLineItem.vue.d.ts.map +1 -1
- package/dist/toggle/EUIToggle.vue.d.ts +2 -2
- package/dist/toggle/EUIToggle.vue.d.ts.map +1 -1
- package/dist/tooltip/EUITooltip.vue.d.ts +2 -2
- package/dist/tooltip/EUITooltip.vue.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/table/UTable.vue +86 -58
- package/src/components/tabs/EUITabs.vue +125 -96
- package/dist/EUIButton.vue.d.ts +0 -5
- package/dist/EUIButton.vue.d.ts.map +0 -1
- package/dist/selectSearch/EUISelectSearch.vue.d.ts +0 -4
- package/dist/selectSearch/EUISelectSearch.vue.d.ts.map +0 -1
- /package/src/components/checkbox/{EUIcheckbox.stories.ts → EUICheckbox.stories.ts} +0 -0
- /package/src/components/modal/{EUImodal.stories.ts → EUIModal.stories.ts} +0 -0
|
@@ -56,61 +56,72 @@
|
|
|
56
56
|
scope="col"
|
|
57
57
|
:class="[
|
|
58
58
|
'snap-start snap-always py-2',
|
|
59
|
-
header?.sortable
|
|
59
|
+
header?.sortable
|
|
60
|
+
? 'cursor-pointer hover:!text-gray-900 pr-8 pl-3'
|
|
61
|
+
: 'px-3',
|
|
60
62
|
isScrolled && headerIndex === 0 ? stickyClass.head : null,
|
|
61
63
|
{ '!bg-gray-200': currentSort === header.value },
|
|
62
|
-
|
|
63
64
|
]"
|
|
64
|
-
:style="
|
|
65
|
+
:style="
|
|
66
|
+
headers.length > 6
|
|
67
|
+
? headerStyle(header)
|
|
68
|
+
: 'width: 100%;min-width: 250px;background-color: rgb(243 244 246);'
|
|
69
|
+
"
|
|
65
70
|
@click="sortBy(header, $event)"
|
|
66
71
|
>
|
|
67
72
|
<div class="relative z-0 w-full">
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
>
|
|
71
|
-
<slot name="header" :header="header">
|
|
72
|
-
{{ capitalizeText(header?.text ?? header?.name ?? "") }}
|
|
73
|
-
</slot>
|
|
74
|
-
<slot v-if="headerOptional" name="headerOptionalItem" ></slot>
|
|
75
|
-
</div>
|
|
76
|
-
<div v-if="header?.sortable" class="absolute -top-0.5 -right-6 size-6 z-10">
|
|
77
|
-
<svg
|
|
78
|
-
width="24"
|
|
79
|
-
height="24"
|
|
80
|
-
viewBox="0 0 24 24"
|
|
81
|
-
fill="none"
|
|
82
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
83
|
-
class="size-6"
|
|
73
|
+
<div
|
|
74
|
+
class="w-full text-sm font-medium text-current truncate font-inter"
|
|
84
75
|
>
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
76
|
+
<slot name="header" :header="header">
|
|
77
|
+
{{ capitalizeText(header?.text ?? header?.name ?? "") }}
|
|
78
|
+
</slot>
|
|
79
|
+
<slot
|
|
80
|
+
v-if="headerOptional"
|
|
81
|
+
name="headerOptionalItem"
|
|
82
|
+
></slot>
|
|
83
|
+
</div>
|
|
84
|
+
<div
|
|
85
|
+
v-if="header?.sortable"
|
|
86
|
+
class="absolute -top-0.5 -right-6 size-6 z-10"
|
|
87
|
+
>
|
|
88
|
+
<svg
|
|
89
|
+
width="24"
|
|
90
|
+
height="24"
|
|
91
|
+
viewBox="0 0 24 24"
|
|
92
|
+
fill="none"
|
|
93
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
94
|
+
class="size-6"
|
|
95
|
+
>
|
|
96
|
+
<rect width="24" height="24" fill="none" />
|
|
97
|
+
<path
|
|
98
|
+
d="M8 10C9.06206 8.5381 10.3071 7.2287 11.7021 6.1058C11.8774 5.9647 12.1226 5.9647 12.2979 6.1058C13.6929 7.2287 14.9379 8.5381 16 10"
|
|
99
|
+
:stroke="
|
|
100
|
+
currentSortDir === 'asc' &&
|
|
101
|
+
currentSort === header?.value
|
|
102
|
+
? '#111827'
|
|
103
|
+
: '#9ca3af'
|
|
104
|
+
"
|
|
105
|
+
stroke-opacity="0.8"
|
|
106
|
+
stroke-width="2"
|
|
107
|
+
stroke-linecap="round"
|
|
108
|
+
stroke-linejoin="round"
|
|
109
|
+
/>
|
|
110
|
+
<path
|
|
111
|
+
d="M8 14C9.06206 15.4619 10.3071 16.7713 11.7021 17.8942C11.8774 18.0353 12.1226 18.0353 12.2979 17.8942C13.6929 16.7713 14.9379 15.4619 16 14"
|
|
112
|
+
:stroke="
|
|
113
|
+
currentSortDir === 'desc' &&
|
|
114
|
+
currentSort === header?.value
|
|
115
|
+
? '#111827'
|
|
116
|
+
: '#9ca3af'
|
|
117
|
+
"
|
|
118
|
+
stroke-opacity="0.8"
|
|
119
|
+
stroke-width="2"
|
|
120
|
+
stroke-linecap="round"
|
|
121
|
+
stroke-linejoin="round"
|
|
122
|
+
/>
|
|
123
|
+
</svg>
|
|
124
|
+
</div>
|
|
114
125
|
</div>
|
|
115
126
|
</th>
|
|
116
127
|
</tr>
|
|
@@ -122,7 +133,7 @@
|
|
|
122
133
|
:key="`table-row-${rowIndex}`"
|
|
123
134
|
>
|
|
124
135
|
<tr
|
|
125
|
-
|
|
136
|
+
:id="`row-${rowIndex}`"
|
|
126
137
|
@mouseenter="
|
|
127
138
|
$attrs.mouseenter
|
|
128
139
|
? $emit('mouseenter', row, rowIndex)
|
|
@@ -134,7 +145,7 @@
|
|
|
134
145
|
: null
|
|
135
146
|
"
|
|
136
147
|
class="group"
|
|
137
|
-
:class="{'bg-purple-100': activeRowIndex==rowIndex}"
|
|
148
|
+
:class="{ 'bg-purple-100': activeRowIndex == rowIndex }"
|
|
138
149
|
>
|
|
139
150
|
<td
|
|
140
151
|
v-if="checkable"
|
|
@@ -150,10 +161,13 @@
|
|
|
150
161
|
/>
|
|
151
162
|
</td>
|
|
152
163
|
<td
|
|
153
|
-
|
|
164
|
+
v-for="(header, headerIndex) in headers"
|
|
154
165
|
:key="headerIndex"
|
|
155
166
|
:style="bodyStyle(header)"
|
|
156
|
-
:class="[
|
|
167
|
+
:class="[
|
|
168
|
+
isScrolled && headerIndex === 0 ? stickyClass.body : null,
|
|
169
|
+
{ '!bg-purple-100': activeRowIndex == rowIndex },
|
|
170
|
+
]"
|
|
157
171
|
>
|
|
158
172
|
<slot
|
|
159
173
|
:name="`item.${header?.value}`"
|
|
@@ -161,7 +175,9 @@
|
|
|
161
175
|
:rowIndex="rowIndex"
|
|
162
176
|
:headerIndex="headerIndex"
|
|
163
177
|
>
|
|
164
|
-
<span class="block truncate">{{
|
|
178
|
+
<span class="block truncate">{{
|
|
179
|
+
getValueByPath(row, header?.value)
|
|
180
|
+
}}</span>
|
|
165
181
|
</slot>
|
|
166
182
|
</td>
|
|
167
183
|
</tr>
|
|
@@ -178,13 +194,23 @@
|
|
|
178
194
|
>
|
|
179
195
|
<div
|
|
180
196
|
class="flex items-center justify-center w-[calc(100vw-14rem)]"
|
|
181
|
-
:class="[
|
|
197
|
+
:class="[
|
|
198
|
+
tableHeight
|
|
199
|
+
? tableHeight
|
|
200
|
+
: 'h-[calc(100svh-12rem)] max-h-[calc(100svh-12rem)]',
|
|
201
|
+
]"
|
|
182
202
|
>
|
|
183
203
|
<div class="text-center">
|
|
184
204
|
<div class="mx-auto overflow-hidden rounded-md size-56">
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
205
|
+
<img
|
|
206
|
+
src="@/assets/images/search-nodata.png"
|
|
207
|
+
alt=""
|
|
208
|
+
class="block object-contain object-center h-auto max-w-full opacity-90"
|
|
209
|
+
/>
|
|
210
|
+
</div>
|
|
211
|
+
<div class="my-2 text-xl font-medium text-gray-500">
|
|
212
|
+
No matching records found
|
|
213
|
+
</div>
|
|
188
214
|
</div>
|
|
189
215
|
</div>
|
|
190
216
|
</td>
|
|
@@ -194,6 +220,7 @@
|
|
|
194
220
|
</table>
|
|
195
221
|
</div>
|
|
196
222
|
<div
|
|
223
|
+
v-if="stickyFooter"
|
|
197
224
|
class="sticky bottom-0 left-0 z-50 flex items-center justify-between px-2 py-1 bg-white border-t border-gray-300"
|
|
198
225
|
>
|
|
199
226
|
<slot name="tableCount">
|
|
@@ -267,6 +294,7 @@ const props = defineProps({
|
|
|
267
294
|
default: () => [],
|
|
268
295
|
required: true,
|
|
269
296
|
},
|
|
297
|
+
stickyFooter: { type: Boolean, default: true },
|
|
270
298
|
paginated: { type: Boolean, default: false },
|
|
271
299
|
tableExpanded: { type: Boolean, default: false },
|
|
272
300
|
search: { type: String, default: "" },
|
|
@@ -305,7 +333,7 @@ const {
|
|
|
305
333
|
headers,
|
|
306
334
|
paginated,
|
|
307
335
|
isRowCheckable,
|
|
308
|
-
activeRowIndex
|
|
336
|
+
activeRowIndex,
|
|
309
337
|
} = toRefs(props);
|
|
310
338
|
|
|
311
339
|
// Emits used
|
|
@@ -1,87 +1,98 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
<div
|
|
4
|
+
v-if="tabStyle === 'design'"
|
|
5
|
+
class="flex flex-row items-center justify-between w-full p-2 bg-gray-100 rounded-xl"
|
|
6
|
+
>
|
|
7
|
+
<button
|
|
8
|
+
v-for="(tab, tabindex) in tabs"
|
|
9
|
+
:disabled="tab?.disabled"
|
|
10
|
+
:key="tabindex"
|
|
11
|
+
:id="`id-${tab.name}`"
|
|
12
|
+
type="button"
|
|
13
|
+
class="[&:not(:focus-visible)]:focus:outline-none relative w-full inline-flex items-center transition-colors duration-100"
|
|
14
|
+
:class="tab?.disabled ? ' cursor-not-allowed ' : ''"
|
|
15
|
+
role="tab"
|
|
16
|
+
tabindex="-1"
|
|
17
|
+
@click="selectTab(tabindex)"
|
|
18
|
+
:title="tab?.toolTipText"
|
|
6
19
|
>
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
<div
|
|
21
|
+
class="pointer-events-none absolute inset-0 transition-transform duration-200 transform z-[1] ease-in-out"
|
|
22
|
+
:class="{
|
|
23
|
+
'translate-x-full': tabindex < activeTabIndex,
|
|
24
|
+
'-translate-x-full': tabindex > activeTabIndex,
|
|
25
|
+
'translate-x-0 rounded-lg bg-gray-600': activeTabIndex === tabindex,
|
|
26
|
+
}"
|
|
27
|
+
/>
|
|
28
|
+
<span
|
|
29
|
+
:class="[
|
|
30
|
+
'w-full px-4 py-2 text-sm tracking-wide font-medium capitalize z-10',
|
|
31
|
+
activeTabIndex == tabindex
|
|
32
|
+
? ' text-white'
|
|
33
|
+
: ' text-gray-500 hover:text-gray-600 rounded-lg bg-transparent z-0 transition-colors duration-300 ease-in origin-center',
|
|
34
|
+
]"
|
|
18
35
|
>
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'translate-x-0 rounded-lg bg-gray-600':
|
|
25
|
-
activeTabIndex === tabindex,
|
|
26
|
-
}"
|
|
27
|
-
/>
|
|
28
|
-
<span
|
|
29
|
-
:class="[
|
|
30
|
-
'w-full px-4 py-2 text-sm tracking-wide font-medium capitalize z-10',
|
|
31
|
-
activeTabIndex == tabindex
|
|
32
|
-
? ' text-white'
|
|
33
|
-
: ' text-gray-500 hover:text-gray-600 rounded-lg bg-transparent z-0 transition-colors duration-300 ease-in origin-center',
|
|
34
|
-
]"
|
|
36
|
+
<slot
|
|
37
|
+
name="title"
|
|
38
|
+
:tab="tab"
|
|
39
|
+
:tabIndex="tabindex"
|
|
40
|
+
:activeTab="activeTabIndex"
|
|
35
41
|
>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
{{ tab?.name }}
|
|
43
|
+
</slot>
|
|
44
|
+
</span>
|
|
45
|
+
</button>
|
|
46
|
+
</div>
|
|
47
|
+
<div
|
|
48
|
+
v-else-if="tabStyle === 'border'"
|
|
49
|
+
class="flex items-center gap-1 before:bottom-0 before:left-0 before:absolute before:content-[''] before:h-px before:w-full before:bg-gray-200 relative before:-z-[1] z-0 bg-white"
|
|
50
|
+
:class="[
|
|
51
|
+
tabAlign === 'justify'
|
|
52
|
+
? 'justify-between'
|
|
53
|
+
: tabAlign === 'end'
|
|
54
|
+
? 'justify-end'
|
|
55
|
+
: 'justify-start',
|
|
56
|
+
]"
|
|
57
|
+
>
|
|
58
|
+
<button
|
|
59
|
+
v-for="(tab, tabindex) in tabs"
|
|
60
|
+
:disabled="tab?.disabled"
|
|
61
|
+
:title="tab?.toolTipText"
|
|
62
|
+
:key="tabindex"
|
|
63
|
+
type="button"
|
|
64
|
+
role="tab"
|
|
65
|
+
:id="`id-${tab.name}`"
|
|
45
66
|
:class="[
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
67
|
+
'px-3 py-1 leading-5 transition-all duration-150 ease-in-out hover:text-gray-800',
|
|
68
|
+
tabSize === 'sm'
|
|
69
|
+
? 'text-sm font-semibold border-b-2'
|
|
70
|
+
: 'text-base font-bold border-b-[3px]',
|
|
71
|
+
activeTabIndex === tabindex
|
|
72
|
+
? 'border-gray-900 text-gray-900'
|
|
73
|
+
: 'border-transparent text-gray-500',
|
|
74
|
+
tab?.disabled ? ' cursor-not-allowed ' : '',
|
|
51
75
|
]"
|
|
76
|
+
@click="selectTab(tabindex)"
|
|
52
77
|
>
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
:
|
|
56
|
-
|
|
57
|
-
:
|
|
58
|
-
type="button"
|
|
59
|
-
role="tab"
|
|
60
|
-
:id="`id-${tab.name}`"
|
|
61
|
-
:class="[
|
|
62
|
-
'px-3 py-1 leading-5 transition-all duration-150 ease-in-out hover:text-gray-800',
|
|
63
|
-
tabSize === 'sm'
|
|
64
|
-
? 'text-sm font-semibold border-b-2'
|
|
65
|
-
: 'text-base font-bold border-b-[3px]',
|
|
66
|
-
activeTabIndex === tabindex
|
|
67
|
-
? 'border-gray-900 text-gray-900'
|
|
68
|
-
: 'border-transparent text-gray-500',
|
|
69
|
-
tab?.disabled?' cursor-not-allowed ':''
|
|
70
|
-
]"
|
|
71
|
-
@click="selectTab(tabindex)"
|
|
78
|
+
<slot
|
|
79
|
+
name="title"
|
|
80
|
+
:tab="tab"
|
|
81
|
+
:tabIndex="tabindex"
|
|
82
|
+
:activeTab="activeTabIndex"
|
|
72
83
|
>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<div
|
|
84
|
+
{{ tab?.name }}
|
|
85
|
+
</slot>
|
|
86
|
+
</button>
|
|
87
|
+
</div>
|
|
88
|
+
<div
|
|
79
89
|
v-else-if="tabStyle === 'shadow'"
|
|
80
90
|
class="justify-start relative z-0 inline-flex items-center gap-0 bg-white/50 rounded-t-lg shadow-[0px_1px_2px_0px_rgba(55,65,81,0.10)]"
|
|
81
91
|
>
|
|
82
92
|
<button
|
|
83
93
|
v-for="(tab, tabindex) in tabs"
|
|
84
94
|
:disabled="tab?.disabled"
|
|
95
|
+
:title="tab?.toolTipText"
|
|
85
96
|
:key="tabindex"
|
|
86
97
|
type="button"
|
|
87
98
|
role="tab"
|
|
@@ -94,41 +105,59 @@
|
|
|
94
105
|
activeTabIndex === tabindex
|
|
95
106
|
? 'border-purple-800 text-purple-800 bg-white z-10 rounded-t-lg shadow-[0px_2px_4px_0px_rgba(55,65,81,0.1)]'
|
|
96
107
|
: 'border-transparent text-gray-500 z-0',
|
|
97
|
-
|
|
108
|
+
tab?.disabled ? ' cursor-not-allowed ' : '',
|
|
98
109
|
]"
|
|
99
110
|
@click="selectTab(tabindex)"
|
|
100
111
|
>
|
|
101
|
-
<slot
|
|
112
|
+
<slot
|
|
113
|
+
name="title"
|
|
114
|
+
:tab="tab"
|
|
115
|
+
:tabIndex="tabindex"
|
|
116
|
+
:activeTab="activeTabIndex"
|
|
117
|
+
>
|
|
102
118
|
{{ tab?.name }}
|
|
103
119
|
</slot>
|
|
104
120
|
</button>
|
|
105
121
|
</div>
|
|
106
122
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
123
|
+
<div v-else class="flex items-center gap-1 p-2 transition-all duration-100">
|
|
124
|
+
<button
|
|
125
|
+
v-for="(tab, tabindex) in tabs"
|
|
126
|
+
:disabled="tab?.disabled"
|
|
127
|
+
:title="tab?.toolTipText"
|
|
128
|
+
:key="tabindex"
|
|
129
|
+
type="button"
|
|
130
|
+
role="tab"
|
|
131
|
+
:id="`id-${tab.name}`"
|
|
132
|
+
class="px-4 py-1 text-sm font-semibold transition-colors duration-150 ease-in-out border rounded-full"
|
|
133
|
+
:class="[
|
|
134
|
+
activeTabIndex === tabindex
|
|
135
|
+
? 'shadow-lg shadow-gray-100 bg-white border-gray-200 focus-within:border-purple-600 text-gray-900'
|
|
136
|
+
: 'border-white hover:bg-gray-50 text-gray-700',
|
|
137
|
+
tab?.disabled ? ' cursor-not-allowed ' : '',
|
|
138
|
+
]"
|
|
139
|
+
@click="selectTab(tabindex)"
|
|
110
140
|
>
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
:
|
|
114
|
-
:
|
|
115
|
-
|
|
116
|
-
role="tab"
|
|
117
|
-
:id="`id-${tab.name}`"
|
|
118
|
-
class="px-4 py-1 text-sm font-semibold transition-colors duration-150 ease-in-out border rounded-full"
|
|
119
|
-
:class="
|
|
120
|
-
[ activeTabIndex === tabindex
|
|
121
|
-
? 'shadow-lg shadow-gray-100 bg-white border-gray-200 focus-within:border-purple-600 text-gray-900'
|
|
122
|
-
: 'border-white hover:bg-gray-50 text-gray-700',tab?.disabled?' cursor-not-allowed ':'']
|
|
123
|
-
"
|
|
124
|
-
@click="selectTab(tabindex)"
|
|
141
|
+
<slot
|
|
142
|
+
name="title"
|
|
143
|
+
:tab="tab"
|
|
144
|
+
:tabIndex="tabindex"
|
|
145
|
+
:activeTab="activeTabIndex"
|
|
125
146
|
>
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
147
|
+
{{ tab?.name }}
|
|
148
|
+
</slot>
|
|
149
|
+
</button>
|
|
150
|
+
</div>
|
|
151
|
+
<div
|
|
152
|
+
:class="[
|
|
153
|
+
'py-2 text-base font-normal text-gray-700 bg-white relative',
|
|
154
|
+
contentClass,
|
|
155
|
+
{
|
|
156
|
+
'rounded-lg !rounded-tl-none shadow-[0px_-2px_24px_0px_rgba(0,0,0,0.075)] z-20':
|
|
157
|
+
tabStyle === 'shadow',
|
|
158
|
+
},
|
|
159
|
+
]"
|
|
160
|
+
>
|
|
132
161
|
<slot name="content" :active-tab="tabs[activeTabIndex]">
|
|
133
162
|
{{ tabs[activeTabIndex]?.content }}
|
|
134
163
|
</slot>
|
|
@@ -142,7 +171,8 @@ import { defineProps, ref, watch } from "vue";
|
|
|
142
171
|
interface Tab {
|
|
143
172
|
name: string;
|
|
144
173
|
content?: string;
|
|
145
|
-
disabled?:boolean
|
|
174
|
+
disabled?: boolean;
|
|
175
|
+
toolTipText?: string;
|
|
146
176
|
}
|
|
147
177
|
|
|
148
178
|
const props = defineProps<{
|
|
@@ -152,7 +182,6 @@ const props = defineProps<{
|
|
|
152
182
|
contentClass?: string[] | string;
|
|
153
183
|
tabSize?: "sm" | "md";
|
|
154
184
|
tabAlign?: "start" | "justify" | "end";
|
|
155
|
-
|
|
156
185
|
}>();
|
|
157
186
|
|
|
158
187
|
const emit = defineEmits<{
|
package/dist/EUIButton.vue.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import _sfc_main from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/button/EUIButton.vue?vue&type=script&setup=true&lang.ts";
|
|
2
|
-
export * from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/button/EUIButton.vue?vue&type=script&setup=true&lang.ts";
|
|
3
|
-
import "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/button/EUIButton.vue?vue&type=style&index=0&lang.scss";
|
|
4
|
-
export default _sfc_main;
|
|
5
|
-
//# sourceMappingURL=EUIButton.vue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EUIButton.vue.d.ts","sourceRoot":"","sources":["../src/components/button/EUIButton.vue"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wHAAwH,CAAC;AAC/I,cAAc,wHAAwH,CAAC;AACvI,OAAO,sHAAsH,CAAC;AAC9H,eAAe,SAAS,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import _sfc_main from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/selectSearch/EUISelectSearch.vue?vue&type=script&setup=true&lang.ts";
|
|
2
|
-
export * from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/selectSearch/EUISelectSearch.vue?vue&type=script&setup=true&lang.ts";
|
|
3
|
-
export default _sfc_main;
|
|
4
|
-
//# sourceMappingURL=EUISelectSearch.vue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EUISelectSearch.vue.d.ts","sourceRoot":"","sources":["../../src/components/selectSearch/EUISelectSearch.vue"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oIAAoI,CAAC;AAC3J,cAAc,oIAAoI,CAAC;AACnJ,eAAe,SAAS,CAAC"}
|
|
File without changes
|
|
File without changes
|