@onereach/ui-components-vue2 26.4.0 → 26.4.1-beta.5877.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/or-data-grid-v3/index.js +172 -27
- package/dist/esm/components/or-data-grid-v3/partials/or-data-grid-table-header-cell/styles.d.ts +1 -0
- package/dist/esm/components/or-data-grid-v3/types.d.ts +4 -0
- package/dist/esm/index.js +1 -1
- package/package.json +4 -5
|
@@ -19,7 +19,7 @@ export { EditorState } from '@codemirror/state';
|
|
|
19
19
|
export { OrCombinedInputV3 } from './or-combined-input-v3/index.js';
|
|
20
20
|
export { ConfirmType, OrConfirmV3 } from './or-confirm-v3/index.js';
|
|
21
21
|
export { OrContextMenuV3 } from './or-context-menu-v3/index.js';
|
|
22
|
-
export { DataGridVariant, OrDataGridFooter, OrDataGridHeader, OrDataGridNotification, OrDataGridTable, OrDataGridTableContent, OrDataGridTableContentCell, OrDataGridTableContentRow, OrDataGridTableExtraRow, OrDataGridTableFooter, OrDataGridTableFooterCell, OrDataGridTableFooterRow, OrDataGridTableHeader, OrDataGridTableHeaderCell, OrDataGridTableHeaderRow, OrDataGridTablePlaceholder, OrDataGridToolbar, OrDataGridV3 } from './or-data-grid-v3/index.js';
|
|
22
|
+
export { DATA_GRID_DEFAULT_MIN_WIDTH, DataGridVariant, OrDataGridFooter, OrDataGridHeader, OrDataGridNotification, OrDataGridTable, OrDataGridTableContent, OrDataGridTableContentCell, OrDataGridTableContentRow, OrDataGridTableExtraRow, OrDataGridTableFooter, OrDataGridTableFooterCell, OrDataGridTableFooterRow, OrDataGridTableHeader, OrDataGridTableHeaderCell, OrDataGridTableHeaderRow, OrDataGridTablePlaceholder, OrDataGridToolbar, OrDataGridV3 } from './or-data-grid-v3/index.js';
|
|
23
23
|
export { OrDateFormatV3 } from './or-date-format-v3/index.js';
|
|
24
24
|
export { OrDatePickerV3 } from './or-date-picker-v3/index.js';
|
|
25
25
|
export { OrDateRangePickerV3 } from './or-date-range-picker-v3/index.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, watch } from 'vue-demi';
|
|
1
|
+
import { defineComponent, ref, computed, watch, onMounted } from 'vue-demi';
|
|
2
2
|
import { n as normalizeComponent } from '../../normalize-component-cf2db48b.js';
|
|
3
3
|
import { OrCheckboxV3 as OrCheckbox } from '../or-checkbox-v3/index.js';
|
|
4
4
|
import { OrDatePickerV3 as OrDatePicker } from '../or-date-picker-v3/index.js';
|
|
@@ -195,20 +195,21 @@ var DataGridVariant;
|
|
|
195
195
|
DataGridVariant["Compact"] = "compact";
|
|
196
196
|
DataGridVariant["Dynamic"] = "dynamic";
|
|
197
197
|
})(DataGridVariant || (DataGridVariant = {}));
|
|
198
|
+
const DATA_GRID_DEFAULT_MIN_WIDTH = '52px';
|
|
198
199
|
|
|
199
200
|
const DataGridTableContentCell = [
|
|
200
201
|
// Layout
|
|
201
202
|
'layout-row items-center',
|
|
202
203
|
// Spacing
|
|
203
|
-
'px-sm+', 'py-
|
|
204
|
+
'px-sm+', 'py-xs', 'gap-xs',
|
|
204
205
|
// Theme
|
|
205
|
-
'theme-border-transparent border-1', 'dark:theme-border-transparent-dark', 'theme-outline-transparent outline-2', 'dark:theme-outline-transparent-dark',
|
|
206
|
+
'theme-border-transparent border-1', 'dark:theme-border-transparent-dark', 'theme-outline-transparent outline-2 -outline-offset-1', 'dark:theme-outline-transparent-dark',
|
|
206
207
|
// Theme (focus)
|
|
207
208
|
'focus-within:theme-border-primary', 'dark:focus-within:theme-border-primary-dark', 'focus-within:theme-outline-primary', 'dark:focus-within:theme-outline-primary-dark',
|
|
208
209
|
// Theme (.sticky-start)
|
|
209
|
-
'[&.sticky-start]:border-e-disabled', 'dark:[&.sticky-start]:border-e-disabled-dark',
|
|
210
|
+
'[&.sticky-start]:theme-background-default [&.sticky-start]:border-e-disabled [&.sticky-start]:border-solid', 'dark:[&.sticky-start]:theme-background-default-dark dark:[&.sticky-start]:border-e-disabled-dark', 'hover:[&.sticky-start]:theme-background-surface-1 dark:hover:[&.sticky-start]:theme-background-surface-1-dark', 'selected:[&.sticky-start]:theme-background-surface-2 dark:selected:[&.sticky-start]:theme-background-surface-2-dark', 'hover:selected:[&.sticky-start]:theme-background-surface-3 dark:hover:selected:[&.sticky-start]:theme-background-surface-3-dark',
|
|
210
211
|
// Theme (.sticky-end)
|
|
211
|
-
'[&.sticky-end]:border-s-disabled', 'dark:[&.sticky-end]:border-s-disabled-dark'];
|
|
212
|
+
'[&.sticky-end]:theme-background-default [&.sticky-end]:border-s-disabled [&.sticky-end]:border-solid', 'dark:[&.sticky-end]:theme-background-default-dark dark:[&.sticky-end]:border-s-disabled-dark', 'hover:[&.sticky-end]:theme-background-surface-1 dark:hover:[&.sticky-end]:theme-background-surface-1-dark', 'selected:[&.sticky-end]:theme-background-surface-2 dark:selected:[&.sticky-end]:theme-background-surface-2-dark', 'hover:selected:[&.sticky-end]:theme-background-surface-3 dark:hover:selected:[&.sticky-end]:theme-background-surface-3-dark'];
|
|
212
213
|
const DataGridTableContentCellContent = [
|
|
213
214
|
// interactivity
|
|
214
215
|
'interactivity-select',
|
|
@@ -262,7 +263,7 @@ var script$e = defineComponent({
|
|
|
262
263
|
const root = ref();
|
|
263
264
|
const rootStyles = computed(() => {
|
|
264
265
|
var _a;
|
|
265
|
-
return ['or-data-grid-table-content-cell-v3', ...DataGridTableContentCell, ...(((_a = props.column) === null || _a === void 0 ? void 0 : _a.stickiness) ? [`sticky-${props.column.stickiness}`] : [])
|
|
266
|
+
return ['or-data-grid-table-content-cell-v3', ...DataGridTableContentCell, ...(((_a = props.column) === null || _a === void 0 ? void 0 : _a.stickiness) ? [`sticky-${props.column.stickiness}`] : [])];
|
|
266
267
|
});
|
|
267
268
|
const rootInlineStyles = computed(() => {
|
|
268
269
|
if (props.column) {
|
|
@@ -297,6 +298,10 @@ var script$e = defineComponent({
|
|
|
297
298
|
const isWrapping = (_b = (_a = props.column) === null || _a === void 0 ? void 0 : _a.wrapping) !== null && _b !== void 0 ? _b : props.variant === DataGridVariant.Dynamic && !((_c = props.column) === null || _c === void 0 ? void 0 : _c.control);
|
|
298
299
|
return [...DataGridTableContentCellContent.filter(style => style !== 'truncate'), ...(isWrapping ? ['whitespace-pre-wrap break-words'] : ['truncate'])];
|
|
299
300
|
});
|
|
301
|
+
const contentInlineStyles = computed(() => ({
|
|
302
|
+
minWidth: props.column && props.column.minWidth || DATA_GRID_DEFAULT_MIN_WIDTH,
|
|
303
|
+
maxWidth: props.column && props.column.maxWidth
|
|
304
|
+
}));
|
|
300
305
|
// State
|
|
301
306
|
const model = computed({
|
|
302
307
|
get: () => props.modelValue,
|
|
@@ -313,8 +318,10 @@ var script$e = defineComponent({
|
|
|
313
318
|
rootStyles,
|
|
314
319
|
rootInlineStyles,
|
|
315
320
|
contentStyles,
|
|
321
|
+
contentInlineStyles,
|
|
316
322
|
model,
|
|
317
|
-
control
|
|
323
|
+
control,
|
|
324
|
+
DATA_GRID_DEFAULT_MIN_WIDTH
|
|
318
325
|
};
|
|
319
326
|
}
|
|
320
327
|
});
|
|
@@ -440,7 +447,8 @@ var __vue_render__$e = function () {
|
|
|
440
447
|
expression: "model"
|
|
441
448
|
}
|
|
442
449
|
})] : _vm._e()] : [_c('div', {
|
|
443
|
-
class: _vm.contentStyles
|
|
450
|
+
class: _vm.contentStyles,
|
|
451
|
+
style: _vm.contentInlineStyles
|
|
444
452
|
}, [_vm._t("default")], 2)]], 2);
|
|
445
453
|
};
|
|
446
454
|
var __vue_staticRenderFns__$e = [];
|
|
@@ -805,15 +813,24 @@ var __vue_component__$j = __vue_component__$i;
|
|
|
805
813
|
|
|
806
814
|
const DataGridTableHeaderCell = [
|
|
807
815
|
// Layout
|
|
808
|
-
'layout-row',
|
|
816
|
+
'layout-row items-center',
|
|
809
817
|
// Spacing
|
|
810
|
-
'px-sm+', 'py-
|
|
818
|
+
'px-sm+', 'py-xs', 'gap-xs',
|
|
811
819
|
// Theme
|
|
812
|
-
'theme-border-transparent border-1', 'dark:theme-border-transparent-dark',
|
|
820
|
+
'theme-border-transparent border-1', 'dark:theme-border-transparent-dark', 'theme-outline-transparent outline-2 -outline-offset-1', 'dark:theme-outline-transparent-dark',
|
|
821
|
+
// Theme (Stacking)
|
|
822
|
+
'relative z-1 hover:z-2',
|
|
813
823
|
// Theme (.sticky-start)
|
|
814
|
-
'[&.sticky-start]:border-e-disabled', 'dark:[&.sticky-start]:border-e-disabled-dark',
|
|
824
|
+
'[&.sticky-start]:theme-background-surface-variant-1 [&.sticky-start]:border-e-disabled [&.sticky-start]:border-solid z-20 hover:z-30', 'dark:[&.sticky-start]:theme-background-surface-variant-1-dark dark:[&.sticky-start]:border-e-disabled-dark',
|
|
815
825
|
// Theme (.sticky-end)
|
|
816
|
-
'[&.sticky-end]:border-s-disabled', 'dark:[&.sticky-end]:border-s-disabled-dark'];
|
|
826
|
+
'[&.sticky-end]:theme-background-surface-variant-1 [&.sticky-end]:border-s-disabled [&.sticky-end]:border-solid z-20 hover:z-30', 'dark:[&.sticky-end]:theme-background-surface-variant-1-dark dark:[&.sticky-end]:border-s-disabled-dark'];
|
|
827
|
+
const DataGridTableHeaderCellResizeHandle = [
|
|
828
|
+
// Position
|
|
829
|
+
'absolute top-0 bottom-0 end-0 z-50',
|
|
830
|
+
// Box
|
|
831
|
+
'w-xs cursor-col-resize',
|
|
832
|
+
// Theme
|
|
833
|
+
'theme-background-transparent', 'hover:theme-background-primary', 'dark:hover:theme-background-primary-dark', 'active:theme-background-primary', 'dark:active:theme-background-primary-dark'];
|
|
817
834
|
|
|
818
835
|
var script$8 = defineComponent({
|
|
819
836
|
name: 'OrDataGridTableHeaderCell',
|
|
@@ -838,7 +855,7 @@ var script$8 = defineComponent({
|
|
|
838
855
|
default: undefined
|
|
839
856
|
}
|
|
840
857
|
},
|
|
841
|
-
emits: ['update:modelValue', 'update:scrollOffset', 'remove:scrollOffset'],
|
|
858
|
+
emits: ['update:modelValue', 'update:scrollOffset', 'remove:scrollOffset', 'update:column-width'],
|
|
842
859
|
expose: ['root'],
|
|
843
860
|
setup(props, context) {
|
|
844
861
|
// Refs & Styles
|
|
@@ -848,9 +865,21 @@ var script$8 = defineComponent({
|
|
|
848
865
|
var _a, _b, _c;
|
|
849
866
|
return !!((_a = props.features) === null || _a === void 0 ? void 0 : _a.sorting) && !!((_b = props.column) === null || _b === void 0 ? void 0 : _b.name) && ((_c = props.column) === null || _c === void 0 ? void 0 : _c.sorting) !== false;
|
|
850
867
|
});
|
|
868
|
+
const isResizable = computed(() => {
|
|
869
|
+
var _a, _b;
|
|
870
|
+
return !!((_a = props.features) === null || _a === void 0 ? void 0 : _a.resizing) && !!((_b = props.column) === null || _b === void 0 ? void 0 : _b.name);
|
|
871
|
+
});
|
|
851
872
|
const rootStyles = computed(() => {
|
|
852
873
|
var _a;
|
|
853
|
-
return ['or-data-grid-table-header-cell-v3', ...DataGridTableHeaderCell, ...(((_a = props.column) === null || _a === void 0 ? void 0 : _a.stickiness) ? [`sticky-${props.column.stickiness}`] : []), ...(isSortable.value ? ['interactivity-click'] : [])];
|
|
874
|
+
return ['or-data-grid-table-header-cell-v3', 'relative', ...DataGridTableHeaderCell, ...(((_a = props.column) === null || _a === void 0 ? void 0 : _a.stickiness) ? [`sticky-${props.column.stickiness}`] : []), ...(isSortable.value ? ['interactivity-click'] : [])];
|
|
875
|
+
});
|
|
876
|
+
const resizeHandleStyles = computed(() => ['or-data-grid-table-header-cell-resize-handle-v3', ...DataGridTableHeaderCellResizeHandle]);
|
|
877
|
+
const wrapInlineStyle = computed(() => {
|
|
878
|
+
var _a, _b;
|
|
879
|
+
return {
|
|
880
|
+
minWidth: ((_a = props.column) === null || _a === void 0 ? void 0 : _a.minWidth) || DATA_GRID_DEFAULT_MIN_WIDTH,
|
|
881
|
+
maxWidth: (_b = props.column) === null || _b === void 0 ? void 0 : _b.maxWidth
|
|
882
|
+
};
|
|
854
883
|
});
|
|
855
884
|
const rootInlineStyles = computed(() => {
|
|
856
885
|
if (props.column) {
|
|
@@ -914,6 +943,32 @@ var script$8 = defineComponent({
|
|
|
914
943
|
};
|
|
915
944
|
}
|
|
916
945
|
}
|
|
946
|
+
function onResizeStart(event) {
|
|
947
|
+
var _a;
|
|
948
|
+
const startX = event.pageX;
|
|
949
|
+
const startWidth = ((_a = root.value) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0;
|
|
950
|
+
const onMouseMove = moveEvent => {
|
|
951
|
+
var _a, _b;
|
|
952
|
+
const deltaX = moveEvent.pageX - startX;
|
|
953
|
+
let newWidth = Math.max(0, startWidth + deltaX);
|
|
954
|
+
const min = ((_a = props.column) === null || _a === void 0 ? void 0 : _a.minWidth) || DATA_GRID_DEFAULT_MIN_WIDTH;
|
|
955
|
+
if (min && (min.endsWith('px') || !isNaN(Number(min)))) {
|
|
956
|
+
const minPx = parseInt(min, 10);
|
|
957
|
+
newWidth = Math.max(newWidth, minPx);
|
|
958
|
+
}
|
|
959
|
+
if (((_b = props.column) === null || _b === void 0 ? void 0 : _b.maxWidth) && (props.column.maxWidth.endsWith('px') || !isNaN(Number(props.column.maxWidth)))) {
|
|
960
|
+
const maxPx = parseInt(props.column.maxWidth, 10);
|
|
961
|
+
newWidth = Math.min(newWidth, maxPx);
|
|
962
|
+
}
|
|
963
|
+
context.emit('update:column-width', newWidth);
|
|
964
|
+
};
|
|
965
|
+
const onMouseUp = () => {
|
|
966
|
+
document.removeEventListener('mousemove', onMouseMove);
|
|
967
|
+
document.removeEventListener('mouseup', onMouseUp);
|
|
968
|
+
};
|
|
969
|
+
document.addEventListener('mousemove', onMouseMove);
|
|
970
|
+
document.addEventListener('mouseup', onMouseUp);
|
|
971
|
+
}
|
|
917
972
|
// Effects
|
|
918
973
|
const {
|
|
919
974
|
width
|
|
@@ -933,9 +988,14 @@ var script$8 = defineComponent({
|
|
|
933
988
|
root,
|
|
934
989
|
rootStyles,
|
|
935
990
|
rootInlineStyles,
|
|
991
|
+
wrapInlineStyle,
|
|
992
|
+
resizeHandleStyles,
|
|
936
993
|
isSortable,
|
|
994
|
+
isResizable,
|
|
937
995
|
model,
|
|
938
|
-
toggleSorting
|
|
996
|
+
toggleSorting,
|
|
997
|
+
onResizeStart,
|
|
998
|
+
DATA_GRID_DEFAULT_MIN_WIDTH
|
|
939
999
|
};
|
|
940
1000
|
}
|
|
941
1001
|
});
|
|
@@ -958,12 +1018,25 @@ var __vue_render__$8 = function () {
|
|
|
958
1018
|
}
|
|
959
1019
|
}
|
|
960
1020
|
}, [_c('div', {
|
|
961
|
-
class: ['truncate']
|
|
1021
|
+
class: ['truncate'],
|
|
1022
|
+
style: _vm.wrapInlineStyle
|
|
962
1023
|
}, [_vm._t("default")], 2), _vm._v(" "), _vm.model ? [_c('OrIcon', {
|
|
963
1024
|
attrs: {
|
|
964
1025
|
"icon": _vm.model.direction === 'asc' ? 'arrow_upward' : 'arrow_downward'
|
|
965
1026
|
}
|
|
966
|
-
})] : _vm._e()
|
|
1027
|
+
})] : _vm._e(), _vm._v(" "), _vm.isResizable ? _c('div', {
|
|
1028
|
+
class: _vm.resizeHandleStyles,
|
|
1029
|
+
on: {
|
|
1030
|
+
"mousedown": function ($event) {
|
|
1031
|
+
$event.stopPropagation();
|
|
1032
|
+
$event.preventDefault();
|
|
1033
|
+
return _vm.onResizeStart.apply(null, arguments);
|
|
1034
|
+
},
|
|
1035
|
+
"click": function ($event) {
|
|
1036
|
+
$event.stopPropagation();
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
}) : _vm._e()], 2);
|
|
967
1040
|
};
|
|
968
1041
|
var __vue_staticRenderFns__$8 = [];
|
|
969
1042
|
|
|
@@ -1121,9 +1194,9 @@ var __vue_component__$d = __vue_component__$c;
|
|
|
1121
1194
|
|
|
1122
1195
|
const DataGridTablePlaceholder = [
|
|
1123
1196
|
// Layout
|
|
1124
|
-
'layout-row justify-center',
|
|
1197
|
+
'layout-row justify-center items-center',
|
|
1125
1198
|
// Spacing
|
|
1126
|
-
'px-sm+', 'py-
|
|
1199
|
+
'px-sm+', 'py-xs', 'gap-xs',
|
|
1127
1200
|
// Typography
|
|
1128
1201
|
'typography-body-2-regular',
|
|
1129
1202
|
// Theme
|
|
@@ -1200,7 +1273,7 @@ var __vue_component__$b = __vue_component__$a;
|
|
|
1200
1273
|
|
|
1201
1274
|
const DataGridTable = [
|
|
1202
1275
|
// Layout
|
|
1203
|
-
'grid content-start',
|
|
1276
|
+
'grid content-start', 'w-full min-w-0',
|
|
1204
1277
|
// Overflow
|
|
1205
1278
|
'overflow-auto',
|
|
1206
1279
|
// Interactivity
|
|
@@ -1226,11 +1299,21 @@ var script$4 = defineComponent({
|
|
|
1226
1299
|
const rootInlineStyles = computed(() => {
|
|
1227
1300
|
const gridTemplateColumns = props.columns.map(column => {
|
|
1228
1301
|
var _a;
|
|
1229
|
-
|
|
1302
|
+
// If width is already a complex expression like minmax, use it as is
|
|
1303
|
+
if (column.width && (column.width.includes('minmax') || column.width.includes('calc'))) {
|
|
1304
|
+
return column.width;
|
|
1305
|
+
}
|
|
1306
|
+
const width = (_a = column.width) !== null && _a !== void 0 ? _a : '1fr';
|
|
1307
|
+
const min = column.minWidth || (column.width ? DATA_GRID_DEFAULT_MIN_WIDTH : '120px');
|
|
1308
|
+
let max = column.maxWidth || width;
|
|
1309
|
+
if (width.endsWith('px')) {
|
|
1310
|
+
max = width;
|
|
1311
|
+
}
|
|
1312
|
+
return `minmax(${min}, ${max})`;
|
|
1230
1313
|
});
|
|
1231
1314
|
if (props.features.selecting) {
|
|
1232
1315
|
return {
|
|
1233
|
-
gridTemplateColumns: `
|
|
1316
|
+
gridTemplateColumns: `min-content ${gridTemplateColumns.join(' ')}`
|
|
1234
1317
|
};
|
|
1235
1318
|
}
|
|
1236
1319
|
return {
|
|
@@ -1573,6 +1656,7 @@ var script = defineComponent({
|
|
|
1573
1656
|
// Refs & Styles
|
|
1574
1657
|
const root = ref();
|
|
1575
1658
|
const pagination = ref();
|
|
1659
|
+
const table = ref();
|
|
1576
1660
|
const rootStyles = computed(() => ['or-data-grid-v3', ...DataGrid]);
|
|
1577
1661
|
const tableInlineStyles = computed(() => ({
|
|
1578
1662
|
scrollPaddingInlineStart: `${[...scrollOffsetStart.value.values()].reduce((accumulator, value) => accumulator + value, 0)}px`,
|
|
@@ -1675,6 +1759,18 @@ var script = defineComponent({
|
|
|
1675
1759
|
});
|
|
1676
1760
|
}
|
|
1677
1761
|
});
|
|
1762
|
+
watch(() => {
|
|
1763
|
+
var _a;
|
|
1764
|
+
return (_a = pagingModel.value) === null || _a === void 0 ? void 0 : _a.offset;
|
|
1765
|
+
}, () => {
|
|
1766
|
+
var _a;
|
|
1767
|
+
if ((_a = table.value) === null || _a === void 0 ? void 0 : _a.root) {
|
|
1768
|
+
table.value.root.scrollTo({
|
|
1769
|
+
top: 0,
|
|
1770
|
+
behavior: 'smooth'
|
|
1771
|
+
});
|
|
1772
|
+
}
|
|
1773
|
+
});
|
|
1678
1774
|
const scrollOffsetStart = ref(new Map());
|
|
1679
1775
|
const scrollOffsetEnd = ref(new Map());
|
|
1680
1776
|
const showSelectingCouter = computed(() => {
|
|
@@ -1738,6 +1834,41 @@ var script = defineComponent({
|
|
|
1738
1834
|
if (!props.interactiveRows) return;
|
|
1739
1835
|
context.emit('click:row', item);
|
|
1740
1836
|
}
|
|
1837
|
+
function updateColumnWidth(column, width) {
|
|
1838
|
+
column.width = `${width}px`;
|
|
1839
|
+
if (props.features.storageKey) {
|
|
1840
|
+
saveColumnWidths();
|
|
1841
|
+
}
|
|
1842
|
+
}
|
|
1843
|
+
function saveColumnWidths() {
|
|
1844
|
+
if (typeof window === 'undefined' || !props.features.storageKey) return;
|
|
1845
|
+
const widths = {};
|
|
1846
|
+
props.columns.forEach(column => {
|
|
1847
|
+
if (column.name && column.width) {
|
|
1848
|
+
widths[column.name] = column.width;
|
|
1849
|
+
}
|
|
1850
|
+
});
|
|
1851
|
+
localStorage.setItem(`or-data-grid-v3-widths-${props.features.storageKey}`, JSON.stringify(widths));
|
|
1852
|
+
}
|
|
1853
|
+
function loadColumnWidths() {
|
|
1854
|
+
if (typeof window === 'undefined' || !props.features.storageKey) return;
|
|
1855
|
+
try {
|
|
1856
|
+
const stored = localStorage.getItem(`or-data-grid-v3-widths-${props.features.storageKey}`);
|
|
1857
|
+
if (stored) {
|
|
1858
|
+
const widths = JSON.parse(stored);
|
|
1859
|
+
props.columns.forEach(column => {
|
|
1860
|
+
if (column.name && widths[column.name]) {
|
|
1861
|
+
column.width = widths[column.name];
|
|
1862
|
+
}
|
|
1863
|
+
});
|
|
1864
|
+
}
|
|
1865
|
+
} catch (e) {
|
|
1866
|
+
console.error('[OrDataGrid]: Failed to load column widths from localStorage', e);
|
|
1867
|
+
}
|
|
1868
|
+
}
|
|
1869
|
+
onMounted(() => {
|
|
1870
|
+
loadColumnWidths();
|
|
1871
|
+
});
|
|
1741
1872
|
// function handleCellClick(item: DataGridItem<T>, columnName: string, value: any): void {
|
|
1742
1873
|
// if (!props.interactiveRows) return;
|
|
1743
1874
|
// context.emit('click:cell', { item, columnName, value });
|
|
@@ -1768,6 +1899,7 @@ var script = defineComponent({
|
|
|
1768
1899
|
handleMouseEnterCell,
|
|
1769
1900
|
handleMouseLeaveCell,
|
|
1770
1901
|
handleRowClick,
|
|
1902
|
+
updateColumnWidth,
|
|
1771
1903
|
selectingModel,
|
|
1772
1904
|
filteringModel,
|
|
1773
1905
|
searchingModel,
|
|
@@ -1776,6 +1908,15 @@ var script = defineComponent({
|
|
|
1776
1908
|
updateScrollOffset,
|
|
1777
1909
|
removeScrollOffset,
|
|
1778
1910
|
updateSearchingModel,
|
|
1911
|
+
scrollToTop: () => {
|
|
1912
|
+
var _a;
|
|
1913
|
+
if ((_a = table.value) === null || _a === void 0 ? void 0 : _a.root) {
|
|
1914
|
+
table.value.root.scrollTo({
|
|
1915
|
+
top: 0,
|
|
1916
|
+
behavior: 'smooth'
|
|
1917
|
+
});
|
|
1918
|
+
}
|
|
1919
|
+
},
|
|
1779
1920
|
scrollTo,
|
|
1780
1921
|
onInput: (item, columnName, value) => {
|
|
1781
1922
|
item[columnName] = value;
|
|
@@ -1833,6 +1974,7 @@ var __vue_render__ = function () {
|
|
|
1833
1974
|
})] : _vm._e(), _vm._v(" "), _vm.$slots['toolbar'] ? [_c('OrDataGridToolbar', {
|
|
1834
1975
|
class: ['shrink-0']
|
|
1835
1976
|
}, [_vm._t('toolbar')], 2)] : _vm._e(), _vm._v(" "), _c('OrDataGridTable', {
|
|
1977
|
+
ref: "table",
|
|
1836
1978
|
class: ['grow', {
|
|
1837
1979
|
'grid-rows-[auto_1fr]': _vm.items.length === 0
|
|
1838
1980
|
}],
|
|
@@ -1846,7 +1988,7 @@ var __vue_render__ = function () {
|
|
|
1846
1988
|
"variant": _vm.variant
|
|
1847
1989
|
}
|
|
1848
1990
|
}, [_vm.features.selecting ? [_c('OrDataGridTableHeaderCell', {
|
|
1849
|
-
staticClass: "
|
|
1991
|
+
staticClass: "md:!py-none",
|
|
1850
1992
|
attrs: {
|
|
1851
1993
|
"column": {
|
|
1852
1994
|
stickiness: 'start'
|
|
@@ -1877,7 +2019,10 @@ var __vue_render__ = function () {
|
|
|
1877
2019
|
},
|
|
1878
2020
|
on: {
|
|
1879
2021
|
"update:scroll-offset": _vm.updateScrollOffset,
|
|
1880
|
-
"remove:scroll-offset": _vm.removeScrollOffset
|
|
2022
|
+
"remove:scroll-offset": _vm.removeScrollOffset,
|
|
2023
|
+
"update:column-width": function (width) {
|
|
2024
|
+
return _vm.updateColumnWidth(column, width);
|
|
2025
|
+
}
|
|
1881
2026
|
},
|
|
1882
2027
|
model: {
|
|
1883
2028
|
value: _vm.sortingModel,
|
|
@@ -1959,7 +2104,7 @@ var __vue_render__ = function () {
|
|
|
1959
2104
|
}
|
|
1960
2105
|
}
|
|
1961
2106
|
}, [_vm.features.selecting ? [_c('OrDataGridTableContentCell', {
|
|
1962
|
-
staticClass: "
|
|
2107
|
+
staticClass: "md:!py-none",
|
|
1963
2108
|
attrs: {
|
|
1964
2109
|
"column": {
|
|
1965
2110
|
stickiness: 'start'
|
|
@@ -2098,4 +2243,4 @@ const __vue_component__ = /*#__PURE__*/normalizeComponent({
|
|
|
2098
2243
|
}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
|
|
2099
2244
|
var __vue_component__$1 = __vue_component__;
|
|
2100
2245
|
|
|
2101
|
-
export { DataGridVariant, __vue_component__$x as OrDataGridFooter, __vue_component__$v as OrDataGridHeader, __vue_component__$5 as OrDataGridNotification, __vue_component__$9 as OrDataGridTable, __vue_component__$p as OrDataGridTableContent, __vue_component__$t as OrDataGridTableContentCell, __vue_component__$r as OrDataGridTableContentRow, __vue_component__$3 as OrDataGridTableExtraRow, __vue_component__$j as OrDataGridTableFooter, __vue_component__$n as OrDataGridTableFooterCell, __vue_component__$l as OrDataGridTableFooterRow, __vue_component__$d as OrDataGridTableHeader, __vue_component__$h as OrDataGridTableHeaderCell, __vue_component__$f as OrDataGridTableHeaderRow, __vue_component__$b as OrDataGridTablePlaceholder, __vue_component__$7 as OrDataGridToolbar, __vue_component__$1 as OrDataGridV3 };
|
|
2246
|
+
export { DATA_GRID_DEFAULT_MIN_WIDTH, DataGridVariant, __vue_component__$x as OrDataGridFooter, __vue_component__$v as OrDataGridHeader, __vue_component__$5 as OrDataGridNotification, __vue_component__$9 as OrDataGridTable, __vue_component__$p as OrDataGridTableContent, __vue_component__$t as OrDataGridTableContentCell, __vue_component__$r as OrDataGridTableContentRow, __vue_component__$3 as OrDataGridTableExtraRow, __vue_component__$j as OrDataGridTableFooter, __vue_component__$n as OrDataGridTableFooterCell, __vue_component__$l as OrDataGridTableFooterRow, __vue_component__$d as OrDataGridTableHeader, __vue_component__$h as OrDataGridTableHeaderCell, __vue_component__$f as OrDataGridTableHeaderRow, __vue_component__$b as OrDataGridTablePlaceholder, __vue_component__$7 as OrDataGridToolbar, __vue_component__$1 as OrDataGridV3 };
|
|
@@ -16,6 +16,8 @@ export type DataGridColumn = {
|
|
|
16
16
|
name: string;
|
|
17
17
|
label?: string;
|
|
18
18
|
width?: string;
|
|
19
|
+
minWidth?: string;
|
|
20
|
+
maxWidth?: string;
|
|
19
21
|
alignment?: 'start' | 'end' | 'center';
|
|
20
22
|
stickiness?: 'start' | 'end';
|
|
21
23
|
sorting?: boolean;
|
|
@@ -44,4 +46,6 @@ export type DataGridFeatures = {
|
|
|
44
46
|
options?: number[];
|
|
45
47
|
};
|
|
46
48
|
resizing?: boolean;
|
|
49
|
+
storageKey?: string;
|
|
47
50
|
};
|
|
51
|
+
export declare const DATA_GRID_DEFAULT_MIN_WIDTH = "52px";
|
package/dist/esm/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export { EditorState } from '@codemirror/state';
|
|
|
25
25
|
export { OrCombinedInputV3 } from './components/or-combined-input-v3/index.js';
|
|
26
26
|
export { ConfirmType, OrConfirmV3 } from './components/or-confirm-v3/index.js';
|
|
27
27
|
export { OrContextMenuV3 } from './components/or-context-menu-v3/index.js';
|
|
28
|
-
export { DataGridVariant, OrDataGridFooter, OrDataGridHeader, OrDataGridNotification, OrDataGridTable, OrDataGridTableContent, OrDataGridTableContentCell, OrDataGridTableContentRow, OrDataGridTableExtraRow, OrDataGridTableFooter, OrDataGridTableFooterCell, OrDataGridTableFooterRow, OrDataGridTableHeader, OrDataGridTableHeaderCell, OrDataGridTableHeaderRow, OrDataGridTablePlaceholder, OrDataGridToolbar, OrDataGridV3 } from './components/or-data-grid-v3/index.js';
|
|
28
|
+
export { DATA_GRID_DEFAULT_MIN_WIDTH, DataGridVariant, OrDataGridFooter, OrDataGridHeader, OrDataGridNotification, OrDataGridTable, OrDataGridTableContent, OrDataGridTableContentCell, OrDataGridTableContentRow, OrDataGridTableExtraRow, OrDataGridTableFooter, OrDataGridTableFooterCell, OrDataGridTableFooterRow, OrDataGridTableHeader, OrDataGridTableHeaderCell, OrDataGridTableHeaderRow, OrDataGridTablePlaceholder, OrDataGridToolbar, OrDataGridV3 } from './components/or-data-grid-v3/index.js';
|
|
29
29
|
export { OrDateFormatV3 } from './components/or-date-format-v3/index.js';
|
|
30
30
|
export { OrDatePickerV3 } from './components/or-date-picker-v3/index.js';
|
|
31
31
|
export { OrDateRangePickerV3 } from './components/or-date-range-picker-v3/index.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onereach/ui-components-vue2",
|
|
3
|
-
"version": "26.4.0",
|
|
3
|
+
"version": "26.4.1-beta.5877.0",
|
|
4
4
|
"description": "Vue components library for v2",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"@codemirror/view": "^6",
|
|
41
41
|
"@floating-ui/dom": "1.5.3",
|
|
42
42
|
"@lezer/highlight": "*",
|
|
43
|
-
"@onereach/styles": "^26.4.0",
|
|
44
|
-
"@onereach/ui-components-common": "^26.4.0",
|
|
43
|
+
"@onereach/styles": "^26.4.1-beta.5877.0",
|
|
44
|
+
"@onereach/ui-components-common": "^26.4.1-beta.5877.0",
|
|
45
45
|
"@splidejs/splide": "4.0.6",
|
|
46
46
|
"@tiptap/core": "2.27.1",
|
|
47
47
|
"@tiptap/extension-blockquote": "2.27.1",
|
|
@@ -102,6 +102,5 @@
|
|
|
102
102
|
"publishConfig": {
|
|
103
103
|
"access": "public"
|
|
104
104
|
},
|
|
105
|
-
"npmUnpacked": "4.15.2"
|
|
106
|
-
"gitHead": "3393b1400a3b9d2d9f40e8062736fa0583d1ec8a"
|
|
105
|
+
"npmUnpacked": "4.15.2"
|
|
107
106
|
}
|