@salt-ds/data-grid 1.0.0

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 (370) hide show
  1. package/dist-cjs/node_modules/style-inject/dist/style-inject.es.js +31 -0
  2. package/dist-cjs/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  3. package/dist-cjs/packages/grid/src/BaseCell.css.js +9 -0
  4. package/dist-cjs/packages/grid/src/BaseCell.css.js.map +1 -0
  5. package/dist-cjs/packages/grid/src/BaseCell.js +81 -0
  6. package/dist-cjs/packages/grid/src/BaseCell.js.map +1 -0
  7. package/dist-cjs/packages/grid/src/CellEditor.js +29 -0
  8. package/dist-cjs/packages/grid/src/CellEditor.js.map +1 -0
  9. package/dist-cjs/packages/grid/src/CheckboxCell.css.js +9 -0
  10. package/dist-cjs/packages/grid/src/CheckboxCell.css.js.map +1 -0
  11. package/dist-cjs/packages/grid/src/ColumnDataContext.js +18 -0
  12. package/dist-cjs/packages/grid/src/ColumnDataContext.js.map +1 -0
  13. package/dist-cjs/packages/grid/src/ColumnDragContext.js +20 -0
  14. package/dist-cjs/packages/grid/src/ColumnDragContext.js.map +1 -0
  15. package/dist-cjs/packages/grid/src/ColumnGroup.js +32 -0
  16. package/dist-cjs/packages/grid/src/ColumnGroup.js.map +1 -0
  17. package/dist-cjs/packages/grid/src/CornerTag.css.js +9 -0
  18. package/dist-cjs/packages/grid/src/CornerTag.css.js.map +1 -0
  19. package/dist-cjs/packages/grid/src/CornerTag.js +15 -0
  20. package/dist-cjs/packages/grid/src/CornerTag.js.map +1 -0
  21. package/dist-cjs/packages/grid/src/CursorContext.js +20 -0
  22. package/dist-cjs/packages/grid/src/CursorContext.js.map +1 -0
  23. package/dist-cjs/packages/grid/src/DropdownCellEditor.css.js +9 -0
  24. package/dist-cjs/packages/grid/src/DropdownCellEditor.css.js.map +1 -0
  25. package/dist-cjs/packages/grid/src/DropdownCellEditor.js +75 -0
  26. package/dist-cjs/packages/grid/src/DropdownCellEditor.js.map +1 -0
  27. package/dist-cjs/packages/grid/src/EditorContext.js +20 -0
  28. package/dist-cjs/packages/grid/src/EditorContext.js.map +1 -0
  29. package/dist-cjs/packages/grid/src/Grid.css.js +9 -0
  30. package/dist-cjs/packages/grid/src/Grid.css.js.map +1 -0
  31. package/dist-cjs/packages/grid/src/Grid.js +938 -0
  32. package/dist-cjs/packages/grid/src/Grid.js.map +1 -0
  33. package/dist-cjs/packages/grid/src/GridColumn.js +43 -0
  34. package/dist-cjs/packages/grid/src/GridColumn.js.map +1 -0
  35. package/dist-cjs/packages/grid/src/GridContext.js +20 -0
  36. package/dist-cjs/packages/grid/src/GridContext.js.map +1 -0
  37. package/dist-cjs/packages/grid/src/GroupHeaderCell.css.js +9 -0
  38. package/dist-cjs/packages/grid/src/GroupHeaderCell.css.js.map +1 -0
  39. package/dist-cjs/packages/grid/src/GroupHeaderCell.js +50 -0
  40. package/dist-cjs/packages/grid/src/GroupHeaderCell.js.map +1 -0
  41. package/dist-cjs/packages/grid/src/GroupHeaderCellValue.js +16 -0
  42. package/dist-cjs/packages/grid/src/GroupHeaderCellValue.js.map +1 -0
  43. package/dist-cjs/packages/grid/src/HeaderCell.css.js +9 -0
  44. package/dist-cjs/packages/grid/src/HeaderCell.css.js.map +1 -0
  45. package/dist-cjs/packages/grid/src/HeaderCell.js +120 -0
  46. package/dist-cjs/packages/grid/src/HeaderCell.js.map +1 -0
  47. package/dist-cjs/packages/grid/src/HeaderCellValue.js +19 -0
  48. package/dist-cjs/packages/grid/src/HeaderCellValue.js.map +1 -0
  49. package/dist-cjs/packages/grid/src/LayoutContext.js +12 -0
  50. package/dist-cjs/packages/grid/src/LayoutContext.js.map +1 -0
  51. package/dist-cjs/packages/grid/src/NumberRange.js +63 -0
  52. package/dist-cjs/packages/grid/src/NumberRange.js.map +1 -0
  53. package/dist-cjs/packages/grid/src/NumericColumn.css.js +9 -0
  54. package/dist-cjs/packages/grid/src/NumericColumn.css.js.map +1 -0
  55. package/dist-cjs/packages/grid/src/NumericColumn.js +108 -0
  56. package/dist-cjs/packages/grid/src/NumericColumn.js.map +1 -0
  57. package/dist-cjs/packages/grid/src/RowSelectionCheckboxCellValue.js +37 -0
  58. package/dist-cjs/packages/grid/src/RowSelectionCheckboxCellValue.js.map +1 -0
  59. package/dist-cjs/packages/grid/src/RowSelectionCheckboxColumn.js +32 -0
  60. package/dist-cjs/packages/grid/src/RowSelectionCheckboxColumn.js.map +1 -0
  61. package/dist-cjs/packages/grid/src/RowSelectionCheckboxHeaderCellValue.js +48 -0
  62. package/dist-cjs/packages/grid/src/RowSelectionCheckboxHeaderCellValue.js.map +1 -0
  63. package/dist-cjs/packages/grid/src/RowSelectionRadioCellValue.js +25 -0
  64. package/dist-cjs/packages/grid/src/RowSelectionRadioCellValue.js.map +1 -0
  65. package/dist-cjs/packages/grid/src/RowSelectionRadioColumn.js +30 -0
  66. package/dist-cjs/packages/grid/src/RowSelectionRadioColumn.js.map +1 -0
  67. package/dist-cjs/packages/grid/src/RowSelectionRadioHeaderCell.js +26 -0
  68. package/dist-cjs/packages/grid/src/RowSelectionRadioHeaderCell.js.map +1 -0
  69. package/dist-cjs/packages/grid/src/SelectionContext.js +20 -0
  70. package/dist-cjs/packages/grid/src/SelectionContext.js.map +1 -0
  71. package/dist-cjs/packages/grid/src/SizingContext.js +20 -0
  72. package/dist-cjs/packages/grid/src/SizingContext.js.map +1 -0
  73. package/dist-cjs/packages/grid/src/TextCellEditor.css.js +9 -0
  74. package/dist-cjs/packages/grid/src/TextCellEditor.css.js.map +1 -0
  75. package/dist-cjs/packages/grid/src/TextCellEditor.js +85 -0
  76. package/dist-cjs/packages/grid/src/TextCellEditor.js.map +1 -0
  77. package/dist-cjs/packages/grid/src/index.js +59 -0
  78. package/dist-cjs/packages/grid/src/index.js.map +1 -0
  79. package/dist-cjs/packages/grid/src/internal/Cell.css.js +9 -0
  80. package/dist-cjs/packages/grid/src/internal/Cell.css.js.map +1 -0
  81. package/dist-cjs/packages/grid/src/internal/Cell.js +59 -0
  82. package/dist-cjs/packages/grid/src/internal/Cell.js.map +1 -0
  83. package/dist-cjs/packages/grid/src/internal/CellMeasure.css.js +9 -0
  84. package/dist-cjs/packages/grid/src/internal/CellMeasure.css.js.map +1 -0
  85. package/dist-cjs/packages/grid/src/internal/CellMeasure.js +41 -0
  86. package/dist-cjs/packages/grid/src/internal/CellMeasure.js.map +1 -0
  87. package/dist-cjs/packages/grid/src/internal/ColumnDropTarget.css.js +9 -0
  88. package/dist-cjs/packages/grid/src/internal/ColumnDropTarget.css.js.map +1 -0
  89. package/dist-cjs/packages/grid/src/internal/ColumnDropTarget.js +28 -0
  90. package/dist-cjs/packages/grid/src/internal/ColumnDropTarget.js.map +1 -0
  91. package/dist-cjs/packages/grid/src/internal/ColumnGhost.css.js +9 -0
  92. package/dist-cjs/packages/grid/src/internal/ColumnGhost.css.js.map +1 -0
  93. package/dist-cjs/packages/grid/src/internal/ColumnGhost.js +51 -0
  94. package/dist-cjs/packages/grid/src/internal/ColumnGhost.js.map +1 -0
  95. package/dist-cjs/packages/grid/src/internal/Cursor.css.js +9 -0
  96. package/dist-cjs/packages/grid/src/internal/Cursor.css.js.map +1 -0
  97. package/dist-cjs/packages/grid/src/internal/Cursor.js +17 -0
  98. package/dist-cjs/packages/grid/src/internal/Cursor.js.map +1 -0
  99. package/dist-cjs/packages/grid/src/internal/DefaultCellValue.css.js +9 -0
  100. package/dist-cjs/packages/grid/src/internal/DefaultCellValue.css.js.map +1 -0
  101. package/dist-cjs/packages/grid/src/internal/DefaultCellValue.js +26 -0
  102. package/dist-cjs/packages/grid/src/internal/DefaultCellValue.js.map +1 -0
  103. package/dist-cjs/packages/grid/src/internal/FakeCell.css.js +9 -0
  104. package/dist-cjs/packages/grid/src/internal/FakeCell.css.js.map +1 -0
  105. package/dist-cjs/packages/grid/src/internal/FakeCell.js +19 -0
  106. package/dist-cjs/packages/grid/src/internal/FakeCell.js.map +1 -0
  107. package/dist-cjs/packages/grid/src/internal/FakeGroupCell.js +12 -0
  108. package/dist-cjs/packages/grid/src/internal/FakeGroupCell.js.map +1 -0
  109. package/dist-cjs/packages/grid/src/internal/FakeHeaderCell.js +14 -0
  110. package/dist-cjs/packages/grid/src/internal/FakeHeaderCell.js.map +1 -0
  111. package/dist-cjs/packages/grid/src/internal/GroupHeaderRow.css.js +9 -0
  112. package/dist-cjs/packages/grid/src/internal/GroupHeaderRow.css.js.map +1 -0
  113. package/dist-cjs/packages/grid/src/internal/GroupHeaderRow.js +38 -0
  114. package/dist-cjs/packages/grid/src/internal/GroupHeaderRow.js.map +1 -0
  115. package/dist-cjs/packages/grid/src/internal/HeaderRow.css.js +9 -0
  116. package/dist-cjs/packages/grid/src/internal/HeaderRow.css.js.map +1 -0
  117. package/dist-cjs/packages/grid/src/internal/HeaderRow.js +42 -0
  118. package/dist-cjs/packages/grid/src/internal/HeaderRow.js.map +1 -0
  119. package/dist-cjs/packages/grid/src/internal/LeftPart.css.js +9 -0
  120. package/dist-cjs/packages/grid/src/internal/LeftPart.css.js.map +1 -0
  121. package/dist-cjs/packages/grid/src/internal/LeftPart.js +62 -0
  122. package/dist-cjs/packages/grid/src/internal/LeftPart.js.map +1 -0
  123. package/dist-cjs/packages/grid/src/internal/MiddlePart.css.js +9 -0
  124. package/dist-cjs/packages/grid/src/internal/MiddlePart.css.js.map +1 -0
  125. package/dist-cjs/packages/grid/src/internal/MiddlePart.js +54 -0
  126. package/dist-cjs/packages/grid/src/internal/MiddlePart.js.map +1 -0
  127. package/dist-cjs/packages/grid/src/internal/RightPart.css.js +9 -0
  128. package/dist-cjs/packages/grid/src/internal/RightPart.css.js.map +1 -0
  129. package/dist-cjs/packages/grid/src/internal/RightPart.js +62 -0
  130. package/dist-cjs/packages/grid/src/internal/RightPart.js.map +1 -0
  131. package/dist-cjs/packages/grid/src/internal/Scrollable.css.js +9 -0
  132. package/dist-cjs/packages/grid/src/internal/Scrollable.css.js.map +1 -0
  133. package/dist-cjs/packages/grid/src/internal/Scrollable.js +89 -0
  134. package/dist-cjs/packages/grid/src/internal/Scrollable.js.map +1 -0
  135. package/dist-cjs/packages/grid/src/internal/TableBody.js +70 -0
  136. package/dist-cjs/packages/grid/src/internal/TableBody.js.map +1 -0
  137. package/dist-cjs/packages/grid/src/internal/TableColGroup.js +37 -0
  138. package/dist-cjs/packages/grid/src/internal/TableColGroup.js.map +1 -0
  139. package/dist-cjs/packages/grid/src/internal/TableRow.css.js +9 -0
  140. package/dist-cjs/packages/grid/src/internal/TableRow.css.js.map +1 -0
  141. package/dist-cjs/packages/grid/src/internal/TableRow.js +99 -0
  142. package/dist-cjs/packages/grid/src/internal/TableRow.js.map +1 -0
  143. package/dist-cjs/packages/grid/src/internal/TopLeftPart.css.js +9 -0
  144. package/dist-cjs/packages/grid/src/internal/TopLeftPart.css.js.map +1 -0
  145. package/dist-cjs/packages/grid/src/internal/TopLeftPart.js +54 -0
  146. package/dist-cjs/packages/grid/src/internal/TopLeftPart.js.map +1 -0
  147. package/dist-cjs/packages/grid/src/internal/TopPart.css.js +9 -0
  148. package/dist-cjs/packages/grid/src/internal/TopPart.css.js.map +1 -0
  149. package/dist-cjs/packages/grid/src/internal/TopPart.js +57 -0
  150. package/dist-cjs/packages/grid/src/internal/TopPart.js.map +1 -0
  151. package/dist-cjs/packages/grid/src/internal/TopRightPart.css.js +9 -0
  152. package/dist-cjs/packages/grid/src/internal/TopRightPart.css.js.map +1 -0
  153. package/dist-cjs/packages/grid/src/internal/TopRightPart.js +55 -0
  154. package/dist-cjs/packages/grid/src/internal/TopRightPart.js.map +1 -0
  155. package/dist-cjs/packages/grid/src/internal/gridHooks.js +916 -0
  156. package/dist-cjs/packages/grid/src/internal/gridHooks.js.map +1 -0
  157. package/dist-cjs/packages/grid/src/internal/utils.js +71 -0
  158. package/dist-cjs/packages/grid/src/internal/utils.js.map +1 -0
  159. package/dist-es/node_modules/style-inject/dist/style-inject.es.js +29 -0
  160. package/dist-es/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  161. package/dist-es/packages/grid/src/BaseCell.css.js +7 -0
  162. package/dist-es/packages/grid/src/BaseCell.css.js.map +1 -0
  163. package/dist-es/packages/grid/src/BaseCell.js +72 -0
  164. package/dist-es/packages/grid/src/BaseCell.js.map +1 -0
  165. package/dist-es/packages/grid/src/CellEditor.js +25 -0
  166. package/dist-es/packages/grid/src/CellEditor.js.map +1 -0
  167. package/dist-es/packages/grid/src/CheckboxCell.css.js +7 -0
  168. package/dist-es/packages/grid/src/CheckboxCell.css.js.map +1 -0
  169. package/dist-es/packages/grid/src/ColumnDataContext.js +13 -0
  170. package/dist-es/packages/grid/src/ColumnDataContext.js.map +1 -0
  171. package/dist-es/packages/grid/src/ColumnDragContext.js +15 -0
  172. package/dist-es/packages/grid/src/ColumnDragContext.js.map +1 -0
  173. package/dist-es/packages/grid/src/ColumnGroup.js +28 -0
  174. package/dist-es/packages/grid/src/ColumnGroup.js.map +1 -0
  175. package/dist-es/packages/grid/src/CornerTag.css.js +7 -0
  176. package/dist-es/packages/grid/src/CornerTag.css.js.map +1 -0
  177. package/dist-es/packages/grid/src/CornerTag.js +11 -0
  178. package/dist-es/packages/grid/src/CornerTag.js.map +1 -0
  179. package/dist-es/packages/grid/src/CursorContext.js +15 -0
  180. package/dist-es/packages/grid/src/CursorContext.js.map +1 -0
  181. package/dist-es/packages/grid/src/DropdownCellEditor.css.js +7 -0
  182. package/dist-es/packages/grid/src/DropdownCellEditor.css.js.map +1 -0
  183. package/dist-es/packages/grid/src/DropdownCellEditor.js +71 -0
  184. package/dist-es/packages/grid/src/DropdownCellEditor.js.map +1 -0
  185. package/dist-es/packages/grid/src/EditorContext.js +15 -0
  186. package/dist-es/packages/grid/src/EditorContext.js.map +1 -0
  187. package/dist-es/packages/grid/src/Grid.css.js +7 -0
  188. package/dist-es/packages/grid/src/Grid.css.js.map +1 -0
  189. package/dist-es/packages/grid/src/Grid.js +930 -0
  190. package/dist-es/packages/grid/src/Grid.js.map +1 -0
  191. package/dist-es/packages/grid/src/GridColumn.js +39 -0
  192. package/dist-es/packages/grid/src/GridColumn.js.map +1 -0
  193. package/dist-es/packages/grid/src/GridContext.js +15 -0
  194. package/dist-es/packages/grid/src/GridContext.js.map +1 -0
  195. package/dist-es/packages/grid/src/GroupHeaderCell.css.js +7 -0
  196. package/dist-es/packages/grid/src/GroupHeaderCell.css.js.map +1 -0
  197. package/dist-es/packages/grid/src/GroupHeaderCell.js +42 -0
  198. package/dist-es/packages/grid/src/GroupHeaderCell.js.map +1 -0
  199. package/dist-es/packages/grid/src/GroupHeaderCellValue.js +12 -0
  200. package/dist-es/packages/grid/src/GroupHeaderCellValue.js.map +1 -0
  201. package/dist-es/packages/grid/src/HeaderCell.css.js +7 -0
  202. package/dist-es/packages/grid/src/HeaderCell.css.js.map +1 -0
  203. package/dist-es/packages/grid/src/HeaderCell.js +110 -0
  204. package/dist-es/packages/grid/src/HeaderCell.js.map +1 -0
  205. package/dist-es/packages/grid/src/HeaderCellValue.js +15 -0
  206. package/dist-es/packages/grid/src/HeaderCellValue.js.map +1 -0
  207. package/dist-es/packages/grid/src/LayoutContext.js +8 -0
  208. package/dist-es/packages/grid/src/LayoutContext.js.map +1 -0
  209. package/dist-es/packages/grid/src/NumberRange.js +58 -0
  210. package/dist-es/packages/grid/src/NumberRange.js.map +1 -0
  211. package/dist-es/packages/grid/src/NumericColumn.css.js +7 -0
  212. package/dist-es/packages/grid/src/NumericColumn.css.js.map +1 -0
  213. package/dist-es/packages/grid/src/NumericColumn.js +102 -0
  214. package/dist-es/packages/grid/src/NumericColumn.js.map +1 -0
  215. package/dist-es/packages/grid/src/RowSelectionCheckboxCellValue.js +33 -0
  216. package/dist-es/packages/grid/src/RowSelectionCheckboxCellValue.js.map +1 -0
  217. package/dist-es/packages/grid/src/RowSelectionCheckboxColumn.js +28 -0
  218. package/dist-es/packages/grid/src/RowSelectionCheckboxColumn.js.map +1 -0
  219. package/dist-es/packages/grid/src/RowSelectionCheckboxHeaderCellValue.js +44 -0
  220. package/dist-es/packages/grid/src/RowSelectionCheckboxHeaderCellValue.js.map +1 -0
  221. package/dist-es/packages/grid/src/RowSelectionRadioCellValue.js +21 -0
  222. package/dist-es/packages/grid/src/RowSelectionRadioCellValue.js.map +1 -0
  223. package/dist-es/packages/grid/src/RowSelectionRadioColumn.js +26 -0
  224. package/dist-es/packages/grid/src/RowSelectionRadioColumn.js.map +1 -0
  225. package/dist-es/packages/grid/src/RowSelectionRadioHeaderCell.js +18 -0
  226. package/dist-es/packages/grid/src/RowSelectionRadioHeaderCell.js.map +1 -0
  227. package/dist-es/packages/grid/src/SelectionContext.js +15 -0
  228. package/dist-es/packages/grid/src/SelectionContext.js.map +1 -0
  229. package/dist-es/packages/grid/src/SizingContext.js +15 -0
  230. package/dist-es/packages/grid/src/SizingContext.js.map +1 -0
  231. package/dist-es/packages/grid/src/TextCellEditor.css.js +7 -0
  232. package/dist-es/packages/grid/src/TextCellEditor.css.js.map +1 -0
  233. package/dist-es/packages/grid/src/TextCellEditor.js +81 -0
  234. package/dist-es/packages/grid/src/TextCellEditor.js.map +1 -0
  235. package/dist-es/packages/grid/src/index.js +22 -0
  236. package/dist-es/packages/grid/src/index.js.map +1 -0
  237. package/dist-es/packages/grid/src/internal/Cell.css.js +7 -0
  238. package/dist-es/packages/grid/src/internal/Cell.css.js.map +1 -0
  239. package/dist-es/packages/grid/src/internal/Cell.js +51 -0
  240. package/dist-es/packages/grid/src/internal/Cell.js.map +1 -0
  241. package/dist-es/packages/grid/src/internal/CellMeasure.css.js +7 -0
  242. package/dist-es/packages/grid/src/internal/CellMeasure.css.js.map +1 -0
  243. package/dist-es/packages/grid/src/internal/CellMeasure.js +37 -0
  244. package/dist-es/packages/grid/src/internal/CellMeasure.js.map +1 -0
  245. package/dist-es/packages/grid/src/internal/ColumnDropTarget.css.js +7 -0
  246. package/dist-es/packages/grid/src/internal/ColumnDropTarget.css.js.map +1 -0
  247. package/dist-es/packages/grid/src/internal/ColumnDropTarget.js +24 -0
  248. package/dist-es/packages/grid/src/internal/ColumnDropTarget.js.map +1 -0
  249. package/dist-es/packages/grid/src/internal/ColumnGhost.css.js +7 -0
  250. package/dist-es/packages/grid/src/internal/ColumnGhost.css.js.map +1 -0
  251. package/dist-es/packages/grid/src/internal/ColumnGhost.js +47 -0
  252. package/dist-es/packages/grid/src/internal/ColumnGhost.js.map +1 -0
  253. package/dist-es/packages/grid/src/internal/Cursor.css.js +7 -0
  254. package/dist-es/packages/grid/src/internal/Cursor.css.js.map +1 -0
  255. package/dist-es/packages/grid/src/internal/Cursor.js +13 -0
  256. package/dist-es/packages/grid/src/internal/Cursor.js.map +1 -0
  257. package/dist-es/packages/grid/src/internal/DefaultCellValue.css.js +7 -0
  258. package/dist-es/packages/grid/src/internal/DefaultCellValue.css.js.map +1 -0
  259. package/dist-es/packages/grid/src/internal/DefaultCellValue.js +18 -0
  260. package/dist-es/packages/grid/src/internal/DefaultCellValue.js.map +1 -0
  261. package/dist-es/packages/grid/src/internal/FakeCell.css.js +7 -0
  262. package/dist-es/packages/grid/src/internal/FakeCell.css.js.map +1 -0
  263. package/dist-es/packages/grid/src/internal/FakeCell.js +15 -0
  264. package/dist-es/packages/grid/src/internal/FakeCell.js.map +1 -0
  265. package/dist-es/packages/grid/src/internal/FakeGroupCell.js +8 -0
  266. package/dist-es/packages/grid/src/internal/FakeGroupCell.js.map +1 -0
  267. package/dist-es/packages/grid/src/internal/FakeHeaderCell.js +10 -0
  268. package/dist-es/packages/grid/src/internal/FakeHeaderCell.js.map +1 -0
  269. package/dist-es/packages/grid/src/internal/GroupHeaderRow.css.js +7 -0
  270. package/dist-es/packages/grid/src/internal/GroupHeaderRow.css.js.map +1 -0
  271. package/dist-es/packages/grid/src/internal/GroupHeaderRow.js +34 -0
  272. package/dist-es/packages/grid/src/internal/GroupHeaderRow.js.map +1 -0
  273. package/dist-es/packages/grid/src/internal/HeaderRow.css.js +7 -0
  274. package/dist-es/packages/grid/src/internal/HeaderRow.css.js.map +1 -0
  275. package/dist-es/packages/grid/src/internal/HeaderRow.js +38 -0
  276. package/dist-es/packages/grid/src/internal/HeaderRow.js.map +1 -0
  277. package/dist-es/packages/grid/src/internal/LeftPart.css.js +7 -0
  278. package/dist-es/packages/grid/src/internal/LeftPart.css.js.map +1 -0
  279. package/dist-es/packages/grid/src/internal/LeftPart.js +54 -0
  280. package/dist-es/packages/grid/src/internal/LeftPart.js.map +1 -0
  281. package/dist-es/packages/grid/src/internal/MiddlePart.css.js +7 -0
  282. package/dist-es/packages/grid/src/internal/MiddlePart.css.js.map +1 -0
  283. package/dist-es/packages/grid/src/internal/MiddlePart.js +50 -0
  284. package/dist-es/packages/grid/src/internal/MiddlePart.js.map +1 -0
  285. package/dist-es/packages/grid/src/internal/RightPart.css.js +7 -0
  286. package/dist-es/packages/grid/src/internal/RightPart.css.js.map +1 -0
  287. package/dist-es/packages/grid/src/internal/RightPart.js +54 -0
  288. package/dist-es/packages/grid/src/internal/RightPart.js.map +1 -0
  289. package/dist-es/packages/grid/src/internal/Scrollable.css.js +7 -0
  290. package/dist-es/packages/grid/src/internal/Scrollable.css.js.map +1 -0
  291. package/dist-es/packages/grid/src/internal/Scrollable.js +85 -0
  292. package/dist-es/packages/grid/src/internal/Scrollable.js.map +1 -0
  293. package/dist-es/packages/grid/src/internal/TableBody.js +66 -0
  294. package/dist-es/packages/grid/src/internal/TableBody.js.map +1 -0
  295. package/dist-es/packages/grid/src/internal/TableColGroup.js +32 -0
  296. package/dist-es/packages/grid/src/internal/TableColGroup.js.map +1 -0
  297. package/dist-es/packages/grid/src/internal/TableRow.css.js +7 -0
  298. package/dist-es/packages/grid/src/internal/TableRow.css.js.map +1 -0
  299. package/dist-es/packages/grid/src/internal/TableRow.js +91 -0
  300. package/dist-es/packages/grid/src/internal/TableRow.js.map +1 -0
  301. package/dist-es/packages/grid/src/internal/TopLeftPart.css.js +7 -0
  302. package/dist-es/packages/grid/src/internal/TopLeftPart.css.js.map +1 -0
  303. package/dist-es/packages/grid/src/internal/TopLeftPart.js +46 -0
  304. package/dist-es/packages/grid/src/internal/TopLeftPart.js.map +1 -0
  305. package/dist-es/packages/grid/src/internal/TopPart.css.js +7 -0
  306. package/dist-es/packages/grid/src/internal/TopPart.css.js.map +1 -0
  307. package/dist-es/packages/grid/src/internal/TopPart.js +49 -0
  308. package/dist-es/packages/grid/src/internal/TopPart.js.map +1 -0
  309. package/dist-es/packages/grid/src/internal/TopRightPart.css.js +7 -0
  310. package/dist-es/packages/grid/src/internal/TopRightPart.css.js.map +1 -0
  311. package/dist-es/packages/grid/src/internal/TopRightPart.js +47 -0
  312. package/dist-es/packages/grid/src/internal/TopRightPart.js.map +1 -0
  313. package/dist-es/packages/grid/src/internal/gridHooks.js +886 -0
  314. package/dist-es/packages/grid/src/internal/gridHooks.js.map +1 -0
  315. package/dist-es/packages/grid/src/internal/utils.js +61 -0
  316. package/dist-es/packages/grid/src/internal/utils.js.map +1 -0
  317. package/dist-types/BaseCell.d.ts +6 -0
  318. package/dist-types/CellEditor.d.ts +10 -0
  319. package/dist-types/ColumnDataContext.d.ts +7 -0
  320. package/dist-types/ColumnDragContext.d.ts +7 -0
  321. package/dist-types/ColumnGroup.d.ts +18 -0
  322. package/dist-types/CornerTag.d.ts +6 -0
  323. package/dist-types/CursorContext.d.ts +12 -0
  324. package/dist-types/DropdownCellEditor.d.ts +9 -0
  325. package/dist-types/EditorContext.d.ts +10 -0
  326. package/dist-types/Grid.d.ts +99 -0
  327. package/dist-types/GridColumn.d.ts +113 -0
  328. package/dist-types/GridContext.d.ts +16 -0
  329. package/dist-types/GroupHeaderCell.d.ts +8 -0
  330. package/dist-types/GroupHeaderCellValue.d.ts +3 -0
  331. package/dist-types/HeaderCell.d.ts +10 -0
  332. package/dist-types/HeaderCellValue.d.ts +3 -0
  333. package/dist-types/LayoutContext.d.ts +9 -0
  334. package/dist-types/NumberRange.d.ts +15 -0
  335. package/dist-types/NumericColumn.d.ts +15 -0
  336. package/dist-types/RowSelectionCheckboxCellValue.d.ts +4 -0
  337. package/dist-types/RowSelectionCheckboxColumn.d.ts +4 -0
  338. package/dist-types/RowSelectionCheckboxHeaderCellValue.d.ts +4 -0
  339. package/dist-types/RowSelectionRadioCellValue.d.ts +4 -0
  340. package/dist-types/RowSelectionRadioColumn.d.ts +4 -0
  341. package/dist-types/RowSelectionRadioHeaderCell.d.ts +4 -0
  342. package/dist-types/SelectionContext.d.ts +13 -0
  343. package/dist-types/SizingContext.d.ts +8 -0
  344. package/dist-types/TextCellEditor.d.ts +8 -0
  345. package/dist-types/index.d.ts +21 -0
  346. package/dist-types/internal/Cell.d.ts +9 -0
  347. package/dist-types/internal/CellMeasure.d.ts +6 -0
  348. package/dist-types/internal/ColumnDropTarget.d.ts +6 -0
  349. package/dist-types/internal/ColumnGhost.d.ts +11 -0
  350. package/dist-types/internal/Cursor.d.ts +5 -0
  351. package/dist-types/internal/DefaultCellValue.d.ts +4 -0
  352. package/dist-types/internal/FakeCell.d.ts +5 -0
  353. package/dist-types/internal/FakeGroupCell.d.ts +2 -0
  354. package/dist-types/internal/FakeHeaderCell.d.ts +2 -0
  355. package/dist-types/internal/GroupHeaderRow.d.ts +8 -0
  356. package/dist-types/internal/HeaderRow.d.ts +8 -0
  357. package/dist-types/internal/LeftPart.d.ts +14 -0
  358. package/dist-types/internal/MiddlePart.d.ts +14 -0
  359. package/dist-types/internal/RightPart.d.ts +14 -0
  360. package/dist-types/internal/Scrollable.d.ts +16 -0
  361. package/dist-types/internal/TableBody.d.ts +11 -0
  362. package/dist-types/internal/TableColGroup.d.ts +11 -0
  363. package/dist-types/internal/TableRow.d.ts +19 -0
  364. package/dist-types/internal/TopLeftPart.d.ts +11 -0
  365. package/dist-types/internal/TopPart.d.ts +12 -0
  366. package/dist-types/internal/TopRightPart.d.ts +11 -0
  367. package/dist-types/internal/gridHooks.d.ts +91 -0
  368. package/dist-types/internal/index.d.ts +21 -0
  369. package/dist-types/internal/utils.d.ts +13 -0
  370. package/package.json +41 -0
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".saltGridMiddlePart {\n overflow-y: hidden;\n overflow-x: hidden;\n position: absolute;\n top: 0;\n right: var(--grid-scrollBar-width);\n bottom: var(--grid-scrollBar-height);\n left: 0;\n clip-path: inset(var(--grid-topPart-height) var(--grid-rightPart-width) 0 var(--grid-leftPart-width));\n touch-action: none;\n z-index: var(--grid-middle-body-zIndex);\n}\n\n.saltGridMiddlePart-space {\n position: relative;\n height: var(--grid-total-height);\n width: var(--grid-total-width);\n}\n\n.saltGridMiddlePart table {\n table-layout: fixed;\n position: absolute;\n\n width: var(--grid-bodyVisibleColumns-width);\n top: var(--grid-bodyVisibleArea-top);\n left: var(--grid-bodyVisibleArea-left);\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=MiddlePart.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiddlePart.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var TableColGroup = require('./TableColGroup.js');
7
+ var TableBody = require('./TableBody.js');
8
+ require('./MiddlePart.css.js');
9
+ var core = require('@salt-ds/core');
10
+ var gridHooks = require('./gridHooks.js');
11
+
12
+ const withBaseName = core.makePrefixer("saltGridMiddlePart");
13
+ function MiddlePart(props) {
14
+ const {
15
+ middleRef,
16
+ onWheel,
17
+ columns,
18
+ rows,
19
+ hoverOverRowKey,
20
+ setHoverOverRowKey,
21
+ midGap,
22
+ zebra
23
+ } = props;
24
+ const tableRef = gridHooks.useActiveOnWheel(onWheel);
25
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
26
+ ref: middleRef,
27
+ className: withBaseName(),
28
+ "data-testid": "grid-middle-part",
29
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
30
+ className: withBaseName("space"),
31
+ children: /* @__PURE__ */ jsxRuntime.jsxs("table", {
32
+ ref: tableRef,
33
+ role: "presentation",
34
+ children: [
35
+ /* @__PURE__ */ jsxRuntime.jsx(TableColGroup.TableColGroup, {
36
+ columns,
37
+ gap: midGap
38
+ }),
39
+ /* @__PURE__ */ jsxRuntime.jsx(TableBody.TableBody, {
40
+ columns,
41
+ rows,
42
+ hoverRowKey: hoverOverRowKey,
43
+ setHoverRowKey: setHoverOverRowKey,
44
+ gap: midGap,
45
+ zebra
46
+ })
47
+ ]
48
+ })
49
+ })
50
+ });
51
+ }
52
+
53
+ exports.MiddlePart = MiddlePart;
54
+ //# sourceMappingURL=MiddlePart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiddlePart.js","sources":["../src/internal/MiddlePart.tsx"],"sourcesContent":["import { RefObject } from \"react\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport { TableBody } from \"./TableBody\";\nimport \"./MiddlePart.css\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { GridColumnModel, GridRowModel } from \"../Grid\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nconst withBaseName = makePrefixer(\"saltGridMiddlePart\");\n\nexport interface MiddlePartProps<T> {\n middleRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n hoverOverRowKey?: string;\n setHoverOverRowKey: (key: string | undefined) => void;\n midGap: number;\n zebra?: boolean;\n}\n\nexport function MiddlePart<T>(props: MiddlePartProps<T>) {\n const {\n middleRef,\n onWheel,\n columns,\n rows,\n hoverOverRowKey,\n setHoverOverRowKey,\n midGap,\n zebra,\n } = props;\n\n const tableRef = useActiveOnWheel(onWheel);\n\n return (\n <div\n ref={middleRef}\n className={withBaseName()}\n data-testid=\"grid-middle-part\"\n >\n <div className={withBaseName(\"space\")}>\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} gap={midGap} />\n <TableBody\n columns={columns}\n rows={rows}\n hoverRowKey={hoverOverRowKey}\n setHoverRowKey={setHoverOverRowKey}\n gap={midGap}\n zebra={zebra}\n />\n </table>\n </div>\n </div>\n );\n}\n"],"names":["makePrefixer","useActiveOnWheel","jsx","jsxs","TableColGroup","TableBody"],"mappings":";;;;;;;;;;;AAQA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA,CAAA;AAa/C,SAAS,WAAc,KAA2B,EAAA;AACvD,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,GACE,GAAA,KAAA,CAAA;AAEJ,EAAM,MAAA,QAAA,GAAWC,2BAAiB,OAAO,CAAA,CAAA;AAEzC,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,GAAK,EAAA,SAAA;AAAA,IACL,WAAW,YAAa,EAAA;AAAA,IACxB,aAAY,EAAA,kBAAA;AAAA,IAEZ,QAAC,kBAAAA,cAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,MAClC,QAAC,kBAAAC,eAAA,CAAA,OAAA,EAAA;AAAA,QAAM,GAAK,EAAA,QAAA;AAAA,QAAU,IAAK,EAAA,cAAA;AAAA,QACzB,QAAA,EAAA;AAAA,0BAACD,cAAA,CAAAE,2BAAA,EAAA;AAAA,YAAc,OAAA;AAAA,YAAkB,GAAK,EAAA,MAAA;AAAA,WAAQ,CAAA;AAAA,0BAC7CF,cAAA,CAAAG,mBAAA,EAAA;AAAA,YACC,OAAA;AAAA,YACA,IAAA;AAAA,YACA,WAAa,EAAA,eAAA;AAAA,YACb,cAAgB,EAAA,kBAAA;AAAA,YAChB,GAAK,EAAA,MAAA;AAAA,YACL,KAAA;AAAA,WACF,CAAA;AAAA,SAAA;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".saltGridRightPart {\n position: absolute;\n top: 0;\n right: var(--grid-scrollBar-width);\n bottom: var(--grid-scrollBar-height);\n overflow-x: hidden;\n overflow-y: hidden;\n clip-path: inset(var(--grid-topPart-height) 0 0 -10px);\n z-index: var(--grid-right-body-zIndex);\n}\n\n.saltGridRightPart-leftShadow {\n box-shadow: -2px 0 4px 0 var(--grid-shadow-color);\n}\n\n.saltGrid-pinnedSeparators .saltGridRightPart-leftShadow {\n border-left: solid 1px var(--grid-pinnedSeparator-color);\n}\n\n.saltGridRightPart-space {\n position: relative;\n height: var(--grid-total-height);\n width: var(--grid-rightPart-width);\n}\n\n.saltGridRightPart table {\n table-layout: fixed;\n position: absolute;\n\n top: var(--grid-bodyVisibleArea-top);\n width: var(--grid-rightPart-width);\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=RightPart.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightPart.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var cn = require('classnames');
7
+ var TableColGroup = require('./TableColGroup.js');
8
+ var TableBody = require('./TableBody.js');
9
+ require('./RightPart.css.js');
10
+ var core = require('@salt-ds/core');
11
+ var gridHooks = require('./gridHooks.js');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
16
+
17
+ const withBaseName = core.makePrefixer("saltGridRightPart");
18
+ function RightPart(props) {
19
+ const {
20
+ rightRef,
21
+ onWheel,
22
+ columns,
23
+ leftShadow,
24
+ rows,
25
+ hoverOverRowKey,
26
+ setHoverOverRowKey,
27
+ zebra
28
+ } = props;
29
+ const tableRef = gridHooks.useActiveOnWheel(onWheel);
30
+ if (columns.length === 0) {
31
+ return null;
32
+ }
33
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
34
+ ref: rightRef,
35
+ className: cn__default["default"](withBaseName(), {
36
+ [withBaseName("leftShadow")]: leftShadow
37
+ }),
38
+ "data-testid": "grid-right-part",
39
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
40
+ className: withBaseName("space"),
41
+ children: /* @__PURE__ */ jsxRuntime.jsxs("table", {
42
+ ref: tableRef,
43
+ role: "presentation",
44
+ children: [
45
+ /* @__PURE__ */ jsxRuntime.jsx(TableColGroup.TableColGroup, {
46
+ columns
47
+ }),
48
+ /* @__PURE__ */ jsxRuntime.jsx(TableBody.TableBody, {
49
+ columns,
50
+ rows,
51
+ hoverRowKey: hoverOverRowKey,
52
+ setHoverRowKey: setHoverOverRowKey,
53
+ zebra
54
+ })
55
+ ]
56
+ })
57
+ })
58
+ });
59
+ }
60
+
61
+ exports.RightPart = RightPart;
62
+ //# sourceMappingURL=RightPart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightPart.js","sources":["../src/internal/RightPart.tsx"],"sourcesContent":["import { RefObject } from \"react\";\nimport cn from \"classnames\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport { TableBody } from \"./TableBody\";\nimport \"./RightPart.css\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { GridColumnModel, GridRowModel } from \"../Grid\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nconst withBaseName = makePrefixer(\"saltGridRightPart\");\n\nexport interface RightPartProps<T> {\n rightRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n leftShadow?: boolean;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n hoverOverRowKey?: string;\n setHoverOverRowKey: (key: string | undefined) => void;\n zebra?: boolean;\n}\n\nexport function RightPart<T>(props: RightPartProps<T>) {\n const {\n rightRef,\n onWheel,\n columns,\n leftShadow,\n rows,\n hoverOverRowKey,\n setHoverOverRowKey,\n zebra,\n } = props;\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n ref={rightRef}\n className={cn(withBaseName(), {\n [withBaseName(\"leftShadow\")]: leftShadow,\n })}\n data-testid=\"grid-right-part\"\n >\n <div className={withBaseName(\"space\")}>\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} />\n <TableBody\n columns={columns}\n rows={rows}\n hoverRowKey={hoverOverRowKey}\n setHoverRowKey={setHoverOverRowKey}\n zebra={zebra}\n />\n </table>\n </div>\n </div>\n );\n}\n"],"names":["makePrefixer","useActiveOnWheel","jsx","cn","jsxs","TableColGroup","TableBody"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,kBAAa,mBAAmB,CAAA,CAAA;AAa9C,SAAS,UAAa,KAA0B,EAAA;AACrD,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,KAAA;AAAA,GACE,GAAA,KAAA,CAAA;AAEJ,EAAM,MAAA,QAAA,GAAWC,2BAAiB,OAAO,CAAA,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,GAAK,EAAA,QAAA;AAAA,IACL,SAAA,EAAWC,sBAAG,CAAA,YAAA,EAAgB,EAAA;AAAA,MAC5B,CAAC,YAAa,CAAA,YAAY,CAAI,GAAA,UAAA;AAAA,KAC/B,CAAA;AAAA,IACD,aAAY,EAAA,iBAAA;AAAA,IAEZ,QAAC,kBAAAD,cAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,MAClC,QAAC,kBAAAE,eAAA,CAAA,OAAA,EAAA;AAAA,QAAM,GAAK,EAAA,QAAA;AAAA,QAAU,IAAK,EAAA,cAAA;AAAA,QACzB,QAAA,EAAA;AAAA,0BAACF,cAAA,CAAAG,2BAAA,EAAA;AAAA,YAAc,OAAA;AAAA,WAAkB,CAAA;AAAA,0BAChCH,cAAA,CAAAI,mBAAA,EAAA;AAAA,YACC,OAAA;AAAA,YACA,IAAA;AAAA,YACA,WAAa,EAAA,eAAA;AAAA,YACb,cAAgB,EAAA,kBAAA;AAAA,YAChB,KAAA;AAAA,WACF,CAAA;AAAA,SAAA;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".saltGridScrollable {\n overflow-y: auto;\n overflow-x: auto;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.saltGridScrollable-space {\n position: relative;\n height: var(--grid-total-height);\n width: var(--grid-total-width);\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=Scrollable.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scrollable.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,89 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
7
+ require('./Scrollable.css.js');
8
+ var core = require('@salt-ds/core');
9
+
10
+ const withBaseName = core.makePrefixer("saltGridScrollable");
11
+ function Scrollable(props) {
12
+ const {
13
+ scrollerRef,
14
+ middleRef,
15
+ topRef,
16
+ leftRef,
17
+ rightRef,
18
+ bottomRef,
19
+ resizeClient
20
+ } = props;
21
+ const onScroll = (event) => {
22
+ if (!scrollerRef.current) {
23
+ return;
24
+ }
25
+ const { scrollLeft, scrollTop } = scrollerRef.current;
26
+ const top = topRef.current;
27
+ const bottom = bottomRef.current;
28
+ if (top) {
29
+ top.scrollLeft = scrollLeft;
30
+ }
31
+ if (bottom) {
32
+ bottom.scrollLeft = scrollLeft;
33
+ }
34
+ const left = leftRef.current;
35
+ if (left) {
36
+ left.scrollTop = scrollTop;
37
+ }
38
+ const right = rightRef.current;
39
+ if (right) {
40
+ right.scrollTop = scrollTop;
41
+ }
42
+ const middle = middleRef.current;
43
+ if (middle) {
44
+ middle.scrollTop = scrollTop;
45
+ middle.scrollLeft = scrollLeft;
46
+ }
47
+ props.scroll(scrollLeft, scrollTop, "user");
48
+ };
49
+ react.useEffect(() => {
50
+ if (!scrollerRef.current) {
51
+ return;
52
+ }
53
+ const { offsetWidth, offsetHeight, clientWidth, clientHeight } = scrollerRef.current;
54
+ const scrollBarWidth = offsetWidth - clientWidth;
55
+ const scrollBarHeight = offsetHeight - clientHeight;
56
+ resizeClient(clientWidth, clientHeight, scrollBarWidth, scrollBarHeight);
57
+ });
58
+ react.useEffect(() => {
59
+ if (!scrollerRef.current) {
60
+ return;
61
+ }
62
+ const { scrollLeft, scrollTop, scrollSource } = props;
63
+ if (scrollSource === "table") {
64
+ if (scrollLeft !== scrollerRef.current.scrollLeft) {
65
+ scrollerRef.current.scrollLeft = scrollLeft;
66
+ }
67
+ if (scrollTop !== scrollerRef.current.scrollTop) {
68
+ scrollerRef.current.scrollTop = scrollTop;
69
+ }
70
+ }
71
+ }, [
72
+ props.scrollLeft,
73
+ props.scrollTop,
74
+ props.scrollSource,
75
+ scrollerRef.current
76
+ ]);
77
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
78
+ ref: scrollerRef,
79
+ className: withBaseName(),
80
+ onScroll,
81
+ "data-testid": "grid-scrollable",
82
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
83
+ className: withBaseName("space")
84
+ })
85
+ });
86
+ }
87
+
88
+ exports.Scrollable = Scrollable;
89
+ //# sourceMappingURL=Scrollable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scrollable.js","sources":["../src/internal/Scrollable.tsx"],"sourcesContent":["import { RefObject, UIEventHandler, useEffect } from \"react\";\nimport \"./Scrollable.css\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nconst withBaseName = makePrefixer(\"saltGridScrollable\");\n\nexport interface ScrollableProps<T> {\n resizeClient: (\n clientWidth: number,\n clientHeight: number,\n scrollBarWidth: number,\n scrollBarHeight: number\n ) => void;\n\n scrollLeft: number;\n scrollTop: number;\n scrollSource: \"user\" | \"table\";\n scroll: (left?: number, top?: number, source?: \"user\" | \"table\") => void;\n\n scrollerRef: RefObject<HTMLDivElement>;\n middleRef: RefObject<HTMLDivElement>;\n topRef: RefObject<HTMLDivElement>;\n leftRef: RefObject<HTMLDivElement>;\n rightRef: RefObject<HTMLDivElement>;\n bottomRef: RefObject<HTMLDivElement>;\n}\n\n// Provides scrollbars for the grid. Synchronizes scrolling across all parts\n// (pinned and unpinned).\nexport function Scrollable<T>(props: ScrollableProps<T>) {\n const {\n scrollerRef,\n middleRef,\n topRef,\n leftRef,\n rightRef,\n bottomRef,\n resizeClient,\n } = props;\n\n const onScroll: UIEventHandler<HTMLDivElement> = (event) => {\n if (!scrollerRef.current) {\n return;\n }\n const { scrollLeft, scrollTop } = scrollerRef.current;\n const top = topRef.current;\n const bottom = bottomRef.current;\n if (top) {\n top.scrollLeft = scrollLeft;\n }\n if (bottom) {\n bottom.scrollLeft = scrollLeft;\n }\n const left = leftRef.current;\n if (left) {\n left.scrollTop = scrollTop;\n }\n const right = rightRef.current;\n if (right) {\n right.scrollTop = scrollTop;\n }\n const middle = middleRef.current;\n if (middle) {\n middle.scrollTop = scrollTop;\n middle.scrollLeft = scrollLeft;\n }\n props.scroll(scrollLeft, scrollTop, \"user\");\n };\n\n useEffect(() => {\n if (!scrollerRef.current) {\n return;\n }\n const { offsetWidth, offsetHeight, clientWidth, clientHeight } =\n scrollerRef.current;\n const scrollBarWidth = offsetWidth - clientWidth;\n const scrollBarHeight = offsetHeight - clientHeight;\n resizeClient(clientWidth, clientHeight, scrollBarWidth, scrollBarHeight);\n });\n\n useEffect(() => {\n if (!scrollerRef.current) {\n return;\n }\n const { scrollLeft, scrollTop, scrollSource } = props;\n if (scrollSource === \"table\") {\n if (scrollLeft !== scrollerRef.current.scrollLeft) {\n scrollerRef.current.scrollLeft = scrollLeft;\n }\n if (scrollTop !== scrollerRef.current.scrollTop) {\n scrollerRef.current.scrollTop = scrollTop;\n }\n }\n }, [\n props.scrollLeft,\n props.scrollTop,\n props.scrollSource,\n scrollerRef.current,\n ]);\n\n return (\n <div\n ref={scrollerRef}\n className={withBaseName()}\n onScroll={onScroll}\n data-testid=\"grid-scrollable\"\n >\n <div className={withBaseName(\"space\")} />\n </div>\n );\n}\n"],"names":["makePrefixer","useEffect","jsx"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
7
+ var TableRow = require('./TableRow.js');
8
+ var utils = require('./utils.js');
9
+ var SelectionContext = require('../SelectionContext.js');
10
+ var EditorContext = require('../EditorContext.js');
11
+ var CursorContext = require('../CursorContext.js');
12
+
13
+ function TableBody(props) {
14
+ const { columns, rows, hoverRowKey, setHoverRowKey, gap, zebra } = props;
15
+ const { selRowIdxs, selectedCellRange } = SelectionContext.useSelectionContext();
16
+ const isCellInSelectedRange = react.useCallback(
17
+ (rowIdx, colIdx) => {
18
+ if (!selectedCellRange) {
19
+ return false;
20
+ }
21
+ const { start, end } = selectedCellRange;
22
+ const minRowIdx = Math.min(start.rowIdx, end.rowIdx);
23
+ const maxRowIdx = Math.max(start.rowIdx, end.rowIdx);
24
+ const minColIdx = Math.min(start.colIdx, end.colIdx);
25
+ const maxColIdx = Math.max(start.colIdx, end.colIdx);
26
+ return rowIdx >= minRowIdx && rowIdx <= maxRowIdx && colIdx >= minColIdx && colIdx <= maxColIdx;
27
+ },
28
+ [selectedCellRange]
29
+ );
30
+ const { cursorRowIdx, cursorColIdx, focusedPart, headerIsFocusable } = CursorContext.useCursorContext();
31
+ const { editMode, startEditMode } = EditorContext.useEditorContext();
32
+ const onRowMouseEnter = (event) => {
33
+ const target = event.target;
34
+ const rowKey = utils.getRowKeyAttribute(target);
35
+ setHoverRowKey(rowKey);
36
+ };
37
+ const onMouseLeave = (event) => {
38
+ setHoverRowKey(void 0);
39
+ };
40
+ const onDoubleClick = (event) => {
41
+ startEditMode();
42
+ };
43
+ return /* @__PURE__ */ jsxRuntime.jsx("tbody", {
44
+ onMouseLeave,
45
+ onDoubleClick,
46
+ children: rows.map((row) => {
47
+ const isSelected = selRowIdxs.has(row.index);
48
+ const isFollowedBySelected = selRowIdxs.has(row.index + 1);
49
+ const cursorIdx = focusedPart === "body" && cursorRowIdx === row.index ? cursorColIdx : void 0;
50
+ const editorColIdx = editMode ? cursorIdx : void 0;
51
+ return /* @__PURE__ */ jsxRuntime.jsx(TableRow.TableRow, {
52
+ row,
53
+ onMouseEnter: onRowMouseEnter,
54
+ columns,
55
+ isHoverOver: row.key === hoverRowKey,
56
+ isSelected,
57
+ isFollowedBySelected,
58
+ cursorColIdx: cursorIdx,
59
+ gap,
60
+ zebra: zebra && row.index % 2 == 0,
61
+ editorColIdx,
62
+ isCellSelected: isCellInSelectedRange,
63
+ headerIsFocusable
64
+ }, row.key);
65
+ })
66
+ });
67
+ }
68
+
69
+ exports.TableBody = TableBody;
70
+ //# sourceMappingURL=TableBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBody.js","sources":["../src/internal/TableBody.tsx"],"sourcesContent":["import { MouseEventHandler, useCallback, useMemo } from \"react\";\nimport { TableRow } from \"./TableRow\";\nimport { GridColumnModel, GridRowModel } from \"../Grid\";\nimport { getRowKeyAttribute } from \"./utils\";\nimport { useSelectionContext } from \"../SelectionContext\";\nimport { useEditorContext } from \"../EditorContext\";\nimport { useCursorContext } from \"../CursorContext\";\n\nexport interface TableBodyProps<T> {\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n hoverRowKey?: string;\n setHoverRowKey: (key: string | undefined) => void;\n gap?: number;\n zebra?: boolean;\n}\n\nexport function TableBody<T>(props: TableBodyProps<T>) {\n const { columns, rows, hoverRowKey, setHoverRowKey, gap, zebra } = props;\n const { selRowIdxs, selectedCellRange } = useSelectionContext();\n\n const isCellInSelectedRange = useCallback(\n (rowIdx: number, colIdx: number) => {\n if (!selectedCellRange) {\n return false;\n }\n const { start, end } = selectedCellRange;\n const minRowIdx = Math.min(start.rowIdx, end.rowIdx);\n const maxRowIdx = Math.max(start.rowIdx, end.rowIdx);\n const minColIdx = Math.min(start.colIdx, end.colIdx);\n const maxColIdx = Math.max(start.colIdx, end.colIdx);\n return (\n rowIdx >= minRowIdx &&\n rowIdx <= maxRowIdx &&\n colIdx >= minColIdx &&\n colIdx <= maxColIdx\n );\n },\n [selectedCellRange]\n );\n\n const { cursorRowIdx, cursorColIdx, focusedPart, headerIsFocusable } =\n useCursorContext();\n\n const { editMode, startEditMode } = useEditorContext();\n\n const onRowMouseEnter: MouseEventHandler<HTMLTableRowElement> = (event) => {\n const target = event.target as HTMLElement;\n const rowKey = getRowKeyAttribute(target);\n setHoverRowKey(rowKey);\n };\n\n const onMouseLeave: MouseEventHandler<HTMLTableSectionElement> = (event) => {\n setHoverRowKey(undefined);\n };\n\n const onDoubleClick: MouseEventHandler<HTMLTableSectionElement> = (event) => {\n startEditMode();\n };\n\n return (\n <tbody onMouseLeave={onMouseLeave} onDoubleClick={onDoubleClick}>\n {rows.map((row) => {\n const isSelected = selRowIdxs.has(row.index);\n const isFollowedBySelected = selRowIdxs.has(row.index + 1);\n const cursorIdx =\n focusedPart === \"body\" && cursorRowIdx === row.index\n ? cursorColIdx\n : undefined;\n const editorColIdx = editMode ? cursorIdx : undefined;\n return (\n <TableRow\n key={row.key}\n row={row}\n onMouseEnter={onRowMouseEnter}\n columns={columns}\n isHoverOver={row.key === hoverRowKey}\n isSelected={isSelected}\n isFollowedBySelected={isFollowedBySelected}\n cursorColIdx={cursorIdx}\n gap={gap}\n zebra={zebra && row.index % 2 == 0}\n editorColIdx={editorColIdx}\n isCellSelected={isCellInSelectedRange}\n headerIsFocusable={headerIsFocusable}\n />\n );\n })}\n </tbody>\n );\n}\n"],"names":["useSelectionContext","useCallback","useCursorContext","useEditorContext","getRowKeyAttribute","jsx","TableRow"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
7
+
8
+ function TableColGroup(props) {
9
+ const { columns, gap } = props;
10
+ return /* @__PURE__ */ jsxRuntime.jsxs("colgroup", {
11
+ children: [
12
+ columns.map((column) => {
13
+ return /* @__PURE__ */ jsxRuntime.jsx(TableCol, {
14
+ width: column.info.width
15
+ }, column.info.props.id);
16
+ }),
17
+ gap !== void 0 && gap > 0 ? /* @__PURE__ */ jsxRuntime.jsx(TableCol, {
18
+ width: gap
19
+ }, "__gap") : null
20
+ ]
21
+ });
22
+ }
23
+ function TableCol(props) {
24
+ const { width } = props;
25
+ const style = react.useMemo(() => {
26
+ return {
27
+ width: `${width}px`
28
+ };
29
+ }, [width]);
30
+ return /* @__PURE__ */ jsxRuntime.jsx("col", {
31
+ style
32
+ });
33
+ }
34
+
35
+ exports.TableCol = TableCol;
36
+ exports.TableColGroup = TableColGroup;
37
+ //# sourceMappingURL=TableColGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColGroup.js","sources":["../src/internal/TableColGroup.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { GridColumnModel } from \"../Grid\";\n\nexport interface TableColGroupProps<T> {\n columns: GridColumnModel<T>[];\n gap?: number;\n}\n\nexport interface TableColProps<T> {\n width: number;\n}\n\n// Controls column widths.\nexport function TableColGroup<T>(props: TableColGroupProps<T>) {\n const { columns, gap } = props;\n return (\n <colgroup>\n {columns.map((column) => {\n return (\n <TableCol key={column.info.props.id} width={column.info.width} />\n );\n })}\n {gap !== undefined && gap > 0 ? (\n <TableCol key=\"__gap\" width={gap} />\n ) : null}\n </colgroup>\n );\n}\n\nexport function TableCol<T>(props: TableColProps<T>) {\n const { width } = props;\n const style = useMemo(() => {\n return {\n width: `${width}px`,\n };\n }, [width]);\n return <col style={style} />;\n}\n"],"names":["jsxs","jsx","useMemo"],"mappings":";;;;;;;AAaO,SAAS,cAAiB,KAA8B,EAAA;AAC7D,EAAM,MAAA,EAAE,OAAS,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AACzB,EAAA,uBACGA,eAAA,CAAA,UAAA,EAAA;AAAA,IACE,QAAA,EAAA;AAAA,MAAQ,OAAA,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACvB,QAAA,uBACGC,cAAA,CAAA,QAAA,EAAA;AAAA,UAAoC,KAAA,EAAO,OAAO,IAAK,CAAA,KAAA;AAAA,SAAzC,EAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,EAA8B,CAAA,CAAA;AAAA,OAElE,CAAA;AAAA,MACA,GAAQ,KAAA,KAAA,CAAA,IAAa,GAAM,GAAA,CAAA,mBACzBA,cAAA,CAAA,QAAA,EAAA;AAAA,QAAqB,KAAO,EAAA,GAAA;AAAA,OAAA,EAAf,OAAoB,CAChC,GAAA,IAAA;AAAA,KAAA;AAAA,GACN,CAAA,CAAA;AAEJ,CAAA;AAEO,SAAS,SAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,EAAE,OAAU,GAAA,KAAA,CAAA;AAClB,EAAM,MAAA,KAAA,GAAQC,cAAQ,MAAM;AAC1B,IAAO,OAAA;AAAA,MACL,OAAO,CAAG,EAAA,KAAA,CAAA,EAAA,CAAA;AAAA,KACZ,CAAA;AAAA,GACF,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACV,EAAA,uBAAQD,cAAA,CAAA,KAAA,EAAA;AAAA,IAAI,KAAA;AAAA,GAAc,CAAA,CAAA;AAC5B;;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".saltGridTableRow {\n height: var(--grid-row-height);\n /* Row border doesn't render properly in Chrome on Windows. Applying borders to cells */\n --grid-row-borderColor: var(--grid-rowSeparator-color);\n --grid-row-background: var(--grid-background);\n}\n\n.saltGridTableRow-first {\n height: calc(var(--grid-row-height) + 1px);\n}\n\n.saltGridTableRow th {\n border-style: solid;\n border-color: var(--grid-row-borderColor);\n border-width: var(--grid-rowSeparator-width) 0 0 0;\n}\n\n.saltGridTableRow-divided {\n --grid-row-borderColor: var(--grid-rowSeparator-color-divided);\n}\n\n.saltGridTableRow-zebra {\n --grid-row-background: var(--grid-zebraColor);\n}\n\n.saltGridTableRow-hover {\n --grid-row-background: var(--grid-row-background-hover);\n}\n\n.saltGridTableRow-selected {\n --grid-row-borderColor: var(--grid-row-borderColor-selected);\n --grid-row-background: var(--grid-row-background-selected);\n}\n\n.saltGridTableRow-followedBySelected {\n --grid-row-borderColor: var(--grid-row-borderColor-selected);\n}\n\n.saltGridTableRow-zebra.saltGridTableRow-selected {\n --grid-row-background: var(--grid-row-background-selected);\n}\n\n.saltGridTableRow-zebra.saltGridTableRow-hover {\n --grid-row-background: var(--grid-row-background-hover);\n}\n\n.saltGridTableRow-zebra.saltGridTableRow-selected.saltGridTableRow-hover {\n --grid-row-background: var(--grid-row-background-hover);\n}\n\n.saltGridTableRow-selected.saltGridTableRow-hover {\n --grid-row-background: var(--grid-row-background-hover);\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=TableRow.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
7
+ require('./TableRow.css.js');
8
+ var BaseCell = require('../BaseCell.js');
9
+ var core = require('@salt-ds/core');
10
+ var cn = require('classnames');
11
+ var FakeCell = require('./FakeCell.js');
12
+ var DefaultCellValue = require('./DefaultCellValue.js');
13
+ var GridContext = require('../GridContext.js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
18
+
19
+ const withBaseName = core.makePrefixer("saltGridTableRow");
20
+ function TableRow(props) {
21
+ const {
22
+ row,
23
+ isSelected,
24
+ isFollowedBySelected,
25
+ zebra,
26
+ isHoverOver,
27
+ columns,
28
+ onMouseEnter,
29
+ onMouseLeave,
30
+ cursorColIdx,
31
+ gap,
32
+ editorColIdx,
33
+ isCellSelected,
34
+ headerIsFocusable
35
+ } = props;
36
+ const grid = GridContext.useGridContext();
37
+ if (!row.key) {
38
+ throw new Error(`Invalid row`);
39
+ }
40
+ const ariaRowIndex = headerIsFocusable ? row.index + 2 : row.index + 1;
41
+ return /* @__PURE__ */ jsxRuntime.jsxs("tr", {
42
+ "aria-rowindex": ariaRowIndex,
43
+ className: cn__default["default"](withBaseName(), {
44
+ [withBaseName("zebra")]: zebra,
45
+ [withBaseName("hover")]: isHoverOver,
46
+ [withBaseName("selected")]: isSelected,
47
+ [withBaseName("followedBySelected")]: isFollowedBySelected && !isSelected,
48
+ [withBaseName("first")]: row.index === 0
49
+ }),
50
+ onMouseEnter,
51
+ onMouseLeave,
52
+ "data-row-index": row.index,
53
+ "data-row-key": row.key,
54
+ role: "row",
55
+ children: [
56
+ columns.map((column, i) => {
57
+ const colKey = column.info.props.id;
58
+ const editorInfo = grid.getEditor(column.info.props.id);
59
+ const isEditable = !!editorInfo;
60
+ if (editorColIdx === column.index) {
61
+ if (isEditable) {
62
+ if (react.isValidElement(editorInfo.children)) {
63
+ const editorElement = react.Children.only(editorInfo.children);
64
+ return react.cloneElement(editorElement, {
65
+ key: colKey,
66
+ row,
67
+ column
68
+ });
69
+ }
70
+ }
71
+ }
72
+ const Cell = column.info.props.cellComponent || BaseCell.BaseCell;
73
+ const CellValue = column.info.props.cellValueComponent || DefaultCellValue.DefaultCellValue;
74
+ const value = column.info.props.getValue && row.data ? column.info.props.getValue(row.data) : null;
75
+ const isFocused = cursorColIdx === column.index;
76
+ const isSelected2 = isCellSelected && isCellSelected(row.index, column.index);
77
+ return /* @__PURE__ */ jsxRuntime.jsx(Cell, {
78
+ row,
79
+ column,
80
+ isFocused,
81
+ isSelected: isSelected2,
82
+ isEditable,
83
+ children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, {
84
+ column,
85
+ row,
86
+ value,
87
+ isFocused
88
+ })
89
+ }, colKey);
90
+ }),
91
+ gap !== void 0 && gap > 0 ? /* @__PURE__ */ jsxRuntime.jsx(FakeCell.FakeCell, {
92
+ row
93
+ }) : null
94
+ ]
95
+ });
96
+ }
97
+
98
+ exports.TableRow = TableRow;
99
+ //# sourceMappingURL=TableRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.js","sources":["../src/internal/TableRow.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n isValidElement,\n MouseEventHandler,\n} from \"react\";\nimport \"./TableRow.css\";\nimport { BaseCell } from \"../BaseCell\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport cn from \"classnames\";\nimport { GridColumnModel, GridRowModel } from \"../Grid\";\nimport { FakeCell } from \"./FakeCell\";\nimport { DefaultCellValue } from \"./DefaultCellValue\";\nimport { useGridContext } from \"../GridContext\";\n\nconst withBaseName = makePrefixer(\"saltGridTableRow\");\n\nexport interface TableRowProps<T> {\n row: GridRowModel<T>;\n isSelected?: boolean; // Render selected background and the bottom border. Top border is rendered by the previous row (it gets isFollowedBySelected = true)\n isFollowedBySelected?: boolean; // Next row is selected. Render the bottom border.\n isHoverOver?: boolean;\n zebra?: boolean;\n columns: GridColumnModel<T>[];\n cursorColIdx?: number;\n onMouseEnter?: MouseEventHandler<HTMLTableRowElement>;\n onMouseLeave?: MouseEventHandler<HTMLTableRowElement>;\n gap?: number;\n editorColIdx?: number;\n isCellSelected?: (rowIdx: number, colIdx: number) => boolean;\n headerIsFocusable?: boolean;\n}\n\nexport function TableRow<T>(props: TableRowProps<T>) {\n const {\n row,\n isSelected,\n isFollowedBySelected,\n zebra,\n isHoverOver,\n columns,\n onMouseEnter,\n onMouseLeave,\n cursorColIdx,\n gap,\n editorColIdx,\n isCellSelected,\n headerIsFocusable,\n } = props;\n\n const grid = useGridContext();\n\n if (!row.key) {\n throw new Error(`Invalid row`);\n }\n\n const ariaRowIndex = headerIsFocusable ? row.index + 2 : row.index + 1;\n\n return (\n <tr\n aria-rowindex={ariaRowIndex}\n className={cn(withBaseName(), {\n [withBaseName(\"zebra\")]: zebra,\n [withBaseName(\"hover\")]: isHoverOver,\n [withBaseName(\"selected\")]: isSelected,\n [withBaseName(\"followedBySelected\")]:\n isFollowedBySelected && !isSelected,\n [withBaseName(\"first\")]: row.index === 0,\n })}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n data-row-index={row.index}\n data-row-key={row.key}\n role=\"row\"\n >\n {columns.map((column, i) => {\n const colKey = column.info.props.id;\n const editorInfo = grid.getEditor(column.info.props.id);\n const isEditable = !!editorInfo;\n\n if (editorColIdx === column.index) {\n if (isEditable) {\n if (isValidElement(editorInfo.children)) {\n const editorElement = Children.only(editorInfo.children);\n return cloneElement(editorElement, {\n key: colKey,\n row,\n column,\n } as any);\n }\n }\n }\n\n const Cell = column.info.props.cellComponent || BaseCell;\n const CellValue =\n column.info.props.cellValueComponent || DefaultCellValue;\n const value =\n column.info.props.getValue && row.data\n ? column.info.props.getValue(row.data)\n : null;\n const isFocused = cursorColIdx === column.index;\n const isSelected =\n isCellSelected && isCellSelected(row.index, column.index);\n\n return (\n <Cell\n key={colKey}\n row={row}\n column={column}\n isFocused={isFocused}\n isSelected={isSelected}\n isEditable={isEditable}\n >\n <CellValue\n column={column}\n row={row}\n value={value}\n isFocused={isFocused}\n />\n </Cell>\n );\n })}\n {gap !== undefined && gap > 0 ? <FakeCell row={row} /> : null}\n </tr>\n );\n}\n"],"names":["makePrefixer","useGridContext","jsxs","cn","isValidElement","Children","cloneElement","BaseCell","DefaultCellValue","isSelected","jsx","FakeCell"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".saltGridTopLeftPart {\n position: absolute;\n top: 0;\n left: 0;\n z-index: var(--grid-left-header-zIndex);\n}\n\n.saltGridTopLeftPart-rightShadow {\n box-shadow: 2px 0 4px 0 var(--grid-shadow-color);\n clip-path: inset(1px -10px 0 0);\n}\n\n.saltGridTopLeftPart-bottomShadow {\n box-shadow: 0 2px 4px 0 var(--grid-shadow-color);\n clip-path: inset(1px 0 -10px 0);\n}\n\n.saltGridTopLeftPart-rightShadow.saltGridTopLeftPart-bottomShadow {\n box-shadow: 2px 2px 4px 0 var(--grid-shadow-color);\n clip-path: inset(1px -10px -10px 0);\n}\n\n.saltGridTopLeftPart table {\n table-layout: fixed;\n width: var(--grid-leftPart-width);\n height: var(--grid-topPart-height);\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=TopLeftPart.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopLeftPart.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ require('./TopLeftPart.css.js');
7
+ var TableColGroup = require('./TableColGroup.js');
8
+ var HeaderRow = require('./HeaderRow.js');
9
+ var core = require('@salt-ds/core');
10
+ var GroupHeaderRow = require('./GroupHeaderRow.js');
11
+ var cn = require('classnames');
12
+ var gridHooks = require('./gridHooks.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
17
+
18
+ const withBaseName = core.makePrefixer("saltGridTopLeftPart");
19
+ function TopLeftPart(props) {
20
+ const { onWheel, columns, columnGroups, rightShadow, bottomShadow } = props;
21
+ const tableRef = gridHooks.useActiveOnWheel(onWheel);
22
+ if (columns.length === 0) {
23
+ return null;
24
+ }
25
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
26
+ className: cn__default["default"](withBaseName(), {
27
+ [withBaseName("rightShadow")]: rightShadow,
28
+ [withBaseName("bottomShadow")]: bottomShadow
29
+ }),
30
+ "data-testid": "grid-top-left-part",
31
+ children: /* @__PURE__ */ jsxRuntime.jsxs("table", {
32
+ ref: tableRef,
33
+ role: "presentation",
34
+ children: [
35
+ /* @__PURE__ */ jsxRuntime.jsx(TableColGroup.TableColGroup, {
36
+ columns
37
+ }),
38
+ /* @__PURE__ */ jsxRuntime.jsxs("thead", {
39
+ children: [
40
+ /* @__PURE__ */ jsxRuntime.jsx(GroupHeaderRow.GroupHeaderRow, {
41
+ groups: columnGroups
42
+ }),
43
+ /* @__PURE__ */ jsxRuntime.jsx(HeaderRow.HeaderRow, {
44
+ columns
45
+ })
46
+ ]
47
+ })
48
+ ]
49
+ })
50
+ });
51
+ }
52
+
53
+ exports.TopLeftPart = TopLeftPart;
54
+ //# sourceMappingURL=TopLeftPart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopLeftPart.js","sources":["../src/internal/TopLeftPart.tsx"],"sourcesContent":["import \"./TopLeftPart.css\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport cx from \"classnames\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nconst withBaseName = makePrefixer(\"saltGridTopLeftPart\");\n\nexport interface TopLeftPartProps<T> {\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n rightShadow?: boolean;\n bottomShadow?: boolean;\n}\n\nexport function TopLeftPart<T>(props: TopLeftPartProps<T>) {\n const { onWheel, columns, columnGroups, rightShadow, bottomShadow } = props;\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n className={cx(withBaseName(), {\n [withBaseName(\"rightShadow\")]: rightShadow,\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n data-testid=\"grid-top-left-part\"\n >\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} />\n <thead>\n <GroupHeaderRow groups={columnGroups} />\n <HeaderRow columns={columns} />\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["makePrefixer","useActiveOnWheel","jsx","cx","jsxs","TableColGroup","GroupHeaderRow","HeaderRow"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,kBAAa,qBAAqB,CAAA,CAAA;AAUhD,SAAS,YAAe,KAA4B,EAAA;AACzD,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,YAAc,EAAA,WAAA,EAAa,cAAiB,GAAA,KAAA,CAAA;AAEtE,EAAM,MAAA,QAAA,GAAWC,2BAAiB,OAAO,CAAA,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EAAWC,sBAAG,CAAA,YAAA,EAAgB,EAAA;AAAA,MAC5B,CAAC,YAAa,CAAA,aAAa,CAAI,GAAA,WAAA;AAAA,MAC/B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,KACjC,CAAA;AAAA,IACD,aAAY,EAAA,oBAAA;AAAA,IAEZ,QAAC,kBAAAC,eAAA,CAAA,OAAA,EAAA;AAAA,MAAM,GAAK,EAAA,QAAA;AAAA,MAAU,IAAK,EAAA,cAAA;AAAA,MACzB,QAAA,EAAA;AAAA,wBAACF,cAAA,CAAAG,2BAAA,EAAA;AAAA,UAAc,OAAA;AAAA,SAAkB,CAAA;AAAA,wBAChCD,eAAA,CAAA,OAAA,EAAA;AAAA,UACC,QAAA,EAAA;AAAA,4BAACF,cAAA,CAAAI,6BAAA,EAAA;AAAA,cAAe,MAAQ,EAAA,YAAA;AAAA,aAAc,CAAA;AAAA,4BACrCJ,cAAA,CAAAK,mBAAA,EAAA;AAAA,cAAU,OAAA;AAAA,aAAkB,CAAA;AAAA,WAAA;AAAA,SAC/B,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".saltGridTopPart {\n position: absolute;\n top: 0;\n left: 0;\n right: var(--grid-scrollBar-width);\n overflow-x: hidden;\n overflow-y: hidden;\n clip-path: inset(0 var(--grid-rightPart-width) 0 var(--grid-leftPart-width));\n z-index: var(--grid-middle-header-zIndex);\n}\n\n.saltGridTopPart-bottomShadow {\n box-shadow: 0 2px 4px 0 var(--grid-shadow-color);\n clip-path: inset(0 var(--grid-rightPart-width) -10px var(--grid-leftPart-width));\n}\n\n.saltGridTopPart-space {\n height: var(--grid-topPart-height);\n width: var(--grid-total-width);\n}\n\n.saltGridTopPart table {\n table-layout: fixed;\n position: absolute;\n top: 0;\n\n width: var(--grid-headerVisibleColumns-width);\n height: var(--grid-topPart-height);\n left: var(--grid-headerVisibleArea-left);\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=TopPart.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopPart.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}