@onereach/ui-components-vue2 26.7.1-beta.5969.0 → 26.8.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.
@@ -1696,6 +1696,10 @@ var script = defineComponent({
1696
1696
  type: Array,
1697
1697
  default: () => []
1698
1698
  },
1699
+ itemKey: {
1700
+ type: [String, Function],
1701
+ default: 'id'
1702
+ },
1699
1703
  columns: {
1700
1704
  type: Array,
1701
1705
  required: true
@@ -1745,11 +1749,11 @@ var script = defineComponent({
1745
1749
  // State
1746
1750
  const selectingIndicator = computed({
1747
1751
  get: () => {
1748
- return !!(props.items && props.items.length) && props.items.every(item => selectingModel.value.includes(item.id));
1752
+ return !!(props.items && props.items.length) && props.items.every(item => selectingModel.value.includes(getItemId(item)));
1749
1753
  },
1750
1754
  set: value => {
1751
1755
  if (value && props.items) {
1752
- selectingModel.value = [...new Set([...selectingModel.value, ...props.items.map(item => item.id)])];
1756
+ selectingModel.value = [...new Set([...selectingModel.value, ...props.items.map(item => getItemId(item))])];
1753
1757
  } else {
1754
1758
  selectingModel.value = [];
1755
1759
  }
@@ -1821,15 +1825,16 @@ var script = defineComponent({
1821
1825
  });
1822
1826
  }
1823
1827
  });
1824
- const isExpanded = item => expandedModel.value.indexOf(item.id) !== -1;
1828
+ const isExpanded = item => expandedModel.value.indexOf(getItemId(item)) !== -1;
1825
1829
  const toggleExpand = item => {
1826
1830
  if (!item.children || item.children.length === 0) return;
1831
+ const itemId = getItemId(item);
1827
1832
  const expanded = expandedModel.value;
1828
- const index = expanded.indexOf(item.id);
1833
+ const index = expanded.indexOf(itemId);
1829
1834
  if (index === -1) {
1830
- expandedModel.value = [...expanded, item.id];
1835
+ expandedModel.value = [...expanded, itemId];
1831
1836
  } else {
1832
- expandedModel.value = expanded.filter(id => id !== item.id);
1837
+ expandedModel.value = expanded.filter(id => id !== itemId);
1833
1838
  }
1834
1839
  };
1835
1840
  watch(() => pagingModel.value && pagingModel.value.offset, () => {
@@ -2031,6 +2036,18 @@ var script = defineComponent({
2031
2036
  block: 'nearest'
2032
2037
  });
2033
2038
  }
2039
+ function getItemValue(item, columnName) {
2040
+ return item[columnName];
2041
+ }
2042
+ function getItemId(item) {
2043
+ if (typeof props.itemKey === 'function') {
2044
+ return props.itemKey(item);
2045
+ }
2046
+ return getItemValue(item, props.itemKey);
2047
+ }
2048
+ function setItemValue(item, columnName, value) {
2049
+ item[columnName] = value;
2050
+ }
2034
2051
  return {
2035
2052
  root,
2036
2053
  rootStyles,
@@ -2060,6 +2077,8 @@ var script = defineComponent({
2060
2077
  updateScrollOffset,
2061
2078
  removeScrollOffset,
2062
2079
  updateSearchingModel,
2080
+ getItemValue,
2081
+ getItemId,
2063
2082
  scrollToTop: () => {
2064
2083
  if (table.value && table.value.root) {
2065
2084
  table.value.root.scrollTo({
@@ -2070,7 +2089,7 @@ var script = defineComponent({
2070
2089
  },
2071
2090
  scrollTo,
2072
2091
  onInput: (item, columnName, value) => {
2073
- item[columnName] = value;
2092
+ setItemValue(item, columnName, value);
2074
2093
  context.emit('update:item', item);
2075
2094
  }
2076
2095
  };
@@ -2248,10 +2267,10 @@ var __vue_render__ = function () {
2248
2267
  })], 2);
2249
2268
  }) : _vm.items.length > 0 ? _vm._l(_vm.actualItems, function (item) {
2250
2269
  return _c('OrDataGridTableContentRow', {
2251
- key: item.id,
2270
+ key: _vm.getItemId(item),
2252
2271
  attrs: {
2253
2272
  "variant": _vm.variant,
2254
- "selected": _vm.selectingModel.includes(item.id),
2273
+ "selected": _vm.selectingModel.includes(_vm.getItemId(item)),
2255
2274
  "interactive": _vm.interactiveRows
2256
2275
  },
2257
2276
  on: {
@@ -2280,15 +2299,15 @@ var __vue_render__ = function () {
2280
2299
  },
2281
2300
  on: {
2282
2301
  "mouseenter": function () {
2283
- return _vm.handleMouseEnterCell(item, 'selecting', _vm.selectingModel.indexOf(item.id) !== -1);
2302
+ return _vm.handleMouseEnterCell(item, 'selecting', _vm.selectingModel.indexOf(_vm.getItemId(item)) !== -1);
2284
2303
  },
2285
2304
  "mouseleave": function () {
2286
- return _vm.handleMouseLeaveCell(item, 'selecting', _vm.selectingModel.indexOf(item.id) !== -1);
2305
+ return _vm.handleMouseLeaveCell(item, 'selecting', _vm.selectingModel.indexOf(_vm.getItemId(item)) !== -1);
2287
2306
  }
2288
2307
  }
2289
2308
  }, [_c('OrCheckbox', {
2290
2309
  attrs: {
2291
- "value": item.id,
2310
+ "value": _vm.getItemId(item),
2292
2311
  "disabled": _vm.selectingDisabled
2293
2312
  },
2294
2313
  model: {
@@ -2302,7 +2321,7 @@ var __vue_render__ = function () {
2302
2321
  return _c('OrDataGridTableContentCell', {
2303
2322
  key: column.name,
2304
2323
  attrs: {
2305
- "model-value": item[column.name],
2324
+ "model-value": _vm.getItemValue(item, column.name),
2306
2325
  "column": column,
2307
2326
  "features": _vm.features,
2308
2327
  "sticky-offset": column.stickiness === 'start' ? _vm.stickyOffsets.start.get(column.name) : column.stickiness === 'end' ? _vm.stickyOffsets.end.get(column.name) : undefined,
@@ -2316,10 +2335,10 @@ var __vue_render__ = function () {
2316
2335
  return _vm.scrollTo($event);
2317
2336
  },
2318
2337
  "mouseenter": function () {
2319
- return _vm.handleMouseEnterCell(item, column.name, item[column.name]);
2338
+ return _vm.handleMouseEnterCell(item, column.name, _vm.getItemValue(item, column.name));
2320
2339
  },
2321
2340
  "mouseleave": function () {
2322
- return _vm.handleMouseLeaveCell(item, column.name, item[column.name]);
2341
+ return _vm.handleMouseLeaveCell(item, column.name, _vm.getItemValue(item, column.name));
2323
2342
  }
2324
2343
  }
2325
2344
  }, [_c('div', {
@@ -2351,7 +2370,7 @@ var __vue_render__ = function () {
2351
2370
  staticClass: "min-w-0",
2352
2371
  class: [columnIndex === 0 ? 'flex-grow' : '', column.alignment === 'end' ? 'text-end' : column.alignment === 'center' ? 'text-center' : 'text-start', (column.wrapping !== undefined && column.wrapping !== null ? column.wrapping : _vm.variant === 'dynamic' && !column.control) ? 'whitespace-pre-wrap break-words' : column.fitContent ? '' : 'truncate']
2353
2372
  }, [_vm._t(column.name, function () {
2354
- return [_vm._v(_vm._s(item[column.name]))];
2373
+ return [_vm._v(_vm._s(_vm.getItemValue(item, column.name)))];
2355
2374
  }, {
2356
2375
  "column": column,
2357
2376
  "item": item
@@ -12,13 +12,12 @@ export type DataGridModelValue = ModelValue<{
12
12
  paging: PaginationModelValue;
13
13
  expanded: ModelValue<Id[]>;
14
14
  }>;
15
- export type DataGridRow<T extends DataModel = DataModel> = T & {
16
- [key: string]: unknown;
17
- };
18
- export type DataGridItem<T extends DataGridRow = DataGridRow> = T & {
15
+ export type DataGridRow<T extends object = DataModel> = T;
16
+ export type DataGridItem<T extends object = DataGridRow> = T & {
19
17
  children?: DataGridItem<T>[];
20
18
  level?: number;
21
19
  };
20
+ export type DataGridItemKey<T extends object = DataGridRow> = string | ((item: DataGridItem<T>) => Id);
22
21
  export type DataGridColumn = {
23
22
  name: string;
24
23
  label?: string;
@@ -42,6 +41,7 @@ export declare enum DataGridVariant {
42
41
  Compact = "compact",
43
42
  Dynamic = "dynamic"
44
43
  }
44
+ export type DataGridVariantValue = `${DataGridVariant}`;
45
45
  export type DataGridFeatures = {
46
46
  selecting?: boolean | {
47
47
  showCounter?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onereach/ui-components-vue2",
3
- "version": "26.7.1-beta.5969.0",
3
+ "version": "26.8.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.7.1-beta.5969.0",
44
- "@onereach/ui-components-common": "^26.7.1-beta.5969.0",
43
+ "@onereach/styles": "^26.8.0",
44
+ "@onereach/ui-components-common": "^26.8.0",
45
45
  "@splidejs/splide": "4.0.6",
46
46
  "@tiptap/core": "2.27.1",
47
47
  "@tiptap/extension-blockquote": "2.27.1",
@@ -102,5 +102,6 @@
102
102
  "publishConfig": {
103
103
  "access": "public"
104
104
  },
105
- "npmUnpacked": "4.15.2"
105
+ "npmUnpacked": "4.15.2",
106
+ "gitHead": "0592687da00c9a1650a8748d9ef06e9f4055a04c"
106
107
  }