@salt-ds/data-grid 1.0.6 → 1.0.8
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 +228 -0
- package/dist-cjs/BaseCell.js +47 -45
- package/dist-cjs/BaseCell.js.map +1 -1
- package/dist-cjs/CellEditor.js +0 -2
- package/dist-cjs/CellEditor.js.map +1 -1
- package/dist-cjs/CellFrame.js +23 -31
- package/dist-cjs/CellFrame.js.map +1 -1
- package/dist-cjs/ColumnDataContext.js +0 -2
- package/dist-cjs/ColumnDataContext.js.map +1 -1
- package/dist-cjs/ColumnDragContext.js +0 -2
- package/dist-cjs/ColumnDragContext.js.map +1 -1
- package/dist-cjs/ColumnGroup.js +1 -5
- package/dist-cjs/ColumnGroup.js.map +1 -1
- package/dist-cjs/ColumnSortContext.js +0 -2
- package/dist-cjs/ColumnSortContext.js.map +1 -1
- package/dist-cjs/CornerTag.js +6 -5
- package/dist-cjs/CornerTag.js.map +1 -1
- package/dist-cjs/CursorContext.js +0 -2
- package/dist-cjs/CursorContext.js.map +1 -1
- package/dist-cjs/DropdownCellEditor.js +25 -28
- package/dist-cjs/DropdownCellEditor.js.map +1 -1
- package/dist-cjs/EditorContext.js +0 -2
- package/dist-cjs/EditorContext.js.map +1 -1
- package/dist-cjs/Grid.css.js +1 -1
- package/dist-cjs/Grid.js +139 -142
- package/dist-cjs/Grid.js.map +1 -1
- package/dist-cjs/GridColumn.js +4 -8
- package/dist-cjs/GridColumn.js.map +1 -1
- package/dist-cjs/GridContext.js +0 -2
- package/dist-cjs/GridContext.js.map +1 -1
- package/dist-cjs/GroupHeaderCell.js +27 -28
- package/dist-cjs/GroupHeaderCell.js.map +1 -1
- package/dist-cjs/GroupHeaderCellValue.js +1 -5
- package/dist-cjs/GroupHeaderCellValue.js.map +1 -1
- package/dist-cjs/HeaderCell.js +85 -81
- package/dist-cjs/HeaderCell.js.map +1 -1
- package/dist-cjs/HeaderCellValue.js +1 -6
- package/dist-cjs/HeaderCellValue.js.map +1 -1
- package/dist-cjs/LayoutContext.js +0 -2
- package/dist-cjs/LayoutContext.js.map +1 -1
- package/dist-cjs/NumberRange.js +2 -4
- package/dist-cjs/NumberRange.js.map +1 -1
- package/dist-cjs/NumericColumn.css.js +1 -1
- package/dist-cjs/NumericColumn.js +31 -30
- package/dist-cjs/NumericColumn.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxCellValue.js +5 -8
- package/dist-cjs/RowSelectionCheckboxCellValue.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxColumn.js +11 -10
- package/dist-cjs/RowSelectionCheckboxColumn.js.map +1 -1
- package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js +20 -16
- package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
- package/dist-cjs/RowSelectionRadioCellValue.js +5 -7
- package/dist-cjs/RowSelectionRadioCellValue.js.map +1 -1
- package/dist-cjs/RowSelectionRadioColumn.js +10 -9
- package/dist-cjs/RowSelectionRadioColumn.js.map +1 -1
- package/dist-cjs/RowSelectionRadioHeaderCell.js +1 -9
- package/dist-cjs/RowSelectionRadioHeaderCell.js.map +1 -1
- package/dist-cjs/RowValidationStatus.js +0 -2
- package/dist-cjs/RowValidationStatus.js.map +1 -1
- package/dist-cjs/SelectionContext.js +0 -2
- package/dist-cjs/SelectionContext.js.map +1 -1
- package/dist-cjs/SizingContext.js +0 -2
- package/dist-cjs/SizingContext.js.map +1 -1
- package/dist-cjs/TextCellEditor.css.js +1 -1
- package/dist-cjs/TextCellEditor.js +14 -20
- package/dist-cjs/TextCellEditor.js.map +1 -1
- package/dist-cjs/index.js +0 -2
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/internal/CellMeasure.css.js +1 -1
- package/dist-cjs/internal/CellMeasure.js +1 -16
- package/dist-cjs/internal/CellMeasure.js.map +1 -1
- package/dist-cjs/internal/CellStatusIcons.js +41 -37
- package/dist-cjs/internal/CellStatusIcons.js.map +1 -1
- package/dist-cjs/internal/ColumnDropTarget.js +1 -6
- package/dist-cjs/internal/ColumnDropTarget.js.map +1 -1
- package/dist-cjs/internal/ColumnGhost.js +14 -26
- package/dist-cjs/internal/ColumnGhost.js.map +1 -1
- package/dist-cjs/internal/Cursor.js +1 -5
- package/dist-cjs/internal/Cursor.js.map +1 -1
- package/dist-cjs/internal/DefaultCellValue.js +9 -8
- package/dist-cjs/internal/DefaultCellValue.js.map +1 -1
- package/dist-cjs/internal/FakeCell.js +8 -16
- package/dist-cjs/internal/FakeCell.js.map +1 -1
- package/dist-cjs/internal/FakeGroupCell.js +0 -2
- package/dist-cjs/internal/FakeGroupCell.js.map +1 -1
- package/dist-cjs/internal/FakeHeaderCell.js +1 -5
- package/dist-cjs/internal/FakeHeaderCell.js.map +1 -1
- package/dist-cjs/internal/GroupHeaderRow.js +8 -19
- package/dist-cjs/internal/GroupHeaderRow.js.map +1 -1
- package/dist-cjs/internal/HeaderRow.js +15 -21
- package/dist-cjs/internal/HeaderRow.js.map +1 -1
- package/dist-cjs/internal/LeftPart.js +17 -23
- package/dist-cjs/internal/LeftPart.js.map +1 -1
- package/dist-cjs/internal/MiddlePart.js +16 -22
- package/dist-cjs/internal/MiddlePart.js.map +1 -1
- package/dist-cjs/internal/RightPart.js +18 -23
- package/dist-cjs/internal/RightPart.js.map +1 -1
- package/dist-cjs/internal/Scrollable.js +10 -11
- package/dist-cjs/internal/Scrollable.js.map +1 -1
- package/dist-cjs/internal/TableBody.js +11 -13
- package/dist-cjs/internal/TableBody.js.map +1 -1
- package/dist-cjs/internal/TableColGroup.js +7 -17
- package/dist-cjs/internal/TableColGroup.js.map +1 -1
- package/dist-cjs/internal/TableRow.js +81 -73
- package/dist-cjs/internal/TableRow.js.map +1 -1
- package/dist-cjs/internal/TopLeftPart.js +17 -28
- package/dist-cjs/internal/TopLeftPart.js.map +1 -1
- package/dist-cjs/internal/TopPart.js +17 -34
- package/dist-cjs/internal/TopPart.js.map +1 -1
- package/dist-cjs/internal/TopRightPart.js +23 -27
- package/dist-cjs/internal/TopRightPart.js.map +1 -1
- package/dist-cjs/internal/gridHooks.js +0 -2
- package/dist-cjs/internal/gridHooks.js.map +1 -1
- package/dist-cjs/internal/utils.js +0 -2
- package/dist-cjs/internal/utils.js.map +1 -1
- package/dist-es/BaseCell.js +47 -43
- package/dist-es/BaseCell.js.map +1 -1
- package/dist-es/CellEditor.js.map +1 -1
- package/dist-es/CellFrame.js +23 -29
- package/dist-es/CellFrame.js.map +1 -1
- package/dist-es/ColumnDataContext.js.map +1 -1
- package/dist-es/ColumnDragContext.js.map +1 -1
- package/dist-es/ColumnGroup.js +1 -3
- package/dist-es/ColumnGroup.js.map +1 -1
- package/dist-es/ColumnSortContext.js.map +1 -1
- package/dist-es/CornerTag.js +6 -3
- package/dist-es/CornerTag.js.map +1 -1
- package/dist-es/CursorContext.js.map +1 -1
- package/dist-es/DropdownCellEditor.js +25 -26
- package/dist-es/DropdownCellEditor.js.map +1 -1
- package/dist-es/EditorContext.js.map +1 -1
- package/dist-es/Grid.css.js +1 -1
- package/dist-es/Grid.js +139 -140
- package/dist-es/Grid.js.map +1 -1
- package/dist-es/GridColumn.js +4 -6
- package/dist-es/GridColumn.js.map +1 -1
- package/dist-es/GridContext.js.map +1 -1
- package/dist-es/GroupHeaderCell.js +27 -26
- package/dist-es/GroupHeaderCell.js.map +1 -1
- package/dist-es/GroupHeaderCellValue.js +1 -3
- package/dist-es/GroupHeaderCellValue.js.map +1 -1
- package/dist-es/HeaderCell.js +85 -79
- package/dist-es/HeaderCell.js.map +1 -1
- package/dist-es/HeaderCellValue.js +1 -4
- package/dist-es/HeaderCellValue.js.map +1 -1
- package/dist-es/LayoutContext.js.map +1 -1
- package/dist-es/NumberRange.js +2 -2
- package/dist-es/NumberRange.js.map +1 -1
- package/dist-es/NumericColumn.css.js +1 -1
- package/dist-es/NumericColumn.js +31 -28
- package/dist-es/NumericColumn.js.map +1 -1
- package/dist-es/RowSelectionCheckboxCellValue.js +5 -6
- package/dist-es/RowSelectionCheckboxCellValue.js.map +1 -1
- package/dist-es/RowSelectionCheckboxColumn.js +11 -8
- package/dist-es/RowSelectionCheckboxColumn.js.map +1 -1
- package/dist-es/RowSelectionCheckboxHeaderCellValue.js +20 -14
- package/dist-es/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
- package/dist-es/RowSelectionRadioCellValue.js +5 -5
- package/dist-es/RowSelectionRadioCellValue.js.map +1 -1
- package/dist-es/RowSelectionRadioColumn.js +10 -7
- package/dist-es/RowSelectionRadioColumn.js.map +1 -1
- package/dist-es/RowSelectionRadioHeaderCell.js +1 -7
- package/dist-es/RowSelectionRadioHeaderCell.js.map +1 -1
- package/dist-es/SelectionContext.js.map +1 -1
- package/dist-es/SizingContext.js.map +1 -1
- package/dist-es/TextCellEditor.css.js +1 -1
- package/dist-es/TextCellEditor.js +14 -18
- package/dist-es/TextCellEditor.js.map +1 -1
- package/dist-es/internal/CellMeasure.css.js +1 -1
- package/dist-es/internal/CellMeasure.js +1 -14
- package/dist-es/internal/CellMeasure.js.map +1 -1
- package/dist-es/internal/CellStatusIcons.js +41 -35
- package/dist-es/internal/CellStatusIcons.js.map +1 -1
- package/dist-es/internal/ColumnDropTarget.js +1 -4
- package/dist-es/internal/ColumnDropTarget.js.map +1 -1
- package/dist-es/internal/ColumnGhost.js +14 -24
- package/dist-es/internal/ColumnGhost.js.map +1 -1
- package/dist-es/internal/Cursor.js +1 -3
- package/dist-es/internal/Cursor.js.map +1 -1
- package/dist-es/internal/DefaultCellValue.js +9 -6
- package/dist-es/internal/DefaultCellValue.js.map +1 -1
- package/dist-es/internal/FakeCell.js +8 -14
- package/dist-es/internal/FakeCell.js.map +1 -1
- package/dist-es/internal/FakeGroupCell.js.map +1 -1
- package/dist-es/internal/FakeHeaderCell.js +1 -3
- package/dist-es/internal/FakeHeaderCell.js.map +1 -1
- package/dist-es/internal/GroupHeaderRow.js +8 -17
- package/dist-es/internal/GroupHeaderRow.js.map +1 -1
- package/dist-es/internal/HeaderRow.js +15 -19
- package/dist-es/internal/HeaderRow.js.map +1 -1
- package/dist-es/internal/LeftPart.js +17 -21
- package/dist-es/internal/LeftPart.js.map +1 -1
- package/dist-es/internal/MiddlePart.js +16 -20
- package/dist-es/internal/MiddlePart.js.map +1 -1
- package/dist-es/internal/RightPart.js +18 -21
- package/dist-es/internal/RightPart.js.map +1 -1
- package/dist-es/internal/Scrollable.js +10 -9
- package/dist-es/internal/Scrollable.js.map +1 -1
- package/dist-es/internal/TableBody.js +11 -11
- package/dist-es/internal/TableBody.js.map +1 -1
- package/dist-es/internal/TableColGroup.js +7 -15
- package/dist-es/internal/TableColGroup.js.map +1 -1
- package/dist-es/internal/TableRow.js +81 -71
- package/dist-es/internal/TableRow.js.map +1 -1
- package/dist-es/internal/TopLeftPart.js +17 -26
- package/dist-es/internal/TopLeftPart.js.map +1 -1
- package/dist-es/internal/TopPart.js +17 -32
- package/dist-es/internal/TopPart.js.map +1 -1
- package/dist-es/internal/TopRightPart.js +23 -25
- package/dist-es/internal/TopRightPart.js.map +1 -1
- package/dist-es/internal/gridHooks.js.map +1 -1
- package/dist-es/internal/utils.js.map +1 -1
- package/package.json +11 -8
- package/dist-cjs/internal/FakeCell.css.js +0 -6
- package/dist-cjs/internal/FakeCell.css.js.map +0 -1
- package/dist-es/internal/FakeCell.css.js +0 -4
- package/dist-es/internal/FakeCell.css.js.map +0 -1
|
@@ -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\";\n\nimport type { GridCellValueProps } from \"./GridColumn\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\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":";;;;;;;AASO,SAAS,2BAA8B,KAA8B,EAAA;AAC1E,EAAM,MAAA,EAAE,GAAK,EAAA,SAAA,EAAc,GAAA,KAAA
|
|
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\";\n\nimport type { GridCellValueProps } from \"./GridColumn\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\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":";;;;;;;AASO,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,CAAA;AAAA;AAAA,GAE9B,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -17,13 +17,16 @@ function RowSelectionRadioColumn(props) {
|
|
|
17
17
|
},
|
|
18
18
|
[selectRows]
|
|
19
19
|
);
|
|
20
|
-
return /* @__PURE__ */ jsx(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
return /* @__PURE__ */ jsx(
|
|
21
|
+
GridColumn,
|
|
22
|
+
{
|
|
23
|
+
...props,
|
|
24
|
+
defaultWidth: 100,
|
|
25
|
+
headerComponent: RowSelectionRadioHeaderCell,
|
|
26
|
+
cellValueComponent: RowSelectionRadioCellValue,
|
|
27
|
+
onKeyDown
|
|
28
|
+
}
|
|
29
|
+
);
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
export { RowSelectionRadioColumn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelectionRadioColumn.js","sources":["../src/RowSelectionRadioColumn.tsx"],"sourcesContent":["import { type KeyboardEvent, useCallback } from \"react\";\nimport { GridColumn, type GridColumnProps } from \"./GridColumn\";\nimport { RowSelectionRadioCellValue } from \"./RowSelectionRadioCellValue\";\nimport { RowSelectionRadioHeaderCell } from \"./RowSelectionRadioHeaderCell\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nexport type RowSelectionRadioColumnProps<T> = Omit<\n GridColumnProps<T>,\n \"width\" | \"name\"\n>;\n\nexport function RowSelectionRadioColumn<T>(\n props: RowSelectionRadioColumnProps<T>,\n) {\n const { selectRows } = useSelectionContext();\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>, rowIndex: number) => {\n if (event.key === \" \") {\n selectRows({ rowIndex });\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [selectRows],\n );\n\n return (\n <GridColumn\n {...props}\n defaultWidth={100}\n headerComponent={RowSelectionRadioHeaderCell}\n cellValueComponent={RowSelectionRadioCellValue}\n onKeyDown={onKeyDown}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;AAWO,SAAS,wBACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,mBAAoB,EAAA
|
|
1
|
+
{"version":3,"file":"RowSelectionRadioColumn.js","sources":["../src/RowSelectionRadioColumn.tsx"],"sourcesContent":["import { type KeyboardEvent, useCallback } from \"react\";\nimport { GridColumn, type GridColumnProps } from \"./GridColumn\";\nimport { RowSelectionRadioCellValue } from \"./RowSelectionRadioCellValue\";\nimport { RowSelectionRadioHeaderCell } from \"./RowSelectionRadioHeaderCell\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nexport type RowSelectionRadioColumnProps<T> = Omit<\n GridColumnProps<T>,\n \"width\" | \"name\"\n>;\n\nexport function RowSelectionRadioColumn<T>(\n props: RowSelectionRadioColumnProps<T>,\n) {\n const { selectRows } = useSelectionContext();\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>, rowIndex: number) => {\n if (event.key === \" \") {\n selectRows({ rowIndex });\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [selectRows],\n );\n\n return (\n <GridColumn\n {...props}\n defaultWidth={100}\n headerComponent={RowSelectionRadioHeaderCell}\n cellValueComponent={RowSelectionRadioCellValue}\n onKeyDown={onKeyDown}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;AAWO,SAAS,wBACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,mBAAoB,EAAA;AAE3C,EAAA,MAAM,SAAY,GAAA,WAAA;AAAA,IAChB,CAAC,OAAsC,QAAqB,KAAA;AAC1D,MAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,QAAW,UAAA,CAAA,EAAE,UAAU,CAAA;AACvB,QAAA,KAAA,CAAM,cAAe,EAAA;AACrB,QAAA,KAAA,CAAM,eAAgB,EAAA;AAAA;AACxB,KACF;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,YAAc,EAAA,GAAA;AAAA,MACd,eAAiB,EAAA,2BAAA;AAAA,MACjB,kBAAoB,EAAA,0BAAA;AAAA,MACpB;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -13,13 +13,7 @@ function RowSelectionRadioHeaderCell(props) {
|
|
|
13
13
|
css: css_248z,
|
|
14
14
|
window: targetWindow
|
|
15
15
|
});
|
|
16
|
-
return /* @__PURE__ */ jsx(AutoSizeHeaderCell, {
|
|
17
|
-
...props,
|
|
18
|
-
children: /* @__PURE__ */ jsx("div", {
|
|
19
|
-
className: clsx("saltGridCheckboxContainer", "saltGrid-hidden"),
|
|
20
|
-
children: /* @__PURE__ */ jsx(RadioButtonIcon, {})
|
|
21
|
-
})
|
|
22
|
-
});
|
|
16
|
+
return /* @__PURE__ */ jsx(AutoSizeHeaderCell, { ...props, children: /* @__PURE__ */ jsx("div", { className: clsx("saltGridCheckboxContainer", "saltGrid-hidden"), children: /* @__PURE__ */ jsx(RadioButtonIcon, {}) }) });
|
|
23
17
|
}
|
|
24
18
|
|
|
25
19
|
export { RowSelectionRadioHeaderCell };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelectionRadioHeaderCell.js","sources":["../src/RowSelectionRadioHeaderCell.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\n\nimport { RadioButtonIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport type { HeaderCellProps } from \"./GridColumn\";\nimport { AutoSizeHeaderCell } from \"./HeaderCell\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\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":";;;;;;;;AAWO,SAAS,4BAA+B,KAA2B,EAAA;AACxE,EAAA,MAAM,eAAe,SAAU,EAAA
|
|
1
|
+
{"version":3,"file":"RowSelectionRadioHeaderCell.js","sources":["../src/RowSelectionRadioHeaderCell.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\n\nimport { RadioButtonIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport type { HeaderCellProps } from \"./GridColumn\";\nimport { AutoSizeHeaderCell } from \"./HeaderCell\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\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":";;;;;;;;AAWO,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;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionContext.js","sources":["../src/SelectionContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { CellRange, SelectRowsOptions } from \"./internal\";\n\nexport interface SelectionContext {\n selectedCellRange: CellRange | undefined;\n selRowIdxs: Set<number>;\n isAnySelected: boolean;\n isAllSelected: boolean;\n selectRows: (args: SelectRowsOptions) => void;\n selectAll: () => void;\n unselectAll: () => void;\n}\n\nexport const SelectionContext = createContext<SelectionContext | undefined>(\n undefined,\n);\n\nexport const useSelectionContext = () => {\n const c = useContext(SelectionContext);\n if (!c) {\n throw new Error(\"useSelectionContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAaO,MAAM,gBAAmB,GAAA,aAAA;AAAA,EAC9B,KAAA
|
|
1
|
+
{"version":3,"file":"SelectionContext.js","sources":["../src/SelectionContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { CellRange, SelectRowsOptions } from \"./internal\";\n\nexport interface SelectionContext {\n selectedCellRange: CellRange | undefined;\n selRowIdxs: Set<number>;\n isAnySelected: boolean;\n isAllSelected: boolean;\n selectRows: (args: SelectRowsOptions) => void;\n selectAll: () => void;\n unselectAll: () => void;\n}\n\nexport const SelectionContext = createContext<SelectionContext | undefined>(\n undefined,\n);\n\nexport const useSelectionContext = () => {\n const c = useContext(SelectionContext);\n if (!c) {\n throw new Error(\"useSelectionContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAaO,MAAM,gBAAmB,GAAA,aAAA;AAAA,EAC9B,KAAA;AACF;AAEO,MAAM,sBAAsB,MAAM;AACvC,EAAM,MAAA,CAAA,GAAI,WAAW,gBAAgB,CAAA;AACrC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,+CAA+C,CAAA;AAAA;AAEjE,EAAO,OAAA,CAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SizingContext.js","sources":["../src/SizingContext.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\nimport { createContext, useContext } from \"react\";\n\nexport interface SizingContext {\n rowHeight: number;\n resizeColumn: (colIdx: number, width: number) => void;\n onResizeHandleMouseDown: (event: MouseEvent<HTMLDivElement>) => void;\n}\n\nexport const SizingContext = createContext<SizingContext | undefined>(\n undefined,\n);\nexport const useSizingContext = () => {\n const c = useContext(SizingContext);\n if (!c) {\n throw new Error(\"useSizingContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AASO,MAAM,aAAgB,GAAA,aAAA;AAAA,EAC3B,KAAA
|
|
1
|
+
{"version":3,"file":"SizingContext.js","sources":["../src/SizingContext.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\nimport { createContext, useContext } from \"react\";\n\nexport interface SizingContext {\n rowHeight: number;\n resizeColumn: (colIdx: number, width: number) => void;\n onResizeHandleMouseDown: (event: MouseEvent<HTMLDivElement>) => void;\n}\n\nexport const SizingContext = createContext<SizingContext | undefined>(\n undefined,\n);\nexport const useSizingContext = () => {\n const c = useContext(SizingContext);\n if (!c) {\n throw new Error(\"useSizingContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AASO,MAAM,aAAgB,GAAA,aAAA;AAAA,EAC3B,KAAA;AACF;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAI,WAAW,aAAa,CAAA;AAClC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,4CAA4C,CAAA;AAAA;AAE9D,EAAO,OAAA,CAAA;AACT;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var css_248z = ".saltGridTextCellEditor
|
|
1
|
+
var css_248z = ".saltGridTextCellEditor-inputContainer {\n background: var(--grid-background);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-sizing: border-box;\n border-style: var(--grid-cursor-border-style);\n border-width: var(--grid-cursor-border-width);\n border-color: var(--grid-cursor-borderColor);\n padding: 0;\n}\n\n.saltGridTextCellEditor input {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n outline: none;\n border: none;\n padding: 0 calc(var(--grid-padding) - 2px);\n font-size: var(--grid-fontSize);\n font-family: inherit;\n background: var(--grid-editableCell-background-active);\n color: var(--grid-editableCell-color-active);\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
4
|
//# sourceMappingURL=TextCellEditor.css.js.map
|
|
@@ -60,24 +60,20 @@ function TextCellEditor(props) {
|
|
|
60
60
|
document == null ? void 0 : document.removeEventListener("mousedown", focusOut, true);
|
|
61
61
|
};
|
|
62
62
|
}, [endEditMode, editorText]);
|
|
63
|
-
return /* @__PURE__ */ jsxs(CellFrame, {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}),
|
|
78
|
-
/* @__PURE__ */ jsx(CornerTag, {})
|
|
79
|
-
]
|
|
80
|
-
});
|
|
63
|
+
return /* @__PURE__ */ jsxs(CellFrame, { separator: column == null ? void 0 : column.separator, className: withBaseName(), children: [
|
|
64
|
+
/* @__PURE__ */ jsx("div", { className: withBaseName("inputContainer"), children: /* @__PURE__ */ jsx(
|
|
65
|
+
"input",
|
|
66
|
+
{
|
|
67
|
+
"data-testid": "grid-cell-editor-input",
|
|
68
|
+
ref: inputRef,
|
|
69
|
+
autoFocus: true,
|
|
70
|
+
value: editorText,
|
|
71
|
+
onChange,
|
|
72
|
+
onKeyDown
|
|
73
|
+
}
|
|
74
|
+
) }),
|
|
75
|
+
/* @__PURE__ */ jsx(CornerTag, {})
|
|
76
|
+
] });
|
|
81
77
|
}
|
|
82
78
|
|
|
83
79
|
export { TextCellEditor };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextCellEditor.js","sources":["../src/TextCellEditor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n type ChangeEventHandler,\n type KeyboardEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { useEditorContext } from \"./EditorContext\";\nimport type { GridColumnModel, GridRowModel } from \"./Grid\";\n\nimport textCellEditorCss from \"./TextCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTextCellEditor\");\n\nexport interface TextCellEditorProps<T> {\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function TextCellEditor<T>(props: TextCellEditorProps<T>) {\n const { column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-text-cell-editor\",\n css: textCellEditorCss,\n window: targetWindow,\n });\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { endEditMode, cancelEditMode, initialText } = useEditorContext();\n\n const [editorText, setEditorText] = useState<string>(\n initialText != null ? initialText : column!.info.props.getValue!(row!.data),\n );\n\n const initialSelectionRef = useRef(!!initialText);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n setEditorText(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n endEditMode(editorText);\n return;\n }\n if (event.key === \"Escape\") {\n cancelEditMode();\n return;\n }\n if (event.key === \"Tab\") {\n endEditMode(editorText);\n event.preventDefault();\n return;\n }\n event.stopPropagation();\n };\n\n useEffect(() => {\n if (inputRef.current && !initialSelectionRef.current) {\n inputRef.current.select();\n initialSelectionRef.current = true;\n }\n }, [inputRef.current]);\n\n useEffect(() => {\n const input = inputRef.current;\n const focusOut = (event: FocusEvent) => {\n if (!input?.contains(event.target as Node)) {\n endEditMode(editorText);\n }\n };\n\n // This uses the capture phase to detect clicks outside the input to avoid a race condition where the component gets unmounted when edit mode ends.\n document?.addEventListener(\"mousedown\", focusOut, true);\n\n return () => {\n document?.removeEventListener(\"mousedown\", focusOut, true);\n };\n }, [endEditMode, editorText]);\n\n return (\n <CellFrame separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"inputContainer\")}>\n <input\n data-testid=\"grid-cell-editor-input\"\n ref={inputRef}\n autoFocus={true}\n value={editorText}\n onChange={onChange}\n onKeyDown={onKeyDown}\n />\n </div>\n <CornerTag />\n </CellFrame>\n );\n}\n"],"names":["textCellEditorCss"],"mappings":";;;;;;;;;;AAkBA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA
|
|
1
|
+
{"version":3,"file":"TextCellEditor.js","sources":["../src/TextCellEditor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n type ChangeEventHandler,\n type KeyboardEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { useEditorContext } from \"./EditorContext\";\nimport type { GridColumnModel, GridRowModel } from \"./Grid\";\n\nimport textCellEditorCss from \"./TextCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTextCellEditor\");\n\nexport interface TextCellEditorProps<T> {\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function TextCellEditor<T>(props: TextCellEditorProps<T>) {\n const { column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-text-cell-editor\",\n css: textCellEditorCss,\n window: targetWindow,\n });\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { endEditMode, cancelEditMode, initialText } = useEditorContext();\n\n const [editorText, setEditorText] = useState<string>(\n initialText != null ? initialText : column!.info.props.getValue!(row!.data),\n );\n\n const initialSelectionRef = useRef(!!initialText);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n setEditorText(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n endEditMode(editorText);\n return;\n }\n if (event.key === \"Escape\") {\n cancelEditMode();\n return;\n }\n if (event.key === \"Tab\") {\n endEditMode(editorText);\n event.preventDefault();\n return;\n }\n event.stopPropagation();\n };\n\n useEffect(() => {\n if (inputRef.current && !initialSelectionRef.current) {\n inputRef.current.select();\n initialSelectionRef.current = true;\n }\n }, [inputRef.current]);\n\n useEffect(() => {\n const input = inputRef.current;\n const focusOut = (event: FocusEvent) => {\n if (!input?.contains(event.target as Node)) {\n endEditMode(editorText);\n }\n };\n\n // This uses the capture phase to detect clicks outside the input to avoid a race condition where the component gets unmounted when edit mode ends.\n document?.addEventListener(\"mousedown\", focusOut, true);\n\n return () => {\n document?.removeEventListener(\"mousedown\", focusOut, true);\n };\n }, [endEditMode, editorText]);\n\n return (\n <CellFrame separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"inputContainer\")}>\n <input\n data-testid=\"grid-cell-editor-input\"\n ref={inputRef}\n autoFocus={true}\n value={editorText}\n onChange={onChange}\n onKeyDown={onKeyDown}\n />\n </div>\n <CornerTag />\n </CellFrame>\n );\n}\n"],"names":["textCellEditorCss"],"mappings":";;;;;;;;;;AAkBA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA;AAOnD,SAAS,eAAkB,KAA+B,EAAA;AAC/D,EAAM,MAAA,EAAE,MAAQ,EAAA,GAAA,EAAQ,GAAA,KAAA;AAExB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,MAAM,EAAE,WAAA,EAAa,cAAgB,EAAA,WAAA,KAAgB,gBAAiB,EAAA;AAEtE,EAAM,MAAA,CAAC,UAAY,EAAA,aAAa,CAAI,GAAA,QAAA;AAAA,IAClC,WAAA,IAAe,OAAO,WAAc,GAAA,MAAA,CAAQ,KAAK,KAAM,CAAA,QAAA,CAAU,IAAK,IAAI;AAAA,GAC5E;AAEA,EAAA,MAAM,mBAAsB,GAAA,MAAA,CAAO,CAAC,CAAC,WAAW,CAAA;AAEhD,EAAM,MAAA,QAAA,GAAiD,CAAC,CAAM,KAAA;AAC5D,IAAc,aAAA,CAAA,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,GAC9B;AAEA,EAAM,MAAA,SAAA,GAAoD,CAAC,KAAU,KAAA;AACnE,IAAI,IAAA,KAAA,CAAM,QAAQ,OAAS,EAAA;AACzB,MAAA,WAAA,CAAY,UAAU,CAAA;AACtB,MAAA;AAAA;AAEF,IAAI,IAAA,KAAA,CAAM,QAAQ,QAAU,EAAA;AAC1B,MAAe,cAAA,EAAA;AACf,MAAA;AAAA;AAEF,IAAI,IAAA,KAAA,CAAM,QAAQ,KAAO,EAAA;AACvB,MAAA,WAAA,CAAY,UAAU,CAAA;AACtB,MAAA,KAAA,CAAM,cAAe,EAAA;AACrB,MAAA;AAAA;AAEF,IAAA,KAAA,CAAM,eAAgB,EAAA;AAAA,GACxB;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,QAAS,CAAA,OAAA,IAAW,CAAC,mBAAA,CAAoB,OAAS,EAAA;AACpD,MAAA,QAAA,CAAS,QAAQ,MAAO,EAAA;AACxB,MAAA,mBAAA,CAAoB,OAAU,GAAA,IAAA;AAAA;AAChC,GACC,EAAA,CAAC,QAAS,CAAA,OAAO,CAAC,CAAA;AAErB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAQ,QAAS,CAAA,OAAA;AACvB,IAAM,MAAA,QAAA,GAAW,CAAC,KAAsB,KAAA;AACtC,MAAA,IAAI,EAAC,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,QAAS,CAAA,KAAA,CAAM,MAAiB,CAAA,CAAA,EAAA;AAC1C,QAAA,WAAA,CAAY,UAAU,CAAA;AAAA;AACxB,KACF;AAGA,IAAU,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,gBAAA,CAAiB,aAAa,QAAU,EAAA,IAAA,CAAA;AAElD,IAAA,OAAO,MAAM;AACX,MAAU,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,mBAAA,CAAoB,aAAa,QAAU,EAAA,IAAA,CAAA;AAAA,KACvD;AAAA,GACC,EAAA,CAAC,WAAa,EAAA,UAAU,CAAC,CAAA;AAE5B,EAAA,4BACG,SAAU,EAAA,EAAA,SAAA,EAAW,iCAAQ,SAAW,EAAA,SAAA,EAAW,cAClD,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,YAAa,CAAA,gBAAgB,CAC3C,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,aAAY,EAAA,wBAAA;AAAA,QACZ,GAAK,EAAA,QAAA;AAAA,QACL,SAAW,EAAA,IAAA;AAAA,QACX,KAAO,EAAA,UAAA;AAAA,QACP,QAAA;AAAA,QACA;AAAA;AAAA,KAEJ,EAAA,CAAA;AAAA,wBACC,SAAU,EAAA,EAAA;AAAA,GACb,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var css_248z = ".saltGridCellMeasure {\n position: fixed;\n top: -1000px;\n left: 0;\n}\n\n.saltGridCellMeasure
|
|
1
|
+
var css_248z = ".saltGridCellMeasure {\n position: fixed;\n top: -1000px;\n left: 0;\n}\n\n.saltGridCellMeasure tr {\n height: var(--grid-row-height);\n}\n\n.saltGridCellMeasure th {\n box-sizing: border-box;\n overflow: hidden;\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
4
|
//# sourceMappingURL=CellMeasure.css.js.map
|
|
@@ -25,20 +25,7 @@ function CellMeasure(props) {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
|
-
return /* @__PURE__ */ jsx("div", {
|
|
29
|
-
className: withBaseName(),
|
|
30
|
-
children: /* @__PURE__ */ jsx("table", {
|
|
31
|
-
"aria-hidden": true,
|
|
32
|
-
children: /* @__PURE__ */ jsx("thead", {
|
|
33
|
-
children: /* @__PURE__ */ jsx("tr", {
|
|
34
|
-
ref: rowRef,
|
|
35
|
-
children: /* @__PURE__ */ jsx("th", {
|
|
36
|
-
children: "Invisible Cell"
|
|
37
|
-
})
|
|
38
|
-
})
|
|
39
|
-
})
|
|
40
|
-
})
|
|
41
|
-
});
|
|
28
|
+
return /* @__PURE__ */ jsx("div", { className: withBaseName(), children: /* @__PURE__ */ jsx("table", { "aria-hidden": true, children: /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { ref: rowRef, children: /* @__PURE__ */ jsx("th", { children: "Invisible Cell" }) }) }) }) });
|
|
42
29
|
}
|
|
43
30
|
|
|
44
31
|
export { CellMeasure };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellMeasure.js","sources":["../src/internal/CellMeasure.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useEffect, useRef } from \"react\";\n\nimport cellMeasureCss from \"./CellMeasure.css\";\n\nconst withBaseName = makePrefixer(\"saltGridCellMeasure\");\n\nexport interface CellMeasureProps<T> {\n setRowHeight: (rowHeight: number) => void;\n}\n\n// Renders a cell in invisible location, measures its height and provides it to\n// the grid.\nexport function CellMeasure<T>(props: CellMeasureProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cell-measure\",\n css: cellMeasureCss,\n window: targetWindow,\n });\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n const heightRef = useRef<number>(-1);\n\n const { setRowHeight } = props;\n\n useEffect(() => {\n if (rowRef.current) {\n const height = rowRef.current.getBoundingClientRect().height;\n if (heightRef.current !== height) {\n // console.log(`Row height changing to ${height}px`);\n heightRef.current = height;\n setRowHeight(height);\n }\n }\n });\n\n return (\n <div className={withBaseName()}>\n <table aria-hidden>\n <thead>\n <tr ref={rowRef}>\n <th>Invisible Cell</th>\n </tr>\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["cellMeasureCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA
|
|
1
|
+
{"version":3,"file":"CellMeasure.js","sources":["../src/internal/CellMeasure.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useEffect, useRef } from \"react\";\n\nimport cellMeasureCss from \"./CellMeasure.css\";\n\nconst withBaseName = makePrefixer(\"saltGridCellMeasure\");\n\nexport interface CellMeasureProps<T> {\n setRowHeight: (rowHeight: number) => void;\n}\n\n// Renders a cell in invisible location, measures its height and provides it to\n// the grid.\nexport function CellMeasure<T>(props: CellMeasureProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cell-measure\",\n css: cellMeasureCss,\n window: targetWindow,\n });\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n const heightRef = useRef<number>(-1);\n\n const { setRowHeight } = props;\n\n useEffect(() => {\n if (rowRef.current) {\n const height = rowRef.current.getBoundingClientRect().height;\n if (heightRef.current !== height) {\n // console.log(`Row height changing to ${height}px`);\n heightRef.current = height;\n setRowHeight(height);\n }\n }\n });\n\n return (\n <div className={withBaseName()}>\n <table aria-hidden>\n <thead>\n <tr ref={rowRef}>\n <th>Invisible Cell</th>\n </tr>\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["cellMeasureCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA;AAQhD,SAAS,YAAe,KAA4B,EAAA;AACzD,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,EAAM,MAAA,MAAA,GAAS,OAA4B,IAAI,CAAA;AAC/C,EAAM,MAAA,SAAA,GAAY,OAAe,CAAE,CAAA,CAAA;AAEnC,EAAM,MAAA,EAAE,cAAiB,GAAA,KAAA;AAEzB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,OAAS,EAAA;AAClB,MAAA,MAAM,MAAS,GAAA,MAAA,CAAO,OAAQ,CAAA,qBAAA,EAAwB,CAAA,MAAA;AACtD,MAAI,IAAA,SAAA,CAAU,YAAY,MAAQ,EAAA;AAEhC,QAAA,SAAA,CAAU,OAAU,GAAA,MAAA;AACpB,QAAA,YAAA,CAAa,MAAM,CAAA;AAAA;AACrB;AACF,GACD,CAAA;AAED,EACE,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,YAAA,IACd,QAAC,kBAAA,GAAA,CAAA,OAAA,EAAA,EAAM,eAAW,IAChB,EAAA,QAAA,kBAAA,GAAA,CAAC,WACC,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAG,KAAK,MACP,EAAA,QAAA,kBAAA,GAAA,CAAC,QAAG,QAAc,EAAA,gBAAA,EAAA,CAAA,EACpB,CACF,EAAA,CAAA,EACF,CACF,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,40 +1,46 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
|
-
const CellWarningIcon = /* @__PURE__ */ jsx(
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
r: "4"
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const CellSuccessIcon = /* @__PURE__ */ jsx(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
3
|
+
const CellWarningIcon = /* @__PURE__ */ jsx(
|
|
4
|
+
"svg",
|
|
5
|
+
{
|
|
6
|
+
"aria-hidden": true,
|
|
7
|
+
height: "1em",
|
|
8
|
+
viewBox: "0 0 10 8",
|
|
9
|
+
fill: "none",
|
|
10
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
11
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4.6188 0L9.2376 8H0L4.6188 0Z" })
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
const CellErrorIcon = /* @__PURE__ */ jsx(
|
|
15
|
+
"svg",
|
|
16
|
+
{
|
|
17
|
+
"aria-hidden": true,
|
|
18
|
+
width: "1em",
|
|
19
|
+
height: "1em",
|
|
20
|
+
viewBox: "0 0 8 8",
|
|
21
|
+
fill: "none",
|
|
22
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
23
|
+
children: /* @__PURE__ */ jsx("circle", { cx: "4", cy: "4", r: "4" })
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
const CellSuccessIcon = /* @__PURE__ */ jsx(
|
|
27
|
+
"svg",
|
|
28
|
+
{
|
|
29
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
30
|
+
width: "1em",
|
|
31
|
+
viewBox: "0 0 14 14",
|
|
32
|
+
fill: "none",
|
|
33
|
+
children: /* @__PURE__ */ jsx(
|
|
34
|
+
"path",
|
|
35
|
+
{
|
|
36
|
+
fillRule: "evenodd",
|
|
37
|
+
clipRule: "evenodd",
|
|
38
|
+
d: "M13.7668 2.63645L5.06034 12.0309L0.277532 7.56074L1.47248 6.28223L4.97136 9.55242L12.4832 1.4469L13.7668 2.63645Z",
|
|
39
|
+
fill: "#24874B"
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
);
|
|
38
44
|
|
|
39
45
|
export { CellErrorIcon, CellSuccessIcon, CellWarningIcon };
|
|
40
46
|
//# sourceMappingURL=CellStatusIcons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellStatusIcons.js","sources":["../src/internal/CellStatusIcons.tsx"],"sourcesContent":["export const CellWarningIcon = (\n <svg\n aria-hidden\n height=\"1em\"\n viewBox=\"0 0 10 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.6188 0L9.2376 8H0L4.6188 0Z\" />\n </svg>\n);\n\nexport const CellErrorIcon = (\n <svg\n aria-hidden\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"4\" cy=\"4\" r=\"4\" />\n </svg>\n);\n\nexport const CellSuccessIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7668 2.63645L5.06034 12.0309L0.277532 7.56074L1.47248 6.28223L4.97136 9.55242L12.4832 1.4469L13.7668 2.63645Z\"\n fill=\"#24874B\"\n />\n </svg>\n);\n"],"names":[],"mappings":";;AAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"CellStatusIcons.js","sources":["../src/internal/CellStatusIcons.tsx"],"sourcesContent":["export const CellWarningIcon = (\n <svg\n aria-hidden\n height=\"1em\"\n viewBox=\"0 0 10 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.6188 0L9.2376 8H0L4.6188 0Z\" />\n </svg>\n);\n\nexport const CellErrorIcon = (\n <svg\n aria-hidden\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"4\" cy=\"4\" r=\"4\" />\n </svg>\n);\n\nexport const CellSuccessIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7668 2.63645L5.06034 12.0309L0.277532 7.56074L1.47248 6.28223L4.97136 9.55242L12.4832 1.4469L13.7668 2.63645Z\"\n fill=\"#24874B\"\n />\n </svg>\n);\n"],"names":[],"mappings":";;AAAO,MAAM,eACX,mBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,aAAW,EAAA,IAAA;AAAA,IACX,MAAO,EAAA,KAAA;AAAA,IACP,OAAQ,EAAA,UAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IACL,KAAM,EAAA,4BAAA;AAAA,IAEN,QAAA,kBAAA,GAAA,CAAC,MAAK,EAAA,EAAA,CAAA,EAAE,gCAAiC,EAAA;AAAA;AAC3C;AAGK,MAAM,aACX,mBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,aAAW,EAAA,IAAA;AAAA,IACX,KAAM,EAAA,KAAA;AAAA,IACN,MAAO,EAAA,KAAA;AAAA,IACP,OAAQ,EAAA,SAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IACL,KAAM,EAAA,4BAAA;AAAA,IAEN,8BAAC,QAAO,EAAA,EAAA,EAAA,EAAG,KAAI,EAAG,EAAA,GAAA,EAAI,GAAE,GAAI,EAAA;AAAA;AAC9B;AAGK,MAAM,eACX,mBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAM,EAAA,4BAAA;AAAA,IACN,KAAM,EAAA,KAAA;AAAA,IACN,OAAQ,EAAA,WAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IAEL,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAS,EAAA,SAAA;AAAA,QACT,QAAS,EAAA,SAAA;AAAA,QACT,CAAE,EAAA,mHAAA;AAAA,QACF,IAAK,EAAA;AAAA;AAAA;AACP;AACF;;;;"}
|
|
@@ -22,10 +22,7 @@ function ColumnDropTarget(props) {
|
|
|
22
22
|
if (props.x === void 0) {
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
|
-
return /* @__PURE__ */ jsx("div", {
|
|
26
|
-
className: withBaseName(),
|
|
27
|
-
style
|
|
28
|
-
});
|
|
25
|
+
return /* @__PURE__ */ jsx("div", { className: withBaseName(), style });
|
|
29
26
|
}
|
|
30
27
|
|
|
31
28
|
export { ColumnDropTarget };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnDropTarget.js","sources":["../src/internal/ColumnDropTarget.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useMemo } from \"react\";\n\nimport columDropTargetCss from \"./ColumnDropTarget.css\";\n\nconst withBaseName = makePrefixer(\"saltGridColumnDropTarget\");\n\nexport interface ColumnDropTargetProps {\n x?: number;\n}\n\n// When the user drags a column, this component is used to show the potential\n// drop target. Experimental feature. No UX yet.\nexport function ColumnDropTarget(props: ColumnDropTargetProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-column-drop-target\",\n css: columDropTargetCss,\n window: targetWindow,\n });\n\n const { x = 0 } = props;\n\n const style = useMemo(() => {\n return {\n left: `${x - 2}px`,\n };\n }, [x]);\n\n if (props.x === undefined) {\n return null;\n }\n\n return <div className={withBaseName()} style={style} />;\n}\n"],"names":["columDropTargetCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA
|
|
1
|
+
{"version":3,"file":"ColumnDropTarget.js","sources":["../src/internal/ColumnDropTarget.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useMemo } from \"react\";\n\nimport columDropTargetCss from \"./ColumnDropTarget.css\";\n\nconst withBaseName = makePrefixer(\"saltGridColumnDropTarget\");\n\nexport interface ColumnDropTargetProps {\n x?: number;\n}\n\n// When the user drags a column, this component is used to show the potential\n// drop target. Experimental feature. No UX yet.\nexport function ColumnDropTarget(props: ColumnDropTargetProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-column-drop-target\",\n css: columDropTargetCss,\n window: targetWindow,\n });\n\n const { x = 0 } = props;\n\n const style = useMemo(() => {\n return {\n left: `${x - 2}px`,\n };\n }, [x]);\n\n if (props.x === undefined) {\n return null;\n }\n\n return <div className={withBaseName()} style={style} />;\n}\n"],"names":["columDropTargetCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA;AAQrD,SAAS,iBAAiB,KAA8B,EAAA;AAC7D,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,yBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,EAAE,CAAI,GAAA,CAAA,EAAM,GAAA,KAAA;AAElB,EAAM,MAAA,KAAA,GAAQ,QAAQ,MAAM;AAC1B,IAAO,OAAA;AAAA,MACL,IAAA,EAAM,CAAG,EAAA,CAAA,GAAI,CAAC,CAAA,EAAA;AAAA,KAChB;AAAA,GACF,EAAG,CAAC,CAAC,CAAC,CAAA;AAEN,EAAI,IAAA,KAAA,CAAM,MAAM,KAAW,CAAA,EAAA;AACzB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBAAQ,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,YAAA,IAAgB,KAAc,EAAA,CAAA;AACvD;;;;"}
|
|
@@ -25,30 +25,20 @@ function ColumnGhost(props) {
|
|
|
25
25
|
left: x,
|
|
26
26
|
top: y
|
|
27
27
|
};
|
|
28
|
-
return /* @__PURE__ */ jsx("div", {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
/* @__PURE__ */ jsx(TableBody, {
|
|
43
|
-
columns: [movingColumn],
|
|
44
|
-
rows,
|
|
45
|
-
setHoverRowKey: () => {
|
|
46
|
-
},
|
|
47
|
-
zebra
|
|
48
|
-
})
|
|
49
|
-
]
|
|
50
|
-
})
|
|
51
|
-
});
|
|
28
|
+
return /* @__PURE__ */ jsx("div", { className: withBaseName(), style, children: /* @__PURE__ */ jsxs("table", { "aria-hidden": true, children: [
|
|
29
|
+
/* @__PURE__ */ jsx(TableColGroup, { columns: [movingColumn] }),
|
|
30
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx(HeaderRow, { columns: [movingColumn] }) }),
|
|
31
|
+
/* @__PURE__ */ jsx(
|
|
32
|
+
TableBody,
|
|
33
|
+
{
|
|
34
|
+
columns: [movingColumn],
|
|
35
|
+
rows,
|
|
36
|
+
setHoverRowKey: () => {
|
|
37
|
+
},
|
|
38
|
+
zebra
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
] }) });
|
|
52
42
|
}
|
|
53
43
|
|
|
54
44
|
export { ColumnGhost };
|
|
@@ -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\";\n\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableBody } from \"./TableBody\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport type { ColumnDragState } from \"./gridHooks\";\n\nimport columnGhostCss from \"./ColumnGhost.css\";\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":";;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA
|
|
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\";\n\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableBody } from \"./TableBody\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport type { ColumnDragState } from \"./gridHooks\";\n\nimport columnGhostCss from \"./ColumnGhost.css\";\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":";;;;;;;;;AAcA,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;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cursor.js","sources":["../src/internal/Cursor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cursorCss from \"./Cursor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridCursor\");\n\n// This is probably obsolete. Cursor is rendered using cell borders now.\nexport function Cursor() {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cursor\",\n css: cursorCss,\n window: targetWindow,\n });\n\n return <div className={withBaseName()} />;\n}\n"],"names":["cursorCss"],"mappings":";;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,gBAAgB,CAAA
|
|
1
|
+
{"version":3,"file":"Cursor.js","sources":["../src/internal/Cursor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cursorCss from \"./Cursor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridCursor\");\n\n// This is probably obsolete. Cursor is rendered using cell borders now.\nexport function Cursor() {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cursor\",\n css: cursorCss,\n window: targetWindow,\n });\n\n return <div className={withBaseName()} />;\n}\n"],"names":["cursorCss"],"mappings":";;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,gBAAgB,CAAA;AAG3C,SAAS,MAAS,GAAA;AACvB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,aAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,uBAAQ,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,YAAA,EAAgB,EAAA,CAAA;AACzC;;;;"}
|
|
@@ -14,12 +14,15 @@ function DefaultCellValue(props) {
|
|
|
14
14
|
css: css_248z,
|
|
15
15
|
window: targetWindow
|
|
16
16
|
});
|
|
17
|
-
return /* @__PURE__ */ jsx(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
"div",
|
|
19
|
+
{
|
|
20
|
+
className: clsx(withBaseName(), {
|
|
21
|
+
[withBaseName("alignRight")]: props.column.info.props.align === "right"
|
|
22
|
+
}),
|
|
23
|
+
children: value
|
|
24
|
+
}
|
|
25
|
+
);
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
export { DefaultCellValue };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultCellValue.js","sources":["../src/internal/DefaultCellValue.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 { ReactNode } from \"react\";\n\nimport type { GridCellValueProps } from \"../GridColumn\";\n\nimport defaultCellValueCss from \"./DefaultCellValue.css\";\n\nconst withBaseName = makePrefixer(\"saltGridDefaultCellValue\");\n\n// Default component for cell value wrappers. Rendered as a child of cell\n// components (<td>s)\nexport function DefaultCellValue<T>(props: GridCellValueProps<T>) {\n const { value } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-default-cell-value\",\n css: defaultCellValueCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"alignRight\")]: props.column.info.props.align === \"right\",\n })}\n >\n {value as ReactNode}\n </div>\n );\n}\n"],"names":["defaultCellValueCss"],"mappings":";;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA
|
|
1
|
+
{"version":3,"file":"DefaultCellValue.js","sources":["../src/internal/DefaultCellValue.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 { ReactNode } from \"react\";\n\nimport type { GridCellValueProps } from \"../GridColumn\";\n\nimport defaultCellValueCss from \"./DefaultCellValue.css\";\n\nconst withBaseName = makePrefixer(\"saltGridDefaultCellValue\");\n\n// Default component for cell value wrappers. Rendered as a child of cell\n// components (<td>s)\nexport function DefaultCellValue<T>(props: GridCellValueProps<T>) {\n const { value } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-default-cell-value\",\n css: defaultCellValueCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"alignRight\")]: props.column.info.props.align === \"right\",\n })}\n >\n {value as ReactNode}\n </div>\n );\n}\n"],"names":["defaultCellValueCss"],"mappings":";;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA;AAIrD,SAAS,iBAAoB,KAA8B,EAAA;AAChE,EAAM,MAAA,EAAE,OAAU,GAAA,KAAA;AAElB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,yBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,aAAa,YAAY,CAAC,GAAG,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,KAAU,KAAA;AAAA,OACjE,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;;;;"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
3
|
-
import { useWindow } from '@salt-ds/window';
|
|
4
2
|
import { CellFrame } from '../CellFrame.js';
|
|
5
|
-
import css_248z from './FakeCell.css.js';
|
|
6
3
|
|
|
7
4
|
function FakeCell(props) {
|
|
8
5
|
const { row } = props;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"data-row-index": row.index,
|
|
18
|
-
"data-column-index": -1
|
|
19
|
-
});
|
|
6
|
+
return /* @__PURE__ */ jsx(
|
|
7
|
+
CellFrame,
|
|
8
|
+
{
|
|
9
|
+
className: "saltGridFakeCell",
|
|
10
|
+
"data-row-index": row.index,
|
|
11
|
+
"data-column-index": -1
|
|
12
|
+
}
|
|
13
|
+
);
|
|
20
14
|
}
|
|
21
15
|
|
|
22
16
|
export { FakeCell };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeCell.js","sources":["../src/internal/FakeCell.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"FakeCell.js","sources":["../src/internal/FakeCell.tsx"],"sourcesContent":["import { CellFrame } from \"../CellFrame\";\nimport type { GridCellProps } from \"../GridColumn\";\n\nexport type FakeCellProps<T> = Pick<GridCellProps<T>, \"row\">;\n\n// When there is unused space (total width of all columns is less than the\n// available client width of the grid) a column with fake cells is rendered to\n// fill this space. Zebra and row selection/hover highlighting is applied to\n// this column. Fake cells can't have keyboard focus or render any values.\nexport function FakeCell<T>(props: FakeCellProps<T>) {\n const { row } = props;\n\n return (\n <CellFrame\n className=\"saltGridFakeCell\"\n data-row-index={row.index}\n data-column-index={-1}\n />\n );\n}\n"],"names":[],"mappings":";;;AASO,SAAS,SAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,EAAE,KAAQ,GAAA,KAAA;AAEhB,EACE,uBAAA,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAU,EAAA,kBAAA;AAAA,MACV,kBAAgB,GAAI,CAAA,KAAA;AAAA,MACpB,mBAAmB,EAAA,CAAA;AAAA;AAAA,GACrB;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeGroupCell.js","sources":["../src/internal/FakeGroupCell.tsx"],"sourcesContent":["export function FakeGroupCell() {\n return <th />;\n}\n"],"names":[],"mappings":";;AAAO,SAAS,aAAgB,GAAA;AAC9B,EAAA,2BAAQ,IAAG,EAAA,EAAA,CAAA
|
|
1
|
+
{"version":3,"file":"FakeGroupCell.js","sources":["../src/internal/FakeGroupCell.tsx"],"sourcesContent":["export function FakeGroupCell() {\n return <th />;\n}\n"],"names":[],"mappings":";;AAAO,SAAS,aAAgB,GAAA;AAC9B,EAAA,2BAAQ,IAAG,EAAA,EAAA,CAAA;AACb;;;;"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
3
|
function FakeHeaderCell() {
|
|
4
|
-
return /* @__PURE__ */ jsx("th", {
|
|
5
|
-
"data-testid": "grid-fake-column-header"
|
|
6
|
-
});
|
|
4
|
+
return /* @__PURE__ */ jsx("th", { "data-testid": "grid-fake-column-header" });
|
|
7
5
|
}
|
|
8
6
|
|
|
9
7
|
export { FakeHeaderCell };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeHeaderCell.js","sources":["../src/internal/FakeHeaderCell.tsx"],"sourcesContent":["// See FakeCell.tsx\nexport function FakeHeaderCell() {\n return <th data-testid=\"grid-fake-column-header\" />;\n}\n"],"names":[],"mappings":";;AACO,SAAS,cAAiB,GAAA;AAC/B,
|
|
1
|
+
{"version":3,"file":"FakeHeaderCell.js","sources":["../src/internal/FakeHeaderCell.tsx"],"sourcesContent":["// See FakeCell.tsx\nexport function FakeHeaderCell() {\n return <th data-testid=\"grid-fake-column-header\" />;\n}\n"],"names":[],"mappings":";;AACO,SAAS,cAAiB,GAAA;AAC/B,EAAO,uBAAA,GAAA,CAAC,IAAG,EAAA,EAAA,aAAA,EAAY,yBAA0B,EAAA,CAAA;AACnD;;;;"}
|
|
@@ -19,23 +19,14 @@ function GroupHeaderRow(props) {
|
|
|
19
19
|
if (groups.length === 0) {
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
|
-
return /* @__PURE__ */ jsxs("tr", {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
group,
|
|
31
|
-
children: /* @__PURE__ */ jsx(CellValue, {
|
|
32
|
-
group
|
|
33
|
-
})
|
|
34
|
-
}, group.data.id);
|
|
35
|
-
}),
|
|
36
|
-
gap !== void 0 && gap > 0 ? /* @__PURE__ */ jsx(FakeGroupCell, {}) : null
|
|
37
|
-
]
|
|
38
|
-
});
|
|
22
|
+
return /* @__PURE__ */ jsxs("tr", { className: withBaseName(), children: [
|
|
23
|
+
groups.map((group) => {
|
|
24
|
+
const Cell = group.data.headerComponent || GroupHeaderCell;
|
|
25
|
+
const CellValue = group.data.headerValueComponent || GroupHeaderCellValue;
|
|
26
|
+
return /* @__PURE__ */ jsx(Cell, { group, children: /* @__PURE__ */ jsx(CellValue, { group }) }, group.data.id);
|
|
27
|
+
}),
|
|
28
|
+
gap !== void 0 && gap > 0 ? /* @__PURE__ */ jsx(FakeGroupCell, {}) : null
|
|
29
|
+
] });
|
|
39
30
|
}
|
|
40
31
|
|
|
41
32
|
export { GroupHeaderRow };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupHeaderRow.js","sources":["../src/internal/GroupHeaderRow.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport type { GridColumnGroupModel } from \"../Grid\";\nimport { GroupHeaderCell } from \"../GroupHeaderCell\";\nimport { GroupHeaderCellValue } from \"../GroupHeaderCellValue\";\n\nimport { FakeGroupCell } from \"./FakeGroupCell\";\n\nimport groupHeaderRowCss from \"./GroupHeaderRow.css\";\n\nconst withBaseName = makePrefixer(\"saltGridGroupHeaderRow\");\n\nexport interface GroupHeaderRowProps<T> {\n groups: GridColumnGroupModel[];\n gap?: number;\n}\n\nexport function GroupHeaderRow<T>(props: GroupHeaderRowProps<T>) {\n const { groups, gap } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-group-header-row\",\n css: groupHeaderRowCss,\n window: targetWindow,\n });\n\n if (groups.length === 0) {\n return null;\n }\n return (\n <tr className={withBaseName()}
|
|
1
|
+
{"version":3,"file":"GroupHeaderRow.js","sources":["../src/internal/GroupHeaderRow.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport type { GridColumnGroupModel } from \"../Grid\";\nimport { GroupHeaderCell } from \"../GroupHeaderCell\";\nimport { GroupHeaderCellValue } from \"../GroupHeaderCellValue\";\n\nimport { FakeGroupCell } from \"./FakeGroupCell\";\n\nimport groupHeaderRowCss from \"./GroupHeaderRow.css\";\n\nconst withBaseName = makePrefixer(\"saltGridGroupHeaderRow\");\n\nexport interface GroupHeaderRowProps<T> {\n groups: GridColumnGroupModel[];\n gap?: number;\n}\n\nexport function GroupHeaderRow<T>(props: GroupHeaderRowProps<T>) {\n const { groups, gap } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-group-header-row\",\n css: groupHeaderRowCss,\n window: targetWindow,\n });\n\n if (groups.length === 0) {\n return null;\n }\n return (\n <tr className={withBaseName()}>\n {groups.map((group) => {\n const Cell = group.data.headerComponent || GroupHeaderCell;\n const CellValue =\n group.data.headerValueComponent || GroupHeaderCellValue;\n return (\n <Cell key={group.data.id} group={group}>\n <CellValue group={group} />\n </Cell>\n );\n })}\n {gap !== undefined && gap > 0 ? <FakeGroupCell /> : null}\n </tr>\n );\n}\n"],"names":["groupHeaderRowCss"],"mappings":";;;;;;;;;AAYA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA;AAOnD,SAAS,eAAkB,KAA+B,EAAA;AAC/D,EAAM,MAAA,EAAE,MAAQ,EAAA,GAAA,EAAQ,GAAA,KAAA;AAExB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAA,MAAA,CAAO,WAAW,CAAG,EAAA;AACvB,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,uBACG,IAAA,CAAA,IAAA,EAAA,EAAG,SAAW,EAAA,YAAA,EACZ,EAAA,QAAA,EAAA;AAAA,IAAO,MAAA,CAAA,GAAA,CAAI,CAAC,KAAU,KAAA;AACrB,MAAM,MAAA,IAAA,GAAO,KAAM,CAAA,IAAA,CAAK,eAAmB,IAAA,eAAA;AAC3C,MAAM,MAAA,SAAA,GACJ,KAAM,CAAA,IAAA,CAAK,oBAAwB,IAAA,oBAAA;AACrC,MACE,uBAAA,GAAA,CAAC,QAAyB,KACxB,EAAA,QAAA,kBAAA,GAAA,CAAC,aAAU,KAAc,EAAA,CAAA,EAAA,EADhB,KAAM,CAAA,IAAA,CAAK,EAEtB,CAAA;AAAA,KAEH,CAAA;AAAA,IACA,QAAQ,KAAa,CAAA,IAAA,GAAA,GAAM,CAAI,mBAAA,GAAA,CAAC,iBAAc,CAAK,GAAA;AAAA,GACtD,EAAA,CAAA;AAEJ;;;;"}
|