@visactor/vtable 0.24.2-alpha.2 → 0.24.2-alpha.3

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 (83) hide show
  1. package/cjs/PivotTable.js +69 -27
  2. package/cjs/PivotTable.js.map +1 -1
  3. package/cjs/core/BaseTable.js +4 -38
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/dataset/dataset.d.ts +1 -0
  6. package/cjs/dataset/dataset.js +14 -0
  7. package/cjs/dataset/dataset.js.map +1 -1
  8. package/cjs/dataset/flatDataToObject.d.ts +8 -3
  9. package/cjs/dataset/flatDataToObject.js +39 -8
  10. package/cjs/dataset/flatDataToObject.js.map +1 -1
  11. package/cjs/edit/edit-manager.js +0 -1
  12. package/cjs/edit/edit-manager.js.map +1 -1
  13. package/cjs/event/drill.js +2 -1
  14. package/cjs/event/media-click.js +1 -2
  15. package/cjs/index.d.ts +1 -1
  16. package/cjs/index.js +1 -1
  17. package/cjs/index.js.map +1 -1
  18. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  19. package/cjs/layout/pivot-header-layout.js +16 -4
  20. package/cjs/layout/pivot-header-layout.js.map +1 -1
  21. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +9 -18
  22. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  23. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +3 -3
  24. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  25. package/cjs/scenegraph/group-creater/progress/proxy.js +2 -4
  26. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  27. package/cjs/scenegraph/scenegraph.d.ts +0 -1
  28. package/cjs/scenegraph/scenegraph.js +6 -8
  29. package/cjs/scenegraph/scenegraph.js.map +1 -1
  30. package/cjs/scenegraph/select/update-select-border.js +4 -4
  31. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  32. package/cjs/state/state.js +1 -1
  33. package/cjs/themes/component.js +1 -1
  34. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +6 -1
  35. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  36. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +3 -0
  37. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  38. package/cjs/ts-types/table-engine.d.ts +3 -0
  39. package/cjs/ts-types/table-engine.js.map +1 -1
  40. package/cjs/vrender.js.map +1 -1
  41. package/dist/vtable.js +240 -143
  42. package/dist/vtable.min.js +1 -1
  43. package/es/PivotTable.js +69 -27
  44. package/es/PivotTable.js.map +1 -1
  45. package/es/core/BaseTable.js +5 -37
  46. package/es/core/BaseTable.js.map +1 -1
  47. package/es/dataset/dataset.d.ts +1 -0
  48. package/es/dataset/dataset.js +14 -0
  49. package/es/dataset/dataset.js.map +1 -1
  50. package/es/dataset/flatDataToObject.d.ts +8 -3
  51. package/es/dataset/flatDataToObject.js +38 -8
  52. package/es/dataset/flatDataToObject.js.map +1 -1
  53. package/es/edit/edit-manager.js +0 -1
  54. package/es/edit/edit-manager.js.map +1 -1
  55. package/es/event/drill.js +2 -1
  56. package/es/event/media-click.js +1 -2
  57. package/es/index.d.ts +1 -1
  58. package/es/index.js +1 -1
  59. package/es/index.js.map +1 -1
  60. package/es/layout/pivot-header-layout.d.ts +1 -0
  61. package/es/layout/pivot-header-layout.js +12 -2
  62. package/es/layout/pivot-header-layout.js.map +1 -1
  63. package/es/scenegraph/graphic/contributions/group-contribution-render.js +9 -18
  64. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  65. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +3 -3
  66. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  67. package/es/scenegraph/group-creater/progress/proxy.js +2 -4
  68. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  69. package/es/scenegraph/scenegraph.d.ts +0 -1
  70. package/es/scenegraph/scenegraph.js +6 -8
  71. package/es/scenegraph/scenegraph.js.map +1 -1
  72. package/es/scenegraph/select/update-select-border.js +4 -4
  73. package/es/scenegraph/select/update-select-border.js.map +1 -1
  74. package/es/state/state.js +1 -1
  75. package/es/themes/component.js +1 -1
  76. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +6 -1
  77. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  78. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +3 -0
  79. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  80. package/es/ts-types/table-engine.d.ts +3 -0
  81. package/es/ts-types/table-engine.js.map +1 -1
  82. package/es/vrender.js.map +1 -1
  83. package/package.json +4 -4
package/es/PivotTable.js CHANGED
@@ -346,14 +346,37 @@ export class PivotTable extends BaseTable {
346
346
  })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
347
347
  var _a;
348
348
  return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
349
- })), treeNode = this.flatDataToObjects.getTreeNode(rowKeys, colKeys, this.internalProps.layoutMap.getBody(col, row).indicatorKey, !1);
349
+ })), treeNode = this.flatDataToObjects.getTreeNode(rowKeys, colKeys, this.internalProps.layoutMap.getBody(col, row).indicatorKey);
350
350
  return null == treeNode ? void 0 : treeNode.record;
351
351
  }
352
352
  const rowIndex = this.getBodyIndexByRow(row), colIndex = this.getBodyIndexByCol(col);
353
353
  return null === (_a = this.records[rowIndex]) || void 0 === _a ? void 0 : _a[colIndex];
354
354
  }
355
355
  getCellRawRecord(col, row) {
356
- return this.getCellOriginRecord(col, row);
356
+ var _a;
357
+ if (this.internalProps.layoutMap.isHeader(col, row)) return;
358
+ if (this.dataset) {
359
+ const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row), colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
360
+ var _a;
361
+ return null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.value;
362
+ })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
363
+ var _a;
364
+ return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
365
+ }));
366
+ return this.dataset.getAggregator(this.internalProps.layoutMap.indicatorsAsCol ? rowKeys : rowKeys.slice(0, -1), this.internalProps.layoutMap.indicatorsAsCol ? colKeys.slice(0, -1) : colKeys, this.internalProps.layoutMap.getIndicatorKey(col, row)).records;
367
+ }
368
+ if (this.flatDataToObjects) {
369
+ const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row), colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
370
+ var _a;
371
+ return null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.value;
372
+ })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
373
+ var _a;
374
+ return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
375
+ })), treeNode = this.flatDataToObjects.getTreeNode(rowKeys, colKeys, this.internalProps.layoutMap.getBody(col, row).indicatorKey, !1);
376
+ return null == treeNode ? void 0 : treeNode.record;
377
+ }
378
+ const rowIndex = this.getBodyIndexByRow(row), colIndex = this.getBodyIndexByCol(col);
379
+ return null === (_a = this.records[rowIndex]) || void 0 === _a ? void 0 : _a[colIndex];
357
380
  }
358
381
  updateSortRules(sortRules) {
359
382
  this.internalProps.dataConfig.sortRules = sortRules, this.dataset.updateSortRules(sortRules),
@@ -506,9 +529,15 @@ export class PivotTable extends BaseTable {
506
529
  this.editorManager.completeEdit();
507
530
  }
508
531
  getEditor(col, row) {
509
- var _a;
510
- const define = this.getBodyColumnDefine(col, row);
511
- let editorDefine = null !== (_a = null == define ? void 0 : define.editor) && void 0 !== _a ? _a : this.options.editor;
532
+ var _a, _b;
533
+ let editorDefine;
534
+ if (this.isHeader(col, row) && !this.isCornerHeader(col, row)) {
535
+ const define = this.getHeaderDefine(col, row);
536
+ editorDefine = null !== (_a = null == define ? void 0 : define.headerEditor) && void 0 !== _a ? _a : this.options.headerEditor;
537
+ } else {
538
+ const define = this.getBodyColumnDefine(col, row);
539
+ editorDefine = null !== (_b = null == define ? void 0 : define.editor) && void 0 !== _b ? _b : this.options.editor;
540
+ }
512
541
  if ("function" == typeof editorDefine) {
513
542
  editorDefine = editorDefine({
514
543
  col: col,
@@ -538,9 +567,12 @@ export class PivotTable extends BaseTable {
538
567
  changeCellValue(col, row, value, workOnEditableCell = !1) {
539
568
  if (workOnEditableCell && this.isHasEditorDefine(col, row) || !1 === workOnEditableCell) {
540
569
  let newValue = value;
541
- if ("number" == typeof this.getCellRawValue(col, row) && isAllDigits(value) && (newValue = parseFloat(value)),
542
- this._changeCellValueToDataSet(col, row, newValue), this.scenegraph.updateCellContent(col, row),
543
- "adaptive" === this.widthMode || this.autoFillWidth && this.getAllColsWidth() <= this.tableNoFrameWidth) 0 === this.internalProps._widthResizedColMap.size && this.scenegraph.recalculateColWidths(); else if (!this.internalProps._widthResizedColMap.has(col)) {
570
+ const oldValue = this.getCellOriginValue(col, row);
571
+ "number" == typeof this.getCellRawValue(col, row) && isAllDigits(value) && (newValue = parseFloat(value)),
572
+ this._changeCellValueToDataSet(col, row, oldValue, newValue);
573
+ const range = this.getCellRange(col, row);
574
+ for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) this.scenegraph.updateCellContent(sCol, sRow);
575
+ if ("adaptive" === this.widthMode || this.autoFillWidth && this.getAllColsWidth() <= this.tableNoFrameWidth) 0 === this.internalProps._widthResizedColMap.size && this.scenegraph.recalculateColWidths(); else if (!this.internalProps._widthResizedColMap.has(col)) {
544
576
  const oldWidth = this.getColWidth(col), newWidth = computeColWidth(col, 0, this.rowCount - 1, this, !1);
545
577
  newWidth !== oldWidth && this.scenegraph.updateColWidth(col, newWidth - oldWidth);
546
578
  }
@@ -566,9 +598,10 @@ export class PivotTable extends BaseTable {
566
598
  workOnEditableCell && this.isHasEditorDefine(startCol + j, startRow + i) || !1 === workOnEditableCell) {
567
599
  const value = rowValues[j];
568
600
  let newValue = value;
569
- const rawValue = this.getCellRawValue(startCol + j, startRow + i);
601
+ const oldValue = this.getCellOriginValue(startCol + j, startRow + i), rawValue = this.getCellRawValue(startCol + j, startRow + i);
570
602
  "number" == typeof rawValue && isAllDigits(value) && (newValue = parseFloat(value)),
571
- this._changeCellValueToDataSet(startCol + j, startRow + i, newValue), this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
603
+ this._changeCellValueToDataSet(startCol + j, startRow + i, oldValue, newValue),
604
+ this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
572
605
  col: startCol + j,
573
606
  row: startRow + i,
574
607
  rawValue: rawValue,
@@ -593,25 +626,34 @@ export class PivotTable extends BaseTable {
593
626
  }
594
627
  this.scenegraph.updateNextFrame();
595
628
  }
596
- _changeCellValueToDataSet(col, row, newValue) {
629
+ _changeCellValueToDataSet(col, row, oldValue, newValue) {
630
+ var _a, _b, _c, _d, _e, _f;
597
631
  if (this.dataset) {
598
- const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row), colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
599
- var _a;
600
- return null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.value;
601
- })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
602
- var _a;
603
- return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
604
- }));
605
- this.dataset.changeTreeNodeValue(this.internalProps.layoutMap.indicatorsAsCol ? rowKeys : rowKeys.slice(0, -1), this.internalProps.layoutMap.indicatorsAsCol ? colKeys.slice(0, -1) : colKeys, this.internalProps.layoutMap.getIndicatorKey(col, row), newValue);
632
+ const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
633
+ if (this.isHeader(col, row)) this.internalProps.layoutMap.changeTreeNodeTitle(col, row, newValue),
634
+ !this.isCornerHeader(col, row) && this.dataset.changeRecordFieldValue((null === (_a = cellDimensionPath.colHeaderPaths) || void 0 === _a ? void 0 : _a.length) ? null !== (_b = cellDimensionPath.colHeaderPaths[cellDimensionPath.colHeaderPaths.length - 1].indicatorKey) && void 0 !== _b ? _b : cellDimensionPath.colHeaderPaths[cellDimensionPath.colHeaderPaths.length - 1].dimensionKey : null !== (_c = cellDimensionPath.rowHeaderPaths[cellDimensionPath.rowHeaderPaths.length - 1].indicatorKey) && void 0 !== _c ? _c : cellDimensionPath.rowHeaderPaths[cellDimensionPath.rowHeaderPaths.length - 1].dimensionKey, oldValue, newValue); else {
635
+ const colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
636
+ var _a;
637
+ return null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.value;
638
+ })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
639
+ var _a;
640
+ return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
641
+ }));
642
+ this.dataset.changeTreeNodeValue(this.internalProps.layoutMap.indicatorsAsCol ? rowKeys : rowKeys.slice(0, -1), this.internalProps.layoutMap.indicatorsAsCol ? colKeys.slice(0, -1) : colKeys, this.internalProps.layoutMap.getIndicatorKey(col, row), newValue);
643
+ }
606
644
  } else if (this.flatDataToObjects) {
607
- const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row), colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
608
- var _a;
609
- return null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.value;
610
- })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
611
- var _a;
612
- return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
613
- }));
614
- this.flatDataToObjects.changeTreeNodeValue(rowKeys, colKeys, this.internalProps.layoutMap.getBody(col, row).indicatorKey, newValue);
645
+ const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
646
+ if (this.isHeader(col, row)) this.internalProps.layoutMap.changeTreeNodeTitle(col, row, newValue),
647
+ !this.isCornerHeader(col, row) && this.flatDataToObjects.changeRecordFieldValue((null === (_d = cellDimensionPath.colHeaderPaths) || void 0 === _d ? void 0 : _d.length) ? null !== (_e = cellDimensionPath.colHeaderPaths[cellDimensionPath.colHeaderPaths.length - 1].indicatorKey) && void 0 !== _e ? _e : cellDimensionPath.colHeaderPaths[cellDimensionPath.colHeaderPaths.length - 1].dimensionKey : null !== (_f = cellDimensionPath.rowHeaderPaths[cellDimensionPath.rowHeaderPaths.length - 1].indicatorKey) && void 0 !== _f ? _f : cellDimensionPath.rowHeaderPaths[cellDimensionPath.rowHeaderPaths.length - 1].dimensionKey, oldValue, newValue); else {
648
+ const colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
649
+ var _a;
650
+ return null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.value;
651
+ })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
652
+ var _a;
653
+ return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
654
+ }));
655
+ this.flatDataToObjects.changeTreeNodeValue(rowKeys, colKeys, this.internalProps.layoutMap.getBody(col, row).indicatorKey, newValue);
656
+ }
615
657
  } else {
616
658
  const rowIndex = this.getBodyIndexByRow(row), colIndex = this.getBodyIndexByCol(col);
617
659
  this.records[rowIndex][colIndex] = newValue;