@visactor/vtable 1.26.7 → 1.26.8

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.
Files changed (183) hide show
  1. package/cjs/ListTable.d.ts +1 -1
  2. package/cjs/ListTable.js +21 -13
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +16 -16
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.d.ts +1 -1
  7. package/cjs/PivotTable.js +65 -63
  8. package/cjs/PivotTable.js.map +1 -1
  9. package/cjs/body-helper/body-helper.js +2 -1
  10. package/cjs/components/index.js +1 -2
  11. package/cjs/core/BaseTable.js +2 -2
  12. package/cjs/core/BaseTable.js.map +1 -1
  13. package/cjs/core/record-helper.d.ts +1 -1
  14. package/cjs/core/record-helper.js +60 -12
  15. package/cjs/core/record-helper.js.map +1 -1
  16. package/cjs/core/tableHelper.js +2 -1
  17. package/cjs/data/DataSource.d.ts +3 -1
  18. package/cjs/data/DataSource.js +71 -23
  19. package/cjs/data/DataSource.js.map +1 -1
  20. package/cjs/dataset/dataset.d.ts +9 -1
  21. package/cjs/dataset/dataset.js +344 -187
  22. package/cjs/dataset/dataset.js.map +1 -1
  23. package/cjs/event/event.d.ts +94 -8
  24. package/cjs/event/event.js +698 -191
  25. package/cjs/event/event.js.map +1 -1
  26. package/cjs/event/helper.js +1 -1
  27. package/cjs/event/media-click.js +4 -1
  28. package/cjs/event/media-click.js.map +1 -1
  29. package/cjs/event/scroll.js +1 -1
  30. package/cjs/event/sparkline-event.js +1 -2
  31. package/cjs/event/util.js +2 -2
  32. package/cjs/event/util.js.map +1 -1
  33. package/cjs/index.d.ts +1 -1
  34. package/cjs/index.js +1 -1
  35. package/cjs/index.js.map +1 -1
  36. package/cjs/layout/pivot-header-layout.js +33 -17
  37. package/cjs/layout/pivot-header-layout.js.map +1 -1
  38. package/cjs/plugins/custom-cell-style.js +1 -1
  39. package/cjs/plugins/index.js +2 -1
  40. package/cjs/plugins/interface.js +1 -1
  41. package/cjs/plugins/invert-highlight.js +1 -1
  42. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  43. package/cjs/plugins/plugin-manager.js +1 -1
  44. package/cjs/scenegraph/group-creater/cell-helper.js +27 -10
  45. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  46. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  47. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +14 -10
  48. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  49. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +17 -4
  50. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  51. package/cjs/scenegraph/layout/compute-col-width.js +6 -1
  52. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  53. package/cjs/scenegraph/layout/compute-row-height.js +11 -3
  54. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  55. package/cjs/scenegraph/layout/update-height.d.ts +4 -3
  56. package/cjs/scenegraph/layout/update-height.js +43 -29
  57. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  58. package/cjs/scenegraph/layout/update-width.d.ts +2 -1
  59. package/cjs/scenegraph/layout/update-width.js +49 -37
  60. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  61. package/cjs/scenegraph/scenegraph.d.ts +2 -2
  62. package/cjs/scenegraph/scenegraph.js +6 -5
  63. package/cjs/scenegraph/scenegraph.js.map +1 -1
  64. package/cjs/scenegraph/utils/corner-custom-merge.d.ts +10 -0
  65. package/cjs/scenegraph/utils/corner-custom-merge.js +68 -0
  66. package/cjs/scenegraph/utils/corner-custom-merge.js.map +1 -0
  67. package/cjs/state/resize/update-resize-column.js +25 -13
  68. package/cjs/state/resize/update-resize-column.js.map +1 -1
  69. package/cjs/state/resize/update-resize-row.js +24 -12
  70. package/cjs/state/resize/update-resize-row.js.map +1 -1
  71. package/cjs/themes.d.ts +4 -2
  72. package/cjs/themes.js +12 -4
  73. package/cjs/themes.js.map +1 -1
  74. package/cjs/tools/get-data-path/create-dataset.js +4 -4
  75. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  76. package/cjs/tools/get-data-path/index.js +4 -4
  77. package/cjs/tools/get-data-path/index.js.map +1 -1
  78. package/cjs/tools/style.d.ts +3 -1
  79. package/cjs/tools/style.js +2 -2
  80. package/cjs/tools/style.js.map +1 -1
  81. package/cjs/ts-types/common.d.ts +1 -0
  82. package/cjs/ts-types/common.js.map +1 -1
  83. package/cjs/ts-types/dataset/aggregation.d.ts +1 -0
  84. package/cjs/ts-types/dataset/aggregation.js +21 -3
  85. package/cjs/ts-types/dataset/aggregation.js.map +1 -1
  86. package/cjs/ts-types/new-data-set.d.ts +1 -0
  87. package/cjs/ts-types/new-data-set.js.map +1 -1
  88. package/cjs/ts-types/table-engine.d.ts +3 -2
  89. package/cjs/ts-types/table-engine.js.map +1 -1
  90. package/cjs/vrender.js.map +1 -1
  91. package/dist/vtable.js +2224 -779
  92. package/dist/vtable.min.js +1 -1
  93. package/es/ListTable.d.ts +1 -1
  94. package/es/ListTable.js +21 -15
  95. package/es/ListTable.js.map +1 -1
  96. package/es/PivotChart.js +16 -16
  97. package/es/PivotChart.js.map +1 -1
  98. package/es/PivotTable.d.ts +1 -1
  99. package/es/PivotTable.js +65 -63
  100. package/es/PivotTable.js.map +1 -1
  101. package/es/body-helper/body-helper.js +2 -1
  102. package/es/components/index.js +1 -2
  103. package/es/core/BaseTable.js +2 -2
  104. package/es/core/BaseTable.js.map +1 -1
  105. package/es/core/record-helper.d.ts +1 -1
  106. package/es/core/record-helper.js +60 -12
  107. package/es/core/record-helper.js.map +1 -1
  108. package/es/core/tableHelper.js +2 -1
  109. package/es/data/DataSource.d.ts +3 -1
  110. package/es/data/DataSource.js +70 -23
  111. package/es/data/DataSource.js.map +1 -1
  112. package/es/dataset/dataset.d.ts +9 -1
  113. package/es/dataset/dataset.js +341 -187
  114. package/es/dataset/dataset.js.map +1 -1
  115. package/es/event/event.d.ts +94 -8
  116. package/es/event/event.js +696 -191
  117. package/es/event/event.js.map +1 -1
  118. package/es/event/helper.js +1 -1
  119. package/es/event/media-click.js +4 -1
  120. package/es/event/media-click.js.map +1 -1
  121. package/es/event/scroll.js +1 -1
  122. package/es/event/sparkline-event.js +1 -2
  123. package/es/event/util.js +2 -2
  124. package/es/event/util.js.map +1 -1
  125. package/es/index.d.ts +1 -1
  126. package/es/index.js +1 -1
  127. package/es/index.js.map +1 -1
  128. package/es/layout/pivot-header-layout.js +29 -17
  129. package/es/layout/pivot-header-layout.js.map +1 -1
  130. package/es/plugins/custom-cell-style.js +1 -1
  131. package/es/plugins/index.js +2 -1
  132. package/es/plugins/interface.js +1 -1
  133. package/es/plugins/invert-highlight.js +1 -1
  134. package/es/plugins/list-tree-stick-cell.js +1 -1
  135. package/es/plugins/plugin-manager.js +1 -1
  136. package/es/scenegraph/group-creater/cell-helper.js +23 -9
  137. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  138. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  139. package/es/scenegraph/group-creater/cell-type/text-cell.js +13 -8
  140. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  141. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +17 -5
  142. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  143. package/es/scenegraph/layout/compute-col-width.js +6 -1
  144. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  145. package/es/scenegraph/layout/compute-row-height.js +11 -3
  146. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  147. package/es/scenegraph/layout/update-height.d.ts +4 -3
  148. package/es/scenegraph/layout/update-height.js +40 -26
  149. package/es/scenegraph/layout/update-height.js.map +1 -1
  150. package/es/scenegraph/layout/update-width.d.ts +2 -1
  151. package/es/scenegraph/layout/update-width.js +46 -34
  152. package/es/scenegraph/layout/update-width.js.map +1 -1
  153. package/es/scenegraph/scenegraph.d.ts +2 -2
  154. package/es/scenegraph/scenegraph.js +7 -5
  155. package/es/scenegraph/scenegraph.js.map +1 -1
  156. package/es/scenegraph/utils/corner-custom-merge.d.ts +10 -0
  157. package/es/scenegraph/utils/corner-custom-merge.js +59 -0
  158. package/es/scenegraph/utils/corner-custom-merge.js.map +1 -0
  159. package/es/state/resize/update-resize-column.js +19 -10
  160. package/es/state/resize/update-resize-column.js.map +1 -1
  161. package/es/state/resize/update-resize-row.js +19 -9
  162. package/es/state/resize/update-resize-row.js.map +1 -1
  163. package/es/themes.d.ts +4 -2
  164. package/es/themes.js +11 -3
  165. package/es/themes.js.map +1 -1
  166. package/es/tools/get-data-path/create-dataset.js +4 -4
  167. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  168. package/es/tools/get-data-path/index.js +4 -4
  169. package/es/tools/get-data-path/index.js.map +1 -1
  170. package/es/tools/style.d.ts +3 -1
  171. package/es/tools/style.js +2 -2
  172. package/es/tools/style.js.map +1 -1
  173. package/es/ts-types/common.d.ts +1 -0
  174. package/es/ts-types/common.js.map +1 -1
  175. package/es/ts-types/dataset/aggregation.d.ts +1 -0
  176. package/es/ts-types/dataset/aggregation.js +21 -3
  177. package/es/ts-types/dataset/aggregation.js.map +1 -1
  178. package/es/ts-types/new-data-set.d.ts +1 -0
  179. package/es/ts-types/new-data-set.js.map +1 -1
  180. package/es/ts-types/table-engine.d.ts +3 -2
  181. package/es/ts-types/table-engine.js.map +1 -1
  182. package/es/vrender.js.map +1 -1
  183. package/package.json +9 -9
@@ -6,9 +6,9 @@ import { applyChainSafe, getOrApply, obj, isPromise, emptyFn } from "../tools/he
6
6
 
7
7
  import { EventTarget } from "../event/EventTarget";
8
8
 
9
- import { computeChildrenNodeLength, getValueByPath, isAllDigits } from "../tools/util";
9
+ import { computeChildrenNodeLength, isAllDigits } from "../tools/util";
10
10
 
11
- import { arrayEqual, cloneDeep, isNumber, isObject, isValid } from "@visactor/vutils";
11
+ import { arrayEqual, cloneDeep, isNumber, isValid } from "@visactor/vutils";
12
12
 
13
13
  import { RecordAggregator, SumAggregator, CountAggregator, MaxAggregator, MinAggregator, AvgAggregator, NoneAggregator, CustomAggregator } from "../ts-types/dataset/aggregation";
14
14
 
@@ -41,15 +41,15 @@ export function getField(record, field, col, row, table, promiseCallBack) {
41
41
  if ((void 0 === fieldGet || "" === fieldGet) && Array.isArray(record)) {
42
42
  return record[col - table.leftRowSeriesNumberCount];
43
43
  }
44
- if (isObject(record) && fieldGet in record) {
44
+ if (Array.isArray(fieldGet)) {
45
+ return getValue(getRecordFieldValue(record, fieldGet), promiseCallBack);
46
+ }
47
+ if (isRecordContainer(record) && fieldGet in record) {
45
48
  return getValue(record[fieldGet], promiseCallBack);
46
49
  }
47
50
  if ("function" == typeof fieldGet) {
48
51
  return getValue(fieldGet(record, col, row, table), promiseCallBack);
49
52
  }
50
- if (Array.isArray(fieldGet)) {
51
- return getValue(getValueByPath(record, [ ...fieldGet ]), promiseCallBack);
52
- }
53
53
  const fieldArray = `${fieldGet}`.split(".");
54
54
  if (fieldArray.length <= 1) {
55
55
  return getValue(record[fieldGet], promiseCallBack);
@@ -57,6 +57,56 @@ export function getField(record, field, col, row, table, promiseCallBack) {
57
57
  return getValue(applyChainSafe(record, ((val, name) => getField(val, name, col, row, table, emptyFn)), ...fieldArray), promiseCallBack);
58
58
  }
59
59
 
60
+ function isRecordContainer(value) {
61
+ return null !== value && "object" == typeof value;
62
+ }
63
+
64
+ function getRecordFieldPath(field) {
65
+ return Array.isArray(field) ? field : "string" == typeof field && field.includes(".") ? field.split(".") : void 0;
66
+ }
67
+
68
+ function hasRecordField(record, field) {
69
+ if (!isRecordContainer(record)) return !1;
70
+ const path = getRecordFieldPath(field);
71
+ if (!Array.isArray(field) && field in record) return !0;
72
+ if (!path) return !1;
73
+ let target = record;
74
+ for (const key of path) {
75
+ if (!isRecordContainer(target) || !(key in target)) return !1;
76
+ target = target[key];
77
+ }
78
+ return !0;
79
+ }
80
+
81
+ export function getRecordFieldValue(record, field) {
82
+ if (null == record) return;
83
+ const path = getRecordFieldPath(field);
84
+ return !Array.isArray(field) && isRecordContainer(record) && field in record ? record[field] : path ? path.reduce(((current, key) => null == current ? void 0 : current[key]), record) : record[field];
85
+ }
86
+
87
+ function setRecordProperty(record, key, value) {
88
+ "__proto__" !== key && "constructor" !== key && "prototype" !== key ? record[key] = value : Object.defineProperty(record, key, {
89
+ configurable: !0,
90
+ enumerable: !0,
91
+ value: value,
92
+ writable: !0
93
+ });
94
+ }
95
+
96
+ export function setRecordFieldValue(record, field, value) {
97
+ if (null == record) return;
98
+ const path = getRecordFieldPath(field);
99
+ if (!path || !Array.isArray(field) && isRecordContainer(record) && field in record) return void setRecordProperty(record, field, value);
100
+ if (0 === path.length) return;
101
+ let target = record;
102
+ for (let i = 0; i < path.length - 1; i++) {
103
+ const key = path[i];
104
+ Object.prototype.hasOwnProperty.call(target, key) && null !== target[key] && "object" == typeof target[key] || setRecordProperty(target, key, {}),
105
+ target = target[key];
106
+ }
107
+ setRecordProperty(target, path[path.length - 1], value);
108
+ }
109
+
60
110
  function _getIndex(sortedIndexMap, index) {
61
111
  if (!sortedIndexMap) return index;
62
112
  const mapIndex = sortedIndexMap[index];
@@ -308,23 +358,22 @@ export class DataSource extends EventTarget {
308
358
  return childrenLength;
309
359
  }
310
360
  changeFieldValue(value, index, field, col, row, table) {
311
- var _a;
312
361
  if (null !== field && index >= 0) {
313
362
  const dataIndex = this.getIndexKey(index);
314
363
  if (this.cacheBeforeChangedRecord(dataIndex, table), void 0 !== field && "" !== field || (field = col - table.leftRowSeriesNumberCount),
315
- "string" == typeof field || "number" == typeof field) {
316
- const beforeChangedValue = null === (_a = this.beforeChangedRecordsMap.get(dataIndex.toString())) || void 0 === _a ? void 0 : _a[field], record = this.getOriginalRecord(dataIndex);
364
+ "string" == typeof field || "number" == typeof field || Array.isArray(field)) {
365
+ const beforeChangedValue = getRecordFieldValue(this.beforeChangedRecordsMap.get(dataIndex.toString()), field), record = this.getOriginalRecord(dataIndex);
317
366
  let formatValue = value;
318
- "number" == typeof beforeChangedValue && isAllDigits(value) && (formatValue = parseFloat(value)),
319
- isPromise(record) ? record.then((record => {
320
- record[field] = formatValue;
321
- })).catch((err => {})) : record ? record[field] = formatValue : (this.records[dataIndex] = "Array" === this.addRecordRule ? [] : {},
322
- this.records[dataIndex][field] = formatValue);
367
+ if ("number" == typeof beforeChangedValue && isAllDigits(value) && (formatValue = parseFloat(value)),
368
+ isPromise(record)) return record.then((record => (setRecordFieldValue(record, field, formatValue),
369
+ formatValue))).catch((err => {}));
370
+ record ? setRecordFieldValue(record, field, formatValue) : (this.records[dataIndex] = "Array" === this.addRecordRule ? [] : {},
371
+ setRecordFieldValue(this.records[dataIndex], field, formatValue));
323
372
  }
324
373
  }
325
374
  }
326
375
  changeFieldValueByRecordIndex(value, recordIndex, field, table) {
327
- var _a, _b, _c, _d;
376
+ var _a, _b, _c;
328
377
  if (null === field) return;
329
378
  if (null == recordIndex) return;
330
379
  const rawKey = recordIndex.toString();
@@ -332,12 +381,12 @@ export class DataSource extends EventTarget {
332
381
  const rawRecords = Array.isArray(null === (_a = this.dataSourceObj) || void 0 === _a ? void 0 : _a.records) ? this.dataSourceObj.records : null, originRecord = rawRecords ? Array.isArray(recordIndex) ? getValueFromDeepArray(rawRecords, recordIndex) : rawRecords[recordIndex] : void 0;
333
382
  this.beforeChangedRecordsMap.set(rawKey, null !== (_b = cloneDeep(originRecord, void 0, [ "vtable_gantt_linkedFrom", "vtable_gantt_linkedTo" ])) && void 0 !== _b ? _b : {});
334
383
  }
335
- if ("string" == typeof field || "number" == typeof field) {
336
- const beforeChangedValue = null === (_c = this.beforeChangedRecordsMap.get(rawKey)) || void 0 === _c ? void 0 : _c[field], rawRecords = Array.isArray(null === (_d = this.dataSourceObj) || void 0 === _d ? void 0 : _d.records) ? this.dataSourceObj.records : null, record = rawRecords ? Array.isArray(recordIndex) ? getValueFromDeepArray(rawRecords, recordIndex) : rawRecords[recordIndex] : void 0;
384
+ if ("string" == typeof field || "number" == typeof field || Array.isArray(field)) {
385
+ const beforeChangedValue = getRecordFieldValue(this.beforeChangedRecordsMap.get(rawKey), field), rawRecords = Array.isArray(null === (_c = this.dataSourceObj) || void 0 === _c ? void 0 : _c.records) ? this.dataSourceObj.records : null, record = rawRecords ? Array.isArray(recordIndex) ? getValueFromDeepArray(rawRecords, recordIndex) : rawRecords[recordIndex] : void 0;
337
386
  let formatValue = value;
338
387
  "number" == typeof beforeChangedValue && isAllDigits(value) && (formatValue = parseFloat(value)),
339
- record ? record[field] = formatValue : rawRecords && "number" == typeof recordIndex && (rawRecords[recordIndex] = "Array" === this.addRecordRule ? [] : {},
340
- rawRecords[recordIndex][field] = formatValue);
388
+ record ? setRecordFieldValue(record, field, formatValue) : rawRecords && "number" == typeof recordIndex && (rawRecords[recordIndex] = "Array" === this.addRecordRule ? [] : {},
389
+ setRecordFieldValue(rawRecords[recordIndex], field, formatValue));
341
390
  }
342
391
  }
343
392
  cacheBeforeChangedRecord(dataIndex, table) {
@@ -730,8 +779,7 @@ export class DataSource extends EventTarget {
730
779
  hasOriginalField(index, field) {
731
780
  if (null === field) return !1;
732
781
  if ("function" == typeof field) return !0;
733
- const record = this.getOriginalRecord(index);
734
- return Boolean(record && field in record);
782
+ return hasRecordField(this.getOriginalRecord(index), field);
735
783
  }
736
784
  fieldPromiseCallBack(_index, _field, _value) {}
737
785
  recordPromiseCallBack(_index, _record) {}
@@ -874,5 +922,4 @@ export function sortRecordIndexs(recordIndexs, sort) {
874
922
  }
875
923
  return 0;
876
924
  }));
877
- }
878
- //# sourceMappingURL=DataSource.js.map
925
+ }