@reltio/components 1.4.2018 → 1.4.2020

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 (276) hide show
  1. package/BarChart/helpers.d.ts +2 -2
  2. package/BasicTable/IntegrationBasicTable.test.js +6 -18
  3. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +2 -5
  4. package/HierarchyNodeTitle/useEntityDetails.js +3 -0
  5. package/HierarchyNodeTitle/useEntityDetails.test.js +28 -0
  6. package/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +2 -5
  7. package/InlineAttributesPager/components/InlineSimpleAttributesBlock/InlineSimpleAttributesBlock.js +33 -22
  8. package/InlineAttributesPager/components/InlineSimpleAttributesBlock/InlineSimpleAttributesBlock.test.js +120 -112
  9. package/InlineSimpleAttribute/InlineSimpleAttribute.js +1 -1
  10. package/LineChart/helpers.d.ts +2 -2
  11. package/PieChart/PieChart.test.js +4 -0
  12. package/ProfileBandNavigation/useSearchNavigation.js +11 -3
  13. package/ProfileBandNavigation/useSearchNavigation.test.js +176 -0
  14. package/UploadImageDialog/UploadImageDialog.specs.js +1 -4
  15. package/UploadImageDialog/components/TargetBox/TargetBox.js +31 -20
  16. package/UploadImageDialog/components/TargetBox/TargetBox.specs.d.ts +1 -1
  17. package/UploadImageDialog/components/TargetBox/TargetBox.specs.js +57 -16
  18. package/UploadImageDialog/components/TargetBox/styles.js +2 -1
  19. package/VerticalHeadingsTable/DndVerticalHeadingsTable.test.js +114 -0
  20. package/VerticalHeadingsTable/VerticalHeadingsTable.d.ts +2 -1
  21. package/VerticalHeadingsTable/VerticalHeadingsTable.js +10 -13
  22. package/VerticalHeadingsTable/VerticalHeadingsTable.test.js +74 -269
  23. package/VerticalHeadingsTable/components/DndComponent/DndComponent.d.ts +14 -0
  24. package/VerticalHeadingsTable/components/DndComponent/DndComponent.js +96 -0
  25. package/VerticalHeadingsTable/components/DndComponent/helpers.d.ts +3 -0
  26. package/VerticalHeadingsTable/components/DndComponent/helpers.js +35 -0
  27. package/VerticalHeadingsTable/components/DndComponent/index.d.ts +1 -0
  28. package/VerticalHeadingsTable/components/DndComponent/index.js +1 -0
  29. package/VerticalHeadingsTable/components/{TableColumnDragLayer → DndComponent}/styles.d.ts +1 -1
  30. package/VerticalHeadingsTable/components/DndComponent/styles.js +10 -0
  31. package/VerticalHeadingsTable/components/DndComponent/types.d.ts +14 -0
  32. package/VerticalHeadingsTable/components/DndMeasurer/DndMeasurer.d.ts +7 -0
  33. package/VerticalHeadingsTable/components/DndMeasurer/DndMeasurer.js +13 -0
  34. package/VerticalHeadingsTable/components/DndMeasurer/index.d.ts +1 -0
  35. package/VerticalHeadingsTable/components/DndMeasurer/index.js +1 -0
  36. package/VerticalHeadingsTable/components/TableCell/TableCell.d.ts +2 -2
  37. package/VerticalHeadingsTable/components/TableCell/TableCell.js +2 -2
  38. package/VerticalHeadingsTable/components/TableCell/TableCell.test.js +101 -43
  39. package/VerticalHeadingsTable/components/TableCellWithDnd/ColumnDragIndicator.d.ts +10 -0
  40. package/VerticalHeadingsTable/components/TableCellWithDnd/ColumnDragIndicator.js +32 -0
  41. package/VerticalHeadingsTable/components/TableCellWithDnd/TableCellWithDnd.d.ts +2 -4
  42. package/VerticalHeadingsTable/components/TableCellWithDnd/TableCellWithDnd.js +30 -59
  43. package/VerticalHeadingsTable/components/TableCellWithDnd/TableCellWithDnd.test.js +126 -56
  44. package/VerticalHeadingsTable/components/TableColumnDragPreview/TableColumnDragPreview.d.ts +3 -3
  45. package/VerticalHeadingsTable/components/TableColumnDragPreview/TableColumnDragPreview.js +16 -6
  46. package/VerticalHeadingsTable/components/TableHeadCell/RowDragIndicator.d.ts +9 -0
  47. package/VerticalHeadingsTable/components/TableHeadCell/RowDragIndicator.js +30 -0
  48. package/VerticalHeadingsTable/components/TableHeadCell/TableHeadCell.d.ts +4 -4
  49. package/VerticalHeadingsTable/components/TableHeadCell/TableHeadCell.js +3 -4
  50. package/VerticalHeadingsTable/components/TableHeadCell/TableHeadCell.test.js +44 -29
  51. package/VerticalHeadingsTable/components/TableRow/TableRow.d.ts +4 -5
  52. package/VerticalHeadingsTable/components/TableRow/TableRow.js +3 -3
  53. package/VerticalHeadingsTable/components/TableRow/TableRow.test.js +35 -57
  54. package/VerticalHeadingsTable/components/TableRowDragPreview/TableRowDragPreview.d.ts +12 -0
  55. package/VerticalHeadingsTable/components/TableRowDragPreview/TableRowDragPreview.js +16 -0
  56. package/VerticalHeadingsTable/components/TableRowDragPreview/index.d.ts +1 -0
  57. package/VerticalHeadingsTable/components/TableRowDragPreview/index.js +1 -0
  58. package/{cjs/VerticalHeadingsTable/components/TableColumnDragLayer → VerticalHeadingsTable/components/TableRowDragPreview}/styles.d.ts +1 -1
  59. package/VerticalHeadingsTable/components/TableRowDragPreview/styles.js +8 -0
  60. package/VerticalHeadingsTable/components/TableRowWithDnd/TableRowWithDnd.d.ts +2 -8
  61. package/VerticalHeadingsTable/components/TableRowWithDnd/TableRowWithDnd.js +22 -53
  62. package/VerticalHeadingsTable/components/TableRowWithDnd/TableRowWithDnd.test.js +53 -83
  63. package/cjs/BarChart/helpers.d.ts +2 -2
  64. package/cjs/BasicTable/IntegrationBasicTable.test.js +6 -18
  65. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +2 -5
  66. package/cjs/HierarchyNodeTitle/useEntityDetails.js +3 -0
  67. package/cjs/HierarchyNodeTitle/useEntityDetails.test.js +28 -0
  68. package/cjs/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +2 -5
  69. package/cjs/InlineAttributesPager/components/InlineSimpleAttributesBlock/InlineSimpleAttributesBlock.js +55 -21
  70. package/cjs/InlineAttributesPager/components/InlineSimpleAttributesBlock/InlineSimpleAttributesBlock.test.js +120 -135
  71. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.js +1 -1
  72. package/cjs/LineChart/helpers.d.ts +2 -2
  73. package/cjs/PieChart/PieChart.test.js +4 -0
  74. package/cjs/ProfileBandNavigation/useSearchNavigation.js +11 -3
  75. package/cjs/ProfileBandNavigation/useSearchNavigation.test.js +176 -0
  76. package/cjs/UploadImageDialog/UploadImageDialog.specs.js +1 -4
  77. package/cjs/UploadImageDialog/components/TargetBox/TargetBox.js +54 -20
  78. package/cjs/UploadImageDialog/components/TargetBox/TargetBox.specs.d.ts +1 -1
  79. package/cjs/UploadImageDialog/components/TargetBox/TargetBox.specs.js +57 -16
  80. package/cjs/UploadImageDialog/components/TargetBox/styles.js +2 -1
  81. package/cjs/VerticalHeadingsTable/DndVerticalHeadingsTable.test.d.ts +1 -0
  82. package/cjs/VerticalHeadingsTable/DndVerticalHeadingsTable.test.js +119 -0
  83. package/cjs/VerticalHeadingsTable/VerticalHeadingsTable.d.ts +2 -1
  84. package/cjs/VerticalHeadingsTable/VerticalHeadingsTable.js +9 -12
  85. package/cjs/VerticalHeadingsTable/VerticalHeadingsTable.test.js +74 -269
  86. package/cjs/VerticalHeadingsTable/components/DndComponent/DndComponent.d.ts +14 -0
  87. package/cjs/VerticalHeadingsTable/components/DndComponent/DndComponent.js +123 -0
  88. package/cjs/VerticalHeadingsTable/components/DndComponent/helpers.d.ts +3 -0
  89. package/cjs/VerticalHeadingsTable/components/DndComponent/helpers.js +40 -0
  90. package/cjs/VerticalHeadingsTable/components/DndComponent/index.d.ts +1 -0
  91. package/cjs/VerticalHeadingsTable/components/DndComponent/index.js +5 -0
  92. package/{features/crosswalks/CrosswalkDragLayer → cjs/VerticalHeadingsTable/components/DndComponent}/styles.d.ts +1 -1
  93. package/cjs/VerticalHeadingsTable/components/DndComponent/styles.js +13 -0
  94. package/cjs/VerticalHeadingsTable/components/DndComponent/types.d.ts +14 -0
  95. package/cjs/VerticalHeadingsTable/components/DndComponent/types.js +2 -0
  96. package/cjs/VerticalHeadingsTable/components/DndMeasurer/DndMeasurer.d.ts +7 -0
  97. package/cjs/VerticalHeadingsTable/components/DndMeasurer/DndMeasurer.js +40 -0
  98. package/cjs/VerticalHeadingsTable/components/DndMeasurer/index.d.ts +1 -0
  99. package/cjs/VerticalHeadingsTable/components/DndMeasurer/index.js +5 -0
  100. package/cjs/VerticalHeadingsTable/components/TableCell/TableCell.d.ts +2 -2
  101. package/cjs/VerticalHeadingsTable/components/TableCell/TableCell.js +2 -2
  102. package/cjs/VerticalHeadingsTable/components/TableCell/TableCell.test.js +101 -43
  103. package/cjs/VerticalHeadingsTable/components/TableCellWithDnd/ColumnDragIndicator.d.ts +10 -0
  104. package/cjs/VerticalHeadingsTable/components/TableCellWithDnd/ColumnDragIndicator.js +39 -0
  105. package/cjs/VerticalHeadingsTable/components/TableCellWithDnd/TableCellWithDnd.d.ts +2 -4
  106. package/cjs/VerticalHeadingsTable/components/TableCellWithDnd/TableCellWithDnd.js +29 -58
  107. package/cjs/VerticalHeadingsTable/components/TableCellWithDnd/TableCellWithDnd.test.js +128 -58
  108. package/cjs/VerticalHeadingsTable/components/TableColumnDragPreview/TableColumnDragPreview.d.ts +3 -3
  109. package/cjs/VerticalHeadingsTable/components/TableColumnDragPreview/TableColumnDragPreview.js +38 -9
  110. package/cjs/VerticalHeadingsTable/components/TableHeadCell/RowDragIndicator.d.ts +9 -0
  111. package/cjs/VerticalHeadingsTable/components/TableHeadCell/RowDragIndicator.js +37 -0
  112. package/cjs/VerticalHeadingsTable/components/TableHeadCell/TableHeadCell.d.ts +4 -4
  113. package/cjs/VerticalHeadingsTable/components/TableHeadCell/TableHeadCell.js +3 -4
  114. package/cjs/VerticalHeadingsTable/components/TableHeadCell/TableHeadCell.test.js +43 -51
  115. package/cjs/VerticalHeadingsTable/components/TableRow/TableRow.d.ts +4 -5
  116. package/cjs/VerticalHeadingsTable/components/TableRow/TableRow.js +3 -3
  117. package/cjs/VerticalHeadingsTable/components/TableRow/TableRow.test.js +35 -57
  118. package/cjs/VerticalHeadingsTable/components/TableRowDragPreview/TableRowDragPreview.d.ts +12 -0
  119. package/cjs/VerticalHeadingsTable/components/TableRowDragPreview/TableRowDragPreview.js +42 -0
  120. package/cjs/VerticalHeadingsTable/components/TableRowDragPreview/index.d.ts +1 -0
  121. package/cjs/VerticalHeadingsTable/components/TableRowDragPreview/index.js +5 -0
  122. package/cjs/{features/crosswalks/CrosswalkDragLayer → VerticalHeadingsTable/components/TableRowDragPreview}/styles.d.ts +1 -1
  123. package/cjs/VerticalHeadingsTable/components/TableRowDragPreview/styles.js +11 -0
  124. package/cjs/VerticalHeadingsTable/components/TableRowWithDnd/TableRowWithDnd.d.ts +2 -8
  125. package/cjs/VerticalHeadingsTable/components/TableRowWithDnd/TableRowWithDnd.js +21 -52
  126. package/cjs/VerticalHeadingsTable/components/TableRowWithDnd/TableRowWithDnd.test.js +55 -85
  127. package/cjs/contexts/CrosswalksDisplayContext/index.d.ts +2 -2
  128. package/cjs/contexts/CrosswalksDisplayContext/index.js +6 -2
  129. package/cjs/features/crosswalks/AttributesTable/AttributesTable.d.ts +3 -1
  130. package/cjs/features/crosswalks/AttributesTable/AttributesTable.js +2 -2
  131. package/cjs/features/crosswalks/AttributesTable/AttributesTable.test.js +17 -10
  132. package/cjs/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.d.ts +3 -2
  133. package/cjs/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.js +13 -2
  134. package/cjs/features/crosswalks/CrosswalkDndComponent/CrosswalkDndComponent.d.ts +8 -0
  135. package/cjs/features/crosswalks/CrosswalkDndComponent/CrosswalkDndComponent.js +51 -0
  136. package/cjs/features/crosswalks/CrosswalkDndComponent/index.d.ts +1 -0
  137. package/cjs/features/crosswalks/CrosswalkDndComponent/index.js +5 -0
  138. package/cjs/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/CrosswalkDragPreview.js +16 -5
  139. package/cjs/features/crosswalks/CrosswalkDragPreview/CrosswalkDragPreview.test.d.ts +1 -0
  140. package/cjs/features/crosswalks/CrosswalkDragPreview/CrosswalkDragPreview.test.js +97 -0
  141. package/{features/crosswalks/CrosswalkDragLayer/components → cjs/features/crosswalks}/CrosswalkDragPreview/styles.d.ts +1 -1
  142. package/cjs/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/styles.js +6 -1
  143. package/cjs/features/crosswalks/CrosswalkRow/CrosswalkRow.js +25 -16
  144. package/cjs/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +7 -33
  145. package/cjs/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.d.ts +1 -0
  146. package/cjs/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +134 -0
  147. package/cjs/features/crosswalks/CrosswalkRow/styles.d.ts +1 -1
  148. package/cjs/features/crosswalks/CrosswalkRow/styles.js +10 -1
  149. package/cjs/features/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.test.js +0 -1
  150. package/cjs/features/crosswalks/hooks/useDraggingCrosswalk.d.ts +6 -0
  151. package/cjs/features/crosswalks/hooks/useDraggingCrosswalk.js +19 -0
  152. package/cjs/features/crosswalks/hooks/useModifiedEntity.js +6 -6
  153. package/cjs/features/crosswalks/index.d.ts +1 -1
  154. package/cjs/features/crosswalks/index.js +3 -3
  155. package/cjs/hooks/useDndBasicTableScrollModifier/index.d.ts +1 -0
  156. package/cjs/hooks/useDndBasicTableScrollModifier/index.js +5 -0
  157. package/cjs/hooks/useDndBasicTableScrollModifier/useDndBasicTableScrollModifier.d.ts +10 -0
  158. package/cjs/hooks/useDndBasicTableScrollModifier/useDndBasicTableScrollModifier.js +57 -0
  159. package/cjs/index.d.ts +2 -1
  160. package/cjs/index.js +3 -1
  161. package/cjs/test-utils/dndKit/DndContext.d.ts +12 -0
  162. package/cjs/test-utils/dndKit/DndContext.js +5 -0
  163. package/cjs/test-utils/dndKit/DndContextComponent.d.ts +5 -0
  164. package/cjs/test-utils/dndKit/DndContextComponent.js +97 -0
  165. package/cjs/test-utils/dndKit/DndMonitorContext.d.ts +2 -0
  166. package/cjs/test-utils/dndKit/DndMonitorContext.js +5 -0
  167. package/cjs/test-utils/dndKit/DragOverlay.d.ts +5 -0
  168. package/cjs/test-utils/dndKit/DragOverlay.js +14 -0
  169. package/cjs/test-utils/dndKit/index.d.ts +32 -0
  170. package/cjs/test-utils/dndKit/index.js +22 -0
  171. package/cjs/test-utils/dndKit/type.d.ts +17 -0
  172. package/cjs/test-utils/dndKit/type.js +2 -0
  173. package/cjs/test-utils/dndKit/useDndContext.d.ts +8 -0
  174. package/cjs/test-utils/dndKit/useDndContext.js +13 -0
  175. package/cjs/test-utils/dndKit/useDndMonitor.d.ts +2 -0
  176. package/cjs/test-utils/dndKit/useDndMonitor.js +13 -0
  177. package/cjs/test-utils/dndKit/useDndMonitorProvider.d.ts +1 -0
  178. package/cjs/test-utils/dndKit/useDndMonitorProvider.js +17 -0
  179. package/cjs/test-utils/dndKit/useDraggable.d.ts +12 -0
  180. package/cjs/test-utils/dndKit/useDraggable.js +43 -0
  181. package/cjs/test-utils/dndKit/useDroppable.d.ts +4 -0
  182. package/cjs/test-utils/dndKit/useDroppable.js +45 -0
  183. package/cjs/types/basicTable.d.ts +4 -0
  184. package/contexts/CrosswalksDisplayContext/index.d.ts +2 -2
  185. package/contexts/CrosswalksDisplayContext/index.js +6 -2
  186. package/features/crosswalks/AttributesTable/AttributesTable.d.ts +3 -1
  187. package/features/crosswalks/AttributesTable/AttributesTable.js +2 -2
  188. package/features/crosswalks/AttributesTable/AttributesTable.test.js +17 -10
  189. package/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.d.ts +3 -2
  190. package/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.js +13 -2
  191. package/features/crosswalks/CrosswalkDndComponent/CrosswalkDndComponent.d.ts +8 -0
  192. package/features/crosswalks/CrosswalkDndComponent/CrosswalkDndComponent.js +24 -0
  193. package/features/crosswalks/CrosswalkDndComponent/index.d.ts +1 -0
  194. package/features/crosswalks/CrosswalkDndComponent/index.js +1 -0
  195. package/features/crosswalks/CrosswalkDragPreview/CrosswalkDragPreview.js +30 -0
  196. package/features/crosswalks/CrosswalkDragPreview/CrosswalkDragPreview.test.d.ts +1 -0
  197. package/features/crosswalks/CrosswalkDragPreview/CrosswalkDragPreview.test.js +69 -0
  198. package/{cjs/features/crosswalks/CrosswalkDragLayer/components → features/crosswalks}/CrosswalkDragPreview/styles.d.ts +1 -1
  199. package/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/styles.js +6 -1
  200. package/features/crosswalks/CrosswalkRow/CrosswalkRow.js +25 -16
  201. package/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +7 -33
  202. package/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.d.ts +1 -0
  203. package/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +129 -0
  204. package/features/crosswalks/CrosswalkRow/styles.d.ts +1 -1
  205. package/features/crosswalks/CrosswalkRow/styles.js +10 -1
  206. package/features/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.test.js +0 -1
  207. package/features/crosswalks/hooks/useDraggingCrosswalk.d.ts +6 -0
  208. package/features/crosswalks/hooks/useDraggingCrosswalk.js +15 -0
  209. package/features/crosswalks/hooks/useModifiedEntity.js +6 -6
  210. package/features/crosswalks/index.d.ts +1 -1
  211. package/features/crosswalks/index.js +1 -1
  212. package/hooks/useDndBasicTableScrollModifier/index.d.ts +1 -0
  213. package/hooks/useDndBasicTableScrollModifier/index.js +1 -0
  214. package/hooks/useDndBasicTableScrollModifier/useDndBasicTableScrollModifier.d.ts +10 -0
  215. package/hooks/useDndBasicTableScrollModifier/useDndBasicTableScrollModifier.js +53 -0
  216. package/index.d.ts +2 -1
  217. package/index.js +1 -0
  218. package/package.json +3 -3
  219. package/test-utils/dndKit/DndContext.d.ts +12 -0
  220. package/test-utils/dndKit/DndContext.js +2 -0
  221. package/test-utils/dndKit/DndContextComponent.d.ts +5 -0
  222. package/test-utils/dndKit/DndContextComponent.js +70 -0
  223. package/test-utils/dndKit/DndMonitorContext.d.ts +2 -0
  224. package/test-utils/dndKit/DndMonitorContext.js +2 -0
  225. package/test-utils/dndKit/DragOverlay.d.ts +5 -0
  226. package/test-utils/dndKit/DragOverlay.js +7 -0
  227. package/test-utils/dndKit/index.d.ts +32 -0
  228. package/test-utils/dndKit/index.js +19 -0
  229. package/test-utils/dndKit/type.d.ts +17 -0
  230. package/test-utils/dndKit/type.js +1 -0
  231. package/test-utils/dndKit/useDndContext.d.ts +8 -0
  232. package/test-utils/dndKit/useDndContext.js +9 -0
  233. package/test-utils/dndKit/useDndMonitor.d.ts +2 -0
  234. package/test-utils/dndKit/useDndMonitor.js +9 -0
  235. package/test-utils/dndKit/useDndMonitorProvider.d.ts +1 -0
  236. package/test-utils/dndKit/useDndMonitorProvider.js +13 -0
  237. package/test-utils/dndKit/useDraggable.d.ts +12 -0
  238. package/test-utils/dndKit/useDraggable.js +39 -0
  239. package/test-utils/dndKit/useDroppable.d.ts +4 -0
  240. package/test-utils/dndKit/useDroppable.js +41 -0
  241. package/types/basicTable.d.ts +4 -0
  242. package/VerticalHeadingsTable/components/TableColumnDragLayer/TableColumnDragLayer.d.ts +0 -6
  243. package/VerticalHeadingsTable/components/TableColumnDragLayer/TableColumnDragLayer.js +0 -23
  244. package/VerticalHeadingsTable/components/TableColumnDragLayer/helpers.d.ts +0 -6
  245. package/VerticalHeadingsTable/components/TableColumnDragLayer/helpers.js +0 -11
  246. package/VerticalHeadingsTable/components/TableColumnDragLayer/index.d.ts +0 -1
  247. package/VerticalHeadingsTable/components/TableColumnDragLayer/index.js +0 -1
  248. package/VerticalHeadingsTable/components/TableColumnDragLayer/styles.js +0 -13
  249. package/cjs/VerticalHeadingsTable/components/TableColumnDragLayer/TableColumnDragLayer.d.ts +0 -6
  250. package/cjs/VerticalHeadingsTable/components/TableColumnDragLayer/TableColumnDragLayer.js +0 -50
  251. package/cjs/VerticalHeadingsTable/components/TableColumnDragLayer/helpers.d.ts +0 -6
  252. package/cjs/VerticalHeadingsTable/components/TableColumnDragLayer/helpers.js +0 -15
  253. package/cjs/VerticalHeadingsTable/components/TableColumnDragLayer/index.d.ts +0 -1
  254. package/cjs/VerticalHeadingsTable/components/TableColumnDragLayer/index.js +0 -5
  255. package/cjs/VerticalHeadingsTable/components/TableColumnDragLayer/styles.js +0 -16
  256. package/cjs/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.d.ts +0 -2
  257. package/cjs/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.js +0 -51
  258. package/cjs/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.js +0 -93
  259. package/cjs/features/crosswalks/CrosswalkDragLayer/index.d.ts +0 -1
  260. package/cjs/features/crosswalks/CrosswalkDragLayer/index.js +0 -5
  261. package/cjs/features/crosswalks/CrosswalkDragLayer/styles.js +0 -17
  262. package/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.d.ts +0 -2
  263. package/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.js +0 -25
  264. package/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.js +0 -65
  265. package/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.js +0 -19
  266. package/features/crosswalks/CrosswalkDragLayer/index.d.ts +0 -1
  267. package/features/crosswalks/CrosswalkDragLayer/index.js +0 -1
  268. package/features/crosswalks/CrosswalkDragLayer/styles.js +0 -14
  269. /package/{cjs/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.d.ts → VerticalHeadingsTable/DndVerticalHeadingsTable.test.d.ts} +0 -0
  270. /package/{features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.d.ts → VerticalHeadingsTable/components/DndComponent/types.js} +0 -0
  271. /package/cjs/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/CrosswalkDragPreview.d.ts +0 -0
  272. /package/cjs/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/index.d.ts +0 -0
  273. /package/cjs/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/index.js +0 -0
  274. /package/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/CrosswalkDragPreview.d.ts +0 -0
  275. /package/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/index.d.ts +0 -0
  276. /package/features/crosswalks/{CrosswalkDragLayer/components/CrosswalkDragPreview → CrosswalkDragPreview}/index.js +0 -0
@@ -534,6 +534,94 @@ describe('useSearchNavigation behavior', function () {
534
534
  }
535
535
  });
536
536
  }); });
537
+ it('should catch and handle checkEntity error when checking previous entity', function () { return __awaiter(void 0, void 0, void 0, function () {
538
+ var warnSpy, _a, result, waitFor;
539
+ return __generator(this, function (_b) {
540
+ switch (_b.label) {
541
+ case 0:
542
+ warnSpy = jest.spyOn(global.console, 'warn');
543
+ searchProvider.checkEntity.mockRejectedValue({ errorCode: 403, errorMessage: 'Access is denied' });
544
+ _a = setUp(), result = _a.result, waitFor = _a.waitFor;
545
+ act(function () {
546
+ result.current.onPrev();
547
+ });
548
+ return [4 /*yield*/, waitFor(function () { return expect(result.current.isPrevDisabled).toBe(false); })];
549
+ case 1:
550
+ _b.sent();
551
+ expect(warnSpy).toHaveBeenCalledWith("Can't load previous page of search", {
552
+ errorCode: 403,
553
+ errorMessage: 'Access is denied'
554
+ });
555
+ warnSpy.mockRestore();
556
+ return [2 /*return*/];
557
+ }
558
+ });
559
+ }); });
560
+ it('should catch and handle requestTotal error when requesting previous entities page', function () { return __awaiter(void 0, void 0, void 0, function () {
561
+ var warnSpy, searchNavigationData, entity, mdmValues, _a, result, waitFor;
562
+ return __generator(this, function (_b) {
563
+ switch (_b.label) {
564
+ case 0:
565
+ warnSpy = jest.spyOn(global.console, 'warn');
566
+ searchProvider.requestTotal.mockRejectedValue({ errorCode: 403, errorMessage: 'Access is denied' });
567
+ searchNavigationData = {
568
+ uri: 'uri3',
569
+ cache: ['uri3', 'uri4', 'uri5'],
570
+ index: 3,
571
+ total: 10,
572
+ tenant: 't1'
573
+ };
574
+ entity = { uri: 'uri3' };
575
+ mdmValues = __assign(__assign({}, defaultMdmValues), { searchNavigationData: searchNavigationData, entity: entity });
576
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor;
577
+ act(function () {
578
+ result.current.onPrev();
579
+ });
580
+ return [4 /*yield*/, waitFor(function () { return expect(result.current.isPrevDisabled).toBe(false); })];
581
+ case 1:
582
+ _b.sent();
583
+ expect(warnSpy).toHaveBeenCalledWith('Failed to load total count of entities', {
584
+ errorCode: 403,
585
+ errorMessage: 'Access is denied'
586
+ });
587
+ warnSpy.mockRestore();
588
+ return [2 /*return*/];
589
+ }
590
+ });
591
+ }); });
592
+ it('should catch and handle requestEntities error when requesting previous entities page', function () { return __awaiter(void 0, void 0, void 0, function () {
593
+ var warnSpy, searchNavigationData, entity, mdmValues, _a, result, waitFor;
594
+ return __generator(this, function (_b) {
595
+ switch (_b.label) {
596
+ case 0:
597
+ warnSpy = jest.spyOn(global.console, 'warn');
598
+ searchProvider.requestTotal.mockResolvedValue(11);
599
+ searchProvider.requestEntities.mockRejectedValue({ errorCode: 403, errorMessage: 'Access is denied' });
600
+ searchNavigationData = {
601
+ uri: 'uri3',
602
+ cache: ['uri3', 'uri4', 'uri5'],
603
+ index: 5,
604
+ total: 10,
605
+ tenant: 't1'
606
+ };
607
+ entity = { uri: 'uri3' };
608
+ mdmValues = __assign(__assign({}, defaultMdmValues), { searchNavigationData: searchNavigationData, entity: entity });
609
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor;
610
+ act(function () {
611
+ result.current.onPrev();
612
+ });
613
+ return [4 /*yield*/, waitFor(function () { return expect(result.current.isPrevDisabled).toBe(false); })];
614
+ case 1:
615
+ _b.sent();
616
+ expect(warnSpy).toHaveBeenCalledWith("Can't load previous page of search", {
617
+ errorCode: 403,
618
+ errorMessage: 'Access is denied'
619
+ });
620
+ warnSpy.mockRestore();
621
+ return [2 /*return*/];
622
+ }
623
+ });
624
+ }); });
537
625
  });
538
626
  describe('onNext behavior', function () {
539
627
  it('should do nothing if cache or uri in searchNavigationData are not specified', function () {
@@ -901,5 +989,93 @@ describe('useSearchNavigation behavior', function () {
901
989
  }
902
990
  });
903
991
  }); });
992
+ it('should catch and handle checkEntity error when checking next entity', function () { return __awaiter(void 0, void 0, void 0, function () {
993
+ var warnSpy, _a, result, waitFor;
994
+ return __generator(this, function (_b) {
995
+ switch (_b.label) {
996
+ case 0:
997
+ warnSpy = jest.spyOn(global.console, 'warn');
998
+ searchProvider.checkEntity.mockRejectedValue({ errorCode: 403, errorMessage: 'Access is denied' });
999
+ _a = setUp(), result = _a.result, waitFor = _a.waitFor;
1000
+ act(function () {
1001
+ result.current.onNext();
1002
+ });
1003
+ return [4 /*yield*/, waitFor(function () { return expect(result.current.isNextDisabled).toBe(false); })];
1004
+ case 1:
1005
+ _b.sent();
1006
+ expect(warnSpy).toHaveBeenCalledWith("Can't load next page of search", {
1007
+ errorCode: 403,
1008
+ errorMessage: 'Access is denied'
1009
+ });
1010
+ warnSpy.mockRestore();
1011
+ return [2 /*return*/];
1012
+ }
1013
+ });
1014
+ }); });
1015
+ it('should catch and handle requestTotal error when requesting next entities page', function () { return __awaiter(void 0, void 0, void 0, function () {
1016
+ var warnSpy, searchNavigationData, entity, mdmValues, _a, result, waitFor;
1017
+ return __generator(this, function (_b) {
1018
+ switch (_b.label) {
1019
+ case 0:
1020
+ warnSpy = jest.spyOn(global.console, 'warn');
1021
+ searchProvider.requestTotal.mockRejectedValue({ errorCode: 403, errorMessage: 'Access is denied' });
1022
+ searchNavigationData = {
1023
+ uri: 'uri5',
1024
+ cache: ['uri3', 'uri4', 'uri5'],
1025
+ index: 5,
1026
+ total: 10,
1027
+ tenant: 't1'
1028
+ };
1029
+ entity = { uri: 'uri5' };
1030
+ mdmValues = __assign(__assign({}, defaultMdmValues), { searchNavigationData: searchNavigationData, entity: entity });
1031
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor;
1032
+ act(function () {
1033
+ result.current.onNext();
1034
+ });
1035
+ return [4 /*yield*/, waitFor(function () { return expect(result.current.isNextDisabled).toBe(false); })];
1036
+ case 1:
1037
+ _b.sent();
1038
+ expect(warnSpy).toHaveBeenCalledWith('Failed to load total count of entities', {
1039
+ errorCode: 403,
1040
+ errorMessage: 'Access is denied'
1041
+ });
1042
+ warnSpy.mockRestore();
1043
+ return [2 /*return*/];
1044
+ }
1045
+ });
1046
+ }); });
1047
+ it('should catch and handle requestEntities error when requesting next entities page', function () { return __awaiter(void 0, void 0, void 0, function () {
1048
+ var warnSpy, searchNavigationData, entity, mdmValues, _a, result, waitFor;
1049
+ return __generator(this, function (_b) {
1050
+ switch (_b.label) {
1051
+ case 0:
1052
+ warnSpy = jest.spyOn(global.console, 'warn');
1053
+ searchProvider.requestTotal.mockResolvedValue(11);
1054
+ searchProvider.requestEntities.mockRejectedValue({ errorCode: 403, errorMessage: 'Access is denied' });
1055
+ searchNavigationData = {
1056
+ uri: 'uri5',
1057
+ cache: ['uri3', 'uri4', 'uri5'],
1058
+ index: 5,
1059
+ total: 10,
1060
+ tenant: 't1'
1061
+ };
1062
+ entity = { uri: 'uri5' };
1063
+ mdmValues = __assign(__assign({}, defaultMdmValues), { searchNavigationData: searchNavigationData, entity: entity });
1064
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor;
1065
+ act(function () {
1066
+ result.current.onNext();
1067
+ });
1068
+ return [4 /*yield*/, waitFor(function () { return expect(result.current.isNextDisabled).toBe(false); })];
1069
+ case 1:
1070
+ _b.sent();
1071
+ expect(warnSpy).toHaveBeenCalledWith("Can't load next page of search", {
1072
+ errorCode: 403,
1073
+ errorMessage: 'Access is denied'
1074
+ });
1075
+ warnSpy.mockRestore();
1076
+ return [2 /*return*/];
1077
+ }
1078
+ });
1079
+ }); });
904
1080
  });
905
1081
  });
@@ -48,8 +48,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
48
48
  import React from 'react';
49
49
  import { render, screen, act } from '@testing-library/react';
50
50
  import userEvent from '@testing-library/user-event';
51
- import TestBackend from 'react-dnd-test-backend';
52
- import { DndProvider } from 'react-dnd';
53
51
  import { uploadImage } from '@reltio/mdm-sdk';
54
52
  import { MAX_IMAGE_SIZE } from './constants';
55
53
  import { UploadImageDialog } from './UploadImageDialog';
@@ -68,8 +66,7 @@ describe('UploadImageDialog tests', function () {
68
66
  var props = { onClose: onClose, onUpload: onUpload, open: true };
69
67
  var Providers = function (_a) {
70
68
  var children = _a.children;
71
- return (React.createElement(MdmModuleProvider, { values: { imageServicePath: imageServicePath, environment: environment, tenant: tenant } },
72
- React.createElement(DndProvider, { backend: TestBackend }, children)));
69
+ return (React.createElement(MdmModuleProvider, { values: { imageServicePath: imageServicePath, environment: environment, tenant: tenant } }, children));
73
70
  };
74
71
  return __assign({ user: user }, render(React.createElement(UploadImageDialog, __assign({}, props)), { wrapper: Providers }));
75
72
  };
@@ -1,34 +1,45 @@
1
- import React from 'react';
1
+ import React, { useCallback, useState } from 'react';
2
2
  import classnames from 'classnames';
3
3
  import i18n from 'ui-i18n';
4
- import { useDrop } from 'react-dnd';
5
- import { NativeTypes } from 'react-dnd-html5-backend';
6
4
  import Typography from '@mui/material/Typography';
7
5
  import { SelectImageButton } from '../SelectImageButton';
8
6
  import UploadIcon from '../../../icons/UploadIcon';
9
7
  import { MAX_IMAGE_SIZE } from '../../constants';
10
8
  import { useStyles } from './styles';
9
+ var ACCEPTABLE_FILE_TYPE = 'Files';
11
10
  export var TargetBox = function (_a) {
12
11
  var _b;
13
12
  var onAppendFile = _a.onAppendFile, className = _a.className;
14
13
  var styles = useStyles();
15
- var _c = useDrop({
16
- accept: [NativeTypes.FILE],
17
- drop: function (item) {
18
- if (item) {
19
- // TODO remove after update react-dnd
20
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21
- // @ts-ignore
22
- onAppendFile(item.files[0]);
23
- }
24
- },
25
- collect: function (monitor) { return ({
26
- isOver: monitor.isOver(),
27
- canDrop: monitor.canDrop()
28
- }); }
29
- }), _d = _c[0], canDrop = _d.canDrop, isOver = _d.isOver, drop = _c[1];
30
- var isActive = canDrop && isOver;
31
- return (React.createElement("div", { ref: drop, className: classnames(styles.root, (_b = {}, _b[styles.isActive] = isActive, _b), className) },
14
+ var _c = useState(false), isActive = _c[0], setIsActive = _c[1];
15
+ var handleDragOver = useCallback(function (e) {
16
+ e.preventDefault();
17
+ e.stopPropagation();
18
+ var filesType = e.dataTransfer.types[0];
19
+ var isValidType = filesType === ACCEPTABLE_FILE_TYPE;
20
+ e.dataTransfer.dropEffect = isValidType ? 'copy' : 'none';
21
+ setIsActive(isValidType);
22
+ }, []);
23
+ var handleDragLeave = useCallback(function (e) {
24
+ e.preventDefault();
25
+ e.stopPropagation();
26
+ var relatedTarget = e.relatedTarget;
27
+ var isLeave = relatedTarget && !e.currentTarget.contains(relatedTarget);
28
+ if (isLeave || !relatedTarget) {
29
+ setIsActive(false);
30
+ }
31
+ }, []);
32
+ var handleDrop = useCallback(function (e) {
33
+ e.preventDefault();
34
+ e.stopPropagation();
35
+ setIsActive(false);
36
+ var filesType = e.dataTransfer.types[0];
37
+ if (filesType === ACCEPTABLE_FILE_TYPE) {
38
+ var file = e.dataTransfer.files[0];
39
+ onAppendFile(file);
40
+ }
41
+ }, [onAppendFile]);
42
+ return (React.createElement("div", { className: classnames(styles.root, (_b = {}, _b[styles.isActive] = isActive, _b), className), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop },
32
43
  React.createElement(UploadIcon, { className: styles.icon }),
33
44
  React.createElement(Typography, { className: styles.title }, i18n.text('Drag an image here')),
34
45
  React.createElement(Typography, { className: styles.description }, i18n.text('Acceptable image types would include JPG, PNG, TIFF, GIF, BMP. Maximum image size: ${MAX_IMAGE_SIZE}Mb', {
@@ -1 +1 @@
1
- export {};
1
+ import '@testing-library/jest-dom';
@@ -1,22 +1,63 @@
1
1
  import React from 'react';
2
- import { mount } from 'enzyme';
3
- import { DndProvider } from 'react-dnd';
4
- import TestBackend from 'react-dnd-test-backend';
5
- import { SelectImageButton } from '../SelectImageButton';
2
+ import { render, fireEvent } from '@testing-library/react';
3
+ import '@testing-library/jest-dom';
6
4
  import { TargetBox } from './TargetBox';
7
- describe('TargetBox tests', function () {
8
- var onAppendFile;
9
- beforeEach(function () {
10
- onAppendFile = jest.fn();
5
+ var mockOnAppendFile = jest.fn();
6
+ var setUp = function () {
7
+ return render(React.createElement(TargetBox, { onAppendFile: mockOnAppendFile }));
8
+ };
9
+ describe('TargetBox', function () {
10
+ afterEach(function () {
11
+ jest.clearAllMocks();
11
12
  });
12
- it('should not pass .isActive className to root element if dnd zone is not active', function () {
13
- var component = mount(React.createElement(DndProvider, { backend: TestBackend },
14
- React.createElement(TargetBox, { onAppendFile: onAppendFile })));
15
- expect(component.find('.root').prop('className')).toBe('root');
13
+ it('should renders well', function () {
14
+ var getByText = setUp().getByText;
15
+ expect(getByText('Drag an image here')).toBeInTheDocument();
16
16
  });
17
- it('should onAppendFile prop correctly to SelectImageButton', function () {
18
- var component = mount(React.createElement(DndProvider, { backend: TestBackend },
19
- React.createElement(TargetBox, { onAppendFile: onAppendFile })));
20
- expect(component.find(SelectImageButton).prop('onAppendFile')).toEqual(onAppendFile);
17
+ it('should activates drag state on drag over with acceptable file type', function () {
18
+ var container = setUp().container;
19
+ var dropZone = container.firstChild;
20
+ fireEvent.dragOver(dropZone, {
21
+ dataTransfer: { types: ['Files'], dropEffect: 'copy' }
22
+ });
23
+ expect(dropZone).toHaveClass('isActive');
24
+ });
25
+ it('should does not activate drag state with unacceptable file type', function () {
26
+ var container = setUp().container;
27
+ var dropZone = container.firstChild;
28
+ fireEvent.dragOver(dropZone, {
29
+ dataTransfer: { types: ['Text'], dropEffect: 'none' }
30
+ });
31
+ expect(dropZone).not.toHaveClass('isActive');
32
+ });
33
+ it('should deactivates drag state on drag leave', function () {
34
+ var container = setUp().container;
35
+ var dropZone = container.firstChild;
36
+ fireEvent.dragOver(dropZone, { dataTransfer: { types: ['Files'] } });
37
+ expect(dropZone).toHaveClass('isActive');
38
+ fireEvent.dragLeave(dropZone);
39
+ expect(dropZone).not.toHaveClass('isActive');
40
+ });
41
+ it('should calls onAppendFile with the dropped file', function () {
42
+ var file = new File(['test content'], 'test.png', { type: 'image/png' });
43
+ var container = setUp().container;
44
+ var dropZone = container.firstChild;
45
+ fireEvent.drop(dropZone, {
46
+ dataTransfer: {
47
+ files: [file],
48
+ types: ['Files']
49
+ }
50
+ });
51
+ expect(mockOnAppendFile).toHaveBeenCalledWith(file);
52
+ });
53
+ it('should does not call onAppendFile if dropped item is not of file type', function () {
54
+ var container = setUp().container;
55
+ var dropZone = container.firstChild;
56
+ fireEvent.drop(dropZone, {
57
+ dataTransfer: {
58
+ types: ['Text']
59
+ }
60
+ });
61
+ expect(mockOnAppendFile).not.toHaveBeenCalled();
21
62
  });
22
63
  });
@@ -9,7 +9,8 @@ export var useStyles = makeStyles(function (theme) { return ({
9
9
  icon: {
10
10
  width: '190px',
11
11
  height: '190px',
12
- marginBottom: '24px'
12
+ marginBottom: '24px',
13
+ pointerEvents: 'none'
13
14
  },
14
15
  title: {
15
16
  marginBottom: '8px',
@@ -0,0 +1,114 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ import React from 'react';
22
+ import { fireEvent, render, screen } from '@testing-library/react';
23
+ import { mockDndKit } from '../test-utils/dndKit';
24
+ jest.mock('@dnd-kit/core', function () { return mockDndKit; });
25
+ import VerticalHeadingsTable from './VerticalHeadingsTable';
26
+ var setUp = function (props) {
27
+ var containerRef = {
28
+ current: {
29
+ clientHeight: 500,
30
+ clientWidth: 500,
31
+ getBoundingClientRect: function () {
32
+ return {
33
+ top: 0,
34
+ left: 0
35
+ };
36
+ }
37
+ }
38
+ };
39
+ return render(React.createElement(VerticalHeadingsTable, __assign({ containerRef: containerRef }, props)));
40
+ };
41
+ describe('VerticalHeadingsTable drag and drop tests', function () {
42
+ var rowsData = [
43
+ { id: 'entityCard', label: '' },
44
+ { id: 'matchMethod', label: 'Match Method' },
45
+ { id: 'workflowCard', label: '' },
46
+ { id: 'attributes.FirstName', label: 'First Name' },
47
+ { id: 'attributes.LastName', label: 'Last Name' },
48
+ { id: 'attributes.Int', label: 'Int' }
49
+ ];
50
+ var columnsData = __spreadArray([], new Array(3), true).map(function (_, index) { return ({
51
+ entityCard: "entityCard-".concat(index),
52
+ matchMethod: "matchMethod-".concat(index),
53
+ workflowCard: "workflowCard-".concat(index),
54
+ 'attributes.FirstName': "attributes.FirstName-".concat(index),
55
+ 'attributes.LastName': "attributes.LastName-".concat(index),
56
+ 'attributes.Int': "attributes.Int-".concat(index),
57
+ id: "entities/".concat(index),
58
+ isDraggable: index !== 0
59
+ }); });
60
+ var defaultProps = {
61
+ theadRowsNumber: 2,
62
+ rowsData: rowsData,
63
+ columnsData: columnsData,
64
+ onMoveColumn: jest.fn(),
65
+ onDropColumn: jest.fn(),
66
+ onMoveRow: jest.fn(),
67
+ onDropRow: jest.fn()
68
+ };
69
+ it('should reorder draggable columns correctly', function () {
70
+ setUp(defaultProps);
71
+ var from = screen.getByText(columnsData[1].entityCard);
72
+ var to = screen.getByText(columnsData[2].entityCard);
73
+ fireEvent.mouseDown(from.firstChild);
74
+ fireEvent.mouseOver(to.parentNode);
75
+ fireEvent.mouseUp(from.firstChild);
76
+ expect(defaultProps.onMoveColumn).toHaveBeenCalledWith(columnsData[1].id, columnsData[2].id);
77
+ expect(defaultProps.onDropColumn).toHaveBeenCalled();
78
+ });
79
+ it('should reorder draggable rows correctly', function () {
80
+ setUp(defaultProps);
81
+ var from = screen.getByText(rowsData[3].label);
82
+ var to = screen.getByText(rowsData[5].label);
83
+ fireEvent.mouseDown(from.firstChild);
84
+ fireEvent.mouseOver(to.parentNode);
85
+ fireEvent.mouseUp(from.firstChild);
86
+ expect(defaultProps.onMoveRow).toHaveBeenCalledWith(rowsData[3].id, rowsData[5].id);
87
+ expect(defaultProps.onDropRow).toHaveBeenCalled();
88
+ });
89
+ it('should render backdrop during drag', function () {
90
+ setUp(defaultProps);
91
+ var draggingRow = screen.getByText(rowsData[3].label);
92
+ fireEvent.mouseDown(draggingRow.firstChild);
93
+ expect(document.getElementsByClassName('backDrop')).toHaveLength(1);
94
+ fireEvent.mouseUp(draggingRow.firstChild);
95
+ expect(document.getElementsByClassName('backDrop')).toHaveLength(0);
96
+ var draggingColumn = screen.getByText(columnsData[1].entityCard);
97
+ fireEvent.mouseDown(draggingColumn.firstChild);
98
+ expect(document.getElementsByClassName('backDrop')).toHaveLength(1);
99
+ fireEvent.mouseUp(draggingColumn.firstChild);
100
+ expect(document.getElementsByClassName('backDrop')).toHaveLength(0);
101
+ });
102
+ it('should render column overlay', function () {
103
+ setUp(defaultProps);
104
+ var draggingColumn = screen.getByText(columnsData[1].entityCard);
105
+ fireEvent.mouseDown(draggingColumn.firstChild);
106
+ expect(screen.getAllByText(columnsData[1].entityCard)).toHaveLength(2);
107
+ });
108
+ it('should render row overlay', function () {
109
+ setUp(defaultProps);
110
+ var draggingRow = screen.getByText(rowsData[3].label);
111
+ fireEvent.mouseDown(draggingRow.firstChild);
112
+ expect(screen.getAllByText(rowsData[3].label)).toHaveLength(2);
113
+ });
114
+ });
@@ -4,6 +4,7 @@ type Props = {
4
4
  className?: string;
5
5
  rowsData: RowData[];
6
6
  columnsData: ColumnData[];
7
+ containerRef: React.MutableRefObject<HTMLDivElement>;
7
8
  theadRowsNumber?: number;
8
9
  onMoveRow?: (dragId: string, hoverId: string) => void;
9
10
  onDropRow?: () => void;
@@ -12,5 +13,5 @@ type Props = {
12
13
  setHoveredColumn?: (columnValue: ColumnData) => void;
13
14
  resetHoveredColumn?: () => void;
14
15
  };
15
- declare const _default: React.MemoExoticComponent<({ className, rowsData, columnsData, theadRowsNumber, onMoveRow, onDropRow, onMoveColumn, onDropColumn, setHoveredColumn, resetHoveredColumn }: Props) => React.JSX.Element>;
16
+ declare const _default: React.MemoExoticComponent<({ className, rowsData, columnsData, containerRef, theadRowsNumber, onMoveRow, onDropRow, onMoveColumn, onDropColumn, setHoveredColumn, resetHoveredColumn }: Props) => React.JSX.Element>;
16
17
  export default _default;
@@ -1,20 +1,17 @@
1
- import React, { memo, useRef, useState } from 'react';
1
+ import React, { memo, useMemo } from 'react';
2
2
  import { TableRow } from './components/TableRow';
3
3
  import { TableRowWithDnd } from './components/TableRowWithDnd';
4
- import { TableColumnDragLayer } from './components/TableColumnDragLayer';
4
+ import { DndComponent } from './components/DndComponent';
5
5
  var VerticalHeadingsTable = function (_a) {
6
- var _b;
7
- var className = _a.className, rowsData = _a.rowsData, columnsData = _a.columnsData, _c = _a.theadRowsNumber, theadRowsNumber = _c === void 0 ? 0 : _c, onMoveRow = _a.onMoveRow, onDropRow = _a.onDropRow, onMoveColumn = _a.onMoveColumn, onDropColumn = _a.onDropColumn, setHoveredColumn = _a.setHoveredColumn, resetHoveredColumn = _a.resetHoveredColumn;
8
- var _d = useState(false), someRowIsDragging = _d[0], setSomeRowIsDragging = _d[1];
9
- var tableRef = useRef(null);
10
- var tableHeight = (_b = tableRef === null || tableRef === void 0 ? void 0 : tableRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight;
11
- var isDNDActive = !!onMoveRow || !!onMoveColumn;
12
- return (React.createElement(React.Fragment, null,
13
- isDNDActive && React.createElement(TableColumnDragLayer, { columnHeight: tableHeight }),
14
- React.createElement("table", { ref: tableRef, className: className },
15
- theadRowsNumber > 0 && (React.createElement("thead", null, rowsData.slice(0, theadRowsNumber).map(function (rowData, index) { return (React.createElement(TableRow, { key: rowData.id || index, rowData: rowData, columnsData: columnsData, index: index, onMoveColumn: onMoveColumn, onDropColumn: onDropColumn, setHoveredColumn: setHoveredColumn, resetHoveredColumn: resetHoveredColumn })); }))),
6
+ var className = _a.className, rowsData = _a.rowsData, columnsData = _a.columnsData, containerRef = _a.containerRef, _b = _a.theadRowsNumber, theadRowsNumber = _b === void 0 ? 0 : _b, onMoveRow = _a.onMoveRow, onDropRow = _a.onDropRow, onMoveColumn = _a.onMoveColumn, onDropColumn = _a.onDropColumn, setHoveredColumn = _a.setHoveredColumn, resetHoveredColumn = _a.resetHoveredColumn;
7
+ var columnsId = useMemo(function () { return columnsData.map(function (columnData) { return columnData.id; }); }, [columnsData]);
8
+ var rowsId = useMemo(function () { return rowsData.map(function (rowData) { return rowData.id; }); }, [rowsData]);
9
+ var isMoveColumnEnabled = !!onMoveColumn;
10
+ return (React.createElement(DndComponent, { containerRef: containerRef, onMoveColumn: onMoveColumn, onDropColumn: onDropColumn, onMoveRow: onMoveRow, onDropRow: onDropRow, columnsId: columnsId, rowsId: rowsId, tableClassName: className },
11
+ React.createElement("table", { className: className },
12
+ theadRowsNumber > 0 && (React.createElement("thead", null, rowsData.slice(0, theadRowsNumber).map(function (rowData, index) { return (React.createElement(TableRow, { key: rowData.id || index, rowData: rowData, columnsData: columnsData, index: index, isMoveColumnEnabled: isMoveColumnEnabled, setHoveredColumn: setHoveredColumn, resetHoveredColumn: resetHoveredColumn })); }))),
16
13
  React.createElement("tbody", null, rowsData.slice(theadRowsNumber).map(function (rowData, index) {
17
- return onMoveRow ? (React.createElement(TableRowWithDnd, { key: rowData.id || index, index: index + theadRowsNumber, rowData: rowData, columnsData: columnsData, onMoveRow: onMoveRow, onDropRow: onDropRow, onMoveColumn: onMoveColumn, onDropColumn: onDropColumn, setHoveredColumn: setHoveredColumn, resetHoveredColumn: resetHoveredColumn, someRowIsDragging: someRowIsDragging, setSomeRowIsDragging: setSomeRowIsDragging })) : (React.createElement(TableRow, { key: rowData.id || index, index: index + theadRowsNumber, rowData: rowData, columnsData: columnsData, onMoveColumn: onMoveColumn, onDropColumn: onDropColumn, setHoveredColumn: setHoveredColumn, resetHoveredColumn: resetHoveredColumn }));
14
+ return onMoveRow ? (React.createElement(TableRowWithDnd, { key: rowData.id || index, rowData: rowData, columnsData: columnsData, isMoveColumnEnabled: isMoveColumnEnabled, setHoveredColumn: setHoveredColumn, resetHoveredColumn: resetHoveredColumn })) : (React.createElement(TableRow, { key: rowData.id || index, index: index + theadRowsNumber, rowData: rowData, columnsData: columnsData, isMoveColumnEnabled: isMoveColumnEnabled, setHoveredColumn: setHoveredColumn, resetHoveredColumn: resetHoveredColumn }));
18
15
  })))));
19
16
  };
20
17
  export default memo(VerticalHeadingsTable);