@visactor/vtable 0.15.0-alpha.1 → 0.15.0-alpha.2

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 (139) hide show
  1. package/cjs/ListTable.d.ts +0 -7
  2. package/cjs/ListTable.js +3 -78
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/core/BaseTable.d.ts +1 -1
  5. package/cjs/core/BaseTable.js +8 -6
  6. package/cjs/core/BaseTable.js.map +1 -1
  7. package/cjs/core/TABLE_EVENT_TYPE.d.ts +0 -2
  8. package/cjs/core/TABLE_EVENT_TYPE.js +1 -3
  9. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  10. package/cjs/data/DataSource.d.ts +1 -7
  11. package/cjs/data/DataSource.js +7 -42
  12. package/cjs/data/DataSource.js.map +1 -1
  13. package/cjs/event/listener/container-dom.js +1 -5
  14. package/cjs/event/listener/container-dom.js.map +1 -1
  15. package/cjs/event/listener/table-group.js +23 -29
  16. package/cjs/event/listener/table-group.js.map +1 -1
  17. package/cjs/event/media-click.js +2 -1
  18. package/cjs/event/sparkline-event.js +1 -2
  19. package/cjs/index.d.ts +3 -3
  20. package/cjs/index.js +1 -1
  21. package/cjs/index.js.map +1 -1
  22. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  23. package/cjs/layout/pivot-header-layout.js +4 -1
  24. package/cjs/layout/pivot-header-layout.js.map +1 -1
  25. package/cjs/layout/simple-header-layout.d.ts +1 -0
  26. package/cjs/layout/simple-header-layout.js +3 -0
  27. package/cjs/layout/simple-header-layout.js.map +1 -1
  28. package/cjs/register.d.ts +0 -2
  29. package/cjs/register.js +3 -8
  30. package/cjs/register.js.map +1 -1
  31. package/cjs/scenegraph/group-creater/cell-helper.js +10 -3
  32. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  33. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +3 -4
  34. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  35. package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
  36. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  37. package/cjs/scenegraph/layout/compute-col-width.d.ts +1 -1
  38. package/cjs/scenegraph/layout/compute-col-width.js +8 -10
  39. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  40. package/cjs/scenegraph/layout/frozen.js +18 -3
  41. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  42. package/cjs/scenegraph/layout/update-row.js +3 -4
  43. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  44. package/cjs/scenegraph/scenegraph.d.ts +0 -1
  45. package/cjs/scenegraph/scenegraph.js +5 -12
  46. package/cjs/scenegraph/scenegraph.js.map +1 -1
  47. package/cjs/state/resize/update-resize-column.js +6 -15
  48. package/cjs/state/resize/update-resize-column.js.map +1 -1
  49. package/cjs/themes/ARCO.js +2 -1
  50. package/cjs/themes/DARK.js +1 -2
  51. package/cjs/tools/Rect.js +1 -1
  52. package/cjs/tools/calc.js +1 -1
  53. package/cjs/ts-types/base-table.d.ts +0 -2
  54. package/cjs/ts-types/base-table.js.map +1 -1
  55. package/cjs/ts-types/common.d.ts +0 -6
  56. package/cjs/ts-types/common.js.map +1 -1
  57. package/cjs/ts-types/events.d.ts +2 -12
  58. package/cjs/ts-types/events.js.map +1 -1
  59. package/cjs/ts-types/list-table/define/basic-define.d.ts +1 -4
  60. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  61. package/cjs/ts-types/table-engine.d.ts +1 -8
  62. package/cjs/ts-types/table-engine.js.map +1 -1
  63. package/dist/vtable.js +151 -358
  64. package/dist/vtable.min.js +2 -2
  65. package/es/ListTable.d.ts +0 -7
  66. package/es/ListTable.js +1 -59
  67. package/es/ListTable.js.map +1 -1
  68. package/es/core/BaseTable.d.ts +1 -1
  69. package/es/core/BaseTable.js +8 -6
  70. package/es/core/BaseTable.js.map +1 -1
  71. package/es/core/TABLE_EVENT_TYPE.d.ts +0 -2
  72. package/es/core/TABLE_EVENT_TYPE.js +1 -3
  73. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  74. package/es/data/DataSource.d.ts +1 -7
  75. package/es/data/DataSource.js +8 -43
  76. package/es/data/DataSource.js.map +1 -1
  77. package/es/event/listener/container-dom.js +1 -5
  78. package/es/event/listener/container-dom.js.map +1 -1
  79. package/es/event/listener/table-group.js +23 -29
  80. package/es/event/listener/table-group.js.map +1 -1
  81. package/es/event/media-click.js +2 -1
  82. package/es/event/sparkline-event.js +1 -2
  83. package/es/index.d.ts +3 -3
  84. package/es/index.js +1 -1
  85. package/es/index.js.map +1 -1
  86. package/es/layout/pivot-header-layout.d.ts +1 -0
  87. package/es/layout/pivot-header-layout.js +4 -1
  88. package/es/layout/pivot-header-layout.js.map +1 -1
  89. package/es/layout/simple-header-layout.d.ts +1 -0
  90. package/es/layout/simple-header-layout.js +3 -0
  91. package/es/layout/simple-header-layout.js.map +1 -1
  92. package/es/register.d.ts +0 -2
  93. package/es/register.js +0 -6
  94. package/es/register.js.map +1 -1
  95. package/es/scenegraph/group-creater/cell-helper.js +10 -3
  96. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  97. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +3 -3
  98. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  99. package/es/scenegraph/group-creater/progress/proxy.js +1 -1
  100. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  101. package/es/scenegraph/layout/compute-col-width.d.ts +1 -1
  102. package/es/scenegraph/layout/compute-col-width.js +8 -10
  103. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  104. package/es/scenegraph/layout/frozen.js +20 -2
  105. package/es/scenegraph/layout/frozen.js.map +1 -1
  106. package/es/scenegraph/layout/update-row.js +3 -4
  107. package/es/scenegraph/layout/update-row.js.map +1 -1
  108. package/es/scenegraph/scenegraph.d.ts +0 -1
  109. package/es/scenegraph/scenegraph.js +3 -11
  110. package/es/scenegraph/scenegraph.js.map +1 -1
  111. package/es/state/resize/update-resize-column.js +6 -15
  112. package/es/state/resize/update-resize-column.js.map +1 -1
  113. package/es/themes/ARCO.js +2 -1
  114. package/es/themes/DARK.js +1 -2
  115. package/es/tools/Rect.js +1 -1
  116. package/es/tools/calc.js +1 -1
  117. package/es/ts-types/base-table.d.ts +0 -2
  118. package/es/ts-types/base-table.js.map +1 -1
  119. package/es/ts-types/common.d.ts +0 -6
  120. package/es/ts-types/common.js.map +1 -1
  121. package/es/ts-types/events.d.ts +2 -12
  122. package/es/ts-types/events.js.map +1 -1
  123. package/es/ts-types/list-table/define/basic-define.d.ts +1 -4
  124. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  125. package/es/ts-types/table-engine.d.ts +1 -8
  126. package/es/ts-types/table-engine.js.map +1 -1
  127. package/package.json +3 -8
  128. package/cjs/edit/edit-manager.d.ts +0 -13
  129. package/cjs/edit/edit-manager.js +0 -59
  130. package/cjs/edit/edit-manager.js.map +0 -1
  131. package/cjs/edit/editors.d.ts +0 -5
  132. package/cjs/edit/editors.js +0 -10
  133. package/cjs/edit/editors.js.map +0 -1
  134. package/es/edit/edit-manager.d.ts +0 -13
  135. package/es/edit/edit-manager.js +0 -53
  136. package/es/edit/edit-manager.js.map +0 -1
  137. package/es/edit/editors.d.ts +0 -5
  138. package/es/edit/editors.js +0 -6
  139. package/es/edit/editors.js.map +0 -1
@@ -20,7 +20,6 @@ export interface TableEvents {
20
20
  DROPDOWN_MENU_CLICK: 'dropdown_menu_click';
21
21
  MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol';
22
22
  DRAG_SELECT_END: 'drag_select_end';
23
- COPY_DATA: 'copy_data';
24
23
  DROPDOWN_ICON_CLICK: 'dropdown_icon_click';
25
24
  DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear';
26
25
  TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change';
@@ -36,6 +35,5 @@ export interface TableEvents {
36
35
  CHECKBOX_STATE_CHANGE: 'checkbox_state_change';
37
36
  AFTER_RENDER: 'after_render';
38
37
  INITIALIZED: 'initialized';
39
- CHANGE_CELL_VALUE: 'change_cell_value';
40
38
  }
41
39
  export declare const TABLE_EVENT_TYPE: TableEvents;
@@ -20,7 +20,6 @@ export const TABLE_EVENT_TYPE = {
20
20
  DROPDOWN_MENU_CLICK: "dropdown_menu_click",
21
21
  MOUSEOVER_CHART_SYMBOL: "mouseover_chart_symbol",
22
22
  DRAG_SELECT_END: "drag_select_end",
23
- COPY_DATA: "copy_data",
24
23
  DROPDOWN_ICON_CLICK: "dropdown_icon_click",
25
24
  DROPDOWN_MENU_CLEAR: "dropdown_menu_clear",
26
25
  TREE_HIERARCHY_STATE_CHANGE: "tree_hierarchy_state_change",
@@ -35,7 +34,6 @@ export const TABLE_EVENT_TYPE = {
35
34
  MOUSELEAVE_AXIS: "mouseleave_axis",
36
35
  CHECKBOX_STATE_CHANGE: "checkbox_state_change",
37
36
  AFTER_RENDER: "after_render",
38
- INITIALIZED: "initialized",
39
- CHANGE_CELL_VALUE: "change_cell_value"
37
+ INITIALIZED: "initialized"
40
38
  };
41
39
  //# sourceMappingURL=TABLE_EVENT_TYPE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":"AAqIA,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,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;IAChD,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,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,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;CACxB,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 KEYDOWN: 'keydown';\n /**\n * 鼠标进入表格事件\n */\n MOUSEENTER_TABLE: 'mouseenter_table';\n /**\n * 鼠标离开表格事件\n */\n MOUSELEAVE_TABLE: 'mouseleave_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 RESIZE_COLUMN: 'resize_column';\n /**\n * 列宽调整结束事件\n */\n RESIZE_COLUMN_END: 'resize_column_end';\n /**\n * 拖拽表头移动位置的事件\n */\n CHANGE_HEADER_POSITION: 'change_header_position';\n /**\n * 点击排序图标事件\n */\n SORT_CLICK: 'sort_click';\n /**\n * 点击固定列图标 冻结或者解冻事件\n */\n FREEZE_CLICK: 'freeze_click';\n /**\n * 滚动表格事件\n */\n SCROLL: 'scroll';\n\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 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 //#region lifecircle\n /** 每次渲染完成触发 */\n AFTER_RENDER: 'after_render';\n /** 表格实例初始化完成 */\n INITIALIZED: 'initialized';\n //#endregion\n\n CHANGE_CELL_VALUE: 'change_cell_value';\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 KEYDOWN: 'keydown',\n MOUSEENTER_TABLE: 'mouseenter_table',\n MOUSELEAVE_TABLE: 'mouseleave_table',\n MOUSEMOVE_CELL: 'mousemove_cell',\n MOUSEENTER_CELL: 'mouseenter_cell',\n MOUSELEAVE_CELL: 'mouseleave_cell',\n CONTEXTMENU_CELL: 'contextmenu_cell',\n RESIZE_COLUMN: 'resize_column',\n RESIZE_COLUMN_END: 'resize_column_end',\n CHANGE_HEADER_POSITION: 'change_header_position',\n SORT_CLICK: 'sort_click',\n FREEZE_CLICK: 'freeze_click',\n SCROLL: 'scroll',\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click',\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol',\n DRAG_SELECT_END: 'drag_select_end',\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 AFTER_RENDER: 'after_render',\n INITIALIZED: 'initialized',\n CHANGE_CELL_VALUE: 'change_cell_value'\n} as TableEvents;\n"]}
1
+ {"version":3,"sources":["core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":"AAkIA,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,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;IAChD,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAElC,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,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CACZ,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 KEYDOWN: 'keydown';\n /**\n * 鼠标进入表格事件\n */\n MOUSEENTER_TABLE: 'mouseenter_table';\n /**\n * 鼠标离开表格事件\n */\n MOUSELEAVE_TABLE: 'mouseleave_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 RESIZE_COLUMN: 'resize_column';\n /**\n * 列宽调整结束事件\n */\n RESIZE_COLUMN_END: 'resize_column_end';\n /**\n * 拖拽表头移动位置的事件\n */\n CHANGE_HEADER_POSITION: 'change_header_position';\n /**\n * 点击排序图标事件\n */\n SORT_CLICK: 'sort_click';\n /**\n * 点击固定列图标 冻结或者解冻事件\n */\n FREEZE_CLICK: 'freeze_click';\n /**\n * 滚动表格事件\n */\n SCROLL: 'scroll';\n\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 */\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 //#region lifecircle\n /** 每次渲染完成触发 */\n AFTER_RENDER: 'after_render';\n /** 表格实例初始化完成 */\n INITIALIZED: 'initialized';\n //#endregion\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 KEYDOWN: 'keydown',\n MOUSEENTER_TABLE: 'mouseenter_table',\n MOUSELEAVE_TABLE: 'mouseleave_table',\n MOUSEMOVE_CELL: 'mousemove_cell',\n MOUSEENTER_CELL: 'mouseenter_cell',\n MOUSELEAVE_CELL: 'mouseleave_cell',\n CONTEXTMENU_CELL: 'contextmenu_cell',\n RESIZE_COLUMN: 'resize_column',\n RESIZE_COLUMN_END: 'resize_column_end',\n CHANGE_HEADER_POSITION: 'change_header_position',\n SORT_CLICK: 'sort_click',\n FREEZE_CLICK: 'freeze_click',\n SCROLL: 'scroll',\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click',\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol',\n DRAG_SELECT_END: 'drag_select_end',\n\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 AFTER_RENDER: 'after_render',\n INITIALIZED: 'initialized'\n} as TableEvents;\n"]}
@@ -32,18 +32,15 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
32
32
  enableHierarchyState: boolean;
33
33
  static get EVENT_TYPE(): typeof EVENT_TYPE;
34
34
  protected treeDataHierarchyState: Map<number | string, HierarchyState>;
35
- changeValuesMap: Record<number, boolean>[];
36
35
  constructor(obj?: DataSourceParam | DataSource, pagination?: IPagination, hierarchyExpandLevel?: number);
37
36
  initChildrenNodeHierarchy(indexKey: number | number[], hierarchyExpandLevel: number, currentLevel: number, nodeData: any): number;
38
37
  updatePagination(pagination?: IPagination): void;
39
38
  protected updatePagerData(): void;
40
39
  get source(): any;
41
40
  get(index: number): MaybePromiseOrUndefined;
42
- getRaw(index: number): MaybePromiseOrUndefined;
43
41
  getIndexKey(index: number): number | number[];
44
42
  getTableIndex(colOrRow: number): number;
45
43
  getField(index: number, field: FieldDef | FieldFormat | number, col: number, row: number, table: BaseTableAPI): FieldData;
46
- getRawField(index: number, field: FieldDef | FieldFormat | number, col: number, row: number, table: BaseTableAPI): FieldData;
47
44
  hasField(index: number, field: FieldDef): boolean;
48
45
  getHierarchyState(index: number): HierarchyState;
49
46
  toggleHierarchyState(index: number): {
@@ -51,7 +48,6 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
51
48
  remove: number[];
52
49
  };
53
50
  pushChildrenNode(indexKey: number | number[], hierarchyState: HierarchyState, nodeData: any): number;
54
- changeFieldValue(value: FieldData, index: number, field: FieldDef, col?: number, row?: number, table?: BaseTableAPI): FieldData;
55
51
  setRecord(record: any, index: number): void;
56
52
  sort(field: FieldDef, order: SortOrder, orderFn?: (v1: any, v2: any, order: SortOrder) => -1 | 0 | 1): void;
57
53
  clearSortedIndexMap(): void;
@@ -63,10 +59,8 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
63
59
  release(): void;
64
60
  clearSortedMap(): void;
65
61
  clearCurrentIndexedData(): void;
66
- protected getOriginalRecord(dataIndex: number | number[]): MaybePromiseOrUndefined;
67
- protected getRawRecord(dataIndex: number): MaybePromiseOrUndefined;
62
+ protected getOriginalRecord(index: number | number[]): MaybePromiseOrUndefined;
68
63
  protected getOriginalField(index: number | number[], field: FieldDef | FieldFormat | number, col?: number, row?: number, table?: BaseTableAPI): FieldData;
69
- protected getRawFieldData(index: number, field: FieldDef | FieldFormat | number, col?: number, row?: number, table?: BaseTableAPI): FieldData;
70
64
  protected hasOriginalField(index: number | number[], field: FieldDef): boolean;
71
65
  protected fieldPromiseCallBack(_index: number | number[], _field: FieldDef | FieldFormat | number, _value: MaybePromiseOrUndefined): void;
72
66
  protected recordPromiseCallBack(_index: number | number[], _record: MaybePromiseOrUndefined): void;
@@ -10,7 +10,7 @@ import { getValueByPath } from "../tools/util";
10
10
 
11
11
  import { diffCellIndices } from "../tools/diff-cell";
12
12
 
13
- import { cloneDeep, isValid } from "@visactor/vutils";
13
+ import { isValid } from "@visactor/vutils";
14
14
 
15
15
  function isFieldAssessor(field) {
16
16
  if (obj.isObject(field)) {
@@ -67,8 +67,8 @@ export class DataSource extends EventTarget {
67
67
  constructor(obj, pagination, hierarchyExpandLevel) {
68
68
  var _a, _b;
69
69
  if (super(), this.currentIndexedData = [], this.enableHierarchyState = !1, this.treeDataHierarchyState = new Map,
70
- this.changeValuesMap = [], this._get = (null == obj ? void 0 : obj.get.bind(obj)) || void 0,
71
- this._sourceLength = (null == obj ? void 0 : obj.length) || 0, this._source = null !== (_a = null == obj ? void 0 : obj.source) && void 0 !== _a ? _a : obj,
70
+ this._get = (null == obj ? void 0 : obj.get.bind(obj)) || void 0, this._sourceLength = (null == obj ? void 0 : obj.length) || 0,
71
+ this._source = null !== (_a = null == obj ? void 0 : obj.source) && void 0 !== _a ? _a : obj,
72
72
  this.sortedIndexMap = new Map, this._currentPagerIndexedData = [], this.pagination = pagination || {
73
73
  totalCount: this._sourceLength,
74
74
  perPageCount: this._sourceLength,
@@ -126,9 +126,6 @@ export class DataSource extends EventTarget {
126
126
  get(index) {
127
127
  return this.getOriginalRecord(_getIndex(this.currentPagerIndexedData, index));
128
128
  }
129
- getRaw(index) {
130
- return this.getRawRecord(_getIndex(this.currentPagerIndexedData, index));
131
- }
132
129
  getIndexKey(index) {
133
130
  return _getIndex(this.currentPagerIndexedData, index);
134
131
  }
@@ -138,9 +135,6 @@ export class DataSource extends EventTarget {
138
135
  getField(index, field, col, row, table) {
139
136
  return this.getOriginalField(_getIndex(this.currentPagerIndexedData, index), field, col, row, table);
140
137
  }
141
- getRawField(index, field, col, row, table) {
142
- return this.getRawFieldData(_getIndex(this.currentPagerIndexedData, index), field, col, row, table);
143
- }
144
138
  hasField(index, field) {
145
139
  return this.hasOriginalField(_getIndex(this.currentPagerIndexedData, index), field);
146
140
  }
@@ -187,19 +181,6 @@ export class DataSource extends EventTarget {
187
181
  }
188
182
  return childrenLength;
189
183
  }
190
- changeFieldValue(value, index, field, col, row, table) {
191
- if (null !== field && index >= 0) {
192
- const dataIndex = this.getIndexKey(index);
193
- if (!this.changeValuesMap[dataIndex]) {
194
- const originRecord = this.getOriginalRecord(dataIndex);
195
- this.changeValuesMap[dataIndex] = cloneDeep(originRecord);
196
- }
197
- if ("string" == typeof field || "number" == typeof field) {
198
- const beforeChangedValue = this.changeValuesMap[dataIndex][field], record = this.getOriginalRecord(dataIndex);
199
- "number" == typeof beforeChangedValue && isAllDigits(value) ? record[field] = parseFloat(value) : record[field] = value;
200
- }
201
- }
202
- }
203
184
  setRecord(record, index) {
204
185
  const indexed = this.getIndexKey(index);
205
186
  if (Array.isArray(indexed)) {
@@ -266,15 +247,9 @@ export class DataSource extends EventTarget {
266
247
  clearCurrentIndexedData() {
267
248
  this.currentIndexedData = null, this.currentPagerIndexedData.length = 0;
268
249
  }
269
- getOriginalRecord(dataIndex) {
270
- return getValue(this._get(dataIndex), (val => {
271
- this.recordPromiseCallBack(dataIndex, val);
272
- }));
273
- }
274
- getRawRecord(dataIndex) {
275
- var _a;
276
- return (null === (_a = this.changeValuesMap) || void 0 === _a ? void 0 : _a[dataIndex]) ? this.changeValuesMap[dataIndex] : getValue(this._get(dataIndex), (val => {
277
- this.recordPromiseCallBack(dataIndex, val);
250
+ getOriginalRecord(index) {
251
+ return getValue(this._get(index), (val => {
252
+ this.recordPromiseCallBack(index, val);
278
253
  }));
279
254
  }
280
255
  getOriginalField(index, field, col, row, table) {
@@ -283,12 +258,6 @@ export class DataSource extends EventTarget {
283
258
  this.fieldPromiseCallBack(index, field, val);
284
259
  }));
285
260
  }
286
- getRawFieldData(index, field, col, row, table) {
287
- if (null === field) return;
288
- return getField(this.getRawRecord(index), field, col, row, table, (val => {
289
- this.fieldPromiseCallBack(index, field, val);
290
- }));
291
- }
292
261
  hasOriginalField(index, field) {
293
262
  if (null === field) return !1;
294
263
  if ("function" == typeof field) return !0;
@@ -299,12 +268,8 @@ export class DataSource extends EventTarget {
299
268
  recordPromiseCallBack(_index, _record) {}
300
269
  }
301
270
 
302
- function isAllDigits(str) {
303
- return /^-?\d+(\.\d+)?$/.test(str);
304
- }
305
-
306
- //# sourceMappingURL=DataSource.js.map
307
271
  DataSource.EMPTY = new DataSource({
308
272
  get() {},
309
273
  length: 0
310
- });
274
+ });
275
+ //# sourceMappingURL=DataSource.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["data/DataSource.ts"],"names":[],"mappings":"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","file":"DataSource.js","sourcesContent":["import * as sort from '../tools/sort';\nimport type {\n DataSourceAPI,\n FieldAssessor,\n FieldData,\n FieldDef,\n FieldFormat,\n IPagination,\n MaybePromiseOrCallOrUndefined,\n MaybePromiseOrUndefined,\n SortOrder\n} from '../ts-types';\nimport { HierarchyState } from '../ts-types';\nimport { applyChainSafe, getOrApply, obj, isPromise, emptyFn } from '../tools/helper';\nimport { EventTarget } from '../event/EventTarget';\nimport { getValueByPath } from '../tools/util';\nimport { diffCellIndices } from '../tools/diff-cell';\nimport { cloneDeep, isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { TABLE_EVENT_TYPE } from '../core/TABLE_EVENT_TYPE';\n\n/**\n * 判断字段数据是否为访问器的格式\n * @param field\n * @returns boolean\n */\nfunction isFieldAssessor(field: FieldDef | FieldFormat | number): field is FieldAssessor {\n if (obj.isObject(field)) {\n const a = field as FieldAssessor;\n if (isValid(a.get) && isValid(a.set)) {\n return true;\n }\n }\n return false;\n}\nconst EVENT_TYPE = {\n SOURCE_LENGTH_UPDATE: 'source_length_update',\n CHANGE_ORDER: 'change_order'\n} as const;\ntype PromiseBack = (value: MaybePromiseOrUndefined) => void;\n\n/**\n * 获取到的某个filed的值 处理可能为promise的情况\n * @param value\n * @param promiseCallBack\n * @returns\n */\nfunction getValue(value: MaybePromiseOrCallOrUndefined, promiseCallBack: PromiseBack): MaybePromiseOrUndefined {\n const maybePromiseOrValue = getOrApply(value);\n if (isPromise(maybePromiseOrValue)) {\n const promiseValue = maybePromiseOrValue.then((r: any) => {\n promiseCallBack(r);\n return r;\n });\n\n promiseCallBack(promiseValue);\n return promiseValue;\n }\n return maybePromiseOrValue;\n}\n/**\n * 根据field获取数据源record对应的值 获取到的可能是个异步Promise 需要设置回调处理逻辑\n * @param record\n * @param field\n * @param promiseCallBack\n * @returns\n */\nexport function getField(\n record: MaybePromiseOrUndefined,\n field: FieldDef | FieldFormat | number,\n col: number,\n row: number,\n table: BaseTableAPI,\n promiseCallBack: PromiseBack\n): FieldData {\n if (record === null) {\n return undefined;\n }\n if (isPromise(record)) {\n return record.then((r: any) => getField(r, field, col, row, table, promiseCallBack));\n }\n const fieldGet: any = isFieldAssessor(field) ? field.get : field;\n if (fieldGet in (record as any)) {\n const fieldResult = (record as any)[fieldGet];\n\n return getValue(fieldResult, promiseCallBack);\n }\n if (typeof fieldGet === 'function') {\n const fieldResult = fieldGet(record, col, row, table);\n return getValue(fieldResult, promiseCallBack);\n }\n if (Array.isArray(fieldGet)) {\n const fieldResult = getValueByPath(record, [...fieldGet]);\n return getValue(fieldResult, promiseCallBack);\n }\n const fieldArray = `${fieldGet}`.split('.');\n if (fieldArray.length <= 1) {\n const fieldResult = (record as any)[fieldGet];\n return getValue(fieldResult, promiseCallBack);\n }\n const fieldResult = applyChainSafe(\n record,\n (val, name) => getField(val, name, col, row, table, emptyFn as any),\n ...fieldArray\n );\n return getValue(fieldResult, promiseCallBack);\n}\n\nfunction _getIndex(sortedIndexMap: null | (number | number[])[], index: number): number | number[] {\n if (!sortedIndexMap) {\n return index;\n }\n const mapIndex = sortedIndexMap[index];\n return isValid(mapIndex) ? mapIndex : index;\n}\n\nexport interface DataSourceParam {\n get: (index: number) => any;\n length: number;\n source?: any;\n}\nexport interface ISortedMapItem {\n asc?: (number | number[])[];\n desc?: (number | number[])[];\n normal?: (number | number[])[];\n}\n\nexport class DataSource extends EventTarget implements DataSourceAPI {\n private _get: (index: number | number[]) => any;\n /** 数据条目数 如果是树形结构的数据 则是第一层父节点的数量 */\n private _sourceLength: number;\n\n private readonly _source: any;\n /**\n * 缓存按字段进行排序的结果\n */\n protected sortedIndexMap: Map<FieldDef, ISortedMapItem>;\n /**\n * 记录最近一次排序规则 当展开树形结构的节点时需要用到\n */\n private lastOrder: SortOrder;\n private lastOrderFn: (a: any, b: any, order: string) => number;\n private lastOrderField: FieldDef;\n protected currentIndexedData: (number | number[])[] | null = [];\n protected pagination: IPagination;\n protected _currentPagerIndexedData: (number | number[])[];\n // 当前是否为层级的树形结构 排序时判断该值确实是否继续进行子节点排序\n enableHierarchyState = false;\n static get EVENT_TYPE(): typeof EVENT_TYPE {\n return EVENT_TYPE;\n }\n protected treeDataHierarchyState: Map<number | string, HierarchyState> = new Map();\n changeValuesMap: Record<number, boolean>[] = [];\n constructor(obj?: DataSourceParam | DataSource, pagination?: IPagination, hierarchyExpandLevel?: number) {\n super();\n\n this._get = obj?.get.bind(obj) || (undefined as any);\n this._sourceLength = obj?.length || 0;\n this._source = obj?.source ?? obj;\n this.sortedIndexMap = new Map<string, ISortedMapItem>();\n\n this._currentPagerIndexedData = [];\n this.pagination = pagination || {\n totalCount: this._sourceLength,\n perPageCount: this._sourceLength,\n currentPage: 0\n };\n if (hierarchyExpandLevel >= 1) {\n this.enableHierarchyState = true;\n }\n // 初始化currentIndexedData 正常未排序。设置其状态\n this.currentIndexedData = Array.from({ length: this._sourceLength }, (_, i) => i);\n if (this.enableHierarchyState) {\n for (let i = 0; i < this._sourceLength; i++) {\n //expandLevel为有效值即需要按tree分析展示数据\n const nodeData = this.getOriginalRecord(i);\n (nodeData as any).children && this.treeDataHierarchyState.set(i, HierarchyState.collapse);\n }\n }\n if (hierarchyExpandLevel > 1) {\n let nodeLength = this._sourceLength;\n for (let i = 0; i < nodeLength; i++) {\n const indexKey = this.currentIndexedData[i];\n const nodeData = this.getOriginalRecord(indexKey);\n if ((nodeData as any).children?.length > 0) {\n this.treeDataHierarchyState.set(\n Array.isArray(indexKey) ? indexKey.join(',') : indexKey,\n HierarchyState.expand\n );\n const childrenLength = this.initChildrenNodeHierarchy(indexKey, hierarchyExpandLevel, 2, nodeData);\n i += childrenLength;\n nodeLength += childrenLength;\n }\n }\n }\n this.updatePagerData();\n }\n /**\n * 初始化子节点的层次信息\n * @param indexKey 父节点的indexKey 即currentLevel-1的节点\n * @param hierarchyExpandLevel 需要展开层级数\n * @param currentLevel 当前要展开的是第几层\n * @param nodeData 父节点数据 即currentLevel-1的节点\n * @returns\n */\n initChildrenNodeHierarchy(\n indexKey: number | number[],\n // subNodeIndex:number,\n hierarchyExpandLevel: number,\n currentLevel: number,\n nodeData: any\n ): number {\n if (currentLevel > hierarchyExpandLevel) {\n return 0;\n }\n let childTotalLength = 0;\n const nodeLength = nodeData.children?.length ?? 0;\n for (let j = 0; j < nodeLength; j++) {\n childTotalLength += 1;\n const childNodeData = nodeData.children[j];\n const childIndexKey = Array.isArray(indexKey) ? indexKey.concat(j) : [indexKey, j];\n this.currentIndexedData.splice(\n this.currentIndexedData.indexOf(indexKey) + childTotalLength,\n // childTotalLength,\n 0,\n childIndexKey\n );\n if (childNodeData.children?.length > 0) {\n if (currentLevel < hierarchyExpandLevel) {\n this.treeDataHierarchyState.set(\n Array.isArray(childIndexKey) ? childIndexKey.join(',') : childIndexKey,\n HierarchyState.expand\n );\n } else {\n this.treeDataHierarchyState.set(\n Array.isArray(childIndexKey) ? childIndexKey.join(',') : childIndexKey,\n HierarchyState.collapse\n );\n }\n }\n\n childTotalLength += this.initChildrenNodeHierarchy(\n childIndexKey,\n hierarchyExpandLevel,\n currentLevel + 1,\n childNodeData\n );\n }\n return childTotalLength;\n }\n updatePagination(pagination?: IPagination): void {\n this.pagination = pagination || {\n totalCount: this._sourceLength,\n perPageCount: this._sourceLength,\n currentPage: 0\n };\n this.updatePagerData();\n }\n protected updatePagerData(): void {\n const { currentIndexedData } = this;\n const { perPageCount, currentPage } = this.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n this._currentPagerIndexedData.length = 0;\n if (currentIndexedData && currentIndexedData.length > 0) {\n // this._currentPagerIndexedData = currentIndexedData.slice(startIndex, endIndex);\n let firstLevelIndex = -1;\n for (let i = 0; i < currentIndexedData.length; i++) {\n //计算第一层父级节点数量\n if (\n (Array.isArray(currentIndexedData[i]) && (currentIndexedData[i] as Array<number>).length === 1) ||\n !Array.isArray(currentIndexedData[i])\n ) {\n firstLevelIndex++;\n }\n if (firstLevelIndex >= startIndex && firstLevelIndex < endIndex) {\n this._currentPagerIndexedData.push(currentIndexedData[i]);\n } else if (firstLevelIndex >= endIndex) {\n break;\n }\n }\n } else if (this._sourceLength > 0) {\n throw new Error(`currentIndexedData should has values!`);\n }\n }\n\n get source(): any {\n return this._source;\n }\n get(index: number): MaybePromiseOrUndefined {\n return this.getOriginalRecord(_getIndex(this.currentPagerIndexedData, index));\n }\n getRaw(index: number): MaybePromiseOrUndefined {\n return this.getRawRecord(_getIndex(this.currentPagerIndexedData, index) as number);\n }\n getIndexKey(index: number): number | number[] {\n return _getIndex(this.currentPagerIndexedData, index);\n }\n getTableIndex(colOrRow: number): number {\n return this.currentPagerIndexedData.findIndex(value => value === colOrRow);\n }\n /** 获取数据源中第index位置的field字段数据。传入col row是因为后面的format函数参数使用*/\n getField(\n index: number,\n field: FieldDef | FieldFormat | number,\n col: number,\n row: number,\n table: BaseTableAPI\n ): FieldData {\n return this.getOriginalField(_getIndex(this.currentPagerIndexedData, index), field, col, row, table);\n }\n\n getRawField(\n index: number,\n field: FieldDef | FieldFormat | number,\n col: number,\n row: number,\n table: BaseTableAPI\n ): FieldData {\n return this.getRawFieldData(_getIndex(this.currentPagerIndexedData, index) as number, field, col, row, table);\n }\n\n hasField(index: number, field: FieldDef): boolean {\n return this.hasOriginalField(_getIndex(this.currentPagerIndexedData, index), field);\n }\n /**\n * 获取第index条数据的展示收起状态\n * @param index\n * @returns\n */\n getHierarchyState(index: number): HierarchyState {\n const indexed = this.getIndexKey(index);\n return this.treeDataHierarchyState.get(Array.isArray(indexed) ? indexed.join(',') : indexed) ?? null;\n }\n /**\n * 展开或者收起数据index\n * @param index\n */\n toggleHierarchyState(index: number) {\n const oldIndexedData = this.currentIndexedData.slice(0);\n const indexed = this.getIndexKey(index);\n const state = this.getHierarchyState(index);\n\n const data = this.getOriginalRecord(indexed);\n\n this.clearSortedIndexMap();\n if (state === HierarchyState.collapse) {\n // 将节点状态置为expand\n this.treeDataHierarchyState.set(Array.isArray(indexed) ? indexed.join(',') : indexed, HierarchyState.expand);\n this.pushChildrenNode(indexed, HierarchyState.expand, data);\n } else if (state === HierarchyState.expand) {\n // 记录状态变化影响的子节点行数\n let childrenLength = 0;\n /**\n * 当某个节点由展开变为折叠,需要计算出影响的节点数量 使用childrenLength来标记。同样需递归\n * @param indexKey\n * @param hierarchyState\n * @param nodeData\n * @returns\n */\n const computeChildrenNodeLength = (\n indexKey: number | number[],\n hierarchyState: HierarchyState,\n nodeData: any\n ) => {\n if (!hierarchyState || hierarchyState === HierarchyState.collapse || hierarchyState === HierarchyState.none) {\n return;\n }\n if (nodeData.children) {\n for (let i = 0; i < nodeData.children.length; i++) {\n childrenLength += 1;\n const childIndex = Array.isArray(indexKey) ? indexKey.concat([i]) : [indexKey, i];\n\n computeChildrenNodeLength(\n childIndex,\n this.treeDataHierarchyState.get(childIndex.join(',')),\n nodeData.children[i]\n );\n }\n }\n };\n computeChildrenNodeLength(indexed, state, data);\n\n this.currentIndexedData.splice(this.currentIndexedData.indexOf(indexed) + 1, childrenLength);\n this.treeDataHierarchyState.set(Array.isArray(indexed) ? indexed.join(',') : indexed, HierarchyState.collapse);\n }\n // 变更了pagerConfig所以需要更新分页数据 TODO待定 因为只关注根节点的数量的话 可能不会影响到\n this.updatePagerData();\n\n return diffCellIndices(oldIndexedData, this.currentIndexedData);\n }\n /**\n * 某个节点状态由折叠变为展开,往this.currentIndexedData中插入展开后的新增节点,注意需要递归,因为展开节点下面的子节点也能是展开状态\n * @param recordRowIndex 要计算节点的行号(从body部分开始计算)\n * @param indexKey 需要判断节点的index\n * @param hierarchyState 当前节点状态\n * @param nodeData 当前节点数据 取children时用\n * @returns\n */\n pushChildrenNode(indexKey: number | number[], hierarchyState: HierarchyState, nodeData: any): number {\n if (!hierarchyState || hierarchyState === HierarchyState.collapse || hierarchyState === HierarchyState.none) {\n return 0;\n }\n let childrenLength = 0;\n if (nodeData.children) {\n const subNodeSortedIndexArray: Array<number> = Array.from({ length: nodeData.children.length }, (_, i) => i);\n this.lastOrder &&\n this.lastOrder !== 'normal' &&\n this.lastOrderField &&\n sort.sort(\n index =>\n isValid(subNodeSortedIndexArray[index])\n ? subNodeSortedIndexArray[index]\n : (subNodeSortedIndexArray[index] = index),\n (index, rel) => {\n subNodeSortedIndexArray[index] = rel;\n },\n nodeData.children.length,\n this.lastOrderFn,\n this.lastOrder,\n index =>\n this.getOriginalField(\n Array.isArray(indexKey) ? indexKey.concat([index]) : [indexKey, index],\n this.lastOrderField\n )\n );\n for (let i = 0; i < subNodeSortedIndexArray.length; i++) {\n childrenLength += 1;\n const childIndex = Array.isArray(indexKey)\n ? indexKey.concat([subNodeSortedIndexArray[i]])\n : [indexKey, subNodeSortedIndexArray[i]];\n this.currentIndexedData.splice(\n this.currentIndexedData.indexOf(indexKey) + childrenLength,\n // this.pagination.currentPage * this.pagination.perPageCount +\n // recordRowIndex +\n // childrenLength,\n 0,\n childIndex\n );\n const preChildState = this.treeDataHierarchyState.get(childIndex.join(','));\n const childData = this.getOriginalRecord(childIndex);\n if (!preChildState && (childData as any).children) {\n this.treeDataHierarchyState.set(childIndex.join(','), HierarchyState.collapse);\n }\n childrenLength += this.pushChildrenNode(\n childIndex,\n this.treeDataHierarchyState.get(childIndex.join(',')),\n nodeData.children[subNodeSortedIndexArray[i]]\n );\n }\n }\n return childrenLength;\n }\n changeFieldValue(\n value: FieldData,\n index: number,\n field: FieldDef,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n if (field === null) {\n return undefined;\n }\n if (index >= 0) {\n const dataIndex = this.getIndexKey(index) as number;\n\n if (!this.changeValuesMap[dataIndex]) {\n const originRecord = this.getOriginalRecord(dataIndex);\n this.changeValuesMap[dataIndex] = cloneDeep(originRecord);\n }\n if (typeof field === 'string' || typeof field === 'number') {\n const beforeChangedValue = this.changeValuesMap[dataIndex][field]; // this.getOriginalField(index, field, col, row, table);\n const record = this.getOriginalRecord(dataIndex);\n if (typeof beforeChangedValue === 'number' && isAllDigits(value)) {\n record[field] = parseFloat(value);\n } else {\n record[field] = value;\n }\n }\n }\n // return getField(record, field);\n }\n /**\n * 将数据record 替换到index位置处\n * @param record\n * @param index\n */\n setRecord(record: any, index: number) {\n const indexed = this.getIndexKey(index);\n if (!Array.isArray(indexed)) {\n this.source.splice(indexed, 1, record);\n } else {\n const c_node_index = (indexed as Array<any>)[indexed.length - 1];\n const p_node = this.getOriginalRecord(indexed.slice(0, indexed.length - 1));\n (p_node as any).children.splice(c_node_index, 1, record);\n }\n }\n sort(\n field: FieldDef,\n order: SortOrder,\n orderFn: (v1: any, v2: any, order: SortOrder) => -1 | 0 | 1 = order !== 'desc'\n ? (v1: any, v2: any): -1 | 0 | 1 => (v1 === v2 ? 0 : v1 > v2 ? 1 : -1)\n : (v1: any, v2: any): -1 | 0 | 1 => (v1 === v2 ? 0 : v1 < v2 ? 1 : -1)\n ): void {\n this.lastOrderField = field;\n this.lastOrder = order;\n this.lastOrderFn = orderFn;\n let filedMap = this.sortedIndexMap.get(field);\n let orderedData;\n\n if (filedMap) {\n orderedData = filedMap[order];\n if (orderedData && orderedData.length > 0) {\n this.currentIndexedData = orderedData;\n this.updatePagerData();\n this.fireListeners(EVENT_TYPE.CHANGE_ORDER, null);\n return;\n }\n }\n const sortedIndexArray = [] as number[];\n if (order === 'normal') {\n for (let i = 0; i < this._sourceLength; i++) {\n sortedIndexArray[i] = i;\n }\n } else {\n sort.sort(\n index => (isValid(sortedIndexArray[index]) ? sortedIndexArray[index] : (sortedIndexArray[index] = index)),\n (index, rel) => {\n sortedIndexArray[index] = rel;\n },\n this._sourceLength,\n orderFn,\n order,\n index => this.getOriginalField(index, field)\n );\n }\n this.currentIndexedData = sortedIndexArray;\n if (this.enableHierarchyState) {\n let nodeLength = sortedIndexArray.length;\n const t0 = window.performance.now();\n for (let i = 0; i < nodeLength; i++) {\n const subNodeLength = this.pushChildrenNode(\n sortedIndexArray[i],\n this.treeDataHierarchyState.get(sortedIndexArray[i]),\n this.getOriginalRecord(sortedIndexArray[i]) // ?sortedIndexArray 在这个过程中不是变化了吗 通过i取id还是对的吗? 对哦!因为i和nodeLength都+subNodeLength 来动态调整过了!\n );\n nodeLength += subNodeLength;\n i += subNodeLength;\n }\n }\n if (!filedMap) {\n filedMap = { asc: [], desc: [], normal: [] };\n this.sortedIndexMap.set(field, filedMap);\n }\n filedMap[order] = sortedIndexArray;\n this.updatePagerData();\n this.fireListeners(EVENT_TYPE.CHANGE_ORDER, null);\n }\n /**\n * 当节点折叠或者展开时 将排序缓存清空(非当前排序规则的缓存)\n */\n clearSortedIndexMap() {\n if (this.lastOrderField && this.lastOrder) {\n this.sortedIndexMap.forEach((sortMap, key) => {\n if (key !== this.lastOrderField) {\n this.sortedIndexMap.delete(key);\n } else if (this.lastOrder === 'asc') {\n sortMap.desc = [];\n sortMap.normal = [];\n } else if (this.lastOrder === 'desc') {\n sortMap.asc = [];\n sortMap.normal = [];\n } else {\n sortMap.desc = [];\n sortMap.asc = [];\n }\n });\n }\n }\n get sourceLenght(): number {\n return this._sourceLength;\n }\n set sourceLength(sourceLen: number) {\n if (this._sourceLength === sourceLen) {\n return;\n }\n this._sourceLength = sourceLen;\n this.fireListeners(EVENT_TYPE.SOURCE_LENGTH_UPDATE, this._sourceLength);\n }\n get length(): number {\n return this.currentPagerIndexedData.length;\n }\n get dataSource(): DataSource {\n return this;\n }\n get currentPagerIndexedData(): (number | number[])[] {\n if (this._currentPagerIndexedData.length > 0) {\n return this._currentPagerIndexedData;\n }\n return []; //this.currentIndexedData || [];\n }\n release(): void {\n super.release?.();\n }\n clearSortedMap() {\n this.currentIndexedData && (this.currentIndexedData.length = 0);\n this.currentIndexedData = null;\n this.sortedIndexMap.forEach(item => {\n item.asc && (item.asc.length = 0);\n item.desc && (item.desc.length = 0);\n });\n this.sortedIndexMap.clear();\n }\n clearCurrentIndexedData(): void {\n this.currentIndexedData = null;\n this.currentPagerIndexedData.length = 0;\n }\n protected getOriginalRecord(dataIndex: number | number[]): MaybePromiseOrUndefined {\n return getValue(this._get(dataIndex), (val: MaybePromiseOrUndefined) => {\n this.recordPromiseCallBack(dataIndex, val);\n });\n }\n protected getRawRecord(dataIndex: number): MaybePromiseOrUndefined {\n if (this.changeValuesMap?.[dataIndex as number]) {\n return this.changeValuesMap[dataIndex as number];\n }\n return getValue(this._get(dataIndex), (val: MaybePromiseOrUndefined) => {\n this.recordPromiseCallBack(dataIndex, val);\n });\n }\n protected getOriginalField(\n index: number | number[],\n field: FieldDef | FieldFormat | number,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n if (field === null) {\n return undefined;\n }\n const record = this.getOriginalRecord(index);\n // return getField(record, field);\n return getField(record, field, col, row, table, (val: any) => {\n this.fieldPromiseCallBack(index, field, val);\n });\n }\n protected getRawFieldData(\n index: number,\n field: FieldDef | FieldFormat | number,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n if (field === null) {\n return undefined;\n }\n const record = this.getRawRecord(index);\n // return getField(record, field);\n return getField(record, field, col, row, table, (val: any) => {\n this.fieldPromiseCallBack(index, field, val);\n });\n }\n protected hasOriginalField(index: number | number[], field: FieldDef): boolean {\n if (field === null) {\n return false;\n }\n if (typeof field === 'function') {\n return true;\n }\n const record = this.getOriginalRecord(index);\n return Boolean(record && (field as any) in (record as any));\n }\n\n protected fieldPromiseCallBack(\n _index: number | number[],\n _field: FieldDef | FieldFormat | number,\n _value: MaybePromiseOrUndefined\n ): void {\n //\n }\n protected recordPromiseCallBack(_index: number | number[], _record: MaybePromiseOrUndefined): void {\n //\n }\n /** 静态变量 代表数据为空 */\n static EMPTY = new DataSource({\n get() {\n /* noop */\n },\n length: 0\n });\n}\n\nfunction isAllDigits(str: string) {\n const pattern = /^-?\\d+(\\.\\d+)?$/;\n return pattern.test(str);\n}\n"]}
1
+ {"version":3,"sources":["data/DataSource.ts"],"names":[],"mappings":"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","file":"DataSource.js","sourcesContent":["import * as sort from '../tools/sort';\nimport type {\n DataSourceAPI,\n FieldAssessor,\n FieldData,\n FieldDef,\n FieldFormat,\n IPagination,\n MaybePromiseOrCallOrUndefined,\n MaybePromiseOrUndefined,\n SortOrder\n} from '../ts-types';\nimport { HierarchyState } from '../ts-types';\nimport { applyChainSafe, getOrApply, obj, isPromise, emptyFn } from '../tools/helper';\nimport { EventTarget } from '../event/EventTarget';\nimport { getValueByPath } from '../tools/util';\nimport { diffCellIndices } from '../tools/diff-cell';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\n\n/**\n * 判断字段数据是否为访问器的格式\n * @param field\n * @returns boolean\n */\nfunction isFieldAssessor(field: FieldDef | FieldFormat | number): field is FieldAssessor {\n if (obj.isObject(field)) {\n const a = field as FieldAssessor;\n if (isValid(a.get) && isValid(a.set)) {\n return true;\n }\n }\n return false;\n}\nconst EVENT_TYPE = {\n SOURCE_LENGTH_UPDATE: 'source_length_update',\n CHANGE_ORDER: 'change_order'\n} as const;\ntype PromiseBack = (value: MaybePromiseOrUndefined) => void;\n\n/**\n * 获取到的某个filed的值 处理可能为promise的情况\n * @param value\n * @param promiseCallBack\n * @returns\n */\nfunction getValue(value: MaybePromiseOrCallOrUndefined, promiseCallBack: PromiseBack): MaybePromiseOrUndefined {\n const maybePromiseOrValue = getOrApply(value);\n if (isPromise(maybePromiseOrValue)) {\n const promiseValue = maybePromiseOrValue.then((r: any) => {\n promiseCallBack(r);\n return r;\n });\n\n promiseCallBack(promiseValue);\n return promiseValue;\n }\n return maybePromiseOrValue;\n}\n/**\n * 根据field获取数据源record对应的值 获取到的可能是个异步Promise 需要设置回调处理逻辑\n * @param record\n * @param field\n * @param promiseCallBack\n * @returns\n */\nexport function getField(\n record: MaybePromiseOrUndefined,\n field: FieldDef | FieldFormat | number,\n col: number,\n row: number,\n table: BaseTableAPI,\n promiseCallBack: PromiseBack\n): FieldData {\n if (record === null) {\n return undefined;\n }\n if (isPromise(record)) {\n return record.then((r: any) => getField(r, field, col, row, table, promiseCallBack));\n }\n const fieldGet: any = isFieldAssessor(field) ? field.get : field;\n if (fieldGet in (record as any)) {\n const fieldResult = (record as any)[fieldGet];\n\n return getValue(fieldResult, promiseCallBack);\n }\n if (typeof fieldGet === 'function') {\n const fieldResult = fieldGet(record, col, row, table);\n return getValue(fieldResult, promiseCallBack);\n }\n if (Array.isArray(fieldGet)) {\n const fieldResult = getValueByPath(record, [...fieldGet]);\n return getValue(fieldResult, promiseCallBack);\n }\n const fieldArray = `${fieldGet}`.split('.');\n if (fieldArray.length <= 1) {\n const fieldResult = (record as any)[fieldGet];\n return getValue(fieldResult, promiseCallBack);\n }\n const fieldResult = applyChainSafe(\n record,\n (val, name) => getField(val, name, col, row, table, emptyFn as any),\n ...fieldArray\n );\n return getValue(fieldResult, promiseCallBack);\n}\n\nfunction _getIndex(sortedIndexMap: null | (number | number[])[], index: number): number | number[] {\n if (!sortedIndexMap) {\n return index;\n }\n const mapIndex = sortedIndexMap[index];\n return isValid(mapIndex) ? mapIndex : index;\n}\n\nexport interface DataSourceParam {\n get: (index: number) => any;\n length: number;\n source?: any;\n}\nexport interface ISortedMapItem {\n asc?: (number | number[])[];\n desc?: (number | number[])[];\n normal?: (number | number[])[];\n}\n\nexport class DataSource extends EventTarget implements DataSourceAPI {\n private _get: (index: number | number[]) => any;\n /** 数据条目数 如果是树形结构的数据 则是第一层父节点的数量 */\n private _sourceLength: number;\n\n private readonly _source: any;\n /**\n * 缓存按字段进行排序的结果\n */\n protected sortedIndexMap: Map<FieldDef, ISortedMapItem>;\n /**\n * 记录最近一次排序规则 当展开树形结构的节点时需要用到\n */\n private lastOrder: SortOrder;\n private lastOrderFn: (a: any, b: any, order: string) => number;\n private lastOrderField: FieldDef;\n protected currentIndexedData: (number | number[])[] | null = [];\n protected pagination: IPagination;\n protected _currentPagerIndexedData: (number | number[])[];\n // 当前是否为层级的树形结构 排序时判断该值确实是否继续进行子节点排序\n enableHierarchyState = false;\n static get EVENT_TYPE(): typeof EVENT_TYPE {\n return EVENT_TYPE;\n }\n protected treeDataHierarchyState: Map<number | string, HierarchyState> = new Map();\n\n constructor(obj?: DataSourceParam | DataSource, pagination?: IPagination, hierarchyExpandLevel?: number) {\n super();\n\n this._get = obj?.get.bind(obj) || (undefined as any);\n this._sourceLength = obj?.length || 0;\n this._source = obj?.source ?? obj;\n this.sortedIndexMap = new Map<string, ISortedMapItem>();\n\n this._currentPagerIndexedData = [];\n this.pagination = pagination || {\n totalCount: this._sourceLength,\n perPageCount: this._sourceLength,\n currentPage: 0\n };\n if (hierarchyExpandLevel >= 1) {\n this.enableHierarchyState = true;\n }\n // 初始化currentIndexedData 正常未排序。设置其状态\n this.currentIndexedData = Array.from({ length: this._sourceLength }, (_, i) => i);\n if (this.enableHierarchyState) {\n for (let i = 0; i < this._sourceLength; i++) {\n //expandLevel为有效值即需要按tree分析展示数据\n const nodeData = this.getOriginalRecord(i);\n (nodeData as any).children && this.treeDataHierarchyState.set(i, HierarchyState.collapse);\n }\n }\n if (hierarchyExpandLevel > 1) {\n let nodeLength = this._sourceLength;\n for (let i = 0; i < nodeLength; i++) {\n const indexKey = this.currentIndexedData[i];\n const nodeData = this.getOriginalRecord(indexKey);\n if ((nodeData as any).children?.length > 0) {\n this.treeDataHierarchyState.set(\n Array.isArray(indexKey) ? indexKey.join(',') : indexKey,\n HierarchyState.expand\n );\n const childrenLength = this.initChildrenNodeHierarchy(indexKey, hierarchyExpandLevel, 2, nodeData);\n i += childrenLength;\n nodeLength += childrenLength;\n }\n }\n }\n this.updatePagerData();\n }\n /**\n * 初始化子节点的层次信息\n * @param indexKey 父节点的indexKey 即currentLevel-1的节点\n * @param hierarchyExpandLevel 需要展开层级数\n * @param currentLevel 当前要展开的是第几层\n * @param nodeData 父节点数据 即currentLevel-1的节点\n * @returns\n */\n initChildrenNodeHierarchy(\n indexKey: number | number[],\n // subNodeIndex:number,\n hierarchyExpandLevel: number,\n currentLevel: number,\n nodeData: any\n ): number {\n if (currentLevel > hierarchyExpandLevel) {\n return 0;\n }\n let childTotalLength = 0;\n const nodeLength = nodeData.children?.length ?? 0;\n for (let j = 0; j < nodeLength; j++) {\n childTotalLength += 1;\n const childNodeData = nodeData.children[j];\n const childIndexKey = Array.isArray(indexKey) ? indexKey.concat(j) : [indexKey, j];\n this.currentIndexedData.splice(\n this.currentIndexedData.indexOf(indexKey) + childTotalLength,\n // childTotalLength,\n 0,\n childIndexKey\n );\n if (childNodeData.children?.length > 0) {\n if (currentLevel < hierarchyExpandLevel) {\n this.treeDataHierarchyState.set(\n Array.isArray(childIndexKey) ? childIndexKey.join(',') : childIndexKey,\n HierarchyState.expand\n );\n } else {\n this.treeDataHierarchyState.set(\n Array.isArray(childIndexKey) ? childIndexKey.join(',') : childIndexKey,\n HierarchyState.collapse\n );\n }\n }\n\n childTotalLength += this.initChildrenNodeHierarchy(\n childIndexKey,\n hierarchyExpandLevel,\n currentLevel + 1,\n childNodeData\n );\n }\n return childTotalLength;\n }\n updatePagination(pagination?: IPagination): void {\n this.pagination = pagination || {\n totalCount: this._sourceLength,\n perPageCount: this._sourceLength,\n currentPage: 0\n };\n this.updatePagerData();\n }\n protected updatePagerData(): void {\n const { currentIndexedData } = this;\n const { perPageCount, currentPage } = this.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n this._currentPagerIndexedData.length = 0;\n if (currentIndexedData && currentIndexedData.length > 0) {\n // this._currentPagerIndexedData = currentIndexedData.slice(startIndex, endIndex);\n let firstLevelIndex = -1;\n for (let i = 0; i < currentIndexedData.length; i++) {\n //计算第一层父级节点数量\n if (\n (Array.isArray(currentIndexedData[i]) && (currentIndexedData[i] as Array<number>).length === 1) ||\n !Array.isArray(currentIndexedData[i])\n ) {\n firstLevelIndex++;\n }\n if (firstLevelIndex >= startIndex && firstLevelIndex < endIndex) {\n this._currentPagerIndexedData.push(currentIndexedData[i]);\n } else if (firstLevelIndex >= endIndex) {\n break;\n }\n }\n } else if (this._sourceLength > 0) {\n throw new Error(`currentIndexedData should has values!`);\n }\n }\n\n get source(): any {\n return this._source;\n }\n get(index: number): MaybePromiseOrUndefined {\n return this.getOriginalRecord(_getIndex(this.currentPagerIndexedData, index));\n }\n getIndexKey(index: number): number | number[] {\n return _getIndex(this.currentPagerIndexedData, index);\n }\n getTableIndex(colOrRow: number): number {\n return this.currentPagerIndexedData.findIndex(value => value === colOrRow);\n }\n getField(\n index: number,\n field: FieldDef | FieldFormat | number,\n col: number,\n row: number,\n table: BaseTableAPI\n ): FieldData {\n return this.getOriginalField(_getIndex(this.currentPagerIndexedData, index), field, col, row, table);\n }\n\n hasField(index: number, field: FieldDef): boolean {\n return this.hasOriginalField(_getIndex(this.currentPagerIndexedData, index), field);\n }\n /**\n * 获取第index条数据的展示收起状态\n * @param index\n * @returns\n */\n getHierarchyState(index: number): HierarchyState {\n const indexed = this.getIndexKey(index);\n return this.treeDataHierarchyState.get(Array.isArray(indexed) ? indexed.join(',') : indexed) ?? null;\n }\n /**\n * 展开或者收起数据index\n * @param index\n */\n toggleHierarchyState(index: number) {\n const oldIndexedData = this.currentIndexedData.slice(0);\n const indexed = this.getIndexKey(index);\n const state = this.getHierarchyState(index);\n\n const data = this.getOriginalRecord(indexed);\n\n this.clearSortedIndexMap();\n if (state === HierarchyState.collapse) {\n // 将节点状态置为expand\n this.treeDataHierarchyState.set(Array.isArray(indexed) ? indexed.join(',') : indexed, HierarchyState.expand);\n this.pushChildrenNode(indexed, HierarchyState.expand, data);\n } else if (state === HierarchyState.expand) {\n // 记录状态变化影响的子节点行数\n let childrenLength = 0;\n /**\n * 当某个节点由展开变为折叠,需要计算出影响的节点数量 使用childrenLength来标记。同样需递归\n * @param indexKey\n * @param hierarchyState\n * @param nodeData\n * @returns\n */\n const computeChildrenNodeLength = (\n indexKey: number | number[],\n hierarchyState: HierarchyState,\n nodeData: any\n ) => {\n if (!hierarchyState || hierarchyState === HierarchyState.collapse || hierarchyState === HierarchyState.none) {\n return;\n }\n if (nodeData.children) {\n for (let i = 0; i < nodeData.children.length; i++) {\n childrenLength += 1;\n const childIndex = Array.isArray(indexKey) ? indexKey.concat([i]) : [indexKey, i];\n\n computeChildrenNodeLength(\n childIndex,\n this.treeDataHierarchyState.get(childIndex.join(',')),\n nodeData.children[i]\n );\n }\n }\n };\n computeChildrenNodeLength(indexed, state, data);\n\n this.currentIndexedData.splice(this.currentIndexedData.indexOf(indexed) + 1, childrenLength);\n this.treeDataHierarchyState.set(Array.isArray(indexed) ? indexed.join(',') : indexed, HierarchyState.collapse);\n }\n // 变更了pagerConfig所以需要更新分页数据 TODO待定 因为只关注根节点的数量的话 可能不会影响到\n this.updatePagerData();\n\n return diffCellIndices(oldIndexedData, this.currentIndexedData);\n }\n /**\n * 某个节点状态由折叠变为展开,往this.currentIndexedData中插入展开后的新增节点,注意需要递归,因为展开节点下面的子节点也能是展开状态\n * @param recordRowIndex 要计算节点的行号(从body部分开始计算)\n * @param indexKey 需要判断节点的index\n * @param hierarchyState 当前节点状态\n * @param nodeData 当前节点数据 取children时用\n * @returns\n */\n pushChildrenNode(indexKey: number | number[], hierarchyState: HierarchyState, nodeData: any): number {\n if (!hierarchyState || hierarchyState === HierarchyState.collapse || hierarchyState === HierarchyState.none) {\n return 0;\n }\n let childrenLength = 0;\n if (nodeData.children) {\n const subNodeSortedIndexArray: Array<number> = Array.from({ length: nodeData.children.length }, (_, i) => i);\n this.lastOrder &&\n this.lastOrder !== 'normal' &&\n this.lastOrderField &&\n sort.sort(\n index =>\n isValid(subNodeSortedIndexArray[index])\n ? subNodeSortedIndexArray[index]\n : (subNodeSortedIndexArray[index] = index),\n (index, rel) => {\n subNodeSortedIndexArray[index] = rel;\n },\n nodeData.children.length,\n this.lastOrderFn,\n this.lastOrder,\n index =>\n this.getOriginalField(\n Array.isArray(indexKey) ? indexKey.concat([index]) : [indexKey, index],\n this.lastOrderField\n )\n );\n for (let i = 0; i < subNodeSortedIndexArray.length; i++) {\n childrenLength += 1;\n const childIndex = Array.isArray(indexKey)\n ? indexKey.concat([subNodeSortedIndexArray[i]])\n : [indexKey, subNodeSortedIndexArray[i]];\n this.currentIndexedData.splice(\n this.currentIndexedData.indexOf(indexKey) + childrenLength,\n // this.pagination.currentPage * this.pagination.perPageCount +\n // recordRowIndex +\n // childrenLength,\n 0,\n childIndex\n );\n const preChildState = this.treeDataHierarchyState.get(childIndex.join(','));\n const childData = this.getOriginalRecord(childIndex);\n if (!preChildState && (childData as any).children) {\n this.treeDataHierarchyState.set(childIndex.join(','), HierarchyState.collapse);\n }\n childrenLength += this.pushChildrenNode(\n childIndex,\n this.treeDataHierarchyState.get(childIndex.join(',')),\n nodeData.children[subNodeSortedIndexArray[i]]\n );\n }\n }\n return childrenLength;\n }\n\n /**\n * 将数据record 替换到index位置处\n * @param record\n * @param index\n */\n setRecord(record: any, index: number) {\n const indexed = this.getIndexKey(index);\n if (!Array.isArray(indexed)) {\n this.source.splice(indexed, 1, record);\n } else {\n const c_node_index = (indexed as Array<any>)[indexed.length - 1];\n const p_node = this.getOriginalRecord(indexed.slice(0, indexed.length - 1));\n (p_node as any).children.splice(c_node_index, 1, record);\n }\n }\n sort(\n field: FieldDef,\n order: SortOrder,\n orderFn: (v1: any, v2: any, order: SortOrder) => -1 | 0 | 1 = order !== 'desc'\n ? (v1: any, v2: any): -1 | 0 | 1 => (v1 === v2 ? 0 : v1 > v2 ? 1 : -1)\n : (v1: any, v2: any): -1 | 0 | 1 => (v1 === v2 ? 0 : v1 < v2 ? 1 : -1)\n ): void {\n this.lastOrderField = field;\n this.lastOrder = order;\n this.lastOrderFn = orderFn;\n let filedMap = this.sortedIndexMap.get(field);\n let orderedData;\n\n if (filedMap) {\n orderedData = filedMap[order];\n if (orderedData && orderedData.length > 0) {\n this.currentIndexedData = orderedData;\n this.updatePagerData();\n this.fireListeners(EVENT_TYPE.CHANGE_ORDER, null);\n return;\n }\n }\n const sortedIndexArray = [] as number[];\n if (order === 'normal') {\n for (let i = 0; i < this._sourceLength; i++) {\n sortedIndexArray[i] = i;\n }\n } else {\n sort.sort(\n index => (isValid(sortedIndexArray[index]) ? sortedIndexArray[index] : (sortedIndexArray[index] = index)),\n (index, rel) => {\n sortedIndexArray[index] = rel;\n },\n this._sourceLength,\n orderFn,\n order,\n index => this.getOriginalField(index, field)\n );\n }\n this.currentIndexedData = sortedIndexArray;\n if (this.enableHierarchyState) {\n let nodeLength = sortedIndexArray.length;\n const t0 = window.performance.now();\n for (let i = 0; i < nodeLength; i++) {\n const subNodeLength = this.pushChildrenNode(\n sortedIndexArray[i],\n this.treeDataHierarchyState.get(sortedIndexArray[i]),\n this.getOriginalRecord(sortedIndexArray[i]) // ?sortedIndexArray 在这个过程中不是变化了吗 通过i取id还是对的吗? 对哦!因为i和nodeLength都+subNodeLength 来动态调整过了!\n );\n nodeLength += subNodeLength;\n i += subNodeLength;\n }\n }\n if (!filedMap) {\n filedMap = { asc: [], desc: [], normal: [] };\n this.sortedIndexMap.set(field, filedMap);\n }\n filedMap[order] = sortedIndexArray;\n this.updatePagerData();\n this.fireListeners(EVENT_TYPE.CHANGE_ORDER, null);\n }\n /**\n * 当节点折叠或者展开时 将排序缓存清空(非当前排序规则的缓存)\n */\n clearSortedIndexMap() {\n if (this.lastOrderField && this.lastOrder) {\n this.sortedIndexMap.forEach((sortMap, key) => {\n if (key !== this.lastOrderField) {\n this.sortedIndexMap.delete(key);\n } else if (this.lastOrder === 'asc') {\n sortMap.desc = [];\n sortMap.normal = [];\n } else if (this.lastOrder === 'desc') {\n sortMap.asc = [];\n sortMap.normal = [];\n } else {\n sortMap.desc = [];\n sortMap.asc = [];\n }\n });\n }\n }\n get sourceLenght(): number {\n return this._sourceLength;\n }\n set sourceLength(sourceLen: number) {\n if (this._sourceLength === sourceLen) {\n return;\n }\n this._sourceLength = sourceLen;\n this.fireListeners(EVENT_TYPE.SOURCE_LENGTH_UPDATE, this._sourceLength);\n }\n get length(): number {\n return this.currentPagerIndexedData.length;\n }\n get dataSource(): DataSource {\n return this;\n }\n get currentPagerIndexedData(): (number | number[])[] {\n if (this._currentPagerIndexedData.length > 0) {\n return this._currentPagerIndexedData;\n }\n return []; //this.currentIndexedData || [];\n }\n release(): void {\n super.release?.();\n }\n clearSortedMap() {\n this.currentIndexedData && (this.currentIndexedData.length = 0);\n this.currentIndexedData = null;\n this.sortedIndexMap.forEach(item => {\n item.asc && (item.asc.length = 0);\n item.desc && (item.desc.length = 0);\n });\n this.sortedIndexMap.clear();\n }\n clearCurrentIndexedData(): void {\n this.currentIndexedData = null;\n this.currentPagerIndexedData.length = 0;\n }\n protected getOriginalRecord(index: number | number[]): MaybePromiseOrUndefined {\n return getValue(this._get(index), (val: MaybePromiseOrUndefined) => {\n this.recordPromiseCallBack(index, val);\n });\n }\n protected getOriginalField(\n index: number | number[],\n field: FieldDef | FieldFormat | number,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n if (field === null) {\n return undefined;\n }\n const record = this.getOriginalRecord(index);\n // return getField(record, field);\n return getField(record, field, col, row, table, (val: any) => {\n this.fieldPromiseCallBack(index, field, val);\n });\n }\n protected hasOriginalField(index: number | number[], field: FieldDef): boolean {\n if (field === null) {\n return false;\n }\n if (typeof field === 'function') {\n return true;\n }\n const record = this.getOriginalRecord(index);\n return Boolean(record && (field as any) in (record as any));\n }\n\n protected fieldPromiseCallBack(\n _index: number | number[],\n _field: FieldDef | FieldFormat | number,\n _value: MaybePromiseOrUndefined\n ): void {\n //\n }\n protected recordPromiseCallBack(_index: number | number[], _record: MaybePromiseOrUndefined): void {\n //\n }\n /** 静态变量 代表数据为空 */\n static EMPTY = new DataSource({\n get() {\n /* noop */\n },\n length: 0\n });\n}\n"]}
@@ -29,11 +29,7 @@ export function bindContainerDomListener(eventManeger) {
29
29
  var _a;
30
30
  if (null === (_a = table.keyboardOptions) || void 0 === _a ? void 0 : _a.copySelected) {
31
31
  const data = table.getCopyValue();
32
- isValid(data) && (e.preventDefault(), browser.IE ? window.clipboardData.setData("Text", data) : e.clipboardData.setData("text/plain", data),
33
- table.fireListeners(TABLE_EVENT_TYPE.COPY_DATA, {
34
- cellRange: table.stateManeger.select.ranges,
35
- copyData: data
36
- }));
32
+ isValid(data) && (e.preventDefault(), browser.IE ? window.clipboardData.setData("Text", data) : e.clipboardData.setData("text/plain", data));
37
33
  }
38
34
  })), handler.on(table.getElement(), "contextmenu", (e => {
39
35
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"sources":["event/listener/container-dom.ts"],"names":[],"mappings":"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","file":"container-dom.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { EventHandler } from '../EventHandler';\nimport type { KeydownEvent } from '../../ts-types';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport { handleWhell } from '../scroll';\nimport { browser } from '../../tools/helper';\nimport type { EventManeger } from '../event';\n\nexport function bindContainerDomListener(eventManeger: EventManeger) {\n const table = eventManeger.table;\n const stateManeger = table.stateManeger;\n const handler: EventHandler = table.internalProps.handler;\n\n handler.on(table.getElement(), 'blur', (e: MouseEvent) => {\n eventManeger.dealTableHover();\n // eventManeger.dealTableSelect();\n });\n\n handler.on(table.getElement(), 'wheel', (e: WheelEvent) => {\n handleWhell(e, stateManeger);\n });\n\n // 监听键盘事件\n handler.on(table.getElement(), 'keydown', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.selectAllOnCtrlA) {\n // 处理全选\n if (e.key === 'a' && (e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n //全选\n eventManeger.deelTableSelectAll();\n }\n }\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {\n const cellsEvent: KeydownEvent = {\n keyCode: e.keyCode ?? e.which,\n code: e.code,\n event: e,\n cells: table.getSelectedCellInfos(),\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.KEYDOWN, cellsEvent);\n }\n });\n\n handler.on(table.getElement(), 'copy', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.copySelected) {\n const data = table.getCopyValue();\n if (isValid(data)) {\n e.preventDefault();\n if (browser.IE) {\n (window as any).clipboardData.setData('Text', data); // IE\n } else {\n (e as any).clipboardData.setData('text/plain', data); // Chrome, Firefox\n }\n table.fireListeners(TABLE_EVENT_TYPE.COPY_DATA, {\n cellRange: table.stateManeger.select.ranges,\n copyData: data\n });\n }\n }\n });\n\n handler.on(table.getElement(), 'contextmenu', (e: any) => {\n e.preventDefault();\n });\n\n handler.on(table.getContainer(), 'resize', () => {\n table.resize();\n });\n}\n"]}
1
+ {"version":3,"sources":["event/listener/container-dom.ts"],"names":[],"mappings":"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","file":"container-dom.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { EventHandler } from '../EventHandler';\nimport type { KeydownEvent } from '../../ts-types';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport { handleWhell } from '../scroll';\nimport { browser } from '../../tools/helper';\nimport type { EventManeger } from '../event';\n\nexport function bindContainerDomListener(eventManeger: EventManeger) {\n const table = eventManeger.table;\n const stateManeger = table.stateManeger;\n const handler: EventHandler = table.internalProps.handler;\n\n handler.on(table.getElement(), 'blur', (e: MouseEvent) => {\n eventManeger.dealTableHover();\n // eventManeger.dealTableSelect();\n });\n\n handler.on(table.getElement(), 'wheel', (e: WheelEvent) => {\n handleWhell(e, stateManeger);\n });\n\n // 监听键盘事件\n handler.on(table.getElement(), 'keydown', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.selectAllOnCtrlA) {\n // 处理全选\n if (e.key === 'a' && (e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n //全选\n eventManeger.deelTableSelectAll();\n }\n }\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {\n const cellsEvent: KeydownEvent = {\n keyCode: e.keyCode ?? e.which,\n code: e.code,\n event: e,\n cells: table.getSelectedCellInfos(),\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.KEYDOWN, cellsEvent);\n }\n });\n\n handler.on(table.getElement(), 'copy', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.copySelected) {\n const data = table.getCopyValue();\n if (isValid(data)) {\n e.preventDefault();\n if (browser.IE) {\n (window as any).clipboardData.setData('Text', data); // IE\n } else {\n (e as any).clipboardData.setData('text/plain', data); // Chrome, Firefox\n }\n }\n }\n });\n\n handler.on(table.getElement(), 'contextmenu', (e: any) => {\n e.preventDefault();\n });\n\n handler.on(table.getContainer(), 'resize', () => {\n table.resize();\n });\n}\n"]}
@@ -16,31 +16,6 @@ let LastPointerXY, LastBodyPointerXY, isDown = !1, isDraging = !1;
16
16
 
17
17
  export function bindTableGroupListener(eventManeger) {
18
18
  const table = eventManeger.table, stateManeger = table.stateManeger;
19
- function dblclickHandler(e) {
20
- var _a, _b, _c;
21
- const eventArgsSet = getCellEventArgsSet(e), bounds = eventArgsSet.eventArgs.targetCell.globalAABBBounds, {col: col, row: row} = eventArgsSet.eventArgs, value = table.getCellValue(col, row);
22
- if (table.internalProps.focusControl.setFocusRect(new Rect(bounds.x1 + table.scrollLeft, bounds.y1 + table.scrollTop, bounds.x2 - bounds.x1, bounds.y2 - bounds.y1), value),
23
- table.hasListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL)) {
24
- const cellInfo = table.getCellInfo(col, row);
25
- let icon, position;
26
- if (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) {
27
- const iconInfo = getIconAndPositionFromTarget(null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target);
28
- iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
29
- }
30
- const cellsEvent = Object.assign(Object.assign({}, cellInfo), {
31
- event: e.nativeEvent,
32
- federatedEvent: e,
33
- cells: [],
34
- targetIcon: icon ? {
35
- name: icon.name,
36
- position: position,
37
- funcType: icon.attribute.funcType
38
- } : void 0,
39
- target: null === (_c = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target
40
- });
41
- table.fireListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL, cellsEvent);
42
- }
43
- }
44
19
  document.body.addEventListener("pointerdown", (e => {
45
20
  LastBodyPointerXY = {
46
21
  x: e.x,
@@ -297,7 +272,6 @@ export function bindTableGroupListener(eventManeger) {
297
272
  }
298
273
  const cellsEvent = Object.assign(Object.assign({}, cellInfo), {
299
274
  event: e.nativeEvent,
300
- federatedEvent: e,
301
275
  cells: [],
302
276
  targetIcon: icon ? {
303
277
  name: icon.name,
@@ -314,10 +288,30 @@ export function bindTableGroupListener(eventManeger) {
314
288
  isDraging || !target || target.isDescendantsOf(table.scenegraph.tableGroup) ? isDraging && stateManeger.endSelectCells() : (stateManeger.updateInteractionState(InteractionState.default),
315
289
  eventManeger.dealTableHover(), eventManeger.dealTableSelect(), stateManeger.updateCursor(),
316
290
  table.scenegraph.updateChartState(null));
317
- })), table.scenegraph.tableGroup.addEventListener("dbltap", (e => {
318
- dblclickHandler(e);
319
291
  })), table.scenegraph.tableGroup.addEventListener("dblclick", (e => {
320
- dblclickHandler(e);
292
+ var _a, _b, _c;
293
+ const eventArgsSet = getCellEventArgsSet(e), bounds = eventArgsSet.eventArgs.targetCell.globalAABBBounds, {col: col, row: row} = eventArgsSet.eventArgs, value = table.getCellValue(col, row);
294
+ if (table.internalProps.focusControl.setFocusRect(new Rect(bounds.x1 + table.scrollLeft, bounds.y1 + table.scrollTop, bounds.x2 - bounds.x1, bounds.y2 - bounds.y1), value),
295
+ table.hasListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL)) {
296
+ const cellInfo = table.getCellInfo(col, row);
297
+ let icon, position;
298
+ if (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) {
299
+ const iconInfo = getIconAndPositionFromTarget(null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target);
300
+ iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
301
+ }
302
+ const cellsEvent = Object.assign(Object.assign({}, cellInfo), {
303
+ event: e.nativeEvent,
304
+ federatedEvent: e,
305
+ cells: [],
306
+ targetIcon: icon ? {
307
+ name: icon.name,
308
+ position: position,
309
+ funcType: icon.attribute.funcType
310
+ } : void 0,
311
+ target: null === (_c = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target
312
+ });
313
+ table.fireListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL, cellsEvent);
314
+ }
321
315
  })), table.scenegraph.tableGroup.addEventListener("checkbox_state_change", (e => {
322
316
  var _a;
323
317
  const eventArgsSet = getCellEventArgsSet(e), {col: col, row: row} = eventArgsSet.eventArgs, cellInfo = table.getCellInfo(col, row), cellsEvent = Object.assign(Object.assign({}, cellInfo), {