@vuu-ui/vuu-table 0.8.32 → 0.8.34

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 (184) hide show
  1. package/cjs/Row.css +115 -0
  2. package/cjs/Row.js +115 -0
  3. package/cjs/Row.js.map +1 -0
  4. package/cjs/Table.css +151 -0
  5. package/cjs/Table.js +276 -0
  6. package/cjs/Table.js.map +1 -0
  7. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.css +5 -0
  8. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js +33 -0
  9. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js.map +1 -0
  10. package/cjs/cell-renderers/input-cell/InputCell.css +31 -0
  11. package/cjs/cell-renderers/input-cell/InputCell.js +49 -0
  12. package/cjs/cell-renderers/input-cell/InputCell.js.map +1 -0
  13. package/cjs/cell-renderers/toggle-cell/ToggleCell.css +32 -0
  14. package/cjs/cell-renderers/toggle-cell/ToggleCell.js +59 -0
  15. package/cjs/cell-renderers/toggle-cell/ToggleCell.js.map +1 -0
  16. package/cjs/column-header-pill/ColumnHeaderPill.css +30 -0
  17. package/cjs/column-header-pill/ColumnHeaderPill.js +44 -0
  18. package/cjs/column-header-pill/ColumnHeaderPill.js.map +1 -0
  19. package/cjs/column-header-pill/GroupColumnPill.css +7 -0
  20. package/cjs/column-header-pill/GroupColumnPill.js +20 -0
  21. package/cjs/column-header-pill/GroupColumnPill.js.map +1 -0
  22. package/cjs/column-header-pill/SortIndicator.css +7 -0
  23. package/cjs/column-header-pill/SortIndicator.js +18 -0
  24. package/cjs/column-header-pill/SortIndicator.js.map +1 -0
  25. package/cjs/column-menu/ColumnMenu.css +21 -0
  26. package/cjs/column-menu/ColumnMenu.js +21 -0
  27. package/cjs/column-menu/ColumnMenu.js.map +1 -0
  28. package/cjs/column-resizing/ColumnResizer.css +28 -0
  29. package/cjs/column-resizing/ColumnResizer.js +63 -0
  30. package/cjs/column-resizing/ColumnResizer.js.map +1 -0
  31. package/cjs/column-resizing/useTableColumnResize.js +55 -0
  32. package/cjs/column-resizing/useTableColumnResize.js.map +1 -0
  33. package/cjs/context-menu/buildContextMenuDescriptors.js +214 -0
  34. package/cjs/context-menu/buildContextMenuDescriptors.js.map +1 -0
  35. package/cjs/context-menu/useHandleTableContextMenu.js +81 -0
  36. package/cjs/context-menu/useHandleTableContextMenu.js.map +1 -0
  37. package/cjs/header-cell/GroupHeaderCell.css +65 -0
  38. package/cjs/header-cell/GroupHeaderCell.js +108 -0
  39. package/cjs/header-cell/GroupHeaderCell.js.map +1 -0
  40. package/cjs/header-cell/HeaderCell.css +146 -0
  41. package/cjs/header-cell/HeaderCell.js +100 -0
  42. package/cjs/header-cell/HeaderCell.js.map +1 -0
  43. package/cjs/index.js +35 -1
  44. package/cjs/index.js.map +1 -7
  45. package/cjs/moving-window.js +61 -0
  46. package/cjs/moving-window.js.map +1 -0
  47. package/cjs/table-cell/TableCell.css +41 -0
  48. package/cjs/table-cell/TableCell.js +63 -0
  49. package/cjs/table-cell/TableCell.js.map +1 -0
  50. package/cjs/table-cell/TableGroupCell.css +26 -0
  51. package/cjs/table-cell/TableGroupCell.js +45 -0
  52. package/cjs/table-cell/TableGroupCell.js.map +1 -0
  53. package/cjs/table-config.js +25 -0
  54. package/cjs/table-config.js.map +1 -0
  55. package/cjs/table-dom-utils.js +60 -0
  56. package/cjs/table-dom-utils.js.map +1 -0
  57. package/cjs/table-header/TableHeader.js +87 -0
  58. package/cjs/table-header/TableHeader.js.map +1 -0
  59. package/cjs/table-header/useTableHeader.js +72 -0
  60. package/cjs/table-header/useTableHeader.js.map +1 -0
  61. package/cjs/useCell.js +28 -0
  62. package/cjs/useCell.js.map +1 -0
  63. package/cjs/useCellEditing.js +79 -0
  64. package/cjs/useCellEditing.js.map +1 -0
  65. package/cjs/useControlledTableNavigation.js +43 -0
  66. package/cjs/useControlledTableNavigation.js.map +1 -0
  67. package/cjs/useDataSource.js +104 -0
  68. package/cjs/useDataSource.js.map +1 -0
  69. package/cjs/useInitialValue.js +11 -0
  70. package/cjs/useInitialValue.js.map +1 -0
  71. package/cjs/useKeyboardNavigation.js +304 -0
  72. package/cjs/useKeyboardNavigation.js.map +1 -0
  73. package/cjs/useRowClassNameGenerators.js +34 -0
  74. package/cjs/useRowClassNameGenerators.js.map +1 -0
  75. package/cjs/useRowHeight.js +43 -0
  76. package/cjs/useRowHeight.js.map +1 -0
  77. package/cjs/useSelection.js +64 -0
  78. package/cjs/useSelection.js.map +1 -0
  79. package/cjs/useTable.js +553 -0
  80. package/cjs/useTable.js.map +1 -0
  81. package/cjs/useTableAndColumnSettings.js +128 -0
  82. package/cjs/useTableAndColumnSettings.js.map +1 -0
  83. package/cjs/useTableContextMenu.js +42 -0
  84. package/cjs/useTableContextMenu.js.map +1 -0
  85. package/cjs/useTableModel.js +297 -0
  86. package/cjs/useTableModel.js.map +1 -0
  87. package/cjs/useTableScroll.js +396 -0
  88. package/cjs/useTableScroll.js.map +1 -0
  89. package/cjs/useTableViewport.js +122 -0
  90. package/cjs/useTableViewport.js.map +1 -0
  91. package/esm/Row.css +115 -0
  92. package/esm/Row.js +112 -0
  93. package/esm/Row.js.map +1 -0
  94. package/esm/Table.css +151 -0
  95. package/esm/Table.js +274 -0
  96. package/esm/Table.js.map +1 -0
  97. package/esm/cell-renderers/checkbox-cell/CheckboxCell.css +5 -0
  98. package/esm/cell-renderers/checkbox-cell/CheckboxCell.js +31 -0
  99. package/esm/cell-renderers/checkbox-cell/CheckboxCell.js.map +1 -0
  100. package/esm/cell-renderers/input-cell/InputCell.css +31 -0
  101. package/esm/cell-renderers/input-cell/InputCell.js +47 -0
  102. package/esm/cell-renderers/input-cell/InputCell.js.map +1 -0
  103. package/esm/cell-renderers/toggle-cell/ToggleCell.css +32 -0
  104. package/esm/cell-renderers/toggle-cell/ToggleCell.js +57 -0
  105. package/esm/cell-renderers/toggle-cell/ToggleCell.js.map +1 -0
  106. package/esm/column-header-pill/ColumnHeaderPill.css +30 -0
  107. package/esm/column-header-pill/ColumnHeaderPill.js +42 -0
  108. package/esm/column-header-pill/ColumnHeaderPill.js.map +1 -0
  109. package/esm/column-header-pill/GroupColumnPill.css +7 -0
  110. package/esm/column-header-pill/GroupColumnPill.js +18 -0
  111. package/esm/column-header-pill/GroupColumnPill.js.map +1 -0
  112. package/esm/column-header-pill/SortIndicator.css +7 -0
  113. package/esm/column-header-pill/SortIndicator.js +16 -0
  114. package/esm/column-header-pill/SortIndicator.js.map +1 -0
  115. package/esm/column-menu/ColumnMenu.css +21 -0
  116. package/esm/column-menu/ColumnMenu.js +19 -0
  117. package/esm/column-menu/ColumnMenu.js.map +1 -0
  118. package/esm/column-resizing/ColumnResizer.css +28 -0
  119. package/esm/column-resizing/ColumnResizer.js +61 -0
  120. package/esm/column-resizing/ColumnResizer.js.map +1 -0
  121. package/esm/column-resizing/useTableColumnResize.js +53 -0
  122. package/esm/column-resizing/useTableColumnResize.js.map +1 -0
  123. package/esm/context-menu/buildContextMenuDescriptors.js +212 -0
  124. package/esm/context-menu/buildContextMenuDescriptors.js.map +1 -0
  125. package/esm/context-menu/useHandleTableContextMenu.js +79 -0
  126. package/esm/context-menu/useHandleTableContextMenu.js.map +1 -0
  127. package/esm/header-cell/GroupHeaderCell.css +65 -0
  128. package/esm/header-cell/GroupHeaderCell.js +106 -0
  129. package/esm/header-cell/GroupHeaderCell.js.map +1 -0
  130. package/esm/header-cell/HeaderCell.css +146 -0
  131. package/esm/header-cell/HeaderCell.js +98 -0
  132. package/esm/header-cell/HeaderCell.js.map +1 -0
  133. package/esm/index.js +13 -1
  134. package/esm/index.js.map +1 -7
  135. package/esm/moving-window.js +59 -0
  136. package/esm/moving-window.js.map +1 -0
  137. package/esm/table-cell/TableCell.css +41 -0
  138. package/esm/table-cell/TableCell.js +61 -0
  139. package/esm/table-cell/TableCell.js.map +1 -0
  140. package/esm/table-cell/TableGroupCell.css +26 -0
  141. package/esm/table-cell/TableGroupCell.js +43 -0
  142. package/esm/table-cell/TableGroupCell.js.map +1 -0
  143. package/esm/table-config.js +23 -0
  144. package/esm/table-config.js.map +1 -0
  145. package/esm/table-dom-utils.js +51 -0
  146. package/esm/table-dom-utils.js.map +1 -0
  147. package/esm/table-header/TableHeader.js +85 -0
  148. package/esm/table-header/TableHeader.js.map +1 -0
  149. package/esm/table-header/useTableHeader.js +70 -0
  150. package/esm/table-header/useTableHeader.js.map +1 -0
  151. package/esm/useCell.js +26 -0
  152. package/esm/useCell.js.map +1 -0
  153. package/esm/useCellEditing.js +77 -0
  154. package/esm/useCellEditing.js.map +1 -0
  155. package/esm/useControlledTableNavigation.js +41 -0
  156. package/esm/useControlledTableNavigation.js.map +1 -0
  157. package/esm/useDataSource.js +101 -0
  158. package/esm/useDataSource.js.map +1 -0
  159. package/esm/useInitialValue.js +9 -0
  160. package/esm/useInitialValue.js.map +1 -0
  161. package/esm/useKeyboardNavigation.js +300 -0
  162. package/esm/useKeyboardNavigation.js.map +1 -0
  163. package/esm/useRowClassNameGenerators.js +32 -0
  164. package/esm/useRowClassNameGenerators.js.map +1 -0
  165. package/esm/useRowHeight.js +41 -0
  166. package/esm/useRowHeight.js.map +1 -0
  167. package/esm/useSelection.js +62 -0
  168. package/esm/useSelection.js.map +1 -0
  169. package/esm/useTable.js +551 -0
  170. package/esm/useTable.js.map +1 -0
  171. package/esm/useTableAndColumnSettings.js +126 -0
  172. package/esm/useTableAndColumnSettings.js.map +1 -0
  173. package/esm/useTableContextMenu.js +40 -0
  174. package/esm/useTableContextMenu.js.map +1 -0
  175. package/esm/useTableModel.js +293 -0
  176. package/esm/useTableModel.js.map +1 -0
  177. package/esm/useTableScroll.js +393 -0
  178. package/esm/useTableScroll.js.map +1 -0
  179. package/esm/useTableViewport.js +120 -0
  180. package/esm/useTableViewport.js.map +1 -0
  181. package/package.json +12 -14
  182. package/LICENSE +0 -201
  183. package/index.css +0 -2
  184. package/index.css.map +0 -7
package/cjs/Row.css ADDED
@@ -0,0 +1,115 @@
1
+ .vuuTableRow {
2
+ background: var(--row-background,var(--table-background));
3
+ color: var(--salt-content-secondary-foreground);
4
+ border-bottom: 1px solid var(--row-borderColor, var(--table-background));
5
+ box-sizing: border-box;
6
+ height: var(--row-height);
7
+ line-height: calc(var(--row-height) - 1px);
8
+ position: absolute;
9
+ top:0;
10
+ white-space: nowrap;
11
+ }
12
+
13
+ .vuuTableRow-proxy {
14
+ visibility: hidden;
15
+ }
16
+
17
+ .vuuTableRow-even {
18
+ --row-background: var(--row-background-even);
19
+ }
20
+
21
+ .vuuTableRow-highlighted {
22
+ background: var(--salt-selectable-background-hover);
23
+ }
24
+
25
+
26
+ .vuuTableRow-selected,
27
+ .vuuTableRow-selectedEnd {
28
+ /* --row-borderColor: var(--salt-separable-secondary-borderColor); */
29
+ background-color: var(--salt-selectable-background-selected);
30
+ }
31
+
32
+ .vuuTableRow-selectedEnd {
33
+ z-index: 1;
34
+ }
35
+
36
+ .vuuTableRow-selectedStart {
37
+ --vuu-selection-decorator-left-radius: 5px 0 0 0;
38
+ --vuu-selection-decorator-right-radius: 0 5px 0 0;
39
+
40
+ border-radius: 5px 5px 0 0;
41
+ }
42
+
43
+ .vuuTableRow-selectedEnd {
44
+ --vuu-selection-decorator-left-radius: 0 0 0 5px;
45
+ --vuu-selection-decorator-right-radius: 0 0 5px 0;
46
+ border-radius: 0 0 5px 5px;
47
+ }
48
+
49
+ .vuuTableRow-selectedStart.vuuTableRow-selectedEnd {
50
+ --vuu-selection-decorator-left-radius: 5px 0 0 5px;
51
+ --vuu-selection-decorator-right-radius: 0 5px 5px 0;
52
+ border-radius: 5px 5px 5px 5px;
53
+
54
+ }
55
+
56
+ .vuuTableRow-selectedStart:after {
57
+ content: '';
58
+ position: absolute;
59
+ top: -1px;
60
+ left: 4px;
61
+ height: 1px;
62
+ background: var(--vuuTableRow-selectionBlock-borderColor);
63
+ width: calc(var(--content-width) - 8px);
64
+ z-index: 1;
65
+ }
66
+
67
+ .vuuTableRow-selectedEnd {
68
+ border-bottom-color: var(--vuuTableRow-selectionBlock-borderColor, var(--row-borderColor));
69
+ }
70
+
71
+ .vuuTableRow-selectionDecorator {
72
+ background: var(--table-background);
73
+ display: inline-block;
74
+ position: relative;
75
+ height: var(--row-height);
76
+ width: 4px;
77
+ z-index: 2;
78
+ }
79
+
80
+ .vuuTableRow-selectionDecorator.vuuStickyLeft {
81
+ left:0;
82
+ position: sticky;
83
+ }
84
+
85
+ .vuuTableRow-selectionDecorator.vuuStickyRight {
86
+ right:0;
87
+ position: sticky;
88
+ }
89
+
90
+ .vuuTableRow-selectedStart .vuuTableRow-selectionDecorator:before,
91
+ .vuuTableRow-selectedEnd .vuuTableRow-selectionDecorator:before {
92
+ content: '';
93
+ inset: -1px 0 0 0;
94
+ position: absolute;
95
+ background: var(--table-background);
96
+ }
97
+
98
+ .vuuTableRow-selectionDecorator.vuuStickyLeft:before {
99
+ border-radius: var(--vuu-selection-decorator-left-radius, 0);
100
+ }
101
+
102
+ .vuuTableRow-selectionDecorator.vuuStickyRight:before {
103
+ border-radius: var(--vuu-selection-decorator-right-radius, 0);
104
+ }
105
+
106
+ .vuuTableRow-expanded {
107
+ --toggle-icon-transform: rotate(90deg);
108
+ }
109
+
110
+ .vuuDraggable .vuuTableRow {
111
+ --cell-borderColor: transparent;
112
+ --vuu-selection-decorator-bg: transparent;
113
+ transform: none!important;
114
+ z-index: 1;
115
+ }
package/cjs/Row.js ADDED
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var vuuUtils = require('@vuu-ui/vuu-utils');
5
+ var cx = require('clsx');
6
+ var react = require('react');
7
+ var TableCell = require('./table-cell/TableCell.js');
8
+ var TableGroupCell = require('./table-cell/TableGroupCell.js');
9
+
10
+ const { IDX, IS_EXPANDED, SELECTED } = vuuUtils.metadataKeys;
11
+ const classBase = "vuuTableRow";
12
+ const RowProxy = react.forwardRef(
13
+ function RowProxy2({ height }, forwardedRef) {
14
+ return /* @__PURE__ */ jsxRuntime.jsx(
15
+ "div",
16
+ {
17
+ "aria-hidden": true,
18
+ className: cx(classBase, `${classBase}-proxy`),
19
+ ref: forwardedRef,
20
+ style: { height }
21
+ }
22
+ );
23
+ }
24
+ );
25
+ const Row = react.memo(
26
+ ({
27
+ className: classNameProp,
28
+ classNameGenerator,
29
+ columnMap,
30
+ columns,
31
+ highlighted,
32
+ row,
33
+ offset,
34
+ onClick,
35
+ onDataEdited,
36
+ onToggleGroup,
37
+ virtualColSpan = 0,
38
+ zebraStripes = false,
39
+ ...htmlAttributes
40
+ }) => {
41
+ const {
42
+ [IDX]: rowIndex,
43
+ [IS_EXPANDED]: isExpanded,
44
+ [SELECTED]: selectionStatus
45
+ } = row;
46
+ const handleRowClick = react.useCallback(
47
+ (evt) => {
48
+ const rangeSelect = evt.shiftKey;
49
+ const keepExistingSelection = evt.ctrlKey || evt.metaKey;
50
+ onClick?.(evt, row, rangeSelect, keepExistingSelection);
51
+ },
52
+ [onClick, row]
53
+ );
54
+ const { True, First, Last } = vuuUtils.RowSelected;
55
+ const className = cx(
56
+ classBase,
57
+ classNameProp,
58
+ classNameGenerator?.(row, columnMap),
59
+ {
60
+ [`${classBase}-even`]: zebraStripes && rowIndex % 2 === 0,
61
+ [`${classBase}-expanded`]: isExpanded,
62
+ [`${classBase}-highlighted`]: highlighted,
63
+ [`${classBase}-selected`]: selectionStatus & True,
64
+ [`${classBase}-selectedStart`]: selectionStatus & First,
65
+ [`${classBase}-selectedEnd`]: selectionStatus & Last
66
+ }
67
+ );
68
+ const style = { transform: `translate3d(0px, ${offset}px, 0px)` };
69
+ const handleGroupCellClick = react.useCallback(
70
+ (evt, column) => {
71
+ if (vuuUtils.isGroupColumn(column) || vuuUtils.isJsonGroup(column, row, columnMap)) {
72
+ evt.stopPropagation();
73
+ onToggleGroup?.(row, column);
74
+ }
75
+ },
76
+ [columnMap, onToggleGroup, row]
77
+ );
78
+ return /* @__PURE__ */ jsxRuntime.jsxs(
79
+ "div",
80
+ {
81
+ ...htmlAttributes,
82
+ role: "row",
83
+ className,
84
+ onClick: handleRowClick,
85
+ style,
86
+ children: [
87
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `${classBase}-selectionDecorator vuuStickyLeft` }),
88
+ virtualColSpan > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "vuuTableCell", style: { width: virtualColSpan } }) : null,
89
+ columns.filter(vuuUtils.isNotHidden).map((column) => {
90
+ const isGroup = vuuUtils.isGroupColumn(column);
91
+ const isJsonCell = vuuUtils.isJsonColumn(column);
92
+ const Cell = isGroup ? TableGroupCell.TableGroupCell : TableCell.TableCell;
93
+ return /* @__PURE__ */ jsxRuntime.jsx(
94
+ Cell,
95
+ {
96
+ column,
97
+ columnMap,
98
+ onClick: isGroup || isJsonCell ? handleGroupCellClick : void 0,
99
+ onDataEdited,
100
+ row
101
+ },
102
+ column.name
103
+ );
104
+ }),
105
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `${classBase}-selectionDecorator vuuStickyRight` })
106
+ ]
107
+ }
108
+ );
109
+ }
110
+ );
111
+ Row.displayName = "Row";
112
+
113
+ exports.Row = Row;
114
+ exports.RowProxy = RowProxy;
115
+ //# sourceMappingURL=Row.js.map
package/cjs/Row.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Row.js","sources":["../src/Row.tsx"],"sourcesContent":["import { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport {\n DataCellEditHandler,\n RuntimeColumnDescriptor,\n TableRowClickHandlerInternal,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n ColumnMap,\n isGroupColumn,\n isJsonColumn,\n isJsonGroup,\n metadataKeys,\n isNotHidden,\n RowSelected,\n RowClassNameGenerator,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n CSSProperties,\n forwardRef,\n memo,\n MouseEvent,\n useCallback,\n} from \"react\";\nimport { TableCell, TableGroupCell } from \"./table-cell\";\n\nimport \"./Row.css\";\n\nexport interface RowProps {\n className?: string;\n classNameGenerator?: RowClassNameGenerator;\n columnMap: ColumnMap;\n columns: RuntimeColumnDescriptor[];\n highlighted?: boolean;\n row: DataSourceRow;\n offset: number;\n onClick?: TableRowClickHandlerInternal;\n onDataEdited?: DataCellEditHandler;\n onToggleGroup?: (row: DataSourceRow, column: RuntimeColumnDescriptor) => void;\n style?: CSSProperties;\n virtualColSpan?: number;\n zebraStripes?: boolean;\n}\n\nconst { IDX, IS_EXPANDED, SELECTED } = metadataKeys;\nconst classBase = \"vuuTableRow\";\n\n// A dummy Table Row rendered once and not visible. We measure this to\n// determine height of Row(s) and monitor it for size changes (in\n// case of runtime density switch). This allows ListItem height to\n// be controlled purely through CSS.\nexport const RowProxy = forwardRef<HTMLDivElement, { height?: number }>(\n function RowProxy({ height }, forwardedRef) {\n return (\n <div\n aria-hidden\n className={cx(classBase, `${classBase}-proxy`)}\n ref={forwardedRef}\n style={{ height }}\n />\n );\n }\n);\n\n// export const Row = memo(\nexport const Row = memo(\n ({\n className: classNameProp,\n classNameGenerator,\n columnMap,\n columns,\n highlighted,\n row,\n offset,\n onClick,\n onDataEdited,\n onToggleGroup,\n virtualColSpan = 0,\n zebraStripes = false,\n ...htmlAttributes\n }: RowProps) => {\n const {\n [IDX]: rowIndex,\n [IS_EXPANDED]: isExpanded,\n [SELECTED]: selectionStatus,\n } = row;\n\n const handleRowClick = useCallback(\n (evt: MouseEvent<HTMLDivElement>) => {\n const rangeSelect = evt.shiftKey;\n const keepExistingSelection = evt.ctrlKey || evt.metaKey; /* mac only */\n onClick?.(evt, row, rangeSelect, keepExistingSelection);\n },\n [onClick, row]\n );\n\n const { True, First, Last } = RowSelected;\n\n const className = cx(\n classBase,\n classNameProp,\n classNameGenerator?.(row, columnMap),\n {\n [`${classBase}-even`]: zebraStripes && rowIndex % 2 === 0,\n [`${classBase}-expanded`]: isExpanded,\n [`${classBase}-highlighted`]: highlighted,\n [`${classBase}-selected`]: selectionStatus & True,\n [`${classBase}-selectedStart`]: selectionStatus & First,\n [`${classBase}-selectedEnd`]: selectionStatus & Last,\n }\n );\n\n const style = { transform: `translate3d(0px, ${offset}px, 0px)` };\n\n const handleGroupCellClick = useCallback(\n (evt: MouseEvent, column: RuntimeColumnDescriptor) => {\n if (isGroupColumn(column) || isJsonGroup(column, row, columnMap)) {\n evt.stopPropagation();\n onToggleGroup?.(row, column);\n }\n },\n [columnMap, onToggleGroup, row]\n );\n\n return (\n <div\n {...htmlAttributes}\n role=\"row\"\n className={className}\n onClick={handleRowClick}\n style={style}\n >\n <span className={`${classBase}-selectionDecorator vuuStickyLeft`} />\n {virtualColSpan > 0 ? (\n <div className=\"vuuTableCell\" style={{ width: virtualColSpan }} />\n ) : null}\n {columns.filter(isNotHidden).map((column) => {\n const isGroup = isGroupColumn(column);\n const isJsonCell = isJsonColumn(column);\n const Cell = isGroup ? TableGroupCell : TableCell;\n\n return (\n <Cell\n column={column}\n columnMap={columnMap}\n key={column.name}\n onClick={isGroup || isJsonCell ? handleGroupCellClick : undefined}\n onDataEdited={onDataEdited}\n row={row}\n />\n );\n })}\n <span className={`${classBase}-selectionDecorator vuuStickyRight`} />\n </div>\n );\n }\n);\nRow.displayName = \"Row\";\n"],"names":["metadataKeys","forwardRef","RowProxy","jsx","memo","useCallback","RowSelected","isGroupColumn","isJsonGroup","jsxs","isNotHidden","isJsonColumn","TableGroupCell","TableCell"],"mappings":"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"}
package/cjs/Table.css ADDED
@@ -0,0 +1,151 @@
1
+
2
+ .vuuTable {
3
+ --vuu-table-cell-outlineWidth: 1px;
4
+ --table-height: var(--measured-px-height);
5
+ --table-width: var(--measured-px-width);
6
+ --vuu-table-next-selection-bookend-width: 4px;
7
+ --vuu-table-embedded-control-height: calc(var(--row-height) - 3px);
8
+ --columnResizer-color: transparent;
9
+ --row-height: var(--row-height-prop, var(--vuu-table-row-height, var(--salt-size-base)));
10
+
11
+ --cell-borderColor: transparent;
12
+ --row-borderColor: var(--row-background);
13
+ --table-background: var(--salt-container-primary-background);
14
+
15
+ background: var(--table-background);
16
+ font-family: var(--vuuTable-fontFamily,var(--salt-typography-fontFamily, sans-serif));
17
+ font-size: var(--vuuTable-fontSize,var(--salt-text-fontSize, 12px));
18
+ position: relative;
19
+ user-select: none;
20
+ }
21
+
22
+ .vuuTable-zebra {
23
+ --row-background-even: var(--table-background);
24
+ }
25
+
26
+ .vuuTable-colLines {
27
+ --cell-borderColor: var(
28
+
29
+ );
30
+ }
31
+
32
+ .vuuTable-rowLines {
33
+ --row-borderColor: var(--salt-separable-tertiary-borderColor);
34
+ }
35
+
36
+ .vuuTable-scrollbarContainer {
37
+ border-bottom: none !important;
38
+ border-top: none !important;
39
+ border-left: solid 1px var(--salt-container-primary-borderColor);
40
+ /* a top border */
41
+ /** creates a border to top od scrollbar */
42
+ /* box-shadow: 0px -1px 0px 0px var(--salt-container-primary-borderColor); */
43
+ height: var(--viewport-body-height);
44
+ left: 0px;
45
+ overflow: auto;
46
+ position: absolute;
47
+ top: var(--total-header-height);
48
+ width: var(--table-width);
49
+
50
+
51
+ }
52
+
53
+ .vuuTable-scrollbarContainer::-webkit-scrollbar {
54
+ border: none;
55
+ width: 10px;
56
+ }
57
+
58
+ .vuuTable-scrollbarContainer::-webkit-scrollbar:horizontal {
59
+ height: 10px;
60
+ }
61
+
62
+
63
+ .vuuTable-scrollbarContainer::-webkit-scrollbar-track {
64
+ background-color: white;
65
+ }
66
+ .vuuTable-scrollbarContainer::-webkit-scrollbar-thumb {
67
+ background-clip: padding-box;
68
+ border-radius: 10px;
69
+ border: 2px solid rgba(0, 0, 0, 0);
70
+ background-color: var(--vuu-color-gray-30);
71
+ }
72
+
73
+ .vuuTable-scrollbarContent {
74
+ height: calc(var(--content-height) + var(--horizontal-scrollbar-height));
75
+ position: absolute;
76
+ width: var(--content-width);
77
+ }
78
+
79
+ .vuuTable-contentContainer {
80
+ background: var(--table-background);
81
+ height: calc(var(--table-height) - var(--horizontal-scrollbar-height));
82
+ position: relative;
83
+ overflow: auto;
84
+ overscroll-behavior: none;
85
+ width: calc(var(--table-width) - var(--vertical-scrollbar-width));
86
+ }
87
+
88
+ .vuuTable-contentContainer::-webkit-scrollbar {
89
+ display: none;
90
+ }
91
+
92
+
93
+ .vuuTable-table {
94
+ position: absolute;
95
+ top: 0;
96
+ left: 0;
97
+ table-layout: fixed;
98
+ width: var(--content-width);
99
+ margin: 0;
100
+ border: none;
101
+ border-collapse: separate;
102
+ border-spacing: 0;
103
+ }
104
+
105
+ .vuuTable-body {
106
+ height: var(--content-height);
107
+ position: relative;
108
+ }
109
+
110
+ .vuuPinLeft, .vuuPinRight {
111
+ background-color: inherit;
112
+ position: sticky;
113
+ z-index: 1;
114
+ }
115
+
116
+ .vuuTable-col-headings {
117
+ background-color: var(--vuuTableColHeadings-background, var(--table-background));
118
+ padding: 0 var(--vuu-table-next-selection-bookend-width, 0);
119
+
120
+ position: sticky;
121
+ top: 0;
122
+ /* ensure header row sits atop everything else when scrolling down */
123
+ z-index: 1;
124
+ }
125
+
126
+ .vuuTable-col-headings:hover {
127
+ --columnResizer-height: var(--header-height);
128
+ --columnResizer-color: var(--salt-separable-tertiary-borderColor);
129
+ }
130
+
131
+ .vuuTable-col-headers {
132
+ background-color: var(--vuuTableColHeadings-background, var(--vuuTableColHeadings-background));
133
+ color: var(--salt-content-secondary-foreground);
134
+ white-space: nowrap;
135
+ }
136
+
137
+
138
+ .sizer-cell {
139
+ border: none !important;
140
+ height: 0px;
141
+ }
142
+
143
+ .vuuDraggable-vuuTable {
144
+ --header-height: 25px;
145
+ --vuuTableHeaderCell-background: var(--salt-container-secondary-background);
146
+ }
147
+ .vuuDraggable-vuuTable {
148
+ --row-height: 25px;
149
+ }
150
+
151
+
package/cjs/Table.js ADDED
@@ -0,0 +1,276 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var vuuPopups = require('@vuu-ui/vuu-popups');
5
+ var vuuUiControls = require('@vuu-ui/vuu-ui-controls');
6
+ var vuuUtils = require('@vuu-ui/vuu-utils');
7
+ var core = require('@salt-ds/core');
8
+ var cx = require('clsx');
9
+ var react = require('react');
10
+ var Row = require('./Row.js');
11
+ var TableHeader = require('./table-header/TableHeader.js');
12
+ var useTable = require('./useTable.js');
13
+ var useRowHeight = require('./useRowHeight.js');
14
+
15
+ const classBase = "vuuTable";
16
+ const { IDX, RENDER_IDX } = vuuUtils.metadataKeys;
17
+ const TableCore = ({
18
+ Row: Row$1 = Row.Row,
19
+ allowDragDrop,
20
+ availableColumns,
21
+ config,
22
+ containerRef,
23
+ dataSource,
24
+ disableFocus = false,
25
+ highlightedIndex: highlightedIndexProp,
26
+ id: idProp,
27
+ navigationStyle = "cell",
28
+ onAvailableColumnsChange,
29
+ onConfigChange,
30
+ onDragStart,
31
+ onDrop,
32
+ onFeatureInvocation,
33
+ onHighlight,
34
+ onRowClick: onRowClickProp,
35
+ onSelect,
36
+ onSelectionChange,
37
+ renderBufferSize = 5,
38
+ rowHeight,
39
+ scrollingApiRef,
40
+ selectionModel = "extended",
41
+ showColumnHeaders = true,
42
+ showColumnHeaderMenus = true,
43
+ headerHeight = showColumnHeaders ? rowHeight * 1.25 : 0,
44
+ size
45
+ }) => {
46
+ const id = vuuUtils.useId(idProp);
47
+ const {
48
+ columnMap,
49
+ columns,
50
+ data,
51
+ draggableRow,
52
+ getRowOffset,
53
+ handleContextMenuAction,
54
+ headings,
55
+ highlightedIndex,
56
+ menuBuilder,
57
+ onDataEdited,
58
+ onMoveColumn,
59
+ onMoveGroupColumn,
60
+ onRemoveGroupColumn,
61
+ onResizeColumn,
62
+ onRowClick,
63
+ onSortColumn,
64
+ onToggleGroup,
65
+ rowClassNameGenerator,
66
+ scrollProps,
67
+ tableAttributes,
68
+ tableConfig,
69
+ viewportMeasurements,
70
+ ...tableProps
71
+ } = useTable.useTable({
72
+ allowDragDrop,
73
+ availableColumns,
74
+ config,
75
+ containerRef,
76
+ dataSource,
77
+ disableFocus,
78
+ headerHeight,
79
+ highlightedIndex: highlightedIndexProp,
80
+ id,
81
+ navigationStyle,
82
+ onAvailableColumnsChange,
83
+ onConfigChange,
84
+ onDragStart,
85
+ onDrop,
86
+ onFeatureInvocation,
87
+ onHighlight,
88
+ onRowClick: onRowClickProp,
89
+ onSelect,
90
+ onSelectionChange,
91
+ renderBufferSize: Math.max(5, renderBufferSize),
92
+ rowHeight,
93
+ scrollingApiRef,
94
+ selectionModel,
95
+ size
96
+ });
97
+ const contentContainerClassName = cx(`${classBase}-contentContainer`, {
98
+ [`${classBase}-colLines`]: tableAttributes.columnSeparators,
99
+ [`${classBase}-rowLines`]: tableAttributes.rowSeparators,
100
+ [`${classBase}-zebra`]: tableAttributes.zebraStripes
101
+ });
102
+ const cssVariables = {
103
+ "--content-height": `${viewportMeasurements.contentHeight}px`,
104
+ "--content-width": `${viewportMeasurements.contentWidth}px`,
105
+ "--horizontal-scrollbar-height": `${viewportMeasurements.horizontalScrollbarHeight}px`,
106
+ "--pinned-width-left": `${viewportMeasurements.pinnedWidthLeft}px`,
107
+ "--pinned-width-right": `${viewportMeasurements.pinnedWidthRight}px`,
108
+ "--header-height": `${headerHeight}px`,
109
+ "--row-height-prop": `${rowHeight}px`,
110
+ "--total-header-height": `${viewportMeasurements.totalHeaderHeight}px`,
111
+ "--vertical-scrollbar-width": `${viewportMeasurements.verticalScrollbarWidth}px`,
112
+ "--viewport-body-height": `${viewportMeasurements.viewportBodyHeight}px`
113
+ };
114
+ return /* @__PURE__ */ jsxRuntime.jsxs(
115
+ vuuPopups.ContextMenuProvider,
116
+ {
117
+ menuActionHandler: handleContextMenuAction,
118
+ menuBuilder,
119
+ children: [
120
+ /* @__PURE__ */ jsxRuntime.jsx(
121
+ "div",
122
+ {
123
+ className: `${classBase}-scrollbarContainer`,
124
+ ref: scrollProps.scrollbarContainerRef,
125
+ style: cssVariables,
126
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-scrollbarContent` })
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsxRuntime.jsx(
130
+ "div",
131
+ {
132
+ className: contentContainerClassName,
133
+ ref: scrollProps.contentContainerRef,
134
+ style: cssVariables,
135
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
136
+ "div",
137
+ {
138
+ ...tableProps,
139
+ className: `${classBase}-table`,
140
+ role: "table",
141
+ tabIndex: disableFocus ? void 0 : -1,
142
+ children: [
143
+ showColumnHeaders ? /* @__PURE__ */ jsxRuntime.jsx(
144
+ TableHeader.TableHeader,
145
+ {
146
+ columns: scrollProps.columnsWithinViewport,
147
+ headings,
148
+ onMoveColumn,
149
+ onMoveGroupColumn,
150
+ onRemoveGroupColumn,
151
+ onResizeColumn,
152
+ onSortColumn,
153
+ showColumnHeaderMenus,
154
+ tableConfig,
155
+ tableId: id,
156
+ virtualColSpan: scrollProps.virtualColSpan
157
+ }
158
+ ) : null,
159
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-body`, children: data.map((data2) => /* @__PURE__ */ jsxRuntime.jsx(
160
+ Row$1,
161
+ {
162
+ "aria-rowindex": data2[0] + 1,
163
+ classNameGenerator: rowClassNameGenerator,
164
+ columnMap,
165
+ columns: scrollProps.columnsWithinViewport,
166
+ highlighted: highlightedIndex === data2[IDX],
167
+ onClick: onRowClick,
168
+ onDataEdited,
169
+ row: data2,
170
+ offset: getRowOffset(data2),
171
+ onToggleGroup,
172
+ virtualColSpan: scrollProps.virtualColSpan,
173
+ zebraStripes: tableAttributes.zebraStripes
174
+ },
175
+ data2[RENDER_IDX]
176
+ )) })
177
+ ]
178
+ }
179
+ )
180
+ }
181
+ ),
182
+ draggableRow
183
+ ]
184
+ }
185
+ );
186
+ };
187
+ const Table = react.forwardRef(function TableNext({
188
+ Row: Row$1,
189
+ allowDragDrop,
190
+ availableColumns,
191
+ className: classNameProp,
192
+ config,
193
+ dataSource,
194
+ disableFocus,
195
+ highlightedIndex,
196
+ id,
197
+ navigationStyle,
198
+ onAvailableColumnsChange,
199
+ onConfigChange,
200
+ onDragStart,
201
+ onDrop,
202
+ onFeatureInvocation,
203
+ onHighlight,
204
+ onRowClick,
205
+ onSelect,
206
+ onSelectionChange,
207
+ renderBufferSize,
208
+ rowHeight: rowHeightProp,
209
+ scrollingApiRef,
210
+ selectionModel,
211
+ showColumnHeaders,
212
+ showColumnHeaderMenus,
213
+ headerHeight,
214
+ style: styleProp,
215
+ ...htmlAttributes
216
+ }, forwardedRef) {
217
+ const containerRef = react.useRef(null);
218
+ const [size, setSize] = react.useState();
219
+ const { rowHeight, rowRef } = useRowHeight.useRowHeight({ rowHeight: rowHeightProp });
220
+ if (config === void 0) {
221
+ throw Error(
222
+ "vuu Table requires config prop. Minimum config is list of Column Descriptors"
223
+ );
224
+ }
225
+ if (dataSource === void 0) {
226
+ throw Error("vuu Table requires dataSource prop");
227
+ }
228
+ return /* @__PURE__ */ jsxRuntime.jsxs(
229
+ vuuUiControls.MeasuredContainer,
230
+ {
231
+ ...htmlAttributes,
232
+ className: cx(classBase, classNameProp),
233
+ id,
234
+ onResize: setSize,
235
+ ref: core.useForkRef(containerRef, forwardedRef),
236
+ children: [
237
+ /* @__PURE__ */ jsxRuntime.jsx(Row.RowProxy, { ref: rowRef, height: rowHeightProp }),
238
+ size && rowHeight ? /* @__PURE__ */ jsxRuntime.jsx(
239
+ TableCore,
240
+ {
241
+ Row: Row$1,
242
+ allowDragDrop,
243
+ availableColumns,
244
+ config,
245
+ containerRef,
246
+ dataSource,
247
+ disableFocus,
248
+ headerHeight,
249
+ highlightedIndex,
250
+ id,
251
+ navigationStyle,
252
+ onAvailableColumnsChange,
253
+ onConfigChange,
254
+ onDragStart,
255
+ onDrop,
256
+ onFeatureInvocation,
257
+ onHighlight,
258
+ onRowClick,
259
+ onSelect,
260
+ onSelectionChange,
261
+ renderBufferSize,
262
+ rowHeight,
263
+ scrollingApiRef,
264
+ selectionModel,
265
+ showColumnHeaders,
266
+ showColumnHeaderMenus,
267
+ size
268
+ }
269
+ ) : null
270
+ ]
271
+ }
272
+ );
273
+ });
274
+
275
+ exports.Table = Table;
276
+ //# sourceMappingURL=Table.js.map