@vc-shell/framework 1.0.57 → 1.0.60
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/core/composables/index.ts +0 -1
- package/core/composables/useNotifications/index.ts +2 -2
- package/core/composables/usePermissions/index.ts +1 -1
- package/core/composables/useSettings/index.ts +2 -2
- package/core/composables/useUser/index.ts +2 -2
- package/core/plugins/validation/rules.ts +67 -24
- package/core/types/index.ts +19 -2
- package/dist/framework.mjs +2816 -5023
- package/dist/index.css +1 -1
- package/dist/types/core/composables/index.d.ts +0 -1
- package/dist/types/core/composables/index.d.ts.map +1 -1
- package/dist/types/core/composables/useNotifications/index.d.ts +1 -1
- package/dist/types/core/composables/useNotifications/index.d.ts.map +1 -1
- package/dist/types/core/composables/useUser/index.d.ts +2 -2
- package/dist/types/core/composables/useUser/index.d.ts.map +1 -1
- package/dist/types/core/plugins/validation/rules.d.ts +8 -30
- package/dist/types/core/plugins/validation/rules.d.ts.map +1 -1
- package/dist/types/core/types/index.d.ts +17 -2
- package/dist/types/core/types/index.d.ts.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/shared/components/app-switcher/components/index.d.ts.map +1 -0
- package/dist/types/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/index.d.ts +5 -5
- package/dist/types/shared/components/app-switcher/components/vc-app-switcher/index.d.ts.map +1 -0
- package/dist/types/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/vc-app-switcher.vue.d.ts +1 -1
- package/dist/types/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +1 -0
- package/dist/types/shared/components/app-switcher/composables/index.d.ts.map +1 -0
- package/dist/types/shared/{app-switcher → components/app-switcher}/composables/useAppSwitcher/index.d.ts +1 -1
- package/dist/types/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +1 -0
- package/dist/types/shared/components/app-switcher/index.d.ts.map +1 -0
- package/dist/types/shared/components/blade-navigation/components/index.d.ts.map +1 -0
- package/dist/types/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts.map +1 -0
- package/dist/types/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts +1 -1
- package/dist/types/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -0
- package/dist/types/shared/components/blade-navigation/composables/index.d.ts.map +1 -0
- package/dist/types/shared/{blade-navigation → components/blade-navigation}/composables/useBladeNavigation/index.d.ts +1 -1
- package/dist/types/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -0
- package/dist/types/shared/components/blade-navigation/index.d.ts.map +1 -0
- package/dist/types/shared/{blade-navigation → components/blade-navigation}/types/index.d.ts +1 -1
- package/dist/types/shared/components/blade-navigation/types/index.d.ts.map +1 -0
- package/dist/types/shared/index.d.ts +4 -3
- package/dist/types/shared/index.d.ts.map +1 -1
- package/dist/types/shared/{assets → modules/assets}/components/assets-details/assets-details.vue.d.ts +5 -13
- package/dist/types/shared/modules/assets/components/assets-details/assets-details.vue.d.ts.map +1 -0
- package/dist/types/shared/{assets → modules/assets}/components/assets-details/index.d.ts +8 -7
- package/dist/types/shared/modules/assets/components/assets-details/index.d.ts.map +1 -0
- package/dist/types/shared/modules/assets/components/index.d.ts.map +1 -0
- package/dist/types/shared/modules/assets/index.d.ts.map +1 -0
- package/dist/types/shared/modules/assets/locales/index.d.ts +3 -0
- package/dist/types/shared/modules/assets/locales/index.d.ts.map +1 -0
- package/dist/types/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +58 -0
- package/dist/types/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -0
- package/dist/types/shared/modules/assets-manager/components/assets-manager/index.d.ts +59 -0
- package/dist/types/shared/modules/assets-manager/components/assets-manager/index.d.ts.map +1 -0
- package/dist/types/shared/modules/assets-manager/components/index.d.ts +2 -0
- package/dist/types/shared/modules/assets-manager/components/index.d.ts.map +1 -0
- package/dist/types/shared/modules/assets-manager/index.d.ts +12 -0
- package/dist/types/shared/modules/assets-manager/index.d.ts.map +1 -0
- package/dist/types/shared/modules/assets-manager/locales/index.d.ts.map +1 -0
- package/dist/types/shared/utilities/assets.d.ts +5 -0
- package/dist/types/shared/utilities/assets.d.ts.map +1 -0
- package/dist/types/ui/components/atoms/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-file-upload/index.d.ts +12 -12
- package/dist/types/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-input/index.d.ts +0 -4
- package/dist/types/ui/components/molecules/vc-input/index.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-input/vc-input.vue.d.ts +1 -1
- package/dist/types/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-select/index.d.ts +24 -0
- package/dist/types/ui/components/molecules/vc-select/index.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-select/vc-select.vue.d.ts +20 -0
- package/dist/types/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-textarea/index.d.ts +0 -4
- package/dist/types/ui/components/molecules/vc-textarea/index.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-textarea/vc-textarea.stories.d.ts +0 -4
- package/dist/types/ui/components/molecules/vc-textarea/vc-textarea.stories.d.ts.map +1 -1
- package/dist/types/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +1 -1
- package/dist/types/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts +2 -19
- package/dist/types/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-dynamic-property/index.d.ts +12 -0
- package/dist/types/ui/components/organisms/vc-dynamic-property/index.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts +7 -0
- package/dist/types/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -20
- package/dist/types/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-gallery/index.d.ts +28 -31
- package/dist/types/ui/components/organisms/vc-gallery/index.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +2 -6
- package/dist/types/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-table/index.d.ts +49 -37
- package/dist/types/ui/components/organisms/vc-table/index.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-table/vc-table.stories.d.ts +49 -37
- package/dist/types/ui/components/organisms/vc-table/vc-table.stories.d.ts.map +1 -1
- package/dist/types/ui/components/organisms/vc-table/vc-table.vue.d.ts +12 -7
- package/dist/types/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
- package/package.json +5 -6
- package/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/vc-app-switcher.vue +1 -1
- package/shared/{app-switcher → components/app-switcher}/composables/useAppSwitcher/index.ts +2 -2
- package/shared/{app-switcher → components/app-switcher}/index.ts +1 -1
- package/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/vc-blade-navigation.vue +2 -2
- package/shared/{blade-navigation → components/blade-navigation}/composables/useBladeNavigation/index.ts +6 -5
- package/shared/{blade-navigation → components/blade-navigation}/index.ts +1 -1
- package/shared/{blade-navigation → components/blade-navigation}/types/index.ts +1 -1
- package/shared/index.ts +10 -7
- package/shared/modules/assets/components/assets-details/assets-details.vue +204 -0
- package/shared/{assets → modules/assets}/index.ts +1 -1
- package/shared/{assets → modules/assets}/locales/en.json +7 -5
- package/shared/modules/assets/locales/index.ts +2 -0
- package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +389 -0
- package/shared/modules/assets-manager/components/assets-manager/index.ts +3 -0
- package/shared/modules/assets-manager/components/index.ts +1 -0
- package/shared/modules/assets-manager/index.ts +14 -0
- package/shared/modules/assets-manager/locales/en.json +28 -0
- package/shared/utilities/assets.ts +40 -0
- package/tailwind.config.js +0 -2
- package/ui/components/atoms/vc-button/vc-button.vue +0 -1
- package/ui/components/atoms/vc-checkbox/vc-checkbox.vue +1 -11
- package/ui/components/molecules/vc-editor/vc-editor.vue +21 -0
- package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +1 -0
- package/ui/components/molecules/vc-input/vc-input.vue +1 -1
- package/ui/components/molecules/vc-select/vc-select.vue +40 -9
- package/ui/components/molecules/vc-textarea/vc-textarea.vue +1 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +3 -2
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +3 -6
- package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +2 -6
- package/ui/components/organisms/vc-dynamic-property/index.ts +0 -1
- package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +18 -1
- package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue +5 -11
- package/ui/components/organisms/vc-gallery/vc-gallery.vue +164 -49
- package/ui/components/organisms/vc-table/vc-table.vue +189 -144
- package/core/composables/useAutosave/index.ts +0 -55
- package/dist/types/core/composables/useAutosave/index.d.ts +0 -9
- package/dist/types/core/composables/useAutosave/index.d.ts.map +0 -1
- package/dist/types/shared/app-switcher/components/index.d.ts.map +0 -1
- package/dist/types/shared/app-switcher/components/vc-app-switcher/index.d.ts.map +0 -1
- package/dist/types/shared/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +0 -1
- package/dist/types/shared/app-switcher/composables/index.d.ts.map +0 -1
- package/dist/types/shared/app-switcher/composables/useAppSwitcher/index.d.ts.map +0 -1
- package/dist/types/shared/app-switcher/index.d.ts.map +0 -1
- package/dist/types/shared/assets/components/assets-details/assets-details.vue.d.ts.map +0 -1
- package/dist/types/shared/assets/components/assets-details/index.d.ts.map +0 -1
- package/dist/types/shared/assets/components/index.d.ts.map +0 -1
- package/dist/types/shared/assets/index.d.ts.map +0 -1
- package/dist/types/shared/assets/locales/index.d.ts.map +0 -1
- package/dist/types/shared/blade-navigation/components/index.d.ts.map +0 -1
- package/dist/types/shared/blade-navigation/components/vc-blade-navigation/index.d.ts.map +0 -1
- package/dist/types/shared/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +0 -1
- package/dist/types/shared/blade-navigation/composables/index.d.ts.map +0 -1
- package/dist/types/shared/blade-navigation/composables/useBladeNavigation/index.d.ts.map +0 -1
- package/dist/types/shared/blade-navigation/index.d.ts.map +0 -1
- package/dist/types/shared/blade-navigation/types/index.d.ts.map +0 -1
- package/shared/assets/components/assets-details/assets-details.vue +0 -116
- /package/dist/types/shared/{app-switcher → components/app-switcher}/components/index.d.ts +0 -0
- /package/dist/types/shared/{app-switcher → components/app-switcher}/composables/index.d.ts +0 -0
- /package/dist/types/shared/{app-switcher → components/app-switcher}/index.d.ts +0 -0
- /package/dist/types/shared/{blade-navigation → components/blade-navigation}/components/index.d.ts +0 -0
- /package/dist/types/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/index.d.ts +0 -0
- /package/dist/types/shared/{blade-navigation → components/blade-navigation}/composables/index.d.ts +0 -0
- /package/dist/types/shared/{blade-navigation → components/blade-navigation}/index.d.ts +0 -0
- /package/dist/types/shared/{assets → modules/assets}/components/index.d.ts +0 -0
- /package/dist/types/shared/{assets → modules/assets}/index.d.ts +0 -0
- /package/dist/types/shared/{assets → modules/assets-manager}/locales/index.d.ts +0 -0
- /package/shared/{app-switcher → components/app-switcher}/components/index.ts +0 -0
- /package/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/index.ts +0 -0
- /package/shared/{app-switcher → components/app-switcher}/composables/index.ts +0 -0
- /package/shared/{blade-navigation → components/blade-navigation}/components/index.ts +0 -0
- /package/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/index.ts +0 -0
- /package/shared/{blade-navigation → components/blade-navigation}/composables/index.ts +0 -0
- /package/shared/{assets → modules/assets}/components/assets-details/index.ts +0 -0
- /package/shared/{assets → modules/assets}/components/index.ts +0 -0
- /package/shared/{assets → modules/assets-manager}/locales/index.ts +0 -0
|
@@ -91,7 +91,8 @@
|
|
|
91
91
|
<!-- Desktop table view -->
|
|
92
92
|
<table
|
|
93
93
|
v-else
|
|
94
|
-
|
|
94
|
+
ref="tableRef"
|
|
95
|
+
class="[border-spacing:0] tw-border-collapse tw-relative tw-pt-[43px] tw-table-fixed tw-box-border tw-w-full"
|
|
95
96
|
:class="{
|
|
96
97
|
'vc-table_empty': !items || !items.length,
|
|
97
98
|
'vc-table_multiselect': multiselect,
|
|
@@ -99,17 +100,16 @@
|
|
|
99
100
|
>
|
|
100
101
|
<thead
|
|
101
102
|
v-if="filteredCols"
|
|
102
|
-
class="vc-table__header"
|
|
103
|
+
class="vc-table__header tw-relative"
|
|
103
104
|
>
|
|
104
105
|
<tr class="vc-table__header-row">
|
|
105
106
|
<th
|
|
106
107
|
v-if="multiselect"
|
|
107
|
-
class="tw-h-[42px] tw-w-[50px] tw-max-w-[
|
|
108
|
+
class="tw-h-[42px] tw-w-[50px] tw-max-w-[28px] tw-min-w-[28px] tw-bg-[#f9f9f9] !tw-border-0 tw-shadow-[inset_0px_1px_0px_#eaedf3,_inset_0px_-1px_0px_#eaedf3] tw-box-border tw-sticky tw-top-0 tw-select-none tw-overflow-hidden tw-z-[1]"
|
|
108
109
|
>
|
|
109
110
|
<div class="tw-flex tw-justify-center tw-items-center">
|
|
110
111
|
<VcCheckbox
|
|
111
|
-
|
|
112
|
-
@update:modelValue="processHeaderCheckbox"
|
|
112
|
+
v-model="headerCheckbox"
|
|
113
113
|
@click.stop
|
|
114
114
|
></VcCheckbox>
|
|
115
115
|
</div>
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
</div>
|
|
119
119
|
</th>
|
|
120
120
|
<th
|
|
121
|
-
class="tw-h-[42px] tw-w-[
|
|
121
|
+
class="tw-h-[42px] tw-w-[21px] tw-max-w-[21px] tw-min-w-[21px] tw-bg-[#f9f9f9] tw-m-w-[70px] !tw-border-0 tw-shadow-[inset_0px_1px_0px_#eaedf3,_inset_0px_-1px_0px_#eaedf3] tw-box-border tw-sticky tw-top-0 tw-select-none tw-z-[1]"
|
|
122
122
|
v-if="itemActionBuilder"
|
|
123
123
|
>
|
|
124
124
|
<div class="tw-w-3 tw-top-0 tw-bottom-0 tw-absolute tw-right-0 tw-flex tw-justify-end">
|
|
@@ -194,7 +194,11 @@
|
|
|
194
194
|
</tr>
|
|
195
195
|
<div
|
|
196
196
|
ref="resizer"
|
|
197
|
-
class="tw-w-
|
|
197
|
+
class="tw-w-px tw-absolute tw-z-10 tw-hidden tw-h-full tw-bg-[#e5e7eb] tw-cursor-col-resize"
|
|
198
|
+
></div>
|
|
199
|
+
<div
|
|
200
|
+
ref="reorderRef"
|
|
201
|
+
class="tw-w-0.5 tw-bg-[#41afe6] tw-h-full tw-absolute tw-top-0 tw-bottom-0 tw-z-[2] tw-hidden"
|
|
198
202
|
></div>
|
|
199
203
|
</thead>
|
|
200
204
|
|
|
@@ -203,11 +207,11 @@
|
|
|
203
207
|
class="vc-table__body"
|
|
204
208
|
>
|
|
205
209
|
<tr
|
|
206
|
-
v-for="(item,
|
|
207
|
-
:key="(typeof item === 'object' && 'id' in item && item.id) ||
|
|
210
|
+
v-for="(item, itemIndex) in items"
|
|
211
|
+
:key="(typeof item === 'object' && 'id' in item && item.id) || itemIndex"
|
|
208
212
|
class="vc-table__body-row tw-h-[60px] tw-bg-white hover:tw-bg-[#dfeef9] tw-cursor-pointer"
|
|
209
213
|
:class="{
|
|
210
|
-
'tw-bg-[#
|
|
214
|
+
'!tw-bg-[#F9F9F9]': itemIndex % 2 === 1,
|
|
211
215
|
'!tw-bg-[#dfeef9] hover:tw-bg-[#dfeef9]':
|
|
212
216
|
typeof item === 'object' && 'id' in item && item.id ? selectedItemId === item.id : false,
|
|
213
217
|
}"
|
|
@@ -222,27 +226,31 @@
|
|
|
222
226
|
>
|
|
223
227
|
<td
|
|
224
228
|
v-if="multiselect && typeof item === 'object'"
|
|
225
|
-
class="tw-w-[50px] tw-max-w-[
|
|
229
|
+
class="tw-w-[50px] tw-max-w-[28px] tw-min-w-[28px] tw-relative"
|
|
230
|
+
@click.stop
|
|
226
231
|
>
|
|
227
232
|
<div class="tw-flex tw-justify-center tw-items-center">
|
|
228
233
|
<VcCheckbox
|
|
229
|
-
:
|
|
230
|
-
|
|
231
|
-
@click.stop
|
|
234
|
+
@update:model-value="rowCheckbox(item)"
|
|
235
|
+
:model-value="isSelected(item)"
|
|
232
236
|
></VcCheckbox>
|
|
233
237
|
</div>
|
|
238
|
+
<div class="tw-w-px tw-top-0 tw-bottom-0 tw-absolute tw-right-0 tw-bg-[#e5e7eb]"></div>
|
|
234
239
|
</td>
|
|
235
240
|
<td
|
|
236
|
-
class="tw-box-border tw-overflow-visible tw-
|
|
241
|
+
class="tw-box-border tw-overflow-visible tw-w-[21px] tw-max-w-[21px] tw-min-w-[21px] tw-relative"
|
|
237
242
|
v-if="itemActionBuilder && typeof item === 'object'"
|
|
243
|
+
@click.stop
|
|
238
244
|
>
|
|
239
|
-
<div
|
|
245
|
+
<div
|
|
246
|
+
class="vc-table__body-actions-container tw-relative tw-flex tw-justify-center tw-items-center tw-group"
|
|
247
|
+
>
|
|
240
248
|
<button
|
|
241
|
-
class="tw-text-[#41afe6] tw-cursor-pointer tw-border-none tw-bg-transparent disabled:tw-text-[gray] tw-w-
|
|
249
|
+
class="tw-text-[#41afe6] tw-cursor-pointer tw-border-none tw-bg-transparent disabled:tw-text-[gray] tw-w-full group-hover:tw-text-[#319ed4]"
|
|
242
250
|
@click.stop="showActions(item, item.id)"
|
|
243
251
|
:ref="(el: Element) => setActionToggleRefs(el, item.id)"
|
|
244
252
|
aria-describedby="tooltip"
|
|
245
|
-
:disabled="!(
|
|
253
|
+
:disabled="!(itemActions[itemIndex] && itemActions[itemIndex].length)"
|
|
246
254
|
>
|
|
247
255
|
<VcIcon
|
|
248
256
|
icon="fas fa-ellipsis-v"
|
|
@@ -257,10 +265,10 @@
|
|
|
257
265
|
role="tooltip"
|
|
258
266
|
>
|
|
259
267
|
<div
|
|
260
|
-
class="tw-flex tw-items-
|
|
268
|
+
class="tw-flex tw-items-start tw-flex-col tw-text-[#3f3f3f] tw-font-normal not-italic tw-text-base tw-leading-[20px] tw-gap-[25px]"
|
|
261
269
|
>
|
|
262
270
|
<div
|
|
263
|
-
v-for="(itemAction, i) in
|
|
271
|
+
v-for="(itemAction, i) in itemActions[itemIndex]"
|
|
264
272
|
:key="i"
|
|
265
273
|
:class="[
|
|
266
274
|
'tw-flex tw-flex-row tw-items-center tw-text-[#319ed4] tw-cursor-pointer',
|
|
@@ -285,11 +293,12 @@
|
|
|
285
293
|
></div>
|
|
286
294
|
</div>
|
|
287
295
|
</div>
|
|
296
|
+
<div class="tw-w-px tw-top-0 tw-bottom-0 tw-absolute tw-right-0 tw-bg-[#e5e7eb]"></div>
|
|
288
297
|
</td>
|
|
289
298
|
<td
|
|
290
299
|
v-for="cell in filteredCols"
|
|
291
|
-
:key="`${(typeof item === 'object' && 'id' in item && item.id) ||
|
|
292
|
-
class="tw-box-border tw-overflow-hidden tw-px-3"
|
|
300
|
+
:key="`${(typeof item === 'object' && 'id' in item && item.id) || itemIndex}_${cell.id}`"
|
|
301
|
+
class="tw-box-border tw-overflow-hidden tw-px-3 tw-truncate"
|
|
293
302
|
:class="cell.class"
|
|
294
303
|
:style="{ maxWidth: cell.width, width: cell.width }"
|
|
295
304
|
>
|
|
@@ -387,7 +396,7 @@
|
|
|
387
396
|
</template>
|
|
388
397
|
|
|
389
398
|
<script lang="ts" setup>
|
|
390
|
-
import { computed, nextTick, ref, watch, onBeforeUpdate, onBeforeUnmount, Ref } from "vue";
|
|
399
|
+
import { computed, nextTick, ref, watch, onBeforeUpdate, onBeforeUnmount, Ref, onUpdated, onBeforeMount } from "vue";
|
|
391
400
|
import VcTableCounter from "./_internal/vc-table-counter/vc-table-counter.vue";
|
|
392
401
|
import VcTableFilter from "./_internal/vc-table-filter/vc-table-filter.vue";
|
|
393
402
|
import VcTableMobileItem from "./_internal/vc-table-mobile-item/vc-table-mobile-item.vue";
|
|
@@ -395,7 +404,7 @@ import VcTableCell from "./_internal/vc-table-cell/vc-table-cell.vue";
|
|
|
395
404
|
import VcTableColumnSwitcher from "./_internal/vc-table-column-switcher/vc-table-column-switcher.vue";
|
|
396
405
|
import { createPopper, Instance } from "@popperjs/core";
|
|
397
406
|
import { IActionBuilderResult, ITableColumns } from "./../../../../core/types";
|
|
398
|
-
import { useLocalStorage,
|
|
407
|
+
import { useLocalStorage, useCurrentElement } from "@vueuse/core";
|
|
399
408
|
import VcContainer from "./../../atoms/vc-container/vc-container.vue";
|
|
400
409
|
|
|
401
410
|
export interface StatusImage {
|
|
@@ -420,6 +429,11 @@ export interface Props {
|
|
|
420
429
|
itemActionBuilder?: (item: TableItem) => IActionBuilderResult[];
|
|
421
430
|
sort?: string;
|
|
422
431
|
multiselect?: boolean;
|
|
432
|
+
/**
|
|
433
|
+
* Emit whole item instead of {id: boolean} while prop multiselect = true
|
|
434
|
+
* @default false
|
|
435
|
+
*/
|
|
436
|
+
multiselectEmitItem?: boolean;
|
|
423
437
|
expanded?: boolean;
|
|
424
438
|
totalLabel?: string;
|
|
425
439
|
totalCount?: number;
|
|
@@ -443,10 +457,10 @@ export interface Props {
|
|
|
443
457
|
|
|
444
458
|
export interface Emits {
|
|
445
459
|
(event: "paginationClick", page: number): void;
|
|
446
|
-
(event: "selectionChanged", values:
|
|
460
|
+
(event: "selectionChanged", values: TableItemType[]): void;
|
|
447
461
|
(event: "search:change", value: string): void;
|
|
448
462
|
(event: "headerClick", value: Record<string, unknown>): void;
|
|
449
|
-
(event: "itemClick", item:
|
|
463
|
+
(event: "itemClick", item: TableItemType): void;
|
|
450
464
|
(event: "scroll:ptr"): void;
|
|
451
465
|
(event: "row:reorder", args: { dragIndex: number; dropIndex: number; value: TableItemType[] }): void;
|
|
452
466
|
}
|
|
@@ -479,26 +493,35 @@ interface ITableItemRef {
|
|
|
479
493
|
|
|
480
494
|
const emit = defineEmits<Emits>();
|
|
481
495
|
|
|
482
|
-
|
|
496
|
+
// template refs
|
|
497
|
+
const tooltipRefs = ref<ITableItemRef[]>([]);
|
|
498
|
+
const reorderRef = ref<HTMLElement | null>();
|
|
499
|
+
const tableRef = ref<HTMLElement | null>();
|
|
500
|
+
|
|
501
|
+
// event listeners
|
|
502
|
+
let columnResizeListener = null;
|
|
503
|
+
let columnResizeEndListener = null;
|
|
504
|
+
|
|
505
|
+
const selection = ref<TableItemType[]>([]);
|
|
506
|
+
|
|
483
507
|
const selectedRow = ref<string>();
|
|
484
508
|
const tooltip = ref<Instance>();
|
|
485
509
|
const scrollContainer = ref<typeof VcContainer>();
|
|
486
510
|
const actionToggleRefs = ref<ITableItemRef[]>([]);
|
|
487
|
-
|
|
511
|
+
|
|
512
|
+
const itemActions = ref<IActionBuilderResult[][]>([]);
|
|
488
513
|
const mobileSwipeItem = ref<string>();
|
|
489
514
|
const columnResizing = ref(false);
|
|
490
515
|
const resizeColumnElement = ref<ITableColumns>();
|
|
491
516
|
const nextColumn = ref<ITableColumns>();
|
|
492
517
|
const lastResize = ref<number>();
|
|
493
518
|
const table = useCurrentElement();
|
|
494
|
-
const columnResizeListener = ref(null);
|
|
495
|
-
const columnResizeEndListener = ref(null);
|
|
496
519
|
const resizer = ref();
|
|
497
|
-
const state = useLocalStorage(props.stateKey, []);
|
|
520
|
+
const state = useLocalStorage("VC_TABLE_STATE_" + props.stateKey.toUpperCase(), []);
|
|
498
521
|
const defaultColumns: Ref<ITableColumns[]> = ref([]);
|
|
499
522
|
const draggedColumn = ref();
|
|
523
|
+
const draggedElement = ref<HTMLElement>();
|
|
500
524
|
const dropPosition = ref();
|
|
501
|
-
const calculatedItems = computedAsync(async () => await populateWithActions(props.items), []);
|
|
502
525
|
|
|
503
526
|
// row reordering variables
|
|
504
527
|
const draggedRow = ref<TableItemType>();
|
|
@@ -506,13 +529,25 @@ const rowDragged = ref(false);
|
|
|
506
529
|
const droppedRowIndex = ref<number>();
|
|
507
530
|
const draggedRowIndex = ref<number>();
|
|
508
531
|
|
|
532
|
+
onBeforeMount(() => {
|
|
533
|
+
if (isStateful()) {
|
|
534
|
+
restoreState();
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
|
|
538
|
+
onBeforeUnmount(() => {
|
|
539
|
+
unbindColumnResizeEvents();
|
|
540
|
+
});
|
|
541
|
+
|
|
509
542
|
onBeforeUpdate(() => {
|
|
510
543
|
actionToggleRefs.value = [];
|
|
511
544
|
tooltipRefs.value = [];
|
|
512
545
|
});
|
|
513
546
|
|
|
514
|
-
|
|
515
|
-
|
|
547
|
+
onUpdated(() => {
|
|
548
|
+
if (isStateful()) {
|
|
549
|
+
saveState();
|
|
550
|
+
}
|
|
516
551
|
});
|
|
517
552
|
|
|
518
553
|
const sortDirection = computed(() => {
|
|
@@ -540,12 +575,19 @@ const tableAlignment = {
|
|
|
540
575
|
evenly: "tw-justify-evenly",
|
|
541
576
|
};
|
|
542
577
|
|
|
543
|
-
const headerCheckbox = computed(
|
|
544
|
-
|
|
578
|
+
const headerCheckbox = computed({
|
|
579
|
+
get() {
|
|
580
|
+
return props.items ? selection.value.length === props.items.length : false;
|
|
581
|
+
},
|
|
582
|
+
set(checked: boolean) {
|
|
583
|
+
let _selected = [];
|
|
584
|
+
|
|
585
|
+
if (checked) {
|
|
586
|
+
_selected = props.items;
|
|
587
|
+
}
|
|
545
588
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
} else return false;
|
|
589
|
+
selection.value = _selected;
|
|
590
|
+
},
|
|
549
591
|
});
|
|
550
592
|
|
|
551
593
|
const filteredCols = computed(() => {
|
|
@@ -558,25 +600,27 @@ const filteredCols = computed(() => {
|
|
|
558
600
|
|
|
559
601
|
watch(
|
|
560
602
|
() => props.items,
|
|
561
|
-
|
|
562
|
-
checkboxes.value = {};
|
|
563
|
-
value?.forEach((item) => {
|
|
564
|
-
if (typeof item === "object" && "id" in item) {
|
|
565
|
-
checkboxes.value[item.id] = false;
|
|
566
|
-
}
|
|
567
|
-
});
|
|
603
|
+
(newVal) => {
|
|
568
604
|
scrollContainer.value?.scrollTop();
|
|
605
|
+
|
|
606
|
+
calculateActions(newVal);
|
|
607
|
+
|
|
608
|
+
selection.value = selection.value.filter((selection) => newVal.includes(selection));
|
|
569
609
|
},
|
|
570
610
|
{ deep: true, immediate: true }
|
|
571
611
|
);
|
|
572
612
|
|
|
573
613
|
watch(
|
|
574
|
-
() =>
|
|
614
|
+
() => selection.value,
|
|
575
615
|
(newVal) => {
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
616
|
+
emit("selectionChanged", newVal);
|
|
617
|
+
},
|
|
618
|
+
{ deep: true }
|
|
619
|
+
);
|
|
579
620
|
|
|
621
|
+
watch(
|
|
622
|
+
() => props.columns,
|
|
623
|
+
(newVal) => {
|
|
580
624
|
if (!defaultColumns.value.length) {
|
|
581
625
|
defaultColumns.value = newVal;
|
|
582
626
|
}
|
|
@@ -584,27 +628,17 @@ watch(
|
|
|
584
628
|
{ deep: true, immediate: true }
|
|
585
629
|
);
|
|
586
630
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
if (value && typeof value === "object") {
|
|
591
|
-
if (props.itemActionBuilder && typeof props.itemActionBuilder === "function") {
|
|
592
|
-
for (let index = 0; index < value.length; index++) {
|
|
593
|
-
const element = value[index] as Record<string, unknown>;
|
|
594
|
-
|
|
595
|
-
if (!("actions" in element && element.actions))
|
|
596
|
-
populatedItems.push({
|
|
597
|
-
actions: await calculateActions(element),
|
|
598
|
-
...element,
|
|
599
|
-
});
|
|
600
|
-
}
|
|
631
|
+
function isSelected(item: TableItemType) {
|
|
632
|
+
return selection.value.indexOf(item) > -1;
|
|
633
|
+
}
|
|
601
634
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
635
|
+
function rowCheckbox(item: TableItemType) {
|
|
636
|
+
const clear = item;
|
|
637
|
+
const index = selection.value.indexOf(clear);
|
|
638
|
+
if (index > -1) {
|
|
639
|
+
selection.value = selection.value.filter((x) => x !== clear);
|
|
606
640
|
} else {
|
|
607
|
-
|
|
641
|
+
selection.value.push(clear);
|
|
608
642
|
}
|
|
609
643
|
}
|
|
610
644
|
|
|
@@ -626,17 +660,6 @@ function setActionToggleRefs(el: Element, id: string) {
|
|
|
626
660
|
}
|
|
627
661
|
}
|
|
628
662
|
|
|
629
|
-
function processHeaderCheckbox() {
|
|
630
|
-
const currentState = Object.values(checkboxes.value).every((value) => value);
|
|
631
|
-
Object.keys(checkboxes.value).forEach((key) => (checkboxes.value[key] = !currentState));
|
|
632
|
-
emit("selectionChanged", checkboxes.value);
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
function processCheckbox(id: string, state: boolean) {
|
|
636
|
-
checkboxes.value[id] = state;
|
|
637
|
-
emit("selectionChanged", checkboxes.value);
|
|
638
|
-
}
|
|
639
|
-
|
|
640
663
|
function showActions(item: TableItem, index: string) {
|
|
641
664
|
selectedRow.value = item.id;
|
|
642
665
|
|
|
@@ -661,9 +684,16 @@ function showActions(item: TableItem, index: string) {
|
|
|
661
684
|
}
|
|
662
685
|
}
|
|
663
686
|
|
|
664
|
-
async function calculateActions(
|
|
687
|
+
async function calculateActions(items: TableItemType[]) {
|
|
665
688
|
if (typeof props.itemActionBuilder === "function") {
|
|
666
|
-
|
|
689
|
+
let populatedItems = [];
|
|
690
|
+
for (let index = 0; index < items.length; index++) {
|
|
691
|
+
if (typeof items[index] === "object") {
|
|
692
|
+
const elementWithActions = await props.itemActionBuilder(items[index] as TableItem);
|
|
693
|
+
populatedItems.push(elementWithActions);
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
itemActions.value = populatedItems;
|
|
667
697
|
}
|
|
668
698
|
}
|
|
669
699
|
|
|
@@ -690,15 +720,15 @@ function handleMouseDown(e: MouseEvent, item: ITableColumns) {
|
|
|
690
720
|
}
|
|
691
721
|
|
|
692
722
|
function bindColumnResizeEvents() {
|
|
693
|
-
if (!columnResizeListener
|
|
694
|
-
columnResizeListener
|
|
723
|
+
if (!columnResizeListener) {
|
|
724
|
+
columnResizeListener = document.addEventListener("mousemove", (event: MouseEvent) => {
|
|
695
725
|
if (columnResizing.value) {
|
|
696
726
|
onColumnResize(event);
|
|
697
727
|
}
|
|
698
728
|
});
|
|
699
729
|
}
|
|
700
|
-
if (!columnResizeEndListener
|
|
701
|
-
columnResizeEndListener
|
|
730
|
+
if (!columnResizeEndListener) {
|
|
731
|
+
columnResizeEndListener = document.addEventListener("mouseup", () => {
|
|
702
732
|
if (columnResizing.value) {
|
|
703
733
|
columnResizing.value = false;
|
|
704
734
|
onColumnResizeEnd();
|
|
@@ -708,13 +738,13 @@ function bindColumnResizeEvents() {
|
|
|
708
738
|
}
|
|
709
739
|
|
|
710
740
|
function unbindColumnResizeEvents() {
|
|
711
|
-
if (columnResizeListener
|
|
712
|
-
document.removeEventListener("document", columnResizeListener
|
|
713
|
-
columnResizeListener
|
|
741
|
+
if (columnResizeListener) {
|
|
742
|
+
document.removeEventListener("document", columnResizeListener);
|
|
743
|
+
columnResizeListener = null;
|
|
714
744
|
}
|
|
715
|
-
if (columnResizeEndListener
|
|
716
|
-
document.removeEventListener("document", columnResizeEndListener
|
|
717
|
-
columnResizeEndListener
|
|
745
|
+
if (columnResizeEndListener) {
|
|
746
|
+
document.removeEventListener("document", columnResizeEndListener);
|
|
747
|
+
columnResizeEndListener = null;
|
|
718
748
|
}
|
|
719
749
|
}
|
|
720
750
|
|
|
@@ -784,6 +814,7 @@ function onColumnHeaderDragStart(event: DragEvent, item: ITableColumns) {
|
|
|
784
814
|
}
|
|
785
815
|
|
|
786
816
|
draggedColumn.value = item;
|
|
817
|
+
draggedElement.value = event.target as HTMLElement;
|
|
787
818
|
event.dataTransfer.setData("text", "reorder");
|
|
788
819
|
}
|
|
789
820
|
|
|
@@ -807,16 +838,25 @@ function onColumnHeaderDragOver(event: DragEvent) {
|
|
|
807
838
|
|
|
808
839
|
if (props.reorderableColumns && draggedColumn.value && dropHeader) {
|
|
809
840
|
event.preventDefault();
|
|
841
|
+
let containerOffset = getOffset(table.value as HTMLElement);
|
|
810
842
|
let dropHeaderOffset = getOffset(dropHeader);
|
|
811
843
|
|
|
812
|
-
if (
|
|
844
|
+
if (draggedElement.value !== dropHeader) {
|
|
845
|
+
let targetLeft = dropHeaderOffset.left - containerOffset.left;
|
|
813
846
|
let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;
|
|
814
847
|
|
|
848
|
+
reorderRef.value.style.top = dropHeaderOffset.top - getOffset(tableRef.value).top + "px";
|
|
849
|
+
|
|
815
850
|
if (event.pageX > columnCenter) {
|
|
851
|
+
reorderRef.value.style.left = targetLeft + dropHeader.offsetWidth + "px";
|
|
852
|
+
|
|
816
853
|
dropPosition.value = 1;
|
|
817
854
|
} else {
|
|
855
|
+
reorderRef.value.style.left = targetLeft + "px";
|
|
818
856
|
dropPosition.value = -1;
|
|
819
857
|
}
|
|
858
|
+
|
|
859
|
+
reorderRef.value.style.display = "block";
|
|
820
860
|
}
|
|
821
861
|
}
|
|
822
862
|
}
|
|
@@ -824,6 +864,8 @@ function onColumnHeaderDragOver(event: DragEvent) {
|
|
|
824
864
|
function onColumnHeaderDragLeave(event: DragEvent) {
|
|
825
865
|
if (props.reorderableColumns && draggedColumn.value) {
|
|
826
866
|
event.preventDefault();
|
|
867
|
+
|
|
868
|
+
reorderRef.value.style.display = "none";
|
|
827
869
|
}
|
|
828
870
|
}
|
|
829
871
|
|
|
@@ -852,7 +894,8 @@ function onColumnHeaderDrop(event: DragEvent, item: ITableColumns) {
|
|
|
852
894
|
}
|
|
853
895
|
}
|
|
854
896
|
|
|
855
|
-
|
|
897
|
+
reorderRef.value.style.display = "none";
|
|
898
|
+
draggedElement.value.draggable = false;
|
|
856
899
|
draggedColumn.value = null;
|
|
857
900
|
dropPosition.value = null;
|
|
858
901
|
}
|
|
@@ -914,25 +957,45 @@ function onRowMouseDown(event: MouseEvent & { currentTarget?: { draggable: boole
|
|
|
914
957
|
}
|
|
915
958
|
|
|
916
959
|
function onRowDragStart(event: DragEvent, item: TableItem | string) {
|
|
960
|
+
if (!props.reorderableRows) {
|
|
961
|
+
return;
|
|
962
|
+
}
|
|
917
963
|
rowDragged.value = true;
|
|
918
964
|
draggedRow.value = item;
|
|
919
|
-
draggedRowIndex.value =
|
|
965
|
+
draggedRowIndex.value = props.items.indexOf(item);
|
|
920
966
|
event.dataTransfer.setData("text", "row-reorder");
|
|
921
967
|
}
|
|
922
968
|
|
|
923
969
|
function onRowDragOver(event: DragEvent, item: TableItem | string) {
|
|
924
|
-
|
|
970
|
+
if (!props.reorderableRows) {
|
|
971
|
+
return;
|
|
972
|
+
}
|
|
973
|
+
const index = props.items.indexOf(item);
|
|
925
974
|
|
|
926
975
|
if (rowDragged.value && draggedRow.value !== item) {
|
|
927
|
-
let rowElement = event.currentTarget;
|
|
928
|
-
let rowY = getOffset(rowElement
|
|
976
|
+
let rowElement = event.currentTarget as HTMLElement;
|
|
977
|
+
let rowY = getOffset(rowElement).top;
|
|
929
978
|
let pageY = event.pageY;
|
|
930
|
-
let rowMidY = rowY +
|
|
979
|
+
let rowMidY = rowY + rowElement.offsetHeight / 2;
|
|
980
|
+
let previousRowElement = rowElement.previousElementSibling;
|
|
931
981
|
|
|
932
982
|
if (pageY < rowMidY) {
|
|
983
|
+
rowElement.classList.remove("vc-table__drag-row-bottom");
|
|
933
984
|
droppedRowIndex.value = index;
|
|
985
|
+
|
|
986
|
+
if (previousRowElement) {
|
|
987
|
+
previousRowElement.classList.add("vc-table__drag-row-bottom");
|
|
988
|
+
} else {
|
|
989
|
+
rowElement.classList.add("vc-table__drag-row-top");
|
|
990
|
+
}
|
|
934
991
|
} else {
|
|
992
|
+
if (previousRowElement) {
|
|
993
|
+
previousRowElement.classList.remove("vc-table__drag-row-bottom");
|
|
994
|
+
} else {
|
|
995
|
+
rowElement.classList.add("vc-table__drag-row-top");
|
|
996
|
+
}
|
|
935
997
|
droppedRowIndex.value = index + 1;
|
|
998
|
+
rowElement.classList.add("vc-table__drag-row-bottom");
|
|
936
999
|
}
|
|
937
1000
|
|
|
938
1001
|
event.preventDefault();
|
|
@@ -941,6 +1004,16 @@ function onRowDragOver(event: DragEvent, item: TableItem | string) {
|
|
|
941
1004
|
|
|
942
1005
|
function onRowDragLeave(event: DragEvent) {
|
|
943
1006
|
event.preventDefault();
|
|
1007
|
+
|
|
1008
|
+
let rowElement = event.currentTarget as HTMLElement;
|
|
1009
|
+
let previousRowElement = rowElement.previousElementSibling;
|
|
1010
|
+
|
|
1011
|
+
if (previousRowElement) {
|
|
1012
|
+
previousRowElement.classList.remove("vc-table__drag-row-bottom");
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
rowElement.classList.remove("vc-table__drag-row-top");
|
|
1016
|
+
rowElement.classList.remove("vc-table__drag-row-bottom");
|
|
944
1017
|
}
|
|
945
1018
|
|
|
946
1019
|
function onRowDragEnd(event: DragEvent & { currentTarget?: { draggable: boolean } }) {
|
|
@@ -950,7 +1023,7 @@ function onRowDragEnd(event: DragEvent & { currentTarget?: { draggable: boolean
|
|
|
950
1023
|
event.currentTarget.draggable = false;
|
|
951
1024
|
}
|
|
952
1025
|
|
|
953
|
-
function onRowDrop(event) {
|
|
1026
|
+
function onRowDrop(event: DragEvent) {
|
|
954
1027
|
if (droppedRowIndex.value != null) {
|
|
955
1028
|
let dropIndex =
|
|
956
1029
|
draggedRowIndex.value > droppedRowIndex.value
|
|
@@ -959,7 +1032,7 @@ function onRowDrop(event) {
|
|
|
959
1032
|
? 0
|
|
960
1033
|
: droppedRowIndex.value - 1;
|
|
961
1034
|
|
|
962
|
-
let processedItems = [...
|
|
1035
|
+
let processedItems = [...props.items];
|
|
963
1036
|
|
|
964
1037
|
reorderArray(processedItems, draggedRowIndex.value, dropIndex);
|
|
965
1038
|
|
|
@@ -972,12 +1045,16 @@ function onRowDrop(event) {
|
|
|
972
1045
|
|
|
973
1046
|
// cleanup
|
|
974
1047
|
onRowDragLeave(event);
|
|
975
|
-
onRowDragEnd(event);
|
|
1048
|
+
onRowDragEnd(event as DragEvent & { currentTarget?: { draggable: boolean } });
|
|
976
1049
|
event.preventDefault();
|
|
977
1050
|
}
|
|
978
1051
|
</script>
|
|
979
1052
|
|
|
980
1053
|
<style lang="scss">
|
|
1054
|
+
:root {
|
|
1055
|
+
--row-drag-color: #41afe6;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
981
1058
|
$variants: (
|
|
982
1059
|
danger: #ff4a4a,
|
|
983
1060
|
success: #87b563,
|
|
@@ -985,46 +1062,6 @@ $variants: (
|
|
|
985
1062
|
|
|
986
1063
|
.vc-table {
|
|
987
1064
|
&__body {
|
|
988
|
-
&-tooltip {
|
|
989
|
-
background: #ffffff;
|
|
990
|
-
border-radius: 4px 0 0 4px;
|
|
991
|
-
padding: 15px;
|
|
992
|
-
z-index: 0;
|
|
993
|
-
position: absolute;
|
|
994
|
-
right: 0;
|
|
995
|
-
filter: drop-shadow(1px 3px 14px rgba(111, 122, 131, 0.25));
|
|
996
|
-
}
|
|
997
|
-
|
|
998
|
-
&-tooltip-arrow,
|
|
999
|
-
&-tooltip-arrow:before {
|
|
1000
|
-
position: absolute;
|
|
1001
|
-
width: 8px;
|
|
1002
|
-
height: 8px;
|
|
1003
|
-
background: inherit;
|
|
1004
|
-
}
|
|
1005
|
-
|
|
1006
|
-
&-tooltip-arrow {
|
|
1007
|
-
visibility: hidden;
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
&-tooltip-arrow:before {
|
|
1011
|
-
visibility: visible;
|
|
1012
|
-
content: "";
|
|
1013
|
-
transform: rotate(45deg);
|
|
1014
|
-
}
|
|
1015
|
-
|
|
1016
|
-
&-tooltip[data-popper-placement^="top"] > .vc-table__body-tooltip-arrow {
|
|
1017
|
-
bottom: -5px;
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
&-tooltip[data-popper-placement^="bottom"] > .vc-table__body-tooltip-arrow {
|
|
1021
|
-
top: -5px;
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
// &-row:hover .vc-table__body-actions-container {
|
|
1025
|
-
// @apply tw-flex #{!important};
|
|
1026
|
-
// }
|
|
1027
|
-
|
|
1028
1065
|
&-actions-item {
|
|
1029
1066
|
@each $name, $variant in $variants {
|
|
1030
1067
|
&_#{$name} {
|
|
@@ -1043,12 +1080,20 @@ $variants: (
|
|
|
1043
1080
|
}
|
|
1044
1081
|
|
|
1045
1082
|
&-tooltip[data-popper-placement^="top"] > .vc-table__body-tooltip-arrow {
|
|
1046
|
-
@apply tw-bottom-[-
|
|
1083
|
+
@apply tw-bottom-[-4px];
|
|
1047
1084
|
}
|
|
1048
1085
|
|
|
1049
1086
|
&-tooltip[data-popper-placement^="bottom"] > .vc-table__body-tooltip-arrow {
|
|
1050
|
-
@apply tw-top-[-
|
|
1087
|
+
@apply tw-top-[-4px];
|
|
1051
1088
|
}
|
|
1052
1089
|
}
|
|
1090
|
+
|
|
1091
|
+
&__drag-row-bottom {
|
|
1092
|
+
@apply tw-shadow-[inset_0_-2px_0_0_var(--row-drag-color)];
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
&__drag-row-top {
|
|
1096
|
+
@apply tw-shadow-[inset_0_2px_0_0_var(--row-drag-color)];
|
|
1097
|
+
}
|
|
1053
1098
|
}
|
|
1054
1099
|
</style>
|