@kdcloudjs/table 1.2.1-canary.6 → 1.2.2-canary.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 (288) hide show
  1. package/LICENSE +568 -568
  2. package/README.md +111 -111
  3. package/dist/@kdcloudjs/table.css +1 -1
  4. package/dist/@kdcloudjs/table.js +5480 -6087
  5. package/dist/@kdcloudjs/table.js.map +1 -1
  6. package/dist/@kdcloudjs/table.min.css +1 -1
  7. package/dist/@kdcloudjs/table.min.js +18 -16
  8. package/dist/@kdcloudjs/table.min.js.map +1 -1
  9. package/dist/kd-ui-complete.less +777 -777
  10. package/es/_utils/arrayUtil.js +0 -3
  11. package/es/_utils/devwarning.js +0 -1
  12. package/es/_utils/formatUtil.js +36 -101
  13. package/es/_utils/hooks.js +21 -45
  14. package/es/_utils/index.js +0 -2
  15. package/es/_utils/numberUtil.js +32 -55
  16. package/es/_utils/omit.js +0 -2
  17. package/es/_utils/type.js +0 -2
  18. package/es/_utils/usePopper.js +81 -144
  19. package/es/config-provider/compDefaultProps.js +0 -1
  20. package/es/config-provider/configProvider.js +2 -7
  21. package/es/config-provider/defaultConfig.js +0 -1
  22. package/es/index.js +0 -2
  23. package/es/locale/locale.js +11 -50
  24. package/es/style/color/colors.less +1 -1
  25. package/es/style/core/index.less +1 -1
  26. package/es/style/core/motion/other.less +27 -27
  27. package/es/style/core/motion/slide.less +53 -53
  28. package/es/style/core/motion.less +1 -1
  29. package/es/style/core/reset.less +185 -185
  30. package/es/style/index.less +1 -1
  31. package/es/style/mixins/index.less +18 -18
  32. package/es/style/mixins/overlay.less +21 -21
  33. package/es/style/mixins/reset.less +12 -12
  34. package/es/style/themes/default.less +445 -445
  35. package/es/table/base/calculations.js +25 -75
  36. package/es/table/base/colgroup.js +0 -1
  37. package/es/table/base/empty.js +6 -6
  38. package/es/table/base/globalStyleComponent.d.ts +4 -0
  39. package/es/table/base/globalStyleComponent.js +24 -0
  40. package/es/table/base/header.js +21 -76
  41. package/es/table/base/helpers/SpanManager.js +4 -11
  42. package/es/table/base/helpers/TableDOMUtils.js +9 -34
  43. package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
  44. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
  45. package/es/table/base/helpers/getRichVisibleRectsStream.js +13 -45
  46. package/es/table/base/helpers/rowHeightManager.js +0 -28
  47. package/es/table/base/html-table.js +17 -39
  48. package/es/table/base/loading.js +8 -10
  49. package/es/table/base/renderTemplates.js +42 -60
  50. package/es/table/base/styles.d.ts +10 -0
  51. package/es/table/base/styles.js +17 -16
  52. package/es/table/base/table.js +113 -201
  53. package/es/table/base/utils.js +17 -57
  54. package/es/table/common-views.js +0 -7
  55. package/es/table/interfaces.d.ts +38 -0
  56. package/es/table/internals.js +0 -13
  57. package/es/table/pipeline/const.d.ts +3 -0
  58. package/es/table/pipeline/const.js +3 -0
  59. package/es/table/pipeline/features/autoFill.js +11 -40
  60. package/es/table/pipeline/features/autoRowSpan.js +1 -14
  61. package/es/table/pipeline/features/colGroupExtendable.js +4 -19
  62. package/es/table/pipeline/features/columnDrag.js +41 -97
  63. package/es/table/pipeline/features/columnFilter.js +12 -51
  64. package/es/table/pipeline/features/columnHover.js +1 -7
  65. package/es/table/pipeline/features/columnRangeHover.js +1 -8
  66. package/es/table/pipeline/features/columnResizeWidth.js +13 -39
  67. package/es/table/pipeline/features/contextMenu.js +22 -95
  68. package/es/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
  69. package/es/table/pipeline/features/featureApi/RowDragApi.js +66 -0
  70. package/es/table/pipeline/features/featureApi/utils.d.ts +2 -0
  71. package/es/table/pipeline/features/featureApi/utils.js +10 -0
  72. package/es/table/pipeline/features/filter/DefaultFilterContent.js +14 -30
  73. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
  74. package/es/table/pipeline/features/filter/Filter.js +27 -51
  75. package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
  76. package/es/table/pipeline/features/filter/util.js +0 -4
  77. package/es/table/pipeline/features/footerDataSource.js +0 -3
  78. package/es/table/pipeline/features/mergeCellHover.js +0 -1
  79. package/es/table/pipeline/features/multiSelect.js +15 -57
  80. package/es/table/pipeline/features/rangeSelection.js +73 -152
  81. package/es/table/pipeline/features/rowDetail.js +4 -43
  82. package/es/table/pipeline/features/rowDrag.d.ts +10 -12
  83. package/es/table/pipeline/features/rowDrag.js +491 -236
  84. package/es/table/pipeline/features/rowGrouping.js +4 -37
  85. package/es/table/pipeline/features/singleSelect.js +0 -24
  86. package/es/table/pipeline/features/sort.js +38 -96
  87. package/es/table/pipeline/features/tips.js +4 -10
  88. package/es/table/pipeline/features/treeMode.d.ts +1 -0
  89. package/es/table/pipeline/features/treeMode.js +38 -57
  90. package/es/table/pipeline/features/treeSelect.js +2 -28
  91. package/es/table/pipeline/pipeline.d.ts +3 -0
  92. package/es/table/pipeline/pipeline.js +35 -54
  93. package/es/table/pivot/cross-table/buildCrossTable.js +21 -72
  94. package/es/table/pivot/cross-table/cross-table.js +23 -31
  95. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -57
  96. package/es/table/pivot/cross-tree-table/cross-tree-table.js +36 -61
  97. package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
  98. package/es/table/pivot/pivot-utils/builders.js +34 -74
  99. package/es/table/pivot/pivot-utils/convert-utils.js +16 -42
  100. package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
  101. package/es/table/style/index.less +1 -1
  102. package/es/table/transforms/autoRowSpan.js +1 -15
  103. package/es/table/transforms/autoWidth.js +13 -35
  104. package/es/table/transforms/buildTree.js +1 -2
  105. package/es/table/transforms/columnHover.js +9 -15
  106. package/es/table/transforms/columnRangeHover.js +12 -19
  107. package/es/table/transforms/columnResize.js +18 -42
  108. package/es/table/transforms/flatten.js +0 -3
  109. package/es/table/transforms/orderField.js +0 -3
  110. package/es/table/transforms/sort.js +42 -101
  111. package/es/table/transforms/tips.js +5 -10
  112. package/es/table/transforms/treeMode.js +36 -77
  113. package/es/table/transforms/visible.js +0 -2
  114. package/es/table/use/useResizeObserver.js +1 -4
  115. package/es/table/utils/applyTransforms.js +0 -1
  116. package/es/table/utils/browserType.js +12 -19
  117. package/es/table/utils/buildTree.js +7 -22
  118. package/es/table/utils/collectNodes.js +4 -13
  119. package/es/table/utils/console.js +0 -14
  120. package/es/table/utils/copyToClipboard.js +0 -4
  121. package/es/table/utils/element.js +14 -41
  122. package/es/table/utils/exportTableAsExcel.js +7 -43
  123. package/es/table/utils/getTreeDepth.js +4 -12
  124. package/es/table/utils/groupBy.js +4 -13
  125. package/es/table/utils/layeredFilter.js +0 -4
  126. package/es/table/utils/layeredSort.js +0 -5
  127. package/es/table/utils/makeRecursiveMapper.js +4 -15
  128. package/es/table/utils/mergeCellProps.js +6 -14
  129. package/es/table/utils/others.js +6 -19
  130. package/es/table/utils/proto.js +2 -30
  131. package/es/table/utils/smartCompare.js +4 -12
  132. package/es/table/utils/traverseColumn.js +5 -18
  133. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +8 -30
  134. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
  135. package/es/table/utils/uiDegrade.js +0 -5
  136. package/lib/_utils/arrayUtil.js +2 -8
  137. package/lib/_utils/devwarning.js +0 -5
  138. package/lib/_utils/formatUtil.js +36 -105
  139. package/lib/_utils/hooks.js +21 -56
  140. package/lib/_utils/index.js +2 -9
  141. package/lib/_utils/numberUtil.js +32 -63
  142. package/lib/_utils/omit.js +0 -5
  143. package/lib/_utils/react-children.js +0 -5
  144. package/lib/_utils/type.js +3 -11
  145. package/lib/_utils/usePopper.js +86 -173
  146. package/lib/config-provider/ConfigContext.js +2 -6
  147. package/lib/config-provider/compDefaultProps.js +1 -3
  148. package/lib/config-provider/configProvider.js +6 -22
  149. package/lib/config-provider/defaultConfig.js +1 -7
  150. package/lib/config-provider/index.js +1 -8
  151. package/lib/index.js +2 -8
  152. package/lib/locale/index.js +3 -11
  153. package/lib/locale/locale.js +15 -71
  154. package/lib/locale/zh-CN.js +1 -2
  155. package/lib/style/color/colors.less +1 -1
  156. package/lib/style/components.less +1 -1
  157. package/lib/style/core/index.less +1 -1
  158. package/lib/style/core/motion/other.less +27 -27
  159. package/lib/style/core/motion/slide.less +53 -53
  160. package/lib/style/core/motion.less +1 -1
  161. package/lib/style/core/reset.less +185 -185
  162. package/lib/style/index.less +1 -1
  163. package/lib/style/mixins/index.less +18 -18
  164. package/lib/style/mixins/overlay.less +21 -21
  165. package/lib/style/mixins/reset.less +12 -12
  166. package/lib/style/themes/default.less +445 -445
  167. package/lib/table/base/calculations.js +25 -86
  168. package/lib/table/base/colgroup.js +0 -5
  169. package/lib/table/base/empty.js +8 -20
  170. package/lib/table/base/globalStyleComponent.d.ts +4 -0
  171. package/lib/table/base/globalStyleComponent.js +35 -0
  172. package/lib/table/base/header.js +21 -86
  173. package/lib/table/base/helpers/SpanManager.js +6 -16
  174. package/lib/table/base/helpers/TableDOMUtils.js +9 -37
  175. package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
  176. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
  177. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
  178. package/lib/table/base/helpers/getRichVisibleRectsStream.js +15 -65
  179. package/lib/table/base/helpers/rowHeightManager.js +0 -33
  180. package/lib/table/base/html-table.js +17 -49
  181. package/lib/table/base/index.js +0 -2
  182. package/lib/table/base/loading.js +8 -14
  183. package/lib/table/base/renderTemplates.js +45 -76
  184. package/lib/table/base/styles.d.ts +10 -0
  185. package/lib/table/base/styles.js +24 -42
  186. package/lib/table/base/table.js +125 -245
  187. package/lib/table/base/utils.js +27 -109
  188. package/lib/table/common-views.js +4 -24
  189. package/lib/table/index.js +0 -13
  190. package/lib/table/interfaces.d.ts +38 -0
  191. package/lib/table/internals.js +2 -17
  192. package/lib/table/pipeline/const.d.ts +3 -0
  193. package/lib/table/pipeline/const.js +9 -0
  194. package/lib/table/pipeline/features/autoFill.js +14 -53
  195. package/lib/table/pipeline/features/autoRowSpan.js +1 -19
  196. package/lib/table/pipeline/features/buildTree.js +0 -2
  197. package/lib/table/pipeline/features/colGroupExtendable.js +6 -35
  198. package/lib/table/pipeline/features/columnDrag.js +41 -103
  199. package/lib/table/pipeline/features/columnFilter.js +12 -65
  200. package/lib/table/pipeline/features/columnHover.js +1 -11
  201. package/lib/table/pipeline/features/columnRangeHover.js +1 -13
  202. package/lib/table/pipeline/features/columnResizeWidth.js +18 -63
  203. package/lib/table/pipeline/features/contextMenu.js +24 -121
  204. package/lib/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
  205. package/lib/table/pipeline/features/featureApi/RowDragApi.js +72 -0
  206. package/lib/table/pipeline/features/featureApi/utils.d.ts +2 -0
  207. package/lib/table/pipeline/features/featureApi/utils.js +17 -0
  208. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +17 -52
  209. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
  210. package/lib/table/pipeline/features/filter/Filter.js +30 -77
  211. package/lib/table/pipeline/features/filter/FilterPanel.js +14 -44
  212. package/lib/table/pipeline/features/filter/index.js +0 -5
  213. package/lib/table/pipeline/features/filter/util.js +2 -10
  214. package/lib/table/pipeline/features/footerDataSource.js +1 -12
  215. package/lib/table/pipeline/features/index.js +0 -23
  216. package/lib/table/pipeline/features/mergeCellHover.js +0 -5
  217. package/lib/table/pipeline/features/multiSelect.js +15 -71
  218. package/lib/table/pipeline/features/rangeSelection.js +75 -173
  219. package/lib/table/pipeline/features/rowDetail.js +4 -67
  220. package/lib/table/pipeline/features/rowDrag.d.ts +10 -12
  221. package/lib/table/pipeline/features/rowDrag.js +494 -252
  222. package/lib/table/pipeline/features/rowGrouping.js +4 -57
  223. package/lib/table/pipeline/features/singleSelect.js +0 -34
  224. package/lib/table/pipeline/features/sort.js +37 -115
  225. package/lib/table/pipeline/features/tips.js +4 -19
  226. package/lib/table/pipeline/features/treeMode.d.ts +1 -0
  227. package/lib/table/pipeline/features/treeMode.js +40 -80
  228. package/lib/table/pipeline/features/treeSelect.js +2 -36
  229. package/lib/table/pipeline/index.js +2 -10
  230. package/lib/table/pipeline/pipeline.d.ts +3 -0
  231. package/lib/table/pipeline/pipeline.js +36 -65
  232. package/lib/table/pivot/cross-table/buildCrossTable.js +21 -83
  233. package/lib/table/pivot/cross-table/constants.js +1 -2
  234. package/lib/table/pivot/cross-table/cross-table.js +25 -42
  235. package/lib/table/pivot/cross-table/index.js +0 -4
  236. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -70
  237. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +37 -73
  238. package/lib/table/pivot/cross-tree-table/index.js +0 -3
  239. package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
  240. package/lib/table/pivot/pivot-utils/builders.js +34 -85
  241. package/lib/table/pivot/pivot-utils/convert-utils.js +16 -60
  242. package/lib/table/pivot/pivot-utils/index.js +0 -7
  243. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
  244. package/lib/table/style/css.js +0 -1
  245. package/lib/table/style/index.js +0 -1
  246. package/lib/table/style/index.less +1 -1
  247. package/lib/table/transforms/autoRowSpan.js +1 -21
  248. package/lib/table/transforms/autoWidth.js +15 -58
  249. package/lib/table/transforms/buildTree.js +1 -4
  250. package/lib/table/transforms/columnHover.js +9 -22
  251. package/lib/table/transforms/columnRangeHover.js +12 -27
  252. package/lib/table/transforms/columnResize.js +20 -63
  253. package/lib/table/transforms/flatten.js +0 -5
  254. package/lib/table/transforms/index.js +0 -12
  255. package/lib/table/transforms/orderField.js +0 -7
  256. package/lib/table/transforms/sort.js +44 -127
  257. package/lib/table/transforms/tips.js +5 -20
  258. package/lib/table/transforms/treeMode.js +38 -106
  259. package/lib/table/transforms/visible.js +0 -7
  260. package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
  261. package/lib/table/use/useResizeObserver.js +2 -10
  262. package/lib/table/utils/applyTransforms.js +0 -2
  263. package/lib/table/utils/browserType.js +14 -23
  264. package/lib/table/utils/buildTree.js +7 -33
  265. package/lib/table/utils/collectNodes.js +4 -18
  266. package/lib/table/utils/console.js +2 -19
  267. package/lib/table/utils/copyToClipboard.js +1 -8
  268. package/lib/table/utils/element.js +14 -46
  269. package/lib/table/utils/exportTableAsExcel.js +7 -52
  270. package/lib/table/utils/getTreeDepth.js +4 -17
  271. package/lib/table/utils/groupBy.js +4 -17
  272. package/lib/table/utils/index.js +0 -22
  273. package/lib/table/utils/isGroupColumn.js +0 -3
  274. package/lib/table/utils/isLeafNode.js +0 -1
  275. package/lib/table/utils/keyCode.js +1 -2
  276. package/lib/table/utils/layeredFilter.js +0 -10
  277. package/lib/table/utils/layeredSort.js +0 -10
  278. package/lib/table/utils/makeRecursiveMapper.js +4 -24
  279. package/lib/table/utils/mergeCellProps.js +6 -18
  280. package/lib/table/utils/others.js +7 -36
  281. package/lib/table/utils/proto.js +3 -35
  282. package/lib/table/utils/selectColumn.js +2 -5
  283. package/lib/table/utils/smartCompare.js +4 -13
  284. package/lib/table/utils/traverseColumn.js +5 -25
  285. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +10 -41
  286. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
  287. package/lib/table/utils/uiDegrade.js +1 -8
  288. package/package.json +218 -218
@@ -1,74 +1,58 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.columnDrag = columnDrag;
9
-
10
8
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
13
-
14
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
15
-
16
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
17
-
18
12
  var _utils = require("../../utils");
19
-
20
13
  var _autoFill = require("./autoFill");
21
-
22
14
  var stateKey = 'columnDrag';
23
15
  var SCROLL_SIZE = 30;
24
-
25
16
  function disableSelect(event) {
26
17
  event.preventDefault();
27
18
  }
28
-
29
19
  function sortColumns(columns, sort) {
30
20
  var res = new Array(columns.length);
31
21
  var lastColumns = (0, _toConsumableArray2.default)(columns);
32
-
33
22
  while (columns.length) {
34
23
  var cloumn = columns.pop();
35
24
  res[sort[cloumn.code]] = cloumn;
36
25
  }
37
-
38
26
  if ((0, _filter.default)(res).call(res, Boolean).length !== lastColumns.length) {
39
27
  return lastColumns;
40
28
  }
41
-
42
29
  return res;
43
30
  }
44
-
45
31
  function stopClickPropagation(e) {
46
32
  e.stopPropagation();
47
33
  }
48
-
49
34
  function columnDrag() {
50
35
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
51
36
  return function (pipeline) {
52
37
  var _pipeline$getStateAtK = pipeline.getStateAtKey(stateKey, {}),
53
- cloumnsTranslateData = _pipeline$getStateAtK.cloumnsTranslateData;
54
-
38
+ cloumnsTranslateData = _pipeline$getStateAtK.cloumnsTranslateData;
55
39
  var columns = pipeline.getColumns();
56
- var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody; // if (cloumnsSortData) {
40
+ var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
41
+ // if (cloumnsSortData) {
57
42
  // columns = sortColumns(columns, cloumnsSortData)
58
43
  // }
59
-
60
44
  pipeline.columns((0, _filter.default)(columns).call(columns, function (column) {
61
45
  return column;
62
46
  }));
63
47
  return pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col, recursiveFlatMapInfo) {
64
48
  var path = recursiveFlatMapInfo.path,
65
- isLeaf = recursiveFlatMapInfo.isLeaf;
49
+ isLeaf = recursiveFlatMapInfo.isLeaf;
66
50
  var style = cloumnsTranslateData ? {
67
51
  transition: '.3s',
68
52
  transform: "translate3d(".concat(cloumnsTranslateData[col.code], "px, 0px, 0px)")
69
53
  } : {};
70
- var prevGetCellProps = col.getCellProps; // !col.code: 选择列 col.lock: 固定列 不允许拖拽
71
-
54
+ var prevGetCellProps = col.getCellProps;
55
+ // !col.code: 选择列 col.lock: 固定列 不允许拖拽
72
56
  if (col.lock || !col.code) return col;
73
57
  return (0, _extends2.default)((0, _extends2.default)({}, col), {
74
58
  getCellProps: function getCellProps(value, record, rowIndex) {
@@ -82,8 +66,8 @@ function columnDrag() {
82
66
  if (e.button !== 0 || !e.currentTarget.contains(e.target)) {
83
67
  return;
84
68
  }
85
-
86
- window.addEventListener('selectstart', disableSelect); // const cx = e.clientX
69
+ window.addEventListener('selectstart', disableSelect);
70
+ // const cx = e.clientX
87
71
  // const width = col.width
88
72
  // const a = startIndex
89
73
  // const b = endIndex
@@ -91,13 +75,10 @@ function columnDrag() {
91
75
  // let newColumn = [...columns]
92
76
  // let newStartIndex = startIndex
93
77
  // let endIdx = endIndex
94
-
95
78
  var columnMoved = false;
96
79
  var columns = pipeline.getColumns();
97
-
98
80
  var _pipeline$getStateAtK2 = pipeline.getStateAtKey(stateKey, {}),
99
- cloumnsTranslateData = _pipeline$getStateAtK2.cloumnsTranslateData;
100
-
81
+ cloumnsTranslateData = _pipeline$getStateAtK2.cloumnsTranslateData;
101
82
  var cloumnsSortData = {};
102
83
  columns.forEach(function (item, index) {
103
84
  cloumnsSortData[item.code] = index;
@@ -111,21 +92,17 @@ function columnDrag() {
111
92
  var allColumns = (0, _utils.collectNodes)(columns);
112
93
  var tableBodyClientRect = tableBody.getBoundingClientRect();
113
94
  var startScrollLeft = pipeline.ref.current.domHelper.virtual.scrollLeft;
114
-
115
95
  var updateScrollPosition = function updateScrollPosition(client) {
116
96
  var clientX = client.clientX;
117
97
  var left = tableBodyClientRect.left,
118
- width = tableBodyClientRect.width;
119
-
98
+ width = tableBodyClientRect.width;
120
99
  if (clientX + SCROLL_SIZE >= left + width) {
121
100
  pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
122
101
  }
123
-
124
102
  if (clientX - SCROLL_SIZE <= left) {
125
103
  pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
126
104
  }
127
105
  };
128
-
129
106
  function handleMouseMove(e) {
130
107
  var client = {
131
108
  clientX: e.clientX,
@@ -133,17 +110,15 @@ function columnDrag() {
133
110
  };
134
111
  var scrollDistance = pipeline.ref.current.domHelper.virtual.scrollLeft - startScrollLeft;
135
112
  var leftPosition = startX - scrollDistance; // 表头最左边起点
136
-
137
113
  updateScrollPosition(client);
138
-
139
114
  if (e.clientX - leftPosition < 20) {
140
115
  return;
141
116
  } else {
142
117
  e.stopPropagation();
143
118
  }
144
-
145
119
  document.body.style.userSelect = 'none';
146
- currentTarget.style.cursor = 'move'; // 循环计算每一个的位置
120
+ currentTarget.style.cursor = 'move';
121
+ // 循环计算每一个的位置
147
122
  // if (startIndex !== replaceIndex) {
148
123
  // const optionColumn = columns[startIndex]
149
124
  // const move = startIndex > replaceIndex ? 1 : -1
@@ -166,21 +141,18 @@ function columnDrag() {
166
141
  // index++
167
142
  // }
168
143
  // 重置位置信息
169
-
170
144
  cloumnsTranslateData = {};
171
145
  allColumns.forEach(function (item) {
172
146
  cloumnsTranslateData[item.code] = 0;
173
- }); // 计算平移位置
174
-
147
+ });
148
+ // 计算平移位置
175
149
  var replaceIndex = 0;
176
150
  var totalWitdth = getColumnWidth(columns[replaceIndex]);
177
-
178
151
  while (totalWitdth < e.clientX - leftPosition && replaceIndex < columns.length - 1) {
179
152
  replaceIndex++;
180
153
  totalWitdth += getColumnWidth(columns[replaceIndex]);
181
- } // 需要取最新startIndex, 不能直接用makeRecursiveMapper提供的startIndex(因为map时还没添加选择列、充满列等后面use添加的列)
182
-
183
-
154
+ }
155
+ // 需要取最新startIndex, 不能直接用makeRecursiveMapper提供的startIndex(因为map时还没添加选择列、充满列等后面use添加的列)
184
156
  var startIndex;
185
157
  columns.forEach(function (column, index) {
186
158
  if (column.code === col.code) {
@@ -189,63 +161,53 @@ function columnDrag() {
189
161
  });
190
162
  var optionColumn = columns[startIndex];
191
163
  var index = replaceIndex;
192
-
193
164
  if (startIndex > replaceIndex) {
194
165
  // 左移
195
166
  while (index < startIndex) {
196
167
  var _columns$index = columns[index],
197
- code = _columns$index.code,
198
- lock = _columns$index.lock,
199
- width = _columns$index.width,
200
- children = _columns$index.children;
201
-
168
+ code = _columns$index.code,
169
+ lock = _columns$index.lock,
170
+ width = _columns$index.width,
171
+ children = _columns$index.children;
202
172
  if (enableMove({
203
173
  code: code,
204
174
  lock: lock
205
175
  })) {
206
176
  cloumnsTranslateData[code] += optionColumn.width;
207
-
208
177
  if ((0, _utils.isLeafNode)(columns[index])) {
209
178
  cloumnsTranslateData[optionColumn.code] -= width;
210
179
  } else {
211
180
  cloumnsTranslateData[optionColumn.code] -= getColumnWidth(columns[index]);
212
181
  moveAllChildren(children, cloumnsTranslateData, optionColumn.width);
213
182
  }
214
-
215
183
  columnMoved = true;
216
184
  }
217
-
218
185
  index++;
219
186
  }
220
187
  } else if (startIndex < replaceIndex) {
221
188
  // 右移
222
189
  while (startIndex < index) {
223
190
  var _columns$index2 = columns[index],
224
- _code = _columns$index2.code,
225
- _lock = _columns$index2.lock,
226
- _width = _columns$index2.width,
227
- _children = _columns$index2.children;
228
-
191
+ _code = _columns$index2.code,
192
+ _lock = _columns$index2.lock,
193
+ _width = _columns$index2.width,
194
+ _children = _columns$index2.children;
229
195
  if (enableMove({
230
196
  code: _code,
231
197
  lock: _lock
232
198
  })) {
233
199
  cloumnsTranslateData[_code] -= optionColumn.width;
234
-
235
200
  if ((0, _utils.isLeafNode)(columns[index])) {
236
201
  cloumnsTranslateData[optionColumn.code] += _width;
237
202
  } else {
238
203
  cloumnsTranslateData[optionColumn.code] += getColumnWidth(columns[index]);
239
204
  moveAllChildren(_children, cloumnsTranslateData, optionColumn.width, true);
240
205
  }
241
-
242
206
  columnMoved = true;
243
207
  }
244
-
245
208
  index--;
246
209
  }
247
210
  }
248
-
249
211
  window.requestAnimationFrame(function () {
250
212
  pipeline.setStateAtKey(stateKey, {
251
213
  cloumnsTranslateData: cloumnsTranslateData
@@ -253,29 +215,24 @@ function columnDrag() {
253
215
  moveData = [startIndex, replaceIndex];
254
216
  });
255
217
  }
256
-
257
218
  function handleMouseUp(e) {
258
219
  document.body.removeEventListener('mousemove', handleMouseMove);
259
220
  document.body.removeEventListener('mouseup', handleMouseUp);
260
221
  window.removeEventListener('selectstart', disableSelect);
261
-
262
222
  if (_isMoveWhenClicking(mouseDownClientX, mouseDownClientY, e.clientX, e.clientY)) {
263
223
  e.stopPropagation(); // 存在移动就阻止冒泡
264
-
265
224
  currentTarget.addEventListener('click', stopClickPropagation); // 阻止列头点击事件,防止拖动后触发列头过滤事件
266
225
  }
267
-
268
226
  window.requestAnimationFrame(function () {
269
227
  // 取消阻止列头点击事件
270
228
  currentTarget.removeEventListener('click', stopClickPropagation);
271
229
  currentTarget = null;
272
-
273
230
  var _moveData = moveData,
274
- _moveData2 = (0, _slicedToArray2.default)(_moveData, 2),
275
- startIndex = _moveData2[0],
276
- replaceIndex = _moveData2[1];
277
-
278
- var optionColumn = columns[startIndex]; // const move = startIndex > replaceIndex ? 1 : -1
231
+ _moveData2 = (0, _slicedToArray2.default)(_moveData, 2),
232
+ startIndex = _moveData2[0],
233
+ replaceIndex = _moveData2[1];
234
+ var optionColumn = columns[startIndex];
235
+ // const move = startIndex > replaceIndex ? 1 : -1
279
236
  // let index = Math.min(startIndex, replaceIndex)
280
237
  // while (index < Math.max(startIndex, replaceIndex) && index > 0) {
281
238
  // const code = columns[index].code
@@ -283,16 +240,13 @@ function columnDrag() {
283
240
  // cloumnsSortData[code] += move
284
241
  // index += move
285
242
  // }
286
-
287
243
  var index = replaceIndex;
288
-
289
244
  if (startIndex > replaceIndex) {
290
245
  // 左移
291
246
  while (index < startIndex) {
292
247
  var _columns$index3 = columns[index],
293
- code = _columns$index3.code,
294
- lock = _columns$index3.lock;
295
-
248
+ code = _columns$index3.code,
249
+ lock = _columns$index3.lock;
296
250
  if (enableMove({
297
251
  code: code,
298
252
  lock: lock
@@ -301,16 +255,14 @@ function columnDrag() {
301
255
  cloumnsSortData[optionColumn.code] -= 1;
302
256
  columnMoved = true;
303
257
  }
304
-
305
258
  index++;
306
259
  }
307
260
  } else if (startIndex < replaceIndex) {
308
261
  // 右移
309
262
  while (index > startIndex) {
310
263
  var _columns$index4 = columns[index],
311
- _code2 = _columns$index4.code,
312
- _lock2 = _columns$index4.lock;
313
-
264
+ _code2 = _columns$index4.code,
265
+ _lock2 = _columns$index4.lock;
314
266
  if (enableMove({
315
267
  code: _code2,
316
268
  lock: _lock2
@@ -319,28 +271,23 @@ function columnDrag() {
319
271
  cloumnsSortData[optionColumn.code] += 1;
320
272
  columnMoved = true;
321
273
  }
322
-
323
274
  index--;
324
275
  }
325
276
  }
326
-
327
- var onColumnDragStopped = opts.onColumnDragStopped; // 拖拽结束返回列顺序
328
-
277
+ var onColumnDragStopped = opts.onColumnDragStopped;
278
+ // 拖拽结束返回列顺序
329
279
  if (onColumnDragStopped) {
330
280
  var _context;
331
-
332
281
  var isRowDragColumn = function isRowDragColumn(code) {
333
282
  var rowDragColumnKey = pipeline.getFeatureOptions('rowDragColumnKey');
334
283
  return code === rowDragColumnKey;
335
284
  };
336
-
337
285
  var newColumns = (0, _filter.default)(_context = sortColumns(columns, cloumnsSortData)).call(_context, function (column) {
338
286
  return column.code !== _autoFill.FILL_COLUMN_CODE && !isRowDragColumn(column.code) && !(0, _utils.isSelectColumn)(column);
339
- }); // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
340
-
287
+ });
288
+ // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
341
289
  onColumnDragStopped(columnMoved, newColumns);
342
290
  }
343
-
344
291
  pipeline.setStateAtKey(stateKey, {
345
292
  cloumnsTranslateData: null
346
293
  });
@@ -349,7 +296,6 @@ function columnDrag() {
349
296
  currentTarget.style.opacity = '';
350
297
  currentTarget.style.cursor = '';
351
298
  }
352
-
353
299
  var onColumnDragStart = opts.onColumnDragStart;
354
300
  onColumnDragStart && onColumnDragStart(col);
355
301
  document.body.addEventListener('mousemove', handleMouseMove);
@@ -361,45 +307,37 @@ function columnDrag() {
361
307
  }));
362
308
  };
363
309
  }
364
-
365
310
  function enableMove(_ref) {
366
311
  var lock = _ref.lock,
367
- code = _ref.code;
312
+ code = _ref.code;
368
313
  return code && code !== _autoFill.FILL_COLUMN_CODE && !lock;
369
314
  }
370
-
371
315
  function getColumnWidth(col) {
372
316
  if (col.children) {
373
317
  return col.children.reduce(function (acc, col) {
374
318
  return acc + getColumnWidth(col);
375
319
  }, 0);
376
320
  }
377
-
378
321
  return col.width;
379
322
  }
380
-
381
323
  function moveAllChildren(cols, cloumnsTranslateData, width, isMinus) {
382
324
  cols.forEach(function (col) {
383
325
  var _a;
384
-
385
326
  var code = col.code,
386
- children = col.children;
327
+ children = col.children;
387
328
  var movedWidth = (_a = cloumnsTranslateData[code]) !== null && _a !== void 0 ? _a : 0;
388
329
  cloumnsTranslateData[code] = movedWidth + (isMinus ? -width : width);
389
-
390
330
  if (!(0, _utils.isLeafNode)(col)) {
391
331
  moveAllChildren(children, cloumnsTranslateData, width);
392
332
  }
393
333
  });
394
334
  }
395
-
396
335
  function _isMoveWhenClicking(mouseDownClientX, mouseDownClientY, mouseUpClientX, mouseUpClientY) {
397
336
  var xDiff = mouseUpClientX - mouseDownClientX;
398
- var yDiff = mouseUpClientY - mouseDownClientY; // 鼠标点按和松开的偏移量大于5px,认为存在移动
399
-
337
+ var yDiff = mouseUpClientY - mouseDownClientY;
338
+ // 鼠标点按和松开的偏移量大于5px,认为存在移动
400
339
  if (Math.sqrt(xDiff * xDiff + yDiff * yDiff) > 5) {
401
340
  return true;
402
341
  }
403
-
404
342
  return false;
405
343
  }
@@ -1,104 +1,74 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.filter = filter;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
-
14
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
15
-
16
11
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
17
-
18
12
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/map"));
19
-
20
13
  var _map2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
21
-
22
14
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
23
-
24
15
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
25
-
26
16
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
27
-
28
17
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
29
-
30
18
  var _react = _interopRequireDefault(require("react"));
31
-
32
19
  var _classnames = _interopRequireDefault(require("classnames"));
33
-
34
20
  var _internals = require("../../internals");
35
-
36
21
  var _utils = require("../../utils");
37
-
38
22
  var _filter2 = require("./filter");
39
-
40
23
  var _styles = require("../../base/styles");
41
-
42
24
  var stateKey = 'filter';
43
-
44
25
  function filter() {
45
26
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
46
27
  return function step(pipeline) {
47
28
  var _a, _b;
48
-
49
29
  var dataSource = pipeline.getDataSource();
50
30
  var columns = pipeline.getColumns();
51
31
  var filters = opts.filters,
52
- defaultFilters = opts.defaultFilters,
53
- onChangeFilters = opts.onChangeFilters,
54
- keepDataSource = opts.keepDataSource,
55
- mode = opts.mode,
56
- filterIcon = opts.filterIcon,
57
- stopClickEventPropagation = opts.stopClickEventPropagation,
58
- stopESCKeyDownEventPropagation = opts.stopESCKeyDownEventPropagation,
59
- hideFilterPopupHeader = opts.hideFilterPopupHeader,
60
- getPopupParent = opts.getPopupParent;
32
+ defaultFilters = opts.defaultFilters,
33
+ onChangeFilters = opts.onChangeFilters,
34
+ keepDataSource = opts.keepDataSource,
35
+ mode = opts.mode,
36
+ filterIcon = opts.filterIcon,
37
+ stopClickEventPropagation = opts.stopClickEventPropagation,
38
+ stopESCKeyDownEventPropagation = opts.stopESCKeyDownEventPropagation,
39
+ hideFilterPopupHeader = opts.hideFilterPopupHeader,
40
+ getPopupParent = opts.getPopupParent;
61
41
  var inputFilters = (_b = (_a = filters !== null && filters !== void 0 ? filters : pipeline.getStateAtKey(stateKey)) !== null && _a !== void 0 ? _a : defaultFilters) !== null && _b !== void 0 ? _b : [];
62
42
  inputFilters = mode === 'single' ? (0, _slice.default)(inputFilters).call(inputFilters, 0, 1) : inputFilters;
63
43
  var inputFiltersMap = new _map.default((0, _map2.default)(inputFilters).call(inputFilters, function (filterItem) {
64
44
  return [filterItem.code, (0, _extends2.default)({}, filterItem)];
65
45
  }));
66
46
  var localeText = pipeline.ctx.localeText;
67
-
68
47
  function processColumns(columns) {
69
48
  return (0, _map2.default)(columns).call(columns, dfs);
70
-
71
49
  function dfs(col) {
72
50
  var _a, _b, _c, _d, _e;
73
-
74
51
  var result = (0, _extends2.default)({}, col);
75
52
  var filterable = col.code && ((_a = col.features) === null || _a === void 0 ? void 0 : _a.filterable);
76
53
  var filterActive = !!(filterable && (inputFiltersMap === null || inputFiltersMap === void 0 ? void 0 : inputFiltersMap.get(col.code)));
77
-
78
54
  if (filterable) {
79
- var _cx;
80
-
81
55
  var handleFilterChanged = function handleFilterChanged(filterItem) {
82
56
  var nextFiltersMap = new _map.default(inputFiltersMap);
83
57
  var currentFilter = (0, _extends2.default)({
84
58
  code: col.code
85
59
  }, filterItem);
86
-
87
60
  if (filterItem == null) {
88
61
  nextFiltersMap.delete(col.code);
89
62
  } else {
90
63
  if (mode === 'single') {
91
64
  nextFiltersMap.clear();
92
65
  }
93
-
94
66
  nextFiltersMap.set(col.code, currentFilter);
95
67
  }
96
-
97
68
  var nextFilters = (0, _from.default)((0, _values.default)(nextFiltersMap).call(nextFiltersMap));
98
69
  onChangeFilters === null || onChangeFilters === void 0 ? void 0 : onChangeFilters(nextFilters, currentFilter);
99
70
  pipeline.setStateAtKey(stateKey, nextFilters);
100
71
  };
101
-
102
72
  var setFilter = function setFilter(filter, filterCondition) {
103
73
  handleFilterChanged(!filter ? undefined : {
104
74
  code: col.code,
@@ -106,10 +76,8 @@ function filter() {
106
76
  filterCondition: filterCondition
107
77
  });
108
78
  };
109
-
110
79
  var filterPanel = (_b = col.features) === null || _b === void 0 ? void 0 : _b.filterPanel;
111
80
  var colFilterIcon = (_d = (_c = col.features) === null || _c === void 0 ? void 0 : _c.filterIcon) !== null && _d !== void 0 ? _d : filterIcon;
112
-
113
81
  var _Filter = /*#__PURE__*/_react.default.createElement(_filter2.Filter, {
114
82
  key: "".concat(col.code, "_filter"),
115
83
  FilterPanelContent: filterPanel,
@@ -118,54 +86,44 @@ function filter() {
118
86
  setFilterModel: handleFilterChanged,
119
87
  setFilter: setFilter,
120
88
  isFilterActive: filterActive,
121
- className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.tableFilterTrigger, true), (0, _defineProperty2.default)(_cx, "active", filterActive), _cx)),
89
+ className: (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _styles.Classes.tableFilterTrigger, true), "active", filterActive)),
122
90
  stopClickEventPropagation: stopClickEventPropagation,
123
91
  stopESCKeyDownEventPropagation: stopESCKeyDownEventPropagation,
124
92
  hideFilterPopupHeader: hideFilterPopupHeader,
125
93
  getPopupParent: getPopupParent,
126
94
  localeText: localeText
127
95
  });
128
-
129
96
  if (col.renderHeader) {
130
97
  result.title = col.renderHeader(result.title, _Filter);
131
98
  } else {
132
99
  var _context, _context2;
133
-
134
100
  result.title = (0, _concat.default)(_context = []).call(_context, (0, _toConsumableArray2.default)((0, _concat.default)(_context2 = []).call(_context2, (_e = result.title) !== null && _e !== void 0 ? _e : [_internals.internals.safeRenderHeader((0, _extends2.default)({}, col))])), [_Filter]);
135
- } // result.headerCellProps = mergeCellProps(col.headerCellProps, {
101
+ }
102
+ // result.headerCellProps = mergeCellProps(col.headerCellProps, {
136
103
  // style: {
137
104
  // paddingRight: '18px'
138
105
  // }
139
106
  // })
140
-
141
107
  }
142
-
143
108
  if (!(0, _utils.isLeafNode)(col)) {
144
109
  var _context3;
145
-
146
110
  result.children = (0, _map2.default)(_context3 = col.children).call(_context3, dfs);
147
111
  }
148
-
149
112
  return result;
150
113
  }
151
114
  }
152
-
153
115
  function processDataSource(dataSource) {
154
116
  var _context4, _context5;
155
-
156
117
  var filtersKeys = [];
157
118
  inputFiltersMap.forEach(function (value, key) {
158
119
  filtersKeys.push(key);
159
120
  });
160
-
161
121
  if (keepDataSource || filtersKeys.length <= 0) {
162
122
  return dataSource;
163
123
  }
164
-
165
124
  var columns = pipeline.getColumns();
166
125
  var columnsMap = new _map.default((0, _map2.default)(_context4 = (0, _filter.default)(_context5 = (0, _utils.collectNodes)(columns, 'leaf-only')).call(_context5, function (col) {
167
126
  var _a, _b;
168
-
169
127
  return ((_a = col.features) === null || _a === void 0 ? void 0 : _a.filterable) !== false && ((_b = col.features) === null || _b === void 0 ? void 0 : _b.filterable) != null;
170
128
  })).call(_context4, function (col) {
171
129
  return [col.code, col];
@@ -173,15 +131,12 @@ function filter() {
173
131
  var defaultFilterOptionsMap = new _map.default((0, _map2.default)(_filter2.DEFAULT_FILTER_OPTIONS).call(_filter2.DEFAULT_FILTER_OPTIONS, function (item) {
174
132
  return [item.key, (0, _extends2.default)({}, item)];
175
133
  }));
176
-
177
134
  function isMatchedFilterCondition(record) {
178
135
  return filtersKeys.every(function (key) {
179
136
  var _a, _b;
180
-
181
137
  var filterItem = inputFiltersMap.get(key);
182
138
  var filterable = (_b = (_a = columnsMap.get(key)) === null || _a === void 0 ? void 0 : _a.features) === null || _b === void 0 ? void 0 : _b.filterable;
183
139
  var comparisonFn;
184
-
185
140
  if (typeof filterable === 'function') {
186
141
  comparisonFn = filterable;
187
142
  } else if (defaultFilterOptionsMap.get(filterItem.filterCondition)) {
@@ -190,34 +145,26 @@ function filter() {
190
145
  console.warn("\u5217[".concat(key, "]\u672A\u914D\u7F6E\u7B5B\u9009\u51FD\u6570\uFF0C\u8BF7\u8BBE\u7F6E column.features.filterable \u6765\u4F5C\u4E3A\u8BE5\u5217\u7684\u7B5B\u9009\u51FD\u6570, \u76EE\u524D\u4F7F\u7528\u9ED8\u8BA4\u5305\u542B\u7B5B\u9009\u51FD\u6570"));
191
146
  comparisonFn = (0, _filter.default)(defaultFilterOptionsMap.get('contain'));
192
147
  }
193
-
194
148
  return comparisonFn((0, _filter.default)(filterItem), filterItem)(_internals.internals.safeGetValue(columnsMap.get(key), record, -1), record);
195
149
  });
196
150
  }
197
-
198
151
  return layeredFilter(dataSource, isMatchedFilterCondition);
199
152
  }
200
-
201
153
  pipeline.dataSource(processDataSource(dataSource));
202
154
  pipeline.columns(processColumns(columns));
203
155
  return pipeline;
204
156
  };
205
157
  }
206
-
207
158
  function layeredFilter(array, matchFn) {
208
159
  return dfs(array);
209
-
210
160
  function dfs(rows) {
211
161
  var _context6;
212
-
213
162
  var parentMatched = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
214
163
  return (0, _filter.default)(_context6 = (0, _map2.default)(rows).call(rows, function (row) {
215
164
  var currentMatched = matchFn(row);
216
-
217
165
  if ((0, _utils.isLeafNode)(row)) {
218
166
  return (parentMatched || currentMatched) && (0, _extends2.default)({}, row);
219
167
  }
220
-
221
168
  var children = row.children;
222
169
  var rowAfterFilterChildren = (0, _extends2.default)((0, _extends2.default)({}, row), {
223
170
  children: dfs(children, parentMatched || currentMatched)