@clickhouse/click-ui 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-ui.css +362 -0
- package/dist/cjs/components/Assets/Icons/Horizontal-Loading.cjs +13 -49
- package/dist/cjs/components/Assets/Icons/Horizontal-Loading.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Loaders.css +94 -0
- package/dist/cjs/components/Assets/Icons/Loaders.module.css.cjs +13 -0
- package/dist/cjs/components/Assets/Icons/Loaders.module.css.cjs.map +1 -0
- package/dist/cjs/components/Assets/Icons/Loading-Animated.cjs +8 -12
- package/dist/cjs/components/Assets/Icons/Loading-Animated.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Loading.cjs +13 -6
- package/dist/cjs/components/Assets/Icons/Loading.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DateRangePicker.cjs +12 -2
- package/dist/cjs/components/DatePicker/DateRangePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/index.cjs +1 -3
- package/dist/cjs/components/DatePicker/index.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/utils.cjs +3 -0
- package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
- package/dist/cjs/components/Grid/Cell.cjs +1 -3
- package/dist/cjs/components/Grid/Cell.cjs.map +1 -1
- package/dist/cjs/components/Grid/ColumnResizer.cjs +18 -15
- package/dist/cjs/components/Grid/ColumnResizer.cjs.map +1 -1
- package/dist/cjs/components/Grid/ColumnResizer.css +22 -0
- package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs +11 -0
- package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs.map +1 -0
- package/dist/cjs/components/Grid/Grid.css +34 -0
- package/dist/cjs/components/Grid/Grid.module.css.cjs +21 -0
- package/dist/cjs/components/Grid/Grid.module.css.cjs.map +1 -0
- package/dist/cjs/components/Grid/Header.cjs +22 -43
- package/dist/cjs/components/Grid/Header.cjs.map +1 -1
- package/dist/cjs/components/Grid/Header.css +44 -0
- package/dist/cjs/components/Grid/Header.module.css.cjs +19 -0
- package/dist/cjs/components/Grid/Header.module.css.cjs.map +1 -0
- package/dist/cjs/components/Grid/RowNumberColumn.cjs +12 -29
- package/dist/cjs/components/Grid/RowNumberColumn.cjs.map +1 -1
- package/dist/cjs/components/Grid/RowNumberColumn.css +22 -0
- package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs +12 -0
- package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs.map +1 -0
- package/dist/cjs/components/Grid/StyledCell.cjs +84 -56
- package/dist/cjs/components/Grid/StyledCell.cjs.map +1 -1
- package/dist/cjs/components/Grid/StyledCell.css +146 -0
- package/dist/cjs/components/Grid/StyledCell.module.css.cjs +47 -0
- package/dist/cjs/components/Grid/StyledCell.module.css.cjs.map +1 -0
- package/dist/cjs/components/Grid/index.cjs +30 -30
- package/dist/cjs/components/Grid/index.cjs.map +1 -1
- package/dist/esm/click-ui.css +362 -0
- package/dist/esm/components/Assets/Icons/Horizontal-Loading.js +13 -49
- package/dist/esm/components/Assets/Icons/Horizontal-Loading.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Loaders.css +94 -0
- package/dist/esm/components/Assets/Icons/Loaders.module.css.js +8 -0
- package/dist/esm/components/Assets/Icons/Loaders.module.css.js.map +1 -0
- package/dist/esm/components/Assets/Icons/Loading-Animated.js +9 -13
- package/dist/esm/components/Assets/Icons/Loading-Animated.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Loading.js +13 -6
- package/dist/esm/components/Assets/Icons/Loading.js.map +1 -1
- package/dist/esm/components/Assets/Icons/system/IconsLight.js +2 -2
- package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
- package/dist/esm/components/DatePicker/DateRangePicker.js +14 -4
- package/dist/esm/components/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/index.js +2 -4
- package/dist/esm/components/DatePicker/index.js.map +1 -1
- package/dist/esm/components/DatePicker/utils.js +3 -1
- package/dist/esm/components/DatePicker/utils.js.map +1 -1
- package/dist/esm/components/Grid/Cell.js +1 -3
- package/dist/esm/components/Grid/Cell.js.map +1 -1
- package/dist/esm/components/Grid/ColumnResizer.css +22 -0
- package/dist/esm/components/Grid/ColumnResizer.js +18 -15
- package/dist/esm/components/Grid/ColumnResizer.js.map +1 -1
- package/dist/esm/components/Grid/ColumnResizer.module.css.js +7 -0
- package/dist/esm/components/Grid/ColumnResizer.module.css.js.map +1 -0
- package/dist/esm/components/Grid/Grid.css +34 -0
- package/dist/esm/components/Grid/Grid.module.css.js +13 -0
- package/dist/esm/components/Grid/Grid.module.css.js.map +1 -0
- package/dist/esm/components/Grid/Header.css +44 -0
- package/dist/esm/components/Grid/Header.js +22 -43
- package/dist/esm/components/Grid/Header.js.map +1 -1
- package/dist/esm/components/Grid/Header.module.css.js +13 -0
- package/dist/esm/components/Grid/Header.module.css.js.map +1 -0
- package/dist/esm/components/Grid/RowNumberColumn.css +22 -0
- package/dist/esm/components/Grid/RowNumberColumn.js +12 -29
- package/dist/esm/components/Grid/RowNumberColumn.js.map +1 -1
- package/dist/esm/components/Grid/RowNumberColumn.module.css.js +8 -0
- package/dist/esm/components/Grid/RowNumberColumn.module.css.js.map +1 -0
- package/dist/esm/components/Grid/StyledCell.css +146 -0
- package/dist/esm/components/Grid/StyledCell.js +84 -56
- package/dist/esm/components/Grid/StyledCell.js.map +1 -1
- package/dist/esm/components/Grid/StyledCell.module.css.js +32 -0
- package/dist/esm/components/Grid/StyledCell.module.css.js.map +1 -0
- package/dist/esm/components/Grid/index.js +30 -30
- package/dist/esm/components/Grid/index.js.map +1 -1
- package/dist/types/components/Assets/Icons/Horizontal-Loading.d.ts +2 -3
- package/dist/types/components/Assets/Icons/Loading-Animated.d.ts +2 -3
- package/dist/types/components/Assets/Icons/Loading.d.ts +2 -4
- package/dist/types/components/DatePicker/DateRangePicker.d.ts +2 -1
- package/dist/types/components/DatePicker/utils.d.ts +1 -0
- package/dist/types/components/Grid/RowNumberColumn.d.ts +1 -2
- package/dist/types/components/Grid/StyledCell.d.ts +10 -5
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const grid = "grid__h49fk";
|
|
2
|
+
const grid_bordered = "grid_bordered__kFqF5";
|
|
3
|
+
const grid__inner = "grid__inner__IZhj9";
|
|
4
|
+
const grid__data = "grid__data__Mn4TK";
|
|
5
|
+
const styles = {
|
|
6
|
+
grid: grid,
|
|
7
|
+
grid_bordered: grid_bordered,
|
|
8
|
+
grid__inner: grid__inner,
|
|
9
|
+
grid__data: grid__data
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { styles as default, grid, grid__data, grid__inner, grid_bordered };
|
|
13
|
+
//# sourceMappingURL=Grid.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Grid.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. selectDirect) */
|
|
2
|
+
|
|
3
|
+
.header__hXzAE {
|
|
4
|
+
display: flex;
|
|
5
|
+
position: sticky;
|
|
6
|
+
top: 0;
|
|
7
|
+
left: 0;
|
|
8
|
+
height: var(--header-height);
|
|
9
|
+
flex-direction: row;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.header_scrolled-vertical__mIp2- {
|
|
13
|
+
box-shadow: 0 0 0 1px var(--click-grid-header-cell-color-stroke-default);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.header__scroll-area__Nok8G {
|
|
17
|
+
position: relative;
|
|
18
|
+
left: var(--header-scroll-area-left);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.header__cell__ZCE9p {
|
|
22
|
+
display: flex;
|
|
23
|
+
position: absolute;
|
|
24
|
+
left: var(--header-cell-left);
|
|
25
|
+
width: var(--header-cell-width);
|
|
26
|
+
height: var(--header-cell-height);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.header__cell__ZCE9p:hover [data-resize] {
|
|
30
|
+
background: var(--click-grid-header-cell-color-stroke-selectDirect);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* the sticky "select all" corner extends a header cell (styled(HeaderCellContainer)) */
|
|
34
|
+
.header__row-column__ceu5w {
|
|
35
|
+
position: sticky;
|
|
36
|
+
top: 0;
|
|
37
|
+
left: 0;
|
|
38
|
+
width: var(--header-cell-width);
|
|
39
|
+
text-align: right;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.header__row-column_scrolled-horizontal__QZO4p {
|
|
43
|
+
box-shadow: 0 0 0 1px var(--click-grid-header-cell-color-stroke-default);
|
|
44
|
+
}
|
|
@@ -1,50 +1,17 @@
|
|
|
1
|
+
import "./Header.css";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
+
import { cn } from '../../lib/cva.js';
|
|
4
|
+
import styles from './Header.module.css.js';
|
|
3
5
|
import { StyledCell } from './StyledCell.js';
|
|
4
6
|
import ColumnResizer from './ColumnResizer.js';
|
|
5
7
|
|
|
6
|
-
const
|
|
7
|
-
componentId: "sc-1oadqc8-0"
|
|
8
|
-
})(["position:sticky;top:0;left:0;display:flex;flex-direction:row;height:", "px;", ""], ({
|
|
9
|
-
$height
|
|
10
|
-
}) => $height, ({
|
|
11
|
-
$scrolledVertical,
|
|
12
|
-
theme
|
|
13
|
-
}) => $scrolledVertical ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};` : "");
|
|
14
|
-
const ScrollableHeaderContainer = styled.div.withConfig({
|
|
15
|
-
componentId: "sc-1oadqc8-1"
|
|
16
|
-
})(["position:relative;left:", "px;"], ({
|
|
17
|
-
$left
|
|
18
|
-
}) => $left);
|
|
19
|
-
const HeaderCellContainer = styled.div.withConfig({
|
|
20
|
-
componentId: "sc-1oadqc8-2"
|
|
21
|
-
})(["position:absolute;display:flex;width:", ";height:", "px;left:", "px;&:hover [data-resize]{background:", ";}"], ({
|
|
22
|
-
$width
|
|
23
|
-
}) => typeof $width === "string" ? $width : `${$width}px`, ({
|
|
24
|
-
$height
|
|
25
|
-
}) => $height, ({
|
|
26
|
-
$columnPosition
|
|
27
|
-
}) => $columnPosition, ({
|
|
28
|
-
theme
|
|
29
|
-
}) => theme.click.grid.header.cell.color.stroke.selectDirect);
|
|
30
|
-
const RowColumnContainer = styled(HeaderCellContainer).withConfig({
|
|
31
|
-
componentId: "sc-1oadqc8-3"
|
|
32
|
-
})(["position:sticky;top:0;left:0;width:", ";text-align:right;", ""], ({
|
|
33
|
-
$width
|
|
34
|
-
}) => typeof $width === "string" ? $width : `${$width}px`, ({
|
|
35
|
-
$scrolledHorizontal,
|
|
36
|
-
theme
|
|
37
|
-
}) => $scrolledHorizontal ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};` : "");
|
|
38
|
-
const RowColumn = styled(StyledCell).withConfig({
|
|
39
|
-
componentId: "sc-1oadqc8-4"
|
|
40
|
-
})(["width:100%;text-align:right;overflow:hidden;"]);
|
|
8
|
+
const toCssSize = ($width) => typeof $width === "string" ? $width : `${$width}px`;
|
|
41
9
|
const Column = ({
|
|
42
10
|
columnIndex,
|
|
43
11
|
cell,
|
|
44
12
|
getColumnWidth,
|
|
45
13
|
getColumnHorizontalPosition,
|
|
46
14
|
getSelectionType,
|
|
47
|
-
isFirstColumn,
|
|
48
15
|
isLastColumn,
|
|
49
16
|
onColumnResize,
|
|
50
17
|
height,
|
|
@@ -64,8 +31,12 @@ const Column = ({
|
|
|
64
31
|
const isSelected = selectionType === "selectDirect";
|
|
65
32
|
const isSelectedLeft = (leftSelectionType === "selectDirect" || isSelected) && leftSelectionType !== selectionType;
|
|
66
33
|
const columnWidth = getColumnWidth(columnIndex);
|
|
67
|
-
return /* @__PURE__ */ jsxs(
|
|
68
|
-
|
|
34
|
+
return /* @__PURE__ */ jsxs("div", { className: styles["header__cell"], style: {
|
|
35
|
+
"--header-cell-width": toCssSize(columnWidth),
|
|
36
|
+
"--header-cell-height": `${height}px`,
|
|
37
|
+
"--header-cell-left": `${columnPosition}px`
|
|
38
|
+
}, "data-header": columnIndex, children: [
|
|
39
|
+
/* @__PURE__ */ jsx(StyledCell, { $type: "header", as: cell, columnIndex, type: "header-cell", $selectionType: selectionType, $isLastColumn: isLastColumn, $isFocused: false, $isSelectedLeft: isSelectedLeft, $isSelectedTop: isSelected, $isLastRow: false, $height: height, "data-grid-row": -1, "data-grid-column": columnIndex, "data-selected": isSelected, $showBorder: showBorder, width: columnWidth }),
|
|
69
40
|
/* @__PURE__ */ jsx(ColumnResizer, { height, onColumnResize, columnIndex, getResizerPosition, columnWidth, resizingState })
|
|
70
41
|
] });
|
|
71
42
|
};
|
|
@@ -90,11 +61,19 @@ const Header = ({
|
|
|
90
61
|
const selectedAllType = getSelectionType({
|
|
91
62
|
type: "all"
|
|
92
63
|
});
|
|
93
|
-
return /* @__PURE__ */ jsxs(
|
|
94
|
-
|
|
64
|
+
return /* @__PURE__ */ jsxs("div", { className: cn(styles["header"], scrolledVertical && styles["header_scrolled-vertical"]), style: {
|
|
65
|
+
"--header-height": `${height}px`
|
|
66
|
+
}, children: [
|
|
67
|
+
/* @__PURE__ */ jsx("div", { className: styles["header__scroll-area"], style: {
|
|
68
|
+
"--header-scroll-area-left": `${rowNumberWidth}px`
|
|
69
|
+
}, children: Array.from({
|
|
95
70
|
length: maxColumn - minColumn + 1
|
|
96
|
-
}, (_, index) => minColumn + index).map((columnIndex) => /* @__PURE__ */ jsx(Column, { getSelectionType, columnIndex, getColumnWidth, getColumnHorizontalPosition, cell,
|
|
97
|
-
showRowNumber && /* @__PURE__ */ jsx(
|
|
71
|
+
}, (_, index) => minColumn + index).map((columnIndex) => /* @__PURE__ */ jsx(Column, { getSelectionType, columnIndex, getColumnWidth, getColumnHorizontalPosition, cell, isLastColumn: columnIndex + 1 === columnCount, onColumnResize, height, getResizerPosition, showBorder, resizingState }, `header-${columnIndex}`)) }),
|
|
72
|
+
showRowNumber && /* @__PURE__ */ jsx("div", { className: cn(styles["header__cell"], styles["header__row-column"], scrolledHorizontal && styles["header__row-column_scrolled-horizontal"]), style: {
|
|
73
|
+
"--header-cell-width": toCssSize(rowNumberWidth),
|
|
74
|
+
"--header-cell-height": `${height}px`,
|
|
75
|
+
"--header-cell-left": "0px"
|
|
76
|
+
}, children: /* @__PURE__ */ jsx(StyledCell, { "data-align": "right", "data-selected": selectedAllType === "selectDirect", $type: "header", $selectionType: selectedAllType, $isLastRow: false, $isLastColumn: false, $height: height, $isFocused: false, $isSelectedLeft: false, $isSelectedTop: false, "data-grid-row": -1, "data-grid-column": -1, $showBorder: showBorder, children: "#" }) })
|
|
98
77
|
] });
|
|
99
78
|
};
|
|
100
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../src/components/Grid/Header.tsx"],"sourcesContent":["import { styled } from 'styled-components';\nimport {\n CellProps,\n ColumnResizeFn,\n GetResizerPositionFn,\n SelectionTypeFn,\n} from './types';\nimport { StyledCell } from './StyledCell';\nimport ColumnResizer from './ColumnResizer';\nimport { ResizingState } from './useResizingState';\n\ninterface HeaderProps {\n showRowNumber: boolean;\n rowNumberWidth: number;\n minColumn: number;\n maxColumn: number;\n height: number;\n getColumnWidth: (index: number) => number;\n cell: CellProps;\n getSelectionType: SelectionTypeFn;\n columnCount: number;\n onColumnResize: ColumnResizeFn;\n getColumnHorizontalPosition: (columnIndex: number) => number;\n scrolledVertical: boolean;\n getResizerPosition: GetResizerPositionFn;\n showBorder: boolean;\n scrolledHorizontal: boolean;\n resizingState: ResizingState;\n}\n\nconst HeaderContainer = styled.div<{ $height: number; $scrolledVertical: boolean }>`\n position: sticky;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: row;\n height: ${({ $height }) => $height}px;\n ${({ $scrolledVertical, theme }) =>\n $scrolledVertical\n ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};`\n : ''}\n`;\n\nconst ScrollableHeaderContainer = styled.div<{\n $left: number;\n}>`\n position: relative;\n left: ${({ $left }) => $left}px;\n`;\n\ninterface ColumnProps extends Pick<\n HeaderProps,\n | 'cell'\n | 'getSelectionType'\n | 'onColumnResize'\n | 'getColumnWidth'\n | 'height'\n | 'getResizerPosition'\n | 'showBorder'\n | 'getColumnHorizontalPosition'\n | 'resizingState'\n> {\n columnIndex: number;\n isFirstColumn: boolean;\n isLastColumn: boolean;\n}\n\nconst HeaderCellContainer = styled.div<{\n $width: string | number;\n $height: number;\n $columnPosition: number;\n}>`\n position: absolute;\n display: flex;\n width: ${({ $width }) => (typeof $width === 'string' ? $width : `${$width}px`)};\n height: ${({ $height }) => $height}px;\n left: ${({ $columnPosition }) => $columnPosition}px;\n &:hover [data-resize] {\n background: ${({ theme }) => theme.click.grid.header.cell.color.stroke.selectDirect};\n }\n`;\n\nconst RowColumnContainer = styled(HeaderCellContainer)<{\n $width: string | number;\n $scrolledHorizontal: boolean;\n}>`\n position: sticky;\n top: 0;\n left: 0;\n width: ${({ $width }) => (typeof $width === 'string' ? $width : `${$width}px`)};\n text-align: right;\n ${({ $scrolledHorizontal, theme }) =>\n $scrolledHorizontal\n ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};`\n : ''}\n`;\n\nconst RowColumn = styled(StyledCell)`\n width: 100%;\n text-align: right;\n overflow: hidden;\n`;\n\nconst Column = ({\n columnIndex,\n cell,\n getColumnWidth,\n getColumnHorizontalPosition,\n getSelectionType,\n isFirstColumn,\n isLastColumn,\n onColumnResize,\n height,\n getResizerPosition,\n showBorder,\n resizingState,\n}: ColumnProps) => {\n const selectionType = getSelectionType({\n column: columnIndex,\n type: 'column',\n });\n const leftSelectionType = getSelectionType({\n column: columnIndex - 1,\n type: 'column',\n });\n const columnPosition = getColumnHorizontalPosition(columnIndex);\n\n const isSelected = selectionType === 'selectDirect';\n const isSelectedLeft =\n (leftSelectionType === 'selectDirect' || isSelected) &&\n leftSelectionType !== selectionType;\n\n const columnWidth = getColumnWidth(columnIndex);\n return (\n <HeaderCellContainer\n $width={columnWidth}\n $columnPosition={columnPosition}\n $height={height}\n data-header={columnIndex}\n >\n <StyledCell\n $type=\"header\"\n as={cell}\n columnIndex={columnIndex}\n type=\"header-cell\"\n $isFirstColumn={isFirstColumn}\n $selectionType={selectionType}\n $isLastColumn={isLastColumn}\n $isFocused={false}\n $isSelectedLeft={isSelectedLeft}\n $isSelectedTop={isSelected}\n $isLastRow={false}\n $isFirstRow\n $height={height}\n data-grid-row={-1}\n data-grid-column={columnIndex}\n data-selected={isSelected}\n $showBorder={showBorder}\n width={columnWidth}\n />\n <ColumnResizer\n height={height}\n onColumnResize={onColumnResize}\n columnIndex={columnIndex}\n getResizerPosition={getResizerPosition}\n columnWidth={columnWidth}\n resizingState={resizingState}\n />\n </HeaderCellContainer>\n );\n};\n\nconst Header = ({\n scrolledVertical,\n scrolledHorizontal,\n showRowNumber,\n rowNumberWidth,\n minColumn,\n maxColumn,\n height,\n getColumnWidth,\n cell,\n columnCount,\n getSelectionType,\n onColumnResize,\n getColumnHorizontalPosition,\n getResizerPosition,\n showBorder,\n resizingState,\n}: HeaderProps) => {\n const selectedAllType = getSelectionType({\n type: 'all',\n });\n return (\n <HeaderContainer\n $height={height}\n $scrolledVertical={scrolledVertical}\n >\n <ScrollableHeaderContainer $left={rowNumberWidth}>\n {Array.from(\n { length: maxColumn - minColumn + 1 },\n (_, index) => minColumn + index\n ).map(columnIndex => (\n <Column\n key={`header-${columnIndex}`}\n getSelectionType={getSelectionType}\n columnIndex={columnIndex}\n getColumnWidth={getColumnWidth}\n getColumnHorizontalPosition={getColumnHorizontalPosition}\n cell={cell}\n isFirstColumn={columnIndex === 0 && !showRowNumber}\n isLastColumn={columnIndex + 1 === columnCount}\n onColumnResize={onColumnResize}\n height={height}\n getResizerPosition={getResizerPosition}\n showBorder={showBorder}\n resizingState={resizingState}\n />\n ))}\n </ScrollableHeaderContainer>\n {showRowNumber && (\n <RowColumnContainer\n $width={rowNumberWidth}\n $height={height}\n $columnPosition={0}\n $scrolledHorizontal={scrolledHorizontal}\n >\n <RowColumn\n data-selected={selectedAllType === 'selectDirect'}\n $type=\"header\"\n $isFirstRow\n $isFirstColumn\n $selectionType={selectedAllType}\n $isLastRow={false}\n $isLastColumn={false}\n $height={height}\n $isFocused={false}\n $isSelectedLeft={false}\n $isSelectedTop={false}\n data-grid-row={-1}\n data-grid-column={-1}\n $showBorder={showBorder}\n >\n #\n </RowColumn>\n </RowColumnContainer>\n )}\n </HeaderContainer>\n );\n};\n\nexport default Header;\n"],"names":["HeaderContainer","styled","div","withConfig","componentId","$height","$scrolledVertical","theme","click","grid","header","cell","color","stroke","default","ScrollableHeaderContainer","$left","HeaderCellContainer","$width","$columnPosition","selectDirect","RowColumnContainer","$scrolledHorizontal","RowColumn","StyledCell","Column","columnIndex","getColumnWidth","getColumnHorizontalPosition","getSelectionType","isFirstColumn","isLastColumn","onColumnResize","height","getResizerPosition","showBorder","resizingState","selectionType","column","type","leftSelectionType","columnPosition","isSelected","isSelectedLeft","columnWidth","Header","scrolledVertical","scrolledHorizontal","showRowNumber","rowNumberWidth","minColumn","maxColumn","columnCount","selectedAllType","Array","from","length","_","index","map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../src/components/Grid/Header.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { cn } from '@/lib/cva';\nimport styles from './Header.module.css';\nimport {\n CellProps,\n ColumnResizeFn,\n GetResizerPositionFn,\n SelectionTypeFn,\n} from './types';\nimport { StyledCell } from './StyledCell';\nimport ColumnResizer from './ColumnResizer';\nimport { ResizingState } from './useResizingState';\n\ninterface HeaderProps {\n showRowNumber: boolean;\n rowNumberWidth: number;\n minColumn: number;\n maxColumn: number;\n height: number;\n getColumnWidth: (index: number) => number;\n cell: CellProps;\n getSelectionType: SelectionTypeFn;\n columnCount: number;\n onColumnResize: ColumnResizeFn;\n getColumnHorizontalPosition: (columnIndex: number) => number;\n scrolledVertical: boolean;\n getResizerPosition: GetResizerPositionFn;\n showBorder: boolean;\n scrolledHorizontal: boolean;\n resizingState: ResizingState;\n}\n\ninterface ColumnProps extends Pick<\n HeaderProps,\n | 'cell'\n | 'getSelectionType'\n | 'onColumnResize'\n | 'getColumnWidth'\n | 'height'\n | 'getResizerPosition'\n | 'showBorder'\n | 'getColumnHorizontalPosition'\n | 'resizingState'\n> {\n columnIndex: number;\n isLastColumn: boolean;\n}\n\nconst toCssSize = ($width: string | number): string =>\n typeof $width === 'string' ? $width : `${$width}px`;\n\nconst Column = ({\n columnIndex,\n cell,\n getColumnWidth,\n getColumnHorizontalPosition,\n getSelectionType,\n isLastColumn,\n onColumnResize,\n height,\n getResizerPosition,\n showBorder,\n resizingState,\n}: ColumnProps) => {\n const selectionType = getSelectionType({\n column: columnIndex,\n type: 'column',\n });\n const leftSelectionType = getSelectionType({\n column: columnIndex - 1,\n type: 'column',\n });\n const columnPosition = getColumnHorizontalPosition(columnIndex);\n\n const isSelected = selectionType === 'selectDirect';\n const isSelectedLeft =\n (leftSelectionType === 'selectDirect' || isSelected) &&\n leftSelectionType !== selectionType;\n\n const columnWidth = getColumnWidth(columnIndex);\n return (\n <div\n className={styles['header__cell']}\n style={\n {\n '--header-cell-width': toCssSize(columnWidth),\n '--header-cell-height': `${height}px`,\n '--header-cell-left': `${columnPosition}px`,\n } as CSSProperties\n }\n data-header={columnIndex}\n >\n <StyledCell\n $type=\"header\"\n as={cell}\n columnIndex={columnIndex}\n type=\"header-cell\"\n $selectionType={selectionType}\n $isLastColumn={isLastColumn}\n $isFocused={false}\n $isSelectedLeft={isSelectedLeft}\n $isSelectedTop={isSelected}\n $isLastRow={false}\n $height={height}\n data-grid-row={-1}\n data-grid-column={columnIndex}\n data-selected={isSelected}\n $showBorder={showBorder}\n width={columnWidth}\n />\n <ColumnResizer\n height={height}\n onColumnResize={onColumnResize}\n columnIndex={columnIndex}\n getResizerPosition={getResizerPosition}\n columnWidth={columnWidth}\n resizingState={resizingState}\n />\n </div>\n );\n};\n\nconst Header = ({\n scrolledVertical,\n scrolledHorizontal,\n showRowNumber,\n rowNumberWidth,\n minColumn,\n maxColumn,\n height,\n getColumnWidth,\n cell,\n columnCount,\n getSelectionType,\n onColumnResize,\n getColumnHorizontalPosition,\n getResizerPosition,\n showBorder,\n resizingState,\n}: HeaderProps) => {\n const selectedAllType = getSelectionType({\n type: 'all',\n });\n return (\n <div\n className={cn(\n styles['header'],\n scrolledVertical && styles['header_scrolled-vertical']\n )}\n style={{ '--header-height': `${height}px` } as CSSProperties}\n >\n <div\n className={styles['header__scroll-area']}\n style={{ '--header-scroll-area-left': `${rowNumberWidth}px` } as CSSProperties}\n >\n {Array.from(\n { length: maxColumn - minColumn + 1 },\n (_, index) => minColumn + index\n ).map(columnIndex => (\n <Column\n key={`header-${columnIndex}`}\n getSelectionType={getSelectionType}\n columnIndex={columnIndex}\n getColumnWidth={getColumnWidth}\n getColumnHorizontalPosition={getColumnHorizontalPosition}\n cell={cell}\n isLastColumn={columnIndex + 1 === columnCount}\n onColumnResize={onColumnResize}\n height={height}\n getResizerPosition={getResizerPosition}\n showBorder={showBorder}\n resizingState={resizingState}\n />\n ))}\n </div>\n {showRowNumber && (\n <div\n className={cn(\n styles['header__cell'],\n styles['header__row-column'],\n scrolledHorizontal && styles['header__row-column_scrolled-horizontal']\n )}\n style={\n {\n '--header-cell-width': toCssSize(rowNumberWidth),\n '--header-cell-height': `${height}px`,\n '--header-cell-left': '0px',\n } as CSSProperties\n }\n >\n <StyledCell\n data-align=\"right\"\n data-selected={selectedAllType === 'selectDirect'}\n $type=\"header\"\n $selectionType={selectedAllType}\n $isLastRow={false}\n $isLastColumn={false}\n $height={height}\n $isFocused={false}\n $isSelectedLeft={false}\n $isSelectedTop={false}\n data-grid-row={-1}\n data-grid-column={-1}\n $showBorder={showBorder}\n >\n #\n </StyledCell>\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n"],"names":["toCssSize","$width","Column","columnIndex","cell","getColumnWidth","getColumnHorizontalPosition","getSelectionType","isLastColumn","onColumnResize","height","getResizerPosition","showBorder","resizingState","selectionType","column","type","leftSelectionType","columnPosition","isSelected","isSelectedLeft","columnWidth","styles","Header","scrolledVertical","scrolledHorizontal","showRowNumber","rowNumberWidth","minColumn","maxColumn","columnCount","selectedAllType","cn","Array","from","length","_","index","map"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const header = "header__hXzAE";
|
|
2
|
+
const header__cell = "header__cell__ZCE9p";
|
|
3
|
+
const styles = {
|
|
4
|
+
header: header,
|
|
5
|
+
"header_scrolled-vertical": "header_scrolled-vertical__mIp2-",
|
|
6
|
+
"header__scroll-area": "header__scroll-area__Nok8G",
|
|
7
|
+
header__cell: header__cell,
|
|
8
|
+
"header__row-column": "header__row-column__ceu5w",
|
|
9
|
+
"header__row-column_scrolled-horizontal": "header__row-column_scrolled-horizontal__QZO4p"
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { styles as default, header, header__cell };
|
|
13
|
+
//# sourceMappingURL=Header.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.row-number-column__n-aQm {
|
|
2
|
+
position: sticky;
|
|
3
|
+
top: var(--row-number-column-top);
|
|
4
|
+
left: 0;
|
|
5
|
+
width: var(--row-number-column-width);
|
|
6
|
+
height: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.row-number-column_scrolled-horizontal__L9fAB {
|
|
10
|
+
box-shadow: 0 0 0 1px var(--click-grid-header-cell-color-stroke-default);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.row-number-column__cell__00w03 {
|
|
14
|
+
position: absolute;
|
|
15
|
+
top: var(--row-number-cell-top);
|
|
16
|
+
left: 0;
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: var(--row-number-cell-height);
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
text-overflow: ellipsis;
|
|
22
|
+
}
|
|
@@ -1,36 +1,14 @@
|
|
|
1
|
+
import "./RowNumberColumn.css";
|
|
1
2
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
+
import { cn } from '../../lib/cva.js';
|
|
4
|
+
import styles from './RowNumberColumn.module.css.js';
|
|
3
5
|
import { StyledCell } from './StyledCell.js';
|
|
4
6
|
|
|
5
|
-
const RowNumberColumnContainer = styled.div.withConfig({
|
|
6
|
-
componentId: "sc-7gbi4d-0"
|
|
7
|
-
})(["position:sticky;left:0;", " ", ""], ({
|
|
8
|
-
$height,
|
|
9
|
-
$width
|
|
10
|
-
}) => `
|
|
11
|
-
top: ${$height}px;
|
|
12
|
-
width: ${$width}px;
|
|
13
|
-
height: 100%;
|
|
14
|
-
`, ({
|
|
15
|
-
$scrolledHorizontal,
|
|
16
|
-
theme
|
|
17
|
-
}) => $scrolledHorizontal ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};` : "");
|
|
18
|
-
const RowNumberCell = styled.div.withConfig({
|
|
19
|
-
componentId: "sc-7gbi4d-1"
|
|
20
|
-
})(["position:absolute;left:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;", ""], ({
|
|
21
|
-
$height,
|
|
22
|
-
$rowNumber,
|
|
23
|
-
$rowAutoHeight
|
|
24
|
-
}) => `
|
|
25
|
-
top: ${$height * $rowNumber}px;
|
|
26
|
-
height: ${$rowAutoHeight ? "100%" : `${$height}px`};
|
|
27
|
-
`);
|
|
28
7
|
const RowNumber = ({
|
|
29
8
|
rowIndex,
|
|
30
9
|
rowHeight,
|
|
31
10
|
getSelectionType,
|
|
32
11
|
isLastRow,
|
|
33
|
-
isFirstRow,
|
|
34
12
|
showBorder,
|
|
35
13
|
rowStart,
|
|
36
14
|
rowAutoHeight
|
|
@@ -46,7 +24,10 @@ const RowNumber = ({
|
|
|
46
24
|
type: "row"
|
|
47
25
|
});
|
|
48
26
|
const isSelectedTop = (topSelectionType === "selectDirect" || isSelected) && topSelectionType !== selectionType;
|
|
49
|
-
return /* @__PURE__ */ jsx(
|
|
27
|
+
return /* @__PURE__ */ jsx("div", { className: styles["row-number-column__cell"], style: {
|
|
28
|
+
"--row-number-cell-top": `${rowHeight * rowIndex}px`,
|
|
29
|
+
"--row-number-cell-height": rowAutoHeight ? "100%" : `${rowHeight}px`
|
|
30
|
+
}, children: /* @__PURE__ */ jsx(StyledCell, { $height: rowHeight, $isLastColumn: false, $selectionType: selectionType, $type: "header", $isFocused: false, $isLastRow: isLastRow, $isSelectedLeft: isSelected, $isSelectedTop: isSelectedTop, $rowAutoHeight: rowAutoHeight, "data-selected": isSelected, "data-grid-row": currentRowIndex, "data-grid-column": -1, "data-testid": `header-cell-${currentRowIndex}-x`, $showBorder: showBorder, "data-align": "right", children: currentRowIndex }) });
|
|
50
31
|
};
|
|
51
32
|
const RowNumberColumn = ({
|
|
52
33
|
minRow,
|
|
@@ -56,15 +37,17 @@ const RowNumberColumn = ({
|
|
|
56
37
|
rowWidth,
|
|
57
38
|
getSelectionType,
|
|
58
39
|
rowCount,
|
|
59
|
-
showHeader,
|
|
60
40
|
scrolledHorizontal,
|
|
61
41
|
rowStart = 0,
|
|
62
42
|
showBorder,
|
|
63
43
|
rowAutoHeight
|
|
64
44
|
}) => {
|
|
65
|
-
return /* @__PURE__ */ jsx(
|
|
45
|
+
return /* @__PURE__ */ jsx("div", { className: cn(styles["row-number-column"], scrolledHorizontal && styles["row-number-column_scrolled-horizontal"]), style: {
|
|
46
|
+
"--row-number-column-top": `${headerHeight}px`,
|
|
47
|
+
"--row-number-column-width": `${rowWidth}px`
|
|
48
|
+
}, children: Array.from({
|
|
66
49
|
length: maxRow - minRow + 1
|
|
67
|
-
}, (_, index) => minRow + index).map((rowIndex) => /* @__PURE__ */ jsx(RowNumber, { getSelectionType, rowHeight, rowIndex, isLastRow: rowIndex === rowCount,
|
|
50
|
+
}, (_, index) => minRow + index).map((rowIndex) => /* @__PURE__ */ jsx(RowNumber, { getSelectionType, rowHeight, rowIndex, isLastRow: rowIndex === rowCount, showBorder, rowStart, rowAutoHeight }, `row-number-${rowIndex}`)) });
|
|
68
51
|
};
|
|
69
52
|
|
|
70
53
|
export { RowNumberColumn as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowNumberColumn.js","sources":["../../../../src/components/Grid/RowNumberColumn.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"RowNumberColumn.js","sources":["../../../../src/components/Grid/RowNumberColumn.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { cn } from '@/lib/cva';\nimport styles from './RowNumberColumn.module.css';\nimport { SelectionTypeFn } from './types';\nimport { StyledCell } from './StyledCell';\n\ninterface RowNumberColumnProps {\n minRow: number;\n maxRow: number;\n rowHeight: number;\n headerHeight: number;\n rowWidth: number;\n getSelectionType: SelectionTypeFn;\n rowCount: number;\n scrolledHorizontal: boolean;\n rowStart: number;\n showBorder: boolean;\n rowAutoHeight?: boolean;\n}\ninterface RowNumberProps extends Pick<\n RowNumberColumnProps,\n 'rowHeight' | 'getSelectionType' | 'showBorder' | 'rowStart'\n> {\n rowIndex: number;\n isLastRow: boolean;\n rowAutoHeight?: boolean;\n}\nconst RowNumber = ({\n rowIndex,\n rowHeight,\n getSelectionType,\n isLastRow,\n showBorder,\n rowStart,\n rowAutoHeight,\n}: RowNumberProps) => {\n const currentRowIndex = rowIndex + rowStart;\n const selectionType = getSelectionType({\n row: currentRowIndex,\n type: 'row',\n });\n const isSelected = selectionType === 'selectDirect';\n const topSelectionType = getSelectionType({\n row: currentRowIndex - 1,\n type: 'row',\n });\n const isSelectedTop =\n (topSelectionType === 'selectDirect' || isSelected) &&\n topSelectionType !== selectionType;\n\n return (\n <div\n className={styles['row-number-column__cell']}\n style={\n {\n '--row-number-cell-top': `${rowHeight * rowIndex}px`,\n '--row-number-cell-height': rowAutoHeight ? '100%' : `${rowHeight}px`,\n } as CSSProperties\n }\n >\n <StyledCell\n $height={rowHeight}\n $isLastColumn={false}\n $selectionType={selectionType}\n $type=\"header\"\n $isFocused={false}\n $isLastRow={isLastRow}\n $isSelectedLeft={isSelected}\n $isSelectedTop={isSelectedTop}\n $rowAutoHeight={rowAutoHeight}\n data-selected={isSelected}\n data-grid-row={currentRowIndex}\n data-grid-column={-1}\n data-testid={`header-cell-${currentRowIndex}-x`}\n $showBorder={showBorder}\n data-align=\"right\"\n >\n {currentRowIndex}\n </StyledCell>\n </div>\n );\n};\n\nconst RowNumberColumn = ({\n minRow,\n maxRow,\n rowHeight,\n headerHeight,\n rowWidth,\n getSelectionType,\n rowCount,\n scrolledHorizontal,\n rowStart = 0,\n showBorder,\n rowAutoHeight,\n}: RowNumberColumnProps) => {\n return (\n <div\n className={cn(\n styles['row-number-column'],\n scrolledHorizontal && styles['row-number-column_scrolled-horizontal']\n )}\n style={\n {\n '--row-number-column-top': `${headerHeight}px`,\n '--row-number-column-width': `${rowWidth}px`,\n } as CSSProperties\n }\n >\n {Array.from({ length: maxRow - minRow + 1 }, (_, index) => minRow + index).map(\n rowIndex => (\n <RowNumber\n key={`row-number-${rowIndex}`}\n getSelectionType={getSelectionType}\n rowHeight={rowHeight}\n rowIndex={rowIndex}\n isLastRow={rowIndex === rowCount}\n showBorder={showBorder}\n rowStart={rowStart}\n rowAutoHeight={rowAutoHeight}\n />\n )\n )}\n </div>\n );\n};\n\nexport default RowNumberColumn;\n"],"names":["RowNumber","rowIndex","rowHeight","getSelectionType","isLastRow","showBorder","rowStart","rowAutoHeight","currentRowIndex","selectionType","row","type","isSelected","topSelectionType","isSelectedTop","styles","RowNumberColumn","minRow","maxRow","headerHeight","rowWidth","rowCount","scrolledHorizontal","cn","Array","from","length","_","index","map"],"mappings":";;;;;AA2BA,MAAMA,YAAYA,CAAC;AAAA,EACjBC,QAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC;AACc,CAAA,KAAM;AACpB,EAAA,MAAMC,kBAAkBP,QAAAA,GAAWK,QAAAA;AACnC,EAAA,MAAMG,gBAAgBN,gBAAAA,CAAiB;AAAA,IACrCO,GAAAA,EAAKF,eAAAA;AAAAA,IACLG,IAAAA,EAAM;AAAA,GACP,CAAA;AACD,EAAA,MAAMC,aAAaH,aAAAA,KAAkB,cAAA;AACrC,EAAA,MAAMI,mBAAmBV,gBAAAA,CAAiB;AAAA,IACxCO,KAAKF,eAAAA,GAAkB,CAAA;AAAA,IACvBG,IAAAA,EAAM;AAAA,GACP,CAAA;AACD,EAAA,MAAMG,aAAAA,GAAAA,CACHD,gBAAAA,KAAqB,cAAA,IAAkBD,UAAAA,KACxCC,gBAAAA,KAAqBJ,aAAAA;AAEvB,EAAA,2BACG,KAAA,EAAA,EACC,SAAA,EAAWM,MAAAA,CAAO,yBAAyB,GAC3C,KAAA,EACE;AAAA,IACE,uBAAA,EAAyB,CAAA,EAAGb,SAAAA,GAAYD,QAAQ,CAAA,EAAA,CAAA;AAAA,IAChD,0BAAA,EAA4BM,aAAAA,GAAgB,MAAA,GAAS,CAAA,EAAGL,SAAS,CAAA,EAAA;AAAA,KAIrE,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EACC,OAAA,EAASA,SAAAA,EACT,eAAe,KAAA,EACf,cAAA,EAAgBO,aAAAA,EAChB,KAAA,EAAM,UACN,UAAA,EAAY,KAAA,EACZ,UAAA,EAAYL,SAAAA,EACZ,iBAAiBQ,UAAAA,EACjB,cAAA,EAAgBE,aAAAA,EAChB,cAAA,EAAgBP,eAChB,eAAA,EAAeK,UAAAA,EACf,eAAA,EAAeJ,eAAAA,EACf,oBAAkB,EAAA,EAClB,aAAA,EAAa,CAAA,YAAA,EAAeA,eAAe,MAC3C,WAAA,EAAaH,UAAAA,EACb,YAAA,EAAW,OAAA,EAEVG,2BACH,CAAA,EACF,CAAA;AAEJ,CAAA;AAEA,MAAMQ,kBAAkBA,CAAC;AAAA,EACvBC,MAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAhB,SAAAA;AAAAA,EACAiB,YAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAjB,gBAAAA;AAAAA,EACAkB,QAAAA;AAAAA,EACAC,kBAAAA;AAAAA,EACAhB,QAAAA,GAAW,CAAA;AAAA,EACXD,UAAAA;AAAAA,EACAE;AACoB,CAAA,KAAM;AAC1B,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EACC,SAAA,EAAWgB,EAAAA,CACTR,MAAAA,CAAO,mBAAmB,CAAA,EAC1BO,kBAAAA,IAAsBP,MAAAA,CAAO,uCAAuC,CACtE,CAAA,EACA,KAAA,EACE;AAAA,IACE,yBAAA,EAA2B,GAAGI,YAAY,CAAA,EAAA,CAAA;AAAA,IAC1C,2BAAA,EAA6B,GAAGC,QAAQ,CAAA,EAAA;AAAA,GAC1C,EAGDI,gBAAMC,IAAAA,CAAK;AAAA,IAAEC,MAAAA,EAAQR,SAASD,MAAAA,GAAS;AAAA,GAAE,EAAG,CAACU,CAAAA,EAAGC,KAAAA,KAAUX,MAAAA,GAASW,KAAK,CAAA,CAAEC,GAAAA,CACzE5B,CAAAA,QAAAA,qBACE,GAAA,CAAC,SAAA,EAAA,EAEC,gBAAA,EACA,WACA,QAAA,EACA,SAAA,EAAWA,QAAAA,KAAaoB,QAAAA,EACxB,UAAA,EACA,QAAA,EACA,iBAPK,CAAA,WAAA,EAAcpB,QAAQ,CAAA,EAUjC,CAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const styles = {
|
|
2
|
+
"row-number-column": "row-number-column__n-aQm",
|
|
3
|
+
"row-number-column_scrolled-horizontal": "row-number-column_scrolled-horizontal__L9fAB",
|
|
4
|
+
"row-number-column__cell": "row-number-column__cell__00w03"
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export { styles as default };
|
|
8
|
+
//# sourceMappingURL=RowNumberColumn.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowNumberColumn.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. selectDirect) */
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* The original styled-component dispatches background / text colour / border
|
|
5
|
+
* colour off `$type` (body|header) and `$selectionType`, and toggles individual
|
|
6
|
+
* borders / a `::before` overlay off boolean flags. Colours are aliased to local
|
|
7
|
+
* custom properties (set by the type + selection modifiers) so the shared border
|
|
8
|
+
* / overlay rules can reference them once.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
.cell__OXAxg {
|
|
12
|
+
display: block;
|
|
13
|
+
box-sizing: border-box;
|
|
14
|
+
width: 100%;
|
|
15
|
+
padding: var(--cell-space-y) var(--cell-space-x);
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
border-top: 1px solid var(--cell-stroke-default);
|
|
18
|
+
border-left: 1px solid var(--cell-stroke-default);
|
|
19
|
+
background: var(--cell-background);
|
|
20
|
+
color: var(--cell-color);
|
|
21
|
+
font: var(--click-grid-cell-text-default);
|
|
22
|
+
text-align: left;
|
|
23
|
+
white-space: nowrap;
|
|
24
|
+
cursor: default;
|
|
25
|
+
text-overflow: ellipsis;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.cell__OXAxg[data-align='right'] {
|
|
29
|
+
text-align: right;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.cell_type_body__SohuF {
|
|
33
|
+
--cell-stroke-default: var(--click-grid-body-cell-color-stroke-default);
|
|
34
|
+
--cell-stroke-select-direct: var(--click-grid-body-cell-color-stroke-selectDirect);
|
|
35
|
+
--cell-stroke-last: var(--click-grid-body-cell-color-stroke-default);
|
|
36
|
+
--cell-space-y: var(--click-grid-body-cell-space-y);
|
|
37
|
+
--cell-space-x: var(--click-grid-body-cell-space-x);
|
|
38
|
+
--cell-background: var(--click-grid-body-cell-color-background-default);
|
|
39
|
+
--cell-color: var(--click-grid-body-cell-color-text-default);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.cell_type_body__SohuF.cell_selection_indirect__6e6yy {
|
|
43
|
+
--cell-stroke-last: var(--click-grid-body-cell-color-stroke-selectIndirect);
|
|
44
|
+
--cell-background: var(--click-grid-body-cell-color-background-selectIndirect);
|
|
45
|
+
--cell-color: var(--click-grid-body-cell-color-text-selectIndirect);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.cell_type_body__SohuF.cell_selection_direct__QEL9m {
|
|
49
|
+
--cell-stroke-last: var(--click-grid-body-cell-color-stroke-selectDirect);
|
|
50
|
+
--cell-background: var(--click-grid-body-cell-color-background-selectDirect);
|
|
51
|
+
--cell-color: var(--click-grid-body-cell-color-text-selectDirect);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.cell_type_header__3tsr- {
|
|
55
|
+
--cell-stroke-default: var(--click-grid-header-cell-color-stroke-default);
|
|
56
|
+
--cell-stroke-select-direct: var(--click-grid-header-cell-color-stroke-selectDirect);
|
|
57
|
+
--cell-stroke-last: var(--click-grid-header-cell-color-stroke-default);
|
|
58
|
+
--cell-space-y: var(--click-grid-header-cell-space-y);
|
|
59
|
+
--cell-space-x: var(--click-grid-header-cell-space-x);
|
|
60
|
+
--cell-background: var(--click-grid-header-cell-color-background-default);
|
|
61
|
+
--cell-color: var(--click-grid-header-cell-color-title-default);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.cell_type_header__3tsr-.cell_selection_indirect__6e6yy {
|
|
65
|
+
--cell-stroke-last: var(--click-grid-header-cell-color-stroke-selectIndirect);
|
|
66
|
+
--cell-background: var(--click-grid-header-cell-color-background-selectIndirect);
|
|
67
|
+
--cell-color: var(--click-grid-header-cell-color-title-selectIndirect);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.cell_type_header__3tsr-.cell_selection_direct__QEL9m {
|
|
71
|
+
--cell-stroke-last: var(--click-grid-header-cell-color-stroke-selectDirect);
|
|
72
|
+
--cell-background: var(--click-grid-header-cell-color-background-selectDirect);
|
|
73
|
+
--cell-color: var(--click-grid-header-cell-color-title-selectDirect);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* header cell with no border removes top/left edges on the corner cells */
|
|
77
|
+
.cell_type_header__3tsr-.cell_no-border__9gXDK[data-grid-row='-1'] {
|
|
78
|
+
border-top: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.cell_type_header__3tsr-.cell_no-border__9gXDK[data-grid-column='-1'] {
|
|
82
|
+
border-left: none;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* a focused cell draws its last-edge borders with the select-direct stroke */
|
|
86
|
+
.cell_focused__cmh-b {
|
|
87
|
+
box-shadow: inset 0 0 0 1px var(--cell-stroke-select-direct);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/*
|
|
91
|
+
* Focus must win the last-edge stroke colour over any selection state. The
|
|
92
|
+
* original styled-component resolved the last-row / last-column border colour
|
|
93
|
+
* inline as `stroke[$isFocused ? 'selectDirect' : $selectionType]`, so focus
|
|
94
|
+
* always overrode the selection stroke. The `.cell_type_*.cell_selection_*`
|
|
95
|
+
* rules above set `--cell-stroke-last` at (0,2,0) specificity, so the focus
|
|
96
|
+
* override is qualified with the type class to match that specificity and,
|
|
97
|
+
* coming later in source order, take precedence. `.cell_focused` always
|
|
98
|
+
* co-occurs with a type class.
|
|
99
|
+
*/
|
|
100
|
+
.cell_type_body__SohuF.cell_focused__cmh-b,
|
|
101
|
+
.cell_type_header__3tsr-.cell_focused__cmh-b {
|
|
102
|
+
--cell-stroke-last: var(--cell-stroke-select-direct);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* only the last row/column draw the closing border, colored by focus/selection */
|
|
106
|
+
.cell_last-row__DoJdk {
|
|
107
|
+
border-bottom: 1px solid var(--cell-stroke-last);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.cell_last-column__LgKM7 {
|
|
111
|
+
border-right: 1px solid var(--cell-stroke-last);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* rowAutoHeight resets the entire border last, overriding every rule above */
|
|
115
|
+
.cell_row-auto-height__yzQUR {
|
|
116
|
+
min-height: auto;
|
|
117
|
+
overflow-y: auto;
|
|
118
|
+
border: none;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* selection / focus overlay drawn on top of the cell so adjacent borders meet */
|
|
122
|
+
.cell__overlay__U9XGO::before {
|
|
123
|
+
content: '';
|
|
124
|
+
position: absolute;
|
|
125
|
+
inset: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.cell__overlay_selected_top__OMUJB::before {
|
|
129
|
+
border-top: 1px solid var(--cell-stroke-select-direct);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.cell__overlay_selected_left__MiimG::before {
|
|
133
|
+
border-left: 1px solid var(--cell-stroke-select-direct);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.cell__overlay_selected_bottom__2ra9F::before {
|
|
137
|
+
border-bottom: 1px solid var(--cell-stroke-select-direct);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.cell__overlay_selected_right__Dt-g5::before {
|
|
141
|
+
border-right: 1px solid var(--cell-stroke-select-direct);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.cell__overlay_row-auto-height__teKk1::before {
|
|
145
|
+
border: none;
|
|
146
|
+
}
|