@visactor/vtable 1.22.11-alpha.3 → 1.22.11-alpha.5

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 (87) hide show
  1. package/cjs/ListTable.d.ts +34 -7
  2. package/cjs/ListTable.js +134 -14
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/core/BaseTable.js +1 -1
  5. package/cjs/core/BaseTable.js.map +1 -1
  6. package/cjs/core/TABLE_EVENT_TYPE.d.ts +1 -0
  7. package/cjs/core/TABLE_EVENT_TYPE.js +1 -0
  8. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  9. package/cjs/core/index.d.ts +1 -0
  10. package/cjs/core/index.js +30 -0
  11. package/cjs/core/index.js.map +1 -0
  12. package/cjs/core/record-helper.d.ts +4 -2
  13. package/cjs/core/record-helper.js +81 -24
  14. package/cjs/core/record-helper.js.map +1 -1
  15. package/cjs/data/DataSource.d.ts +1 -0
  16. package/cjs/data/DataSource.js +25 -3
  17. package/cjs/data/DataSource.js.map +1 -1
  18. package/cjs/dataset/DataStatistics.js +1 -2
  19. package/cjs/dataset/dataset-pivot-table.js +2 -1
  20. package/cjs/edit/edit-manager.js +1 -1
  21. package/cjs/edit/editors.js +1 -1
  22. package/cjs/event/event.d.ts +2 -1
  23. package/cjs/event/event.js +20 -9
  24. package/cjs/event/event.js.map +1 -1
  25. package/cjs/header-helper/style.js +1 -2
  26. package/cjs/index.d.ts +1 -1
  27. package/cjs/index.js +1 -1
  28. package/cjs/index.js.map +1 -1
  29. package/cjs/layout/pivot-header-layout.js +1 -0
  30. package/cjs/plugins/custom-cell-style.d.ts +5 -0
  31. package/cjs/plugins/custom-cell-style.js +9 -0
  32. package/cjs/plugins/custom-cell-style.js.map +1 -1
  33. package/cjs/plugins/index.js +1 -1
  34. package/cjs/plugins/interface.js +1 -1
  35. package/cjs/plugins/invert-highlight.js +1 -1
  36. package/cjs/ts-types/base-table.d.ts +2 -2
  37. package/cjs/ts-types/base-table.js.map +1 -1
  38. package/cjs/ts-types/events.d.ts +15 -0
  39. package/cjs/ts-types/events.js.map +1 -1
  40. package/cjs/ts-types/table-engine.d.ts +32 -6
  41. package/cjs/ts-types/table-engine.js.map +1 -1
  42. package/cjs/vrender.js.map +1 -1
  43. package/dist/vtable.js +375 -48
  44. package/dist/vtable.min.js +2 -2
  45. package/es/ListTable.d.ts +34 -7
  46. package/es/ListTable.js +130 -14
  47. package/es/ListTable.js.map +1 -1
  48. package/es/core/BaseTable.js +1 -1
  49. package/es/core/BaseTable.js.map +1 -1
  50. package/es/core/TABLE_EVENT_TYPE.d.ts +1 -0
  51. package/es/core/TABLE_EVENT_TYPE.js +1 -0
  52. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  53. package/es/core/index.d.ts +1 -0
  54. package/es/core/index.js +2 -0
  55. package/es/core/index.js.map +1 -0
  56. package/es/core/record-helper.d.ts +4 -2
  57. package/es/core/record-helper.js +75 -20
  58. package/es/core/record-helper.js.map +1 -1
  59. package/es/data/DataSource.d.ts +1 -0
  60. package/es/data/DataSource.js +25 -3
  61. package/es/data/DataSource.js.map +1 -1
  62. package/es/dataset/DataStatistics.js +1 -2
  63. package/es/dataset/dataset-pivot-table.js +2 -1
  64. package/es/edit/edit-manager.js +1 -1
  65. package/es/edit/editors.js +1 -1
  66. package/es/event/event.d.ts +2 -1
  67. package/es/event/event.js +20 -9
  68. package/es/event/event.js.map +1 -1
  69. package/es/header-helper/style.js +1 -2
  70. package/es/index.d.ts +1 -1
  71. package/es/index.js +1 -1
  72. package/es/index.js.map +1 -1
  73. package/es/layout/pivot-header-layout.js +2 -1
  74. package/es/plugins/custom-cell-style.d.ts +5 -0
  75. package/es/plugins/custom-cell-style.js +9 -0
  76. package/es/plugins/custom-cell-style.js.map +1 -1
  77. package/es/plugins/index.js +1 -1
  78. package/es/plugins/interface.js +1 -1
  79. package/es/plugins/invert-highlight.js +1 -1
  80. package/es/ts-types/base-table.d.ts +2 -2
  81. package/es/ts-types/base-table.js.map +1 -1
  82. package/es/ts-types/events.d.ts +15 -0
  83. package/es/ts-types/events.js.map +1 -1
  84. package/es/ts-types/table-engine.d.ts +32 -6
  85. package/es/ts-types/table-engine.js.map +1 -1
  86. package/es/vrender.js.map +1 -1
  87. package/package.json +4 -4
@@ -60,6 +60,7 @@ export interface TableEvents {
60
60
  AFTER_UPDATE_CELL_CONTENT_WIDTH: 'after_update_cell_content_width';
61
61
  AFTER_UPDATE_SELECT_BORDER_HEIGHT: 'after_update_select_border_height';
62
62
  CHANGE_CELL_VALUE: 'change_cell_value';
63
+ CHANGE_CELL_VALUES: 'change_cell_values';
63
64
  MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle';
64
65
  DRAG_FILL_HANDLE_END: 'drag_fill_handle_end';
65
66
  DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle';
@@ -60,6 +60,7 @@ export const TABLE_EVENT_TYPE = {
60
60
  AFTER_UPDATE_CELL_CONTENT_WIDTH: "after_update_cell_content_width",
61
61
  AFTER_UPDATE_SELECT_BORDER_HEIGHT: "after_update_select_border_height",
62
62
  CHANGE_CELL_VALUE: "change_cell_value",
63
+ CHANGE_CELL_VALUES: "change_cell_values",
63
64
  DRAG_FILL_HANDLE_END: "drag_fill_handle_end",
64
65
  MOUSEDOWN_FILL_HANDLE: "mousedown_fill_handle",
65
66
  DBLCLICK_FILL_HANDLE: "dblclick_fill_handle",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":"AAqQA,MAAM,CAAC,MAAM,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,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 /**\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 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":"AAuQA,MAAM,CAAC,MAAM,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"]}
@@ -0,0 +1 @@
1
+ export { listTableChangeCellValue, listTableChangeCellValues, listTableChangeCellValuesByIds, listTableDeleteRecords } from './record-helper';
@@ -0,0 +1,2 @@
1
+ export { listTableChangeCellValue, listTableChangeCellValues, listTableChangeCellValuesByIds, listTableDeleteRecords } from "./record-helper";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,iBAAiB,CAAC","file":"index.js","sourcesContent":["export {\n listTableChangeCellValue,\n listTableChangeCellValues,\n listTableChangeCellValuesByIds,\n listTableDeleteRecords\n} from './record-helper';\n"]}
@@ -1,6 +1,8 @@
1
1
  import type { ListTable } from '../ListTable';
2
- export declare function listTableChangeCellValue(col: number, row: number, value: string | number | null, workOnEditableCell: boolean, triggerEvent: boolean, table: ListTable): void;
3
- export declare function listTableChangeCellValues(startCol: number, startRow: number, values: (string | number)[][], workOnEditableCell: boolean, triggerEvent: boolean, table: ListTable): Promise<boolean[][]>;
2
+ import type { CellRange } from '../ts-types';
3
+ export declare function listTableChangeCellValue(col: number, row: number, value: string | number | null, workOnEditableCell: boolean, triggerEvent: boolean, table: ListTable, silentChangeCellValuesEvent?: boolean): void;
4
+ export declare function listTableChangeCellValues(startCol: number, startRow: number, values: (string | number)[][], workOnEditableCell: boolean, triggerEvent: boolean, table: ListTable, silentChangeCellValuesEvent?: boolean): Promise<boolean[][]>;
5
+ export declare function listTableChangeCellValuesByIds(ranges: CellRange[], value: string | number | null, workOnEditableCell: boolean, triggerEvent: boolean, table: ListTable, silentChangeCellValuesEvent?: boolean): Promise<void>;
4
6
  export declare function sortRecords(table: ListTable): void;
5
7
  export declare function listTableAddRecord(record: any, recordIndex: number | number[], table: ListTable): boolean;
6
8
  export declare function listTableAddRecords(records: any[], recordIndex: number | number[], table: ListTable): boolean;
@@ -36,10 +36,10 @@ import { TABLE_EVENT_TYPE } from "./TABLE_EVENT_TYPE";
36
36
 
37
37
  import { isNumber } from "@visactor/vutils";
38
38
 
39
- export function listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, table) {
39
+ export function listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, table, silentChangeCellValuesEvent) {
40
40
  if (workOnEditableCell && table.isHasEditorDefine(col, row) || !1 === workOnEditableCell) {
41
- const recordIndex = table.getRecordShowIndexByCell(col, row), {field: field} = table.internalProps.layoutMap.getBody(col, row), beforeChangeValue = table.getCellRawValue(col, row), oldValue = table.getCellOriginValue(col, row);
42
- table.isHeader(col, row) ? table.internalProps.layoutMap.updateColumnTitle(col, row, value) : table.dataSource.changeFieldValue(value, recordIndex, field, col, row, table);
41
+ 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);
42
+ table.isHeader(col, row) ? table.internalProps.layoutMap.updateColumnTitle(col, row, value) : table.dataSource.changeFieldValue(value, recordShowIndex, field, col, row, table);
43
43
  const range = table.getCellRange(col, row), aggregators = table.internalProps.layoutMap.getAggregatorsByCell(col, row);
44
44
  if (aggregators) {
45
45
  if (Array.isArray(aggregators)) for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate(); else aggregators.recalculate();
@@ -59,17 +59,25 @@ export function listTableChangeCellValue(col, row, value, workOnEditableCell, tr
59
59
  table.scenegraph.updateRowHeight(row, newHeight - oldHeight);
60
60
  }
61
61
  const changedValue = table.getCellOriginValue(col, row);
62
- oldValue !== changedValue && triggerEvent && table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
63
- col: col,
64
- row: row,
65
- rawValue: beforeChangeValue,
66
- currentValue: oldValue,
67
- changedValue: changedValue
68
- }), table.scenegraph.updateNextFrame();
62
+ if (oldValue !== changedValue && triggerEvent) {
63
+ const changeValue = {
64
+ col: col,
65
+ row: row,
66
+ recordIndex: recordIndex,
67
+ field: field,
68
+ rawValue: beforeChangeValue,
69
+ currentValue: oldValue,
70
+ changedValue: changedValue
71
+ };
72
+ table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, changeValue), silentChangeCellValuesEvent || table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, {
73
+ values: [ changeValue ]
74
+ });
75
+ }
76
+ table.scenegraph.updateNextFrame();
69
77
  }
70
78
  }
71
79
 
72
- export function listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, table) {
80
+ export function listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, table, silentChangeCellValuesEvent) {
73
81
  var _a, _b;
74
82
  return __awaiter(this, void 0, void 0, (function*() {
75
83
  const changedCellResults = [];
@@ -87,6 +95,7 @@ export function listTableChangeCellValues(startCol, startRow, values, workOnEdit
87
95
  oldRowValues.push(oldValue);
88
96
  }
89
97
  }
98
+ const resultChangeValues = [];
90
99
  for (let i = 0; i < values.length && !(startRow + i > table.rowCount - 1); i++) {
91
100
  changedCellResults[i] = [], pasteRowEnd = startRow + i;
92
101
  const rowValues = values[i];
@@ -106,20 +115,28 @@ export function listTableChangeCellValues(startCol, startRow, values, workOnEdit
106
115
  }
107
116
  if (isCanChange) {
108
117
  changedCellResults[i][j] = !0;
109
- const value = rowValues[j], recordIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i), {field: field} = table.internalProps.layoutMap.getBody(startCol + j, startRow + i), beforeChangeValue = beforeChangeValues[i][j], oldValue = oldValues[i][j];
110
- table.isHeader(startCol + j, startRow + i) ? table.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value) : table.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, table);
118
+ const value = rowValues[j], recordShowIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i), recordIndex = recordShowIndex >= 0 ? table.dataSource.getIndexKey(recordShowIndex) : void 0, {field: field} = table.internalProps.layoutMap.getBody(startCol + j, startRow + i), beforeChangeValue = beforeChangeValues[i][j], oldValue = oldValues[i][j];
119
+ table.isHeader(startCol + j, startRow + i) ? table.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value) : table.dataSource.changeFieldValue(value, recordShowIndex, field, startCol + j, startRow + i, table);
111
120
  const changedValue = table.getCellOriginValue(startCol + j, startRow + i);
112
- oldValue !== changedValue && triggerEvent && table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
113
- col: startCol + j,
114
- row: startRow + i,
115
- rawValue: beforeChangeValue,
116
- currentValue: oldValue,
117
- changedValue: changedValue
118
- });
121
+ if (oldValue !== changedValue && triggerEvent) {
122
+ const changeValue = {
123
+ col: startCol + j,
124
+ row: startRow + i,
125
+ recordIndex: recordIndex,
126
+ field: field,
127
+ rawValue: beforeChangeValue,
128
+ currentValue: oldValue,
129
+ changedValue: changedValue
130
+ };
131
+ table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, changeValue), resultChangeValues.push(changeValue);
132
+ }
119
133
  } else changedCellResults[i][j] = !1;
120
134
  }
121
135
  pasteColEnd = Math.max(pasteColEnd, thisRowPasteColEnd);
122
136
  }
137
+ silentChangeCellValuesEvent || table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, {
138
+ values: resultChangeValues
139
+ });
123
140
  const startRange = table.getCellRange(startCol, startRow), range = table.getCellRange(pasteColEnd, pasteRowEnd), aggregators = table.internalProps.layoutMap.getAggregatorsByCellRange(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
124
141
  if (aggregators) {
125
142
  for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate();
@@ -152,6 +169,44 @@ export function listTableChangeCellValues(startCol, startRow, values, workOnEdit
152
169
  }));
153
170
  }
154
171
 
172
+ export function listTableChangeCellValuesByIds(ranges, value, workOnEditableCell, triggerEvent, table, silentChangeCellValuesEvent) {
173
+ var _a, _b;
174
+ return __awaiter(this, void 0, void 0, (function*() {
175
+ const resultChangeValues = [], processed = new Set, nextValue = null != value ? value : "";
176
+ for (let i = 0; i < (null !== (_a = null == ranges ? void 0 : ranges.length) && void 0 !== _a ? _a : 0); i++) {
177
+ const range = ranges[i], startCol = Math.min(range.start.col, range.end.col), endCol = Math.max(range.start.col, range.end.col), startRow = Math.min(range.start.row, range.end.row), endRow = Math.max(range.start.row, range.end.row);
178
+ if (startCol > endCol || startRow > endRow) continue;
179
+ const values = [], oldValues = [];
180
+ for (let row = startRow; row <= endRow; row++) {
181
+ const rowValues = [], rowOldValues = [];
182
+ for (let col = startCol; col <= endCol; col++) rowValues.push(nextValue), rowOldValues.push(table.getCellOriginValue(col, row));
183
+ values.push(rowValues), oldValues.push(rowOldValues);
184
+ }
185
+ const changedCellResults = yield listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, table, !0);
186
+ for (let r = 0; r < values.length; r++) for (let c = 0; c < values[r].length; c++) {
187
+ const col = startCol + c, row = startRow + r, key = `${col},${row}`;
188
+ if (processed.has(key)) continue;
189
+ if (processed.add(key), !triggerEvent || !(null === (_b = null == changedCellResults ? void 0 : changedCellResults[r]) || void 0 === _b ? void 0 : _b[c])) continue;
190
+ const oldValue = oldValues[r][c], changedValue = table.getCellOriginValue(col, row);
191
+ if (oldValue === changedValue) continue;
192
+ const recordShowIndex = table.getRecordShowIndexByCell(col, row), recordIndex = recordShowIndex >= 0 ? table.dataSource.getIndexKey(recordShowIndex) : void 0, {field: field} = table.internalProps.layoutMap.getBody(col, row);
193
+ resultChangeValues.push({
194
+ col: col,
195
+ row: row,
196
+ recordIndex: recordIndex,
197
+ field: field,
198
+ rawValue: oldValue,
199
+ currentValue: oldValue,
200
+ changedValue: changedValue
201
+ });
202
+ }
203
+ }
204
+ !silentChangeCellValuesEvent && triggerEvent && table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, {
205
+ values: resultChangeValues
206
+ });
207
+ }));
208
+ }
209
+
155
210
  function getCellUpdateType(col, row, table, oldCellUpdateType) {
156
211
  if ("group" === oldCellUpdateType) return oldCellUpdateType;
157
212
  if ("sort" === oldCellUpdateType && !table.internalProps.groupBy) return oldCellUpdateType;