@vuu-ui/vuu-table 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/cjs/CellFocusState.js +45 -0
  2. package/cjs/CellFocusState.js.map +1 -0
  3. package/cjs/Row.js +7 -2
  4. package/cjs/Row.js.map +1 -1
  5. package/cjs/Table.css.js +1 -1
  6. package/cjs/Table.js +33 -0
  7. package/cjs/Table.js.map +1 -1
  8. package/cjs/VirtualColSpan.js.map +1 -1
  9. package/cjs/bulk-edit/BulkEditDialog.js +57 -0
  10. package/cjs/bulk-edit/BulkEditDialog.js.map +1 -0
  11. package/cjs/bulk-edit/BulkEditPanel.css.js +1 -1
  12. package/cjs/bulk-edit/BulkEditPanel.js +21 -31
  13. package/cjs/bulk-edit/BulkEditPanel.js.map +1 -1
  14. package/cjs/bulk-edit/BulkEditRow.css.js +1 -1
  15. package/cjs/bulk-edit/BulkEditRow.js +53 -48
  16. package/cjs/bulk-edit/BulkEditRow.js.map +1 -1
  17. package/cjs/bulk-edit/useBulkEditPanel.js +101 -0
  18. package/cjs/bulk-edit/useBulkEditPanel.js.map +1 -0
  19. package/cjs/bulk-edit/useBulkEditRow.js +144 -0
  20. package/cjs/bulk-edit/useBulkEditRow.js.map +1 -0
  21. package/cjs/cell-block/CellBlock.js.map +1 -1
  22. package/cjs/cell-block/cellblock-utils.js.map +1 -1
  23. package/cjs/cell-block/useCellBlockSelection.js.map +1 -1
  24. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.css.js +6 -0
  25. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.css.js.map +1 -0
  26. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js +40 -5
  27. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js.map +1 -1
  28. package/cjs/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js.map +1 -1
  29. package/cjs/cell-renderers/input-cell/InputCell.css.js +1 -1
  30. package/cjs/cell-renderers/input-cell/InputCell.js +3 -9
  31. package/cjs/cell-renderers/input-cell/InputCell.js.map +1 -1
  32. package/cjs/cell-renderers/toggle-cell/ToggleCell.js +12 -10
  33. package/cjs/cell-renderers/toggle-cell/ToggleCell.js.map +1 -1
  34. package/cjs/column-header-pill/ColumnHeaderPill.css.js +1 -1
  35. package/cjs/column-header-pill/ColumnHeaderPill.js +0 -1
  36. package/cjs/column-header-pill/ColumnHeaderPill.js.map +1 -1
  37. package/cjs/column-header-pill/GroupColumnPill.js.map +1 -1
  38. package/cjs/column-header-pill/SortIndicator.js.map +1 -1
  39. package/cjs/column-menu/ColumnMenu.js.map +1 -1
  40. package/cjs/column-resizing/ColumnResizer.js.map +1 -1
  41. package/cjs/column-resizing/useTableColumnResize.js.map +1 -1
  42. package/cjs/context-menu/buildContextMenuDescriptors.js.map +1 -1
  43. package/cjs/context-menu/useHandleTableContextMenu.js.map +1 -1
  44. package/cjs/header-cell/GroupHeaderCell.js +3 -2
  45. package/cjs/header-cell/GroupHeaderCell.js.map +1 -1
  46. package/cjs/header-cell/HeaderCell.js +1 -0
  47. package/cjs/header-cell/HeaderCell.js.map +1 -1
  48. package/cjs/index.js +8 -0
  49. package/cjs/index.js.map +1 -1
  50. package/cjs/moving-window.js +1 -1
  51. package/cjs/moving-window.js.map +1 -1
  52. package/cjs/pagination/PaginationControl.js.map +1 -1
  53. package/cjs/pagination/usePagination.js.map +1 -1
  54. package/cjs/table-cell/TableCell.js +33 -15
  55. package/cjs/table-cell/TableCell.js.map +1 -1
  56. package/cjs/table-cell/TableGroupCell.css.js +1 -1
  57. package/cjs/table-cell/TableGroupCell.js +1 -1
  58. package/cjs/table-cell/TableGroupCell.js.map +1 -1
  59. package/cjs/table-config.js.map +1 -1
  60. package/cjs/table-dom-utils.js +4 -2
  61. package/cjs/table-dom-utils.js.map +1 -1
  62. package/cjs/table-header/HeaderProvider.js.map +1 -1
  63. package/cjs/table-header/TableHeader.js +7 -12
  64. package/cjs/table-header/TableHeader.js.map +1 -1
  65. package/cjs/table-header/useTableHeader.js.map +1 -1
  66. package/cjs/useCell.js +4 -3
  67. package/cjs/useCell.js.map +1 -1
  68. package/cjs/useCellEditing.js.map +1 -1
  69. package/cjs/useCellFocus.js +2 -2
  70. package/cjs/useCellFocus.js.map +1 -1
  71. package/cjs/useControlledTableNavigation.js.map +1 -1
  72. package/cjs/useDataSource.js +22 -3
  73. package/cjs/useDataSource.js.map +1 -1
  74. package/cjs/useEditableCell.js +32 -0
  75. package/cjs/useEditableCell.js.map +1 -0
  76. package/cjs/useKeyboardNavigation.js +5 -2
  77. package/cjs/useKeyboardNavigation.js.map +1 -1
  78. package/cjs/useMeasuredHeight.js.map +1 -1
  79. package/cjs/useRowClassNameGenerators.js.map +1 -1
  80. package/cjs/useSelection.js +7 -4
  81. package/cjs/useSelection.js.map +1 -1
  82. package/cjs/useTable.js +48 -25
  83. package/cjs/useTable.js.map +1 -1
  84. package/cjs/useTableAndColumnSettings.js.map +1 -1
  85. package/cjs/useTableContextMenu.js.map +1 -1
  86. package/cjs/useTableModel.js +29 -22
  87. package/cjs/useTableModel.js.map +1 -1
  88. package/cjs/useTableScroll.js.map +1 -1
  89. package/cjs/useTableViewport.js.map +1 -1
  90. package/esm/CellFocusState.js +43 -0
  91. package/esm/CellFocusState.js.map +1 -0
  92. package/esm/Row.js +7 -2
  93. package/esm/Row.js.map +1 -1
  94. package/esm/Table.css.js +1 -1
  95. package/esm/Table.js +33 -0
  96. package/esm/Table.js.map +1 -1
  97. package/esm/VirtualColSpan.js.map +1 -1
  98. package/esm/bulk-edit/BulkEditDialog.js +55 -0
  99. package/esm/bulk-edit/BulkEditDialog.js.map +1 -0
  100. package/esm/bulk-edit/BulkEditPanel.css.js +1 -1
  101. package/esm/bulk-edit/BulkEditPanel.js +21 -31
  102. package/esm/bulk-edit/BulkEditPanel.js.map +1 -1
  103. package/esm/bulk-edit/BulkEditRow.css.js +1 -1
  104. package/esm/bulk-edit/BulkEditRow.js +53 -48
  105. package/esm/bulk-edit/BulkEditRow.js.map +1 -1
  106. package/esm/bulk-edit/useBulkEditPanel.js +99 -0
  107. package/esm/bulk-edit/useBulkEditPanel.js.map +1 -0
  108. package/esm/bulk-edit/useBulkEditRow.js +142 -0
  109. package/esm/bulk-edit/useBulkEditRow.js.map +1 -0
  110. package/esm/cell-block/CellBlock.js.map +1 -1
  111. package/esm/cell-block/cellblock-utils.js.map +1 -1
  112. package/esm/cell-block/useCellBlockSelection.js.map +1 -1
  113. package/esm/cell-renderers/checkbox-cell/CheckboxCell.css.js +4 -0
  114. package/esm/cell-renderers/checkbox-cell/CheckboxCell.css.js.map +1 -0
  115. package/esm/cell-renderers/checkbox-cell/CheckboxCell.js +40 -5
  116. package/esm/cell-renderers/checkbox-cell/CheckboxCell.js.map +1 -1
  117. package/esm/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js.map +1 -1
  118. package/esm/cell-renderers/input-cell/InputCell.css.js +1 -1
  119. package/esm/cell-renderers/input-cell/InputCell.js +3 -9
  120. package/esm/cell-renderers/input-cell/InputCell.js.map +1 -1
  121. package/esm/cell-renderers/toggle-cell/ToggleCell.js +12 -10
  122. package/esm/cell-renderers/toggle-cell/ToggleCell.js.map +1 -1
  123. package/esm/column-header-pill/ColumnHeaderPill.css.js +1 -1
  124. package/esm/column-header-pill/ColumnHeaderPill.js +0 -1
  125. package/esm/column-header-pill/ColumnHeaderPill.js.map +1 -1
  126. package/esm/column-header-pill/GroupColumnPill.js.map +1 -1
  127. package/esm/column-header-pill/SortIndicator.js.map +1 -1
  128. package/esm/column-menu/ColumnMenu.js.map +1 -1
  129. package/esm/column-resizing/ColumnResizer.js.map +1 -1
  130. package/esm/column-resizing/useTableColumnResize.js.map +1 -1
  131. package/esm/context-menu/buildContextMenuDescriptors.js.map +1 -1
  132. package/esm/context-menu/useHandleTableContextMenu.js.map +1 -1
  133. package/esm/header-cell/GroupHeaderCell.js +3 -2
  134. package/esm/header-cell/GroupHeaderCell.js.map +1 -1
  135. package/esm/header-cell/HeaderCell.js +1 -0
  136. package/esm/header-cell/HeaderCell.js.map +1 -1
  137. package/esm/index.js +4 -0
  138. package/esm/index.js.map +1 -1
  139. package/esm/moving-window.js +1 -1
  140. package/esm/moving-window.js.map +1 -1
  141. package/esm/pagination/PaginationControl.js.map +1 -1
  142. package/esm/pagination/usePagination.js.map +1 -1
  143. package/esm/table-cell/TableCell.js +35 -17
  144. package/esm/table-cell/TableCell.js.map +1 -1
  145. package/esm/table-cell/TableGroupCell.css.js +1 -1
  146. package/esm/table-cell/TableGroupCell.js +1 -1
  147. package/esm/table-cell/TableGroupCell.js.map +1 -1
  148. package/esm/table-config.js.map +1 -1
  149. package/esm/table-dom-utils.js +4 -2
  150. package/esm/table-dom-utils.js.map +1 -1
  151. package/esm/table-header/HeaderProvider.js.map +1 -1
  152. package/esm/table-header/TableHeader.js +7 -12
  153. package/esm/table-header/TableHeader.js.map +1 -1
  154. package/esm/table-header/useTableHeader.js.map +1 -1
  155. package/esm/useCell.js +4 -3
  156. package/esm/useCell.js.map +1 -1
  157. package/esm/useCellEditing.js.map +1 -1
  158. package/esm/useCellFocus.js +2 -2
  159. package/esm/useCellFocus.js.map +1 -1
  160. package/esm/useControlledTableNavigation.js.map +1 -1
  161. package/esm/useDataSource.js +22 -3
  162. package/esm/useDataSource.js.map +1 -1
  163. package/esm/useEditableCell.js +30 -0
  164. package/esm/useEditableCell.js.map +1 -0
  165. package/esm/useKeyboardNavigation.js +6 -3
  166. package/esm/useKeyboardNavigation.js.map +1 -1
  167. package/esm/useMeasuredHeight.js.map +1 -1
  168. package/esm/useRowClassNameGenerators.js.map +1 -1
  169. package/esm/useSelection.js +7 -4
  170. package/esm/useSelection.js.map +1 -1
  171. package/esm/useTable.js +48 -25
  172. package/esm/useTable.js.map +1 -1
  173. package/esm/useTableAndColumnSettings.js.map +1 -1
  174. package/esm/useTableContextMenu.js.map +1 -1
  175. package/esm/useTableModel.js +30 -23
  176. package/esm/useTableModel.js.map +1 -1
  177. package/esm/useTableScroll.js.map +1 -1
  178. package/esm/useTableViewport.js.map +1 -1
  179. package/package.json +10 -10
  180. package/types/CellFocusState.d.ts +26 -0
  181. package/types/Row.d.ts +2 -3
  182. package/types/Table.d.ts +42 -3
  183. package/types/VirtualColSpan.d.ts +0 -1
  184. package/types/bulk-edit/BulkEditDialog.d.ts +9 -0
  185. package/types/bulk-edit/BulkEditPanel.d.ts +2 -1
  186. package/types/bulk-edit/BulkEditRow.d.ts +7 -5
  187. package/types/bulk-edit/index.d.ts +3 -0
  188. package/types/bulk-edit/useBulkEditPanel.d.ts +10 -0
  189. package/types/bulk-edit/useBulkEditRow.d.ts +20 -0
  190. package/types/cell-renderers/checkbox-cell/CheckboxCell.d.ts +1 -2
  191. package/types/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.d.ts +0 -1
  192. package/types/cell-renderers/input-cell/InputCell.d.ts +1 -2
  193. package/types/cell-renderers/toggle-cell/ToggleCell.d.ts +0 -1
  194. package/types/column-header-pill/ColumnHeaderPill.d.ts +1 -1
  195. package/types/column-header-pill/GroupColumnPill.d.ts +1 -2
  196. package/types/column-header-pill/SortIndicator.d.ts +1 -2
  197. package/types/column-menu/ColumnMenu.d.ts +1 -1
  198. package/types/column-resizing/ColumnResizer.d.ts +1 -2
  199. package/types/header-cell/GroupHeaderCell.d.ts +1 -2
  200. package/types/header-cell/HeaderCell.d.ts +1 -2
  201. package/types/index.d.ts +1 -0
  202. package/types/table-cell/TableCell.d.ts +2 -3
  203. package/types/table-cell/TableGroupCell.d.ts +1 -2
  204. package/types/table-header/TableHeader.d.ts +1 -2
  205. package/types/table-header/useTableHeader.d.ts +0 -1
  206. package/types/useCell.d.ts +1 -2
  207. package/types/useCellFocus.d.ts +4 -3
  208. package/types/useControlledTableNavigation.d.ts +1 -1
  209. package/types/useDataSource.d.ts +4 -6
  210. package/types/useEditableCell.d.ts +4 -0
  211. package/types/useKeyboardNavigation.d.ts +1 -1
  212. package/types/useSelection.d.ts +5 -5
  213. package/types/useTable.d.ts +14 -14
  214. package/types/useTableModel.d.ts +6 -6
  215. package/types/useTableScroll.d.ts +3 -2
@@ -5,4 +5,4 @@ export interface ColumnHeaderPillProps extends HTMLAttributes<HTMLDivElement> {
5
5
  removable?: boolean;
6
6
  onRemove?: (column: RuntimeColumnDescriptor) => void;
7
7
  }
8
- export declare const ColumnHeaderPill: ({ children, className, column, onRemove, removable, ...htmlAttributes }: ColumnHeaderPillProps) => JSX.Element;
8
+ export declare const ColumnHeaderPill: ({ children, className, column, onRemove, removable, ...htmlAttributes }: ColumnHeaderPillProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
1
  import { RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
3
2
  import { ColumnHeaderPillProps } from "./ColumnHeaderPill";
4
3
  export interface GroupColumnPillProps extends ColumnHeaderPillProps {
5
4
  column: RuntimeColumnDescriptor;
6
5
  }
7
- export declare const GroupColumnPill: ({ column, ...columnHeaderProps }: GroupColumnPillProps) => JSX.Element;
6
+ export declare const GroupColumnPill: ({ column, ...columnHeaderProps }: GroupColumnPillProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,5 @@
1
- /// <reference types="react" />
2
1
  import { RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
3
2
  export interface SortIndicatorProps {
4
3
  column: RuntimeColumnDescriptor;
5
4
  }
6
- export declare const SortIndicator: ({ column }: SortIndicatorProps) => JSX.Element | null;
5
+ export declare const SortIndicator: ({ column }: SortIndicatorProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -3,4 +3,4 @@ import { HTMLAttributes } from "react";
3
3
  export interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {
4
4
  column: RuntimeColumnDescriptor;
5
5
  }
6
- export declare const ColumnMenu: ({ className, column }: ColumnMenuProps) => JSX.Element;
6
+ export declare const ColumnMenu: ({ className, column }: ColumnMenuProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
1
  export interface TableColumnResizerProps {
3
2
  onDrag: (evt: MouseEvent, moveBy: number, totalDistanceMoved: number) => void;
4
3
  onDragEnd: (evt: MouseEvent, totalDistanceMoved: number) => void;
5
4
  onDragStart: (evt: React.MouseEvent) => void;
6
5
  }
7
- export declare const ColumnResizer: ({ onDrag, onDragEnd, onDragStart, }: TableColumnResizerProps) => JSX.Element;
6
+ export declare const ColumnResizer: ({ onDrag, onDragEnd, onDragStart, }: TableColumnResizerProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,7 @@
1
- /// <reference types="react" />
2
1
  import { ColumnDescriptor, GroupColumnDescriptor, HeaderCellProps, RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
3
2
  export interface GroupHeaderCellProps extends Omit<HeaderCellProps, "onDragStart" | "onDrag" | "onDragEnd"> {
4
3
  column: GroupColumnDescriptor;
5
4
  onMoveColumn?: (columns: ColumnDescriptor[]) => void;
6
5
  onRemoveColumn: (column: RuntimeColumnDescriptor) => void;
7
6
  }
8
- export declare const GroupHeaderCell: ({ column: groupColumn, className: classNameProp, onMoveColumn, onRemoveColumn, onResize, ...htmlAttributes }: GroupHeaderCellProps) => JSX.Element;
7
+ export declare const GroupHeaderCell: ({ column: groupColumn, className: classNameProp, onMoveColumn, onRemoveColumn, onResize, ...htmlAttributes }: GroupHeaderCellProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { HeaderCellProps } from "@vuu-ui/vuu-table-types";
3
- export declare const HeaderCell: ({ className: classNameProp, column, onClick, onResize, showMenu, ...htmlAttributes }: HeaderCellProps) => JSX.Element;
2
+ export declare const HeaderCell: ({ className: classNameProp, column, onClick, onResize, showMenu, ...htmlAttributes }: HeaderCellProps) => import("react/jsx-runtime").JSX.Element;
package/types/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from "./table-cell";
7
7
  export * from "./table-config";
8
8
  export * from "./table-header";
9
9
  export * from "./useControlledTableNavigation";
10
+ export * from "./useEditableCell";
10
11
  export * from "./useKeyboardNavigation";
11
12
  export * from "./useTableModel";
12
13
  export * from "./useTableScroll";
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
- import { TableCellProps } from "@vuu-ui/vuu-table-types";
3
- export declare const TableCell: ({ column, columnMap, onClick, onDataEdited, row, }: TableCellProps) => JSX.Element;
1
+ import type { TableCellProps } from "@vuu-ui/vuu-table-types";
2
+ export declare const TableCell: ({ column, columnMap, onClick, onDataEdited, row, }: TableCellProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { TableCellProps } from "@vuu-ui/vuu-table-types";
3
- export declare const TableGroupCell: ({ column, columnMap, onClick, row, }: TableCellProps) => JSX.Element;
2
+ export declare const TableGroupCell: ({ column, columnMap, onClick, row, }: TableCellProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { VuuSortType } from "@vuu-ui/vuu-protocol-types";
3
2
  import { ColumnDescriptor, CustomHeader, RuntimeColumnDescriptor, TableColumnResizeHandler, TableConfig, TableHeadings } from "@vuu-ui/vuu-table-types";
4
3
  export type ColumnSortHandler = (column: ColumnDescriptor, addToExistingSort: boolean, sortType?: VuuSortType) => void;
@@ -19,4 +18,4 @@ export interface TableHeaderProps {
19
18
  tableId: string;
20
19
  virtualColSpan?: number;
21
20
  }
22
- export declare const TableHeader: import("react").MemoExoticComponent<({ allowDragColumnHeader, classBase, columns, customHeader, headings, onHeightMeasured, onMoveColumn, onMoveGroupColumn, onRemoveGroupColumn, onResizeColumn, onSortColumn, showColumnHeaderMenus, tableConfig, tableId, virtualColSpan, }: TableHeaderProps) => JSX.Element>;
21
+ export declare const TableHeader: import("react").MemoExoticComponent<({ allowDragColumnHeader, classBase, columns, customHeader, headings, onHeightMeasured, onMoveColumn, onMoveGroupColumn, onRemoveGroupColumn, onResizeColumn, onSortColumn, showColumnHeaderMenus, tableConfig, tableId, virtualColSpan, }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ColumnDescriptor, TableHeadings } from "@vuu-ui/vuu-table-types";
3
2
  import { TableHeaderProps } from "./TableHeader";
4
3
  export interface TableHeaderHookProps extends Pick<TableHeaderProps, "allowDragColumnHeader" | "columns" | "onMoveColumn" | "onSortColumn" | "tableConfig"> {
@@ -1,6 +1,5 @@
1
- /// <reference types="react" />
2
1
  import { RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
3
- export declare const useCell: (column: RuntimeColumnDescriptor, classBase: string, isHeader?: boolean) => {
2
+ export declare const useCell: (column: RuntimeColumnDescriptor, classBase: string, isHeader?: boolean, hasError?: boolean) => {
4
3
  className: string;
5
4
  style: import("react").CSSProperties;
6
5
  };
@@ -1,8 +1,9 @@
1
1
  import { KeyboardEventHandler, MutableRefObject, RefCallback, RefObject } from "react";
2
2
  import { ScrollRequestHandler } from "./useTableScroll";
3
- import { CellFocusState, CellPos } from "@vuu-ui/vuu-table-types";
3
+ import { CellPos } from "@vuu-ui/vuu-table-types";
4
+ import type { ICellFocusState } from "./CellFocusState";
4
5
  export interface CellFocusHookProps {
5
- cellFocusStateRef: MutableRefObject<CellFocusState>;
6
+ cellFocusStateRef: MutableRefObject<ICellFocusState>;
6
7
  containerRef: RefObject<HTMLElement>;
7
8
  disableFocus?: boolean;
8
9
  requestScroll?: ScrollRequestHandler;
@@ -12,5 +13,5 @@ export declare const useCellFocus: ({ cellFocusStateRef, containerRef, disableFo
12
13
  focusCell: FocusCell;
13
14
  focusCellPlaceholderKeyDown: KeyboardEventHandler;
14
15
  focusCellPlaceholderRef: RefCallback<HTMLDivElement>;
15
- tableBodyRef: RefCallback<HTMLDivElement>;
16
+ setTableBodyRef: RefCallback<HTMLDivElement>;
16
17
  };
@@ -1,5 +1,5 @@
1
1
  import { KeyboardEventHandler } from "react";
2
- export declare const isRowSelectionKey: (key: string) => boolean;
2
+ export declare const isRowSelectionKey: (key: string) => key is "Enter" | " ";
3
3
  export declare const useControlledTableNavigation: (initialValue: number, rowCount: number) => {
4
4
  highlightedIndexRef: import("react").MutableRefObject<number | undefined>;
5
5
  onHighlight: (idx: number) => void;
@@ -1,13 +1,11 @@
1
- /// <reference types="react" />
2
- import { DataSource, DataSourceRow, DataSourceSubscribedMessage } from "@vuu-ui/vuu-data-types";
1
+ import { DataSourceRow, DataSourceSubscribedMessage } from "@vuu-ui/vuu-data-types";
3
2
  import { VuuRange } from "@vuu-ui/vuu-protocol-types";
4
- export interface DataSourceHookProps {
5
- dataSource: DataSource;
3
+ import { TableProps } from "./Table";
4
+ export interface DataSourceHookProps extends Pick<TableProps, "dataSource" | "defaultSelectedIndexValues" | "defaultSelectedKeyValues" | "renderBufferSize" | "revealSelected"> {
6
5
  onSizeChange: (size: number) => void;
7
6
  onSubscribed: (subscription: DataSourceSubscribedMessage) => void;
8
- renderBufferSize?: number;
9
7
  }
10
- export declare const useDataSource: ({ dataSource, onSizeChange, onSubscribed, renderBufferSize, }: DataSourceHookProps) => {
8
+ export declare const useDataSource: ({ dataSource, defaultSelectedIndexValues, defaultSelectedKeyValues, onSizeChange, onSubscribed, renderBufferSize, revealSelected, }: DataSourceHookProps) => {
11
9
  data: DataSourceRow[];
12
10
  dataRef: import("react").MutableRefObject<DataSourceRow[]>;
13
11
  getSelectedRows: () => DataSourceRow[];
@@ -0,0 +1,4 @@
1
+ import { KeyboardEventHandler } from "react";
2
+ export declare const useEditableCell: () => {
3
+ onKeyDown: KeyboardEventHandler<HTMLDivElement>;
4
+ };
@@ -5,7 +5,7 @@ import { TableNavigationStyle } from "./Table";
5
5
  import { NavigationKey } from "./table-dom-utils";
6
6
  import { ScrollRequestHandler } from "./useTableScroll";
7
7
  import { FocusCell } from "./useCellFocus";
8
- import { CellFocusState } from "@vuu-ui/vuu-table-types";
8
+ import { CellFocusState } from "./CellFocusState";
9
9
  export declare const isNavigationKey: (key: string, navigationStyle: TableNavigationStyle) => key is NavigationKey;
10
10
  export declare const isPagingKey: (key: string) => key is PageKey;
11
11
  export type GroupToggleHandler = (treeNodeOperation: "expand" | "collapse", rowIndex: number) => void;
@@ -1,14 +1,14 @@
1
1
  import { TableRowClickHandlerInternal, TableRowSelectHandlerInternal, TableSelectionModel } from "@vuu-ui/vuu-table-types";
2
- import { SelectionChangeHandler } from "@vuu-ui/vuu-data-types";
3
- import { KeyboardEventHandler, MutableRefObject } from "react";
4
- export interface SelectionHookProps {
2
+ import { KeyboardEventHandler, MutableRefObject, RefObject } from "react";
3
+ import { TableProps } from "./Table";
4
+ export interface SelectionHookProps extends Pick<TableProps, "defaultSelectedIndexValues" | "onSelectionChange"> {
5
+ containerRef: RefObject<HTMLElement>;
5
6
  highlightedIndexRef: MutableRefObject<number | undefined>;
6
7
  selectionKeys?: string[];
7
8
  selectionModel: TableSelectionModel;
8
9
  onSelect?: TableRowSelectHandlerInternal;
9
- onSelectionChange: SelectionChangeHandler;
10
10
  }
11
- export declare const useSelection: ({ highlightedIndexRef, selectionKeys, selectionModel, onSelect, onSelectionChange, }: SelectionHookProps) => {
11
+ export declare const useSelection: ({ containerRef, defaultSelectedIndexValues, highlightedIndexRef, selectionKeys, selectionModel, onSelect, onSelectionChange, }: SelectionHookProps) => {
12
12
  onKeyDown: KeyboardEventHandler<HTMLElement>;
13
13
  onRowClick: TableRowClickHandlerInternal;
14
14
  };
@@ -1,6 +1,6 @@
1
1
  import { DataSourceRow } from "@vuu-ui/vuu-data-types";
2
2
  import { VuuSortType } from "@vuu-ui/vuu-protocol-types";
3
- import { ColumnDescriptor, DataCellEditHandler, RuntimeColumnDescriptor, TableColumnResizeHandler, TableConfig, TableRowClickHandlerInternal, TableSelectionModel } from "@vuu-ui/vuu-table-types";
3
+ import { ColumnDescriptor, DataCellEditEvent, RuntimeColumnDescriptor, TableColumnResizeHandler, TableConfig, TableRowClickHandlerInternal, TableSelectionModel } from "@vuu-ui/vuu-table-types";
4
4
  import { MeasuredProps, MeasuredSize } from "@vuu-ui/vuu-ui-controls";
5
5
  import { FocusEvent, KeyboardEvent, MouseEventHandler, RefObject } from "react";
6
6
  import { TableProps } from "./Table";
@@ -8,13 +8,13 @@ type HeaderState = {
8
8
  height: number;
9
9
  count: number;
10
10
  };
11
- export interface TableHookProps extends MeasuredProps, Pick<TableProps, "allowCellBlockSelection" | "allowDragDrop" | "availableColumns" | "config" | "dataSource" | "disableFocus" | "highlightedIndex" | "id" | "navigationStyle" | "onAvailableColumnsChange" | "onConfigChange" | "onDragStart" | "onDrop" | "onHighlight" | "onSelect" | "onSelectCellBlock" | "onSelectionChange" | "onRowClick" | "renderBufferSize" | "scrollingApiRef" | "selectionBookendWidth" | "showColumnHeaders" | "showPaginationControls"> {
11
+ export interface TableHookProps extends MeasuredProps, Pick<TableProps, "allowCellBlockSelection" | "allowDragDrop" | "availableColumns" | "config" | "dataSource" | "defaultSelectedIndexValues" | "defaultSelectedKeyValues" | "disableFocus" | "highlightedIndex" | "id" | "navigationStyle" | "onAvailableColumnsChange" | "onConfigChange" | "onDataEdited" | "onDragStart" | "onDrop" | "onHighlight" | "onSelect" | "onSelectCellBlock" | "onSelectionChange" | "onRowClick" | "renderBufferSize" | "revealSelected" | "rowToObject" | "scrollingApiRef" | "selectionBookendWidth" | "showColumnHeaders" | "showPaginationControls"> {
12
12
  containerRef: RefObject<HTMLDivElement>;
13
13
  rowHeight: number;
14
14
  selectionModel: TableSelectionModel;
15
15
  size: MeasuredSize;
16
16
  }
17
- export declare const useTable: ({ allowCellBlockSelection, allowDragDrop, availableColumns, config, containerRef, dataSource, disableFocus, highlightedIndex: highlightedIndexProp, id, navigationStyle, onAvailableColumnsChange, onConfigChange, onDragStart, onDrop, onHighlight, onRowClick: onRowClickProp, onSelect, onSelectCellBlock, onSelectionChange, renderBufferSize, rowHeight, scrollingApiRef, selectionBookendWidth, selectionModel, showColumnHeaders, showPaginationControls, size, }: TableHookProps) => {
17
+ export declare const useTable: ({ allowCellBlockSelection, allowDragDrop, availableColumns, config, containerRef, dataSource, defaultSelectedIndexValues, defaultSelectedKeyValues, disableFocus, highlightedIndex: highlightedIndexProp, id, navigationStyle, onAvailableColumnsChange, onConfigChange, onDataEdited: onDataEditedProp, onDragStart, onDrop, onHighlight, onRowClick: onRowClickProp, onSelect, onSelectCellBlock, onSelectionChange, renderBufferSize, revealSelected, rowHeight, rowToObject, scrollingApiRef, selectionBookendWidth, selectionModel, showColumnHeaders, showPaginationControls, size, }: TableHookProps) => {
18
18
  "aria-rowcount": number;
19
19
  cellBlock: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
20
20
  columnMap: import("@vuu-ui/vuu-utils").ColumnMap;
@@ -30,12 +30,12 @@ export declare const useTable: ({ allowCellBlockSelection, allowDragDrop, availa
30
30
  highlightedIndex: number | undefined;
31
31
  menuBuilder: import("@vuu-ui/vuu-data-types").MenuBuilder;
32
32
  onBlur: import("react").FocusEventHandler;
33
- onDoubleClick: (e: import("react").MouseEvent<HTMLElement, MouseEvent>) => void;
33
+ onDoubleClick: (e: import("react").MouseEvent<HTMLElement>) => void;
34
34
  onFocus: (e: FocusEvent<HTMLElement>) => void;
35
35
  onKeyDown: (e: KeyboardEvent<HTMLElement>) => void;
36
36
  onMouseDown: MouseEventHandler;
37
- onContextMenu: (evt: import("react").MouseEvent<HTMLElement, MouseEvent>) => void;
38
- onDataEdited: DataCellEditHandler;
37
+ onContextMenu: (evt: import("react").MouseEvent<HTMLElement>) => void;
38
+ onDataEdited: (editState: DataCellEditEvent) => Promise<string | true | undefined>;
39
39
  onHeaderHeightMeasured: (height: number, count: number) => void;
40
40
  onMoveColumn: (columns: ColumnDescriptor[]) => void;
41
41
  onMoveGroupColumn: (columns: ColumnDescriptor[]) => void;
@@ -53,12 +53,12 @@ export declare const useTable: ({ allowCellBlockSelection, allowDragDrop, availa
53
53
  };
54
54
  tableAttributes: {
55
55
  availableWidth: number;
56
- columnDefaultWidth?: number | undefined;
57
- columnFormatHeader?: "capitalize" | "uppercase" | undefined;
58
- columnLayout?: import("@vuu-ui/vuu-table-types").ColumnLayout | undefined;
59
- columnSeparators?: boolean | undefined;
60
- rowSeparators?: boolean | undefined;
61
- zebraStripes?: boolean | undefined;
56
+ columnDefaultWidth?: number;
57
+ columnFormatHeader?: "capitalize" | "uppercase";
58
+ columnLayout?: import("@vuu-ui/vuu-table-types").ColumnLayout;
59
+ columnSeparators?: boolean;
60
+ rowSeparators?: boolean;
61
+ zebraStripes?: boolean;
62
62
  };
63
63
  tableBodyRef: import("react").RefCallback<HTMLDivElement>;
64
64
  tableConfig: Readonly<TableConfig>;
@@ -77,8 +77,8 @@ export declare const useTable: ({ allowCellBlockSelection, allowDragDrop, availa
77
77
  viewportBodyHeight: number;
78
78
  viewportWidth: number;
79
79
  };
80
- onClick: (evt: import("react").MouseEvent<Element, MouseEvent>) => void;
80
+ onClick: (evt: import("react").MouseEvent) => void;
81
81
  onMouseLeave: (() => void) | undefined;
82
- onMouseMove: ((evt: import("react").MouseEvent<Element, MouseEvent>) => void) | undefined;
82
+ onMouseMove: ((evt: import("react").MouseEvent) => void) | undefined;
83
83
  };
84
84
  export {};
@@ -95,12 +95,12 @@ export declare const useTableModel: (tableConfigProp: TableConfig, dataSource: D
95
95
  headings: TableHeadings;
96
96
  tableAttributes: {
97
97
  availableWidth: number;
98
- columnDefaultWidth?: number | undefined;
99
- columnFormatHeader?: "capitalize" | "uppercase" | undefined;
100
- columnLayout?: ColumnLayout | undefined;
101
- columnSeparators?: boolean | undefined;
102
- rowSeparators?: boolean | undefined;
103
- zebraStripes?: boolean | undefined;
98
+ columnDefaultWidth?: number;
99
+ columnFormatHeader?: "capitalize" | "uppercase";
100
+ columnLayout?: ColumnLayout;
101
+ columnSeparators?: boolean;
102
+ rowSeparators?: boolean;
103
+ zebraStripes?: boolean;
104
104
  };
105
105
  tableConfig: Readonly<TableConfig>;
106
106
  };
@@ -2,8 +2,9 @@ import { RowAtPositionFunc } from "@vuu-ui/vuu-utils";
2
2
  import type { VuuRange } from "@vuu-ui/vuu-protocol-types";
3
3
  import { ForwardedRef, MutableRefObject } from "react";
4
4
  import type { ViewportMeasurements } from "./useTableViewport";
5
- import type { CellFocusState, RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
5
+ import type { RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
6
6
  import { FocusCell } from "./useCellFocus";
7
+ import { ICellFocusState } from "./CellFocusState";
7
8
  export type ScrollDirectionVertical = "up" | "down";
8
9
  export type ScrollDirectionHorizontal = "left" | "right";
9
10
  export type ScrollDirection = ScrollDirectionVertical | ScrollDirectionHorizontal;
@@ -37,7 +38,7 @@ export interface ScrollingAPI {
37
38
  }
38
39
  export declare const noScrolling: ScrollingAPI;
39
40
  export interface TableScrollHookProps {
40
- cellFocusStateRef: MutableRefObject<CellFocusState>;
41
+ cellFocusStateRef: MutableRefObject<ICellFocusState>;
41
42
  columns: RuntimeColumnDescriptor[];
42
43
  focusCell?: FocusCell;
43
44
  getRowAtPosition: RowAtPositionFunc;