@salt-ds/data-grid 1.0.5 → 1.0.6

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 (230) hide show
  1. package/dist-cjs/BaseCell.js +3 -3
  2. package/dist-cjs/BaseCell.js.map +1 -1
  3. package/dist-cjs/CellEditor.js.map +1 -1
  4. package/dist-cjs/CellFrame.js +2 -2
  5. package/dist-cjs/CellFrame.js.map +1 -1
  6. package/dist-cjs/ColumnDataContext.js +1 -1
  7. package/dist-cjs/ColumnDataContext.js.map +1 -1
  8. package/dist-cjs/ColumnDragContext.js +1 -1
  9. package/dist-cjs/ColumnDragContext.js.map +1 -1
  10. package/dist-cjs/ColumnGroup.js +1 -1
  11. package/dist-cjs/ColumnGroup.js.map +1 -1
  12. package/dist-cjs/ColumnSortContext.js +1 -1
  13. package/dist-cjs/ColumnSortContext.js.map +1 -1
  14. package/dist-cjs/CornerTag.js +1 -1
  15. package/dist-cjs/CornerTag.js.map +1 -1
  16. package/dist-cjs/CursorContext.js +1 -1
  17. package/dist-cjs/CursorContext.js.map +1 -1
  18. package/dist-cjs/DropdownCellEditor.js.map +1 -1
  19. package/dist-cjs/EditorContext.js +1 -1
  20. package/dist-cjs/EditorContext.js.map +1 -1
  21. package/dist-cjs/Grid.js +35 -41
  22. package/dist-cjs/Grid.js.map +1 -1
  23. package/dist-cjs/GridColumn.js.map +1 -1
  24. package/dist-cjs/GridContext.js +1 -1
  25. package/dist-cjs/GridContext.js.map +1 -1
  26. package/dist-cjs/GroupHeaderCell.js +2 -2
  27. package/dist-cjs/GroupHeaderCell.js.map +1 -1
  28. package/dist-cjs/GroupHeaderCellValue.js.map +1 -1
  29. package/dist-cjs/HeaderCell.js +9 -9
  30. package/dist-cjs/HeaderCell.js.map +1 -1
  31. package/dist-cjs/HeaderCellValue.js.map +1 -1
  32. package/dist-cjs/LayoutContext.js.map +1 -1
  33. package/dist-cjs/NumericColumn.js.map +1 -1
  34. package/dist-cjs/RowSelectionCheckboxCellValue.js +2 -2
  35. package/dist-cjs/RowSelectionCheckboxCellValue.js.map +1 -1
  36. package/dist-cjs/RowSelectionCheckboxColumn.js +3 -3
  37. package/dist-cjs/RowSelectionCheckboxColumn.js.map +1 -1
  38. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js +2 -2
  39. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  40. package/dist-cjs/RowSelectionRadioCellValue.js +1 -1
  41. package/dist-cjs/RowSelectionRadioCellValue.js.map +1 -1
  42. package/dist-cjs/RowSelectionRadioColumn.js +2 -2
  43. package/dist-cjs/RowSelectionRadioColumn.js.map +1 -1
  44. package/dist-cjs/RowSelectionRadioHeaderCell.js +1 -1
  45. package/dist-cjs/RowSelectionRadioHeaderCell.js.map +1 -1
  46. package/dist-cjs/RowValidationStatus.js.map +1 -1
  47. package/dist-cjs/SelectionContext.js +1 -1
  48. package/dist-cjs/SelectionContext.js.map +1 -1
  49. package/dist-cjs/SizingContext.js +1 -1
  50. package/dist-cjs/SizingContext.js.map +1 -1
  51. package/dist-cjs/TextCellEditor.js.map +1 -1
  52. package/dist-cjs/internal/CellMeasure.js +2 -2
  53. package/dist-cjs/internal/CellMeasure.js.map +1 -1
  54. package/dist-cjs/internal/ColumnDropTarget.js +2 -2
  55. package/dist-cjs/internal/ColumnDropTarget.js.map +1 -1
  56. package/dist-cjs/internal/ColumnGhost.js +3 -3
  57. package/dist-cjs/internal/ColumnGhost.js.map +1 -1
  58. package/dist-cjs/internal/Cursor.js +2 -2
  59. package/dist-cjs/internal/Cursor.js.map +1 -1
  60. package/dist-cjs/internal/DefaultCellValue.js +2 -2
  61. package/dist-cjs/internal/DefaultCellValue.js.map +1 -1
  62. package/dist-cjs/internal/FakeCell.js +1 -1
  63. package/dist-cjs/internal/FakeCell.js.map +1 -1
  64. package/dist-cjs/internal/GroupHeaderRow.js +1 -1
  65. package/dist-cjs/internal/GroupHeaderRow.js.map +1 -1
  66. package/dist-cjs/internal/HeaderRow.js +2 -2
  67. package/dist-cjs/internal/HeaderRow.js.map +1 -1
  68. package/dist-cjs/internal/LeftPart.js +4 -4
  69. package/dist-cjs/internal/LeftPart.js.map +1 -1
  70. package/dist-cjs/internal/MiddlePart.js +3 -3
  71. package/dist-cjs/internal/MiddlePart.js.map +1 -1
  72. package/dist-cjs/internal/RightPart.js +3 -3
  73. package/dist-cjs/internal/RightPart.js.map +1 -1
  74. package/dist-cjs/internal/Scrollable.js +2 -2
  75. package/dist-cjs/internal/Scrollable.js.map +1 -1
  76. package/dist-cjs/internal/TableBody.js +6 -6
  77. package/dist-cjs/internal/TableBody.js.map +1 -1
  78. package/dist-cjs/internal/TableColGroup.js.map +1 -1
  79. package/dist-cjs/internal/TableRow.js +7 -7
  80. package/dist-cjs/internal/TableRow.js.map +1 -1
  81. package/dist-cjs/internal/TopLeftPart.js +3 -3
  82. package/dist-cjs/internal/TopLeftPart.js.map +1 -1
  83. package/dist-cjs/internal/TopPart.js +3 -3
  84. package/dist-cjs/internal/TopPart.js.map +1 -1
  85. package/dist-cjs/internal/TopRightPart.js +3 -3
  86. package/dist-cjs/internal/TopRightPart.js.map +1 -1
  87. package/dist-cjs/internal/gridHooks.js +23 -23
  88. package/dist-cjs/internal/gridHooks.js.map +1 -1
  89. package/dist-cjs/internal/utils.js +5 -5
  90. package/dist-cjs/internal/utils.js.map +1 -1
  91. package/dist-es/BaseCell.js +3 -3
  92. package/dist-es/BaseCell.js.map +1 -1
  93. package/dist-es/CellEditor.js.map +1 -1
  94. package/dist-es/CellFrame.js +2 -2
  95. package/dist-es/CellFrame.js.map +1 -1
  96. package/dist-es/ColumnDataContext.js +1 -1
  97. package/dist-es/ColumnDataContext.js.map +1 -1
  98. package/dist-es/ColumnDragContext.js +1 -1
  99. package/dist-es/ColumnDragContext.js.map +1 -1
  100. package/dist-es/ColumnGroup.js +1 -1
  101. package/dist-es/ColumnGroup.js.map +1 -1
  102. package/dist-es/ColumnSortContext.js +1 -1
  103. package/dist-es/ColumnSortContext.js.map +1 -1
  104. package/dist-es/CornerTag.js +1 -1
  105. package/dist-es/CornerTag.js.map +1 -1
  106. package/dist-es/CursorContext.js +1 -1
  107. package/dist-es/CursorContext.js.map +1 -1
  108. package/dist-es/DropdownCellEditor.js.map +1 -1
  109. package/dist-es/EditorContext.js +1 -1
  110. package/dist-es/EditorContext.js.map +1 -1
  111. package/dist-es/Grid.js +35 -41
  112. package/dist-es/Grid.js.map +1 -1
  113. package/dist-es/GridColumn.js.map +1 -1
  114. package/dist-es/GridContext.js +1 -1
  115. package/dist-es/GridContext.js.map +1 -1
  116. package/dist-es/GroupHeaderCell.js +2 -2
  117. package/dist-es/GroupHeaderCell.js.map +1 -1
  118. package/dist-es/GroupHeaderCellValue.js.map +1 -1
  119. package/dist-es/HeaderCell.js +9 -9
  120. package/dist-es/HeaderCell.js.map +1 -1
  121. package/dist-es/HeaderCellValue.js.map +1 -1
  122. package/dist-es/LayoutContext.js.map +1 -1
  123. package/dist-es/NumericColumn.js.map +1 -1
  124. package/dist-es/RowSelectionCheckboxCellValue.js +2 -2
  125. package/dist-es/RowSelectionCheckboxCellValue.js.map +1 -1
  126. package/dist-es/RowSelectionCheckboxColumn.js +3 -3
  127. package/dist-es/RowSelectionCheckboxColumn.js.map +1 -1
  128. package/dist-es/RowSelectionCheckboxHeaderCellValue.js +2 -2
  129. package/dist-es/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  130. package/dist-es/RowSelectionRadioCellValue.js +1 -1
  131. package/dist-es/RowSelectionRadioCellValue.js.map +1 -1
  132. package/dist-es/RowSelectionRadioColumn.js +2 -2
  133. package/dist-es/RowSelectionRadioColumn.js.map +1 -1
  134. package/dist-es/RowSelectionRadioHeaderCell.js +1 -1
  135. package/dist-es/RowSelectionRadioHeaderCell.js.map +1 -1
  136. package/dist-es/RowValidationStatus.js.map +1 -1
  137. package/dist-es/SelectionContext.js +1 -1
  138. package/dist-es/SelectionContext.js.map +1 -1
  139. package/dist-es/SizingContext.js +1 -1
  140. package/dist-es/SizingContext.js.map +1 -1
  141. package/dist-es/TextCellEditor.js.map +1 -1
  142. package/dist-es/internal/CellMeasure.js +2 -2
  143. package/dist-es/internal/CellMeasure.js.map +1 -1
  144. package/dist-es/internal/ColumnDropTarget.js +2 -2
  145. package/dist-es/internal/ColumnDropTarget.js.map +1 -1
  146. package/dist-es/internal/ColumnGhost.js +3 -3
  147. package/dist-es/internal/ColumnGhost.js.map +1 -1
  148. package/dist-es/internal/Cursor.js +2 -2
  149. package/dist-es/internal/Cursor.js.map +1 -1
  150. package/dist-es/internal/DefaultCellValue.js +2 -2
  151. package/dist-es/internal/DefaultCellValue.js.map +1 -1
  152. package/dist-es/internal/FakeCell.js +1 -1
  153. package/dist-es/internal/FakeCell.js.map +1 -1
  154. package/dist-es/internal/GroupHeaderRow.js +1 -1
  155. package/dist-es/internal/GroupHeaderRow.js.map +1 -1
  156. package/dist-es/internal/HeaderRow.js +2 -2
  157. package/dist-es/internal/HeaderRow.js.map +1 -1
  158. package/dist-es/internal/LeftPart.js +4 -4
  159. package/dist-es/internal/LeftPart.js.map +1 -1
  160. package/dist-es/internal/MiddlePart.js +3 -3
  161. package/dist-es/internal/MiddlePart.js.map +1 -1
  162. package/dist-es/internal/RightPart.js +3 -3
  163. package/dist-es/internal/RightPart.js.map +1 -1
  164. package/dist-es/internal/Scrollable.js +2 -2
  165. package/dist-es/internal/Scrollable.js.map +1 -1
  166. package/dist-es/internal/TableBody.js +6 -6
  167. package/dist-es/internal/TableBody.js.map +1 -1
  168. package/dist-es/internal/TableColGroup.js.map +1 -1
  169. package/dist-es/internal/TableRow.js +7 -7
  170. package/dist-es/internal/TableRow.js.map +1 -1
  171. package/dist-es/internal/TopLeftPart.js +3 -3
  172. package/dist-es/internal/TopLeftPart.js.map +1 -1
  173. package/dist-es/internal/TopPart.js +3 -3
  174. package/dist-es/internal/TopPart.js.map +1 -1
  175. package/dist-es/internal/TopRightPart.js +3 -3
  176. package/dist-es/internal/TopRightPart.js.map +1 -1
  177. package/dist-es/internal/gridHooks.js +23 -23
  178. package/dist-es/internal/gridHooks.js.map +1 -1
  179. package/dist-es/internal/utils.js +5 -5
  180. package/dist-es/internal/utils.js.map +1 -1
  181. package/dist-types/BaseCell.d.ts +3 -3
  182. package/dist-types/CellEditor.d.ts +1 -1
  183. package/dist-types/CellFrame.d.ts +2 -2
  184. package/dist-types/ColumnDragContext.d.ts +1 -1
  185. package/dist-types/ColumnGroup.d.ts +4 -4
  186. package/dist-types/ColumnSortContext.d.ts +5 -5
  187. package/dist-types/CornerTag.d.ts +1 -1
  188. package/dist-types/DropdownCellEditor.d.ts +2 -2
  189. package/dist-types/Grid.d.ts +4 -4
  190. package/dist-types/GridColumn.d.ts +3 -3
  191. package/dist-types/GridContext.d.ts +2 -2
  192. package/dist-types/GroupHeaderCell.d.ts +3 -3
  193. package/dist-types/GroupHeaderCellValue.d.ts +2 -2
  194. package/dist-types/HeaderCell.d.ts +5 -5
  195. package/dist-types/HeaderCellValue.d.ts +2 -2
  196. package/dist-types/NumericColumn.d.ts +6 -6
  197. package/dist-types/RowSelectionCheckboxCellValue.d.ts +2 -2
  198. package/dist-types/RowSelectionCheckboxColumn.d.ts +2 -2
  199. package/dist-types/RowSelectionCheckboxHeaderCellValue.d.ts +2 -2
  200. package/dist-types/RowSelectionRadioCellValue.d.ts +2 -2
  201. package/dist-types/RowSelectionRadioColumn.d.ts +2 -2
  202. package/dist-types/RowSelectionRadioHeaderCell.d.ts +2 -2
  203. package/dist-types/RowValidationStatus.d.ts +2 -2
  204. package/dist-types/SelectionContext.d.ts +1 -1
  205. package/dist-types/SizingContext.d.ts +3 -3
  206. package/dist-types/TextCellEditor.d.ts +2 -2
  207. package/dist-types/internal/CellMeasure.d.ts +1 -1
  208. package/dist-types/internal/CellStatusIcons.d.ts +3 -3
  209. package/dist-types/internal/ColumnDropTarget.d.ts +1 -1
  210. package/dist-types/internal/ColumnGhost.d.ts +3 -3
  211. package/dist-types/internal/Cursor.d.ts +1 -3
  212. package/dist-types/internal/DefaultCellValue.d.ts +2 -2
  213. package/dist-types/internal/FakeCell.d.ts +2 -2
  214. package/dist-types/internal/FakeGroupCell.d.ts +1 -1
  215. package/dist-types/internal/FakeHeaderCell.d.ts +1 -1
  216. package/dist-types/internal/GroupHeaderRow.d.ts +2 -2
  217. package/dist-types/internal/HeaderRow.d.ts +2 -2
  218. package/dist-types/internal/LeftPart.d.ts +4 -4
  219. package/dist-types/internal/MiddlePart.d.ts +4 -4
  220. package/dist-types/internal/RightPart.d.ts +4 -4
  221. package/dist-types/internal/Scrollable.d.ts +2 -2
  222. package/dist-types/internal/TableBody.d.ts +3 -3
  223. package/dist-types/internal/TableColGroup.d.ts +3 -3
  224. package/dist-types/internal/TableRow.d.ts +4 -4
  225. package/dist-types/internal/TopLeftPart.d.ts +2 -2
  226. package/dist-types/internal/TopPart.d.ts +3 -3
  227. package/dist-types/internal/TopRightPart.d.ts +2 -2
  228. package/dist-types/internal/gridHooks.d.ts +13 -13
  229. package/dist-types/internal/utils.d.ts +1 -1
  230. package/package.json +3 -3
@@ -18,10 +18,10 @@ require('./internal/MiddlePart.js');
18
18
  require('./internal/RightPart.js');
19
19
  require('./internal/Scrollable.js');
20
20
  require('react');
21
- require('./internal/TableRow.js');
22
- require('./SelectionContext.js');
23
- require('./EditorContext.js');
24
21
  require('./CursorContext.js');
22
+ require('./EditorContext.js');
23
+ require('./SelectionContext.js');
24
+ require('./internal/TableRow.js');
25
25
  var gridHooks = require('./internal/gridHooks.js');
26
26
  require('./internal/TopLeftPart.js');
27
27
  require('./internal/TopPart.js');
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCell.js","sources":["../src/BaseCell.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { GridColumnModel } from \"./Grid\";\nimport { GridCellProps } from \"./GridColumn\";\nimport { Cursor, useFocusableContent } from \"./internal\";\nimport {\n CellErrorIcon,\n CellSuccessIcon,\n CellWarningIcon,\n} from \"./internal/CellStatusIcons\";\n\nimport baseCellCss from \"./BaseCell.css\";\n\nconst withBaseName = makePrefixer(\"saltGridBaseCell\");\n\nexport function getCellId<T>(rowKey: string, column: GridColumnModel<T>) {\n return `R${rowKey}C${column.info.props.id}`;\n}\n\nconst icons = {\n warning: CellWarningIcon,\n error: CellErrorIcon,\n success: CellSuccessIcon,\n};\n\n// Default component for grid cells. Provides selection, on-hover highlighting,\n// cursor etc.\nexport function BaseCell<T>(props: GridCellProps<T>) {\n const {\n column,\n className,\n row,\n style,\n isFocused,\n isSelected,\n isEditable,\n children,\n validationStatus,\n validationMessage,\n validationType = \"light\",\n align,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-base-cell\",\n css: baseCellCss,\n window: targetWindow,\n });\n\n const { ref, isFocusableContent, onFocus } =\n useFocusableContent<HTMLTableCellElement>();\n const cellId = getCellId(row.key, column);\n const hasValidation = !!validationStatus;\n const hasValidationMessage = !!validationMessage || hasValidation;\n const validationMessageId = `${cellId}-statusMessage`;\n return (\n <CellFrame\n ref={ref}\n id={cellId}\n data-row-index={row.index}\n data-column-index={column.index}\n data-testid={isFocused ? \"grid-cell-focused\" : undefined}\n // aria-colindex uses one-based array indexing\n aria-colindex={column.index + 1}\n role=\"gridcell\"\n separator={column.separator}\n isSelected={isSelected}\n isEditable={isEditable}\n className={clsx(className, {\n [withBaseName(\"hasValidation\")]: hasValidation,\n [withBaseName(`status-${validationStatus as string}`)]:\n validationStatus,\n })}\n style={style}\n tabIndex={isFocused && !isFocusableContent ? 0 : -1}\n onFocus={onFocus}\n aria-invalid={validationStatus === \"error\" || undefined}\n aria-describedby={hasValidationMessage ? validationMessageId : undefined}\n >\n {hasValidationMessage ? (\n <div\n id={validationMessageId}\n className=\"salt-visuallyHidden\"\n aria-hidden\n role=\"status\"\n >\n {validationMessage\n ? validationMessage\n : `Cell validation state is ${validationStatus as string}`}\n </div>\n ) : null}\n <div className={clsx(withBaseName(\"valueContainer\"))}>{children}</div>\n {hasValidation && validationType === \"strong\" ? (\n <div\n className={clsx(withBaseName(\"statusContainer\"), {\n [withBaseName(`statusContainer-align-${align as string}`)]: align,\n })}\n >\n {icons[validationStatus]}\n </div>\n ) : null}\n {isFocused && isEditable && <CornerTag focusOnly={true} />}\n {isFocused && !isFocusableContent && <Cursor />}\n </CellFrame>\n );\n}\n"],"names":["makePrefixer","CellWarningIcon","CellErrorIcon","CellSuccessIcon","useWindow","useComponentCssInjection","baseCellCss","useFocusableContent","jsxs","CellFrame","clsx","jsx","CornerTag","Cursor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA,CAAA;AAEpC,SAAA,SAAA,CAAa,QAAgB,MAA4B,EAAA;AACvE,EAAA,OAAO,CAAI,CAAA,EAAA,MAAA,CAAA,CAAA,EAAU,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,EAAA,CAAA,CAAA,CAAA;AACzC,CAAA;AAEA,MAAM,KAAQ,GAAA;AAAA,EACZ,OAAS,EAAAC,+BAAA;AAAA,EACT,KAAO,EAAAC,6BAAA;AAAA,EACP,OAAS,EAAAC,+BAAA;AACX,CAAA,CAAA;AAIO,SAAS,SAAY,KAAyB,EAAA;AACnD,EAAM,MAAA;AAAA,IACJ,MAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAiB,GAAA,OAAA;AAAA,IACjB,KAAA;AAAA,GACE,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAAC,UAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,GAAA,EAAK,kBAAoB,EAAA,OAAA,KAC/BC,6BAA0C,EAAA,CAAA;AAC5C,EAAA,MAAM,MAAS,GAAA,SAAA,CAAU,GAAI,CAAA,GAAA,EAAK,MAAM,CAAA,CAAA;AACxC,EAAM,MAAA,aAAA,GAAgB,CAAC,CAAC,gBAAA,CAAA;AACxB,EAAM,MAAA,oBAAA,GAAuB,CAAC,CAAC,iBAAqB,IAAA,aAAA,CAAA;AACpD,EAAA,MAAM,sBAAsB,CAAG,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA;AAC/B,EAAA,uBACGC,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,EAAI,EAAA,MAAA;AAAA,IACJ,kBAAgB,GAAI,CAAA,KAAA;AAAA,IACpB,qBAAmB,MAAO,CAAA,KAAA;AAAA,IAC1B,aAAA,EAAa,YAAY,mBAAsB,GAAA,KAAA,CAAA;AAAA,IAE/C,eAAA,EAAe,OAAO,KAAQ,GAAA,CAAA;AAAA,IAC9B,IAAK,EAAA,UAAA;AAAA,IACL,WAAW,MAAO,CAAA,SAAA;AAAA,IAClB,UAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAWC,UAAK,SAAW,EAAA;AAAA,MACzB,CAAC,YAAa,CAAA,eAAe,CAAI,GAAA,aAAA;AAAA,MACjC,CAAC,YAAA,CAAa,CAAU,OAAA,EAAA,gBAAA,CAAA,CAA4B,CAClD,GAAA,gBAAA;AAAA,KACH,CAAA;AAAA,IACD,KAAA;AAAA,IACA,QAAU,EAAA,SAAA,IAAa,CAAC,kBAAA,GAAqB,CAAI,GAAA,CAAA,CAAA;AAAA,IACjD,OAAA;AAAA,IACA,cAAA,EAAc,qBAAqB,OAAW,IAAA,KAAA,CAAA;AAAA,IAC9C,kBAAA,EAAkB,uBAAuB,mBAAsB,GAAA,KAAA,CAAA;AAAA,IAE9D,QAAA,EAAA;AAAA,MAAA,oBAAA,mBACEC,cAAA,CAAA,KAAA,EAAA;AAAA,QACC,EAAI,EAAA,mBAAA;AAAA,QACJ,SAAU,EAAA,qBAAA;AAAA,QACV,aAAW,EAAA,IAAA;AAAA,QACX,IAAK,EAAA,QAAA;AAAA,QAEJ,QAAA,EAAA,iBAAA,GACG,oBACA,CAA4B,yBAAA,EAAA,gBAAA,CAAA,CAAA;AAAA,OAClC,CACE,GAAA,IAAA;AAAA,sBACHA,cAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAW,EAAAD,SAAA,CAAK,YAAa,CAAA,gBAAgB,CAAC,CAAA;AAAA,QAAI,QAAA;AAAA,OAAS,CAAA;AAAA,MAC/D,aAAA,IAAiB,cAAmB,KAAA,QAAA,mBAClCC,cAAA,CAAA,KAAA,EAAA;AAAA,QACC,SAAW,EAAAD,SAAA,CAAK,YAAa,CAAA,iBAAiB,CAAG,EAAA;AAAA,UAC/C,CAAC,YAAA,CAAa,CAAyB,sBAAA,EAAA,KAAA,CAAA,CAAiB,CAAI,GAAA,KAAA;AAAA,SAC7D,CAAA;AAAA,QAEA,QAAM,EAAA,KAAA,CAAA,gBAAA,CAAA;AAAA,OACT,CACE,GAAA,IAAA;AAAA,MACH,SAAA,IAAa,8BAAeC,cAAA,CAAAC,mBAAA,EAAA;AAAA,QAAU,SAAW,EAAA,IAAA;AAAA,OAAM,CAAA;AAAA,MACvD,SAAa,IAAA,CAAC,kBAAsB,oBAAAD,cAAA,CAACE,aAAO,EAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAC/C,CAAA,CAAA;AAEJ;;;;;"}
1
+ {"version":3,"file":"BaseCell.js","sources":["../src/BaseCell.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport type { GridColumnModel } from \"./Grid\";\nimport type { GridCellProps } from \"./GridColumn\";\nimport { Cursor, useFocusableContent } from \"./internal\";\nimport {\n CellErrorIcon,\n CellSuccessIcon,\n CellWarningIcon,\n} from \"./internal/CellStatusIcons\";\n\nimport baseCellCss from \"./BaseCell.css\";\n\nconst withBaseName = makePrefixer(\"saltGridBaseCell\");\n\nexport function getCellId<T>(rowKey: string, column: GridColumnModel<T>) {\n return `R${rowKey}C${column.info.props.id}`;\n}\n\nconst icons = {\n warning: CellWarningIcon,\n error: CellErrorIcon,\n success: CellSuccessIcon,\n};\n\n// Default component for grid cells. Provides selection, on-hover highlighting,\n// cursor etc.\nexport function BaseCell<T>(props: GridCellProps<T>) {\n const {\n column,\n className,\n row,\n style,\n isFocused,\n isSelected,\n isEditable,\n children,\n validationStatus,\n validationMessage,\n validationType = \"light\",\n align,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-base-cell\",\n css: baseCellCss,\n window: targetWindow,\n });\n\n const { ref, isFocusableContent, onFocus } =\n useFocusableContent<HTMLTableCellElement>();\n const cellId = getCellId(row.key, column);\n const hasValidation = !!validationStatus;\n const hasValidationMessage = !!validationMessage || hasValidation;\n const validationMessageId = `${cellId}-statusMessage`;\n return (\n <CellFrame\n ref={ref}\n id={cellId}\n data-row-index={row.index}\n data-column-index={column.index}\n data-testid={isFocused ? \"grid-cell-focused\" : undefined}\n // aria-colindex uses one-based array indexing\n aria-colindex={column.index + 1}\n role=\"gridcell\"\n separator={column.separator}\n isSelected={isSelected}\n isEditable={isEditable}\n className={clsx(className, {\n [withBaseName(\"hasValidation\")]: hasValidation,\n [withBaseName(`status-${validationStatus as string}`)]:\n validationStatus,\n })}\n style={style}\n tabIndex={isFocused && !isFocusableContent ? 0 : -1}\n onFocus={onFocus}\n aria-invalid={validationStatus === \"error\" || undefined}\n aria-describedby={hasValidationMessage ? validationMessageId : undefined}\n >\n {hasValidationMessage ? (\n <div\n id={validationMessageId}\n className=\"salt-visuallyHidden\"\n aria-hidden\n role=\"status\"\n >\n {validationMessage\n ? validationMessage\n : `Cell validation state is ${validationStatus as string}`}\n </div>\n ) : null}\n <div className={clsx(withBaseName(\"valueContainer\"))}>{children}</div>\n {hasValidation && validationType === \"strong\" ? (\n <div\n className={clsx(withBaseName(\"statusContainer\"), {\n [withBaseName(`statusContainer-align-${align as string}`)]: align,\n })}\n >\n {icons[validationStatus]}\n </div>\n ) : null}\n {isFocused && isEditable && <CornerTag focusOnly={true} />}\n {isFocused && !isFocusableContent && <Cursor />}\n </CellFrame>\n );\n}\n"],"names":["makePrefixer","CellWarningIcon","CellErrorIcon","CellSuccessIcon","useWindow","useComponentCssInjection","baseCellCss","useFocusableContent","jsxs","CellFrame","clsx","jsx","CornerTag","Cursor"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CellEditor.js","sources":["../src/CellEditor.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo } from \"react\";\nimport { useGridContext } from \"./GridContext\";\n\nexport interface CellEditorInfo<T> {\n columnId: string;\n children: ReactNode;\n}\n\nexport interface CellEditorProps<T> {\n columnId?: string;\n children: ReactNode;\n}\n\n// Non-rendered component. Used as a child of GridColumn. Children prop is\n// expected to be a specific implementation of cell editor (text, dropdown etc)\n// Registers the editor in the grid. The grid then renders the editor when\n// edit mode is activated.\n// TODO This feature is experimental.\nexport function CellEditor<T>(props: CellEditorProps<T>) {\n const { children } = props;\n const columnId = props.columnId!;\n const grid = useGridContext();\n\n const info = useMemo(\n () => ({\n columnId,\n children,\n }),\n [columnId, children]\n );\n\n useEffect(() => {\n grid.onEditorAdded(info);\n return () => {\n grid.onEditorRemoved(info);\n };\n }, [info]);\n\n return null;\n}\n"],"names":["useGridContext","useMemo","useEffect"],"mappings":";;;;;;;AAkBO,SAAS,WAAc,KAA2B,EAAA;AACvD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAA;AACrB,EAAA,MAAM,WAAW,KAAM,CAAA,QAAA,CAAA;AACvB,EAAA,MAAM,OAAOA,0BAAe,EAAA,CAAA;AAE5B,EAAA,MAAM,IAAO,GAAAC,aAAA;AAAA,IACX,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,UAAU,QAAQ,CAAA;AAAA,GACrB,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAA,CAAK,cAAc,IAAI,CAAA,CAAA;AACvB,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,gBAAgB,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"CellEditor.js","sources":["../src/CellEditor.tsx"],"sourcesContent":["import { type ReactNode, useEffect, useMemo } from \"react\";\nimport { useGridContext } from \"./GridContext\";\n\nexport interface CellEditorInfo<T> {\n columnId: string;\n children: ReactNode;\n}\n\nexport interface CellEditorProps<T> {\n columnId?: string;\n children: ReactNode;\n}\n\n// Non-rendered component. Used as a child of GridColumn. Children prop is\n// expected to be a specific implementation of cell editor (text, dropdown etc)\n// Registers the editor in the grid. The grid then renders the editor when\n// edit mode is activated.\n// TODO This feature is experimental.\nexport function CellEditor<T>(props: CellEditorProps<T>) {\n const { children } = props;\n const columnId = props.columnId!;\n const grid = useGridContext();\n\n const info = useMemo(\n () => ({\n columnId,\n children,\n }),\n [columnId, children],\n );\n\n useEffect(() => {\n grid.onEditorAdded(info);\n return () => {\n grid.onEditorRemoved(info);\n };\n }, [info]);\n\n return null;\n}\n"],"names":["useGridContext","useMemo","useEffect"],"mappings":";;;;;;;AAkBO,SAAS,WAAc,KAA2B,EAAA;AACvD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAA;AACrB,EAAA,MAAM,WAAW,KAAM,CAAA,QAAA,CAAA;AACvB,EAAA,MAAM,OAAOA,0BAAe,EAAA,CAAA;AAE5B,EAAA,MAAM,IAAO,GAAAC,aAAA;AAAA,IACX,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,UAAU,QAAQ,CAAA;AAAA,GACrB,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAA,CAAK,cAAc,IAAI,CAAA,CAAA;AACvB,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,gBAAgB,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var core = require('@salt-ds/core');
7
- var window = require('@salt-ds/window');
8
7
  var styles = require('@salt-ds/styles');
9
- var react = require('react');
8
+ var window = require('@salt-ds/window');
10
9
  var clsx = require('clsx');
10
+ var react = require('react');
11
11
  var CellFrame$1 = require('./CellFrame.css.js');
12
12
 
13
13
  const withBaseName = core.makePrefixer("saltGridCell");
@@ -1 +1 @@
1
- {"version":3,"file":"CellFrame.js","sources":["../src/CellFrame.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { forwardRef, HTMLAttributes } from \"react\";\nimport { clsx } from \"clsx\";\n\nimport { ColumnSeparatorType } from \"./Grid\";\n\nimport cellCss from \"./CellFrame.css\";\n\nexport interface CellProps extends HTMLAttributes<HTMLTableCellElement> {\n isSelected?: boolean;\n isEditable?: boolean;\n separator?: ColumnSeparatorType;\n}\n\n// TODO: rename the prefix in next major version to match component name.\nconst withBaseName = makePrefixer(\"saltGridCell\");\n\n/** Cell frame used for creating custom cells and editors */\nexport const CellFrame = forwardRef<HTMLTableCellElement, CellProps>(\n function CellFrame(props, ref) {\n const {\n children,\n separator,\n isSelected,\n isEditable,\n className,\n ...tdProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cell\",\n css: cellCss,\n window: targetWindow,\n });\n\n return (\n <td\n ref={ref}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"selected\")]: isSelected,\n [withBaseName(\"editable\")]: isEditable,\n [withBaseName(\"regularSeparator\")]:\n separator === \"regular\" || separator === \"groupEdge\",\n [withBaseName(\"pinnedSeparator\")]: separator === \"pinned\",\n },\n className\n )}\n {...tdProps}\n >\n <div className={withBaseName(\"body\")}>{children}</div>\n <div className={withBaseName(\"columnSeparator\")} />\n <div className={withBaseName(\"rowSeparator\")} />\n <div className={withBaseName(\"topSeparator\")} />\n </td>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","CellFrame","useWindow","useComponentCssInjection","cellCss","jsxs","clsx","jsx"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,kBAAa,cAAc,CAAA,CAAA;AAGzC,MAAM,SAAY,GAAAC,gBAAA;AAAA,EACvB,SAASC,UAAU,CAAA,KAAA,EAAO,GAAK,EAAA;AAC7B,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACG,GAAA,OAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,WAAA;AAAA,MACR,GAAK,EAAAC,WAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACGC,eAAA,CAAA,IAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,kBAAkB,CAC9B,GAAA,SAAA,KAAc,aAAa,SAAc,KAAA,WAAA;AAAA,UAC3C,CAAC,YAAA,CAAa,iBAAiB,CAAA,GAAI,SAAc,KAAA,QAAA;AAAA,SACnD;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,OAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,UAAI,QAAA;AAAA,SAAS,CAAA;AAAA,wBAC/CA,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,iBAAiB,CAAA;AAAA,SAAG,CAAA;AAAA,wBAChDA,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,wBAC7CA,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,OAAA;AAAA,KAChD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"CellFrame.js","sources":["../src/CellFrame.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type HTMLAttributes, forwardRef } from \"react\";\n\nimport type { ColumnSeparatorType } from \"./Grid\";\n\nimport cellCss from \"./CellFrame.css\";\n\nexport interface CellProps extends HTMLAttributes<HTMLTableCellElement> {\n isSelected?: boolean;\n isEditable?: boolean;\n separator?: ColumnSeparatorType;\n}\n\n// TODO: rename the prefix in next major version to match component name.\nconst withBaseName = makePrefixer(\"saltGridCell\");\n\n/** Cell frame used for creating custom cells and editors */\nexport const CellFrame = forwardRef<HTMLTableCellElement, CellProps>(\n function CellFrame(props, ref) {\n const {\n children,\n separator,\n isSelected,\n isEditable,\n className,\n ...tdProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cell\",\n css: cellCss,\n window: targetWindow,\n });\n\n return (\n <td\n ref={ref}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"selected\")]: isSelected,\n [withBaseName(\"editable\")]: isEditable,\n [withBaseName(\"regularSeparator\")]:\n separator === \"regular\" || separator === \"groupEdge\",\n [withBaseName(\"pinnedSeparator\")]: separator === \"pinned\",\n },\n className,\n )}\n {...tdProps}\n >\n <div className={withBaseName(\"body\")}>{children}</div>\n <div className={withBaseName(\"columnSeparator\")} />\n <div className={withBaseName(\"rowSeparator\")} />\n <div className={withBaseName(\"topSeparator\")} />\n </td>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","CellFrame","useWindow","useComponentCssInjection","cellCss","jsxs","clsx","jsx"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,kBAAa,cAAc,CAAA,CAAA;AAGzC,MAAM,SAAY,GAAAC,gBAAA;AAAA,EACvB,SAASC,UAAU,CAAA,KAAA,EAAO,GAAK,EAAA;AAC7B,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACG,GAAA,OAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,WAAA;AAAA,MACR,GAAK,EAAAC,WAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACGC,eAAA,CAAA,IAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,kBAAkB,CAC9B,GAAA,SAAA,KAAc,aAAa,SAAc,KAAA,WAAA;AAAA,UAC3C,CAAC,YAAA,CAAa,iBAAiB,CAAA,GAAI,SAAc,KAAA,QAAA;AAAA,SACnD;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,OAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,UAAI,QAAA;AAAA,SAAS,CAAA;AAAA,wBAC/CA,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,iBAAiB,CAAA;AAAA,SAAG,CAAA;AAAA,wBAChDA,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,wBAC7CA,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,OAAA;AAAA,KAChD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -8,7 +8,7 @@ const ColumnDataContext = react.createContext(void 0);
8
8
  const useColumnDataContext = () => {
9
9
  const c = react.useContext(ColumnDataContext);
10
10
  if (!c) {
11
- throw new Error(`useColumnDataContext invoked outside of a Grid`);
11
+ throw new Error("useColumnDataContext invoked outside of a Grid");
12
12
  }
13
13
  return c;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDataContext.js","sources":["../src/ColumnDataContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { GridColumnModel } from \"./Grid\";\n\nexport interface ColumnDataContext<T> {\n getColById: (id: string) => GridColumnModel<T> | undefined;\n}\n\nexport const ColumnDataContext = createContext<\n ColumnDataContext<any> | undefined\n>(undefined);\n\nexport const useColumnDataContext = () => {\n const c = useContext(ColumnDataContext);\n if (!c) {\n throw new Error(`useColumnDataContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAOa,MAAA,iBAAA,GAAoBA,oBAE/B,KAAS,CAAA,EAAA;AAEJ,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAIC,iBAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAAgD,8CAAA,CAAA,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
1
+ {"version":3,"file":"ColumnDataContext.js","sources":["../src/ColumnDataContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { GridColumnModel } from \"./Grid\";\n\nexport interface ColumnDataContext<T> {\n getColById: (id: string) => GridColumnModel<T> | undefined;\n}\n\nexport const ColumnDataContext = createContext<\n ColumnDataContext<any> | undefined\n>(undefined);\n\nexport const useColumnDataContext = () => {\n const c = useContext(ColumnDataContext);\n if (!c) {\n throw new Error(\"useColumnDataContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAOa,MAAA,iBAAA,GAAoBA,oBAE/B,KAAS,CAAA,EAAA;AAEJ,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAIC,iBAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
@@ -10,7 +10,7 @@ const ColumnDragContext = react.createContext(
10
10
  const useColumnDragContext = () => {
11
11
  const c = react.useContext(ColumnDragContext);
12
12
  if (!c) {
13
- throw new Error(`useColumnDragContext invoked outside of a Grid`);
13
+ throw new Error("useColumnDragContext invoked outside of a Grid");
14
14
  }
15
15
  return c;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDragContext.js","sources":["../src/ColumnDragContext.ts"],"sourcesContent":["import { createContext, MouseEventHandler, useContext } from \"react\";\n\nexport interface ColumnDragContext {\n columnMove?: boolean;\n onColumnMoveHandleMouseDown: MouseEventHandler<HTMLDivElement>;\n}\n\nexport const ColumnDragContext = createContext<ColumnDragContext | undefined>(\n undefined\n);\n\nexport const useColumnDragContext = () => {\n const c = useContext(ColumnDragContext);\n if (!c) {\n throw new Error(`useColumnDragContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAOO,MAAM,iBAAoB,GAAAA,mBAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAIC,iBAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAAgD,8CAAA,CAAA,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
1
+ {"version":3,"file":"ColumnDragContext.js","sources":["../src/ColumnDragContext.ts"],"sourcesContent":["import { type MouseEventHandler, createContext, useContext } from \"react\";\n\nexport interface ColumnDragContext {\n columnMove?: boolean;\n onColumnMoveHandleMouseDown: MouseEventHandler<HTMLDivElement>;\n}\n\nexport const ColumnDragContext = createContext<ColumnDragContext | undefined>(\n undefined,\n);\n\nexport const useColumnDragContext = () => {\n const c = useContext(ColumnDragContext);\n if (!c) {\n throw new Error(\"useColumnDragContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAOO,MAAM,iBAAoB,GAAAA,mBAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAIC,iBAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var GridContext = require('./GridContext.js');
7
6
  var react = require('react');
7
+ var GridContext = require('./GridContext.js');
8
8
 
9
9
  function ColumnGroup(props) {
10
10
  const pinned = props.pinned || null;
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnGroup.js","sources":["../src/ColumnGroup.tsx"],"sourcesContent":["import { useGridContext } from \"./GridContext\";\nimport {\n Children,\n cloneElement,\n ComponentType,\n isValidElement,\n ReactNode,\n useEffect,\n useRef,\n} from \"react\";\nimport { GridColumnPin } from \"./GridColumn\";\nimport { GridColumnGroupModel } from \"./Grid\";\n\nexport interface ColumnGroupCellProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupCellValueProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupProps {\n children: ReactNode;\n name: string;\n id: string;\n pinned?: GridColumnPin;\n headerComponent?: ComponentType<ColumnGroupCellProps>;\n headerValueComponent?: ComponentType<ColumnGroupCellValueProps>;\n}\n\nexport function ColumnGroup(props: ColumnGroupProps) {\n const pinned = props.pinned || null;\n const indexRef = useRef<number>();\n const grid = useGridContext();\n useEffect(() => {\n indexRef.current = grid.getChildIndex(props.id);\n grid.onColumnGroupAdded(props);\n return () => {\n grid.onColumnGroupRemoved(indexRef.current!, props);\n };\n });\n const childrenWithPinnedOverridden = Children.map(props.children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child, { pinned });\n }\n return child;\n });\n return <>{childrenWithPinnedOverridden}</>;\n}\n"],"names":["useRef","useGridContext","useEffect","Children","isValidElement","cloneElement","jsx","Fragment"],"mappings":";;;;;;;;AA8BO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,MAAM,MAAU,IAAA,IAAA,CAAA;AAC/B,EAAA,MAAM,WAAWA,YAAe,EAAA,CAAA;AAChC,EAAA,MAAM,OAAOC,0BAAe,EAAA,CAAA;AAC5B,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,OAAU,GAAA,IAAA,CAAK,aAAc,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAC9C,IAAA,IAAA,CAAK,mBAAmB,KAAK,CAAA,CAAA;AAC7B,IAAA,OAAO,MAAM;AACX,MAAK,IAAA,CAAA,oBAAA,CAAqB,QAAS,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA;AAAA,KACpD,CAAA;AAAA,GACD,CAAA,CAAA;AACD,EAAA,MAAM,+BAA+BC,cAAS,CAAA,GAAA,CAAI,KAAM,CAAA,QAAA,EAAU,CAAC,KAAU,KAAA;AAC3E,IAAI,IAAAC,oBAAA,CAAe,KAAK,CAAG,EAAA;AACzB,MAAA,OAAOC,kBAAa,CAAA,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,CAAA;AAAA,KACvC;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAO,uBAAAC,cAAA,CAAAC,mBAAA,EAAA;AAAA,IAAG,QAAA,EAAA,4BAAA;AAAA,GAA6B,CAAA,CAAA;AACzC;;;;"}
1
+ {"version":3,"file":"ColumnGroup.js","sources":["../src/ColumnGroup.tsx"],"sourcesContent":["import {\n Children,\n type ComponentType,\n type ReactNode,\n cloneElement,\n isValidElement,\n useEffect,\n useRef,\n} from \"react\";\nimport type { GridColumnGroupModel } from \"./Grid\";\nimport type { GridColumnPin } from \"./GridColumn\";\nimport { useGridContext } from \"./GridContext\";\n\nexport interface ColumnGroupCellProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupCellValueProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupProps {\n children: ReactNode;\n name: string;\n id: string;\n pinned?: GridColumnPin;\n headerComponent?: ComponentType<ColumnGroupCellProps>;\n headerValueComponent?: ComponentType<ColumnGroupCellValueProps>;\n}\n\nexport function ColumnGroup(props: ColumnGroupProps) {\n const pinned = props.pinned || null;\n const indexRef = useRef<number>();\n const grid = useGridContext();\n useEffect(() => {\n indexRef.current = grid.getChildIndex(props.id);\n grid.onColumnGroupAdded(props);\n return () => {\n grid.onColumnGroupRemoved(indexRef.current!, props);\n };\n });\n const childrenWithPinnedOverridden = Children.map(props.children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child, { pinned });\n }\n return child;\n });\n return <>{childrenWithPinnedOverridden}</>;\n}\n"],"names":["useRef","useGridContext","useEffect","Children","isValidElement","cloneElement","jsx","Fragment"],"mappings":";;;;;;;;AA8BO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,MAAM,MAAU,IAAA,IAAA,CAAA;AAC/B,EAAA,MAAM,WAAWA,YAAe,EAAA,CAAA;AAChC,EAAA,MAAM,OAAOC,0BAAe,EAAA,CAAA;AAC5B,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,OAAU,GAAA,IAAA,CAAK,aAAc,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAC9C,IAAA,IAAA,CAAK,mBAAmB,KAAK,CAAA,CAAA;AAC7B,IAAA,OAAO,MAAM;AACX,MAAK,IAAA,CAAA,oBAAA,CAAqB,QAAS,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA;AAAA,KACpD,CAAA;AAAA,GACD,CAAA,CAAA;AACD,EAAA,MAAM,+BAA+BC,cAAS,CAAA,GAAA,CAAI,KAAM,CAAA,QAAA,EAAU,CAAC,KAAU,KAAA;AAC3E,IAAI,IAAAC,oBAAA,CAAe,KAAK,CAAG,EAAA;AACzB,MAAA,OAAOC,kBAAa,CAAA,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,CAAA;AAAA,KACvC;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAO,uBAAAC,cAAA,CAAAC,mBAAA,EAAA;AAAA,IAAG,QAAA,EAAA,4BAAA;AAAA,GAA6B,CAAA,CAAA;AACzC;;;;"}
@@ -10,7 +10,7 @@ const ColumnSortContext = react.createContext(
10
10
  const useColumnSortContext = () => {
11
11
  const c = react.useContext(ColumnSortContext);
12
12
  if (!c) {
13
- throw new Error(`useColumnSortContext invoked outside of a Grid`);
13
+ throw new Error("useColumnSortContext invoked outside of a Grid");
14
14
  }
15
15
  return c;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSortContext.js","sources":["../src/ColumnSortContext.ts"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\nimport { SortOrder } from \"./Grid\";\nimport { GridColumnProps } from \"./GridColumn\";\n\nexport interface ColumnSortContext {\n sortByColumnId?: GridColumnProps[\"id\"];\n setSortByColumnId: (c: React.SetStateAction<GridColumnProps[\"id\"]>) => void;\n sortOrder: SortOrder;\n setSortOrder: (o: SortOrder) => void;\n onClickSortColumn: (colHeaderId: GridColumnProps[\"id\"]) => void;\n}\n\nexport const ColumnSortContext = createContext<ColumnSortContext | undefined>(\n undefined\n);\n\nexport const useColumnSortContext = () => {\n const c = useContext(ColumnSortContext);\n if (!c) {\n throw new Error(`useColumnSortContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAYO,MAAM,iBAAoB,GAAAA,mBAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAIC,iBAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAAgD,8CAAA,CAAA,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
1
+ {"version":3,"file":"ColumnSortContext.js","sources":["../src/ColumnSortContext.ts"],"sourcesContent":["import type { SetStateAction } from \"react\";\nimport { createContext, useContext } from \"react\";\nimport type { SortOrder } from \"./Grid\";\nimport type { GridColumnProps } from \"./GridColumn\";\n\nexport interface ColumnSortContext {\n sortByColumnId?: GridColumnProps[\"id\"];\n setSortByColumnId: (c: SetStateAction<GridColumnProps[\"id\"]>) => void;\n sortOrder: SortOrder;\n setSortOrder: (o: SortOrder) => void;\n onClickSortColumn: (colHeaderId: GridColumnProps[\"id\"]) => void;\n}\n\nexport const ColumnSortContext = createContext<ColumnSortContext | undefined>(\n undefined,\n);\n\nexport const useColumnSortContext = () => {\n const c = useContext(ColumnSortContext);\n if (!c) {\n throw new Error(\"useColumnSortContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAaO,MAAM,iBAAoB,GAAAA,mBAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAIC,iBAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var window = require('@salt-ds/window');
7
6
  var styles = require('@salt-ds/styles');
7
+ var window = require('@salt-ds/window');
8
8
  var CornerTag$1 = require('./CornerTag.css.js');
9
9
 
10
10
  function CornerTag(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"CornerTag.js","sources":["../src/CornerTag.tsx"],"sourcesContent":["import { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport cornerTagCss from \"./CornerTag.css\";\n\nexport interface CornerTagProps {\n focusOnly?: boolean; // Show when the parent is focused, hide when not\n}\n\nexport function CornerTag(props: CornerTagProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-corner-tag\",\n css: cornerTagCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={\n props.focusOnly ? \"saltGridCornerTag-focusOnly\" : \"saltGridCornerTag\"\n }\n />\n );\n}\n"],"names":["useWindow","useComponentCssInjection","cornerTagCss","jsx"],"mappings":";;;;;;;;;AASO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAA,MAAM,eAAeA,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAC,WAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EACE,KAAM,CAAA,SAAA,GAAY,6BAAgC,GAAA,mBAAA;AAAA,GAEtD,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CornerTag.js","sources":["../src/CornerTag.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cornerTagCss from \"./CornerTag.css\";\n\nexport interface CornerTagProps {\n focusOnly?: boolean; // Show when the parent is focused, hide when not\n}\n\nexport function CornerTag(props: CornerTagProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-corner-tag\",\n css: cornerTagCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={\n props.focusOnly ? \"saltGridCornerTag-focusOnly\" : \"saltGridCornerTag\"\n }\n />\n );\n}\n"],"names":["useWindow","useComponentCssInjection","cornerTagCss","jsx"],"mappings":";;;;;;;;;AASO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAA,MAAM,eAAeA,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAC,WAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EACE,KAAM,CAAA,SAAA,GAAY,6BAAgC,GAAA,mBAAA;AAAA,GAEtD,CAAA,CAAA;AAEJ;;;;"}
@@ -10,7 +10,7 @@ const CursorContext = react.createContext(
10
10
  const useCursorContext = () => {
11
11
  const c = react.useContext(CursorContext);
12
12
  if (!c) {
13
- throw new Error(`useCursorContext invoked outside of a Grid`);
13
+ throw new Error("useCursorContext invoked outside of a Grid");
14
14
  }
15
15
  return c;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CursorContext.js","sources":["../src/CursorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type FocusedPart = \"header\" | \"body\";\n\nexport interface CursorContext {\n isFocused: boolean;\n cursorRowIdx: number | undefined;\n cursorColIdx: number | undefined;\n moveCursor: (part: FocusedPart, rowIdx: number, colIdx: number) => void;\n focusedPart: FocusedPart;\n headerIsFocusable: boolean;\n}\n\nexport const CursorContext = createContext<CursorContext | undefined>(\n undefined\n);\nexport const useCursorContext = () => {\n const c = useContext(CursorContext);\n if (!c) {\n throw new Error(`useCursorContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAaO,MAAM,aAAgB,GAAAA,mBAAA;AAAA,EAC3B,KAAA,CAAA;AACF,EAAA;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAIC,iBAAW,aAAa,CAAA,CAAA;AAClC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAA4C,0CAAA,CAAA,CAAA,CAAA;AAAA,GAC9D;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
1
+ {"version":3,"file":"CursorContext.js","sources":["../src/CursorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type FocusedPart = \"header\" | \"body\";\n\nexport interface CursorContext {\n isFocused: boolean;\n cursorRowIdx: number | undefined;\n cursorColIdx: number | undefined;\n moveCursor: (part: FocusedPart, rowIdx: number, colIdx: number) => void;\n focusedPart: FocusedPart;\n headerIsFocusable: boolean;\n}\n\nexport const CursorContext = createContext<CursorContext | undefined>(\n undefined,\n);\nexport const useCursorContext = () => {\n const c = useContext(CursorContext);\n if (!c) {\n throw new Error(\"useCursorContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAaO,MAAM,aAAgB,GAAAA,mBAAA;AAAA,EAC3B,KAAA,CAAA;AACF,EAAA;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAIC,iBAAW,aAAa,CAAA,CAAA;AAClC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,4CAA4C,CAAA,CAAA;AAAA,GAC9D;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownCellEditor.js","sources":["../src/DropdownCellEditor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { Dropdown, SelectHandler, SelectionChangeHandler } from \"@salt-ds/lab\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useEffect, useRef } from \"react\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { useEditorContext } from \"./EditorContext\";\nimport { GridColumnModel, GridRowModel } from \"./Grid\";\n\nimport dropdownCellEditorCss from \"./DropdownCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridDropdownCellEditor\");\n\nexport interface DropdownCellEditorProps<T> {\n options: ReadonlyArray<string>;\n // Row and column are provided by the grid. See TableRow.tsx\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function DropdownCellEditor<T>(props: DropdownCellEditorProps<T>) {\n const { options, column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dropdown-cell-editor\",\n css: dropdownCellEditorCss,\n window: targetWindow,\n });\n\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const value = column!.info.props.getValue!(row!.data);\n\n const { endEditMode } = useEditorContext();\n\n const onSelectionChange: SelectionChangeHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n const onSelect: SelectHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n useEffect(() => {\n if (triggerRef.current) {\n triggerRef.current.focus();\n }\n }, [triggerRef.current]);\n\n const triggerComponent = (\n <div\n tabIndex={0}\n ref={triggerRef}\n className={withBaseName(\"currentValue\")}\n data-testid=\"grid-cell-editor-trigger\"\n >\n {value}\n </div>\n );\n\n return (\n <CellFrame separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"dropdownContainer\")}>\n {options && options.length > 0 ? (\n <Dropdown\n isOpen={true}\n source={options}\n defaultSelected={value}\n onSelectionChange={onSelectionChange}\n onSelect={onSelect}\n triggerComponent={triggerComponent}\n width={column!.info.width! - 5}\n />\n ) : (\n triggerComponent\n )}\n </div>\n <CornerTag />\n </CellFrame>\n );\n}\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","dropdownCellEditorCss","useRef","useEditorContext","useEffect","jsx","jsxs","CellFrame","Dropdown","CornerTag"],"mappings":";;;;;;;;;;;;;;;AAaA,MAAM,YAAA,GAAeA,kBAAa,4BAA4B,CAAA,CAAA;AASvD,SAAS,mBAAsB,KAAmC,EAAA;AACvE,EAAA,MAAM,EAAE,OAAA,EAAS,MAAQ,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AAEjC,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,2BAAA;AAAA,IACR,GAAK,EAAAC,oBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAaC,aAAuB,IAAI,CAAA,CAAA;AAE9C,EAAA,MAAM,QAAQ,MAAQ,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAU,IAAK,IAAI,CAAA,CAAA;AAEpD,EAAM,MAAA,EAAE,WAAY,EAAA,GAAIC,8BAAiB,EAAA,CAAA;AAEzC,EAAM,MAAA,iBAAA,GAA4C,CAAC,KAAA,EAAO,IAAS,KAAA;AACjE,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,QAAA,GAA0B,CAAC,KAAA,EAAO,IAAS,KAAA;AAC/C,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,WAAW,OAAS,EAAA;AACtB,MAAA,UAAA,CAAW,QAAQ,KAAM,EAAA,CAAA;AAAA,KAC3B;AAAA,GACC,EAAA,CAAC,UAAW,CAAA,OAAO,CAAC,CAAA,CAAA;AAEvB,EAAA,MAAM,mCACHC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,QAAU,EAAA,CAAA;AAAA,IACV,GAAK,EAAA,UAAA;AAAA,IACL,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,IACtC,aAAY,EAAA,0BAAA;AAAA,IAEX,QAAA,EAAA,KAAA;AAAA,GACH,CAAA,CAAA;AAGF,EAAA,uBACGC,eAAA,CAAAC,mBAAA,EAAA;AAAA,IAAU,WAAW,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,SAAA;AAAA,IAAW,WAAW,YAAa,EAAA;AAAA,IAC/D,QAAA,EAAA;AAAA,sBAACF,cAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,mBAAmB,CAAA;AAAA,QAC7C,QAAW,EAAA,OAAA,IAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,mBAC1BA,cAAA,CAAAG,YAAA,EAAA;AAAA,UACC,MAAQ,EAAA,IAAA;AAAA,UACR,MAAQ,EAAA,OAAA;AAAA,UACR,eAAiB,EAAA,KAAA;AAAA,UACjB,iBAAA;AAAA,UACA,QAAA;AAAA,UACA,gBAAA;AAAA,UACA,KAAA,EAAO,MAAQ,CAAA,IAAA,CAAK,KAAS,GAAA,CAAA;AAAA,SAC/B,CAEA,GAAA,gBAAA;AAAA,OAEJ,CAAA;AAAA,qCACCC,mBAAU,EAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GACb,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"DropdownCellEditor.js","sources":["../src/DropdownCellEditor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport {\n Dropdown,\n type SelectHandler,\n type SelectionChangeHandler,\n} from \"@salt-ds/lab\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useEffect, useRef } from \"react\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { useEditorContext } from \"./EditorContext\";\nimport type { GridColumnModel, GridRowModel } from \"./Grid\";\n\nimport dropdownCellEditorCss from \"./DropdownCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridDropdownCellEditor\");\n\nexport interface DropdownCellEditorProps<T> {\n options: ReadonlyArray<string>;\n // Row and column are provided by the grid. See TableRow.tsx\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function DropdownCellEditor<T>(props: DropdownCellEditorProps<T>) {\n const { options, column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dropdown-cell-editor\",\n css: dropdownCellEditorCss,\n window: targetWindow,\n });\n\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const value = column!.info.props.getValue!(row!.data);\n\n const { endEditMode } = useEditorContext();\n\n const onSelectionChange: SelectionChangeHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n const onSelect: SelectHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n useEffect(() => {\n if (triggerRef.current) {\n triggerRef.current.focus();\n }\n }, [triggerRef.current]);\n\n const triggerComponent = (\n <div\n tabIndex={0}\n ref={triggerRef}\n className={withBaseName(\"currentValue\")}\n data-testid=\"grid-cell-editor-trigger\"\n >\n {value}\n </div>\n );\n\n return (\n <CellFrame separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"dropdownContainer\")}>\n {options && options.length > 0 ? (\n <Dropdown\n isOpen={true}\n source={options}\n defaultSelected={value}\n onSelectionChange={onSelectionChange}\n onSelect={onSelect}\n triggerComponent={triggerComponent}\n width={column!.info.width! - 5}\n />\n ) : (\n triggerComponent\n )}\n </div>\n <CornerTag />\n </CellFrame>\n );\n}\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","dropdownCellEditorCss","useRef","useEditorContext","useEffect","jsx","jsxs","CellFrame","Dropdown","CornerTag"],"mappings":";;;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,kBAAa,4BAA4B,CAAA,CAAA;AASvD,SAAS,mBAAsB,KAAmC,EAAA;AACvE,EAAA,MAAM,EAAE,OAAA,EAAS,MAAQ,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AAEjC,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,2BAAA;AAAA,IACR,GAAK,EAAAC,oBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAaC,aAAuB,IAAI,CAAA,CAAA;AAE9C,EAAA,MAAM,QAAQ,MAAQ,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAU,IAAK,IAAI,CAAA,CAAA;AAEpD,EAAM,MAAA,EAAE,WAAY,EAAA,GAAIC,8BAAiB,EAAA,CAAA;AAEzC,EAAM,MAAA,iBAAA,GAA4C,CAAC,KAAA,EAAO,IAAS,KAAA;AACjE,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,QAAA,GAA0B,CAAC,KAAA,EAAO,IAAS,KAAA;AAC/C,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,WAAW,OAAS,EAAA;AACtB,MAAA,UAAA,CAAW,QAAQ,KAAM,EAAA,CAAA;AAAA,KAC3B;AAAA,GACC,EAAA,CAAC,UAAW,CAAA,OAAO,CAAC,CAAA,CAAA;AAEvB,EAAA,MAAM,mCACHC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,QAAU,EAAA,CAAA;AAAA,IACV,GAAK,EAAA,UAAA;AAAA,IACL,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,IACtC,aAAY,EAAA,0BAAA;AAAA,IAEX,QAAA,EAAA,KAAA;AAAA,GACH,CAAA,CAAA;AAGF,EAAA,uBACGC,eAAA,CAAAC,mBAAA,EAAA;AAAA,IAAU,WAAW,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,SAAA;AAAA,IAAW,WAAW,YAAa,EAAA;AAAA,IAC/D,QAAA,EAAA;AAAA,sBAACF,cAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,mBAAmB,CAAA;AAAA,QAC7C,QAAW,EAAA,OAAA,IAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,mBAC1BA,cAAA,CAAAG,YAAA,EAAA;AAAA,UACC,MAAQ,EAAA,IAAA;AAAA,UACR,MAAQ,EAAA,OAAA;AAAA,UACR,eAAiB,EAAA,KAAA;AAAA,UACjB,iBAAA;AAAA,UACA,QAAA;AAAA,UACA,gBAAA;AAAA,UACA,KAAA,EAAO,MAAQ,CAAA,IAAA,CAAK,KAAS,GAAA,CAAA;AAAA,SAC/B,CAEA,GAAA,gBAAA;AAAA,OAEJ,CAAA;AAAA,qCACCC,mBAAU,EAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GACb,CAAA,CAAA;AAEJ;;;;"}
@@ -10,7 +10,7 @@ const EditorContext = react.createContext(
10
10
  const useEditorContext = () => {
11
11
  const c = react.useContext(EditorContext);
12
12
  if (!c) {
13
- throw new Error(`useEditorContext invoked outside of a Grid`);
13
+ throw new Error("useEditorContext invoked outside of a Grid");
14
14
  }
15
15
  return c;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"EditorContext.js","sources":["../src/EditorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport interface EditorContext {\n initialText?: string;\n editMode?: boolean;\n startEditMode: () => void;\n endEditMode: (value: string) => void;\n cancelEditMode: () => void;\n}\n\nexport const EditorContext = createContext<EditorContext | undefined>(\n undefined\n);\nexport const useEditorContext = () => {\n const c = useContext(EditorContext);\n if (!c) {\n throw new Error(`useEditorContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAUO,MAAM,aAAgB,GAAAA,mBAAA;AAAA,EAC3B,KAAA,CAAA;AACF,EAAA;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAIC,iBAAW,aAAa,CAAA,CAAA;AAClC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAA4C,0CAAA,CAAA,CAAA,CAAA;AAAA,GAC9D;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
1
+ {"version":3,"file":"EditorContext.js","sources":["../src/EditorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport interface EditorContext {\n initialText?: string;\n editMode?: boolean;\n startEditMode: () => void;\n endEditMode: (value: string) => void;\n cancelEditMode: () => void;\n}\n\nexport const EditorContext = createContext<EditorContext | undefined>(\n undefined,\n);\nexport const useEditorContext = () => {\n const c = useContext(EditorContext);\n if (!c) {\n throw new Error(\"useEditorContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAUO,MAAM,aAAgB,GAAAA,mBAAA;AAAA,EAC3B,KAAA,CAAA;AACF,EAAA;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAIC,iBAAW,aAAa,CAAA,CAAA;AAClC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,4CAA4C,CAAA,CAAA;AAAA,GAC9D;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;;"}
package/dist-cjs/Grid.js CHANGED
@@ -3,11 +3,20 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var react = require('react');
7
6
  var core = require('@salt-ds/core');
8
- var window = require('@salt-ds/window');
9
7
  var styles = require('@salt-ds/styles');
8
+ var window = require('@salt-ds/window');
10
9
  var clsx = require('clsx');
10
+ var react = require('react');
11
+ var ColumnDataContext = require('./ColumnDataContext.js');
12
+ var ColumnDragContext = require('./ColumnDragContext.js');
13
+ var ColumnSortContext = require('./ColumnSortContext.js');
14
+ var CursorContext = require('./CursorContext.js');
15
+ var EditorContext = require('./EditorContext.js');
16
+ var GridContext = require('./GridContext.js');
17
+ var LayoutContext = require('./LayoutContext.js');
18
+ var SelectionContext = require('./SelectionContext.js');
19
+ var SizingContext = require('./SizingContext.js');
11
20
  var CellMeasure = require('./internal/CellMeasure.js');
12
21
  require('./internal/Cursor.js');
13
22
  require('./internal/GroupHeaderRow.js');
@@ -18,23 +27,14 @@ var RightPart = require('./internal/RightPart.js');
18
27
  var Scrollable = require('./internal/Scrollable.js');
19
28
  require('./internal/TableRow.js');
20
29
  var utils = require('./internal/utils.js');
21
- var SelectionContext = require('./SelectionContext.js');
22
- var EditorContext = require('./EditorContext.js');
23
- var CursorContext = require('./CursorContext.js');
24
30
  var gridHooks = require('./internal/gridHooks.js');
25
31
  var TopLeftPart = require('./internal/TopLeftPart.js');
26
32
  var TopPart = require('./internal/TopPart.js');
27
33
  var TopRightPart = require('./internal/TopRightPart.js');
28
34
  require('./CellFrame.js');
29
35
  require('./internal/DefaultCellValue.js');
30
- var GridContext = require('./GridContext.js');
31
- var SizingContext = require('./SizingContext.js');
32
- var LayoutContext = require('./LayoutContext.js');
33
- var ColumnDragContext = require('./ColumnDragContext.js');
34
- var ColumnGhost = require('./internal/ColumnGhost.js');
35
36
  var ColumnDropTarget = require('./internal/ColumnDropTarget.js');
36
- var ColumnDataContext = require('./ColumnDataContext.js');
37
- var ColumnSortContext = require('./ColumnSortContext.js');
37
+ var ColumnGhost = require('./internal/ColumnGhost.js');
38
38
  var Grid$1 = require('./Grid.css.js');
39
39
 
40
40
  const withBaseName = core.makePrefixer("saltGrid");
@@ -124,7 +124,9 @@ const Grid = function Grid2(props) {
124
124
  } = gridHooks.useColumnRegistry(children);
125
125
  const midColsById = react.useMemo(
126
126
  () => new Map(
127
- midCols.map((c) => [c.info.props.id, c])
127
+ midCols.map(
128
+ (c) => [c.info.props.id, c]
129
+ )
128
130
  ),
129
131
  [midCols]
130
132
  );
@@ -364,7 +366,7 @@ const Grid = function Grid2(props) {
364
366
  }, 0);
365
367
  };
366
368
  const startEditMode = (text) => {
367
- if (editMode || cursorRowIdx == void 0 || cursorColIdx == void 0) {
369
+ if (editMode || cursorRowIdx === void 0 || cursorColIdx === void 0) {
368
370
  return;
369
371
  }
370
372
  const c = cols[cursorColIdx];
@@ -378,14 +380,14 @@ const Grid = function Grid2(props) {
378
380
  if (!editMode) {
379
381
  return;
380
382
  }
381
- if (cursorColIdx == void 0) {
382
- console.error(`endEditMode: cursorColIdx is undefined in edit mode`);
383
+ if (cursorColIdx === void 0) {
384
+ console.error("endEditMode: cursorColIdx is undefined in edit mode");
383
385
  return;
384
386
  }
385
387
  const c = cols[cursorColIdx];
386
388
  const handler = c.info.props.onChange;
387
- if (cursorRowIdx == void 0) {
388
- console.error(`endEditMode: cursorRowIdx is undefined in edit mode`);
389
+ if (cursorRowIdx === void 0) {
390
+ console.error("endEditMode: cursorRowIdx is undefined in edit mode");
389
391
  return;
390
392
  }
391
393
  if (!handler) {
@@ -504,18 +506,12 @@ const Grid = function Grid2(props) {
504
506
  [editMode, startEditMode, endEditMode, cancelEditMode, initialText]
505
507
  );
506
508
  const [isFocused, setFocused] = react.useState(false);
507
- const onFocus = react.useCallback(
508
- (event) => {
509
- setFocused(true);
510
- },
511
- [setFocused]
512
- );
513
- const onBlur = react.useCallback(
514
- (event) => {
515
- setFocused(false);
516
- },
517
- [setFocused]
518
- );
509
+ const onFocus = react.useCallback(() => {
510
+ setFocused(true);
511
+ }, []);
512
+ const onBlur = react.useCallback(() => {
513
+ setFocused(false);
514
+ }, []);
519
515
  const cursorContext = react.useMemo(
520
516
  () => ({
521
517
  isFocused,
@@ -599,9 +595,8 @@ const Grid = function Grid2(props) {
599
595
  if (editMode) {
600
596
  cancelEditMode();
601
597
  break;
602
- } else {
603
- return false;
604
598
  }
599
+ return false;
605
600
  default:
606
601
  if (!editMode && !event.ctrlKey && !event.metaKey && !event.altKey && /^[\w\d ]$/.test(key)) {
607
602
  startEditMode(key);
@@ -628,14 +623,14 @@ const Grid = function Grid2(props) {
628
623
  case " ":
629
624
  if (focusedPart === "body") {
630
625
  if (event.ctrlKey) {
631
- if (cursorColIdx != void 0) {
626
+ if (cursorColIdx !== void 0) {
632
627
  rangeSelection.selectRange({
633
628
  start: { rowIdx: 0, colIdx: cursorColIdx },
634
629
  end: { rowIdx: sortedRowData.length, colIdx: cursorColIdx }
635
630
  });
636
631
  }
637
632
  } else {
638
- if (cursorRowIdx != void 0) {
633
+ if (cursorRowIdx !== void 0) {
639
634
  selectRows({
640
635
  rowIndex: cursorRowIdx,
641
636
  isRange: false,
@@ -645,9 +640,8 @@ const Grid = function Grid2(props) {
645
640
  }
646
641
  }
647
642
  break;
648
- } else {
649
- return false;
650
643
  }
644
+ return false;
651
645
  case "a":
652
646
  if (event.ctrlKey || event.metaKey) {
653
647
  rangeSelection.selectRange({
@@ -656,9 +650,8 @@ const Grid = function Grid2(props) {
656
650
  });
657
651
  selectAll();
658
652
  return true;
659
- } else {
660
- return false;
661
653
  }
654
+ return false;
662
655
  default:
663
656
  return false;
664
657
  }
@@ -680,6 +673,7 @@ const Grid = function Grid2(props) {
680
673
  );
681
674
  const clipboardKeyHandler = react.useCallback(
682
675
  (event) => {
676
+ var _a2, _b2;
683
677
  const { key } = event;
684
678
  if (key === "c" && (event.ctrlKey || event.metaKey) && rangeSelection.selectedCellRange) {
685
679
  const { start, end } = rangeSelection.selectedCellRange;
@@ -692,7 +686,7 @@ const Grid = function Grid2(props) {
692
686
  const rowText = [];
693
687
  for (let c2 = minCol; c2 <= maxCol; ++c2) {
694
688
  const col = cols[c2];
695
- const cellValue = col.info.props.getValue(row);
689
+ const cellValue = (_b2 = col == null ? void 0 : (_a2 = col.info.props).getValue) == null ? void 0 : _b2.call(_a2, row);
696
690
  rowText.push(cellValue);
697
691
  }
698
692
  text.push(rowText.join(" "));
@@ -792,7 +786,7 @@ const Grid = function Grid2(props) {
792
786
  break;
793
787
  case "Enter":
794
788
  if (editMode && !event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey) {
795
- if (cursorRowIdx == void 0) {
789
+ if (cursorRowIdx === void 0) {
796
790
  moveCursor(focusedPart, 0, 0);
797
791
  } else {
798
792
  moveCursor(focusedPart, cursorRowIdx + 1, cursorColIdx);
@@ -833,7 +827,7 @@ const Grid = function Grid2(props) {
833
827
  );
834
828
  const onKeyDown = react.useCallback(
835
829
  (event) => {
836
- if (cursorColIdx != void 0 && cursorRowIdx != void 0) {
830
+ if (cursorColIdx !== void 0 && cursorRowIdx !== void 0) {
837
831
  const column = cols[cursorColIdx];
838
832
  if (column.info.props.onKeyDown) {
839
833
  column.info.props.onKeyDown(event, cursorRowIdx);