@visactor/vtable 1.23.3 → 1.24.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 (79) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +182 -24
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +1 -0
  5. package/cjs/PivotTable.js +10 -2
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/core/BaseTable.d.ts +9 -0
  8. package/cjs/core/BaseTable.js +64 -15
  9. package/cjs/core/BaseTable.js.map +1 -1
  10. package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
  11. package/cjs/core/TABLE_EVENT_TYPE.js +2 -0
  12. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  13. package/cjs/core/animation.js +5 -3
  14. package/cjs/core/animation.js.map +1 -1
  15. package/cjs/core/record-helper.js +83 -13
  16. package/cjs/core/record-helper.js.map +1 -1
  17. package/cjs/data/DataSource.js +3 -2
  18. package/cjs/data/DataSource.js.map +1 -1
  19. package/cjs/dataset/DataStatistics.js +1 -2
  20. package/cjs/edit/edit-manager.js +21 -15
  21. package/cjs/edit/edit-manager.js.map +1 -1
  22. package/cjs/index.d.ts +3 -3
  23. package/cjs/index.js +51 -12
  24. package/cjs/index.js.map +1 -1
  25. package/cjs/layout/cell-range/simple-cell-range.js +14 -4
  26. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  27. package/cjs/scenegraph/group-creater/cell-helper.js +1 -1
  28. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  29. package/cjs/scenegraph/group-creater/init-scenegraph.js +1 -1
  30. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  31. package/cjs/state/state.js +14 -11
  32. package/cjs/state/state.js.map +1 -1
  33. package/cjs/ts-types/base-table.d.ts +5 -0
  34. package/cjs/ts-types/base-table.js.map +1 -1
  35. package/cjs/ts-types/events.d.ts +16 -0
  36. package/cjs/ts-types/events.js.map +1 -1
  37. package/cjs/ts-types/table-engine.js.map +1 -1
  38. package/cjs/vrender.js.map +1 -1
  39. package/dist/vtable.js +906 -218
  40. package/dist/vtable.min.js +2 -2
  41. package/es/ListTable.d.ts +1 -0
  42. package/es/ListTable.js +177 -24
  43. package/es/ListTable.js.map +1 -1
  44. package/es/PivotTable.d.ts +1 -0
  45. package/es/PivotTable.js +8 -2
  46. package/es/PivotTable.js.map +1 -1
  47. package/es/core/BaseTable.d.ts +9 -0
  48. package/es/core/BaseTable.js +64 -15
  49. package/es/core/BaseTable.js.map +1 -1
  50. package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
  51. package/es/core/TABLE_EVENT_TYPE.js +2 -0
  52. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  53. package/es/core/animation.js +5 -3
  54. package/es/core/animation.js.map +1 -1
  55. package/es/core/record-helper.js +83 -12
  56. package/es/core/record-helper.js.map +1 -1
  57. package/es/data/DataSource.js +3 -2
  58. package/es/data/DataSource.js.map +1 -1
  59. package/es/dataset/DataStatistics.js +1 -2
  60. package/es/edit/edit-manager.js +20 -16
  61. package/es/edit/edit-manager.js.map +1 -1
  62. package/es/index.d.ts +3 -3
  63. package/es/index.js +5 -3
  64. package/es/index.js.map +1 -1
  65. package/es/layout/cell-range/simple-cell-range.js +14 -4
  66. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  67. package/es/scenegraph/group-creater/cell-helper.js +1 -1
  68. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  69. package/es/scenegraph/group-creater/init-scenegraph.js +1 -1
  70. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  71. package/es/state/state.js +14 -11
  72. package/es/state/state.js.map +1 -1
  73. package/es/ts-types/base-table.d.ts +5 -0
  74. package/es/ts-types/base-table.js.map +1 -1
  75. package/es/ts-types/events.d.ts +16 -0
  76. package/es/ts-types/events.js.map +1 -1
  77. package/es/ts-types/table-engine.js.map +1 -1
  78. package/es/vrender.js.map +1 -1
  79. package/package.json +5 -5
@@ -20,6 +20,8 @@ export interface TableEvents {
20
20
  RESIZE_COLUMN_END: 'resize_column_end';
21
21
  RESIZE_ROW: 'resize_row';
22
22
  RESIZE_ROW_END: 'resize_row_end';
23
+ MERGE_CELLS: 'merge_cells';
24
+ UNMERGE_CELLS: 'unmerge_cells';
23
25
  CHANGE_HEADER_POSITION: 'change_header_position';
24
26
  CHANGE_HEADER_POSITION_START: 'change_header_position_start';
25
27
  CHANGING_HEADER_POSITION: 'changing_header_position';
@@ -24,6 +24,8 @@ Object.defineProperty(exports, "__esModule", {
24
24
  RESIZE_COLUMN_END: "resize_column_end",
25
25
  RESIZE_ROW: "resize_row",
26
26
  RESIZE_ROW_END: "resize_row_end",
27
+ MERGE_CELLS: "merge_cells",
28
+ UNMERGE_CELLS: "unmerge_cells",
27
29
  CHANGE_HEADER_POSITION_START: "change_header_position_start",
28
30
  CHANGE_HEADER_POSITION: "change_header_position",
29
31
  CHANGING_HEADER_POSITION: "changing_header_position",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":";;;AAuQa,QAAA,gBAAgB,GAAgB;IAC3C,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,4BAA4B,EAAE,8BAA8B;IAC5D,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,2BAA2B,EAAE,6BAA6B;IAC1D,UAAU,EAAE,YAAY;IAIxB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAE1C,2BAA2B,EAAE,6BAA6B;IAE1D,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,UAAU,EAAE,YAAY;IAExB,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;IAE9B,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAElC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,+BAA+B,EAAE,iCAAiC;IAClE,iCAAiC,EAAE,mCAAmC;IACtE,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,sBAAsB;IAE5C,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IAExC,YAAY,EAAE,cAAc;IAC5B,wBAAwB,EAAE,0BAA0B;IACpD,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAE5B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAE9B,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;CACtB,CAAC","file":"TABLE_EVENT_TYPE.js","sourcesContent":["export interface TableEvents {\n /**\n * 鼠标点击单元格事件\n */\n CLICK_CELL: 'click_cell';\n /**\n * 鼠标双击单元格事件\n */\n DBLCLICK_CELL: 'dblclick_cell';\n /**\n * 单元格上鼠标按下事件\n */\n MOUSEDOWN_CELL: 'mousedown_cell';\n /**\n * 单元格鼠标松开事件\n */\n MOUSEUP_CELL: 'mouseup_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CELL: 'selected_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CLEAR: 'selected_clear';\n\n /** 键盘按下事件 内部逻辑处理前 */\n BEFORE_KEYDOWN: 'before_keydown';\n /**\n * 键盘按下事件 触发时机是在内部处理keydown逻辑之后\n */\n KEYDOWN: 'keydown';\n /**\n * 鼠标进入表格事件\n */\n MOUSEENTER_TABLE: 'mouseenter_table';\n /**\n * 鼠标离开表格事件\n */\n MOUSELEAVE_TABLE: 'mouseleave_table';\n /**\n * 鼠标点击表格事件\n */\n MOUSEDOWN_TABLE: 'mousedown_table';\n /**\n * 鼠标在表格上移动事件\n */\n MOUSEMOVE_TABLE: 'mousemove_table';\n /**\n * 鼠标在某个单元格上移动事件\n */\n MOUSEMOVE_CELL: 'mousemove_cell';\n /**\n * 鼠标进入单元格事件\n */\n MOUSEENTER_CELL: 'mouseenter_cell';\n /**\n * 鼠标离开单元格事件\n */\n MOUSELEAVE_CELL: 'mouseleave_cell';\n /**\n * 单元格右键事件\n */\n CONTEXTMENU_CELL: 'contextmenu_cell';\n /**\n * 画布右键事件\n */\n CONTEXTMENU_CANVAS: 'contextmenu_canvas';\n /**\n * 列宽调整事件\n */\n RESIZE_COLUMN: 'resize_column';\n /**\n * 列宽调整结束事件\n */\n RESIZE_COLUMN_END: 'resize_column_end';\n /**\n * 行高调整事件\n */\n RESIZE_ROW: 'resize_row';\n /**\n * 行高调整结束事件\n */\n RESIZE_ROW_END: 'resize_row_end';\n /**\n * 拖拽表头移动位置的事件\n */\n CHANGE_HEADER_POSITION: 'change_header_position';\n CHANGE_HEADER_POSITION_START: 'change_header_position_start';\n CHANGING_HEADER_POSITION: 'changing_header_position';\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail';\n /**\n * 点击排序图标事件\n */\n SORT_CLICK: 'sort_click';\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort';\n /**\n * 点击固定列图标 冻结或者解冻事件\n */\n FREEZE_CLICK: 'freeze_click';\n /**\n * 滚动表格事件\n */\n SCROLL: 'scroll';\n CAN_SCROLL: 'can_scroll';\n /**\n * 横向滚动条滚动到结束位\n */\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end';\n /**\n * 竖向滚动条滚动到结束位\n */\n SCROLL_VERTICAL_END: 'scroll_vertical_end';\n /**\n * 点击下拉菜单图标事件\n */\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click';\n /**\n * 鼠标经过迷你图标记事件\n */\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol';\n\n /**\n * 拖拽框选单元格鼠标松开事件\n */\n DRAG_SELECT_END: 'drag_select_end';\n /**\n * 拖拽框选单元格鼠标移动事件\n */\n SELECTED_CHANGED: 'selected_changed';\n /** 复制完成 */\n COPY_DATA: 'copy_data';\n /**\n * 点击下拉菜单按钮\n */\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click';\n /**\n * 清空下拉菜单事件(菜单显示时点击其他区域)\n */\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear';\n\n /**\n * 树形结构展开收起的点击事件\n */\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change';\n\n SHOW_MENU: 'show_menu';\n HIDE_MENU: 'hide_menu';\n /**\n * icon图标点击事件\n */\n ICON_CLICK: 'icon_click';\n\n // legend component\n LEGEND_ITEM_CLICK: 'legend_item_click';\n LEGEND_ITEM_HOVER: 'legend_item_hover';\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover';\n LEGEND_CHANGE: 'legend_change';\n\n MOUSEENTER_AXIS: 'mouseenter_axis';\n MOUSELEAVE_AXIS: 'mouseleave_axis';\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change';\n RADIO_STATE_CHANGE: 'radio_state_change';\n SWITCH_STATE_CHANGE: 'switch_state_change';\n //#region lifecircle\n /** 表格实例初始化前触发 */\n BEFORE_INIT: 'before_init';\n /** 更新表格选项前触发 */\n BEFORE_UPDATE_OPTION: 'before_update_option';\n /** 设置表格大小前触发 */\n BEFORE_SET_SIZE: 'before_set_size';\n /** 每次渲染完成触发 */\n AFTER_RENDER: 'after_render';\n /** 表格实例初始化完成 */\n INITIALIZED: 'initialized';\n /** 表格更新完成 */\n UPDATED: 'updated';\n /** 单元格内容宽度更新后触发 */\n AFTER_UPDATE_CELL_CONTENT_WIDTH: 'after_update_cell_content_width';\n\n /** 选择边框高度更新后触发 */\n AFTER_UPDATE_SELECT_BORDER_HEIGHT: 'after_update_select_border_height';\n //#endregion\n\n /** 编辑单元格 */\n CHANGE_CELL_VALUE: 'change_cell_value';\n /** 批量编辑单元格 */\n CHANGE_CELL_VALUES: 'change_cell_values';\n\n /**\n * 鼠标按下填充柄事件\n */\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle';\n /**\n * 拖拽填充柄结束事件\n */\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end';\n /**\n * 双击填充柄事件\n */\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle';\n\n /**\n * 空数据提示点击事件\n */\n EMPTY_TIP_CLICK: 'empty_tip_click';\n /**\n * 空数据提示双击事件\n */\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick';\n\n /**\n * 按钮点击事件\n */\n BUTTON_CLICK: 'button_click';\n /**\n * 缓存图表事件\n */\n BEFORE_CACHE_CHART_IMAGE: 'before_cache_chart_image';\n /**\n * 粘贴数据事件\n */\n PASTED_DATA: 'pasted_data';\n PLUGIN_EVENT: 'plugin_event';\n\n /**\n * 添加数据记录事件\n */\n ADD_RECORD: 'add_record';\n /**\n * 删除数据记录事件\n */\n DELETE_RECORD: 'delete_record';\n /**\n * 更新数据记录事件\n */\n UPDATE_RECORD: 'update_record';\n /**\n * 添加列事件\n */\n ADD_COLUMN: 'add_column';\n /**\n * 删除列事件\n */\n DELETE_COLUMN: 'delete_column';\n /**\n * 筛选菜单显示事件\n */\n FILTER_MENU_SHOW: 'filter_menu_show';\n /**\n * 筛选菜单隐藏事件\n */\n FILTER_MENU_HIDE: 'filter_menu_hide';\n}\n/**\n * Table event types\n */\nexport const TABLE_EVENT_TYPE: TableEvents = {\n CLICK_CELL: 'click_cell',\n DBLCLICK_CELL: 'dblclick_cell',\n MOUSEDOWN_CELL: 'mousedown_cell',\n MOUSEUP_CELL: 'mouseup_cell',\n SELECTED_CELL: 'selected_cell',\n SELECTED_CLEAR: 'selected_clear',\n BEFORE_KEYDOWN: 'before_keydown',\n KEYDOWN: 'keydown',\n MOUSEENTER_TABLE: 'mouseenter_table',\n MOUSELEAVE_TABLE: 'mouseleave_table',\n MOUSEDOWN_TABLE: 'mousedown_table',\n MOUSEMOVE_TABLE: 'mousemove_table',\n MOUSEMOVE_CELL: 'mousemove_cell',\n MOUSEENTER_CELL: 'mouseenter_cell',\n MOUSELEAVE_CELL: 'mouseleave_cell',\n CONTEXTMENU_CELL: 'contextmenu_cell',\n CONTEXTMENU_CANVAS: 'contextmenu_canvas',\n RESIZE_COLUMN: 'resize_column',\n RESIZE_COLUMN_END: 'resize_column_end',\n RESIZE_ROW: 'resize_row',\n RESIZE_ROW_END: 'resize_row_end',\n CHANGE_HEADER_POSITION_START: 'change_header_position_start',\n CHANGE_HEADER_POSITION: 'change_header_position',\n CHANGING_HEADER_POSITION: 'changing_header_position',\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail',\n SORT_CLICK: 'sort_click',\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort',\n FREEZE_CLICK: 'freeze_click',\n SCROLL: 'scroll',\n CAN_SCROLL: 'can_scroll',\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end',\n SCROLL_VERTICAL_END: 'scroll_vertical_end',\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click',\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol',\n DRAG_SELECT_END: 'drag_select_end',\n SELECTED_CHANGED: 'selected_changed',\n COPY_DATA: 'copy_data',\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click', // 点击下拉菜单按钮\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear', // 清空下拉菜单事件(菜单显示时点击其他区域)\n\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change', //树形结构展开收起的点击事件\n\n SHOW_MENU: 'show_menu',\n HIDE_MENU: 'hide_menu',\n\n ICON_CLICK: 'icon_click',\n\n LEGEND_ITEM_CLICK: 'legend_item_click',\n LEGEND_ITEM_HOVER: 'legend_item_hover',\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover',\n LEGEND_CHANGE: 'legend_change',\n\n MOUSEENTER_AXIS: 'mouseenter_axis',\n MOUSELEAVE_AXIS: 'mouseleave_axis',\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change',\n RADIO_STATE_CHANGE: 'radio_state_change',\n SWITCH_STATE_CHANGE: 'switch_state_change',\n BEFORE_SET_SIZE: 'before_set_size',\n BEFORE_INIT: 'before_init',\n BEFORE_UPDATE_OPTION: 'before_update_option',\n AFTER_RENDER: 'after_render',\n INITIALIZED: 'initialized',\n UPDATED: 'updated',\n AFTER_UPDATE_CELL_CONTENT_WIDTH: 'after_update_cell_content_width',\n AFTER_UPDATE_SELECT_BORDER_HEIGHT: 'after_update_select_border_height',\n CHANGE_CELL_VALUE: 'change_cell_value',\n CHANGE_CELL_VALUES: 'change_cell_values',\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end',\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle',\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle',\n\n EMPTY_TIP_CLICK: 'empty_tip_click',\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick',\n\n BUTTON_CLICK: 'button_click',\n BEFORE_CACHE_CHART_IMAGE: 'before_cache_chart_image',\n PASTED_DATA: 'pasted_data',\n PLUGIN_EVENT: 'plugin_event',\n\n ADD_RECORD: 'add_record',\n DELETE_RECORD: 'delete_record',\n UPDATE_RECORD: 'update_record',\n ADD_COLUMN: 'add_column',\n DELETE_COLUMN: 'delete_column',\n\n FILTER_MENU_SHOW: 'filter_menu_show',\n FILTER_MENU_HIDE: 'filter_menu_hide'\n} as TableEvents;\n"]}
1
+ {"version":3,"sources":["../src/core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":";;;AA+Qa,QAAA,gBAAgB,GAAgB;IAC3C,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,4BAA4B,EAAE,8BAA8B;IAC5D,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,2BAA2B,EAAE,6BAA6B;IAC1D,UAAU,EAAE,YAAY;IAIxB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAE1C,2BAA2B,EAAE,6BAA6B;IAE1D,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,UAAU,EAAE,YAAY;IAExB,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;IAE9B,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAElC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,+BAA+B,EAAE,iCAAiC;IAClE,iCAAiC,EAAE,mCAAmC;IACtE,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,sBAAsB;IAE5C,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IAExC,YAAY,EAAE,cAAc;IAC5B,wBAAwB,EAAE,0BAA0B;IACpD,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAE5B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAE9B,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;CACtB,CAAC","file":"TABLE_EVENT_TYPE.js","sourcesContent":["export interface TableEvents {\n /**\n * 鼠标点击单元格事件\n */\n CLICK_CELL: 'click_cell';\n /**\n * 鼠标双击单元格事件\n */\n DBLCLICK_CELL: 'dblclick_cell';\n /**\n * 单元格上鼠标按下事件\n */\n MOUSEDOWN_CELL: 'mousedown_cell';\n /**\n * 单元格鼠标松开事件\n */\n MOUSEUP_CELL: 'mouseup_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CELL: 'selected_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CLEAR: 'selected_clear';\n\n /** 键盘按下事件 内部逻辑处理前 */\n BEFORE_KEYDOWN: 'before_keydown';\n /**\n * 键盘按下事件 触发时机是在内部处理keydown逻辑之后\n */\n KEYDOWN: 'keydown';\n /**\n * 鼠标进入表格事件\n */\n MOUSEENTER_TABLE: 'mouseenter_table';\n /**\n * 鼠标离开表格事件\n */\n MOUSELEAVE_TABLE: 'mouseleave_table';\n /**\n * 鼠标点击表格事件\n */\n MOUSEDOWN_TABLE: 'mousedown_table';\n /**\n * 鼠标在表格上移动事件\n */\n MOUSEMOVE_TABLE: 'mousemove_table';\n /**\n * 鼠标在某个单元格上移动事件\n */\n MOUSEMOVE_CELL: 'mousemove_cell';\n /**\n * 鼠标进入单元格事件\n */\n MOUSEENTER_CELL: 'mouseenter_cell';\n /**\n * 鼠标离开单元格事件\n */\n MOUSELEAVE_CELL: 'mouseleave_cell';\n /**\n * 单元格右键事件\n */\n CONTEXTMENU_CELL: 'contextmenu_cell';\n /**\n * 画布右键事件\n */\n CONTEXTMENU_CANVAS: 'contextmenu_canvas';\n /**\n * 列宽调整事件\n */\n RESIZE_COLUMN: 'resize_column';\n /**\n * 列宽调整结束事件\n */\n RESIZE_COLUMN_END: 'resize_column_end';\n /**\n * 行高调整事件\n */\n RESIZE_ROW: 'resize_row';\n /**\n * 行高调整结束事件\n */\n RESIZE_ROW_END: 'resize_row_end';\n /**\n * 合并单元格事件(mergeCells 调用成功后触发)\n */\n MERGE_CELLS: 'merge_cells';\n /**\n * 取消合并单元格事件(unmergeCells 调用后触发)\n */\n UNMERGE_CELLS: 'unmerge_cells';\n /**\n * 拖拽表头移动位置的事件\n */\n CHANGE_HEADER_POSITION: 'change_header_position';\n CHANGE_HEADER_POSITION_START: 'change_header_position_start';\n CHANGING_HEADER_POSITION: 'changing_header_position';\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail';\n /**\n * 点击排序图标事件\n */\n SORT_CLICK: 'sort_click';\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort';\n /**\n * 点击固定列图标 冻结或者解冻事件\n */\n FREEZE_CLICK: 'freeze_click';\n /**\n * 滚动表格事件\n */\n SCROLL: 'scroll';\n CAN_SCROLL: 'can_scroll';\n /**\n * 横向滚动条滚动到结束位\n */\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end';\n /**\n * 竖向滚动条滚动到结束位\n */\n SCROLL_VERTICAL_END: 'scroll_vertical_end';\n /**\n * 点击下拉菜单图标事件\n */\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click';\n /**\n * 鼠标经过迷你图标记事件\n */\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol';\n\n /**\n * 拖拽框选单元格鼠标松开事件\n */\n DRAG_SELECT_END: 'drag_select_end';\n /**\n * 拖拽框选单元格鼠标移动事件\n */\n SELECTED_CHANGED: 'selected_changed';\n /** 复制完成 */\n COPY_DATA: 'copy_data';\n /**\n * 点击下拉菜单按钮\n */\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click';\n /**\n * 清空下拉菜单事件(菜单显示时点击其他区域)\n */\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear';\n\n /**\n * 树形结构展开收起的点击事件\n */\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change';\n\n SHOW_MENU: 'show_menu';\n HIDE_MENU: 'hide_menu';\n /**\n * icon图标点击事件\n */\n ICON_CLICK: 'icon_click';\n\n // legend component\n LEGEND_ITEM_CLICK: 'legend_item_click';\n LEGEND_ITEM_HOVER: 'legend_item_hover';\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover';\n LEGEND_CHANGE: 'legend_change';\n\n MOUSEENTER_AXIS: 'mouseenter_axis';\n MOUSELEAVE_AXIS: 'mouseleave_axis';\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change';\n RADIO_STATE_CHANGE: 'radio_state_change';\n SWITCH_STATE_CHANGE: 'switch_state_change';\n //#region lifecircle\n /** 表格实例初始化前触发 */\n BEFORE_INIT: 'before_init';\n /** 更新表格选项前触发 */\n BEFORE_UPDATE_OPTION: 'before_update_option';\n /** 设置表格大小前触发 */\n BEFORE_SET_SIZE: 'before_set_size';\n /** 每次渲染完成触发 */\n AFTER_RENDER: 'after_render';\n /** 表格实例初始化完成 */\n INITIALIZED: 'initialized';\n /** 表格更新完成 */\n UPDATED: 'updated';\n /** 单元格内容宽度更新后触发 */\n AFTER_UPDATE_CELL_CONTENT_WIDTH: 'after_update_cell_content_width';\n\n /** 选择边框高度更新后触发 */\n AFTER_UPDATE_SELECT_BORDER_HEIGHT: 'after_update_select_border_height';\n //#endregion\n\n /** 编辑单元格 */\n CHANGE_CELL_VALUE: 'change_cell_value';\n /** 批量编辑单元格 */\n CHANGE_CELL_VALUES: 'change_cell_values';\n\n /**\n * 鼠标按下填充柄事件\n */\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle';\n /**\n * 拖拽填充柄结束事件\n */\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end';\n /**\n * 双击填充柄事件\n */\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle';\n\n /**\n * 空数据提示点击事件\n */\n EMPTY_TIP_CLICK: 'empty_tip_click';\n /**\n * 空数据提示双击事件\n */\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick';\n\n /**\n * 按钮点击事件\n */\n BUTTON_CLICK: 'button_click';\n /**\n * 缓存图表事件\n */\n BEFORE_CACHE_CHART_IMAGE: 'before_cache_chart_image';\n /**\n * 粘贴数据事件\n */\n PASTED_DATA: 'pasted_data';\n PLUGIN_EVENT: 'plugin_event';\n\n /**\n * 添加数据记录事件\n */\n ADD_RECORD: 'add_record';\n /**\n * 删除数据记录事件\n */\n DELETE_RECORD: 'delete_record';\n /**\n * 更新数据记录事件\n */\n UPDATE_RECORD: 'update_record';\n /**\n * 添加列事件\n */\n ADD_COLUMN: 'add_column';\n /**\n * 删除列事件\n */\n DELETE_COLUMN: 'delete_column';\n /**\n * 筛选菜单显示事件\n */\n FILTER_MENU_SHOW: 'filter_menu_show';\n /**\n * 筛选菜单隐藏事件\n */\n FILTER_MENU_HIDE: 'filter_menu_hide';\n}\n/**\n * Table event types\n */\nexport const TABLE_EVENT_TYPE: TableEvents = {\n CLICK_CELL: 'click_cell',\n DBLCLICK_CELL: 'dblclick_cell',\n MOUSEDOWN_CELL: 'mousedown_cell',\n MOUSEUP_CELL: 'mouseup_cell',\n SELECTED_CELL: 'selected_cell',\n SELECTED_CLEAR: 'selected_clear',\n BEFORE_KEYDOWN: 'before_keydown',\n KEYDOWN: 'keydown',\n MOUSEENTER_TABLE: 'mouseenter_table',\n MOUSELEAVE_TABLE: 'mouseleave_table',\n MOUSEDOWN_TABLE: 'mousedown_table',\n MOUSEMOVE_TABLE: 'mousemove_table',\n MOUSEMOVE_CELL: 'mousemove_cell',\n MOUSEENTER_CELL: 'mouseenter_cell',\n MOUSELEAVE_CELL: 'mouseleave_cell',\n CONTEXTMENU_CELL: 'contextmenu_cell',\n CONTEXTMENU_CANVAS: 'contextmenu_canvas',\n RESIZE_COLUMN: 'resize_column',\n RESIZE_COLUMN_END: 'resize_column_end',\n RESIZE_ROW: 'resize_row',\n RESIZE_ROW_END: 'resize_row_end',\n MERGE_CELLS: 'merge_cells',\n UNMERGE_CELLS: 'unmerge_cells',\n CHANGE_HEADER_POSITION_START: 'change_header_position_start',\n CHANGE_HEADER_POSITION: 'change_header_position',\n CHANGING_HEADER_POSITION: 'changing_header_position',\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail',\n SORT_CLICK: 'sort_click',\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort',\n FREEZE_CLICK: 'freeze_click',\n SCROLL: 'scroll',\n CAN_SCROLL: 'can_scroll',\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end',\n SCROLL_VERTICAL_END: 'scroll_vertical_end',\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click',\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol',\n DRAG_SELECT_END: 'drag_select_end',\n SELECTED_CHANGED: 'selected_changed',\n COPY_DATA: 'copy_data',\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click', // 点击下拉菜单按钮\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear', // 清空下拉菜单事件(菜单显示时点击其他区域)\n\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change', //树形结构展开收起的点击事件\n\n SHOW_MENU: 'show_menu',\n HIDE_MENU: 'hide_menu',\n\n ICON_CLICK: 'icon_click',\n\n LEGEND_ITEM_CLICK: 'legend_item_click',\n LEGEND_ITEM_HOVER: 'legend_item_hover',\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover',\n LEGEND_CHANGE: 'legend_change',\n\n MOUSEENTER_AXIS: 'mouseenter_axis',\n MOUSELEAVE_AXIS: 'mouseleave_axis',\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change',\n RADIO_STATE_CHANGE: 'radio_state_change',\n SWITCH_STATE_CHANGE: 'switch_state_change',\n BEFORE_SET_SIZE: 'before_set_size',\n BEFORE_INIT: 'before_init',\n BEFORE_UPDATE_OPTION: 'before_update_option',\n AFTER_RENDER: 'after_render',\n INITIALIZED: 'initialized',\n UPDATED: 'updated',\n AFTER_UPDATE_CELL_CONTENT_WIDTH: 'after_update_cell_content_width',\n AFTER_UPDATE_SELECT_BORDER_HEIGHT: 'after_update_select_border_height',\n CHANGE_CELL_VALUE: 'change_cell_value',\n CHANGE_CELL_VALUES: 'change_cell_values',\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end',\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle',\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle',\n\n EMPTY_TIP_CLICK: 'empty_tip_click',\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick',\n\n BUTTON_CLICK: 'button_click',\n BEFORE_CACHE_CHART_IMAGE: 'before_cache_chart_image',\n PASTED_DATA: 'pasted_data',\n PLUGIN_EVENT: 'plugin_event',\n\n ADD_RECORD: 'add_record',\n DELETE_RECORD: 'delete_record',\n UPDATE_RECORD: 'update_record',\n ADD_COLUMN: 'add_column',\n DELETE_COLUMN: 'delete_column',\n\n FILTER_MENU_SHOW: 'filter_menu_show',\n FILTER_MENU_HIDE: 'filter_menu_hide'\n} as TableEvents;\n"]}
@@ -14,11 +14,11 @@ class Animateaaa extends vrender_1.ACustomAnimate {
14
14
  onUpdate(end, ratio, out) {
15
15
  if (this.from.x !== this.to.x) {
16
16
  const x = end ? this.to.x : this.from.x + Math.floor((this.to.x - this.from.x) * ratio);
17
- this.params.table.scrollLeft = x;
17
+ this.params.table.scrollLeft = x, 1 === ratio && -1 !== this.to.targetCol && this.params.table.scrollToCol(this.to.targetCol, !1);
18
18
  }
19
19
  if (this.from.y !== this.to.y) {
20
20
  const y = end ? this.to.y : this.from.y + Math.floor((this.to.y - this.from.y) * ratio);
21
- this.params.table.scrollTop = y;
21
+ this.params.table.scrollTop = y, 1 === ratio && -1 !== this.to.targetRow && this.params.table.scrollToRow(this.to.targetRow, !1);
22
22
  }
23
23
  }
24
24
  }
@@ -43,7 +43,9 @@ class TableAnimationManager {
43
43
  colDecimal && (left += colDecimal * cellRect.width), rowDecimal && (top += rowDecimal * cellRect.height);
44
44
  const to = {
45
45
  x: (0, vutils_1.isNumber)(col) ? left - this.table.getFrozenColsWidth() : this.table.scrollLeft,
46
- y: (0, vutils_1.isNumber)(row) ? top - this.table.getFrozenRowsHeight() : this.table.scrollTop
46
+ y: (0, vutils_1.isNumber)(row) ? top - this.table.getFrozenRowsHeight() : this.table.scrollTop,
47
+ targetRow: null != rowInt ? rowInt : -1,
48
+ targetCol: null != colInt ? colInt : -1
47
49
  }, duration = (0, vutils_1.isBoolean)(animationOption) ? animationOption ? 3e3 : 0 : null !== (_a = null == animationOption ? void 0 : animationOption.duration) && void 0 !== _a ? _a : 3e3, easing = (0,
48
50
  vutils_1.isBoolean)(animationOption) ? animationOption ? "linear" : "" : null !== (_b = null == animationOption ? void 0 : animationOption.easing) && void 0 !== _b ? _b : "linear";
49
51
  new vrender_1.Animate(vrender_1.Generator.GenAutoIncrementId(), this.timeline).bind(this.tempGraphic).play(new Animateaaa(from, to, duration, easing, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["import type { EasingType, IRect } from './../vrender';\nimport { DefaultTimeline, DefaultTicker, ACustomAnimate, createRect, Generator, Animate } from './../vrender';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { isBoolean, isNumber } from '@visactor/vutils';\nimport type { ITableAnimationOption } from '../ts-types/animation/appear';\n\nfunction isInteger(value: number) {\n return Math.floor(value) === value;\n}\nclass Animateaaa extends ACustomAnimate<any> {\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this.from.x !== this.to.x) {\n const x = end ? this.to.x : this.from.x + Math.floor((this.to.x - this.from.x) * ratio);\n this.params.table.scrollLeft = x;\n }\n if (this.from.y !== this.to.y) {\n const y = end ? this.to.y : this.from.y + Math.floor((this.to.y - this.from.y) * ratio);\n this.params.table.scrollTop = y;\n }\n }\n}\n\nexport class TableAnimationManager {\n table: BaseTableAPI;\n timeline: DefaultTimeline;\n ticker: DefaultTicker;\n animation: Animate;\n tempGraphic: IRect;\n constructor(table: BaseTableAPI) {\n this.table = table;\n this.timeline = new DefaultTimeline();\n // this.ticker = new DefaultTicker([this.timeline]);\n this.ticker = new DefaultTicker(this.table.scenegraph.stage);\n this.ticker.addTimeline(this.timeline);\n const TICKER_FPS = 60;\n this.ticker.setFPS(TICKER_FPS);\n // no use, for avoid error in vrender animation\n this.tempGraphic = createRect({});\n }\n\n scrollTo(position: { col?: number; row?: number }, animationOption?: ITableAnimationOption | true) {\n const from = {\n x: this.table.scrollLeft,\n y: this.table.scrollTop\n };\n\n const { col, row } = position;\n let colInt = col;\n let rowInt = row;\n let colDecimal;\n let rowDecimal;\n if (isNumber(col) && !isInteger(col)) {\n colInt = Math.floor(col);\n colDecimal = col - colInt;\n }\n if (isNumber(row) && !isInteger(row)) {\n rowInt = Math.floor(row);\n rowDecimal = row - rowInt;\n }\n const cellRect = this.table.getCellRect(colInt ?? 0, rowInt ?? 0);\n let { left, top } = cellRect;\n\n // deal with decimal\n if (colDecimal) {\n left += colDecimal * cellRect.width;\n }\n if (rowDecimal) {\n top += rowDecimal * cellRect.height;\n }\n\n const to = {\n x: isNumber(col) ? left - this.table.getFrozenColsWidth() : this.table.scrollLeft,\n y: isNumber(row) ? top - this.table.getFrozenRowsHeight() : this.table.scrollTop\n };\n const duration = !isBoolean(animationOption) ? animationOption?.duration ?? 3000 : animationOption ? 3000 : 0;\n const easing = !isBoolean(animationOption) ? animationOption?.easing ?? 'linear' : animationOption ? 'linear' : '';\n\n const animation = new Animate(Generator.GenAutoIncrementId(), this.timeline).bind(this.tempGraphic).play(\n new Animateaaa(from, to, duration, easing, {\n graphic: this.tempGraphic,\n table: this.table\n })\n );\n // this.timeline.addAnimate(animation);\n this.ticker.start();\n }\n\n clear() {\n this.timeline.clear();\n this.ticker.stop();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["import type { EasingType, IRect } from './../vrender';\nimport { DefaultTimeline, DefaultTicker, ACustomAnimate, createRect, Generator, Animate } from './../vrender';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { isBoolean, isNumber } from '@visactor/vutils';\nimport type { ITableAnimationOption } from '../ts-types/animation/appear';\n\nfunction isInteger(value: number) {\n return Math.floor(value) === value;\n}\nclass Animateaaa extends ACustomAnimate<any> {\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this.from.x !== this.to.x) {\n const x = end ? this.to.x : this.from.x + Math.floor((this.to.x - this.from.x) * ratio);\n this.params.table.scrollLeft = x;\n if (ratio === 1 && this.to.targetCol !== -1) {\n // ensure scrollToCol is called at the end of animation to avoid not reaching the target col\n this.params.table.scrollToCol(this.to.targetCol, false);\n }\n }\n if (this.from.y !== this.to.y) {\n const y = end ? this.to.y : this.from.y + Math.floor((this.to.y - this.from.y) * ratio);\n this.params.table.scrollTop = y;\n if (ratio === 1 && this.to.targetRow !== -1) {\n // ensure scrollToRow is called at the end of animation to avoid not reaching the target row\n this.params.table.scrollToRow(this.to.targetRow, false);\n }\n }\n }\n}\n\nexport class TableAnimationManager {\n table: BaseTableAPI;\n timeline: DefaultTimeline;\n ticker: DefaultTicker;\n animation: Animate;\n tempGraphic: IRect;\n constructor(table: BaseTableAPI) {\n this.table = table;\n this.timeline = new DefaultTimeline();\n // this.ticker = new DefaultTicker([this.timeline]);\n this.ticker = new DefaultTicker(this.table.scenegraph.stage);\n this.ticker.addTimeline(this.timeline);\n const TICKER_FPS = 60;\n this.ticker.setFPS(TICKER_FPS);\n // no use, for avoid error in vrender animation\n this.tempGraphic = createRect({});\n }\n\n scrollTo(position: { col?: number; row?: number }, animationOption?: ITableAnimationOption | true) {\n const from = {\n x: this.table.scrollLeft,\n y: this.table.scrollTop\n };\n\n const { col, row } = position;\n let colInt = col;\n let rowInt = row;\n let colDecimal;\n let rowDecimal;\n if (isNumber(col) && !isInteger(col)) {\n colInt = Math.floor(col);\n colDecimal = col - colInt;\n }\n if (isNumber(row) && !isInteger(row)) {\n rowInt = Math.floor(row);\n rowDecimal = row - rowInt;\n }\n const cellRect = this.table.getCellRect(colInt ?? 0, rowInt ?? 0);\n let { left, top } = cellRect;\n\n // deal with decimal\n if (colDecimal) {\n left += colDecimal * cellRect.width;\n }\n if (rowDecimal) {\n top += rowDecimal * cellRect.height;\n }\n\n const to = {\n x: isNumber(col) ? left - this.table.getFrozenColsWidth() : this.table.scrollLeft,\n y: isNumber(row) ? top - this.table.getFrozenRowsHeight() : this.table.scrollTop,\n targetRow: rowInt ?? -1,\n targetCol: colInt ?? -1\n };\n const duration = !isBoolean(animationOption) ? animationOption?.duration ?? 3000 : animationOption ? 3000 : 0;\n const easing = !isBoolean(animationOption) ? animationOption?.easing ?? 'linear' : animationOption ? 'linear' : '';\n\n const animation = new Animate(Generator.GenAutoIncrementId(), this.timeline).bind(this.tempGraphic).play(\n new Animateaaa(from, to, duration, easing, {\n graphic: this.tempGraphic,\n table: this.table\n })\n );\n // this.timeline.addAnimate(animation);\n this.ticker.start();\n }\n\n clear() {\n this.timeline.clear();\n this.ticker.stop();\n }\n}\n"]}
@@ -30,13 +30,30 @@ Object.defineProperty(exports, "__esModule", {
30
30
  value: !0
31
31
  }), exports.listTableUpdateRecords = exports.listTableDeleteRecords = exports.listTableAddRecords = exports.listTableAddRecord = exports.sortRecords = exports.listTableChangeCellValuesByRanges = exports.listTableChangeCellValues = exports.listTableChangeCellValue = void 0;
32
32
 
33
- const compute_col_width_1 = require("../scenegraph/layout/compute-col-width"), compute_row_height_1 = require("../scenegraph/layout/compute-row-height"), helper_1 = require("../tools/helper"), util_1 = require("../tools/util"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), vutils_1 = require("@visactor/vutils");
33
+ const compute_col_width_1 = require("../scenegraph/layout/compute-col-width"), compute_row_height_1 = require("../scenegraph/layout/compute-row-height"), helper_1 = require("../tools/helper"), util_1 = require("../tools/util"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), vutils_1 = require("@visactor/vutils"), get_custom_merge_cell_func_1 = require("./utils/get-custom-merge-cell-func");
34
+
35
+ function refreshCustomMergeCellGroups(table) {
36
+ var _a;
37
+ if (!Array.isArray(table.options.customMergeCell)) return;
38
+ table.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(table.options.customMergeCell);
39
+ const merges = table.options.customMergeCell;
40
+ for (let i = 0; i < merges.length; i++) {
41
+ const r = null === (_a = merges[i]) || void 0 === _a ? void 0 : _a.range;
42
+ if (null == r ? void 0 : r.start) for (let col = r.start.col; col <= r.end.col; col++) for (let row = r.start.row; row <= r.end.row; row++) table.scenegraph.updateCellContent(col, row);
43
+ }
44
+ }
34
45
 
35
46
  function listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, table, noTriggerChangeCellValuesEvent) {
47
+ var _a, _b;
36
48
  if (workOnEditableCell && table.isHasEditorDefine(col, row) || !1 === workOnEditableCell) {
37
49
  const recordShowIndex = table.getRecordShowIndexByCell(col, row), recordIndex = recordShowIndex >= 0 ? table.dataSource.getIndexKey(recordShowIndex) : void 0, {field: field} = table.internalProps.layoutMap.getBody(col, row), beforeChangeValue = table.getCellRawValue(col, row), oldValue = table.getCellOriginValue(col, row);
38
50
  table.isHeader(col, row) ? table.internalProps.layoutMap.updateColumnTitle(col, row, value) : table.dataSource.changeFieldValue(value, recordShowIndex, field, col, row, table);
39
- const range = table.getCellRange(col, row), aggregators = table.internalProps.layoutMap.getAggregatorsByCell(col, row);
51
+ const range = table.getCellRange(col, row);
52
+ if (range.isCustom && range.start.col === col && range.start.row === row && Array.isArray(table.options.customMergeCell) && "function" == typeof table.getCellValue) {
53
+ const customMerge = null === (_b = null === (_a = table.internalProps) || void 0 === _a ? void 0 : _a.customMergeCell) || void 0 === _b ? void 0 : _b.call(_a, col, row, table);
54
+ customMerge && (customMerge.text = value);
55
+ }
56
+ const aggregators = table.internalProps.layoutMap.getAggregatorsByCell(col, row);
40
57
  if (aggregators) {
41
58
  if (Array.isArray(aggregators)) for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate(); else aggregators.recalculate();
42
59
  const aggregatorCells = table.internalProps.layoutMap.getAggregatorCellAddress(range.start.col, range.start.row, range.end.col, range.end.row);
@@ -242,8 +259,14 @@ function listTableAddRecord(record, recordIndex, table) {
242
259
  (void 0 === recordIndex || recordIndex > table.dataSource.sourceLength) && (recordIndex = table.dataSource.sourceLength);
243
260
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount, syncToOriginalRecords = !!(null === (_f = table.options) || void 0 === _f ? void 0 : _f.syncRecordOperationsToSourceRecords);
244
261
  if (table.dataSource.addRecord(record, recordIndex, syncToOriginalRecords), adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1),
245
- syncToOriginalRecords) return table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(),
246
- table.scenegraph.clearCells(), table.scenegraph.createSceneGraph(), !0;
262
+ syncToOriginalRecords) {
263
+ if (!table.transpose) {
264
+ const insertRowIndex = recordIndex + headerCount + table.internalProps.layoutMap.hasAggregationOnTopCount;
265
+ table.rowHeightsMap.insert(insertRowIndex);
266
+ }
267
+ return table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(),
268
+ table.scenegraph.clearCells(), table.scenegraph.createSceneGraph(!0), !0;
269
+ }
247
270
  const oldRowCount = table.rowCount;
248
271
  if (table.refreshRowColCount(), 0 === table.scenegraph.proxy.totalActualBodyRowCount) return table.scenegraph.clearCells(),
249
272
  table.scenegraph.createSceneGraph(), !0;
@@ -324,8 +347,14 @@ function listTableAddRecords(records, recordIndex, table) {
324
347
  void 0 === recordIndex || recordIndex > table.dataSource.sourceLength ? recordIndex = table.dataSource.sourceLength : recordIndex < 0 && (recordIndex = 0);
325
348
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount, syncToOriginalRecords = !!(null === (_f = table.options) || void 0 === _f ? void 0 : _f.syncRecordOperationsToSourceRecords);
326
349
  if (table.dataSource.addRecords(records, recordIndex, syncToOriginalRecords), adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length),
327
- syncToOriginalRecords) return table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(),
328
- table.scenegraph.clearCells(), table.scenegraph.createSceneGraph(), !0;
350
+ syncToOriginalRecords) {
351
+ if (!table.transpose) {
352
+ const insertRowIndex = recordIndex + headerCount + table.internalProps.layoutMap.hasAggregationOnTopCount;
353
+ for (let i = 0; i < records.length; i++) table.rowHeightsMap.insert(insertRowIndex);
354
+ }
355
+ return table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(),
356
+ table.scenegraph.clearCells(), table.scenegraph.createSceneGraph(!0), !0;
357
+ }
329
358
  const oldRowCount = table.transpose ? table.colCount : table.rowCount;
330
359
  if (table.refreshRowColCount(), 0 === table.scenegraph.proxy.totalActualBodyRowCount) return table.scenegraph.clearCells(),
331
360
  table.scenegraph.createSceneGraph(), !0;
@@ -391,7 +420,7 @@ function listTableAddRecords(records, recordIndex, table) {
391
420
  }
392
421
 
393
422
  function listTableDeleteRecords(recordIndexs, table) {
394
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
423
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
395
424
  if ((null == recordIndexs ? void 0 : recordIndexs.length) > 0) if (table.internalProps.groupBy) null === (_b = (_a = table.dataSource).deleteRecordsForGroup) || void 0 === _b || _b.call(_a, recordIndexs),
396
425
  table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(), table.sortState && sortRecords(table),
397
426
  table.scenegraph.clearCells(), table.scenegraph.createSceneGraph(); else if ("tree" === table.dataSource.rowHierarchyType) {
@@ -406,9 +435,17 @@ function listTableDeleteRecords(recordIndexs, table) {
406
435
  } else {
407
436
  const syncToOriginalRecords = !!(null === (_f = table.options) || void 0 === _f ? void 0 : _f.syncRecordOperationsToSourceRecords), deletedRecordIndexs = table.dataSource.deleteRecords(recordIndexs, syncToOriginalRecords);
408
437
  if (0 === deletedRecordIndexs.length) return;
438
+ Array.isArray(table.options.customMergeCell) && (table.internalProps.customMergeCell = (0,
439
+ get_custom_merge_cell_func_1.getCustomMergeCellFunc)(table.options.customMergeCell));
409
440
  for (let index = 0; index < deletedRecordIndexs.length; index++) adjustCheckBoxStateMapWithDeleteRecordIndex(table, deletedRecordIndexs[index], 1);
410
- if (syncToOriginalRecords) return table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(),
411
- table.scenegraph.clearCells(), void table.scenegraph.createSceneGraph();
441
+ if (syncToOriginalRecords) {
442
+ if (!table.transpose) {
443
+ const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount, topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount, sorted = [ ...deletedRecordIndexs ].sort(((a, b) => b - a));
444
+ for (let i = 0; i < sorted.length; i++) table.rowHeightsMap.delete(sorted[i] + headerCount + topAggregationCount);
445
+ }
446
+ return table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(),
447
+ table.scenegraph.clearCells(), void table.scenegraph.createSceneGraph(!0);
448
+ }
412
449
  const oldRowCount = table.transpose ? table.colCount : table.rowCount;
413
450
  table.refreshRowColCount();
414
451
  const newRowCount = table.transpose ? table.colCount : table.rowCount, recordIndexsMinToMax = deletedRecordIndexs.sort(((a, b) => a - b)), minRecordIndex = recordIndexsMinToMax[0];
@@ -439,7 +476,8 @@ function listTableDeleteRecords(recordIndexs, table) {
439
476
  row: row
440
477
  });
441
478
  null === (_g = table.reactCustomLayout) || void 0 === _g || _g.clearCache(), table.transpose ? table.scenegraph.updateCol(delRows, [], updateRows) : table.scenegraph.updateRow(delRows, [], updateRows),
442
- null === (_h = table.reactCustomLayout) || void 0 === _h || _h.updateAllCustomCell();
479
+ null === (_h = table.reactCustomLayout) || void 0 === _h || _h.updateAllCustomCell(),
480
+ refreshCustomMergeCellGroups(table);
443
481
  }
444
482
  } else {
445
483
  const delRows = [], headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount, topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount, bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;
@@ -454,6 +492,37 @@ function listTableDeleteRecords(recordIndexs, table) {
454
492
  });
455
493
  }
456
494
  const updateRows = [];
495
+ if (table.internalProps.customMergeCell) {
496
+ const proxy = table.scenegraph.proxy, deletedIndexNums = (recordIndexsMinToMax[0],
497
+ recordIndexsMinToMax.map((recordIndex => recordIndex + headerCount + topAggregationCount))), minIndexNum = deletedIndexNums[0];
498
+ let updateMin = minIndexNum, updateMax = minIndexNum;
499
+ if (Array.isArray(table.options.customMergeCell)) {
500
+ const merges = table.options.customMergeCell, axis = table.transpose ? "col" : "row";
501
+ merges.forEach((m => {
502
+ const r = null == m ? void 0 : m.range;
503
+ if ((null == r ? void 0 : r.start) && (null == r ? void 0 : r.end)) for (let i = 0; i < deletedIndexNums.length; i++) {
504
+ const deleteIndex = deletedIndexNums[i];
505
+ if (r.end[axis] >= deleteIndex - 1) {
506
+ updateMin = Math.min(updateMin, r.start[axis]), updateMax = Math.max(updateMax, r.end[axis]);
507
+ break;
508
+ }
509
+ }
510
+ }));
511
+ }
512
+ if (table.transpose) {
513
+ const start = Math.max(updateMin, null !== (_j = null == proxy ? void 0 : proxy.colStart) && void 0 !== _j ? _j : updateMin), end = Math.min(updateMax, null !== (_k = null == proxy ? void 0 : proxy.colEnd) && void 0 !== _k ? _k : updateMax);
514
+ for (let col = start; col <= end; col++) updateRows.push({
515
+ col: col,
516
+ row: 0
517
+ });
518
+ } else {
519
+ const start = Math.max(updateMin, null !== (_l = null == proxy ? void 0 : proxy.rowStart) && void 0 !== _l ? _l : updateMin), end = Math.min(updateMax, null !== (_m = null == proxy ? void 0 : proxy.rowEnd) && void 0 !== _m ? _m : updateMax);
520
+ for (let row = start; row <= end; row++) updateRows.push({
521
+ col: 0,
522
+ row: row
523
+ });
524
+ }
525
+ }
457
526
  for (let row = headerCount; row < headerCount + topAggregationCount; row++) table.transpose ? updateRows.push({
458
527
  col: row,
459
528
  row: 0
@@ -468,8 +537,9 @@ function listTableDeleteRecords(recordIndexs, table) {
468
537
  col: 0,
469
538
  row: row
470
539
  });
471
- null === (_j = table.reactCustomLayout) || void 0 === _j || _j.clearCache(), table.transpose ? table.scenegraph.updateCol(delRows, [], updateRows) : table.scenegraph.updateRow(delRows, [], updateRows),
472
- null === (_k = table.reactCustomLayout) || void 0 === _k || _k.updateAllCustomCell();
540
+ null === (_o = table.reactCustomLayout) || void 0 === _o || _o.clearCache(), table.transpose ? table.scenegraph.updateCol(delRows, [], updateRows) : table.scenegraph.updateRow(delRows, [], updateRows),
541
+ null === (_p = table.reactCustomLayout) || void 0 === _p || _p.updateAllCustomCell(),
542
+ refreshCustomMergeCellGroups(table);
473
543
  }
474
544
  }
475
545
  }
@@ -487,7 +557,7 @@ function listTableUpdateRecords(records, recordIndexs, table) {
487
557
  const syncToOriginalRecords = !!(null === (_f = table.options) || void 0 === _f ? void 0 : _f.syncRecordOperationsToSourceRecords), updateRecordIndexs = table.dataSource.updateRecords(records, recordIndexs, syncToOriginalRecords);
488
558
  if (0 === updateRecordIndexs.length) return;
489
559
  if (syncToOriginalRecords) return table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(),
490
- table.scenegraph.clearCells(), void table.scenegraph.createSceneGraph();
560
+ table.scenegraph.clearCells(), void table.scenegraph.createSceneGraph(!0);
491
561
  const recordIndexsMinToMax = updateRecordIndexs.map((index => table.getBodyRowIndexByRecordIndex(index))).sort(((a, b) => a - b));
492
562
  if (table.pagination) {
493
563
  const {perPageCount: perPageCount, currentPage: currentPage} = table.pagination, headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount, topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount, endIndex = perPageCount * (currentPage || 0) + perPageCount, updateRows = [];