@visactor/vtable 1.22.3-alpha.0 → 1.22.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/cjs/ListTable.d.ts +3 -1
  2. package/cjs/ListTable.js +15 -8
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +1 -0
  5. package/cjs/PivotTable.js +3 -0
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/body-helper/style/ButtonStyle.d.ts +10 -1
  8. package/cjs/body-helper/style/ButtonStyle.js.map +1 -1
  9. package/cjs/body-helper/style/CheckboxStyle.d.ts +14 -1
  10. package/cjs/body-helper/style/CheckboxStyle.js.map +1 -1
  11. package/cjs/body-helper/style/RadioStyle.d.ts +8 -1
  12. package/cjs/body-helper/style/RadioStyle.js.map +1 -1
  13. package/cjs/body-helper/style/SwitchStyle.d.ts +13 -1
  14. package/cjs/body-helper/style/SwitchStyle.js.map +1 -1
  15. package/cjs/core/BaseTable.js +2 -2
  16. package/cjs/core/BaseTable.js.map +1 -1
  17. package/cjs/core/record-helper.js.map +1 -1
  18. package/cjs/data/DataSource.js +1 -1
  19. package/cjs/data/DataSource.js.map +1 -1
  20. package/cjs/event/listener/touch.js +2 -1
  21. package/cjs/event/listener/touch.js.map +1 -1
  22. package/cjs/event/scroll.d.ts +2 -0
  23. package/cjs/event/scroll.js +12 -3
  24. package/cjs/event/scroll.js.map +1 -1
  25. package/cjs/index.d.ts +2 -1
  26. package/cjs/index.js +18 -4
  27. package/cjs/index.js.map +1 -1
  28. package/cjs/layout/index.js +2 -1
  29. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  30. package/cjs/layout/pivot-header-layout.js +37 -4
  31. package/cjs/layout/pivot-header-layout.js.map +1 -1
  32. package/cjs/layout/pivot-layout.js +2 -0
  33. package/cjs/layout/row-height-map.js +1 -1
  34. package/cjs/layout/simple-header-layout.js +4 -4
  35. package/cjs/layout/simple-header-layout.js.map +1 -1
  36. package/cjs/layout/tree-helper.js +1 -1
  37. package/cjs/plugins/custom-cell-style.js +1 -2
  38. package/cjs/plugins/index.js +1 -1
  39. package/cjs/plugins/interface.js +1 -1
  40. package/cjs/plugins/invert-highlight.js +1 -1
  41. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  42. package/cjs/plugins/plugin-manager.js +1 -1
  43. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +1 -1
  44. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  45. package/cjs/scenegraph/group-creater/cell-helper.js +1 -1
  46. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  47. package/cjs/scenegraph/layout/compute-row-height.js +7 -3
  48. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  49. package/cjs/state/cell-move/adjust-header.d.ts +13 -0
  50. package/cjs/state/cell-move/adjust-header.js +50 -3
  51. package/cjs/state/cell-move/adjust-header.js.map +1 -1
  52. package/cjs/state/cell-move/index.js +2 -1
  53. package/cjs/state/cell-move/index.js.map +1 -1
  54. package/cjs/ts-types/base-table.d.ts +7 -2
  55. package/cjs/ts-types/base-table.js.map +1 -1
  56. package/cjs/ts-types/list-table/define/basic-define.d.ts +1 -1
  57. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  58. package/cjs/ts-types/table-engine.d.ts +9 -2
  59. package/cjs/ts-types/table-engine.js.map +1 -1
  60. package/cjs/vrender.js.map +1 -1
  61. package/dist/vtable.js +219 -18
  62. package/dist/vtable.min.js +2 -2
  63. package/es/ListTable.d.ts +3 -1
  64. package/es/ListTable.js +17 -10
  65. package/es/ListTable.js.map +1 -1
  66. package/es/PivotTable.d.ts +1 -0
  67. package/es/PivotTable.js +3 -0
  68. package/es/PivotTable.js.map +1 -1
  69. package/es/body-helper/style/ButtonStyle.d.ts +10 -1
  70. package/es/body-helper/style/ButtonStyle.js.map +1 -1
  71. package/es/body-helper/style/CheckboxStyle.d.ts +14 -1
  72. package/es/body-helper/style/CheckboxStyle.js.map +1 -1
  73. package/es/body-helper/style/RadioStyle.d.ts +8 -1
  74. package/es/body-helper/style/RadioStyle.js.map +1 -1
  75. package/es/body-helper/style/SwitchStyle.d.ts +13 -1
  76. package/es/body-helper/style/SwitchStyle.js.map +1 -1
  77. package/es/core/BaseTable.js +2 -2
  78. package/es/core/BaseTable.js.map +1 -1
  79. package/es/core/record-helper.js.map +1 -1
  80. package/es/data/DataSource.js +1 -1
  81. package/es/data/DataSource.js.map +1 -1
  82. package/es/event/listener/touch.js +2 -2
  83. package/es/event/listener/touch.js.map +1 -1
  84. package/es/event/scroll.d.ts +2 -0
  85. package/es/event/scroll.js +9 -1
  86. package/es/event/scroll.js.map +1 -1
  87. package/es/index.d.ts +2 -1
  88. package/es/index.js +3 -1
  89. package/es/index.js.map +1 -1
  90. package/es/layout/index.js +2 -1
  91. package/es/layout/pivot-header-layout.d.ts +1 -0
  92. package/es/layout/pivot-header-layout.js +37 -4
  93. package/es/layout/pivot-header-layout.js.map +1 -1
  94. package/es/layout/pivot-layout.js +2 -0
  95. package/es/layout/row-height-map.js +1 -1
  96. package/es/layout/simple-header-layout.js +4 -4
  97. package/es/layout/simple-header-layout.js.map +1 -1
  98. package/es/layout/tree-helper.js +1 -1
  99. package/es/plugins/custom-cell-style.js +1 -2
  100. package/es/plugins/index.js +1 -1
  101. package/es/plugins/interface.js +1 -1
  102. package/es/plugins/invert-highlight.js +1 -1
  103. package/es/plugins/list-tree-stick-cell.js +1 -1
  104. package/es/plugins/plugin-manager.js +1 -1
  105. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +1 -1
  106. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  107. package/es/scenegraph/group-creater/cell-helper.js +2 -2
  108. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  109. package/es/scenegraph/layout/compute-row-height.js +7 -3
  110. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  111. package/es/state/cell-move/adjust-header.d.ts +13 -0
  112. package/es/state/cell-move/adjust-header.js +46 -2
  113. package/es/state/cell-move/adjust-header.js.map +1 -1
  114. package/es/state/cell-move/index.js +2 -1
  115. package/es/state/cell-move/index.js.map +1 -1
  116. package/es/ts-types/base-table.d.ts +7 -2
  117. package/es/ts-types/base-table.js.map +1 -1
  118. package/es/ts-types/list-table/define/basic-define.d.ts +1 -1
  119. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  120. package/es/ts-types/table-engine.d.ts +9 -2
  121. package/es/ts-types/table-engine.js.map +1 -1
  122. package/es/vrender.js.map +1 -1
  123. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/listener/touch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,UAAU,iBAAiB,CAAC,YAA0B;IAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,IAAK,OAAe,CAAC,eAAe,CAAC,mBAAmB,KAAK,KAAK,EAAE;QAClE,OAAO;KACR;IAED,OAAO,CAAC,gBAAgB,CACtB,aAAa,EACb,CAAC,CAAC,EAAE;QACF,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC,EAED,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;IAGF,YAAY,CAAC,eAAe,GAAG,EAAE,CAAC;IAClC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAwB,EAAE,EAAE;;QACtF,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YAC9G,OAAO;SACR;QACD,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;QAChC,MAAM,UAAU,GAAG,CAAC,CAAC,WAAyB,CAAC;QAC/C,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC;YAChC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAA,MAAC,MAAA,UAAU,CAAC,cAAc,0CAAG,CAAC,CAAS,0CAAE,QAAQ,mCAAI,MAAA,CAAC,CAAC,MAAM,0CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAA,MAAC,MAAA,UAAU,CAAC,cAAc,0CAAG,CAAC,CAAS,0CAAE,QAAQ,mCAAI,MAAA,CAAC,CAAC,MAAM,0CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnG,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,CAAC,CAAa,EAAE,EAAE;;QAChD,IAAI,YAAY,CAAC,WAAW,EAAE;YAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;YACjD,OAAO;SACR;QACD,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;QAChC,IAAI,CAAA,MAAC,MAAA,YAAY,CAAC,QAAQ,0CAAE,SAAiB,0CAAE,QAAQ,MAAK,gBAAgB,CAAC,WAAW,EAAE;YAExF,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB;aAAM;YAEL,IAAI,YAAY,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;aACtC;YACD,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC;gBAChC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;gBACzF,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;gBACzF,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;YACH,IAAI,YAAY,CAAC,kBAAkB,EAAE;gBACnC,MAAM,MAAM,GACV,CAAC,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBACxE,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,MAAM,MAAM,GACV,CAAC,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBACxE,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAS,EAAE,YAAY,CAAC,CAAC;gBAErD,IACE,CAAC,CAAC,UAAU;oBACZ,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,KAAK,MAAM;wBAChD,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;wBACpG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACzG;oBACA,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB;aACF;SACF;IACH,CAAC,CAAC;IACF,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,uBAAuB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACrC,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,uBAAuB;KAClC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,CAAC,CAAa,EAAE,EAAE;;QAC/C,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;YACjD,OAAO;SACR;QACD,IAAI,CAAA,MAAC,MAAA,YAAY,CAAC,QAAQ,0CAAE,SAAiB,0CAAE,QAAQ,MAAK,gBAAgB,CAAC,WAAW,EAAE;YAExF,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,MAAA,YAAY,CAAC,eAAe,0CAAE,MAAM,EAAE;gBACxC,IAAI,YAAY,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;iBACtC;gBACD,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC;oBAChC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;oBACzF,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;oBACzF,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;gBAGH,IAAI,YAAY,CAAC,kBAAkB,EAAE;oBACnC,MAAM,UAAU,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACnD,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,CAAA,MAAA,YAAY,CAAC,eAAe,0CAAE,MAAM,IAAG,CAAC,CAAC,CAAC;oBACzF,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;oBACvF,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;oBAEvF,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;oBACtD,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,EAAU,EAAE,EAAU,EAAE,EAAE;wBAC1E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;oBACvE,CAAC,CAAC,CAAC;iBACJ;aACF;SACF;QACD,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QAC/B,YAAY,CAAC,eAAe,GAAG,EAAE,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC7D,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACrC,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAC;IAEH,MAAM,yBAAyB,GAAG,CAAC,CAAa,EAAE,EAAE;QAClD,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QAEjC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC7B,OAAO;SACR;QACD,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,YAAY,CAAC,eAAe,GAAG,EAAE,CAAC;QAClC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;IACjC,CAAC,CAAC;IACF,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IACnE,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACrC,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,yBAAyB;KACpC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,CAA0B;IAC9C,OAAO,CAAC,CAAE,CAAgB,CAAC,cAAc,CAAC;AAC5C,CAAC","file":"touch.js","sourcesContent":["import { vglobal } from './../../vrender';\nimport type { FederatedPointerEvent } from './../../vrender';\nimport { handleWhell, isHorizontalScrollable, isVerticalScrollable } from '../scroll';\nimport type { EventManager } from '../event';\nimport { IconFuncTypeEnum } from '../../ts-types';\n\nexport function bindTouchListener(eventManager: EventManager) {\n const table = eventManager.table;\n const stateManager = table.stateManager;\n const scenegraph = table.scenegraph;\n if ((vglobal as any).envContribution.supportsTouchEvents === false) {\n return;\n }\n // 阻止右键事件\n vglobal.addEventListener(\n 'contextmenu',\n e => {\n e.stopPropagation();\n e.preventDefault();\n },\n // 捕获阶段就阻止\n { capture: true }\n );\n\n // deal width touch scrolling in mobile devices\n eventManager.touchMovePoints = [];\n table.scenegraph.tableGroup.addEventListener('touchstart', (e: FederatedPointerEvent) => {\n if (e.target.isChildOf(scenegraph.component.vScrollBar) || e.target.isChildOf(scenegraph.component.vScrollBar)) {\n return;\n }\n eventManager.isTouchdown = true;\n const touchEvent = e.nativeEvent as TouchEvent;\n eventManager.touchMovePoints.push({\n x: table.rotateDegree ? (touchEvent.changedTouches?.[0] as any)?._canvasX ?? e.canvas?.x : e.page.x,\n y: table.rotateDegree ? (touchEvent.changedTouches?.[0] as any)?._canvasY ?? e.canvas?.y : e.page.y,\n timestamp: Date.now()\n });\n });\n\n const globalTouchMoveCallback = (e: TouchEvent) => {\n if (eventManager.isLongTouch) {\n e.preventDefault();\n }\n if (!eventManager.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n eventManager.isTouchMove = true;\n if ((eventManager.downIcon?.attribute as any)?.funcType === IconFuncTypeEnum.dragReorder) {\n // console.log()\n e.preventDefault();\n } else {\n // collect four last touch pisitions\n if (eventManager.touchMovePoints.length > 4) {\n eventManager.touchMovePoints.shift();\n }\n eventManager.touchMovePoints.push({\n x: table.rotateDegree ? (e.changedTouches[0] as any)._canvasX : e.changedTouches[0].pageX,\n y: table.rotateDegree ? (e.changedTouches[0] as any)._canvasY : e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n if (eventManager._enableTableScroll) {\n const deltaX =\n -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].x +\n eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].x;\n const deltaY =\n -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].y +\n eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].y;\n handleWhell({ deltaX, deltaY } as any, stateManager);\n\n if (\n e.cancelable &&\n (table.internalProps.overscrollBehavior === 'none' ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, stateManager)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, stateManager)))\n ) {\n e.preventDefault();\n }\n }\n }\n };\n vglobal.addEventListener('touchmove', globalTouchMoveCallback, { passive: false });\n eventManager.globalEventListeners.push({\n name: 'touchmove',\n env: 'vglobal',\n callback: globalTouchMoveCallback\n });\n\n const globalTouchEndCallback = (e: TouchEvent) => {\n eventManager.touchEnd = true;\n eventManager.isLongTouch = false;\n if (!eventManager.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n if ((eventManager.downIcon?.attribute as any)?.funcType === IconFuncTypeEnum.dragReorder) {\n // console.log()\n e.preventDefault();\n } else {\n if (eventManager.touchMovePoints?.length) {\n if (eventManager.touchMovePoints.length > 4) {\n eventManager.touchMovePoints.shift();\n }\n eventManager.touchMovePoints.push({\n x: table.rotateDegree ? (e.changedTouches[0] as any)._canvasX : e.changedTouches[0].pageX,\n y: table.rotateDegree ? (e.changedTouches[0] as any)._canvasY : e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n // compute inertia parameter\n\n if (eventManager._enableTableScroll) {\n const firstPoint = eventManager.touchMovePoints[0];\n const lastPoint = eventManager.touchMovePoints[eventManager.touchMovePoints?.length - 1];\n const vX = (lastPoint.x - firstPoint.x) / (lastPoint.timestamp - firstPoint.timestamp);\n const vY = (lastPoint.y - firstPoint.y) / (lastPoint.timestamp - firstPoint.timestamp);\n //开始惯性滚动\n eventManager.inertiaScroll.startInertia(vX, vY, 0.95);\n table.eventManager.inertiaScroll.setScrollHandle((dx: number, dy: number) => {\n handleWhell({ deltaX: -dx, deltaY: -dy } as any, table.stateManager);\n });\n }\n }\n }\n eventManager.isTouchdown = false;\n eventManager.isTouchMove = false;\n eventManager.isDraging = false;\n eventManager.touchMovePoints = [];\n };\n vglobal.addEventListener('touchend', globalTouchEndCallback);\n eventManager.globalEventListeners.push({\n name: 'touchend',\n env: 'vglobal',\n callback: globalTouchEndCallback\n });\n\n const globalTouchCancelCallback = (e: TouchEvent) => {\n eventManager.touchEnd = true;\n eventManager.isLongTouch = false;\n\n if (!eventManager.isTouchdown) {\n return;\n }\n eventManager.isTouchdown = false;\n eventManager.isTouchMove = false;\n eventManager.touchMovePoints = [];\n eventManager.isDraging = false;\n };\n vglobal.addEventListener('touchcancel', globalTouchCancelCallback);\n eventManager.globalEventListeners.push({\n name: 'touchcancel',\n env: 'vglobal',\n callback: globalTouchCancelCallback\n });\n}\n\nfunction isTouchEvent(e: TouchEvent | MouseEvent): e is TouchEvent {\n return !!(e as TouchEvent).changedTouches;\n}\n"]}
1
+ {"version":3,"sources":["../src/event/listener/touch.ts"],"names":[],"mappings":"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","file":"touch.js","sourcesContent":["import { vglobal } from './../../vrender';\nimport type { FederatedPointerEvent } from './../../vrender';\nimport {\n handleWhell,\n isHorizontalExistScrollBar,\n isHorizontalScrollable,\n isVerticalExistScrollBar,\n isVerticalScrollable\n} from '../scroll';\nimport type { EventManager } from '../event';\nimport { IconFuncTypeEnum } from '../../ts-types';\n\nexport function bindTouchListener(eventManager: EventManager) {\n const table = eventManager.table;\n const stateManager = table.stateManager;\n const scenegraph = table.scenegraph;\n if ((vglobal as any).envContribution.supportsTouchEvents === false) {\n return;\n }\n // 阻止右键事件\n vglobal.addEventListener(\n 'contextmenu',\n e => {\n e.stopPropagation();\n e.preventDefault();\n },\n // 捕获阶段就阻止\n { capture: true }\n );\n\n // deal width touch scrolling in mobile devices\n eventManager.touchMovePoints = [];\n table.scenegraph.tableGroup.addEventListener('touchstart', (e: FederatedPointerEvent) => {\n if (e.target.isChildOf(scenegraph.component.vScrollBar) || e.target.isChildOf(scenegraph.component.vScrollBar)) {\n return;\n }\n eventManager.isTouchdown = true;\n const touchEvent = e.nativeEvent as TouchEvent;\n eventManager.touchMovePoints.push({\n x: table.rotateDegree ? (touchEvent.changedTouches?.[0] as any)?._canvasX ?? e.canvas?.x : e.page.x,\n y: table.rotateDegree ? (touchEvent.changedTouches?.[0] as any)?._canvasY ?? e.canvas?.y : e.page.y,\n timestamp: Date.now()\n });\n });\n\n const globalTouchMoveCallback = (e: TouchEvent) => {\n if (eventManager.isLongTouch) {\n e.preventDefault();\n }\n if (!eventManager.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n eventManager.isTouchMove = true;\n if ((eventManager.downIcon?.attribute as any)?.funcType === IconFuncTypeEnum.dragReorder) {\n // console.log()\n e.preventDefault();\n } else {\n // collect four last touch pisitions\n if (eventManager.touchMovePoints.length > 4) {\n eventManager.touchMovePoints.shift();\n }\n eventManager.touchMovePoints.push({\n x: table.rotateDegree ? (e.changedTouches[0] as any)._canvasX : e.changedTouches[0].pageX,\n y: table.rotateDegree ? (e.changedTouches[0] as any)._canvasY : e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n if (eventManager._enableTableScroll) {\n const deltaX =\n -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].x +\n eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].x;\n const deltaY =\n -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].y +\n eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].y;\n handleWhell({ deltaX, deltaY } as any, stateManager);\n\n if (\n e.cancelable &&\n ((table.internalProps.overscrollBehavior === 'none' &&\n ((deltaY && isVerticalExistScrollBar(stateManager)) ||\n (deltaX && isHorizontalExistScrollBar(stateManager)))) ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, stateManager)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, stateManager)))\n ) {\n e.preventDefault();\n }\n }\n }\n };\n vglobal.addEventListener('touchmove', globalTouchMoveCallback, { passive: false });\n eventManager.globalEventListeners.push({\n name: 'touchmove',\n env: 'vglobal',\n callback: globalTouchMoveCallback\n });\n\n const globalTouchEndCallback = (e: TouchEvent) => {\n eventManager.touchEnd = true;\n eventManager.isLongTouch = false;\n if (!eventManager.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n if ((eventManager.downIcon?.attribute as any)?.funcType === IconFuncTypeEnum.dragReorder) {\n // console.log()\n e.preventDefault();\n } else {\n if (eventManager.touchMovePoints?.length) {\n if (eventManager.touchMovePoints.length > 4) {\n eventManager.touchMovePoints.shift();\n }\n eventManager.touchMovePoints.push({\n x: table.rotateDegree ? (e.changedTouches[0] as any)._canvasX : e.changedTouches[0].pageX,\n y: table.rotateDegree ? (e.changedTouches[0] as any)._canvasY : e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n // compute inertia parameter\n\n if (eventManager._enableTableScroll) {\n const firstPoint = eventManager.touchMovePoints[0];\n const lastPoint = eventManager.touchMovePoints[eventManager.touchMovePoints?.length - 1];\n const vX = (lastPoint.x - firstPoint.x) / (lastPoint.timestamp - firstPoint.timestamp);\n const vY = (lastPoint.y - firstPoint.y) / (lastPoint.timestamp - firstPoint.timestamp);\n //开始惯性滚动\n eventManager.inertiaScroll.startInertia(vX, vY, 0.95);\n table.eventManager.inertiaScroll.setScrollHandle((dx: number, dy: number) => {\n handleWhell({ deltaX: -dx, deltaY: -dy } as any, table.stateManager);\n });\n }\n }\n }\n eventManager.isTouchdown = false;\n eventManager.isTouchMove = false;\n eventManager.isDraging = false;\n eventManager.touchMovePoints = [];\n };\n vglobal.addEventListener('touchend', globalTouchEndCallback);\n eventManager.globalEventListeners.push({\n name: 'touchend',\n env: 'vglobal',\n callback: globalTouchEndCallback\n });\n\n const globalTouchCancelCallback = (e: TouchEvent) => {\n eventManager.touchEnd = true;\n eventManager.isLongTouch = false;\n\n if (!eventManager.isTouchdown) {\n return;\n }\n eventManager.isTouchdown = false;\n eventManager.isTouchMove = false;\n eventManager.touchMovePoints = [];\n eventManager.isDraging = false;\n };\n vglobal.addEventListener('touchcancel', globalTouchCancelCallback);\n eventManager.globalEventListeners.push({\n name: 'touchcancel',\n env: 'vglobal',\n callback: globalTouchCancelCallback\n });\n}\n\nfunction isTouchEvent(e: TouchEvent | MouseEvent): e is TouchEvent {\n return !!(e as TouchEvent).changedTouches;\n}\n"]}
@@ -3,6 +3,8 @@ import { type FederatedWheelEvent } from './../vrender';
3
3
  export declare function handleWhell(event: FederatedWheelEvent, state: StateManager, isWheelEvent?: boolean): void;
4
4
  export declare function isVerticalScrollable(deltaY: number, state: StateManager): boolean;
5
5
  export declare function isHorizontalScrollable(deltaX: number, state: StateManager): boolean;
6
+ export declare function isVerticalExistScrollBar(state: StateManager): boolean;
7
+ export declare function isHorizontalExistScrollBar(state: StateManager): boolean;
6
8
  export declare class InertiaScroll {
7
9
  friction: number;
8
10
  lastTime: number;
@@ -15,7 +15,7 @@ export function handleWhell(event, state, isWheelEvent = !0) {
15
15
  optimizedDeltaX && (state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event),
16
16
  state.showHorizontalScrollBar(autoHide)), optimizedDeltaY && (state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY, event),
17
17
  state.showVerticalScrollBar(autoHide)), isWheelEvent && state.resetInteractionState(state.interactionStateBeforeScroll),
18
- (null === (_c = event.nativeEvent) || void 0 === _c ? void 0 : _c.cancelable) && ("none" === state.table.internalProps.overscrollBehavior || Math.abs(deltaY) >= Math.abs(deltaX) && 0 !== deltaY && isVerticalScrollable(deltaY, state) || Math.abs(deltaY) <= Math.abs(deltaX) && 0 !== deltaX && isHorizontalScrollable(deltaX, state)) && event.nativeEvent.preventDefault();
18
+ (null === (_c = event.nativeEvent) || void 0 === _c ? void 0 : _c.cancelable) && ("none" === state.table.internalProps.overscrollBehavior && (deltaY && isVerticalExistScrollBar(state) || deltaX && isHorizontalExistScrollBar(state)) || Math.abs(deltaY) >= Math.abs(deltaX) && 0 !== deltaY && isVerticalScrollable(deltaY, state) || Math.abs(deltaY) <= Math.abs(deltaX) && 0 !== deltaX && isHorizontalScrollable(deltaX, state)) && event.nativeEvent.preventDefault();
19
19
  }
20
20
 
21
21
  function optimizeScrollXY(x, y, ratio) {
@@ -32,6 +32,14 @@ export function isHorizontalScrollable(deltaX, state) {
32
32
  return 0 != state.table.getAllColsWidth() - state.table.scenegraph.width && (!isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state));
33
33
  }
34
34
 
35
+ export function isVerticalExistScrollBar(state) {
36
+ return !(state.table.getAllRowsHeight() - state.table.scenegraph.height <= 0);
37
+ }
38
+
39
+ export function isHorizontalExistScrollBar(state) {
40
+ return !(state.table.getAllColsWidth() - state.table.scenegraph.width <= 0);
41
+ }
42
+
35
43
  function isScrollToTop(deltaY, state) {
36
44
  return 0 !== state.table.getAllRowsHeight() - state.table.scenegraph.height && deltaY <= 0 && state.scroll.verticalBarPos < 1;
37
45
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import type { StateManager } from '../state/state';\nimport { InteractionState } from '../ts-types';\nimport { vglobal, type FederatedWheelEvent } from './../vrender';\n\n/**\n *\n * @param event\n * @param state\n * @param isWheelEvent 是否是由鼠标或者触摸板原生滚动事件触发进入?\n */\nexport function handleWhell(event: FederatedWheelEvent, state: StateManager, isWheelEvent: boolean = true) {\n let { deltaX, deltaY } = event;\n // 如果按住了shift 则进行横向滚动 纵向不滚动\n if (event.shiftKey && event.deltaY) {\n //mac电脑按住shift 鼠标滚动deltaX和deltaY是自动互换的,所以此逻辑只针对windows电脑有效及mac触摸板有效\n deltaX = deltaY;\n deltaY = 0;\n }\n const [optimizedDeltaX, optimizedDeltaY] = optimizeScrollXY(deltaX, deltaY, { horizontal: 1, vertical: 1 });\n if (optimizedDeltaX || optimizedDeltaY) {\n if (state.interactionState !== InteractionState.scrolling) {\n state.updateInteractionState(InteractionState.scrolling);\n }\n }\n const autoHide = state.table.options.theme?.scrollStyle?.visible === 'scrolling';\n if (optimizedDeltaX) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event);\n state.showHorizontalScrollBar(autoHide);\n }\n if (optimizedDeltaY) {\n state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY, event);\n state.showVerticalScrollBar(autoHide);\n }\n isWheelEvent && state.resetInteractionState(state.interactionStateBeforeScroll);\n if (\n event.nativeEvent?.cancelable &&\n (state.table.internalProps.overscrollBehavior === 'none' ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, state)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, state)))\n ) {\n event.nativeEvent.preventDefault();\n }\n}\n\ninterface ScrollSpeedRatio {\n horizontal?: number;\n vertical?: number;\n}\n\n/**\n * 优化滚动方向,对于小角度的滚动,固定为一个方向\n * @param x\n * @param y\n * @param ratio\n */\nfunction optimizeScrollXY(x: number, y: number, ratio: ScrollSpeedRatio): [number, number] {\n const ANGLE = 2; // 调参 根据斜率来调整xy方向的划分\n const angle = Math.abs(x / y);\n\n // 经过滚动优化之后的 x, y\n const deltaX = angle <= 1 / ANGLE ? 0 : x;\n const deltaY = angle > ANGLE ? 0 : y;\n\n return [Math.ceil(deltaX * (ratio.horizontal ?? 0)), Math.ceil(deltaY * (ratio.vertical ?? 0))];\n}\n\nexport function isVerticalScrollable(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n if (totalHeight === 0) {\n return false;\n }\n return !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);\n}\n\nexport function isHorizontalScrollable(deltaX: number, state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n if (totalWidth === 0) {\n return false;\n }\n return !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);\n}\n\nfunction isScrollToTop(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY <= 0 && state.scroll.verticalBarPos < 1;\n}\n\nfunction isScrollToBottom(deltaY: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1 + sizeTolerance;\n}\n\nfunction isScrollToLeft(deltaX: number, state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX <= 0 && state.scroll.horizontalBarPos < 1;\n}\n\nfunction isScrollToRight(deltaX: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1 + sizeTolerance;\n}\n\nexport class InertiaScroll {\n friction: number;\n lastTime: number;\n speedX: number;\n speedY: number;\n stateManager: StateManager;\n runingId: number;\n scrollHandle: (dx: number, dy: number) => void;\n constructor(stateManager: StateManager) {\n this.stateManager = stateManager;\n }\n setScrollHandle(scrollHandle: (dx: number, dy: number) => void) {\n this.scrollHandle = scrollHandle;\n }\n\n startInertia(speedX: number, speedY: number, friction: number) {\n this.lastTime = Date.now();\n this.speedX = speedX;\n this.speedY = speedY;\n this.friction = friction;\n if (!this.runingId) {\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n }\n inertia() {\n const now = Date.now();\n const dffTime = now - this.lastTime;\n let stopped = true;\n const f = Math.pow(this.friction, dffTime / 16);\n const newSpeedX = f * this.speedX;\n const newSpeedY = f * this.speedY;\n let dx = 0;\n let dy = 0;\n if (Math.abs(newSpeedX) > 0.05) {\n stopped = false;\n dx = ((this.speedX + newSpeedX) / 2) * dffTime;\n }\n if (Math.abs(newSpeedY) > 0.05) {\n stopped = false;\n dy = ((this.speedY + newSpeedY) / 2) * dffTime;\n }\n this.scrollHandle?.(dx, dy);\n if (stopped) {\n this.runingId = null;\n return;\n }\n this.lastTime = now;\n this.speedX = newSpeedX;\n this.speedY = newSpeedY;\n\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n endInertia() {\n vglobal.getCancelAnimationFrame()(this.runingId);\n this.runingId = null;\n }\n isInertiaScrolling() {\n return !!this.runingId;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import type { StateManager } from '../state/state';\nimport { InteractionState } from '../ts-types';\nimport { vglobal, type FederatedWheelEvent } from './../vrender';\n\n/**\n *\n * @param event\n * @param state\n * @param isWheelEvent 是否是由鼠标或者触摸板原生滚动事件触发进入?\n */\nexport function handleWhell(event: FederatedWheelEvent, state: StateManager, isWheelEvent: boolean = true) {\n let { deltaX, deltaY } = event;\n // 如果按住了shift 则进行横向滚动 纵向不滚动\n if (event.shiftKey && event.deltaY) {\n //mac电脑按住shift 鼠标滚动deltaX和deltaY是自动互换的,所以此逻辑只针对windows电脑有效及mac触摸板有效\n deltaX = deltaY;\n deltaY = 0;\n }\n const [optimizedDeltaX, optimizedDeltaY] = optimizeScrollXY(deltaX, deltaY, { horizontal: 1, vertical: 1 });\n if (optimizedDeltaX || optimizedDeltaY) {\n if (state.interactionState !== InteractionState.scrolling) {\n state.updateInteractionState(InteractionState.scrolling);\n }\n }\n const autoHide = state.table.options.theme?.scrollStyle?.visible === 'scrolling';\n if (optimizedDeltaX) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event);\n state.showHorizontalScrollBar(autoHide);\n }\n if (optimizedDeltaY) {\n state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY, event);\n state.showVerticalScrollBar(autoHide);\n }\n isWheelEvent && state.resetInteractionState(state.interactionStateBeforeScroll);\n if (\n event.nativeEvent?.cancelable &&\n ((state.table.internalProps.overscrollBehavior === 'none' &&\n ((deltaY && isVerticalExistScrollBar(state)) || (deltaX && isHorizontalExistScrollBar(state)))) ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, state)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, state)))\n ) {\n event.nativeEvent.preventDefault();\n }\n}\n\ninterface ScrollSpeedRatio {\n horizontal?: number;\n vertical?: number;\n}\n\n/**\n * 优化滚动方向,对于小角度的滚动,固定为一个方向\n * @param x\n * @param y\n * @param ratio\n */\nfunction optimizeScrollXY(x: number, y: number, ratio: ScrollSpeedRatio): [number, number] {\n const ANGLE = 2; // 调参 根据斜率来调整xy方向的划分\n const angle = Math.abs(x / y);\n\n // 经过滚动优化之后的 x, y\n const deltaX = angle <= 1 / ANGLE ? 0 : x;\n const deltaY = angle > ANGLE ? 0 : y;\n\n return [Math.ceil(deltaX * (ratio.horizontal ?? 0)), Math.ceil(deltaY * (ratio.vertical ?? 0))];\n}\n\nexport function isVerticalScrollable(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n if (totalHeight === 0) {\n return false;\n }\n return !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);\n}\n\nexport function isHorizontalScrollable(deltaX: number, state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n if (totalWidth === 0) {\n return false;\n }\n return !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);\n}\n\nexport function isVerticalExistScrollBar(state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n if (totalHeight <= 0) {\n return false;\n }\n return true;\n}\n\nexport function isHorizontalExistScrollBar(state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n if (totalWidth <= 0) {\n return false;\n }\n return true;\n}\n\nfunction isScrollToTop(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY <= 0 && state.scroll.verticalBarPos < 1;\n}\n\nfunction isScrollToBottom(deltaY: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1 + sizeTolerance;\n}\n\nfunction isScrollToLeft(deltaX: number, state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX <= 0 && state.scroll.horizontalBarPos < 1;\n}\n\nfunction isScrollToRight(deltaX: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1 + sizeTolerance;\n}\n\nexport class InertiaScroll {\n friction: number;\n lastTime: number;\n speedX: number;\n speedY: number;\n stateManager: StateManager;\n runingId: number;\n scrollHandle: (dx: number, dy: number) => void;\n constructor(stateManager: StateManager) {\n this.stateManager = stateManager;\n }\n setScrollHandle(scrollHandle: (dx: number, dy: number) => void) {\n this.scrollHandle = scrollHandle;\n }\n\n startInertia(speedX: number, speedY: number, friction: number) {\n this.lastTime = Date.now();\n this.speedX = speedX;\n this.speedY = speedY;\n this.friction = friction;\n if (!this.runingId) {\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n }\n inertia() {\n const now = Date.now();\n const dffTime = now - this.lastTime;\n let stopped = true;\n const f = Math.pow(this.friction, dffTime / 16);\n const newSpeedX = f * this.speedX;\n const newSpeedY = f * this.speedY;\n let dx = 0;\n let dy = 0;\n if (Math.abs(newSpeedX) > 0.05) {\n stopped = false;\n dx = ((this.speedX + newSpeedX) / 2) * dffTime;\n }\n if (Math.abs(newSpeedY) > 0.05) {\n stopped = false;\n dy = ((this.speedY + newSpeedY) / 2) * dffTime;\n }\n this.scrollHandle?.(dx, dy);\n if (stopped) {\n this.runingId = null;\n return;\n }\n this.lastTime = now;\n this.speedX = newSpeedX;\n this.speedY = newSpeedY;\n\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n endInertia() {\n vglobal.getCancelAnimationFrame()(this.runingId);\n this.runingId = null;\n }\n isInertiaScrolling() {\n return !!this.runingId;\n }\n}\n"]}
package/es/index.d.ts CHANGED
@@ -23,7 +23,8 @@ export * from './render/jsx';
23
23
  export { getTargetCell } from './event/util';
24
24
  export { toBoxArray } from './tools/helper';
25
25
  export { Icon } from './scenegraph/graphic/icon';
26
- export declare const version = "1.22.3-alpha.0";
26
+ export { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';
27
+ export declare const version = "1.22.3";
27
28
  export { TYPES, core, ListTable, ListTableSimple, BaseTableAPI, ListTableConstructorOptions, PivotTable, PivotTableSimple, PivotTableConstructorOptions, PivotChartConstructorOptions, PivotChart, IHeaderTreeDefine, IDimension, IIndicator, ITitleDefine, ICornerDefine, ColumnsDefine, ColumnDefine, LinkColumnDefine, ChartColumnDefine, ImageColumnDefine, SparklineColumnDefine, ProgressbarColumnDefine, TextColumnDefine, GroupColumnDefine, TextAlignType, TextBaselineType, textMeasure, themes, data, MousePointerCellEvent, getIcons, clearGlobal, register, DataStatistics, CustomLayout, updateCell, renderChart, graphicUtil, setCustomAlphabetCharSet, restoreMeasureText, pluginsDefinition };
28
29
  declare function getIcons(): {
29
30
  [key: string]: TYPES.ColumnIconOption;
package/es/index.js CHANGED
@@ -46,7 +46,9 @@ export { toBoxArray } from "./tools/helper";
46
46
 
47
47
  export { Icon } from "./scenegraph/graphic/icon";
48
48
 
49
- export const version = "1.22.3-alpha.0";
49
+ export { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from "./scenegraph/component/custom";
50
+
51
+ export const version = "1.22.3";
50
52
 
51
53
  export { TYPES, core, ListTable, ListTableSimple, PivotTable, PivotTableSimple, PivotChart, textMeasure, themes, data, getIcons, clearGlobal, register, DataStatistics, CustomLayout, updateCell, renderChart, graphicUtil, setCustomAlphabetCharSet, restoreMeasureText, pluginsDefinition };
52
54
 
package/es/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC5D,kBAAkB,EAAE,CAAC;AAErB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,iBAAiB,MAAM,WAAW,CAAC;AAsB/C,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAM5G,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAKjD,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAIxC,OAAO,EAKL,KAAK,EACL,IAAI,EACJ,SAAS,EACT,eAAe,EAGf,UAAU,EACV,gBAAgB,EAGhB,UAAU,EAiBV,WAAW,EACX,MAAM,EACN,IAAI,EAEJ,QAAQ,EACR,WAAW,EAEX,QAAQ,EAIR,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAElB,CAAC;AAGF,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AACD,KAAK,CAAC,eAAe,CAAC;AAEtB,cAAc,cAAc,CAAC;AAC7B,cAAc,sCAAsC,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAE/G,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil, registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.22.3-alpha.0\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n BaseTableAPI,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n textMeasure,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n graphicUtil,\n setCustomAlphabetCharSet,\n restoreMeasureText,\n pluginsDefinition\n // VRender // should use import {xxx} from '@visactor/vtable/es/vrender'\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC5D,kBAAkB,EAAE,CAAC;AAErB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,iBAAiB,MAAM,WAAW,CAAC;AAsB/C,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAM5G,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAK7F,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAIhC,OAAO,EAKL,KAAK,EACL,IAAI,EACJ,SAAS,EACT,eAAe,EAGf,UAAU,EACV,gBAAgB,EAGhB,UAAU,EAiBV,WAAW,EACX,MAAM,EACN,IAAI,EAEJ,QAAQ,EACR,WAAW,EAEX,QAAQ,EAIR,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAElB,CAAC;AAGF,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AACD,KAAK,CAAC,eAAe,CAAC;AAEtB,cAAc,cAAc,CAAC;AAC7B,cAAc,sCAAsC,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAE/G,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil, registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\nexport { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.22.3\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n BaseTableAPI,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n textMeasure,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n graphicUtil,\n setCustomAlphabetCharSet,\n restoreMeasureText,\n pluginsDefinition\n // VRender // should use import {xxx} from '@visactor/vtable/es/vrender'\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
@@ -1 +1,2 @@
1
- export { SimpleHeaderLayoutMap } from "./simple-header-layout";
1
+ export { SimpleHeaderLayoutMap } from "./simple-header-layout";
2
+ //# sourceMappingURL=index.js.map
@@ -161,6 +161,7 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
161
161
  getCellHeaderPathsWithTreeNode(col: number, row: number): IPivotTableCellHeaderPaths;
162
162
  getTreePathByCellIds(row_pathIds: LayoutObjectId[]): ITreeLayoutHeadNode[];
163
163
  getCellHeaderPaths(col: number, row: number): IPivotTableCellHeaderPaths;
164
+ getCellRowHeaderFullPaths(col: number): IDimensionInfo[];
164
165
  private getIndicatorInfoByIndicatorKey;
165
166
  private findFullCellIds;
166
167
  getHeaderDimension(col: number, row: number): IDimension | undefined;
@@ -1003,6 +1003,25 @@ export class PivotHeaderLayoutMap {
1003
1003
  }
1004
1004
  })), headerPaths;
1005
1005
  }
1006
+ getCellRowHeaderFullPaths(col) {
1007
+ const headerPaths = [];
1008
+ if ("grid" === this.rowHierarchyType) {
1009
+ for (let i = 0; i <= Math.min(this.rowsDefine.length - 1, col); i++) {
1010
+ const rowDefine = this.rowsDefine[i];
1011
+ "string" == typeof rowDefine ? headerPaths.push({
1012
+ dimensionKey: rowDefine
1013
+ }) : headerPaths.push({
1014
+ dimensionKey: rowDefine.dimensionKey
1015
+ });
1016
+ }
1017
+ col >= this.rowsDefine.length && !1 === this.indicatorsAsCol && this.indicatorsDefine.length > 0 && ("string" == typeof this.indicatorsDefine[0] ? headerPaths.push({
1018
+ indicatorKey: this.indicatorsDefine[0]
1019
+ }) : headerPaths.push({
1020
+ indicatorKey: this.indicatorsDefine[0].indicatorKey
1021
+ }));
1022
+ }
1023
+ return headerPaths;
1024
+ }
1006
1025
  getIndicatorInfoByIndicatorKey(indicatorKey) {
1007
1026
  var _a;
1008
1027
  return null === (_a = this.indicatorsDefine) || void 0 === _a ? void 0 : _a.find((indicator => "string" != typeof indicator && (!!indicatorKey && indicator.indicatorKey === indicatorKey)));
@@ -1440,17 +1459,31 @@ export class PivotHeaderLayoutMap {
1440
1459
  if (rowDimensionFinded || forceBody) {
1441
1460
  row = this.columnHeaderLevelCount;
1442
1461
  const {startInTotal: startInTotal, afterSpanLevel: afterSpanLevel} = null !== (_g = rowDimensionFinded) && void 0 !== _g ? _g : defaultDimension;
1443
- row += null != startInTotal ? startInTotal : 0, defaultCol = "grid" === this.rowHierarchyType ? (this.rowHeaderTitle ? afterSpanLevel + 1 : afterSpanLevel) + this.leftRowSeriesNumberColumnCount : 0;
1462
+ if (row += null != startInTotal ? startInTotal : 0, "grid" === this.rowHierarchyType) {
1463
+ if (rowHeaderPaths.every(((path, index) => this.rowDimensionKeys[index] === path.dimensionKey))) {
1464
+ const col = rowHeaderPaths.length - 1;
1465
+ defaultCol = (this.rowHeaderTitle ? col + 1 : col) + this.leftRowSeriesNumberColumnCount;
1466
+ } else defaultCol = (this.rowHeaderTitle ? afterSpanLevel + 1 : afterSpanLevel) + this.leftRowSeriesNumberColumnCount;
1467
+ } else defaultCol = 0;
1444
1468
  }
1445
1469
  if (colDimensionFinded || forceBody) {
1446
1470
  col = this.rowHeaderLevelCount + this.leftRowSeriesNumberColumnCount;
1447
1471
  const {startInTotal: startInTotal, afterSpanLevel: afterSpanLevel} = null !== (_h = colDimensionFinded) && void 0 !== _h ? _h : defaultDimension;
1448
1472
  col += null != startInTotal ? startInTotal : 0, defaultRow = this.columnHeaderTitle ? afterSpanLevel + 1 : afterSpanLevel;
1449
1473
  }
1450
- return isValid(col) || isValid(row) ? {
1474
+ if (isValid(col) || isValid(row)) return {
1451
1475
  col: null != col ? col : defaultCol,
1452
1476
  row: null != row ? row : defaultRow
1453
- } : void 0;
1477
+ };
1478
+ if (rowHeaderPaths.length > 0) {
1479
+ if (rowHeaderPaths.every(((path, index) => this.rowDimensionKeys[index] === path.dimensionKey))) {
1480
+ const col = rowHeaderPaths.length - 1;
1481
+ return {
1482
+ col: (this.rowHeaderTitle ? col + 1 : col) + this.leftRowSeriesNumberColumnCount,
1483
+ row: void 0
1484
+ };
1485
+ }
1486
+ }
1454
1487
  }
1455
1488
  }
1456
1489
  setChartInstance(_col, _row, chartInstance) {
@@ -1929,4 +1962,4 @@ function bandSpace(count, paddingInner, paddingOuter) {
1929
1962
  return space = 1 === count ? count + 2 * paddingOuter : count - paddingInner + 2 * paddingOuter,
1930
1963
  count ? space > 0 ? space : 1 : 0;
1931
1964
  }
1932
- //# sourceMappingURL=pivot-header-layout.js.map
1965
+ //# sourceMappingURL=pivot-header-layout.js.map