@salt-ds/data-grid 1.0.22 → 1.0.24
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/CHANGELOG.md +31 -0
- package/dist-cjs/BaseCell.js +3 -3
- package/dist-cjs/BaseCell.js.map +1 -1
- package/dist-cjs/CellFrame.js.map +1 -1
- package/dist-cjs/ColumnDragContext.js.map +1 -1
- package/dist-cjs/ColumnGroup.js.map +1 -1
- package/dist-cjs/DropdownCellEditor.js +1 -1
- package/dist-cjs/DropdownCellEditor.js.map +1 -1
- package/dist-cjs/Grid.js +7 -7
- package/dist-cjs/Grid.js.map +1 -1
- package/dist-cjs/GridColumn.js.map +1 -1
- package/dist-cjs/HeaderCell.css.js +1 -1
- package/dist-cjs/HeaderCell.js +27 -25
- package/dist-cjs/HeaderCell.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxCellValue.js +1 -1
- package/dist-cjs/RowSelectionCheckboxCellValue.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js +1 -1
- 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/RowSelectionRadioHeaderCell.js +2 -2
- package/dist-cjs/RowSelectionRadioHeaderCell.js.map +1 -1
- package/dist-cjs/index.js +20 -20
- package/dist-cjs/internal/ColumnGhost.js +1 -1
- package/dist-cjs/internal/ColumnGhost.js.map +1 -1
- package/dist-cjs/internal/LeftPart.js +2 -2
- package/dist-cjs/internal/LeftPart.js.map +1 -1
- package/dist-cjs/internal/MiddlePart.js +2 -2
- package/dist-cjs/internal/MiddlePart.js.map +1 -1
- package/dist-cjs/internal/RightPart.js +2 -2
- package/dist-cjs/internal/RightPart.js.map +1 -1
- package/dist-cjs/internal/TableRow.js.map +1 -1
- package/dist-cjs/internal/TopLeftPart.js +1 -1
- package/dist-cjs/internal/TopLeftPart.js.map +1 -1
- package/dist-cjs/internal/TopPart.js +1 -1
- package/dist-cjs/internal/TopPart.js.map +1 -1
- package/dist-cjs/internal/TopRightPart.js +2 -2
- package/dist-cjs/internal/TopRightPart.js.map +1 -1
- package/dist-cjs/internal/gridHooks.js +4 -4
- package/dist-cjs/internal/gridHooks.js.map +1 -1
- package/dist-es/BaseCell.js +3 -3
- package/dist-es/BaseCell.js.map +1 -1
- package/dist-es/CellFrame.js.map +1 -1
- package/dist-es/ColumnDragContext.js.map +1 -1
- package/dist-es/ColumnGroup.js.map +1 -1
- package/dist-es/DropdownCellEditor.js +1 -1
- package/dist-es/DropdownCellEditor.js.map +1 -1
- package/dist-es/Grid.js +7 -7
- package/dist-es/Grid.js.map +1 -1
- package/dist-es/GridColumn.js.map +1 -1
- package/dist-es/HeaderCell.css.js +1 -1
- package/dist-es/HeaderCell.js +27 -25
- package/dist-es/HeaderCell.js.map +1 -1
- package/dist-es/RowSelectionCheckboxCellValue.js +1 -1
- package/dist-es/RowSelectionCheckboxCellValue.js.map +1 -1
- package/dist-es/RowSelectionCheckboxHeaderCellValue.js +1 -1
- 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/RowSelectionRadioHeaderCell.js +2 -2
- package/dist-es/RowSelectionRadioHeaderCell.js.map +1 -1
- package/dist-es/index.js +8 -8
- package/dist-es/internal/ColumnGhost.js +1 -1
- package/dist-es/internal/ColumnGhost.js.map +1 -1
- package/dist-es/internal/LeftPart.js +2 -2
- package/dist-es/internal/LeftPart.js.map +1 -1
- package/dist-es/internal/MiddlePart.js +2 -2
- package/dist-es/internal/MiddlePart.js.map +1 -1
- package/dist-es/internal/RightPart.js +2 -2
- package/dist-es/internal/RightPart.js.map +1 -1
- package/dist-es/internal/TableRow.js.map +1 -1
- package/dist-es/internal/TopLeftPart.js +1 -1
- package/dist-es/internal/TopLeftPart.js.map +1 -1
- package/dist-es/internal/TopPart.js +1 -1
- package/dist-es/internal/TopPart.js.map +1 -1
- package/dist-es/internal/TopRightPart.js +2 -2
- package/dist-es/internal/TopRightPart.js.map +1 -1
- package/dist-es/internal/gridHooks.js +4 -4
- package/dist-es/internal/gridHooks.js.map +1 -1
- package/dist-types/CursorContext.d.ts +1 -1
- package/dist-types/Grid.d.ts +7 -7
- package/dist-types/GridColumn.d.ts +4 -4
- package/dist-types/RowSelectionCheckboxColumn.d.ts +1 -1
- package/dist-types/RowSelectionRadioColumn.d.ts +1 -1
- package/dist-types/RowValidationStatus.d.ts +2 -2
- package/dist-types/index.d.ts +8 -8
- package/dist-types/internal/FakeCell.d.ts +1 -1
- package/dist-types/internal/gridHooks.d.ts +2 -2
- package/dist-types/internal/index.d.ts +5 -5
- package/package.json +3 -3
|
@@ -2,8 +2,8 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { RadioButton } from '@salt-ds/core';
|
|
3
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
|
-
import { useSelectionContext } from './SelectionContext.js';
|
|
6
5
|
import css_248z from './CheckboxCell.css.js';
|
|
6
|
+
import { useSelectionContext } from './SelectionContext.js';
|
|
7
7
|
|
|
8
8
|
function RowSelectionRadioCellValue(props) {
|
|
9
9
|
const { row, isFocused } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelectionRadioCellValue.js","sources":["../src/RowSelectionRadioCellValue.tsx"],"sourcesContent":["import { RadioButton } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\
|
|
1
|
+
{"version":3,"file":"RowSelectionRadioCellValue.js","sources":["../src/RowSelectionRadioCellValue.tsx"],"sourcesContent":["import { RadioButton } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport checkboxCellCss from \"./CheckboxCell.css\";\nimport type { GridCellValueProps } from \"./GridColumn\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nexport function RowSelectionRadioCellValue<T>(props: GridCellValueProps<T>) {\n const { row, isFocused } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n const { selRowIdxs } = useSelectionContext();\n\n const isSelected = selRowIdxs.has(row.index);\n\n return (\n <div className=\"saltGridCheckboxContainer\">\n <RadioButton\n checked={isSelected}\n data-testid=\"grid-row-selection-radiobox\"\n tabIndex={isFocused ? 0 : -1}\n />\n </div>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;AAOO,SAAS,2BAA8B,KAA8B,EAAA;AAC1E,EAAM,MAAA,EAAE,GAAK,EAAA,SAAA,EAAc,GAAA,KAAA;AAE3B,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,mBAAoB,EAAA;AAE3C,EAAA,MAAM,UAAa,GAAA,UAAA,CAAW,GAAI,CAAA,GAAA,CAAI,KAAK,CAAA;AAE3C,EACE,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,2BACb,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,UAAA;AAAA,MACT,aAAY,EAAA,6BAAA;AAAA,MACZ,QAAA,EAAU,YAAY,CAAI,GAAA;AAAA;AAAA,GAE9B,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { clsx } from 'clsx';
|
|
3
2
|
import { RadioButtonIcon } from '@salt-ds/core';
|
|
4
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
5
4
|
import { useWindow } from '@salt-ds/window';
|
|
6
|
-
import {
|
|
5
|
+
import { clsx } from 'clsx';
|
|
7
6
|
import css_248z from './CheckboxCell.css.js';
|
|
7
|
+
import { AutoSizeHeaderCell } from './HeaderCell.js';
|
|
8
8
|
|
|
9
9
|
function RowSelectionRadioHeaderCell(props) {
|
|
10
10
|
const targetWindow = useWindow();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelectionRadioHeaderCell.js","sources":["../src/RowSelectionRadioHeaderCell.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"RowSelectionRadioHeaderCell.js","sources":["../src/RowSelectionRadioHeaderCell.tsx"],"sourcesContent":["import { RadioButtonIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport checkboxCellCss from \"./CheckboxCell.css\";\nimport type { HeaderCellProps } from \"./GridColumn\";\nimport { AutoSizeHeaderCell } from \"./HeaderCell\";\n\nexport function RowSelectionRadioHeaderCell<T>(props: HeaderCellProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n return (\n <AutoSizeHeaderCell {...props}>\n <div className={clsx(\"saltGridCheckboxContainer\", \"saltGrid-hidden\")}>\n <RadioButtonIcon />\n </div>\n </AutoSizeHeaderCell>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;;AAQO,SAAS,4BAA+B,KAA2B,EAAA;AACxE,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,uBACG,GAAA,CAAA,kBAAA,EAAA,EAAoB,GAAG,KAAA,EACtB,8BAAC,KAAI,EAAA,EAAA,SAAA,EAAW,IAAK,CAAA,2BAAA,EAA6B,iBAAiB,CAAA,EACjE,QAAC,kBAAA,GAAA,CAAA,eAAA,EAAA,EAAgB,GACnB,CACF,EAAA,CAAA;AAEJ;;;;"}
|
package/dist-es/index.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
export { BaseCell, getCellId } from './BaseCell.js';
|
|
2
|
-
export { ColumnGroup } from './ColumnGroup.js';
|
|
3
2
|
export { CellEditor } from './CellEditor.js';
|
|
4
3
|
export { CellFrame } from './CellFrame.js';
|
|
4
|
+
export { ColumnGroup } from './ColumnGroup.js';
|
|
5
5
|
export { CornerTag } from './CornerTag.js';
|
|
6
|
+
export { DropdownCellEditor } from './DropdownCellEditor.js';
|
|
6
7
|
export { EditorContext, useEditorContext } from './EditorContext.js';
|
|
8
|
+
export { Grid, SortOrder } from './Grid.js';
|
|
9
|
+
export { GridColumn } from './GridColumn.js';
|
|
10
|
+
export { GridContext, useGridContext } from './GridContext.js';
|
|
7
11
|
export { GroupHeaderCell } from './GroupHeaderCell.js';
|
|
8
12
|
export { GroupHeaderCellValue } from './GroupHeaderCellValue.js';
|
|
9
13
|
export { AutoSizeHeaderCell, HeaderCell, HeaderCellSeparator } from './HeaderCell.js';
|
|
10
14
|
export { HeaderCellValue } from './HeaderCellValue.js';
|
|
11
15
|
export { NumberRange, range } from './NumberRange.js';
|
|
12
|
-
export {
|
|
16
|
+
export { NumericCellEditor, NumericCellValue, NumericColumn } from './NumericColumn.js';
|
|
13
17
|
export { RowSelectionCheckboxCellValue } from './RowSelectionCheckboxCellValue.js';
|
|
18
|
+
export { RowSelectionCheckboxColumn } from './RowSelectionCheckboxColumn.js';
|
|
19
|
+
export { RowSelectionCheckboxHeaderCellValue } from './RowSelectionCheckboxHeaderCellValue.js';
|
|
14
20
|
export { RowSelectionRadioColumn } from './RowSelectionRadioColumn.js';
|
|
15
21
|
export { SelectionContext, useSelectionContext } from './SelectionContext.js';
|
|
16
22
|
export { SizingContext, useSizingContext } from './SizingContext.js';
|
|
17
|
-
export { Grid, SortOrder } from './Grid.js';
|
|
18
|
-
export { GridColumn } from './GridColumn.js';
|
|
19
|
-
export { GridContext, useGridContext } from './GridContext.js';
|
|
20
|
-
export { RowSelectionCheckboxColumn } from './RowSelectionCheckboxColumn.js';
|
|
21
23
|
export { TextCellEditor } from './TextCellEditor.js';
|
|
22
|
-
export { DropdownCellEditor } from './DropdownCellEditor.js';
|
|
23
|
-
export { NumericCellEditor, NumericCellValue, NumericColumn } from './NumericColumn.js';
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,10 +2,10 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { makePrefixer } from '@salt-ds/core';
|
|
3
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
|
+
import css_248z from './ColumnGhost.css.js';
|
|
5
6
|
import { HeaderRow } from './HeaderRow.js';
|
|
6
7
|
import { TableBody } from './TableBody.js';
|
|
7
8
|
import { TableColGroup } from './TableColGroup.js';
|
|
8
|
-
import css_248z from './ColumnGhost.css.js';
|
|
9
9
|
|
|
10
10
|
const withBaseName = makePrefixer("saltGridColumnGhost");
|
|
11
11
|
function ColumnGhost(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnGhost.js","sources":["../src/internal/ColumnGhost.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { CSSProperties } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\
|
|
1
|
+
{"version":3,"file":"ColumnGhost.js","sources":["../src/internal/ColumnGhost.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { CSSProperties } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport columnGhostCss from \"./ColumnGhost.css\";\nimport type { ColumnDragState } from \"./gridHooks\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableBody } from \"./TableBody\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nconst withBaseName = makePrefixer(\"saltGridColumnGhost\");\n\nexport interface ColumnGhostProps<T> {\n dragState?: ColumnDragState;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n zebra?: boolean;\n}\n\n// When the user drags a column this component renders a partially transparent\n// copy of the dragged column.\nexport function ColumnGhost<T = any>(props: ColumnGhostProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-column-ghost\",\n css: columnGhostCss,\n window: targetWindow,\n });\n\n if (!props.dragState) {\n return null;\n }\n\n const { columnIndex, x, y } = props.dragState;\n const { columns, rows, zebra } = props;\n const movingColumn = columns[columnIndex];\n\n const style: CSSProperties = {\n left: x,\n top: y,\n };\n\n return (\n <div className={withBaseName()} style={style}>\n <table aria-hidden>\n <TableColGroup columns={[movingColumn]} />\n <thead>\n <HeaderRow columns={[movingColumn]} />\n </thead>\n <TableBody\n columns={[movingColumn]}\n rows={rows}\n setHoverRowKey={() => {}}\n zebra={zebra}\n />\n </table>\n </div>\n );\n}\n"],"names":["columnGhostCss"],"mappings":";;;;;;;;;AAYA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA;AAWhD,SAAS,YAAqB,KAA4B,EAAA;AAC/D,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAA,CAAC,MAAM,SAAW,EAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,EAAE,WAAA,EAAa,CAAG,EAAA,CAAA,KAAM,KAAM,CAAA,SAAA;AACpC,EAAA,MAAM,EAAE,OAAA,EAAS,IAAM,EAAA,KAAA,EAAU,GAAA,KAAA;AACjC,EAAM,MAAA,YAAA,GAAe,QAAQ,WAAW,CAAA;AAExC,EAAA,MAAM,KAAuB,GAAA;AAAA,IAC3B,IAAM,EAAA,CAAA;AAAA,IACN,GAAK,EAAA;AAAA,GACP;AAEA,EACE,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,YAAA,IAAgB,KAC9B,EAAA,QAAA,kBAAA,IAAA,CAAC,OAAM,EAAA,EAAA,aAAA,EAAW,IAChB,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,OAAA,EAAS,CAAC,YAAY,CAAG,EAAA,CAAA;AAAA,oBACxC,GAAA,CAAC,WACC,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAU,SAAS,CAAC,YAAY,GAAG,CACtC,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,QACtB,IAAA;AAAA,QACA,gBAAgB,MAAM;AAAA,SAAC;AAAA,QACvB;AAAA;AAAA;AACF,GAAA,EACF,CACF,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -3,10 +3,10 @@ import { makePrefixer } from '@salt-ds/core';
|
|
|
3
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
|
-
import { TableBody } from './TableBody.js';
|
|
7
|
-
import { TableColGroup } from './TableColGroup.js';
|
|
8
6
|
import { useActiveOnWheel } from './gridHooks.js';
|
|
9
7
|
import css_248z from './LeftPart.css.js';
|
|
8
|
+
import { TableBody } from './TableBody.js';
|
|
9
|
+
import { TableColGroup } from './TableColGroup.js';
|
|
10
10
|
|
|
11
11
|
const withBaseName = makePrefixer("saltGridLeftPart");
|
|
12
12
|
function LeftPart(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftPart.js","sources":["../src/internal/LeftPart.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 { RefObject } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\
|
|
1
|
+
{"version":3,"file":"LeftPart.js","sources":["../src/internal/LeftPart.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 { RefObject } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\nimport { useActiveOnWheel } from \"./gridHooks\";\nimport leftPartCss from \"./LeftPart.css\";\nimport { TableBody } from \"./TableBody\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nconst withBaseName = makePrefixer(\"saltGridLeftPart\");\n\nexport interface LeftPartProps<T> {\n leftRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n rightShadow?: boolean;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n hoverOverRowKey?: string;\n setHoverOverRowKey: (key: string | undefined) => void;\n zebra?: boolean;\n getRowValidationStatus?: (\n row: GridRowModel<T>,\n ) => CellValidationState | undefined;\n}\n\nexport function LeftPart<T>(props: LeftPartProps<T>) {\n const {\n leftRef,\n onWheel,\n rightShadow,\n columns,\n rows,\n hoverOverRowKey,\n setHoverOverRowKey,\n zebra,\n getRowValidationStatus,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-left-part\",\n css: leftPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n ref={leftRef}\n className={clsx(withBaseName(), {\n [withBaseName(\"rightShadow\")]: rightShadow,\n })}\n >\n <div className={withBaseName(\"space\")} data-testid=\"grid-left-part\">\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} />\n <TableBody\n columns={columns}\n rows={rows}\n hoverRowKey={hoverOverRowKey}\n setHoverRowKey={setHoverOverRowKey}\n zebra={zebra}\n getRowValidationStatus={getRowValidationStatus}\n />\n </table>\n </div>\n </div>\n );\n}\n"],"names":["leftPartCss"],"mappings":";;;;;;;;;;AAaA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA;AAgB7C,SAAS,SAAY,KAAyB,EAAA;AACnD,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACE,GAAA,KAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,OAAA;AAAA,MACL,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,aAAa,CAAC,GAAG;AAAA,OAChC,CAAA;AAAA,MAED,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,YAAA,CAAa,OAAO,CAAA,EAAG,aAAY,EAAA,gBAAA,EACjD,QAAC,kBAAA,IAAA,CAAA,OAAA,EAAA,EAAM,GAAK,EAAA,QAAA,EAAU,MAAK,cACzB,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,iBAAc,OAAkB,EAAA,CAAA;AAAA,wBACjC,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,OAAA;AAAA,YACA,IAAA;AAAA,YACA,WAAa,EAAA,eAAA;AAAA,YACb,cAAgB,EAAA,kBAAA;AAAA,YAChB,KAAA;AAAA,YACA;AAAA;AAAA;AACF,OAAA,EACF,CACF,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -2,10 +2,10 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { makePrefixer } from '@salt-ds/core';
|
|
3
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
|
-
import { TableBody } from './TableBody.js';
|
|
6
|
-
import { TableColGroup } from './TableColGroup.js';
|
|
7
5
|
import { useActiveOnWheel } from './gridHooks.js';
|
|
8
6
|
import css_248z from './MiddlePart.css.js';
|
|
7
|
+
import { TableBody } from './TableBody.js';
|
|
8
|
+
import { TableColGroup } from './TableColGroup.js';
|
|
9
9
|
|
|
10
10
|
const withBaseName = makePrefixer("saltGridMiddlePart");
|
|
11
11
|
function MiddlePart(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlePart.js","sources":["../src/internal/MiddlePart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { RefObject } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\
|
|
1
|
+
{"version":3,"file":"MiddlePart.js","sources":["../src/internal/MiddlePart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { RefObject } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\nimport { useActiveOnWheel } from \"./gridHooks\";\nimport middlePartCss from \"./MiddlePart.css\";\nimport { TableBody } from \"./TableBody\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nconst withBaseName = makePrefixer(\"saltGridMiddlePart\");\n\nexport interface MiddlePartProps<T> {\n middleRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n hoverOverRowKey?: string;\n setHoverOverRowKey: (key: string | undefined) => void;\n midGap: number;\n zebra?: boolean;\n getRowValidationStatus?: (\n row: GridRowModel<T>,\n ) => CellValidationState | undefined;\n}\n\nexport function MiddlePart<T>(props: MiddlePartProps<T>) {\n const {\n middleRef,\n onWheel,\n columns,\n rows,\n hoverOverRowKey,\n setHoverOverRowKey,\n midGap,\n zebra,\n getRowValidationStatus,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-middle-part\",\n css: middlePartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n return (\n <div\n ref={middleRef}\n className={withBaseName()}\n data-testid=\"grid-middle-part\"\n >\n <div className={withBaseName(\"space\")}>\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} gap={midGap} />\n <TableBody\n columns={columns}\n rows={rows}\n hoverRowKey={hoverOverRowKey}\n setHoverRowKey={setHoverOverRowKey}\n gap={midGap}\n zebra={zebra}\n getRowValidationStatus={getRowValidationStatus}\n />\n </table>\n </div>\n </div>\n );\n}\n"],"names":["middlePartCss"],"mappings":";;;;;;;;;AAYA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA;AAgB/C,SAAS,WAAc,KAA2B,EAAA;AACvD,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACE,GAAA,KAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,SAAA;AAAA,MACL,WAAW,YAAa,EAAA;AAAA,MACxB,aAAY,EAAA,kBAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,YAAa,CAAA,OAAO,CAClC,EAAA,QAAA,kBAAA,IAAA,CAAC,OAAM,EAAA,EAAA,GAAA,EAAK,QAAU,EAAA,IAAA,EAAK,cACzB,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,aAAA,EAAA,EAAc,OAAkB,EAAA,GAAA,EAAK,MAAQ,EAAA,CAAA;AAAA,wBAC9C,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,OAAA;AAAA,YACA,IAAA;AAAA,YACA,WAAa,EAAA,eAAA;AAAA,YACb,cAAgB,EAAA,kBAAA;AAAA,YAChB,GAAK,EAAA,MAAA;AAAA,YACL,KAAA;AAAA,YACA;AAAA;AAAA;AACF,OAAA,EACF,CACF,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -3,10 +3,10 @@ import { makePrefixer } from '@salt-ds/core';
|
|
|
3
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
|
-
import { TableBody } from './TableBody.js';
|
|
7
|
-
import { TableColGroup } from './TableColGroup.js';
|
|
8
6
|
import { useActiveOnWheel } from './gridHooks.js';
|
|
9
7
|
import css_248z from './RightPart.css.js';
|
|
8
|
+
import { TableBody } from './TableBody.js';
|
|
9
|
+
import { TableColGroup } from './TableColGroup.js';
|
|
10
10
|
|
|
11
11
|
const withBaseName = makePrefixer("saltGridRightPart");
|
|
12
12
|
function RightPart(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPart.js","sources":["../src/internal/RightPart.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 { RefObject } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\
|
|
1
|
+
{"version":3,"file":"RightPart.js","sources":["../src/internal/RightPart.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 { RefObject } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\nimport { useActiveOnWheel } from \"./gridHooks\";\nimport rightPartCss from \"./RightPart.css\";\nimport { TableBody } from \"./TableBody\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nconst withBaseName = makePrefixer(\"saltGridRightPart\");\n\nexport interface RightPartProps<T> {\n rightRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n leftShadow?: boolean;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n hoverOverRowKey?: string;\n setHoverOverRowKey: (key: string | undefined) => void;\n zebra?: boolean;\n getRowValidationStatus?: (\n row: GridRowModel<T>,\n ) => CellValidationState | undefined;\n}\n\nexport function RightPart<T>(props: RightPartProps<T>) {\n const {\n rightRef,\n onWheel,\n columns,\n leftShadow,\n rows,\n hoverOverRowKey,\n setHoverOverRowKey,\n zebra,\n getRowValidationStatus,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-right-part\",\n css: rightPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n ref={rightRef}\n className={clsx(withBaseName(), {\n [withBaseName(\"leftShadow\")]: leftShadow,\n })}\n data-testid=\"grid-right-part\"\n >\n <div className={withBaseName(\"space\")}>\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} />\n <TableBody\n columns={columns}\n rows={rows}\n hoverRowKey={hoverOverRowKey}\n setHoverRowKey={setHoverOverRowKey}\n zebra={zebra}\n getRowValidationStatus={getRowValidationStatus}\n />\n </table>\n </div>\n </div>\n );\n}\n"],"names":["rightPartCss"],"mappings":";;;;;;;;;;AAaA,MAAM,YAAA,GAAe,aAAa,mBAAmB,CAAA;AAgB9C,SAAS,UAAa,KAA0B,EAAA;AACrD,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACE,GAAA,KAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,QAAA;AAAA,MACL,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG;AAAA,OAC/B,CAAA;AAAA,MACD,aAAY,EAAA,iBAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,YAAa,CAAA,OAAO,CAClC,EAAA,QAAA,kBAAA,IAAA,CAAC,OAAM,EAAA,EAAA,GAAA,EAAK,QAAU,EAAA,IAAA,EAAK,cACzB,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,iBAAc,OAAkB,EAAA,CAAA;AAAA,wBACjC,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,OAAA;AAAA,YACA,IAAA;AAAA,YACA,WAAa,EAAA,eAAA;AAAA,YACb,cAAgB,EAAA,kBAAA;AAAA,YAChB,KAAA;AAAA,YACA;AAAA;AAAA;AACF,OAAA,EACF,CACF,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.js","sources":["../src/internal/TableRow.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 {\n Children,\n
|
|
1
|
+
{"version":3,"file":"TableRow.js","sources":["../src/internal/TableRow.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 {\n Children,\n cloneElement,\n isValidElement,\n type MouseEventHandler,\n} from \"react\";\n\nimport { BaseCell } from \"../BaseCell\";\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\nimport { useGridContext } from \"../GridContext\";\nimport { RowValidationStatusContext } from \"../RowValidationStatus\";\n\nimport { DefaultCellValue } from \"./DefaultCellValue\";\nimport { FakeCell } from \"./FakeCell\";\n\nimport tableRowCss from \"./TableRow.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTableRow\");\n\nexport interface TableRowProps<T> {\n row: GridRowModel<T>;\n isSelected?: boolean;\n isHoverOver?: boolean;\n zebra?: boolean;\n columns: GridColumnModel<T>[];\n cursorColIdx?: number;\n onMouseEnter?: MouseEventHandler<HTMLTableRowElement>;\n onMouseLeave?: MouseEventHandler<HTMLTableRowElement>;\n gap?: number;\n editorColIdx?: number;\n isCellSelected?: (rowIdx: number, colIdx: number) => boolean;\n headerIsFocusable?: boolean;\n validationStatus?: CellValidationState;\n}\n\nexport function TableRow<T>(props: TableRowProps<T>) {\n const {\n row,\n isSelected,\n zebra,\n isHoverOver,\n columns,\n onMouseEnter,\n onMouseLeave,\n cursorColIdx,\n gap,\n editorColIdx,\n isCellSelected,\n headerIsFocusable,\n validationStatus: rowValidationStatus,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-table-row\",\n css: tableRowCss,\n window: targetWindow,\n });\n\n const grid = useGridContext();\n\n if (!row.key) {\n throw new Error(\"Invalid row\");\n }\n\n const ariaRowIndex = headerIsFocusable ? row.index + 2 : row.index + 1;\n\n return (\n <tr\n aria-rowindex={ariaRowIndex}\n aria-selected={isSelected ? true : undefined}\n className={clsx(withBaseName(), {\n [withBaseName(\"zebra\")]: zebra,\n [withBaseName(\"hover\")]: isHoverOver,\n [withBaseName(\"selected\")]: isSelected,\n [withBaseName(\"first\")]: row.index === 0,\n [withBaseName(`validationStatus-${rowValidationStatus}`)]:\n rowValidationStatus,\n })}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n data-row-index={row.index}\n data-row-key={row.key}\n >\n {columns.map((column, i) => {\n const colKey = column.info.props.id;\n const editorInfo = grid.getEditor(column.info.props.id);\n const isEditable = !!editorInfo;\n\n if (editorColIdx === column.index) {\n if (isEditable) {\n if (isValidElement(editorInfo.children)) {\n const editorElement = Children.only(editorInfo.children);\n return cloneElement(editorElement, {\n key: colKey,\n row,\n column,\n } as any);\n }\n }\n }\n\n const Cell = column.info.props.cellComponent || BaseCell;\n const CellValue =\n column.info.props.cellValueComponent || DefaultCellValue;\n const value =\n column.info.props.getValue && row.data\n ? column.info.props.getValue(row.data)\n : null;\n const isFocused = cursorColIdx === column.index;\n const isSelected = isCellSelected?.(row.index, column.index);\n const validationFnArg = {\n row,\n column,\n isFocused,\n value,\n };\n const validationStatus =\n column.info.props.getValidationStatus?.(validationFnArg);\n const validationMessage =\n validationStatus &&\n column.info.props.getValidationMessage?.(validationFnArg);\n\n return (\n <RowValidationStatusContext.Provider\n key={colKey}\n value={{ status: rowValidationStatus }}\n >\n <Cell\n row={row}\n column={column}\n isFocused={isFocused}\n isSelected={isSelected}\n isEditable={isEditable}\n validationStatus={validationStatus}\n validationMessage={validationMessage}\n validationType={column.info.props.validationType}\n value={value}\n align={column.info.props.align}\n >\n <CellValue\n column={column}\n row={row}\n value={value}\n isFocused={isFocused}\n validationStatus={validationStatus}\n validationMessage={validationMessage}\n validationType={column.info.props.validationType}\n />\n </Cell>\n </RowValidationStatusContext.Provider>\n );\n })}\n {gap !== undefined && gap > 0 ? <FakeCell row={row} /> : null}\n </tr>\n );\n}\n"],"names":["tableRowCss","isSelected"],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ import { useComponentCssInjection } from '@salt-ds/styles';
|
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { GroupHeaderRow } from './GroupHeaderRow.js';
|
|
7
|
+
import { useActiveOnWheel } from './gridHooks.js';
|
|
7
8
|
import { HeaderRow } from './HeaderRow.js';
|
|
8
9
|
import { TableColGroup } from './TableColGroup.js';
|
|
9
|
-
import { useActiveOnWheel } from './gridHooks.js';
|
|
10
10
|
import css_248z from './TopLeftPart.css.js';
|
|
11
11
|
|
|
12
12
|
const withBaseName = makePrefixer("saltGridTopLeftPart");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopLeftPart.js","sources":["../src/internal/TopLeftPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport {
|
|
1
|
+
{"version":3,"file":"TopLeftPart.js","sources":["../src/internal/TopLeftPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { useActiveOnWheel } from \"./gridHooks\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nimport topLeftPartCss from \"./TopLeftPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopLeftPart\");\n\nexport interface TopLeftPartProps<T> {\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n rightShadow?: boolean;\n bottomShadow?: boolean;\n}\n\nexport function TopLeftPart<T>(props: TopLeftPartProps<T>) {\n const { onWheel, columns, columnGroups, rightShadow, bottomShadow } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-left-part\",\n css: topLeftPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"rightShadow\")]: rightShadow,\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n data-testid=\"grid-top-left-part\"\n >\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} />\n <thead>\n <GroupHeaderRow groups={columnGroups} />\n <HeaderRow columns={columns} />\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["topLeftPartCss"],"mappings":";;;;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA;AAUhD,SAAS,YAAe,KAA4B,EAAA;AACzD,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,YAAc,EAAA,WAAA,EAAa,cAAiB,GAAA,KAAA;AAEtE,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,aAAa,CAAC,GAAG,WAAA;AAAA,QAC/B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG;AAAA,OACjC,CAAA;AAAA,MACD,aAAY,EAAA,oBAAA;AAAA,MAEZ,QAAC,kBAAA,IAAA,CAAA,OAAA,EAAA,EAAM,GAAK,EAAA,QAAA,EAAU,MAAK,cACzB,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,iBAAc,OAAkB,EAAA,CAAA;AAAA,6BAChC,OACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,cAAA,EAAA,EAAe,QAAQ,YAAc,EAAA,CAAA;AAAA,0BACtC,GAAA,CAAC,aAAU,OAAkB,EAAA;AAAA,SAC/B,EAAA;AAAA,OACF,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -4,9 +4,9 @@ import { useComponentCssInjection } from '@salt-ds/styles';
|
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { GroupHeaderRow } from './GroupHeaderRow.js';
|
|
7
|
+
import { useActiveOnWheel } from './gridHooks.js';
|
|
7
8
|
import { HeaderRow } from './HeaderRow.js';
|
|
8
9
|
import { TableColGroup } from './TableColGroup.js';
|
|
9
|
-
import { useActiveOnWheel } from './gridHooks.js';
|
|
10
10
|
import css_248z from './TopPart.css.js';
|
|
11
11
|
|
|
12
12
|
const withBaseName = makePrefixer("saltGridTopPart");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopPart.js","sources":["../src/internal/TopPart.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 { RefObject } from \"react\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport {
|
|
1
|
+
{"version":3,"file":"TopPart.js","sources":["../src/internal/TopPart.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 { RefObject } from \"react\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { useActiveOnWheel } from \"./gridHooks\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nimport topPartCss from \"./TopPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopPart\");\n\nexport interface TopPartProps<T> {\n topRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n midGap: number;\n bottomShadow?: boolean;\n}\n\nexport function TopPart<T>(props: TopPartProps<T>) {\n const { topRef, onWheel, columns, columnGroups, midGap, bottomShadow } =\n props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-part\",\n css: topPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n ref={topRef}\n data-testid=\"grid-top-part\"\n >\n <div className={withBaseName(\"space\")}>\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} gap={midGap} />\n <thead>\n <GroupHeaderRow groups={columnGroups} gap={midGap} />\n <HeaderRow columns={columns} gap={midGap} />\n </thead>\n </table>\n </div>\n </div>\n );\n}\n"],"names":["topPartCss"],"mappings":";;;;;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA;AAW5C,SAAS,QAAW,KAAwB,EAAA;AACjD,EAAA,MAAM,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,YAAc,EAAA,MAAA,EAAQ,cACtD,GAAA,KAAA;AAEF,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG;AAAA,OACjC,CAAA;AAAA,MACD,GAAK,EAAA,MAAA;AAAA,MACL,aAAY,EAAA,eAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,YAAa,CAAA,OAAO,CAClC,EAAA,QAAA,kBAAA,IAAA,CAAC,OAAM,EAAA,EAAA,GAAA,EAAK,QAAU,EAAA,IAAA,EAAK,cACzB,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,aAAA,EAAA,EAAc,OAAkB,EAAA,GAAA,EAAK,MAAQ,EAAA,CAAA;AAAA,6BAC7C,OACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,cAAe,EAAA,EAAA,MAAA,EAAQ,YAAc,EAAA,GAAA,EAAK,MAAQ,EAAA,CAAA;AAAA,0BAClD,GAAA,CAAA,SAAA,EAAA,EAAU,OAAkB,EAAA,GAAA,EAAK,MAAQ,EAAA;AAAA,SAC5C,EAAA;AAAA,OAAA,EACF,CACF,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -3,10 +3,10 @@ import { makePrefixer } from '@salt-ds/core';
|
|
|
3
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
|
-
import { HeaderRow } from './HeaderRow.js';
|
|
7
|
-
import { TableColGroup } from './TableColGroup.js';
|
|
8
6
|
import { GroupHeaderRow } from './GroupHeaderRow.js';
|
|
9
7
|
import { useActiveOnWheel } from './gridHooks.js';
|
|
8
|
+
import { HeaderRow } from './HeaderRow.js';
|
|
9
|
+
import { TableColGroup } from './TableColGroup.js';
|
|
10
10
|
import css_248z from './TopRightPart.css.js';
|
|
11
11
|
|
|
12
12
|
const withBaseName = makePrefixer("saltGridTopRightPart");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopRightPart.js","sources":["../src/internal/TopRightPart.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 {
|
|
1
|
+
{"version":3,"file":"TopRightPart.js","sources":["../src/internal/TopRightPart.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 { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { useActiveOnWheel } from \"./gridHooks\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nimport topRightPartCss from \"./TopRightPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopRightPart\");\n\nexport interface TopRightPartProps<T> {\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n leftShadow?: boolean;\n bottomShadow?: boolean;\n}\n\nexport function TopRightPart<T>(props: TopRightPartProps<T>) {\n const { onWheel, columns, columnGroups, leftShadow, bottomShadow } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-right-part\",\n css: topRightPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"leftShadow\")]: leftShadow,\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n data-testid=\"grid-top-right-part\"\n >\n <table\n className={withBaseName(\"table\")}\n ref={tableRef}\n role=\"presentation\"\n >\n <TableColGroup columns={columns} />\n <thead>\n <GroupHeaderRow groups={columnGroups} />\n <HeaderRow columns={columns} />\n {/*TODO Do we need a toolbar?*/}\n {/*{showToolbar ? <HeaderToolbarRow columns={rightColumns} /> : null}*/}\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["topRightPartCss"],"mappings":";;;;;;;;;;;AAYA,MAAM,YAAA,GAAe,aAAa,sBAAsB,CAAA;AAUjD,SAAS,aAAgB,KAA6B,EAAA;AAC3D,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,YAAc,EAAA,UAAA,EAAY,cAAiB,GAAA,KAAA;AAErE,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,qBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,UAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG;AAAA,OACjC,CAAA;AAAA,MACD,aAAY,EAAA,qBAAA;AAAA,MAEZ,QAAA,kBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,GAAK,EAAA,QAAA;AAAA,UACL,IAAK,EAAA,cAAA;AAAA,UAEL,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,iBAAc,OAAkB,EAAA,CAAA;AAAA,iCAChC,OACC,EAAA,EAAA,QAAA,EAAA;AAAA,8BAAC,GAAA,CAAA,cAAA,EAAA,EAAe,QAAQ,YAAc,EAAA,CAAA;AAAA,8BACtC,GAAA,CAAC,aAAU,OAAkB,EAAA;AAAA,aAG/B,EAAA;AAAA;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -221,8 +221,8 @@ function useScrollToCell(visRowRng, rowHeight, clientMidHeight, midCols, bodyVis
|
|
|
221
221
|
if (part !== "body") {
|
|
222
222
|
return;
|
|
223
223
|
}
|
|
224
|
-
let x
|
|
225
|
-
let y
|
|
224
|
+
let x;
|
|
225
|
+
let y;
|
|
226
226
|
if (rowIdx <= visRowRng.start) {
|
|
227
227
|
y = rowIdx === 0 ? 0 : 1 + rowHeight * rowIdx;
|
|
228
228
|
} else if (rowIdx >= visRowRng.end - 1) {
|
|
@@ -500,8 +500,8 @@ function useRowSelection(rowKeyGetter, rowData, defaultSelectedRowIdxs, selected
|
|
|
500
500
|
unselectOtherRows = false
|
|
501
501
|
}) => {
|
|
502
502
|
const idxFrom = rowSelectionMode === "multi" && lastSelRowIdx !== void 0 && isRange ? lastSelRowIdx : void 0;
|
|
503
|
-
let nextSelRowIdxs
|
|
504
|
-
let nextLastSelRowIdx
|
|
503
|
+
let nextSelRowIdxs;
|
|
504
|
+
let nextLastSelRowIdx;
|
|
505
505
|
if (idxFrom === void 0) {
|
|
506
506
|
if (unselectOtherRows) {
|
|
507
507
|
if (incremental && selRowIdxs.has(rowIndex)) {
|