@salt-ds/data-grid 0.0.0-snapshot-20230920133053 → 0.0.0-snapshot-20240719143459
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.
- package/dist-cjs/BaseCell.js +8 -8
- package/dist-cjs/BaseCell.js.map +1 -1
- package/dist-cjs/CellEditor.js.map +1 -1
- package/dist-cjs/{internal/Cell.css.js → CellFrame.css.js} +1 -1
- package/dist-cjs/CellFrame.css.js.map +1 -0
- package/dist-cjs/{internal/Cell.js → CellFrame.js} +9 -9
- package/dist-cjs/CellFrame.js.map +1 -0
- package/dist-cjs/ColumnDataContext.js +1 -1
- package/dist-cjs/ColumnDataContext.js.map +1 -1
- package/dist-cjs/ColumnDragContext.js +1 -1
- package/dist-cjs/ColumnDragContext.js.map +1 -1
- package/dist-cjs/ColumnGroup.js +1 -1
- package/dist-cjs/ColumnGroup.js.map +1 -1
- package/dist-cjs/ColumnSortContext.js +1 -1
- package/dist-cjs/ColumnSortContext.js.map +1 -1
- package/dist-cjs/CornerTag.js +1 -1
- package/dist-cjs/CornerTag.js.map +1 -1
- package/dist-cjs/CursorContext.js +1 -1
- package/dist-cjs/CursorContext.js.map +1 -1
- package/dist-cjs/DropdownCellEditor.js +5 -21
- package/dist-cjs/DropdownCellEditor.js.map +1 -1
- package/dist-cjs/EditorContext.js +1 -1
- package/dist-cjs/EditorContext.js.map +1 -1
- package/dist-cjs/Grid.css.js +1 -1
- package/dist-cjs/Grid.js +36 -42
- package/dist-cjs/Grid.js.map +1 -1
- package/dist-cjs/GridColumn.js.map +1 -1
- package/dist-cjs/GridContext.js +1 -1
- package/dist-cjs/GridContext.js.map +1 -1
- package/dist-cjs/GroupHeaderCell.js +2 -2
- package/dist-cjs/GroupHeaderCell.js.map +1 -1
- package/dist-cjs/GroupHeaderCellValue.js.map +1 -1
- package/dist-cjs/HeaderCell.css.js +1 -1
- package/dist-cjs/HeaderCell.js +10 -10
- package/dist-cjs/HeaderCell.js.map +1 -1
- package/dist-cjs/HeaderCellValue.js.map +1 -1
- package/dist-cjs/LayoutContext.js.map +1 -1
- package/dist-cjs/NumericColumn.js +6 -23
- package/dist-cjs/NumericColumn.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxCellValue.js +2 -2
- package/dist-cjs/RowSelectionCheckboxCellValue.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxColumn.js +3 -3
- package/dist-cjs/RowSelectionCheckboxColumn.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js +2 -2
- package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
- package/dist-cjs/RowSelectionRadioCellValue.js +1 -1
- package/dist-cjs/RowSelectionRadioCellValue.js.map +1 -1
- package/dist-cjs/RowSelectionRadioColumn.js +2 -2
- package/dist-cjs/RowSelectionRadioColumn.js.map +1 -1
- package/dist-cjs/RowSelectionRadioHeaderCell.js +1 -1
- package/dist-cjs/RowSelectionRadioHeaderCell.js.map +1 -1
- package/dist-cjs/RowValidationStatus.js.map +1 -1
- package/dist-cjs/SelectionContext.js +1 -1
- package/dist-cjs/SelectionContext.js.map +1 -1
- package/dist-cjs/SizingContext.js +1 -1
- package/dist-cjs/SizingContext.js.map +1 -1
- package/dist-cjs/TextCellEditor.js +5 -21
- package/dist-cjs/TextCellEditor.js.map +1 -1
- package/dist-cjs/index.js +5 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/internal/CellMeasure.js +2 -2
- package/dist-cjs/internal/CellMeasure.js.map +1 -1
- package/dist-cjs/internal/ColumnDropTarget.js +2 -2
- package/dist-cjs/internal/ColumnDropTarget.js.map +1 -1
- package/dist-cjs/internal/ColumnGhost.js +3 -3
- package/dist-cjs/internal/ColumnGhost.js.map +1 -1
- package/dist-cjs/internal/Cursor.js +2 -2
- package/dist-cjs/internal/Cursor.js.map +1 -1
- package/dist-cjs/internal/DefaultCellValue.js +2 -2
- package/dist-cjs/internal/DefaultCellValue.js.map +1 -1
- package/dist-cjs/internal/FakeCell.js +3 -3
- package/dist-cjs/internal/FakeCell.js.map +1 -1
- package/dist-cjs/internal/GroupHeaderRow.js +1 -1
- package/dist-cjs/internal/GroupHeaderRow.js.map +1 -1
- package/dist-cjs/internal/HeaderRow.js +2 -2
- package/dist-cjs/internal/HeaderRow.js.map +1 -1
- package/dist-cjs/internal/LeftPart.js +4 -4
- package/dist-cjs/internal/LeftPart.js.map +1 -1
- package/dist-cjs/internal/MiddlePart.js +3 -3
- package/dist-cjs/internal/MiddlePart.js.map +1 -1
- package/dist-cjs/internal/RightPart.js +3 -3
- package/dist-cjs/internal/RightPart.js.map +1 -1
- package/dist-cjs/internal/Scrollable.js +2 -2
- package/dist-cjs/internal/Scrollable.js.map +1 -1
- package/dist-cjs/internal/TableBody.js +6 -6
- package/dist-cjs/internal/TableBody.js.map +1 -1
- package/dist-cjs/internal/TableColGroup.js.map +1 -1
- package/dist-cjs/internal/TableRow.js +9 -9
- package/dist-cjs/internal/TableRow.js.map +1 -1
- package/dist-cjs/internal/TopLeftPart.js +3 -3
- package/dist-cjs/internal/TopLeftPart.js.map +1 -1
- package/dist-cjs/internal/TopPart.js +3 -3
- package/dist-cjs/internal/TopPart.js.map +1 -1
- package/dist-cjs/internal/TopRightPart.js +3 -3
- package/dist-cjs/internal/TopRightPart.js.map +1 -1
- package/dist-cjs/internal/gridHooks.js +23 -23
- package/dist-cjs/internal/gridHooks.js.map +1 -1
- package/dist-cjs/internal/utils.js +5 -5
- package/dist-cjs/internal/utils.js.map +1 -1
- package/dist-es/BaseCell.js +8 -8
- package/dist-es/BaseCell.js.map +1 -1
- package/dist-es/CellEditor.js.map +1 -1
- package/dist-es/{internal/Cell.css.js → CellFrame.css.js} +1 -1
- package/dist-es/CellFrame.css.js.map +1 -0
- package/dist-es/{internal/Cell.js → CellFrame.js} +8 -8
- package/dist-es/CellFrame.js.map +1 -0
- package/dist-es/ColumnDataContext.js +1 -1
- package/dist-es/ColumnDataContext.js.map +1 -1
- package/dist-es/ColumnDragContext.js +1 -1
- package/dist-es/ColumnDragContext.js.map +1 -1
- package/dist-es/ColumnGroup.js +1 -1
- package/dist-es/ColumnGroup.js.map +1 -1
- package/dist-es/ColumnSortContext.js +1 -1
- package/dist-es/ColumnSortContext.js.map +1 -1
- package/dist-es/CornerTag.js +1 -1
- package/dist-es/CornerTag.js.map +1 -1
- package/dist-es/CursorContext.js +1 -1
- package/dist-es/CursorContext.js.map +1 -1
- package/dist-es/DropdownCellEditor.js +5 -21
- package/dist-es/DropdownCellEditor.js.map +1 -1
- package/dist-es/EditorContext.js +1 -1
- package/dist-es/EditorContext.js.map +1 -1
- package/dist-es/Grid.css.js +1 -1
- package/dist-es/Grid.js +36 -42
- package/dist-es/Grid.js.map +1 -1
- package/dist-es/GridColumn.js.map +1 -1
- package/dist-es/GridContext.js +1 -1
- package/dist-es/GridContext.js.map +1 -1
- package/dist-es/GroupHeaderCell.js +2 -2
- package/dist-es/GroupHeaderCell.js.map +1 -1
- package/dist-es/GroupHeaderCellValue.js.map +1 -1
- package/dist-es/HeaderCell.css.js +1 -1
- package/dist-es/HeaderCell.js +10 -10
- package/dist-es/HeaderCell.js.map +1 -1
- package/dist-es/HeaderCellValue.js.map +1 -1
- package/dist-es/LayoutContext.js.map +1 -1
- package/dist-es/NumericColumn.js +6 -23
- package/dist-es/NumericColumn.js.map +1 -1
- package/dist-es/RowSelectionCheckboxCellValue.js +2 -2
- package/dist-es/RowSelectionCheckboxCellValue.js.map +1 -1
- package/dist-es/RowSelectionCheckboxColumn.js +3 -3
- package/dist-es/RowSelectionCheckboxColumn.js.map +1 -1
- package/dist-es/RowSelectionCheckboxHeaderCellValue.js +2 -2
- package/dist-es/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
- package/dist-es/RowSelectionRadioCellValue.js +1 -1
- package/dist-es/RowSelectionRadioCellValue.js.map +1 -1
- package/dist-es/RowSelectionRadioColumn.js +2 -2
- package/dist-es/RowSelectionRadioColumn.js.map +1 -1
- package/dist-es/RowSelectionRadioHeaderCell.js +1 -1
- package/dist-es/RowSelectionRadioHeaderCell.js.map +1 -1
- package/dist-es/RowValidationStatus.js.map +1 -1
- package/dist-es/SelectionContext.js +1 -1
- package/dist-es/SelectionContext.js.map +1 -1
- package/dist-es/SizingContext.js +1 -1
- package/dist-es/SizingContext.js.map +1 -1
- package/dist-es/TextCellEditor.js +5 -21
- package/dist-es/TextCellEditor.js.map +1 -1
- package/dist-es/index.js +2 -0
- package/dist-es/index.js.map +1 -1
- package/dist-es/internal/CellMeasure.js +2 -2
- package/dist-es/internal/CellMeasure.js.map +1 -1
- package/dist-es/internal/ColumnDropTarget.js +2 -2
- package/dist-es/internal/ColumnDropTarget.js.map +1 -1
- package/dist-es/internal/ColumnGhost.js +3 -3
- package/dist-es/internal/ColumnGhost.js.map +1 -1
- package/dist-es/internal/Cursor.js +2 -2
- package/dist-es/internal/Cursor.js.map +1 -1
- package/dist-es/internal/DefaultCellValue.js +2 -2
- package/dist-es/internal/DefaultCellValue.js.map +1 -1
- package/dist-es/internal/FakeCell.js +3 -3
- package/dist-es/internal/FakeCell.js.map +1 -1
- package/dist-es/internal/GroupHeaderRow.js +1 -1
- package/dist-es/internal/GroupHeaderRow.js.map +1 -1
- package/dist-es/internal/HeaderRow.js +2 -2
- package/dist-es/internal/HeaderRow.js.map +1 -1
- package/dist-es/internal/LeftPart.js +4 -4
- package/dist-es/internal/LeftPart.js.map +1 -1
- package/dist-es/internal/MiddlePart.js +3 -3
- package/dist-es/internal/MiddlePart.js.map +1 -1
- package/dist-es/internal/RightPart.js +3 -3
- package/dist-es/internal/RightPart.js.map +1 -1
- package/dist-es/internal/Scrollable.js +2 -2
- package/dist-es/internal/Scrollable.js.map +1 -1
- package/dist-es/internal/TableBody.js +6 -6
- package/dist-es/internal/TableBody.js.map +1 -1
- package/dist-es/internal/TableColGroup.js.map +1 -1
- package/dist-es/internal/TableRow.js +9 -9
- package/dist-es/internal/TableRow.js.map +1 -1
- package/dist-es/internal/TopLeftPart.js +3 -3
- package/dist-es/internal/TopLeftPart.js.map +1 -1
- package/dist-es/internal/TopPart.js +3 -3
- package/dist-es/internal/TopPart.js.map +1 -1
- package/dist-es/internal/TopRightPart.js +3 -3
- package/dist-es/internal/TopRightPart.js.map +1 -1
- package/dist-es/internal/gridHooks.js +23 -23
- package/dist-es/internal/gridHooks.js.map +1 -1
- package/dist-es/internal/utils.js +5 -5
- package/dist-es/internal/utils.js.map +1 -1
- package/dist-types/BaseCell.d.ts +3 -4
- package/dist-types/CellEditor.d.ts +1 -1
- package/dist-types/CellFrame.d.ts +9 -0
- package/dist-types/ColumnDataContext.d.ts +0 -1
- package/dist-types/ColumnDragContext.d.ts +1 -1
- package/dist-types/ColumnGroup.d.ts +4 -4
- package/dist-types/ColumnSortContext.d.ts +5 -5
- package/dist-types/CornerTag.d.ts +1 -2
- package/dist-types/CursorContext.d.ts +0 -1
- package/dist-types/DropdownCellEditor.d.ts +2 -3
- package/dist-types/EditorContext.d.ts +0 -1
- package/dist-types/Grid.d.ts +4 -4
- package/dist-types/GridColumn.d.ts +3 -3
- package/dist-types/GridContext.d.ts +2 -3
- package/dist-types/GroupHeaderCell.d.ts +3 -3
- package/dist-types/GroupHeaderCellValue.d.ts +2 -3
- package/dist-types/HeaderCell.d.ts +5 -6
- package/dist-types/HeaderCellValue.d.ts +2 -3
- package/dist-types/LayoutContext.d.ts +0 -1
- package/dist-types/NumericColumn.d.ts +6 -6
- package/dist-types/RowSelectionCheckboxCellValue.d.ts +2 -3
- package/dist-types/RowSelectionCheckboxColumn.d.ts +2 -3
- package/dist-types/RowSelectionCheckboxHeaderCellValue.d.ts +2 -3
- package/dist-types/RowSelectionRadioCellValue.d.ts +2 -3
- package/dist-types/RowSelectionRadioColumn.d.ts +2 -3
- package/dist-types/RowSelectionRadioHeaderCell.d.ts +2 -3
- package/dist-types/RowValidationStatus.d.ts +2 -3
- package/dist-types/SelectionContext.d.ts +1 -2
- package/dist-types/SizingContext.d.ts +3 -3
- package/dist-types/TextCellEditor.d.ts +2 -3
- package/dist-types/index.d.ts +2 -0
- package/dist-types/internal/CellMeasure.d.ts +1 -2
- package/dist-types/internal/CellStatusIcons.d.ts +3 -4
- package/dist-types/internal/ColumnDropTarget.d.ts +1 -2
- package/dist-types/internal/ColumnGhost.d.ts +3 -4
- package/dist-types/internal/Cursor.d.ts +1 -4
- package/dist-types/internal/DefaultCellValue.d.ts +2 -3
- package/dist-types/internal/FakeCell.d.ts +2 -3
- package/dist-types/internal/FakeGroupCell.d.ts +1 -2
- package/dist-types/internal/FakeHeaderCell.d.ts +1 -2
- package/dist-types/internal/GroupHeaderRow.d.ts +2 -3
- package/dist-types/internal/HeaderRow.d.ts +2 -3
- package/dist-types/internal/LeftPart.d.ts +4 -4
- package/dist-types/internal/MiddlePart.d.ts +4 -4
- package/dist-types/internal/RightPart.d.ts +4 -4
- package/dist-types/internal/Scrollable.d.ts +2 -2
- package/dist-types/internal/TableBody.d.ts +3 -4
- package/dist-types/internal/TableColGroup.d.ts +3 -4
- package/dist-types/internal/TableRow.d.ts +4 -4
- package/dist-types/internal/TopLeftPart.d.ts +2 -3
- package/dist-types/internal/TopPart.d.ts +3 -3
- package/dist-types/internal/TopRightPart.d.ts +2 -3
- package/dist-types/internal/gridHooks.d.ts +13 -13
- package/dist-types/internal/index.d.ts +0 -1
- package/dist-types/internal/utils.d.ts +1 -1
- package/package.json +5 -6
- package/dist-cjs/internal/Cell.css.js.map +0 -1
- package/dist-cjs/internal/Cell.js.map +0 -1
- package/dist-es/internal/Cell.css.js.map +0 -1
- package/dist-es/internal/Cell.js.map +0 -1
- package/dist-types/internal/Cell.d.ts +0 -8
|
@@ -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]
|
|
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":[],"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,OAAO,cAAe,EAAA,CAAA;AAE5B,EAAA,MAAM,IAAO,GAAA,OAAA;AAAA,IACX,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,UAAU,QAAQ,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,SAAA,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,4 +1,4 @@
|
|
|
1
1
|
var css_248z = ".saltGridCell {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n\n white-space: nowrap;\n position: relative;\n font-size: var(--grid-fontSize);\n font-weight: normal;\n\n outline: 0;\n}\n\n.saltGridCell-selected {\n background: var(--grid-cell-background-selected);\n}\n\n.saltGridCell-rowSeparator {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 1px;\n background-color: var(--grid-row-borderColor);\n}\n\n.saltGridCell-topSeparator {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 1px;\n background-color: transparent;\n display: none;\n}\n\n.saltGridTableRow-first .saltGridCell-topSeparator {\n display: unset;\n}\n\n.saltGridCell-columnSeparator {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 1px;\n background-color: var(--grid-row-background);\n}\n\n.saltGrid-columnSeparators .saltGridCell-regularSeparator .saltGridCell-columnSeparator {\n background-color: var(--grid-columnSeparator-color);\n}\n\n.saltGrid-columnSeparators .saltGridCell-pinnedSeparator .saltGridCell-columnSeparator {\n background-color: var(--grid-columnSeparator-color);\n}\n\n.saltGrid-pinnedSeparators .saltGridCell-pinnedSeparator .saltGridCell-columnSeparator {\n background-color: var(--grid-pinnedSeparator-color);\n}\n\n.saltGridTableRow-selected.saltGridTableRow-first .saltGridCell-topSeparator {\n background-color: var(--grid-row-borderColor);\n}\n\n.saltGridCell-body {\n box-sizing: border-box;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n left: 0;\n background: var(--grid-row-background);\n border-right: solid 1px transparent;\n}\n\n.saltGridTableRow-first .saltGridCell-body {\n top: 1px;\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=CellFrame.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellFrame.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { makePrefixer } from '@salt-ds/core';
|
|
3
|
-
import { useWindow } from '@salt-ds/window';
|
|
4
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
5
|
-
import {
|
|
4
|
+
import { useWindow } from '@salt-ds/window';
|
|
6
5
|
import { clsx } from 'clsx';
|
|
7
|
-
import
|
|
6
|
+
import { forwardRef } from 'react';
|
|
7
|
+
import css_248z from './CellFrame.css.js';
|
|
8
8
|
|
|
9
9
|
const withBaseName = makePrefixer("saltGridCell");
|
|
10
|
-
const
|
|
11
|
-
function
|
|
10
|
+
const CellFrame = forwardRef(
|
|
11
|
+
function CellFrame2(props, ref) {
|
|
12
12
|
const {
|
|
13
13
|
children,
|
|
14
14
|
separator,
|
|
@@ -39,7 +39,7 @@ const Cell = forwardRef(
|
|
|
39
39
|
children: [
|
|
40
40
|
/* @__PURE__ */ jsx("div", {
|
|
41
41
|
className: withBaseName("body"),
|
|
42
|
-
children
|
|
42
|
+
children
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ jsx("div", {
|
|
45
45
|
className: withBaseName("columnSeparator")
|
|
@@ -55,5 +55,5 @@ const Cell = forwardRef(
|
|
|
55
55
|
}
|
|
56
56
|
);
|
|
57
57
|
|
|
58
|
-
export {
|
|
59
|
-
//# sourceMappingURL=
|
|
58
|
+
export { CellFrame };
|
|
59
|
+
//# sourceMappingURL=CellFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":["CellFrame","cellCss"],"mappings":";;;;;;;;AAiBA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAGzC,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,SAASA,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,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,WAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACG,IAAA,CAAA,IAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAA,IAAA;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,wBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,UAAI,QAAA;AAAA,SAAS,CAAA;AAAA,wBAC/C,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,iBAAiB,CAAA;AAAA,SAAG,CAAA;AAAA,wBAChD,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,wBAC7C,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,OAAA;AAAA,KAChD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -4,7 +4,7 @@ const ColumnDataContext = createContext(void 0);
|
|
|
4
4
|
const useColumnDataContext = () => {
|
|
5
5
|
const c = useContext(ColumnDataContext);
|
|
6
6
|
if (!c) {
|
|
7
|
-
throw new Error(
|
|
7
|
+
throw new Error("useColumnDataContext invoked outside of a Grid");
|
|
8
8
|
}
|
|
9
9
|
return c;
|
|
10
10
|
};
|
|
@@ -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(
|
|
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":[],"mappings":";;AAOa,MAAA,iBAAA,GAAoB,cAE/B,KAAS,CAAA,EAAA;AAEJ,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,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;;;;"}
|
|
@@ -6,7 +6,7 @@ const ColumnDragContext = createContext(
|
|
|
6
6
|
const useColumnDragContext = () => {
|
|
7
7
|
const c = useContext(ColumnDragContext);
|
|
8
8
|
if (!c) {
|
|
9
|
-
throw new Error(
|
|
9
|
+
throw new Error("useColumnDragContext invoked outside of a Grid");
|
|
10
10
|
}
|
|
11
11
|
return c;
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnDragContext.js","sources":["../src/ColumnDragContext.ts"],"sourcesContent":["import {
|
|
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":[],"mappings":";;AAOO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,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;;;;"}
|
package/dist-es/ColumnGroup.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { useGridContext } from './GridContext.js';
|
|
3
2
|
import { useRef, useEffect, Children, isValidElement, cloneElement } from 'react';
|
|
3
|
+
import { useGridContext } from './GridContext.js';
|
|
4
4
|
|
|
5
5
|
function ColumnGroup(props) {
|
|
6
6
|
const pinned = props.pinned || null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnGroup.js","sources":["../src/ColumnGroup.tsx"],"sourcesContent":["import {
|
|
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":[],"mappings":";;;;AA8BO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,MAAM,MAAU,IAAA,IAAA,CAAA;AAC/B,EAAA,MAAM,WAAW,MAAe,EAAA,CAAA;AAChC,EAAA,MAAM,OAAO,cAAe,EAAA,CAAA;AAC5B,EAAA,SAAA,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+B,QAAS,CAAA,GAAA,CAAI,KAAM,CAAA,QAAA,EAAU,CAAC,KAAU,KAAA;AAC3E,IAAI,IAAA,cAAA,CAAe,KAAK,CAAG,EAAA;AACzB,MAAA,OAAO,YAAa,CAAA,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,CAAA;AAAA,KACvC;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAO,uBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,IAAG,QAAA,EAAA,4BAAA;AAAA,GAA6B,CAAA,CAAA;AACzC;;;;"}
|
|
@@ -6,7 +6,7 @@ const ColumnSortContext = createContext(
|
|
|
6
6
|
const useColumnSortContext = () => {
|
|
7
7
|
const c = useContext(ColumnSortContext);
|
|
8
8
|
if (!c) {
|
|
9
|
-
throw new Error(
|
|
9
|
+
throw new Error("useColumnSortContext invoked outside of a Grid");
|
|
10
10
|
}
|
|
11
11
|
return c;
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSortContext.js","sources":["../src/ColumnSortContext.ts"],"sourcesContent":["import
|
|
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":[],"mappings":";;AAaO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,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;;;;"}
|
package/dist-es/CornerTag.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useWindow } from '@salt-ds/window';
|
|
3
2
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
3
|
+
import { useWindow } from '@salt-ds/window';
|
|
4
4
|
import css_248z from './CornerTag.css.js';
|
|
5
5
|
|
|
6
6
|
function CornerTag(props) {
|
package/dist-es/CornerTag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CornerTag.js","sources":["../src/CornerTag.tsx"],"sourcesContent":["import {
|
|
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":["cornerTagCss"],"mappings":";;;;;AASO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EACE,KAAM,CAAA,SAAA,GAAY,6BAAgC,GAAA,mBAAA;AAAA,GAEtD,CAAA,CAAA;AAEJ;;;;"}
|
package/dist-es/CursorContext.js
CHANGED
|
@@ -6,7 +6,7 @@ const CursorContext = createContext(
|
|
|
6
6
|
const useCursorContext = () => {
|
|
7
7
|
const c = useContext(CursorContext);
|
|
8
8
|
if (!c) {
|
|
9
|
-
throw new Error(
|
|
9
|
+
throw new Error("useCursorContext invoked outside of a Grid");
|
|
10
10
|
}
|
|
11
11
|
return c;
|
|
12
12
|
};
|
|
@@ -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
|
|
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":[],"mappings":";;AAaO,MAAM,aAAgB,GAAA,aAAA;AAAA,EAC3B,KAAA,CAAA;AACF,EAAA;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAI,WAAW,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,28 +1,12 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { useRef, useEffect } from 'react';
|
|
3
2
|
import { makePrefixer } from '@salt-ds/core';
|
|
4
3
|
import { Dropdown } from '@salt-ds/lab';
|
|
5
|
-
import { useWindow } from '@salt-ds/window';
|
|
6
4
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
7
|
-
import {
|
|
5
|
+
import { useWindow } from '@salt-ds/window';
|
|
6
|
+
import { useRef, useEffect } from 'react';
|
|
7
|
+
import { CellFrame } from './CellFrame.js';
|
|
8
8
|
import { CornerTag } from './CornerTag.js';
|
|
9
|
-
import {
|
|
10
|
-
import './internal/CellMeasure.js';
|
|
11
|
-
import './internal/Cursor.js';
|
|
12
|
-
import './internal/GroupHeaderRow.js';
|
|
13
|
-
import './internal/HeaderRow.js';
|
|
14
|
-
import './internal/LeftPart.js';
|
|
15
|
-
import './internal/MiddlePart.js';
|
|
16
|
-
import './internal/RightPart.js';
|
|
17
|
-
import './internal/Scrollable.js';
|
|
18
|
-
import './internal/TableRow.js';
|
|
19
|
-
import './SelectionContext.js';
|
|
20
|
-
import './CursorContext.js';
|
|
21
|
-
import './NumberRange.js';
|
|
22
|
-
import './internal/TopLeftPart.js';
|
|
23
|
-
import './internal/TopPart.js';
|
|
24
|
-
import './internal/TopRightPart.js';
|
|
25
|
-
import './internal/DefaultCellValue.js';
|
|
9
|
+
import { useEditorContext } from './EditorContext.js';
|
|
26
10
|
import css_248z from './DropdownCellEditor.css.js';
|
|
27
11
|
|
|
28
12
|
const withBaseName = makePrefixer("saltGridDropdownCellEditor");
|
|
@@ -59,7 +43,7 @@ function DropdownCellEditor(props) {
|
|
|
59
43
|
"data-testid": "grid-cell-editor-trigger",
|
|
60
44
|
children: value
|
|
61
45
|
});
|
|
62
|
-
return /* @__PURE__ */ jsxs(
|
|
46
|
+
return /* @__PURE__ */ jsxs(CellFrame, {
|
|
63
47
|
separator: column == null ? void 0 : column.separator,
|
|
64
48
|
className: withBaseName(),
|
|
65
49
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownCellEditor.js","sources":["../src/DropdownCellEditor.tsx"],"sourcesContent":["import {
|
|
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":["dropdownCellEditorCss"],"mappings":";;;;;;;;;;;AAiBA,MAAM,YAAA,GAAe,aAAa,4BAA4B,CAAA,CAAA;AASvD,SAAS,mBAAsB,KAAmC,EAAA;AACvE,EAAA,MAAM,EAAE,OAAA,EAAS,MAAQ,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AAEjC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,2BAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAa,OAAuB,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,GAAI,gBAAiB,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,EAAA,SAAA,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,mCACH,GAAA,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,uBACG,IAAA,CAAA,SAAA,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,sBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,mBAAmB,CAAA;AAAA,QAC7C,QAAW,EAAA,OAAA,IAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,mBAC1B,GAAA,CAAA,QAAA,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,0BACC,SAAU,EAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GACb,CAAA,CAAA;AAEJ;;;;"}
|
package/dist-es/EditorContext.js
CHANGED
|
@@ -6,7 +6,7 @@ const EditorContext = createContext(
|
|
|
6
6
|
const useEditorContext = () => {
|
|
7
7
|
const c = useContext(EditorContext);
|
|
8
8
|
if (!c) {
|
|
9
|
-
throw new Error(
|
|
9
|
+
throw new Error("useEditorContext invoked outside of a Grid");
|
|
10
10
|
}
|
|
11
11
|
return c;
|
|
12
12
|
};
|
|
@@ -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
|
|
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":[],"mappings":";;AAUO,MAAM,aAAgB,GAAA,aAAA;AAAA,EAC3B,KAAA,CAAA;AACF,EAAA;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAI,WAAW,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-es/Grid.css.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var css_248z = ".salt-density-touch {\n --grid-row-height-default: 61px;\n --grid-padding-default: 16px;\n --grid-fontSize-default: 16px;\n --grid-header-fontSize-default: 14px;\n --grid-separatorGap-default: 20px;\n --grid-cornerTag-size-default: 14px;\n}\n\n.salt-density-low {\n --grid-row-height-default: 49px;\n --grid-padding-default: 12px;\n --grid-fontSize-default: 14px;\n --grid-header-fontSize-default: 12px;\n --grid-separatorGap-default: 16px;\n --grid-cornerTag-size-default: 12px;\n}\n\n.salt-density-medium {\n --grid-row-height-default: 37px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 12px;\n --grid-header-fontSize-default: 11px;\n --grid-separatorGap-default: 12px;\n --grid-cornerTag-size-default: 10px;\n}\n\n.salt-density-high {\n --grid-row-height-default: 25px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 11px;\n --grid-header-fontSize-default: 10px;\n --grid-separatorGap-default: 8px;\n --grid-cornerTag-size-default: 8px;\n}\n\n/* Styles applied to the root element */\n.saltGrid {\n --grid-row-height: var(--saltGrid-row-height, var(--grid-row-height-default));\n --grid-padding: var(--saltGrid-padding, var(--grid-padding-default));\n --grid-fontSize: var(--saltGrid-fontSize, var(--grid-fontSize-default));\n --grid-separatorGap: var(--saltGrid-separatorGap, var(--grid-separatorGap-default));\n --grid-header-fontSize: var(--saltGrid-header-fontSize, var(--grid-header-fontSize-default));\n --grid-groupHeader-fontSize: var(--saltGrid-groupHeader-fontSize, var(--grid-header-fontSize));\n --grid-groupHeader-fontWeight: var(--saltGrid-groupHeader-fontWeight, var(--salt-text-label-fontWeight-strong));\n\n --grid-cell-padding: 0 var(--grid-padding);\n\n --grid-background-primary: var(--saltGrid-background-primary, var(--salt-container-primary-background));\n --grid-background-secondary: var(--saltGrid-background-secondary, var(--salt-container-secondary-background));\n --grid-zebraColor: var(--saltGrid-zebraColor, var(--salt-container-secondary-background));\n\n --grid-row-background-hover: var(--saltGrid-row-background-hover, var(--salt-selectable-background-hover));\n --grid-row-background-selected: var(--saltGrid-row-background-selected, var(--salt-selectable-background-selected));\n\n --grid-row-borderColor-selected: var(--saltGrid-row-borderColor-selected, var(--salt-selectable-borderColor-selected));\n --grid-cell-background-selected: var(--saltGrid-cell-background-selected, var(--salt-selectable-background-selected));\n --grid-editableCell-borderColor: var(--saltGrid-editableCell-borderColor, var(--salt-editable-borderColor));\n --grid-editableCell-borderColor-hover: var(--saltGrid-editableCell-borderColor-hover, var(--salt-editable-borderColor-hover));\n --grid-editableCell-background-active: var(--saltGrid-editableCell-background-active, var(--salt-editable-primary-background-active));\n --grid-editableCell-color-active: var(--saltGrid-editableCell-color-active, var(--salt-
|
|
1
|
+
var css_248z = ".salt-density-touch {\n --grid-row-height-default: 61px;\n --grid-padding-default: 16px;\n --grid-fontSize-default: 16px;\n --grid-header-fontSize-default: 14px;\n --grid-separatorGap-default: 20px;\n --grid-cornerTag-size-default: 14px;\n}\n\n.salt-density-low {\n --grid-row-height-default: 49px;\n --grid-padding-default: 12px;\n --grid-fontSize-default: 14px;\n --grid-header-fontSize-default: 12px;\n --grid-separatorGap-default: 16px;\n --grid-cornerTag-size-default: 12px;\n}\n\n.salt-density-medium {\n --grid-row-height-default: 37px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 12px;\n --grid-header-fontSize-default: 11px;\n --grid-separatorGap-default: 12px;\n --grid-cornerTag-size-default: 10px;\n}\n\n.salt-density-high {\n --grid-row-height-default: 25px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 11px;\n --grid-header-fontSize-default: 10px;\n --grid-separatorGap-default: 8px;\n --grid-cornerTag-size-default: 8px;\n}\n\n/* Styles applied to the root element */\n.saltGrid {\n --grid-row-height: var(--saltGrid-row-height, var(--grid-row-height-default));\n --grid-padding: var(--saltGrid-padding, var(--grid-padding-default));\n --grid-fontSize: var(--saltGrid-fontSize, var(--grid-fontSize-default));\n --grid-separatorGap: var(--saltGrid-separatorGap, var(--grid-separatorGap-default));\n --grid-header-fontSize: var(--saltGrid-header-fontSize, var(--grid-header-fontSize-default));\n --grid-groupHeader-fontSize: var(--saltGrid-groupHeader-fontSize, var(--grid-header-fontSize));\n --grid-groupHeader-fontWeight: var(--saltGrid-groupHeader-fontWeight, var(--salt-text-label-fontWeight-strong));\n\n --grid-cell-padding: 0 var(--grid-padding);\n\n --grid-background-primary: var(--saltGrid-background-primary, var(--salt-container-primary-background));\n --grid-background-secondary: var(--saltGrid-background-secondary, var(--salt-container-secondary-background));\n --grid-zebraColor: var(--saltGrid-zebraColor, var(--salt-container-secondary-background));\n\n --grid-row-background-hover: var(--saltGrid-row-background-hover, var(--salt-selectable-background-hover));\n --grid-row-background-selected: var(--saltGrid-row-background-selected, var(--salt-selectable-background-selected));\n\n --grid-row-borderColor-selected: var(--saltGrid-row-borderColor-selected, var(--salt-selectable-borderColor-selected));\n --grid-cell-background-selected: var(--saltGrid-cell-background-selected, var(--salt-selectable-background-selected));\n --grid-editableCell-borderColor: var(--saltGrid-editableCell-borderColor, var(--salt-editable-borderColor));\n --grid-editableCell-borderColor-hover: var(--saltGrid-editableCell-borderColor-hover, var(--salt-editable-borderColor-hover));\n --grid-editableCell-background-active: var(--saltGrid-editableCell-background-active, var(--salt-editable-primary-background-active));\n --grid-editableCell-color-active: var(--saltGrid-editableCell-color-active, var(--salt-content-primary-foreground));\n --grid-editableCell-cornerTag-size: var(--saltGrid-editableCell-cornerTag-size, var(--grid-cornerTag-size-default));\n\n --grid-header-color: var(--saltGrid-header-color, var(--salt-content-secondary-foreground));\n\n --grid-headerColumnSeparator-color: var(--saltGrid-headerColumnSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-headerRowSeparator-color: var(--saltGrid-headerRowSeparator-color, var(--salt-separable-primary-borderColor));\n --grid-headerRowSeparator-gap: var(--saltGrid-headerRowSeparator-gap, var(--salt-spacing-100));\n --grid-headerRowSeparator-height: var(--saltGrid-headerRowSeparator-height, 1px);\n --grid-groupHeaderRowSeparator-color: var(--saltGrid-groupHeaderRowSeparator-color, var(--salt-separable-tertiary-borderColor));\n\n --grid-groupHeader-color: var(--saltGrid-groupHeader-color, var(--salt-content-secondary-foreground));\n --grid-shadow-color: var(--saltGrid-shadow-color, var(--salt-shadow-100-color));\n --grid-columnDropTarget-color: var(--saltGrid-columnDropTarget-color, var(--salt-target-borderColor-hover));\n --grid-cursor-border-style: var(--saltGrid-cursor-borderStyle, var(--salt-focused-outlineStyle));\n --grid-cursor-border-width: var(--saltGrid-cursor-borderWidth, var(--salt-focused-outlineWidth));\n --grid-cursor-borderColor: var(--saltGrid-cursor-borderColor, var(--salt-focused-outlineColor));\n --grid-borderColor: var(--saltGrid-borderColor, var(--salt-container-secondary-borderColor));\n\n --grid-rowSeparator-width: 1px;\n --grid-rowSeparator-color: var(--saltGrid-rowSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-columnSeparator-color: var(--saltGrid-columnSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-rowSeparator-color-divided: var(--saltGrid-rowSeparator-color-divided, var(--salt-separable-secondary-borderColor));\n\n --grid-pinnedSeparator-color: var(--saltGrid-pinnedSeparator-color, var(--salt-separable-primary-borderColor));\n\n --grid-columnGhost-borderColor: var(--saltGrid-columnGhost-borderColor, var(--salt-palette-interact-border-hover));\n --grid-columnGhost-borderWidth: var(--saltGrid-columnGhost-borderWidth, 1px);\n --grid-columnGhost-boxShadow: var(--saltGrid-columnGhost-boxShadow, var(--salt-overlayable-shadow-drag));\n\n --grid-mid-body-zIndex: 0;\n --grid-left-body-zIndex: 1;\n --grid-right-body-zIndex: 1;\n --grid-middle-header-zIndex: 2;\n --grid-left-header-zIndex: 3;\n --grid-right-header-zIndex: 3;\n}\n\n.saltGrid-columnSeparators {\n}\n\n.saltGrid table {\n border-collapse: separate;\n border-spacing: 0;\n}\n\n.saltGrid-framed {\n border: solid 1px var(--grid-borderColor);\n}\n\n/* Styles applied to the root element if variant=\"primary\" */\n.saltGrid-primaryBackground {\n --grid-background: var(--grid-background-primary);\n}\n\n/* Styles applied to the root element if variant=\"secondary\" */\n.saltGrid-secondaryBackground {\n --grid-background: var(--grid-background-secondary);\n}\n\n.saltGrid {\n position: relative;\n outline: none;\n user-select: none;\n background: var(--grid-background);\n\n font-family: var(--salt-text-fontFamily);\n font-size: var(--grid-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n}\n\n/* Styles applied to the root element if zebra is enabled */\n.saltGrid.saltGrid-zebra {\n --grid-rowSeparator-color: transparent;\n}\n\n.saltGrid-hidden {\n visibility: hidden;\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
4
|
//# sourceMappingURL=Grid.css.js.map
|
package/dist-es/Grid.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { useRef, useState, useCallback, useMemo, useEffect } from 'react';
|
|
3
2
|
import { makePrefixer } from '@salt-ds/core';
|
|
4
|
-
import { useWindow } from '@salt-ds/window';
|
|
5
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
|
+
import { useWindow } from '@salt-ds/window';
|
|
6
5
|
import { clsx } from 'clsx';
|
|
7
|
-
import '
|
|
6
|
+
import { useRef, useState, useCallback, useMemo, useEffect } from 'react';
|
|
7
|
+
import { ColumnDataContext } from './ColumnDataContext.js';
|
|
8
|
+
import { ColumnDragContext } from './ColumnDragContext.js';
|
|
9
|
+
import { ColumnSortContext } from './ColumnSortContext.js';
|
|
10
|
+
import { CursorContext } from './CursorContext.js';
|
|
11
|
+
import { EditorContext } from './EditorContext.js';
|
|
12
|
+
import { GridContext } from './GridContext.js';
|
|
13
|
+
import { LayoutContext } from './LayoutContext.js';
|
|
14
|
+
import { SelectionContext } from './SelectionContext.js';
|
|
15
|
+
import { SizingContext } from './SizingContext.js';
|
|
8
16
|
import { CellMeasure } from './internal/CellMeasure.js';
|
|
9
17
|
import './internal/Cursor.js';
|
|
10
18
|
import './internal/GroupHeaderRow.js';
|
|
@@ -15,22 +23,14 @@ import { RightPart } from './internal/RightPart.js';
|
|
|
15
23
|
import { Scrollable } from './internal/Scrollable.js';
|
|
16
24
|
import './internal/TableRow.js';
|
|
17
25
|
import { clamp, getFocusablePosition } from './internal/utils.js';
|
|
18
|
-
import { SelectionContext } from './SelectionContext.js';
|
|
19
|
-
import { EditorContext } from './EditorContext.js';
|
|
20
|
-
import { CursorContext } from './CursorContext.js';
|
|
21
26
|
import { useColumnRegistry, useSumWidth, useSum, useClientMidWidth, useBodyVisibleColumnRange, useVisibleColumnGroupRange, useHeadVisibleColumnRange, useLeftScrolledOutWidth, useClientMidHeight, useVisibleRowRange, useBodyVisibleAreaTop, useColumnRange, useSumRangeWidth, useScrollToCell, useRowSelection, useRangeSelection, useRowModels, useColumnResize, useColumnMove } from './internal/gridHooks.js';
|
|
22
27
|
import { TopLeftPart } from './internal/TopLeftPart.js';
|
|
23
28
|
import { TopPart } from './internal/TopPart.js';
|
|
24
29
|
import { TopRightPart } from './internal/TopRightPart.js';
|
|
30
|
+
import './CellFrame.js';
|
|
25
31
|
import './internal/DefaultCellValue.js';
|
|
26
|
-
import { GridContext } from './GridContext.js';
|
|
27
|
-
import { SizingContext } from './SizingContext.js';
|
|
28
|
-
import { LayoutContext } from './LayoutContext.js';
|
|
29
|
-
import { ColumnDragContext } from './ColumnDragContext.js';
|
|
30
|
-
import { ColumnGhost } from './internal/ColumnGhost.js';
|
|
31
32
|
import { ColumnDropTarget } from './internal/ColumnDropTarget.js';
|
|
32
|
-
import {
|
|
33
|
-
import { ColumnSortContext } from './ColumnSortContext.js';
|
|
33
|
+
import { ColumnGhost } from './internal/ColumnGhost.js';
|
|
34
34
|
import css_248z from './Grid.css.js';
|
|
35
35
|
|
|
36
36
|
const withBaseName = makePrefixer("saltGrid");
|
|
@@ -120,7 +120,9 @@ const Grid = function Grid2(props) {
|
|
|
120
120
|
} = useColumnRegistry(children);
|
|
121
121
|
const midColsById = useMemo(
|
|
122
122
|
() => new Map(
|
|
123
|
-
midCols.map(
|
|
123
|
+
midCols.map(
|
|
124
|
+
(c) => [c.info.props.id, c]
|
|
125
|
+
)
|
|
124
126
|
),
|
|
125
127
|
[midCols]
|
|
126
128
|
);
|
|
@@ -360,7 +362,7 @@ const Grid = function Grid2(props) {
|
|
|
360
362
|
}, 0);
|
|
361
363
|
};
|
|
362
364
|
const startEditMode = (text) => {
|
|
363
|
-
if (editMode || cursorRowIdx
|
|
365
|
+
if (editMode || cursorRowIdx === void 0 || cursorColIdx === void 0) {
|
|
364
366
|
return;
|
|
365
367
|
}
|
|
366
368
|
const c = cols[cursorColIdx];
|
|
@@ -374,14 +376,14 @@ const Grid = function Grid2(props) {
|
|
|
374
376
|
if (!editMode) {
|
|
375
377
|
return;
|
|
376
378
|
}
|
|
377
|
-
if (cursorColIdx
|
|
378
|
-
console.error(
|
|
379
|
+
if (cursorColIdx === void 0) {
|
|
380
|
+
console.error("endEditMode: cursorColIdx is undefined in edit mode");
|
|
379
381
|
return;
|
|
380
382
|
}
|
|
381
383
|
const c = cols[cursorColIdx];
|
|
382
384
|
const handler = c.info.props.onChange;
|
|
383
|
-
if (cursorRowIdx
|
|
384
|
-
console.error(
|
|
385
|
+
if (cursorRowIdx === void 0) {
|
|
386
|
+
console.error("endEditMode: cursorRowIdx is undefined in edit mode");
|
|
385
387
|
return;
|
|
386
388
|
}
|
|
387
389
|
if (!handler) {
|
|
@@ -500,18 +502,12 @@ const Grid = function Grid2(props) {
|
|
|
500
502
|
[editMode, startEditMode, endEditMode, cancelEditMode, initialText]
|
|
501
503
|
);
|
|
502
504
|
const [isFocused, setFocused] = useState(false);
|
|
503
|
-
const onFocus = useCallback(
|
|
504
|
-
(
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
);
|
|
509
|
-
const onBlur = useCallback(
|
|
510
|
-
(event) => {
|
|
511
|
-
setFocused(false);
|
|
512
|
-
},
|
|
513
|
-
[setFocused]
|
|
514
|
-
);
|
|
505
|
+
const onFocus = useCallback(() => {
|
|
506
|
+
setFocused(true);
|
|
507
|
+
}, []);
|
|
508
|
+
const onBlur = useCallback(() => {
|
|
509
|
+
setFocused(false);
|
|
510
|
+
}, []);
|
|
515
511
|
const cursorContext = useMemo(
|
|
516
512
|
() => ({
|
|
517
513
|
isFocused,
|
|
@@ -595,9 +591,8 @@ const Grid = function Grid2(props) {
|
|
|
595
591
|
if (editMode) {
|
|
596
592
|
cancelEditMode();
|
|
597
593
|
break;
|
|
598
|
-
} else {
|
|
599
|
-
return false;
|
|
600
594
|
}
|
|
595
|
+
return false;
|
|
601
596
|
default:
|
|
602
597
|
if (!editMode && !event.ctrlKey && !event.metaKey && !event.altKey && /^[\w\d ]$/.test(key)) {
|
|
603
598
|
startEditMode(key);
|
|
@@ -624,14 +619,14 @@ const Grid = function Grid2(props) {
|
|
|
624
619
|
case " ":
|
|
625
620
|
if (focusedPart === "body") {
|
|
626
621
|
if (event.ctrlKey) {
|
|
627
|
-
if (cursorColIdx
|
|
622
|
+
if (cursorColIdx !== void 0) {
|
|
628
623
|
rangeSelection.selectRange({
|
|
629
624
|
start: { rowIdx: 0, colIdx: cursorColIdx },
|
|
630
625
|
end: { rowIdx: sortedRowData.length, colIdx: cursorColIdx }
|
|
631
626
|
});
|
|
632
627
|
}
|
|
633
628
|
} else {
|
|
634
|
-
if (cursorRowIdx
|
|
629
|
+
if (cursorRowIdx !== void 0) {
|
|
635
630
|
selectRows({
|
|
636
631
|
rowIndex: cursorRowIdx,
|
|
637
632
|
isRange: false,
|
|
@@ -641,9 +636,8 @@ const Grid = function Grid2(props) {
|
|
|
641
636
|
}
|
|
642
637
|
}
|
|
643
638
|
break;
|
|
644
|
-
} else {
|
|
645
|
-
return false;
|
|
646
639
|
}
|
|
640
|
+
return false;
|
|
647
641
|
case "a":
|
|
648
642
|
if (event.ctrlKey || event.metaKey) {
|
|
649
643
|
rangeSelection.selectRange({
|
|
@@ -652,9 +646,8 @@ const Grid = function Grid2(props) {
|
|
|
652
646
|
});
|
|
653
647
|
selectAll();
|
|
654
648
|
return true;
|
|
655
|
-
} else {
|
|
656
|
-
return false;
|
|
657
649
|
}
|
|
650
|
+
return false;
|
|
658
651
|
default:
|
|
659
652
|
return false;
|
|
660
653
|
}
|
|
@@ -676,6 +669,7 @@ const Grid = function Grid2(props) {
|
|
|
676
669
|
);
|
|
677
670
|
const clipboardKeyHandler = useCallback(
|
|
678
671
|
(event) => {
|
|
672
|
+
var _a2, _b2;
|
|
679
673
|
const { key } = event;
|
|
680
674
|
if (key === "c" && (event.ctrlKey || event.metaKey) && rangeSelection.selectedCellRange) {
|
|
681
675
|
const { start, end } = rangeSelection.selectedCellRange;
|
|
@@ -688,7 +682,7 @@ const Grid = function Grid2(props) {
|
|
|
688
682
|
const rowText = [];
|
|
689
683
|
for (let c2 = minCol; c2 <= maxCol; ++c2) {
|
|
690
684
|
const col = cols[c2];
|
|
691
|
-
const cellValue = col.info.props.getValue(row);
|
|
685
|
+
const cellValue = (_b2 = col == null ? void 0 : (_a2 = col.info.props).getValue) == null ? void 0 : _b2.call(_a2, row);
|
|
692
686
|
rowText.push(cellValue);
|
|
693
687
|
}
|
|
694
688
|
text.push(rowText.join(" "));
|
|
@@ -788,7 +782,7 @@ const Grid = function Grid2(props) {
|
|
|
788
782
|
break;
|
|
789
783
|
case "Enter":
|
|
790
784
|
if (editMode && !event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey) {
|
|
791
|
-
if (cursorRowIdx
|
|
785
|
+
if (cursorRowIdx === void 0) {
|
|
792
786
|
moveCursor(focusedPart, 0, 0);
|
|
793
787
|
} else {
|
|
794
788
|
moveCursor(focusedPart, cursorRowIdx + 1, cursorColIdx);
|
|
@@ -829,7 +823,7 @@ const Grid = function Grid2(props) {
|
|
|
829
823
|
);
|
|
830
824
|
const onKeyDown = useCallback(
|
|
831
825
|
(event) => {
|
|
832
|
-
if (cursorColIdx
|
|
826
|
+
if (cursorColIdx !== void 0 && cursorRowIdx !== void 0) {
|
|
833
827
|
const column = cols[cursorColIdx];
|
|
834
828
|
if (column.info.props.onKeyDown) {
|
|
835
829
|
column.info.props.onKeyDown(event, cursorRowIdx);
|