@onereach/ui-components-vue2 26.4.1-beta.5880.0 → 26.4.1-beta.5882.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.
@@ -258,6 +258,10 @@ var script$e = defineComponent({
258
258
  override: {
259
259
  type: Boolean,
260
260
  default: false
261
+ },
262
+ stickyOffset: {
263
+ type: Number,
264
+ default: 0
261
265
  }
262
266
  },
263
267
  emits: ['input'],
@@ -267,7 +271,7 @@ var script$e = defineComponent({
267
271
  const root = ref();
268
272
  const rootStyles = computed(() => {
269
273
  var _a, _b, _c, _d;
270
- return ['or-data-grid-table-content-cell-v3', ...DataGridTableContentCell, ...(((_a = props.column) === null || _a === void 0 ? void 0 : _a.stickiness) ? [`sticky-${props.column.stickiness}`] : []), ...(!!((_b = props.features) === null || _b === void 0 ? void 0 : _b.resizing) && !!((_c = props.column) === null || _c === void 0 ? void 0 : _c.name) && ((_d = props.column) === null || _d === void 0 ? void 0 : _d.resizing) !== false ? ['resizable'] : [])];
274
+ return ['or-data-grid-table-content-cell-v3', ...DataGridTableContentCell, ...(((_a = props.column) === null || _a === void 0 ? void 0 : _a.stickiness) ? ['overflow-hidden', `sticky-${props.column.stickiness}`] : []), ...(!!((_b = props.features) === null || _b === void 0 ? void 0 : _b.resizing) && !!((_c = props.column) === null || _c === void 0 ? void 0 : _c.name) && ((_d = props.column) === null || _d === void 0 ? void 0 : _d.resizing) !== false ? ['resizable'] : [])];
271
275
  });
272
276
  const rootInlineStyles = computed(() => {
273
277
  if (props.column) {
@@ -275,7 +279,7 @@ var script$e = defineComponent({
275
279
  case 'start':
276
280
  return {
277
281
  position: 'sticky',
278
- insetInlineStart: '0',
282
+ insetInlineStart: `${props.stickyOffset}px`,
279
283
  zIndex: '30',
280
284
  flexDirection: props.column.alignment === 'end' ? 'row-reverse' : undefined,
281
285
  justifyContent: props.column.alignment
@@ -283,7 +287,7 @@ var script$e = defineComponent({
283
287
  case 'end':
284
288
  return {
285
289
  position: 'sticky',
286
- insetInlineEnd: '0',
290
+ insetInlineEnd: `${props.stickyOffset}px`,
287
291
  zIndex: '30',
288
292
  flexDirection: props.column.alignment === 'end' ? 'row-reverse' : undefined,
289
293
  justifyContent: props.column.alignment
@@ -300,9 +304,11 @@ var script$e = defineComponent({
300
304
  };
301
305
  });
302
306
  const contentStyles = computed(() => {
303
- var _a, _b, _c;
307
+ var _a, _b, _c, _d, _e, _f;
304
308
  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);
305
- return [...DataGridTableContentCellContent.filter(style => style !== 'truncate'), ...(isWrapping ? ['whitespace-pre-wrap break-words'] : ['truncate'])];
309
+ const isTags = ((_e = (_d = props.column) === null || _d === void 0 ? void 0 : _d.control) === null || _e === void 0 ? void 0 : _e.type) === 'tags';
310
+ const isFitContent = (_f = props.column) === null || _f === void 0 ? void 0 : _f.fitContent;
311
+ return ['layout-row items-center w-full min-w-0', ...(isTags ? ['overflow-hidden'] : []), ...DataGridTableContentCellContent.filter(style => style !== 'truncate'), ...(isWrapping ? ['whitespace-pre-wrap break-words'] : isFitContent ? ['overflow-hidden'] : ['truncate'])];
306
312
  });
307
313
  const contentInlineStyles = computed(() => ({
308
314
  minWidth: props.column && props.column.minWidth || DATA_GRID_DEFAULT_MIN_WIDTH,
@@ -344,7 +350,10 @@ var __vue_render__$e = function () {
344
350
  ref: 'root',
345
351
  class: _vm.rootStyles,
346
352
  style: _vm.rootInlineStyles
347
- }, [_vm.override ? [_vm._t("default")] : _vm.control ? [_vm.control.type === 'text' ? [_c('OrInput', {
353
+ }, [_vm.override ? [_vm._t("default")] : _vm.control ? [_c('div', {
354
+ class: _vm.contentStyles,
355
+ style: _vm.contentInlineStyles
356
+ }, [_vm.control.type === 'text' ? [_c('OrInput', {
348
357
  attrs: {
349
358
  "type": 'text',
350
359
  "variant": 'embedded'
@@ -442,6 +451,7 @@ var __vue_render__$e = function () {
442
451
  expression: "model"
443
452
  }
444
453
  })] : _vm._e(), _vm._v(" "), _vm.control.type === 'tags' ? [_c('OrTagInput', {
454
+ class: ['grow min-w-0'],
445
455
  attrs: {
446
456
  "variant": 'embedded'
447
457
  },
@@ -452,7 +462,7 @@ var __vue_render__$e = function () {
452
462
  },
453
463
  expression: "model"
454
464
  }
455
- })] : _vm._e()] : [_c('div', {
465
+ })] : _vm._e()], 2)] : [_c('div', {
456
466
  class: _vm.contentStyles,
457
467
  style: _vm.contentInlineStyles
458
468
  }, [_vm._t("default")], 2)]], 2);
@@ -863,6 +873,10 @@ var script$8 = defineComponent({
863
873
  features: {
864
874
  type: Object,
865
875
  default: undefined
876
+ },
877
+ stickyOffset: {
878
+ type: Number,
879
+ default: 0
866
880
  }
867
881
  },
868
882
  emits: ['update:modelValue', 'update:scrollOffset', 'remove:scrollOffset', 'update:column-width'],
@@ -881,14 +895,15 @@ var script$8 = defineComponent({
881
895
  });
882
896
  const rootStyles = computed(() => {
883
897
  var _a;
884
- 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}`] : []), ...(isResizable.value ? ['resizable'] : []), ...(isSortable.value ? ['interactivity-click'] : [])];
898
+ return ['or-data-grid-table-header-cell-v3', 'relative', ...DataGridTableHeaderCell, ...(((_a = props.column) === null || _a === void 0 ? void 0 : _a.stickiness) ? ['overflow-hidden', `sticky-${props.column.stickiness}`] : []), ...(isResizable.value ? ['resizable'] : []), ...(isSortable.value ? ['interactivity-click'] : [])];
885
899
  });
886
900
  const resizeHandleStyles = computed(() => ['or-data-grid-table-header-cell-resize-handle-v3', ...DataGridTableHeaderCellResizeHandle]);
887
901
  const wrapInlineStyle = computed(() => {
888
902
  var _a, _b;
889
903
  return {
890
904
  minWidth: ((_a = props.column) === null || _a === void 0 ? void 0 : _a.minWidth) || DATA_GRID_DEFAULT_MIN_WIDTH,
891
- maxWidth: (_b = props.column) === null || _b === void 0 ? void 0 : _b.maxWidth
905
+ maxWidth: (_b = props.column) === null || _b === void 0 ? void 0 : _b.maxWidth,
906
+ overflow: 'hidden'
892
907
  };
893
908
  });
894
909
  const rootInlineStyles = computed(() => {
@@ -897,7 +912,7 @@ var script$8 = defineComponent({
897
912
  case 'start':
898
913
  return {
899
914
  position: 'sticky',
900
- insetInlineStart: '0',
915
+ insetInlineStart: `${props.stickyOffset}px`,
901
916
  zIndex: '120',
902
917
  flexDirection: props.column.alignment === 'end' ? 'row-reverse' : undefined,
903
918
  justifyContent: props.column.alignment
@@ -905,7 +920,7 @@ var script$8 = defineComponent({
905
920
  case 'end':
906
921
  return {
907
922
  position: 'sticky',
908
- insetInlineEnd: '0',
923
+ insetInlineEnd: `${props.stickyOffset}px`,
909
924
  zIndex: '120',
910
925
  flexDirection: props.column.alignment === 'end' ? 'row-reverse' : undefined,
911
926
  justifyContent: props.column.alignment
@@ -1316,8 +1331,11 @@ var script$4 = defineComponent({
1316
1331
  return column.width;
1317
1332
  }
1318
1333
  const width = (_a = column.width) !== null && _a !== void 0 ? _a : '1fr';
1319
- const min = column.minWidth || (column.width ? DATA_GRID_DEFAULT_MIN_WIDTH : '120px');
1320
- let max = column.maxWidth || width;
1334
+ const min = column.minWidth || (column.width ? DATA_GRID_DEFAULT_MIN_WIDTH : column.fitContent ? 'max-content' : column.stickiness ? 'max-content' : '120px');
1335
+ const max = column.maxWidth || (column.width ? width === 'max-content' ? 'max-content' : width : column.fitContent ? 'max-content' : column.minWidth || column.stickiness ? 'max-content' : '1fr');
1336
+ if (column.fitContent) {
1337
+ return 'max-content';
1338
+ }
1321
1339
  if (width.endsWith('px')) {
1322
1340
  return width;
1323
1341
  }
@@ -1783,8 +1801,6 @@ var script = defineComponent({
1783
1801
  });
1784
1802
  }
1785
1803
  });
1786
- const scrollOffsetStart = ref(new Map());
1787
- const scrollOffsetEnd = ref(new Map());
1788
1804
  const showSelectingCouter = computed(() => {
1789
1805
  return props.features.selecting && (typeof props.features.selecting === 'object' ? props.features.selecting.showCounter !== false : true);
1790
1806
  });
@@ -1802,6 +1818,42 @@ var script = defineComponent({
1802
1818
  width: columnWidths.value[column.name] || column.width
1803
1819
  }));
1804
1820
  });
1821
+ const scrollOffsetStart = ref(new Map());
1822
+ const scrollOffsetEnd = ref(new Map());
1823
+ const stickyOffsets = computed(() => {
1824
+ const start = new Map();
1825
+ const end = new Map();
1826
+ const startColumns = [];
1827
+ const endColumns = [];
1828
+ if (props.features.selecting) {
1829
+ startColumns.push({
1830
+ name: '_check',
1831
+ stickiness: 'start'
1832
+ });
1833
+ }
1834
+ actualColumns.value.forEach(column => {
1835
+ if (column.stickiness === 'start') {
1836
+ startColumns.push(column);
1837
+ } else if (column.stickiness === 'end') {
1838
+ endColumns.push(column);
1839
+ }
1840
+ });
1841
+ let currentStartOffset = 0;
1842
+ startColumns.forEach(column => {
1843
+ start.set(column.name, currentStartOffset);
1844
+ currentStartOffset += scrollOffsetStart.value.get(column.name) || 0;
1845
+ });
1846
+ let currentEndOffset = 0;
1847
+ // End columns are stacked from right to left
1848
+ [...endColumns].reverse().forEach(column => {
1849
+ end.set(column.name, currentEndOffset);
1850
+ currentEndOffset += scrollOffsetEnd.value.get(column.name) || 0;
1851
+ });
1852
+ return {
1853
+ start,
1854
+ end
1855
+ };
1856
+ });
1805
1857
  // Methods
1806
1858
  function updateSearchingModel(value) {
1807
1859
  searchingModel.value = value;
@@ -1809,19 +1861,19 @@ var script = defineComponent({
1809
1861
  function updateScrollOffset(header, offset, column) {
1810
1862
  switch (column.stickiness) {
1811
1863
  case 'start':
1812
- scrollOffsetStart.value.set(header, offset);
1864
+ scrollOffsetStart.value.set(column.name, offset);
1813
1865
  scrollOffsetStart.value = new Map(scrollOffsetStart.value);
1814
- scrollOffsetEnd.value.delete(header);
1866
+ scrollOffsetEnd.value.delete(column.name);
1815
1867
  scrollOffsetEnd.value = new Map(scrollOffsetEnd.value);
1816
1868
  break;
1817
1869
  case 'end':
1818
- scrollOffsetStart.value.delete(header);
1870
+ scrollOffsetStart.value.delete(column.name);
1819
1871
  scrollOffsetStart.value = new Map(scrollOffsetStart.value);
1820
- scrollOffsetEnd.value.set(header, offset);
1872
+ scrollOffsetEnd.value.set(column.name, offset);
1821
1873
  scrollOffsetEnd.value = new Map(scrollOffsetEnd.value);
1822
1874
  break;
1823
1875
  default:
1824
- removeScrollOffset(header);
1876
+ removeScrollOffset(column.name);
1825
1877
  break;
1826
1878
  }
1827
1879
  }
@@ -1891,10 +1943,10 @@ var script = defineComponent({
1891
1943
  // if (!props.interactiveRows) return;
1892
1944
  // context.emit('click:cell', { item, columnName, value });
1893
1945
  // }
1894
- function removeScrollOffset(header) {
1895
- scrollOffsetStart.value.delete(header);
1946
+ function removeScrollOffset(name) {
1947
+ scrollOffsetStart.value.delete(name);
1896
1948
  scrollOffsetStart.value = new Map(scrollOffsetStart.value);
1897
- scrollOffsetEnd.value.delete(header);
1949
+ scrollOffsetEnd.value.delete(name);
1898
1950
  scrollOffsetEnd.value = new Map(scrollOffsetEnd.value);
1899
1951
  }
1900
1952
  // Helpers
@@ -1924,6 +1976,7 @@ var script = defineComponent({
1924
1976
  searchingModel,
1925
1977
  sortingModel,
1926
1978
  pagingModel,
1979
+ stickyOffsets,
1927
1980
  updateScrollOffset,
1928
1981
  removeScrollOffset,
1929
1982
  updateSearchingModel,
@@ -2010,8 +2063,10 @@ var __vue_render__ = function () {
2010
2063
  staticClass: "md:!py-none",
2011
2064
  attrs: {
2012
2065
  "column": {
2066
+ name: '_check',
2013
2067
  stickiness: 'start'
2014
- }
2068
+ },
2069
+ "sticky-offset": _vm.stickyOffsets.start.get('_check')
2015
2070
  },
2016
2071
  on: {
2017
2072
  "update:scroll-offset": _vm.updateScrollOffset,
@@ -2034,7 +2089,8 @@ var __vue_render__ = function () {
2034
2089
  key: column.name,
2035
2090
  attrs: {
2036
2091
  "column": column,
2037
- "features": _vm.features
2092
+ "features": _vm.features,
2093
+ "sticky-offset": column.stickiness === 'start' ? _vm.stickyOffsets.start.get(column.name) : column.stickiness === 'end' ? _vm.stickyOffsets.end.get(column.name) : undefined
2038
2094
  },
2039
2095
  on: {
2040
2096
  "update:scroll-offset": _vm.updateScrollOffset,
@@ -2083,8 +2139,10 @@ var __vue_render__ = function () {
2083
2139
  }, [_vm.features.selecting ? [_c('OrDataGridTableContentCell', {
2084
2140
  attrs: {
2085
2141
  "column": {
2142
+ name: '_check',
2086
2143
  stickiness: 'start'
2087
2144
  },
2145
+ "sticky-offset": _vm.stickyOffsets.start.get('_check'),
2088
2146
  "variant": _vm.variant,
2089
2147
  "override": true
2090
2148
  }
@@ -2094,6 +2152,7 @@ var __vue_render__ = function () {
2094
2152
  attrs: {
2095
2153
  "column": column,
2096
2154
  "features": _vm.features,
2155
+ "sticky-offset": column.stickiness === 'start' ? _vm.stickyOffsets.start.get(column.name) : column.stickiness === 'end' ? _vm.stickyOffsets.end.get(column.name) : undefined,
2097
2156
  "variant": _vm.variant,
2098
2157
  "override": true
2099
2158
  }
@@ -2126,8 +2185,10 @@ var __vue_render__ = function () {
2126
2185
  staticClass: "md:!py-none",
2127
2186
  attrs: {
2128
2187
  "column": {
2188
+ name: '_check',
2129
2189
  stickiness: 'start'
2130
2190
  },
2191
+ "sticky-offset": _vm.stickyOffsets.start.get('_check'),
2131
2192
  "variant": _vm.variant,
2132
2193
  "override": true,
2133
2194
  "force-state": 'none'
@@ -2159,6 +2220,7 @@ var __vue_render__ = function () {
2159
2220
  "model-value": item[column.name],
2160
2221
  "column": column,
2161
2222
  "features": _vm.features,
2223
+ "sticky-offset": column.stickiness === 'start' ? _vm.stickyOffsets.start.get(column.name) : column.stickiness === 'end' ? _vm.stickyOffsets.end.get(column.name) : undefined,
2162
2224
  "variant": _vm.variant
2163
2225
  },
2164
2226
  on: {
@@ -23,6 +23,7 @@ export type DataGridColumn = {
23
23
  sorting?: boolean;
24
24
  resizing?: boolean;
25
25
  wrapping?: boolean;
26
+ fitContent?: boolean;
26
27
  control?: {
27
28
  type: 'text' | 'number' | 'rating' | 'select' | 'checkbox' | 'switch' | 'date' | 'time' | 'datetime' | 'tags';
28
29
  options?: SelectItem[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onereach/ui-components-vue2",
3
- "version": "26.4.1-beta.5880.0",
3
+ "version": "26.4.1-beta.5882.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.1-beta.5880.0",
44
- "@onereach/ui-components-common": "^26.4.1-beta.5880.0",
43
+ "@onereach/styles": "^26.4.1-beta.5882.0",
44
+ "@onereach/ui-components-common": "^26.4.1-beta.5882.0",
45
45
  "@splidejs/splide": "4.0.6",
46
46
  "@tiptap/core": "2.27.1",
47
47
  "@tiptap/extension-blockquote": "2.27.1",