@vc-shell/framework 1.0.289 → 1.0.291
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/CHANGELOG.md +18 -0
- package/core/composables/index.ts +1 -0
- package/core/composables/useTheme/index.ts +60 -0
- package/core/directives/loading/styles.css +6 -1
- package/dist/core/composables/index.d.ts +1 -0
- package/dist/core/composables/index.d.ts.map +1 -1
- package/dist/core/composables/useTheme/index.d.ts +11 -0
- package/dist/core/composables/useTheme/index.d.ts.map +1 -0
- package/dist/framework.js +27889 -27362
- package/dist/index.css +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/locales/en.json +6 -0
- package/dist/shared/components/app-bar-button/app-bar-button.vue.d.ts +56 -0
- package/dist/shared/components/app-bar-button/app-bar-button.vue.d.ts.map +1 -0
- package/dist/shared/components/app-bar-button/index.d.ts +2 -0
- package/dist/shared/components/app-bar-button/index.d.ts.map +1 -0
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
- package/dist/shared/components/index.d.ts +3 -0
- package/dist/shared/components/index.d.ts.map +1 -1
- package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +1 -1
- package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -1
- package/dist/shared/components/notification-template/notification-template.vue.d.ts.map +1 -1
- package/dist/shared/components/sidebar/index.d.ts +2 -0
- package/dist/shared/components/sidebar/index.d.ts.map +1 -0
- package/dist/shared/components/sidebar/sidebar.vue.d.ts +49 -0
- package/dist/shared/components/sidebar/sidebar.vue.d.ts.map +1 -0
- package/dist/shared/components/theme-selector/index.d.ts +2 -0
- package/dist/shared/components/theme-selector/index.d.ts.map +1 -0
- package/dist/shared/components/theme-selector/theme-selector.vue.d.ts +3 -0
- package/dist/shared/components/theme-selector/theme-selector.vue.d.ts.map +1 -0
- package/dist/shared/components/user-dropdown-button/index.d.ts +6 -0
- package/dist/shared/components/user-dropdown-button/index.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +1 -0
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/types/index.d.ts +3 -0
- package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
- package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts +16 -3
- package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +1 -1
- package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts +7 -7
- package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts.map +1 -1
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +24 -3
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts +24 -1
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts.map +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +24 -3
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts +24 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts.map +1 -1
- package/dist/tailwind.config.d.ts +42 -15
- package/dist/tailwind.config.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts +26 -0
- package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +26 -0
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-add-new/vc-table-add-new.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts +1 -0
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +1 -0
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/vc-table.stories.d.ts +15 -0
- package/dist/ui/components/organisms/vc-table/vc-table.stories.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +3 -0
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
- package/package.json +4 -4
- package/shared/components/app-bar-button/app-bar-button.vue +169 -0
- package/shared/components/app-bar-button/index.ts +1 -0
- package/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue +138 -38
- package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +10 -1
- package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +55 -30
- package/shared/components/change-password/change-password.vue +7 -1
- package/shared/components/common/popup/vc-popup-error.vue +1 -1
- package/shared/components/common/popup/vc-popup-warning.vue +1 -1
- package/shared/components/index.ts +3 -0
- package/shared/components/language-selector/language-selector.vue +55 -39
- package/shared/components/notification-dropdown/_internal/notification/notification.vue +7 -1
- package/shared/components/notification-dropdown/notification-dropdown.vue +96 -83
- package/shared/components/notification-template/notification-template.vue +66 -22
- package/shared/components/notifications/styles/index.scss +1 -0
- package/shared/components/sidebar/index.ts +1 -0
- package/shared/components/sidebar/sidebar.vue +96 -0
- package/shared/components/theme-selector/index.ts +1 -0
- package/shared/components/theme-selector/theme-selector.vue +95 -0
- package/shared/components/user-dropdown-button/user-dropdown-button.vue +155 -86
- package/shared/modules/assets/components/assets-details/assets-details.vue +9 -2
- package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +16 -6
- package/shared/modules/dynamic/composables/useFilterBuilder/index.ts +1 -1
- package/shared/modules/dynamic/helpers/nodeBuilder.ts +1 -1
- package/shared/modules/dynamic/pages/dynamic-blade-form.vue +6 -2
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +16 -2
- package/shared/modules/dynamic/types/index.ts +3 -0
- package/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue +14 -9
- package/shared/pages/InvitePage/components/invite/Invite.vue +59 -15
- package/shared/pages/LoginPage/components/login/Login.vue +78 -22
- package/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue +67 -15
- package/tailwind.config.ts +281 -15
- package/ui/components/atoms/vc-badge/vc-badge.vue +38 -23
- package/ui/components/atoms/vc-button/vc-button.vue +37 -34
- package/ui/components/atoms/vc-card/vc-card.vue +17 -11
- package/ui/components/atoms/vc-col/vc-col.vue +4 -6
- package/ui/components/atoms/vc-container/vc-container.vue +26 -8
- package/ui/components/atoms/vc-hint/vc-hint.vue +8 -2
- package/ui/components/atoms/vc-icon/vc-icon.vue +3 -3
- package/ui/components/atoms/vc-image/vc-image.vue +33 -9
- package/ui/components/atoms/vc-label/vc-label.vue +38 -9
- package/ui/components/atoms/vc-link/vc-link.vue +15 -8
- package/ui/components/atoms/vc-loading/vc-loading.vue +37 -8
- package/ui/components/atoms/vc-progress/vc-progress.vue +29 -21
- package/ui/components/atoms/vc-row/vc-row.vue +4 -2
- package/ui/components/atoms/vc-status/vc-status.vue +29 -20
- package/ui/components/atoms/vc-status-icon/vc-status-icon.vue +20 -3
- package/ui/components/atoms/vc-switch/vc-switch.vue +41 -17
- package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +35 -9
- package/ui/components/atoms/vc-video/vc-video.vue +28 -6
- package/ui/components/atoms/vc-widget/vc-widget.vue +59 -28
- package/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue +29 -27
- package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +34 -11
- package/ui/components/molecules/vc-checkbox/vc-checkbox.vue +43 -21
- package/ui/components/molecules/vc-editor/vc-editor.vue +70 -32
- package/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue +32 -16
- package/ui/components/molecules/vc-field/vc-field.vue +36 -13
- package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +75 -25
- package/ui/components/molecules/vc-input/vc-input.vue +279 -218
- package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +24 -2
- package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +102 -64
- package/ui/components/molecules/vc-notification/vc-notification.vue +40 -15
- package/ui/components/molecules/vc-pagination/vc-pagination.vue +19 -15
- package/ui/components/molecules/vc-radio-button/vc-radio-button.vue +18 -23
- package/ui/components/molecules/vc-rating/vc-rating.vue +9 -5
- package/ui/components/molecules/vc-select/vc-select.vue +211 -65
- package/ui/components/molecules/vc-slider/vc-slider.vue +32 -13
- package/ui/components/molecules/vc-textarea/vc-textarea.vue +17 -12
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +68 -14
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +112 -122
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +213 -96
- package/ui/components/organisms/vc-app/vc-app.vue +41 -15
- package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +78 -30
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue +81 -59
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +27 -13
- package/ui/components/organisms/vc-blade/vc-blade.vue +177 -46
- package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue +40 -11
- package/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue +52 -18
- package/ui/components/organisms/vc-gallery/vc-gallery.vue +38 -6
- package/ui/components/organisms/vc-login-form/vc-login-form.vue +40 -14
- package/ui/components/organisms/vc-popup/vc-popup.vue +186 -44
- package/ui/components/organisms/vc-table/_internal/vc-table-add-new/vc-table-add-new.vue +25 -6
- package/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue +48 -12
- package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +130 -60
- package/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue +55 -7
- package/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue +17 -5
- package/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue +38 -6
- package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +111 -62
- package/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue +139 -46
- package/ui/components/organisms/vc-table/vc-table.vue +370 -128
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
v-loading:1000="unref(loading) || columnsInit"
|
|
4
|
-
class="
|
|
4
|
+
class="vc-table"
|
|
5
5
|
>
|
|
6
6
|
<div
|
|
7
7
|
v-if="multiselect && $isMobile.value && (selection.length > 0 || allSelected)"
|
|
8
|
-
class="
|
|
8
|
+
class="vc-table__multiselect-mobile"
|
|
9
9
|
>
|
|
10
|
-
<div
|
|
11
|
-
class="
|
|
12
|
-
|
|
13
|
-
<div class="tw-flex tw-flex-row tw-w-full tw-justify-between">
|
|
14
|
-
<div class="tw-flex tw-flex-row tw-items-center tw-justify-center tw-gap-3">
|
|
10
|
+
<div class="vc-table__select-all-bar">
|
|
11
|
+
<div class="vc-table__select-all-content">
|
|
12
|
+
<div class="vc-table__select-all-checkbox">
|
|
15
13
|
<VcCheckbox
|
|
16
14
|
v-model="headerCheckbox"
|
|
17
|
-
class="
|
|
15
|
+
class="vc-table__select-all-checkbox__checkbox"
|
|
18
16
|
size="m"
|
|
19
17
|
@click.stop
|
|
20
|
-
>{{ $t("COMPONENTS.ORGANISMS.VC_TABLE.SELECT_ALL_TRUNCATED") }}</VcCheckbox
|
|
21
18
|
>
|
|
19
|
+
{{ $t("COMPONENTS.ORGANISMS.VC_TABLE.SELECT_ALL_TRUNCATED") }}
|
|
20
|
+
</VcCheckbox>
|
|
22
21
|
{{ $t("COMPONENTS.ORGANISMS.VC_TABLE.SELECTED") }}: {{ allSelected ? totalCount : selection.length }}
|
|
23
22
|
</div>
|
|
24
23
|
|
|
@@ -30,15 +29,16 @@
|
|
|
30
29
|
allSelected = false;
|
|
31
30
|
}
|
|
32
31
|
"
|
|
33
|
-
>{{ $t("COMPONENTS.ORGANISMS.VC_TABLE.CANCEL") }}</VcButton
|
|
34
32
|
>
|
|
33
|
+
{{ $t("COMPONENTS.ORGANISMS.VC_TABLE.CANCEL") }}
|
|
34
|
+
</VcButton>
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
37
|
<div
|
|
38
38
|
v-if="selectAll && showSelectionChoice"
|
|
39
|
-
class="
|
|
39
|
+
class="vc-table__select-all-choice"
|
|
40
40
|
>
|
|
41
|
-
<div class="
|
|
41
|
+
<div class="vc-table__select-all-choice__content">
|
|
42
42
|
<div>
|
|
43
43
|
{{
|
|
44
44
|
allSelected
|
|
@@ -47,12 +47,13 @@
|
|
|
47
47
|
}}
|
|
48
48
|
<VcButton
|
|
49
49
|
text
|
|
50
|
-
class="
|
|
50
|
+
class="vc-table__select-all-choice__button"
|
|
51
51
|
@click="handleSelectAll"
|
|
52
|
-
>{{
|
|
53
|
-
allSelected ? t("COMPONENTS.ORGANISMS.VC_TABLE.CANCEL") : t("COMPONENTS.ORGANISMS.VC_TABLE.SELECT_ALL")
|
|
54
|
-
}}</VcButton
|
|
55
52
|
>
|
|
53
|
+
{{
|
|
54
|
+
allSelected ? t("COMPONENTS.ORGANISMS.VC_TABLE.CANCEL") : t("COMPONENTS.ORGANISMS.VC_TABLE.SELECT_ALL")
|
|
55
|
+
}}
|
|
56
|
+
</VcButton>
|
|
56
57
|
</div>
|
|
57
58
|
</div>
|
|
58
59
|
</div>
|
|
@@ -66,15 +67,15 @@
|
|
|
66
67
|
name="header"
|
|
67
68
|
:header="headerComponent"
|
|
68
69
|
>
|
|
69
|
-
<
|
|
70
|
+
<headerComponent></headerComponent>
|
|
70
71
|
</slot>
|
|
71
72
|
|
|
72
|
-
<div class="
|
|
73
|
+
<div class="vc-table__content">
|
|
73
74
|
<!-- Table scroll container -->
|
|
74
75
|
<VcContainer
|
|
75
76
|
ref="scrollContainer"
|
|
76
77
|
:no-padding="true"
|
|
77
|
-
class="vc-table__mobile-view
|
|
78
|
+
class="vc-table__mobile-view"
|
|
78
79
|
:use-ptr="selection.length === 0 ? pullToReload : undefined"
|
|
79
80
|
@scroll:ptr="$emit('scroll:ptr')"
|
|
80
81
|
>
|
|
@@ -82,7 +83,7 @@
|
|
|
82
83
|
<template v-if="$isMobile.value">
|
|
83
84
|
<div
|
|
84
85
|
v-if="items && items.length && !columnsInit"
|
|
85
|
-
class="
|
|
86
|
+
class="vc-table__mobile-items"
|
|
86
87
|
>
|
|
87
88
|
<VcTableMobileItem
|
|
88
89
|
v-for="(item, i) in items"
|
|
@@ -111,7 +112,7 @@
|
|
|
111
112
|
</div>
|
|
112
113
|
<div
|
|
113
114
|
v-else
|
|
114
|
-
class="
|
|
115
|
+
class="vc-table__mobile-empty"
|
|
115
116
|
>
|
|
116
117
|
<!-- Empty table view -->
|
|
117
118
|
<VcTableEmpty
|
|
@@ -136,43 +137,41 @@
|
|
|
136
137
|
<div
|
|
137
138
|
v-else
|
|
138
139
|
ref="tableRef"
|
|
139
|
-
class="
|
|
140
|
+
class="vc-table__desktop-table"
|
|
140
141
|
:class="{
|
|
141
|
-
'vc-
|
|
142
|
-
'vc-
|
|
142
|
+
'vc-table__empty': !items || !items.length,
|
|
143
|
+
'vc-table__multiselect': multiselect,
|
|
143
144
|
}"
|
|
144
145
|
>
|
|
145
146
|
<div
|
|
146
147
|
v-if="filteredCols.length"
|
|
147
|
-
class="vc-table__header
|
|
148
|
+
class="vc-table__header"
|
|
148
149
|
@mouseenter="handleHeaderMouseOver(true)"
|
|
149
150
|
@mouseleave="handleHeaderMouseOver(false)"
|
|
150
151
|
>
|
|
151
|
-
<div class="vc-table__header-row
|
|
152
|
+
<div class="vc-table__header-row">
|
|
152
153
|
<div
|
|
153
154
|
v-if="multiselect && items && items.length"
|
|
154
|
-
class="
|
|
155
|
+
class="vc-table__header-checkbox"
|
|
155
156
|
>
|
|
156
|
-
<div class="
|
|
157
|
+
<div class="vc-table__header-checkbox__content">
|
|
157
158
|
<VcCheckbox
|
|
158
159
|
v-model="headerCheckbox"
|
|
159
160
|
size="m"
|
|
160
161
|
@click.stop
|
|
161
162
|
></VcCheckbox>
|
|
162
163
|
</div>
|
|
163
|
-
<div class="
|
|
164
|
-
<div class="tw-w-px tw-bg-[#e5e7eb] tw-h-full"></div>
|
|
165
|
-
</div>
|
|
164
|
+
<div class="vc-table__header-checkbox__resizer"></div>
|
|
166
165
|
</div>
|
|
167
166
|
<div
|
|
168
167
|
v-for="(item, index) in filteredCols"
|
|
169
168
|
:id="item.id"
|
|
170
169
|
:key="item.id"
|
|
171
|
-
class="vc-table__header
|
|
170
|
+
class="vc-table__header-cell"
|
|
172
171
|
:class="[
|
|
173
172
|
{
|
|
174
|
-
'
|
|
175
|
-
'
|
|
173
|
+
'vc-table__header-cell--sortable': item.sortable,
|
|
174
|
+
'vc-table__header-cell--last': index === filteredCols.length - 1,
|
|
176
175
|
},
|
|
177
176
|
item.align ? tableAlignment[item.align as keyof typeof tableAlignment] : '',
|
|
178
177
|
]"
|
|
@@ -184,30 +183,18 @@
|
|
|
184
183
|
@drop="onColumnHeaderDrop($event, item)"
|
|
185
184
|
@click="handleHeaderClick(item)"
|
|
186
185
|
>
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
class="tw-flex tw-pl-5 tw-items-center tw-justify-center tw-w-auto tw-bg-[#f9f9f9] tw-box-border tw-select-none tw-overflow-hidden tw-z-[1] tw-shrink-0"
|
|
190
|
-
>
|
|
191
|
-
<div class="tw-flex tw-justify-center tw-items-center">
|
|
192
|
-
<VcCheckbox
|
|
193
|
-
v-model="headerCheckbox"
|
|
194
|
-
size="m"
|
|
195
|
-
@click.stop
|
|
196
|
-
></VcCheckbox>
|
|
197
|
-
</div>
|
|
198
|
-
</div> -->
|
|
199
|
-
<div class="tw-flex tw-items-center tw-flex-nowrap tw-truncate tw-px-3 tw-font-bold">
|
|
200
|
-
<div class="tw-truncate">
|
|
186
|
+
<div class="vc-table__header-cell__content">
|
|
187
|
+
<div class="vc-table__header-cell__title">
|
|
201
188
|
<span
|
|
202
189
|
v-if="editing && item.rules?.required"
|
|
203
|
-
class="
|
|
190
|
+
class="vc-table__header-cell__required"
|
|
204
191
|
>*</span
|
|
205
192
|
>
|
|
206
193
|
<slot :name="`header_${item.id}`">{{ item.title }}</slot>
|
|
207
194
|
</div>
|
|
208
195
|
<div
|
|
209
196
|
v-if="sortField === item.id"
|
|
210
|
-
class="
|
|
197
|
+
class="vc-table__header-cell__sort-icon"
|
|
211
198
|
>
|
|
212
199
|
<VcIcon
|
|
213
200
|
size="xs"
|
|
@@ -216,7 +203,7 @@
|
|
|
216
203
|
</div>
|
|
217
204
|
<div
|
|
218
205
|
v-else
|
|
219
|
-
class="
|
|
206
|
+
class="vc-table__header-cell__sort-icons"
|
|
220
207
|
>
|
|
221
208
|
<VcIcon
|
|
222
209
|
size="xs"
|
|
@@ -229,9 +216,9 @@
|
|
|
229
216
|
</div>
|
|
230
217
|
</div>
|
|
231
218
|
<div
|
|
232
|
-
class="
|
|
219
|
+
class="vc-table__header-cell__resizer"
|
|
233
220
|
:class="{
|
|
234
|
-
'
|
|
221
|
+
'vc-table__header-cell__resizer--cursor': props.resizableColumns,
|
|
235
222
|
}"
|
|
236
223
|
@mousedown="handleMouseDown($event, item)"
|
|
237
224
|
></div>
|
|
@@ -239,7 +226,7 @@
|
|
|
239
226
|
|
|
240
227
|
<div
|
|
241
228
|
v-if="isHeaderHover && props.expanded"
|
|
242
|
-
class="
|
|
229
|
+
class="vc-table__column-switcher"
|
|
243
230
|
>
|
|
244
231
|
<VcTableColumnSwitcher
|
|
245
232
|
:items="internalColumnsSorted"
|
|
@@ -252,18 +239,18 @@
|
|
|
252
239
|
|
|
253
240
|
<div
|
|
254
241
|
ref="resizer"
|
|
255
|
-
class="
|
|
242
|
+
class="vc-table__resizer"
|
|
256
243
|
></div>
|
|
257
244
|
<div
|
|
258
245
|
ref="reorderRef"
|
|
259
|
-
class="
|
|
246
|
+
class="vc-table__reorder-ref"
|
|
260
247
|
></div>
|
|
261
248
|
</div>
|
|
262
249
|
<div
|
|
263
250
|
v-if="selectAll && showSelectionChoice"
|
|
264
|
-
class="
|
|
251
|
+
class="vc-table__select-all-footer"
|
|
265
252
|
>
|
|
266
|
-
<div class="
|
|
253
|
+
<div class="vc-table__select-all-footer__content">
|
|
267
254
|
<div>
|
|
268
255
|
{{
|
|
269
256
|
allSelected
|
|
@@ -272,32 +259,33 @@
|
|
|
272
259
|
}}
|
|
273
260
|
<VcButton
|
|
274
261
|
text
|
|
275
|
-
class="
|
|
262
|
+
class="vc-table__select-all-footer__button"
|
|
276
263
|
@click="handleSelectAll"
|
|
277
|
-
|
|
264
|
+
>
|
|
265
|
+
{{
|
|
278
266
|
allSelected
|
|
279
267
|
? t("COMPONENTS.ORGANISMS.VC_TABLE.CANCEL")
|
|
280
268
|
: t("COMPONENTS.ORGANISMS.VC_TABLE.SELECT_ALL")
|
|
281
|
-
}}
|
|
282
|
-
>
|
|
269
|
+
}}
|
|
270
|
+
</VcButton>
|
|
283
271
|
</div>
|
|
284
272
|
</div>
|
|
285
273
|
</div>
|
|
286
274
|
<div
|
|
287
275
|
v-if="items && items.length && !columnsInit"
|
|
288
|
-
class="
|
|
276
|
+
class="vc-table__body"
|
|
289
277
|
>
|
|
290
278
|
<div
|
|
291
279
|
v-for="(item, itemIndex) in items"
|
|
292
280
|
:key="(typeof item === 'object' && 'id' in item && item.id) || itemIndex"
|
|
293
|
-
class="vc-table__body-row
|
|
281
|
+
class="vc-table__body-row"
|
|
294
282
|
:class="{
|
|
295
|
-
'
|
|
296
|
-
'
|
|
297
|
-
'
|
|
298
|
-
'
|
|
283
|
+
'vc-table__body-row--odd': itemIndex % 2 === 0,
|
|
284
|
+
'vc-table__body-row--clickable': hasClickListener,
|
|
285
|
+
'vc-table__body-row--even': itemIndex % 2 === 1,
|
|
286
|
+
'vc-table__body-row--selected':
|
|
299
287
|
typeof item === 'object' && 'id' in item && item.id ? selectedItemId === item.id : false,
|
|
300
|
-
'
|
|
288
|
+
'vc-table__body-row--selection': selection && selection.length && selection.includes(item),
|
|
301
289
|
}"
|
|
302
290
|
@click="$emit('itemClick', item)"
|
|
303
291
|
@mouseleave="closeActions"
|
|
@@ -311,10 +299,10 @@
|
|
|
311
299
|
>
|
|
312
300
|
<div
|
|
313
301
|
v-if="multiselect && typeof item === 'object'"
|
|
314
|
-
class="
|
|
302
|
+
class="vc-table__body-row-checkbox"
|
|
315
303
|
@click.stop
|
|
316
304
|
>
|
|
317
|
-
<div class="
|
|
305
|
+
<div class="vc-table__body-row-checkbox-content">
|
|
318
306
|
<VcCheckbox
|
|
319
307
|
:model-value="isSelected(item)"
|
|
320
308
|
size="m"
|
|
@@ -322,22 +310,17 @@
|
|
|
322
310
|
@update:model-value="rowCheckbox(item)"
|
|
323
311
|
></VcCheckbox>
|
|
324
312
|
</div>
|
|
325
|
-
<div class="
|
|
313
|
+
<div class="vc-table__body-row-checkbox-resizer"></div>
|
|
326
314
|
</div>
|
|
327
315
|
<div
|
|
328
316
|
v-for="cell in filteredCols"
|
|
329
317
|
:id="`${(typeof item === 'object' && 'id' in item && item.id) || itemIndex}_${cell.id}`"
|
|
330
318
|
:key="`${(typeof item === 'object' && 'id' in item && item.id) || itemIndex}_${cell.id}`"
|
|
331
|
-
class="
|
|
319
|
+
class="vc-table__body-cell"
|
|
332
320
|
:class="[cell.class]"
|
|
333
321
|
:style="{ maxWidth: cell.width, width: cell.width }"
|
|
334
322
|
>
|
|
335
|
-
<div class="
|
|
336
|
-
<!-- <renderCellSlot
|
|
337
|
-
:item="item"
|
|
338
|
-
:cell="cell"
|
|
339
|
-
:index="itemIndex"
|
|
340
|
-
/> -->
|
|
323
|
+
<div class="vc-table__body-cell__content">
|
|
341
324
|
<slot
|
|
342
325
|
:name="`item_${cell.id}`"
|
|
343
326
|
:item="item"
|
|
@@ -359,23 +342,19 @@
|
|
|
359
342
|
v-if="
|
|
360
343
|
enableItemActions && itemActionBuilder && typeof item === 'object' && selectedRowIndex === itemIndex
|
|
361
344
|
"
|
|
362
|
-
class="
|
|
345
|
+
class="vc-table__body-actions"
|
|
363
346
|
:class="{
|
|
364
|
-
'
|
|
365
|
-
'
|
|
347
|
+
'vc-table__body-actions--hover': hasClickListener,
|
|
348
|
+
'vc-table__body-actions--selected':
|
|
366
349
|
hasClickListener && selection && selection.length && selection.includes(item),
|
|
367
350
|
}"
|
|
368
351
|
@click.stop
|
|
369
352
|
>
|
|
370
|
-
<div
|
|
371
|
-
class="tw-flex tw-flex-row tw-items-center tw-text-[#3f3f3f] tw-font-normal not-italic tw-text-base tw-leading-[20px] tw-gap-[10px]"
|
|
372
|
-
>
|
|
353
|
+
<div class="vc-table__body-actions-content">
|
|
373
354
|
<div
|
|
374
355
|
v-for="(itemAction, i) in itemActions[itemIndex]"
|
|
375
356
|
:key="i"
|
|
376
|
-
|
|
377
|
-
'tw-text-[#319ed4] tw-cursor-pointer tw-w-[22px] tw-h-[22px] tw-flex tw-items-center tw-justify-center hover:tw-text-[#257fad]',
|
|
378
|
-
]"
|
|
357
|
+
class="vc-table__body-actions-item"
|
|
379
358
|
@click.stop="itemAction.clickHandler(item, itemIndex)"
|
|
380
359
|
>
|
|
381
360
|
<VcTooltip
|
|
@@ -389,7 +368,7 @@
|
|
|
389
368
|
size="m"
|
|
390
369
|
/>
|
|
391
370
|
<template #tooltip>
|
|
392
|
-
<div class="
|
|
371
|
+
<div class="vc-table__body-actions-tooltip">
|
|
393
372
|
{{ itemAction.title }}
|
|
394
373
|
</div>
|
|
395
374
|
</template>
|
|
@@ -401,7 +380,7 @@
|
|
|
401
380
|
</div>
|
|
402
381
|
<div
|
|
403
382
|
v-else
|
|
404
|
-
class="
|
|
383
|
+
class="vc-table__body-empty"
|
|
405
384
|
>
|
|
406
385
|
<!-- Empty table view -->
|
|
407
386
|
<VcTableEmpty
|
|
@@ -435,10 +414,10 @@
|
|
|
435
414
|
name="footer"
|
|
436
415
|
>
|
|
437
416
|
<div
|
|
438
|
-
class="
|
|
417
|
+
class="vc-table__footer"
|
|
439
418
|
:class="{
|
|
440
|
-
'
|
|
441
|
-
'
|
|
419
|
+
'vc-table__footer--mobile': $isMobile.value,
|
|
420
|
+
'vc-table__footer--desktop': $isDesktop.value,
|
|
442
421
|
}"
|
|
443
422
|
>
|
|
444
423
|
<!-- Table pagination -->
|
|
@@ -459,6 +438,7 @@
|
|
|
459
438
|
</slot>
|
|
460
439
|
</div>
|
|
461
440
|
</template>
|
|
441
|
+
|
|
462
442
|
<!-- eslint-disable @typescript-eslint/no-explicit-any -->
|
|
463
443
|
<script lang="ts" setup generic="T extends TableItem | string">
|
|
464
444
|
import { useCurrentElement, useLocalStorage } from "@vueuse/core";
|
|
@@ -551,6 +531,7 @@ const props = withDefaults(
|
|
|
551
531
|
};
|
|
552
532
|
paginationVariant?: ComponentProps<typeof VcPagination>["variant"];
|
|
553
533
|
selectionItems?: T[];
|
|
534
|
+
disableFilter?: boolean;
|
|
554
535
|
}>(),
|
|
555
536
|
{
|
|
556
537
|
items: () => [],
|
|
@@ -719,12 +700,15 @@ const headerComponent = () =>
|
|
|
719
700
|
activeFilterCount: props.activeFilterCount,
|
|
720
701
|
expanded: props.expanded,
|
|
721
702
|
"onSearch:change": (value: string) => emit("search:change", value),
|
|
703
|
+
disableFilter: props.disableFilter,
|
|
722
704
|
},
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
705
|
+
slots.filters
|
|
706
|
+
? {
|
|
707
|
+
filters: () => {
|
|
708
|
+
return slots.filters?.({ closePanel: () => {} });
|
|
709
|
+
},
|
|
710
|
+
}
|
|
711
|
+
: undefined,
|
|
728
712
|
);
|
|
729
713
|
|
|
730
714
|
const allColumns = ref([]) as Ref<ITableColumns[]>;
|
|
@@ -732,7 +716,9 @@ const allColumns = ref([]) as Ref<ITableColumns[]>;
|
|
|
732
716
|
const mobileTemplateRenderer = ({ item, index }: { item: TableItem | string; index: number }) => {
|
|
733
717
|
return h(
|
|
734
718
|
"div",
|
|
735
|
-
{
|
|
719
|
+
{
|
|
720
|
+
class: "vc-table__mobile-items-renderer",
|
|
721
|
+
},
|
|
736
722
|
props.columns.map((x) => {
|
|
737
723
|
return h("div", { class: "tw-grow tw-w-[33%] tw-ml-3 tw-truncate", key: `mobile-view-item-${index}` }, [
|
|
738
724
|
h(VcLabel, { class: "tw-mb-1 tw-truncate", required: x?.rules?.required }, () => toValue(x.title)),
|
|
@@ -741,7 +727,7 @@ const mobileTemplateRenderer = ({ item, index }: { item: TableItem | string; ind
|
|
|
741
727
|
: [
|
|
742
728
|
typeof item === "object"
|
|
743
729
|
? h(VcTableCell, {
|
|
744
|
-
cell: { ...x, class: "!tw-justify-start" },
|
|
730
|
+
cell: { ...x, class: "!tw-justify-start " },
|
|
745
731
|
item,
|
|
746
732
|
key: `mobile-view-cell-${index}`,
|
|
747
733
|
class: "tw-mb-4",
|
|
@@ -1367,57 +1353,313 @@ function onRowDrop(event: DragEvent) {
|
|
|
1367
1353
|
|
|
1368
1354
|
<style lang="scss">
|
|
1369
1355
|
:root {
|
|
1370
|
-
--
|
|
1356
|
+
--table-border-color: var(--base-border-color, var(--neutrals-200));
|
|
1357
|
+
--table-select-all-border-color: var(--base-border-color, var(--neutrals-200));
|
|
1358
|
+
--table-header-bg: var(--neutrals-50);
|
|
1359
|
+
--table-header-border-color: var(--base-border-color, var(--neutrals-200));
|
|
1360
|
+
--table-header-border: inset 0px 1px 0px var(--table-header-border-color),
|
|
1361
|
+
inset 0px -1px 0px var(--table-header-border-color);
|
|
1362
|
+
--table-header-text-color: var(--secondary-700);
|
|
1363
|
+
--table-resizer-color: var(--base-border-color, var(--neutrals-200));
|
|
1364
|
+
--table-reorder-color: var(--primary-400);
|
|
1365
|
+
--table-select-all-bg: var(--primary-100);
|
|
1366
|
+
--table-row-bg-hover: var(--primary-50);
|
|
1367
|
+
--table-row-bg-odd: var(--additional-50);
|
|
1368
|
+
--table-row-bg-even: var(--neutrals-50);
|
|
1369
|
+
--table-row-hover: var(--primary-50);
|
|
1370
|
+
--table-row-bg-selected: var(--primary-100);
|
|
1371
|
+
--table-actions-bg: var(--neutrals-100);
|
|
1372
|
+
--table-actions-bg-hover: var(--primary-50);
|
|
1373
|
+
--table-actions-bg-hover-selected-item: var(--primary-100);
|
|
1374
|
+
--table-actions-text-color: var(--neutrals-600);
|
|
1375
|
+
--table-actions-tooltip-text: var(--neutrals-600);
|
|
1376
|
+
--table-actions-icon-color: var(--primary-500);
|
|
1377
|
+
--table-actions-icon-color-hover: var(--primary-600);
|
|
1378
|
+
--table-footer-bg: var(--neutrals-50);
|
|
1379
|
+
--table-footer-border-color: var(--base-border-color, var(--neutrals-200));
|
|
1380
|
+
--table-row-drag-color: var(--primary-400);
|
|
1381
|
+
--table-row-drag-shadow: inset 0 -2px 0 0 var(--table-row-drag-color);
|
|
1382
|
+
--table-actions-color-danger: var(--danger-500);
|
|
1383
|
+
--table-actions-color-success: var(--success-500);
|
|
1384
|
+
--table-mobile-border-color: var(--secondary-200);
|
|
1385
|
+
--table-text-color: var(--base-text-color, var(--neutrals-950));
|
|
1371
1386
|
}
|
|
1372
1387
|
|
|
1373
1388
|
$variants: (
|
|
1374
|
-
danger:
|
|
1375
|
-
success:
|
|
1389
|
+
danger: var(--table-actions-color-danger),
|
|
1390
|
+
success: var(--table-actions-color-success),
|
|
1376
1391
|
);
|
|
1377
1392
|
|
|
1378
1393
|
.vc-table {
|
|
1394
|
+
@apply tw-relative tw-overflow-hidden tw-flex tw-flex-col tw-grow tw-basis-0 tw-border-solid tw-border-t-0;
|
|
1395
|
+
border-color: var(--table-border-color);
|
|
1396
|
+
|
|
1397
|
+
&__multiselect-mobile {
|
|
1398
|
+
@apply tw-flex tw-flex-col;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
&__select-all-bar {
|
|
1402
|
+
@apply tw-flex tw-flex-row tw-items-center tw-justify-between tw-px-4 tw-py-2 tw-min-h-14 tw-font-bold tw-text-lg tw-border-[color:var(--table-select-all-border-color)] tw-border-b tw-border-solid tw-box-border;
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
&__select-all-content {
|
|
1406
|
+
@apply tw-flex tw-flex-row tw-w-full tw-justify-between;
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
&__select-all-checkbox {
|
|
1410
|
+
@apply tw-flex tw-flex-row tw-items-center tw-justify-center tw-gap-3;
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1413
|
+
&__select-all-checkbox__checkbox {
|
|
1414
|
+
@apply tw-font-normal tw-self-center tw-flex;
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
&__select-all-choice {
|
|
1418
|
+
@apply tw-w-full tw-flex tw-py-2;
|
|
1419
|
+
}
|
|
1420
|
+
|
|
1421
|
+
&__select-all-choice__content {
|
|
1422
|
+
@apply tw-w-full tw-flex tw-items-center tw-justify-center;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
&__select-all-choice__button {
|
|
1426
|
+
@apply tw-text-sm;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
&__content {
|
|
1430
|
+
@apply tw-flex tw-relative tw-overflow-hidden tw-grow;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1379
1433
|
&__mobile-view {
|
|
1434
|
+
@apply tw-grow tw-basis-0 tw-relative;
|
|
1380
1435
|
.vc-container__inner {
|
|
1381
|
-
|
|
1382
|
-
flex-grow: 1;
|
|
1436
|
+
@apply tw-flex tw-flex-grow;
|
|
1383
1437
|
}
|
|
1384
1438
|
}
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1439
|
+
|
|
1440
|
+
&__mobile-items {
|
|
1441
|
+
@apply tw-flex-grow tw-flex tw-flex-col tw-h-max [width:-webkit-fill-available];
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
&__mobile-empty {
|
|
1445
|
+
@apply tw-overflow-auto tw-flex tw-flex-col tw-h-full tw-flex-grow;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
&__desktop-table {
|
|
1449
|
+
@apply tw-relative tw-box-border tw-w-full tw-h-full tw-flex tw-flex-col;
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
&__header {
|
|
1453
|
+
@apply tw-flex tw-flex-col tw-sticky tw-top-0 tw-bg-[--table-header-bg] tw-z-[1] tw-box-border;
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
&__header-row {
|
|
1457
|
+
@apply tw-flex tw-flex-row;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
&__header-checkbox {
|
|
1461
|
+
@apply tw-flex-1 tw-flex tw-items-center tw-justify-center tw-w-9 tw-max-w-9 tw-min-w-9 tw-bg-[--table-header-bg] [box-shadow:var(--table-header-border)] tw-shadow-none tw-box-border tw-sticky tw-top-0 tw-select-none tw-overflow-hidden tw-z-[1];
|
|
1462
|
+
@apply tw-border-0 #{!important};
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
&__header-checkbox__content {
|
|
1466
|
+
@apply tw-flex tw-justify-center tw-items-center;
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
&__header-checkbox__resizer {
|
|
1470
|
+
@apply tw-w-px tw-bg-[--table-resizer-color] tw-h-full tw-absolute tw-right-0 tw-flex tw-justify-end;
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
&__header-cell {
|
|
1474
|
+
@apply tw-flex-1 tw-flex tw-items-center tw-h-10 tw-bg-[--table-header-bg] [box-shadow:var(--table-header-border)] tw-box-border tw-sticky tw-top-0 tw-select-none tw-overflow-hidden tw-z-[1];
|
|
1475
|
+
@apply tw-border-0 #{!important};
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
&__header-cell--sortable {
|
|
1479
|
+
@apply tw-cursor-pointer;
|
|
1480
|
+
|
|
1481
|
+
&:hover {
|
|
1482
|
+
.vc-table__header-cell__sort-icons {
|
|
1483
|
+
@apply tw-visible;
|
|
1394
1484
|
}
|
|
1395
1485
|
}
|
|
1486
|
+
}
|
|
1396
1487
|
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
@apply tw-absolute tw-w-2 tw-h-2 tw-bg-inherit;
|
|
1400
|
-
}
|
|
1488
|
+
&__header-cell--last {
|
|
1489
|
+
}
|
|
1401
1490
|
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1491
|
+
&__header-cell__content {
|
|
1492
|
+
@apply tw-flex tw-items-center tw-flex-nowrap tw-truncate tw-px-3 tw-font-bold tw-text-sm tw-text-[color:var(--table-header-text-color)];
|
|
1493
|
+
}
|
|
1405
1494
|
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1495
|
+
&__header-cell__title {
|
|
1496
|
+
@apply tw-truncate;
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
&__header-cell__required {
|
|
1500
|
+
@apply tw-text-[color:var(--label-required-color)] tw-mr-1;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
&__header-cell__sort-icon {
|
|
1504
|
+
@apply tw-ml-1;
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
&__header-cell__sort-icons {
|
|
1508
|
+
@apply tw-flex tw-flex-col tw-ml-1 tw-invisible;
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
&__header-cell__resizer {
|
|
1512
|
+
@apply tw-w-1 tw-mr-1 tw-border-r tw-border-[--table-resizer-color] tw-border-solid tw-h-full tw-absolute tw-right-0 tw-flex tw-justify-end;
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1515
|
+
&__header-cell__resizer--cursor {
|
|
1516
|
+
@apply tw-cursor-col-resize;
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
&__column-switcher {
|
|
1520
|
+
@apply tw-absolute tw-h-10 tw-z-10 tw-right-0 tw-flex tw-items-center;
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1523
|
+
&__resizer {
|
|
1524
|
+
@apply tw-w-px tw-absolute tw-z-10 tw-hidden tw-h-full tw-bg-[--table-resizer-color] tw-cursor-col-resize;
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
&__reorder-ref {
|
|
1528
|
+
@apply tw-w-0.5 tw-bg-[--table-reorder-color] tw-h-full tw-absolute tw-top-0 tw-bottom-0 tw-z-20 tw-hidden;
|
|
1529
|
+
}
|
|
1530
|
+
|
|
1531
|
+
&__select-all-footer {
|
|
1532
|
+
@apply tw-h-16 tw-min-h-16 tw-bg-[--table-select-all-bg] tw-w-full tw-flex;
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
&__select-all-footer__content {
|
|
1536
|
+
@apply tw-w-full tw-flex tw-items-center tw-justify-center;
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
&__select-all-footer__button {
|
|
1540
|
+
@apply tw-text-sm;
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
&__body {
|
|
1544
|
+
@apply tw-flex tw-flex-col tw-overflow-auto;
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1547
|
+
&__body-row {
|
|
1548
|
+
@apply tw-flex tw-w-full tw-h-14 tw-min-h-14 tw-relative;
|
|
1409
1549
|
|
|
1410
|
-
|
|
1411
|
-
|
|
1550
|
+
&:hover {
|
|
1551
|
+
.vc-table__body-actions--hover {
|
|
1552
|
+
@apply tw-bg-[--table-actions-bg-hover];
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
.vc-table__body-actions--selected {
|
|
1556
|
+
@apply tw-bg-[--table-actions-bg-hover-selected-item];
|
|
1557
|
+
}
|
|
1412
1558
|
}
|
|
1413
1559
|
}
|
|
1414
1560
|
|
|
1561
|
+
&__body-row--odd {
|
|
1562
|
+
@apply tw-bg-[--table-row-bg-odd];
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
&__body-row--even {
|
|
1566
|
+
@apply tw-bg-[--table-row-bg-even];
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
|
+
&__body-row--clickable {
|
|
1570
|
+
@apply hover:tw-bg-[--table-row-bg-hover] tw-cursor-pointer tw-border-solid;
|
|
1571
|
+
}
|
|
1572
|
+
|
|
1573
|
+
&__body-row--selected {
|
|
1574
|
+
@apply tw-bg-[--table-row-hover] hover:tw-bg-[--table-row-hover] #{!important};
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
&__body-row--selection {
|
|
1578
|
+
@apply hover:tw-bg-[--table-row-bg-selected] tw-bg-[--table-row-bg-selected] #{!important};
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
&__body-row-checkbox {
|
|
1582
|
+
@apply tw-w-[36px] tw-max-w-[36px] tw-min-w-[36px] tw-relative tw-flex-1 tw-flex tw-items-center tw-justify-center;
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
&__body-row-checkbox-content {
|
|
1586
|
+
@apply tw-flex tw-justify-center tw-items-center;
|
|
1587
|
+
}
|
|
1588
|
+
|
|
1589
|
+
&__body-row-checkbox-resizer {
|
|
1590
|
+
@apply tw-w-px tw-top-0 tw-bottom-0 tw-absolute tw-right-0 tw-bg-[--table-resizer-color];
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
&__body-actions {
|
|
1594
|
+
@apply tw-absolute tw-flex tw-right-0 tw-px-2.5 tw-h-full tw-bg-[--table-actions-bg];
|
|
1595
|
+
}
|
|
1596
|
+
|
|
1597
|
+
&__body-actions-content {
|
|
1598
|
+
@apply tw-flex tw-flex-row tw-items-center tw-text-[color:var(--table-actions-text-color)] tw-font-normal tw-text-base tw-leading-5 tw-gap-2.5;
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
&__body-actions-item {
|
|
1602
|
+
@apply tw-text-[color:var(--table-actions-icon-color)] tw-cursor-pointer tw-w-6 tw-h-6 tw-flex tw-items-center tw-justify-center hover:tw-text-[color:var(--table-actions-icon-color-hover)];
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
&__body-actions-tooltip {
|
|
1606
|
+
@apply tw-not-italic tw-font-normal tw-text-base tw-leading-5 tw-text-[--table-actions-tooltip-text];
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
&__body-cell {
|
|
1610
|
+
@apply tw-box-border tw-overflow-hidden tw-px-3 tw-flex-1 tw-flex tw-items-center tw-relative;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
&__body-cell__content {
|
|
1614
|
+
@apply tw-truncate tw-w-full tw-text-[color:var(--table-text-color)] tw-text-sm;
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
&__body-empty {
|
|
1618
|
+
@apply tw-overflow-auto tw-flex tw-flex-col tw-flex-auto;
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
&__footer {
|
|
1622
|
+
@apply tw-bg-[--table-footer-bg] tw-border-t tw-border-solid tw-border-[--table-footer-border-color] tw-flex-shrink-0 tw-flex tw-items-center tw-justify-between;
|
|
1623
|
+
}
|
|
1624
|
+
|
|
1625
|
+
&__footer--mobile {
|
|
1626
|
+
@apply tw-py-2 tw-px-4;
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
&__footer--desktop {
|
|
1630
|
+
@apply tw-p-4;
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
/* Drag row styles */
|
|
1415
1634
|
&__drag-row-bottom {
|
|
1416
|
-
|
|
1635
|
+
box-shadow: var(--table-row-drag-shadow);
|
|
1417
1636
|
}
|
|
1418
1637
|
|
|
1419
1638
|
&__drag-row-top {
|
|
1420
|
-
|
|
1639
|
+
box-shadow: var(--table-row-drag-shadow);
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
/* Tooltip arrow styles */
|
|
1643
|
+
&__body-tooltip-arrow,
|
|
1644
|
+
&__body-tooltip-arrow:before {
|
|
1645
|
+
@apply tw-absolute tw-w-2 tw-h-2 tw-bg-inherit;
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
&__body-tooltip-arrow {
|
|
1649
|
+
@apply tw-invisible before:tw-visible before:tw-content-[""] before:tw-rotate-45;
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1652
|
+
&__body-tooltip[data-popper-placement^="top"] > .vc-table__body-tooltip-arrow {
|
|
1653
|
+
@apply tw-bottom-[-1px];
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
&__body-tooltip[data-popper-placement^="bottom"] > .vc-table__body-tooltip-arrow {
|
|
1657
|
+
@apply tw-top-[-1px];
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
/* Mobile border color */
|
|
1661
|
+
&__mobile-items-renderer {
|
|
1662
|
+
@apply tw-border-b tw-border-solid tw-border-[--table-mobile-border-color] tw-p-3 tw-gap-2 tw-flex tw-flex-wrap;
|
|
1421
1663
|
}
|
|
1422
1664
|
}
|
|
1423
1665
|
</style>
|