@visactor/vtable 0.22.0 → 0.23.0-alpha.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 (113) hide show
  1. package/cjs/ListTable.js.map +1 -1
  2. package/cjs/core/BaseTable.d.ts +1 -0
  3. package/cjs/core/BaseTable.js +25 -7
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/core/TABLE_EVENT_TYPE.d.ts +3 -0
  6. package/cjs/core/TABLE_EVENT_TYPE.js +4 -1
  7. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  8. package/cjs/data/DataSource.js +5 -1
  9. package/cjs/data/DataSource.js.map +1 -1
  10. package/cjs/event/event.d.ts +2 -0
  11. package/cjs/event/event.js +30 -1
  12. package/cjs/event/event.js.map +1 -1
  13. package/cjs/event/listener/container-dom.js +78 -39
  14. package/cjs/event/listener/container-dom.js.map +1 -1
  15. package/cjs/event/listener/table-group.js +5 -4
  16. package/cjs/event/listener/table-group.js.map +1 -1
  17. package/cjs/index.d.ts +1 -1
  18. package/cjs/index.js +1 -1
  19. package/cjs/index.js.map +1 -1
  20. package/cjs/layout/pivot-header-layout.js +1 -1
  21. package/cjs/layout/pivot-header-layout.js.map +1 -1
  22. package/cjs/scenegraph/component/custom.js +1 -1
  23. package/cjs/scenegraph/component/custom.js.map +1 -1
  24. package/cjs/scenegraph/group-creater/cell-helper.d.ts +1 -0
  25. package/cjs/scenegraph/group-creater/cell-helper.js +16 -26
  26. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  27. package/cjs/scenegraph/group-creater/column-helper.js +3 -2
  28. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  29. package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
  30. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  31. package/cjs/scenegraph/scenegraph.d.ts +3 -0
  32. package/cjs/scenegraph/scenegraph.js +3 -0
  33. package/cjs/scenegraph/scenegraph.js.map +1 -1
  34. package/cjs/scenegraph/select/create-select-border.d.ts +1 -1
  35. package/cjs/scenegraph/select/create-select-border.js +24 -5
  36. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  37. package/cjs/scenegraph/select/delete-select-border.d.ts +1 -0
  38. package/cjs/scenegraph/select/delete-select-border.js +15 -4
  39. package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
  40. package/cjs/scenegraph/select/move-select-border.js +3 -1
  41. package/cjs/scenegraph/select/move-select-border.js.map +1 -1
  42. package/cjs/scenegraph/select/update-select-border.d.ts +2 -0
  43. package/cjs/scenegraph/select/update-select-border.js +28 -4
  44. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  45. package/cjs/state/state.d.ts +10 -0
  46. package/cjs/state/state.js +17 -0
  47. package/cjs/state/state.js.map +1 -1
  48. package/cjs/ts-types/base-table.d.ts +4 -0
  49. package/cjs/ts-types/base-table.js.map +1 -1
  50. package/cjs/ts-types/events.d.ts +8 -0
  51. package/cjs/ts-types/events.js.map +1 -1
  52. package/cjs/ts-types/new-data-set.d.ts +2 -1
  53. package/cjs/ts-types/new-data-set.js.map +1 -1
  54. package/cjs/ts-types/theme.js.map +1 -1
  55. package/cjs/vrender.js.map +1 -1
  56. package/dist/vtable.js +396 -129
  57. package/dist/vtable.min.js +2 -2
  58. package/es/ListTable.js.map +1 -1
  59. package/es/core/BaseTable.d.ts +1 -0
  60. package/es/core/BaseTable.js +25 -8
  61. package/es/core/BaseTable.js.map +1 -1
  62. package/es/core/TABLE_EVENT_TYPE.d.ts +3 -0
  63. package/es/core/TABLE_EVENT_TYPE.js +4 -1
  64. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  65. package/es/data/DataSource.js +5 -1
  66. package/es/data/DataSource.js.map +1 -1
  67. package/es/event/event.d.ts +2 -0
  68. package/es/event/event.js +30 -1
  69. package/es/event/event.js.map +1 -1
  70. package/es/event/listener/container-dom.js +78 -39
  71. package/es/event/listener/container-dom.js.map +1 -1
  72. package/es/event/listener/table-group.js +5 -4
  73. package/es/event/listener/table-group.js.map +1 -1
  74. package/es/index.d.ts +1 -1
  75. package/es/index.js +1 -1
  76. package/es/index.js.map +1 -1
  77. package/es/layout/pivot-header-layout.js +1 -1
  78. package/es/layout/pivot-header-layout.js.map +1 -1
  79. package/es/scenegraph/component/custom.js +1 -1
  80. package/es/scenegraph/component/custom.js.map +1 -1
  81. package/es/scenegraph/group-creater/cell-helper.d.ts +1 -0
  82. package/es/scenegraph/group-creater/cell-helper.js +12 -24
  83. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  84. package/es/scenegraph/group-creater/column-helper.js +5 -4
  85. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  86. package/es/scenegraph/group-creater/progress/proxy.js +1 -1
  87. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  88. package/es/scenegraph/scenegraph.d.ts +3 -0
  89. package/es/scenegraph/scenegraph.js +4 -1
  90. package/es/scenegraph/scenegraph.js.map +1 -1
  91. package/es/scenegraph/select/create-select-border.d.ts +1 -1
  92. package/es/scenegraph/select/create-select-border.js +24 -5
  93. package/es/scenegraph/select/create-select-border.js.map +1 -1
  94. package/es/scenegraph/select/delete-select-border.d.ts +1 -0
  95. package/es/scenegraph/select/delete-select-border.js +12 -2
  96. package/es/scenegraph/select/delete-select-border.js.map +1 -1
  97. package/es/scenegraph/select/move-select-border.js +3 -1
  98. package/es/scenegraph/select/move-select-border.js.map +1 -1
  99. package/es/scenegraph/select/update-select-border.d.ts +2 -0
  100. package/es/scenegraph/select/update-select-border.js +25 -2
  101. package/es/scenegraph/select/update-select-border.js.map +1 -1
  102. package/es/state/state.d.ts +10 -0
  103. package/es/state/state.js +17 -0
  104. package/es/state/state.js.map +1 -1
  105. package/es/ts-types/base-table.d.ts +4 -0
  106. package/es/ts-types/base-table.js.map +1 -1
  107. package/es/ts-types/events.d.ts +8 -0
  108. package/es/ts-types/events.js.map +1 -1
  109. package/es/ts-types/new-data-set.d.ts +2 -1
  110. package/es/ts-types/new-data-set.js.map +1 -1
  111. package/es/ts-types/theme.js.map +1 -1
  112. package/es/vrender.js.map +1 -1
  113. package/package.json +5 -5
@@ -33,7 +33,7 @@ Object.defineProperty(exports, "__esModule", {
33
33
  value: !0
34
34
  }), exports.BaseTable = void 0;
35
35
 
36
- const columnStyleContents = __importStar(require("../body-helper/style")), headerStyleContents = __importStar(require("../header-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), ts_types_1 = require("../ts-types"), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), TooltipHandler_1 = require("../components/tooltip/TooltipHandler"), vutils_1 = require("@visactor/vutils"), text_measure_1 = require("../scenegraph/utils/text-measure"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), MenuHandler_1 = require("../components/menu/dom/MenuHandler"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), create_legend_1 = require("../components/legend/create-legend"), vdataset_1 = require("@visactor/vdataset"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), get_axis_config_1 = require("../layout/chart-helper/get-axis-config"), row_height_map_1 = require("../layout/row-height-map"), row_series_number_helper_1 = require("./row-series-number-helper"), custom_cell_style_1 = require("../plugins/custom-cell-style"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
36
+ const columnStyleContents = __importStar(require("../body-helper/style")), headerStyleContents = __importStar(require("../header-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), ts_types_1 = require("../ts-types"), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), TooltipHandler_1 = require("../components/tooltip/TooltipHandler"), vutils_1 = require("@visactor/vutils"), text_measure_1 = require("../scenegraph/utils/text-measure"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), MenuHandler_1 = require("../components/menu/dom/MenuHandler"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), create_legend_1 = require("../components/legend/create-legend"), vdataset_1 = require("@visactor/vdataset"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), get_axis_config_1 = require("../layout/chart-helper/get-axis-config"), row_height_map_1 = require("../layout/row-height-map"), row_series_number_helper_1 = require("./row-series-number-helper"), custom_cell_style_1 = require("../plugins/custom-cell-style"), update_select_border_1 = require("../scenegraph/select/update-select-border"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
37
37
 
38
38
  (0, style_1.importStyle)();
39
39
 
@@ -45,7 +45,7 @@ class BaseTable extends EventTarget_1.EventTarget {
45
45
  }
46
46
  constructor(container, options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
48
- if (super(), this.showFrozenIcon = !0, this.version = "0.22.0", this.id = `VTable${Date.now()}`,
48
+ if (super(), this.showFrozenIcon = !0, this.version = "0.23.0-alpha.0", this.id = `VTable${Date.now()}`,
49
49
  this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
50
50
  !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
51
51
  const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, autoFillHeight: autoFillHeight = !1, keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
@@ -1150,7 +1150,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1150
1150
  return null === (_a = this.internalProps.dataSource) || void 0 === _a ? void 0 : _a.hasField(index, field);
1151
1151
  }
1152
1152
  _getCellStyle(col, row) {
1153
- var _a, _b, _c, _d;
1153
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1154
1154
  const customCellStyle = this.customCellStylePlugin.getCustomCellStyle(col, row), {layoutMap: layoutMap} = this.internalProps;
1155
1155
  if (layoutMap.isHeader(col, row)) {
1156
1156
  let cacheKey;
@@ -1200,7 +1200,10 @@ class BaseTable extends EventTarget_1.EventTarget {
1200
1200
  }
1201
1201
  return this.headerStyleCache.set(cacheKey, cacheStyle), customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1202
1202
  }
1203
- let cacheKey;
1203
+ let bgColorFunc, cacheKey;
1204
+ (null === (_f = null === (_e = this.internalProps) || void 0 === _e ? void 0 : _e.dataConfig) || void 0 === _f ? void 0 : _f.mappingRules) && !this.isHeader(col, row) && (null === (_j = null === (_h = null === (_g = this.internalProps) || void 0 === _g ? void 0 : _g.dataConfig) || void 0 === _h ? void 0 : _h.mappingRules) || void 0 === _j || _j.forEach(((mappingRule, i) => {
1205
+ mappingRule.bgColor && this.internalProps.layoutMap.getIndicatorKey(col, row) === mappingRule.bgColor.indicatorKey && (bgColorFunc = mappingRule.bgColor.mapping);
1206
+ })));
1204
1207
  const cellType = this.getCellType(col, row);
1205
1208
  let cacheStyle;
1206
1209
  if (cacheKey = this.isSeriesNumberInBody(col, row) ? `${col}-series-` + cellType : this.isListTable() && !this.transpose || this.isPivotTable() && this.internalProps.layoutMap.indicatorsAsCol ? col + cellType : row + cellType,
@@ -1214,7 +1217,10 @@ class BaseTable extends EventTarget_1.EventTarget {
1214
1217
  value: this.getCellValue(col, row),
1215
1218
  dataValue: this.getCellOriginValue(col, row),
1216
1219
  cellHeaderPaths: this.getCellHeaderPaths(col, row)
1217
- }, styleClass, this.options.autoWrapText, this.theme), (0, vutils_1.isFunction)(style) || (layoutMap.isBottomFrozenRow(row) ? this.bodyBottomStyleCache.set(cacheKey, cacheStyle) : this.bodyStyleCache.set(cacheKey, cacheStyle)),
1220
+ }, styleClass, this.options.autoWrapText, this.theme), bgColorFunc && (cacheStyle = (0,
1221
+ custom_cell_style_1.mergeStyle)(cacheStyle, {
1222
+ bgColor: bgColorFunc
1223
+ })), (0, vutils_1.isFunction)(style) || (layoutMap.isBottomFrozenRow(row) ? this.bodyBottomStyleCache.set(cacheKey, cacheStyle) : this.bodyStyleCache.set(cacheKey, cacheStyle)),
1218
1224
  customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1219
1225
  }
1220
1226
  clearCellStyleCache() {
@@ -1386,7 +1392,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1386
1392
  if (range) {
1387
1393
  const copyCellValue = getCopyCellValue(c, r, range);
1388
1394
  if ("undefined" != typeof Promise && copyCellValue instanceof Promise) ; else {
1389
- const strCellValue = `${copyCellValue}`;
1395
+ const strCellValue = (0, vutils_1.isValid)(copyCellValue) ? `${copyCellValue}` : "";
1390
1396
  /^\[object .*\]$/.exec(strCellValue) || (copyValue += strCellValue);
1391
1397
  }
1392
1398
  (c < range.end.col || c < maxCol) && (copyValue += "\t");
@@ -1445,6 +1451,10 @@ class BaseTable extends EventTarget_1.EventTarget {
1445
1451
  }
1446
1452
  return cellInfoArray;
1447
1453
  }
1454
+ getSelectedCellRanges() {
1455
+ const ranges = this.stateManager.select.ranges;
1456
+ return ranges.length ? (0, vutils_1.cloneDeep)(ranges) : [];
1457
+ }
1448
1458
  measureText(text, font) {
1449
1459
  return text_measure_1.textMeasure.measureText(text, font);
1450
1460
  }
@@ -1495,13 +1505,21 @@ class BaseTable extends EventTarget_1.EventTarget {
1495
1505
  return this.scenegraph.stage.toCanvas().toDataURL();
1496
1506
  }
1497
1507
  exportCellImg(col, row) {
1508
+ var _a, _b, _c, _d;
1498
1509
  const isInView = this.cellIsInVisualView(col, row), {scrollTop: scrollTop, scrollLeft: scrollLeft} = this;
1499
1510
  isInView || this.scrollToCell({
1500
1511
  col: col,
1501
1512
  row: row
1502
1513
  });
1503
- const cellRect = this.getCellRelativeRect(col, row), c = this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY));
1514
+ const cellRect = this.getCellRelativeRect(col, row);
1515
+ (null === (_b = null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0 && (0,
1516
+ update_select_border_1.hideCellSelectBorder)(this.scenegraph);
1517
+ const {col: hoverCol, row: hoverRow} = this.stateManager.hover.cellPos;
1518
+ this.stateManager.updateHoverPos(-1, -1);
1519
+ const c = this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY));
1504
1520
  return isInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1521
+ (null === (_d = null === (_c = this.stateManager.select) || void 0 === _c ? void 0 : _c.ranges) || void 0 === _d ? void 0 : _d.length) > 0 && (0,
1522
+ update_select_border_1.restoreCellSelectBorder)(this.scenegraph), this.stateManager.updateHoverPos(hoverCol, hoverRow),
1505
1523
  c.toDataURL();
1506
1524
  }
1507
1525
  exportCellRangeImg(cellRange) {