@visactor/vtable 1.21.1 → 1.22.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.
Files changed (75) hide show
  1. package/cjs/ListTable.d.ts +3 -2
  2. package/cjs/ListTable.js +54 -14
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +1 -1
  5. package/cjs/PivotTable.js +1 -1
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/core/BaseTable.js +1 -1
  8. package/cjs/core/BaseTable.js.map +1 -1
  9. package/cjs/core/TABLE_EVENT_TYPE.d.ts +7 -0
  10. package/cjs/core/TABLE_EVENT_TYPE.js +8 -1
  11. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  12. package/cjs/core/record-helper.d.ts +2 -2
  13. package/cjs/core/record-helper.js +141 -129
  14. package/cjs/core/record-helper.js.map +1 -1
  15. package/cjs/core/tableHelper.js +6 -1
  16. package/cjs/core/tableHelper.js.map +1 -1
  17. package/cjs/data/CachedDataSource.js +2 -2
  18. package/cjs/data/CachedDataSource.js.map +1 -1
  19. package/cjs/event/listener/table-group.js +2 -1
  20. package/cjs/event/listener/table-group.js.map +1 -1
  21. package/cjs/index.d.ts +1 -1
  22. package/cjs/index.js +1 -1
  23. package/cjs/index.js.map +1 -1
  24. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +8 -2
  25. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  26. package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
  27. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  28. package/cjs/scenegraph/scenegraph.js +1 -1
  29. package/cjs/scenegraph/scenegraph.js.map +1 -1
  30. package/cjs/scenegraph/select/update-select-border.js +6 -1
  31. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  32. package/cjs/scenegraph/utils/text-icon-layout.js +17 -3
  33. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  34. package/cjs/ts-types/events.d.ts +51 -2
  35. package/cjs/ts-types/events.js.map +1 -1
  36. package/cjs/vrender.js.map +1 -1
  37. package/dist/vtable.js +354 -210
  38. package/dist/vtable.min.js +2 -2
  39. package/es/ListTable.d.ts +3 -2
  40. package/es/ListTable.js +54 -14
  41. package/es/ListTable.js.map +1 -1
  42. package/es/PivotTable.d.ts +1 -1
  43. package/es/PivotTable.js +1 -1
  44. package/es/PivotTable.js.map +1 -1
  45. package/es/core/BaseTable.js +1 -1
  46. package/es/core/BaseTable.js.map +1 -1
  47. package/es/core/TABLE_EVENT_TYPE.d.ts +7 -0
  48. package/es/core/TABLE_EVENT_TYPE.js +8 -1
  49. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  50. package/es/core/record-helper.d.ts +2 -2
  51. package/es/core/record-helper.js +141 -129
  52. package/es/core/record-helper.js.map +1 -1
  53. package/es/core/tableHelper.js +7 -2
  54. package/es/core/tableHelper.js.map +1 -1
  55. package/es/data/CachedDataSource.js +2 -2
  56. package/es/data/CachedDataSource.js.map +1 -1
  57. package/es/event/listener/table-group.js +2 -1
  58. package/es/event/listener/table-group.js.map +1 -1
  59. package/es/index.d.ts +1 -1
  60. package/es/index.js +1 -1
  61. package/es/index.js.map +1 -1
  62. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +8 -2
  63. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  64. package/es/scenegraph/group-creater/progress/proxy.js +1 -1
  65. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  66. package/es/scenegraph/scenegraph.js +1 -1
  67. package/es/scenegraph/scenegraph.js.map +1 -1
  68. package/es/scenegraph/select/update-select-border.js +7 -0
  69. package/es/scenegraph/select/update-select-border.js.map +1 -1
  70. package/es/scenegraph/utils/text-icon-layout.js +18 -2
  71. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  72. package/es/ts-types/events.d.ts +51 -2
  73. package/es/ts-types/events.js.map +1 -1
  74. package/es/vrender.js.map +1 -1
  75. package/package.json +4 -4
package/es/ListTable.d.ts CHANGED
@@ -22,8 +22,8 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
22
22
  clearColWidthCache?: boolean;
23
23
  }): void;
24
24
  private _recreateSceneForStateChange;
25
- addColumn(column: ColumnDefine, colIndex?: number, isMaintainArrayData?: boolean): void;
26
- deleteColumn(colIndex: number): void;
25
+ addColumns(toAddColumns: ColumnDefine[], colIndex?: number, isMaintainArrayData?: boolean): void;
26
+ deleteColumns(deleteColIndexs: number[], isMaintainArrayData?: boolean): void;
27
27
  get columns(): ColumnsDefine;
28
28
  get header(): ColumnsDefine;
29
29
  set header(header: ColumnsDefine);
@@ -69,6 +69,7 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
69
69
  _getSortFuncFromHeaderOption(columns: ColumnsDefine | undefined, field: FieldDef, fieldKey?: FieldKeyDef): SortState['orderFn'] | undefined;
70
70
  updateSortState(sortState: SortState[] | SortState | null, executeSort?: boolean): void;
71
71
  updateFilterRules(filterRules: FilterRules): void;
72
+ getFilteredRecords(): any[];
72
73
  getCheckboxState(field?: string | number): any[];
73
74
  getCellCheckboxState(col: number, row: number): boolean | "indeterminate";
74
75
  getRadioState(field?: string | number): number | boolean | Record<string | number, number | boolean | Record<number, number>>;
package/es/ListTable.js CHANGED
@@ -121,21 +121,35 @@ export class ListTable extends BaseTable {
121
121
  this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row),
122
122
  this.renderAsync(), this.eventManager.updateEventBinder();
123
123
  }
124
- addColumn(column, colIndex, isMaintainArrayData = !0) {
124
+ addColumns(toAddColumns, colIndex, isMaintainArrayData = !0) {
125
125
  const columns = this.options.columns;
126
- if (void 0 === colIndex) columns.push(column); else {
127
- if (isMaintainArrayData) for (let i = 0; i < columns.length; i++) "number" == typeof columns[i].field && columns[i].field >= colIndex && (columns[i].field = columns[i].field + 1);
128
- columns.splice(colIndex, 0, column);
129
- }
130
- if (isMaintainArrayData) for (let i = 0; i < this.records.length; i++) {
131
- const record = this.records[i];
132
- Array.isArray(record) && record.splice(colIndex, 0, void 0);
126
+ if (void 0 === colIndex ? (colIndex = columns.length, columns.push(...toAddColumns)) : columns.splice(colIndex, 0, ...toAddColumns),
127
+ isMaintainArrayData) {
128
+ for (let i = 0; i < columns.length; i++) columns[i].field = i;
129
+ for (let i = 0; i < this.records.length; i++) {
130
+ const record = this.records[i];
131
+ Array.isArray(record) && record.splice(colIndex, 0, ...Array(toAddColumns.length).fill(void 0));
132
+ }
133
133
  }
134
- this.updateColumns(columns);
134
+ this.updateColumns(columns), this.fireListeners(TABLE_EVENT_TYPE.ADD_COLUMN, {
135
+ columnIndex: colIndex,
136
+ columnCount: toAddColumns.length,
137
+ columns: columns
138
+ });
135
139
  }
136
- deleteColumn(colIndex) {
140
+ deleteColumns(deleteColIndexs, isMaintainArrayData = !0) {
137
141
  const columns = this.options.columns;
138
- columns.splice(colIndex, 1), this.updateColumns(columns);
142
+ deleteColIndexs.sort(((a, b) => b - a));
143
+ for (let i = 0; i < deleteColIndexs.length; i++) if (columns.splice(deleteColIndexs[i], 1),
144
+ isMaintainArrayData) for (let j = 0; j < this.records.length; j++) {
145
+ const record = this.records[j];
146
+ Array.isArray(record) && record.splice(deleteColIndexs[i], 1);
147
+ }
148
+ if (isMaintainArrayData) for (let i = 0; i < columns.length; i++) columns[i].field = i;
149
+ this.updateColumns(columns), this.fireListeners(TABLE_EVENT_TYPE.DELETE_COLUMN, {
150
+ deleteColIndexs: deleteColIndexs,
151
+ columns: columns
152
+ });
139
153
  }
140
154
  get columns() {
141
155
  return this.internalProps.layoutMap.columnTree.getCopiedTree();
@@ -534,6 +548,9 @@ export class ListTable extends BaseTable {
534
548
  this.stateManager.initCheckedState(this.records), this.scenegraph.createSceneGraph(),
535
549
  this.resize();
536
550
  }
551
+ getFilteredRecords() {
552
+ return this.dataSource.records;
553
+ }
537
554
  getCheckboxState(field) {
538
555
  if (this.stateManager.checkedState.size < this.rowCount - this.columnHeaderLevelCount && this.stateManager.initLeftRecordsCheckState(this.records),
539
556
  isValid(field)) {
@@ -673,18 +690,41 @@ export class ListTable extends BaseTable {
673
690
  }
674
691
  addRecord(record, recordIndex) {
675
692
  var _a;
676
- listTableAddRecord(record, recordIndex, this), null === (_a = this.internalProps.emptyTip) || void 0 === _a || _a.resetVisible();
693
+ const success = listTableAddRecord(record, recordIndex, this);
694
+ null === (_a = this.internalProps.emptyTip) || void 0 === _a || _a.resetVisible(),
695
+ success && this.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, {
696
+ records: [ record ],
697
+ recordIndex: recordIndex,
698
+ recordCount: 1
699
+ });
677
700
  }
678
701
  addRecords(records, recordIndex) {
679
702
  var _a;
680
- listTableAddRecords(records, recordIndex, this), null === (_a = this.internalProps.emptyTip) || void 0 === _a || _a.resetVisible();
703
+ const success = listTableAddRecords(records, recordIndex, this);
704
+ null === (_a = this.internalProps.emptyTip) || void 0 === _a || _a.resetVisible(),
705
+ success && this.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, {
706
+ records: records,
707
+ recordIndex: recordIndex,
708
+ recordCount: records.length
709
+ });
681
710
  }
682
711
  deleteRecords(recordIndexs) {
683
712
  var _a;
684
713
  listTableDeleteRecords(recordIndexs, this), null === (_a = this.internalProps.emptyTip) || void 0 === _a || _a.resetVisible();
714
+ const rowIndexs = [];
715
+ for (let i = 0; i < recordIndexs.length; i++) rowIndexs.push(this.getBodyRowIndexByRecordIndex(recordIndexs[i]) + this.columnHeaderLevelCount);
716
+ this.fireListeners(TABLE_EVENT_TYPE.DELETE_RECORD, {
717
+ recordIndexs: recordIndexs,
718
+ rowIndexs: rowIndexs,
719
+ deletedCount: (Array.isArray(recordIndexs[0]), recordIndexs.length)
720
+ });
685
721
  }
686
722
  updateRecords(records, recordIndexs) {
687
- listTableUpdateRecords(records, recordIndexs, this);
723
+ listTableUpdateRecords(records, recordIndexs, this), this.fireListeners(TABLE_EVENT_TYPE.UPDATE_RECORD, {
724
+ records: records,
725
+ recordIndexs: recordIndexs,
726
+ updateCount: records.length
727
+ });
688
728
  }
689
729
  _hasCustomRenderOrLayout() {
690
730
  var _a, _b, _c, _d;