simple-table-core 0.1.4 → 0.1.5
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/components/Animate.d.ts +7 -0
- package/dist/components/SimpleTable/SimpleTable.d.ts +18 -0
- package/dist/components/SimpleTable/TableBody.d.ts +19 -0
- package/dist/components/SimpleTable/TableCell.d.ts +14 -0
- package/dist/components/SimpleTable/TableFooter.d.ts +12 -0
- package/dist/components/SimpleTable/TableHeader.d.ts +14 -0
- package/dist/components/SimpleTable/TableHeaderCell.d.ts +15 -0
- package/dist/components/SimpleTable/TableLastColumnCell.d.ts +6 -0
- package/dist/components/SimpleTable/TableRowSeparator.d.ts +2 -0
- package/dist/consts/SampleData.d.ts +19 -0
- package/dist/helpers/calculateBoundingBoxes.d.ts +13 -0
- package/dist/helpers/shuffleArray.d.ts +1 -0
- package/dist/hooks/usePrevious.d.ts +2 -0
- package/dist/hooks/useSelection.d.ts +19 -0
- package/dist/hooks/useTableHeaderCell.d.ts +14 -0
- package/dist/icons/AngleLeftIcon.d.ts +3 -0
- package/dist/icons/AngleRightIcon.d.ts +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/stories/SimpleTable.stories.d.ts +11 -0
- package/dist/stories/SimpleTableExample.d.ts +1 -0
- package/dist/types/HeaderObject.d.ts +10 -0
- package/dist/utils/performanceUtils.d.ts +1 -0
- package/dist/utils/sortUtils.d.ts +15 -0
- package/package.json +1 -1
- package/tsconfig.json +5 -9
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import HeaderObject from "../../types/HeaderObject";
|
|
3
|
+
import "../../styles/simple-table.css";
|
|
4
|
+
interface SpreadsheetProps {
|
|
5
|
+
defaultHeaders: HeaderObject[];
|
|
6
|
+
enableColumnResizing?: boolean;
|
|
7
|
+
height?: string;
|
|
8
|
+
hideFooter?: boolean;
|
|
9
|
+
nextIcon?: ReactNode;
|
|
10
|
+
prevIcon?: ReactNode;
|
|
11
|
+
rows: {
|
|
12
|
+
[key: string]: string | number | boolean | undefined | null;
|
|
13
|
+
}[];
|
|
14
|
+
rowsPerPage?: number;
|
|
15
|
+
shouldPaginate?: boolean;
|
|
16
|
+
}
|
|
17
|
+
declare const SimpleTable: ({ defaultHeaders, enableColumnResizing, height, hideFooter, nextIcon, prevIcon, rows, rowsPerPage, shouldPaginate, }: SpreadsheetProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export default SimpleTable;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import HeaderObject from "../../types/HeaderObject";
|
|
2
|
+
interface TableBodyProps {
|
|
3
|
+
getBorderClass: (rowIndex: number, columnIndex: number) => string;
|
|
4
|
+
handleMouseDown: (rowIndex: number, columnIndex: number) => void;
|
|
5
|
+
handleMouseOver: (rowIndex: number, columnIndex: number) => void;
|
|
6
|
+
headers: HeaderObject[];
|
|
7
|
+
isSelected: (rowIndex: number, columnIndex: number) => boolean;
|
|
8
|
+
isTopLeftCell: (rowIndex: number, columnIndex: number) => boolean;
|
|
9
|
+
isWidthDragging: boolean;
|
|
10
|
+
shouldDisplayLastColumnCell: boolean;
|
|
11
|
+
shouldPaginate: boolean;
|
|
12
|
+
sortedRows: {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}[];
|
|
15
|
+
}
|
|
16
|
+
declare const TableBody: ({ getBorderClass, handleMouseDown, handleMouseOver, headers, isSelected, isTopLeftCell, isWidthDragging, shouldDisplayLastColumnCell, shouldPaginate, sortedRows, }: TableBodyProps & {
|
|
17
|
+
shouldDisplayLastColumnCell: boolean;
|
|
18
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export default TableBody;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface TableCellProps {
|
|
3
|
+
rowIndex: number;
|
|
4
|
+
colIndex: number;
|
|
5
|
+
content: any;
|
|
6
|
+
isSelected: boolean;
|
|
7
|
+
isTopLeftCell: boolean;
|
|
8
|
+
borderClass: string;
|
|
9
|
+
onMouseDown: (rowIndex: number, colIndex: number) => void;
|
|
10
|
+
onMouseOver: (rowIndex: number, colIndex: number) => void;
|
|
11
|
+
isLastRow: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const TableCell: import("react").ForwardRefExoticComponent<TableCellProps & import("react").RefAttributes<HTMLTableCellElement>>;
|
|
14
|
+
export default TableCell;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
interface TableFooterProps {
|
|
3
|
+
currentPage: number;
|
|
4
|
+
hideFooter?: boolean;
|
|
5
|
+
nextIcon?: ReactNode;
|
|
6
|
+
onPageChange: (page: number) => void;
|
|
7
|
+
prevIcon?: ReactNode;
|
|
8
|
+
rowsPerPage: number;
|
|
9
|
+
totalRows: number;
|
|
10
|
+
}
|
|
11
|
+
declare const TableFooter: ({ currentPage, hideFooter, nextIcon, onPageChange, prevIcon, rowsPerPage, totalRows, }: TableFooterProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
export default TableFooter;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from "react";
|
|
2
|
+
import HeaderObject from "../../types/HeaderObject";
|
|
3
|
+
interface TableHeaderProps {
|
|
4
|
+
enableColumnResizing: boolean;
|
|
5
|
+
forceUpdate: () => void;
|
|
6
|
+
headersRef: React.RefObject<HeaderObject[]>;
|
|
7
|
+
isWidthDragging: boolean;
|
|
8
|
+
onSort: (columnIndex: number) => void;
|
|
9
|
+
onTableHeaderDragEnd: (newHeaders: HeaderObject[]) => void;
|
|
10
|
+
setIsWidthDragging: Dispatch<SetStateAction<boolean>>;
|
|
11
|
+
shouldDisplayLastColumnCell: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const TableHeader: ({ enableColumnResizing, forceUpdate, headersRef, isWidthDragging, onSort, onTableHeaderDragEnd, setIsWidthDragging, shouldDisplayLastColumnCell, }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export default TableHeader;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SetStateAction, Dispatch } from "react";
|
|
2
|
+
import HeaderObject from "../../types/HeaderObject";
|
|
3
|
+
interface TableHeaderCellProps {
|
|
4
|
+
draggedHeaderRef: React.MutableRefObject<HeaderObject | null>;
|
|
5
|
+
enableColumnResizing: boolean;
|
|
6
|
+
forceUpdate: () => void;
|
|
7
|
+
headersRef: React.RefObject<HeaderObject[]>;
|
|
8
|
+
hoveredHeaderRef: React.MutableRefObject<HeaderObject | null>;
|
|
9
|
+
index: number;
|
|
10
|
+
onSort: (columnIndex: number) => void;
|
|
11
|
+
onTableHeaderDragEnd: (newHeaders: HeaderObject[]) => void;
|
|
12
|
+
setIsWidthDragging: Dispatch<SetStateAction<boolean>>;
|
|
13
|
+
}
|
|
14
|
+
declare const TableHeaderCell: import("react").ForwardRefExoticComponent<TableHeaderCellProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
15
|
+
export default TableHeaderCell;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import HeaderObject from "../types/HeaderObject";
|
|
2
|
+
export declare const SAMPLE_HEADERS: HeaderObject[];
|
|
3
|
+
export declare const inventoryData: {
|
|
4
|
+
id: string;
|
|
5
|
+
productName: string;
|
|
6
|
+
category: string;
|
|
7
|
+
quantity: number;
|
|
8
|
+
price: string;
|
|
9
|
+
supplier: string;
|
|
10
|
+
location: string;
|
|
11
|
+
reorderLevel: number;
|
|
12
|
+
sku: string;
|
|
13
|
+
description: string;
|
|
14
|
+
weight: string;
|
|
15
|
+
dimensions: string;
|
|
16
|
+
barcode: string;
|
|
17
|
+
expirationDate: string;
|
|
18
|
+
manufacturer: string;
|
|
19
|
+
}[];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
interface BoundingBox {
|
|
3
|
+
bottom: number;
|
|
4
|
+
height: number;
|
|
5
|
+
left: number;
|
|
6
|
+
right: number;
|
|
7
|
+
top: number;
|
|
8
|
+
width: number;
|
|
9
|
+
}
|
|
10
|
+
declare const calculateBoundingBoxes: (children: ReactNode) => {
|
|
11
|
+
[key: string]: BoundingBox;
|
|
12
|
+
};
|
|
13
|
+
export default calculateBoundingBoxes;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function shuffleArray(array: any[]): any[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import HeaderObject from "../types/HeaderObject";
|
|
3
|
+
interface Cell {
|
|
4
|
+
row: number;
|
|
5
|
+
col: number;
|
|
6
|
+
}
|
|
7
|
+
declare const useSelection: (rows: {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}[], headers: HeaderObject[]) => {
|
|
10
|
+
selectedCells: Cell[];
|
|
11
|
+
handleMouseDown: (rowIndex: number, colIndex: number) => void;
|
|
12
|
+
handleMouseOver: (rowIndex: number, colIndex: number) => void;
|
|
13
|
+
handleMouseUp: () => void;
|
|
14
|
+
isSelected: (rowIndex: number, colIndex: number) => boolean;
|
|
15
|
+
getBorderClass: (rowIndex: number, colIndex: number) => string;
|
|
16
|
+
isTopLeftCell: (rowIndex: number, colIndex: number) => boolean;
|
|
17
|
+
setSelectedCells: import("react").Dispatch<import("react").SetStateAction<Cell[]>>;
|
|
18
|
+
};
|
|
19
|
+
export default useSelection;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import HeaderObject from "../types/HeaderObject";
|
|
3
|
+
interface UseTableHeaderCellProps {
|
|
4
|
+
draggedHeaderRef: React.MutableRefObject<HeaderObject | null>;
|
|
5
|
+
headersRef: React.RefObject<HeaderObject[]>;
|
|
6
|
+
hoveredHeaderRef: React.MutableRefObject<HeaderObject | null>;
|
|
7
|
+
onTableHeaderDragEnd: (newHeaders: HeaderObject[]) => void;
|
|
8
|
+
}
|
|
9
|
+
declare const useTableHeaderCell: ({ draggedHeaderRef, headersRef, hoveredHeaderRef, onTableHeaderDragEnd, }: UseTableHeaderCellProps) => {
|
|
10
|
+
handleDragStart: (header: HeaderObject) => void;
|
|
11
|
+
handleDragOver: (hoveredHeader: HeaderObject) => void;
|
|
12
|
+
handleDragEnd: () => void;
|
|
13
|
+
};
|
|
14
|
+
export default useTableHeaderCell;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react";
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: () => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<typeof meta>;
|
|
11
|
+
export declare const SimpleTable: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SampleTable: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const throttle: (func: (...args: any[]) => void, limit: number) => (this: any, ...args: any[]) => void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import HeaderObject from "../types/HeaderObject";
|
|
2
|
+
export declare const onSort: (headers: HeaderObject[], rows: {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}[], sortConfig: {
|
|
5
|
+
key: HeaderObject;
|
|
6
|
+
direction: string;
|
|
7
|
+
} | null, columnIndex: number) => {
|
|
8
|
+
sortedData: {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}[];
|
|
11
|
+
newSortConfig: {
|
|
12
|
+
key: HeaderObject;
|
|
13
|
+
direction: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
package/package.json
CHANGED
package/tsconfig.json
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"target": "es5",
|
|
4
|
-
"lib": [
|
|
5
|
-
"dom",
|
|
6
|
-
"dom.iterable",
|
|
7
|
-
"esnext"
|
|
8
|
-
],
|
|
4
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
9
5
|
"allowJs": true,
|
|
10
6
|
"skipLibCheck": true,
|
|
11
7
|
"esModuleInterop": true,
|
|
@@ -17,10 +13,10 @@
|
|
|
17
13
|
"moduleResolution": "node",
|
|
18
14
|
"resolveJsonModule": true,
|
|
19
15
|
"isolatedModules": true,
|
|
20
|
-
"noEmit":
|
|
16
|
+
"noEmit": false,
|
|
17
|
+
"declaration": true,
|
|
18
|
+
"declarationDir": "dist",
|
|
21
19
|
"jsx": "react-jsx"
|
|
22
20
|
},
|
|
23
|
-
"include": [
|
|
24
|
-
"src"
|
|
25
|
-
]
|
|
21
|
+
"include": ["src"]
|
|
26
22
|
}
|