/* eslint-disable sonarjs/no-identical-functions */
import * as React from "react";
import { BuilderThemeWrapper } from "../../stories/story-utils.js";
import DataGrid from "./data-grid.js";
import { CompactSelection, GridCellKind, type GridSelection } from "./data-grid-types.js";
import { getDataEditorTheme, mergeAndRealizeTheme } from "../../common/styles.js";
import type { GetCellRendererCallback } from "../../cells/cell-types.js";
import { AllCellRenderers } from "../../cells/index.js";
import ImageWindowLoaderImpl from "../../common/image-window-loader.js";
export default {
title: "Subcomponents/DataGrid",
decorators: [
(Story: React.ComponentType) => (
),
],
};
const emptyGridSelection: GridSelection = {
columns: CompactSelection.empty(),
rows: CompactSelection.empty(),
current: undefined,
};
const getCellRenderer: GetCellRendererCallback = cell => {
if (cell.kind === GridCellKind.Custom) return undefined;
return AllCellRenderers.find(x => x.kind === cell.kind) as any;
};
export function Simplenotest() {
let x = 0;
const [y, setY] = React.useState(0);
React.useEffect(() => {
let handle = 0;
const cb = () => {
setY(cv => cv + 1);
handle = window.requestAnimationFrame(cb);
};
cb();
return () => window.cancelAnimationFrame(handle);
}, []);
return (
undefined}
onCanvasFocused={() => undefined}
onCellFocused={() => undefined}
onContextMenu={() => undefined}
onDragEnd={() => undefined}
onDragLeave={() => undefined}
onDragOverCell={() => undefined}
onDragStart={() => undefined}
onDrop={() => undefined}
onItemHovered={() => undefined}
onKeyDown={() => undefined}
onKeyUp={() => undefined}
onMouseDown={() => undefined}
onMouseMoveRaw={() => undefined}
onMouseUp={() => undefined}
resizeColumn={undefined}
smoothScrollX={undefined}
smoothScrollY={undefined}
allowResize={undefined}
canvasRef={undefined}
disabledRows={undefined}
eventTargetRef={undefined}
fillHandle={undefined}
fixedShadowX={undefined}
fixedShadowY={undefined}
getGroupDetails={undefined}
getRowThemeOverride={undefined}
highlightRegions={undefined}
imageWindowLoader={new ImageWindowLoaderImpl()}
onHeaderMenuClick={undefined}
prelightCells={undefined}
translateX={undefined}
translateY={undefined}
dragAndDropState={undefined}
drawFocusRing={true}
isFocused={true}
cellYOffset={y}
isFilling={false}
onMouseMove={() => undefined}
groupHeaderHeight={0}
accessibilityHeight={50}
enableGroups={false}
selection={emptyGridSelection}
rows={100_000}
headerHeight={44}
rowHeight={34}
columns={["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven"].map(
t => ({
title: t,
width: 122 + (x += 10),
})
)}
getCellContent={([col, row]) => ({
kind: GridCellKind.Text,
displayData: `${col},${row} Testing things that are way too long`,
data: `${col},${row} Testing things that are way too long`,
allowOverlay: false,
owned: true,
})}
freezeColumns={0}
firstColAccessible={true}
verticalBorder={() => true}
freezeTrailingRows={0}
hasAppendRow={false}
isResizing={false}
isDragging={false}
theme={mergeAndRealizeTheme(getDataEditorTheme())}
/>
);
}
export function SelectedCellnotest() {
let x = 0;
return (
undefined}
onCanvasFocused={() => undefined}
onCellFocused={() => undefined}
onContextMenu={() => undefined}
onDragEnd={() => undefined}
onDragLeave={() => undefined}
onDragOverCell={() => undefined}
onDragStart={() => undefined}
onDrop={() => undefined}
onItemHovered={() => undefined}
onKeyDown={() => undefined}
onKeyUp={() => undefined}
onMouseDown={() => undefined}
onMouseMoveRaw={() => undefined}
onMouseUp={() => undefined}
smoothScrollX={undefined}
resizeColumn={undefined}
smoothScrollY={undefined}
allowResize={undefined}
canvasRef={undefined}
disabledRows={undefined}
eventTargetRef={undefined}
fillHandle={undefined}
fixedShadowX={undefined}
fixedShadowY={undefined}
getGroupDetails={undefined}
getRowThemeOverride={undefined}
highlightRegions={undefined}
imageWindowLoader={new ImageWindowLoaderImpl()}
onHeaderMenuClick={undefined}
prelightCells={undefined}
translateX={undefined}
translateY={undefined}
dragAndDropState={undefined}
drawFocusRing={true}
onMouseMove={() => undefined}
accessibilityHeight={50}
isFilling={false}
cellYOffset={0}
groupHeaderHeight={34}
enableGroups={false}
rows={1000}
headerHeight={44}
rowHeight={34}
columns={["One", "Two", "Three", "Four", "Five", "Six", "Seven"].map(t => ({
title: t,
width: 122 + (x += 10),
}))}
getCellContent={([col, row]) => ({
kind: GridCellKind.Text,
displayData: `${col},${row} Testing things that are way too long`,
data: `${col},${row} Testing things that are way too long`,
allowOverlay: false,
owned: true,
})}
selection={{
current: {
cell: [2, 2],
range: { x: 2, y: 2, width: 1, height: 1 },
rangeStack: [],
},
columns: CompactSelection.empty(),
rows: CompactSelection.empty(),
}}
freezeColumns={0}
firstColAccessible={true}
verticalBorder={() => true}
freezeTrailingRows={0}
hasAppendRow={false}
isResizing={false}
isDragging={false}
theme={mergeAndRealizeTheme(getDataEditorTheme())}
/>
);
}
export function SelectedRownotest() {
let x = 0;
return (
undefined}
width={1800}
height={1000}
cellXOffset={0}
cellYOffset={0}
isFocused={true}
resizeColumn={undefined}
drawHeader={undefined}
drawCell={undefined}
experimental={undefined}
headerIcons={undefined}
isDraggable={undefined}
onCanvasBlur={() => undefined}
onCanvasFocused={() => undefined}
onCellFocused={() => undefined}
onContextMenu={() => undefined}
onDragEnd={() => undefined}
onDragLeave={() => undefined}
onDragOverCell={() => undefined}
onDragStart={() => undefined}
onDrop={() => undefined}
onItemHovered={() => undefined}
onKeyDown={() => undefined}
onKeyUp={() => undefined}
onMouseDown={() => undefined}
onMouseMoveRaw={() => undefined}
onMouseUp={() => undefined}
smoothScrollX={undefined}
smoothScrollY={undefined}
allowResize={undefined}
canvasRef={undefined}
disabledRows={undefined}
eventTargetRef={undefined}
fillHandle={undefined}
fixedShadowX={undefined}
fixedShadowY={undefined}
getGroupDetails={undefined}
getRowThemeOverride={undefined}
highlightRegions={undefined}
imageWindowLoader={new ImageWindowLoaderImpl()}
onHeaderMenuClick={undefined}
prelightCells={undefined}
translateX={undefined}
translateY={undefined}
dragAndDropState={undefined}
drawFocusRing={true}
groupHeaderHeight={34}
accessibilityHeight={50}
isFilling={false}
enableGroups={false}
rows={1000}
headerHeight={44}
rowHeight={34}
columns={["One", "Two", "Three", "Four", "Five", "Six", "Seven"].map(t => ({
title: t,
width: 122 + (x += 10),
}))}
getCellContent={([col, row]) => ({
kind: GridCellKind.Text,
displayData: `${col},${row} Testing things that are way too long`,
data: `${col},${row} Testing things that are way too long`,
allowOverlay: false,
owned: true,
})}
selection={{
current: undefined,
rows: CompactSelection.fromSingleSelection([2, 4]),
columns: CompactSelection.empty(),
}}
freezeColumns={0}
firstColAccessible={true}
verticalBorder={() => true}
freezeTrailingRows={0}
hasAppendRow={false}
isResizing={false}
isDragging={false}
theme={mergeAndRealizeTheme(getDataEditorTheme())}
/>
);
}
export const SelectedColumnnotest = () => {
let x = 0;
return (
undefined}
width={1800}
height={1000}
cellXOffset={0}
cellYOffset={0}
isFocused={true}
resizeColumn={undefined}
drawHeader={undefined}
experimental={undefined}
headerIcons={undefined}
isDraggable={undefined}
onCanvasBlur={() => undefined}
onCanvasFocused={() => undefined}
onCellFocused={() => undefined}
onContextMenu={() => undefined}
onDragEnd={() => undefined}
onDragLeave={() => undefined}
onDragOverCell={() => undefined}
onDragStart={() => undefined}
onDrop={() => undefined}
onItemHovered={() => undefined}
onKeyDown={() => undefined}
onKeyUp={() => undefined}
onMouseDown={() => undefined}
onMouseMoveRaw={() => undefined}
onMouseUp={() => undefined}
smoothScrollX={undefined}
smoothScrollY={undefined}
allowResize={undefined}
canvasRef={undefined}
disabledRows={undefined}
eventTargetRef={undefined}
fillHandle={undefined}
fixedShadowX={undefined}
fixedShadowY={undefined}
getGroupDetails={undefined}
getRowThemeOverride={undefined}
highlightRegions={undefined}
imageWindowLoader={new ImageWindowLoaderImpl()}
onHeaderMenuClick={undefined}
prelightCells={undefined}
translateX={undefined}
translateY={undefined}
dragAndDropState={undefined}
drawCell={undefined}
drawFocusRing={true}
accessibilityHeight={50}
isFilling={false}
groupHeaderHeight={34}
enableGroups={false}
rows={1000}
headerHeight={44}
rowHeight={34}
columns={["One", "Two", "Three", "Four", "Five", "Six", "Seven"].map(t => ({
title: t,
width: 122 + (x += 10),
}))}
getCellContent={([col, row]) => ({
kind: GridCellKind.Text,
displayData: `${col},${row} Testing things that are way too long`,
data: `${col},${row} Testing things that are way too long`,
allowOverlay: false,
owned: true,
})}
selection={{
current: undefined,
rows: CompactSelection.empty(),
columns: CompactSelection.fromSingleSelection([2, 4]),
}}
freezeColumns={0}
firstColAccessible={true}
verticalBorder={() => true}
freezeTrailingRows={0}
hasAppendRow={false}
isResizing={false}
isDragging={false}
theme={mergeAndRealizeTheme(getDataEditorTheme())}
/>
);
};