mig-schema-table 5.0.2 → 5.0.3

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.
@@ -0,0 +1,156 @@
1
+ import { default as default_2 } from 'react';
2
+ import { default as default_3 } from 'react-window-infinite-loader';
3
+ import { Dispatch } from 'react';
4
+ import { InputHTMLAttributes } from 'react';
5
+ import { JSX as JSX_2 } from 'react/jsx-runtime';
6
+ import { oas31 } from 'openapi3-ts';
7
+ import { SetStateAction } from 'react';
8
+ import { VariableSizeGrid } from 'react-window';
9
+ import { VariableSizeListProps } from 'react-window';
10
+
11
+ export declare const DEFAULT_DATE_FORMAT = "dd MMM yyyy";
12
+
13
+ export declare const DEFAULT_DATE_TIME_FORMAT = "dd MMM yyyy HH:mm";
14
+
15
+ export declare enum EColumnFilterStatus {
16
+ UNAVAILABLE = "UNAVAILABLE",
17
+ AVAILABLE = "AVAILABLE",
18
+ ACTIVE = "ACTIVE"
19
+ }
20
+
21
+ export declare interface IColumnConfig<T> {
22
+ FilterMenu?: default_2.ComponentType<IFilterMenuComponentProps>;
23
+ align?: "start" | "center" | "end";
24
+ dateFormat?: string;
25
+ defaultSortDesc?: boolean;
26
+ filter?: (rowData: T, columnFilterValue: unknown) => boolean;
27
+ hidden?: boolean;
28
+ hoverTitle?: string;
29
+ isFilterable?: boolean;
30
+ order?: number;
31
+ TdBody?: default_2.ComponentType<ITdBodyProps<T> & Record<string, unknown>>;
32
+ tdBodyProps?: Record<string, unknown>;
33
+ renderData?: (rowData: T, dataIndex: number) => string;
34
+ showTimezones?: false;
35
+ sort?: (a: T, b: T, sortAsc: boolean) => number;
36
+ sortByValue?: boolean;
37
+ isSortable?: boolean;
38
+ title?: string | default_2.ReactElement;
39
+ width?: number;
40
+ timezone?: "Asia/Jakarta" | "Europe/Amsterdam";
41
+ }
42
+
43
+ declare interface IColumnFilterMap {
44
+ [propName: string]: unknown;
45
+ }
46
+
47
+ export declare interface ICustomElementProps {
48
+ renderData?: IRenderData[];
49
+ }
50
+
51
+ export declare interface IFilterMenuComponentProps<T = any> {
52
+ columnFilterValue?: T;
53
+ onChange: (newValue: T | undefined, persistState?: boolean) => void;
54
+ onInputKeyDown: (e: default_2.KeyboardEvent<HTMLElement>) => void;
55
+ propIsRequired: boolean;
56
+ propName: string;
57
+ propSchema?: oas31.SchemaObject;
58
+ translate: (key: string, ...args: Array<string | number>) => string;
59
+ }
60
+
61
+ declare interface IRefresherProps {
62
+ refresh: () => void;
63
+ period?: number;
64
+ }
65
+
66
+ export declare interface IRenderData {
67
+ _index: number;
68
+ [key: string]: string;
69
+ }
70
+
71
+ export declare interface ISchemaTableProps<T> {
72
+ Heading?: default_2.ComponentType<VariableSizeListProps & {
73
+ setFilterSortColumn?: (sortColumn: string, sortAsc: boolean) => void;
74
+ sortAsc?: boolean;
75
+ sortColumn?: string;
76
+ sortedRenderData?: IRenderData[];
77
+ }>;
78
+ checkedIndexes?: number[];
79
+ config?: {
80
+ [propName: string]: IColumnConfig<T>;
81
+ };
82
+ CustomSearchInput?: default_2.ComponentType<InputHTMLAttributes<HTMLInputElement>>;
83
+ CustomElement?: default_2.ComponentType<ICustomElementProps>;
84
+ customElementProps?: {
85
+ [controlProp: string]: unknown;
86
+ };
87
+ data: T[] | ((getDataProps: ITableDataState) => Promise<T[]>);
88
+ defaultColumnFilters?: IColumnFilterMap;
89
+ defaultSortAsc?: boolean;
90
+ defaultSortColumn?: string;
91
+ disabledCheckedIndexes?: number[];
92
+ enableAutoFocus?: boolean;
93
+ enableRowCounter?: boolean;
94
+ getRowClassName?: (rowData: T, dataIndex: number, filteredSortedData: IRenderData[]) => string;
95
+ getRowSelected?: (rowData: T, dataIndex: number) => boolean;
96
+ getSearchQueryFilterResult?: (rowData: T, searchQuery: string) => boolean;
97
+ infiniteLoaderRef?: default_2.LegacyRef<default_3>;
98
+ isColumnFilterable?: boolean;
99
+ isExportable?: boolean;
100
+ isResizable?: boolean;
101
+ isSearchable?: boolean;
102
+ isSortable?: boolean;
103
+ maxHeight?: number | "100%";
104
+ setCheckedIndexes?: Dispatch<SetStateAction<number[]>>;
105
+ onRowClick?: (rowData: T, dataIndex: number, event: default_2.MouseEvent) => void;
106
+ onRowDoubleClick?: (rowData: T, dataIndex: number, event: default_2.MouseEvent) => void;
107
+ onSearchEnter?: (searchQuery: string) => void;
108
+ onTableDataStateChange?: (newTableDataState: ITableDataState) => void;
109
+ rowHeight?: number;
110
+ schema: oas31.SchemaObject;
111
+ searchPlaceholder?: string;
112
+ settingsStorageKey?: string;
113
+ style?: default_2.CSSProperties;
114
+ translate?: (key: string, ...args: Array<string | number>) => string;
115
+ useFilterStateHash?: boolean;
116
+ width?: number;
117
+ variableSizeGridRef?: default_2.RefObject<VariableSizeGrid>;
118
+ loadMoreItems?: (startIndex: number, stopIndex: number) => void | Promise<void>;
119
+ itemCount?: number;
120
+ displayTimezone?: "Europe/Amsterdam" | "Asia/Jakarta";
121
+ autoRender?: boolean;
122
+ }
123
+
124
+ export declare interface ITableDataState {
125
+ columnFilterMap: IColumnFilterMap;
126
+ searchQuery: string;
127
+ sortColumn?: string;
128
+ sortAsc?: boolean;
129
+ }
130
+
131
+ export declare interface ITdBodyProps<T> {
132
+ rowData: T;
133
+ dataIndex: number;
134
+ rowIndex: number;
135
+ }
136
+
137
+ declare interface IThProps {
138
+ index: number;
139
+ style: default_2.CSSProperties;
140
+ }
141
+
142
+ export declare const MINIMUM_COLUMN_WIDTH = 25;
143
+
144
+ export declare const Refresher: default_2.MemoExoticComponent<({ refresh, period }: IRefresherProps) => JSX_2.Element>;
145
+
146
+ export declare const RESIZER_WIDTH = 3;
147
+
148
+ export declare const SchemaTable: typeof SchemaTable_2;
149
+
150
+ declare const SchemaTable_2: <T>({ CustomElement, CustomSearchInput, Heading, autoRender, checkedIndexes, config, customElementProps, data, defaultColumnFilters, defaultSortAsc, defaultSortColumn, disabledCheckedIndexes, displayTimezone, enableAutoFocus, enableRowCounter, getRowClassName, getRowSelected, getSearchQueryFilterResult, infiniteLoaderRef, isColumnFilterable, isExportable, isResizable, isSearchable, isSortable, itemCount, loadMoreItems, maxHeight, onRowClick, onRowDoubleClick, onSearchEnter, onTableDataStateChange, rowHeight, schema, searchPlaceholder, setCheckedIndexes, settingsStorageKey, style, translate, useFilterStateHash, variableSizeGridRef, width, }: ISchemaTableProps<T>) => JSX_2.Element;
151
+
152
+ export declare const Th: typeof Th_2;
153
+
154
+ declare const Th_2: <T>({ index, style }: IThProps) => JSX_2.Element;
155
+
156
+ export { }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "mig-schema-table",
3
- "version": "5.0.2",
3
+ "version": "5.0.3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
7
7
  ],
8
8
  "exports": {
9
9
  ".": {
10
- "types": "./dist/component/index.d.ts",
10
+ "types": "./dist/mig-schema-table.d.ts",
11
11
  "import": "./dist/mig-schema-table.es.js",
12
12
  "require": "./dist/mig-schema-table.umd.js"
13
13
  },
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "main": "./dist/mig-schema-table.umd.js",
17
17
  "module": "./dist/mig-schema-table.es.js",
18
- "types": "./dist/component/index.d.ts",
18
+ "types": "./dist/mig-schema-table.d.ts",
19
19
  "private": false,
20
20
  "scripts": {
21
21
  "dev": "vite",
@@ -31,7 +31,7 @@
31
31
  "exceljs": "^4.4.0",
32
32
  "file-saver": "^2.0.5",
33
33
  "lodash": "^4.17.21",
34
- "mig-data-tools": "^1.0.4",
34
+ "mig-data-tools": "^1.0.10",
35
35
  "react-datepicker": "^8.9.0",
36
36
  "react-window": "^1.8.10",
37
37
  "react-window-infinite-loader": "^1.0.9"
@@ -57,16 +57,16 @@
57
57
  "@types/react-window-infinite-loader": "^1.0.9",
58
58
  "@typescript-eslint/eslint-plugin": "^7.2.0",
59
59
  "@typescript-eslint/parser": "^7.2.0",
60
- "@vitejs/plugin-react-swc": "^3.5.0",
60
+ "@vitejs/plugin-react-swc": "^4.2.2",
61
61
  "eslint": "^8.57.0",
62
62
  "eslint-plugin-react-hooks": "^4.6.0",
63
63
  "eslint-plugin-react-refresh": "^0.4.6",
64
64
  "openapi3-ts": "^4.3.1",
65
65
  "prettier": "^3.2.5",
66
66
  "sass": "^1.77.2",
67
- "typescript": "^5.2.2",
67
+ "typescript": "5.8.2",
68
68
  "vite": "^7.2.2",
69
- "vite-plugin-dts": "^3.9.1"
69
+ "vite-plugin-dts": "^4.5.4"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "react": "^18.2.0",
@@ -1,8 +0,0 @@
1
- import { default as React } from 'react';
2
-
3
- interface IRefresherProps {
4
- refresh: () => void;
5
- period?: number;
6
- }
7
- declare const Refresher: React.MemoExoticComponent<({ refresh, period }: IRefresherProps) => import("react/jsx-runtime").JSX.Element>;
8
- export default Refresher;
@@ -1,8 +0,0 @@
1
- interface IColumnResizersProps {
2
- columnWidths: Uint16Array;
3
- resizeColumnIndex: number;
4
- setResizeColumnIndex: (newResizeColumnIndex: number) => void;
5
- tableBodyHeight: number;
6
- }
7
- declare const ColumnResizers: ({ columnWidths, resizeColumnIndex, setResizeColumnIndex, tableBodyHeight, }: IColumnResizersProps) => import("react/jsx-runtime").JSX.Element;
8
- export default ColumnResizers;
@@ -1,10 +0,0 @@
1
- import { default as React } from 'react';
2
-
3
- interface ITdProps {
4
- columnIndex: number;
5
- rowIndex: number;
6
- style: React.CSSProperties;
7
- }
8
- declare const Td: <T>({ columnIndex, rowIndex, style }: ITdProps) => import("react/jsx-runtime").JSX.Element | null;
9
- declare const MemoizedTd: typeof Td;
10
- export default MemoizedTd;
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
-
3
- interface IThProps {
4
- index: number;
5
- style: React.CSSProperties;
6
- }
7
- declare const Th: <T>({ index, style }: IThProps) => import("react/jsx-runtime").JSX.Element;
8
- declare const MemoizedTh: typeof Th;
9
- export default MemoizedTh;
@@ -1,14 +0,0 @@
1
- import { default as React } from 'react';
2
- import { oas31 } from 'openapi3-ts';
3
-
4
- export interface IFilterMenuComponentProps<T = any> {
5
- columnFilterValue?: T;
6
- onChange: (newValue: T | undefined, persistState?: boolean) => void;
7
- onInputKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;
8
- propIsRequired: boolean;
9
- propName: string;
10
- propSchema?: oas31.SchemaObject;
11
- translate: (key: string, ...args: Array<string | number>) => string;
12
- }
13
- declare const FilterMenuComponent: React.MemoExoticComponent<(<T>({ columnFilterValue, onChange, onInputKeyDown, propIsRequired, propName, propSchema, translate, }: IFilterMenuComponentProps<T>) => import("react/jsx-runtime").JSX.Element)>;
14
- export default FilterMenuComponent;
@@ -1,25 +0,0 @@
1
- import { default as React } from 'react';
2
- import { oas31 } from 'openapi3-ts';
3
- import { IColumnConfig } from '../../types';
4
-
5
- export interface IThMenuConfig<T> {
6
- referenceElement: HTMLElement;
7
- propName: string;
8
- propConfig?: IColumnConfig<T>;
9
- propIsRequired: boolean;
10
- }
11
- type TThMenuProps<T> = IThMenuConfig<T> & {
12
- isSortable: boolean;
13
- isFilterable: boolean;
14
- onChange: (newValue: T | undefined, persistState?: boolean) => void;
15
- onClose: (e: MouseEvent | React.MouseEvent) => void;
16
- onInputKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;
17
- propIsRequired: boolean;
18
- propSchema: oas31.SchemaObject;
19
- setFilterSortColumn: (sortColumn: string, sortAsc: boolean) => void;
20
- translate: (key: string, ...args: Array<string | number>) => string;
21
- value: T | null;
22
- };
23
- declare const ThMenu: <T>({ isSortable, isFilterable, onChange, onClose, onInputKeyDown, propConfig, propIsRequired, propName, propSchema, referenceElement, setFilterSortColumn, translate, value, }: TThMenuProps<T>) => import("react/jsx-runtime").JSX.Element | null;
24
- declare const MemoizedThMenu: typeof ThMenu;
25
- export default MemoizedThMenu;
@@ -1,2 +0,0 @@
1
- export declare const SELECT_ALL_COLUMN_NAME = "SELECT_ALL_COLUMN_NAME";
2
- export declare const SELECT_ALL_COLUMN_WIDTH = 40;
@@ -1,85 +0,0 @@
1
- import { default as React, Dispatch, InputHTMLAttributes, SetStateAction } from 'react';
2
- import { oas31 } from 'openapi3-ts';
3
- import { VariableSizeGrid, VariableSizeListProps } from 'react-window';
4
- import { IColumnConfig, IRenderData } from '../types';
5
- import { ENumberColumnFilterOperation } from '../inc/constant';
6
- import { default as InfiniteLoader } from 'react-window-infinite-loader';
7
-
8
- export interface IColumnFilterMap {
9
- [propName: string]: unknown;
10
- }
11
- export interface ITableDataState {
12
- columnFilterMap: IColumnFilterMap;
13
- searchQuery: string;
14
- sortColumn?: string;
15
- sortAsc?: boolean;
16
- }
17
- export interface ICustomElementProps {
18
- renderData?: IRenderData[];
19
- }
20
- export interface ISchemaTableProps<T> {
21
- Heading?: React.ComponentType<VariableSizeListProps & {
22
- setFilterSortColumn?: (sortColumn: string, sortAsc: boolean) => void;
23
- sortAsc?: boolean;
24
- sortColumn?: string;
25
- sortedRenderData?: IRenderData[];
26
- }>;
27
- checkedIndexes?: number[];
28
- config?: {
29
- [propName: string]: IColumnConfig<T>;
30
- };
31
- CustomSearchInput?: React.ComponentType<InputHTMLAttributes<HTMLInputElement>>;
32
- CustomElement?: React.ComponentType<ICustomElementProps>;
33
- customElementProps?: {
34
- [controlProp: string]: unknown;
35
- };
36
- data: T[] | ((getDataProps: ITableDataState) => Promise<T[]>);
37
- defaultColumnFilters?: IColumnFilterMap;
38
- defaultSortAsc?: boolean;
39
- defaultSortColumn?: string;
40
- disabledCheckedIndexes?: number[];
41
- enableAutoFocus?: boolean;
42
- enableRowCounter?: boolean;
43
- getRowClassName?: (rowData: T, dataIndex: number, filteredSortedData: IRenderData[]) => string;
44
- getRowSelected?: (rowData: T, dataIndex: number) => boolean;
45
- getSearchQueryFilterResult?: (rowData: T, searchQuery: string) => boolean;
46
- infiniteLoaderRef?: React.LegacyRef<InfiniteLoader>;
47
- isColumnFilterable?: boolean;
48
- isExportable?: boolean;
49
- isResizable?: boolean;
50
- isSearchable?: boolean;
51
- isSortable?: boolean;
52
- maxHeight?: number | "100%";
53
- setCheckedIndexes?: Dispatch<SetStateAction<number[]>>;
54
- onRowClick?: (rowData: T, dataIndex: number, event: React.MouseEvent) => void;
55
- onRowDoubleClick?: (rowData: T, dataIndex: number, event: React.MouseEvent) => void;
56
- onSearchEnter?: (searchQuery: string) => void;
57
- onTableDataStateChange?: (newTableDataState: ITableDataState) => void;
58
- rowHeight?: number;
59
- schema: oas31.SchemaObject;
60
- searchPlaceholder?: string;
61
- settingsStorageKey?: string;
62
- style?: React.CSSProperties;
63
- translate?: (key: string, ...args: Array<string | number>) => string;
64
- useFilterStateHash?: boolean;
65
- width?: number;
66
- variableSizeGridRef?: React.RefObject<VariableSizeGrid>;
67
- loadMoreItems?: (startIndex: number, stopIndex: number) => void | Promise<void>;
68
- itemCount?: number;
69
- displayTimezone?: "Europe/Amsterdam" | "Asia/Jakarta";
70
- autoRender?: boolean;
71
- }
72
- export interface IDateColumnFilterValue {
73
- from?: Date;
74
- to?: Date;
75
- filterEmpty?: boolean;
76
- }
77
- export interface INumberColumnFilterValue {
78
- [ENumberColumnFilterOperation.GT]: number;
79
- [ENumberColumnFilterOperation.LT]: number;
80
- [ENumberColumnFilterOperation.EQ]: number;
81
- filterEmpty?: boolean;
82
- }
83
- declare const SchemaTable: <T>({ CustomElement, CustomSearchInput, Heading, autoRender, checkedIndexes, config, customElementProps, data, defaultColumnFilters, defaultSortAsc, defaultSortColumn, disabledCheckedIndexes, displayTimezone, enableAutoFocus, enableRowCounter, getRowClassName, getRowSelected, getSearchQueryFilterResult, infiniteLoaderRef, isColumnFilterable, isExportable, isResizable, isSearchable, isSortable, itemCount, loadMoreItems, maxHeight, onRowClick, onRowDoubleClick, onSearchEnter, onTableDataStateChange, rowHeight, schema, searchPlaceholder, setCheckedIndexes, settingsStorageKey, style, translate, useFilterStateHash, variableSizeGridRef, width, }: ISchemaTableProps<T>) => import("react/jsx-runtime").JSX.Element;
84
- declare const MemoizedSchemaTable: typeof SchemaTable;
85
- export default MemoizedSchemaTable;
@@ -1,3 +0,0 @@
1
- import { IRenderData } from '../../types.ts';
2
-
3
- export declare const renderDataToExcel: (sortedRenderData: IRenderData[]) => void;
@@ -1 +0,0 @@
1
- export declare function useIsAllRowsChecked(): boolean;
@@ -1 +0,0 @@
1
- export declare function useOnColumnsWidthsChange(): (newColumnWidths: Uint16Array) => void;
@@ -1,4 +0,0 @@
1
- export declare const useResizeObserver: (elementRef: HTMLDivElement | null) => {
2
- width: number;
3
- height: number;
4
- };
@@ -1,4 +0,0 @@
1
- import { oas31 } from 'openapi3-ts';
2
- import { IColumnConfig } from '../types.ts';
3
-
4
- export declare function getIsColumnSortable<T>(isTableSortable: boolean, propSchema: oas31.SchemaObject | undefined, propConfig: IColumnConfig<T> | undefined): boolean;
@@ -1,15 +0,0 @@
1
- export declare const DEFAULT_DATE_FORMAT = "dd MMM yyyy";
2
- export declare const DEFAULT_DATE_TIME_FORMAT = "dd MMM yyyy HH:mm";
3
- export declare const MINIMUM_COLUMN_WIDTH = 25;
4
- export declare const HEADER_ROW_HEIGHT = 50;
5
- export declare const RESIZER_WIDTH = 3;
6
- export declare enum ENumberColumnFilterOperation {
7
- "GT" = "GT",
8
- "LT" = "LT",
9
- "EQ" = "EQ"
10
- }
11
- export declare enum EColumnFilterStatus {
12
- UNAVAILABLE = "UNAVAILABLE",
13
- AVAILABLE = "AVAILABLE",
14
- ACTIVE = "ACTIVE"
15
- }
@@ -1 +0,0 @@
1
- export declare const localeFormat: (date: Date | number, dateFormat: string) => string;
@@ -1 +0,0 @@
1
- export declare function defaultTranslate(key: string, ...args: (string | number)[]): string;
@@ -1,9 +0,0 @@
1
- import { default as SchemaTable, ICustomElementProps, ITableDataState, ISchemaTableProps } from './SchemaTable';
2
- import { IColumnConfig, IRenderData, ITdBodyProps } from './types';
3
- import { default as Th } from './SchemaTable/Th';
4
- import { DEFAULT_DATE_FORMAT, DEFAULT_DATE_TIME_FORMAT, EColumnFilterStatus, MINIMUM_COLUMN_WIDTH, RESIZER_WIDTH } from './inc/constant';
5
- import { IFilterMenuComponentProps } from './SchemaTable/ThMenu/FilterMenuComponent';
6
- import { default as Refresher } from './Refresher';
7
-
8
- export type { IColumnConfig, ICustomElementProps, IFilterMenuComponentProps, ITableDataState, IRenderData, ISchemaTableProps, ITdBodyProps, };
9
- export { DEFAULT_DATE_FORMAT, DEFAULT_DATE_TIME_FORMAT, EColumnFilterStatus, MINIMUM_COLUMN_WIDTH, RESIZER_WIDTH, SchemaTable, Th, Refresher, };
@@ -1,42 +0,0 @@
1
- import { IColumnConfig, IRenderData } from '../types.ts';
2
- import { ReferenceObject, SchemaObject } from 'openapi3-ts/oas31';
3
- import { ITableDataState } from '../SchemaTable';
4
- import { Dispatch, SetStateAction } from 'react';
5
- import { IThMenuConfig } from '../SchemaTable/ThMenu';
6
- import * as React from "react";
7
- export interface ISchemaTableContext<T = any> {
8
- checkedIndexes?: number[];
9
- columnNames: string[];
10
- columnWidths: Uint16Array;
11
- config?: {
12
- [propName: string]: IColumnConfig<T>;
13
- };
14
- disabledCheckedIndexes?: number[];
15
- displayTimezone?: string;
16
- dropTargetIndex: number;
17
- getRowClassName?: (rowData: T, dataIndex: number, filteredSortedData: IRenderData[]) => string;
18
- getRowSelected?: (rowData: T, dataIndex: number) => boolean;
19
- isColumnFilterable: boolean;
20
- isItemLoaded: (rowIndex: number) => boolean;
21
- isSortable: boolean;
22
- lastCheckChangedRowIndex?: number;
23
- onRowClick?: (rowData: T, dataIndex: number, event: React.MouseEvent) => void;
24
- onRowDoubleClick?: (rowData: T, dataIndex: number, event: React.MouseEvent) => void;
25
- properties: {
26
- [propertyName: string]: SchemaObject | ReferenceObject;
27
- };
28
- required: string[];
29
- setCheckedIndexes?: Dispatch<SetStateAction<number[]>>;
30
- setCustomColumnNames: Dispatch<SetStateAction<string[] | undefined>>;
31
- setCustomColumnWidths: Dispatch<SetStateAction<Uint16Array | undefined>>;
32
- setDropTargetIndex: (dropTargetIndex: number) => void;
33
- setFilterSortColumn: (sortColumn: string, sortAsc: boolean) => void;
34
- setLastCheckChangedRowIndex: Dispatch<SetStateAction<number | undefined>>;
35
- setMenuConfig: React.Dispatch<React.SetStateAction<IThMenuConfig<T> | undefined>>;
36
- settingsStorageKey?: string;
37
- sortedRenderData?: IRenderData[];
38
- sourceData?: T[] | null;
39
- tableDataState: ITableDataState;
40
- translate: (key: string, ...args: Array<string | number>) => string;
41
- }
42
- export declare const SchemaTableContext: React.Context<ISchemaTableContext<any>>;
@@ -1,33 +0,0 @@
1
- import { default as React } from 'react';
2
- import { IFilterMenuComponentProps } from './SchemaTable/ThMenu/FilterMenuComponent';
3
-
4
- export interface ITdBodyProps<T> {
5
- rowData: T;
6
- dataIndex: number;
7
- rowIndex: number;
8
- }
9
- export interface IColumnConfig<T> {
10
- FilterMenu?: React.ComponentType<IFilterMenuComponentProps>;
11
- align?: "start" | "center" | "end";
12
- dateFormat?: string;
13
- defaultSortDesc?: boolean;
14
- filter?: (rowData: T, columnFilterValue: unknown) => boolean;
15
- hidden?: boolean;
16
- hoverTitle?: string;
17
- isFilterable?: boolean;
18
- order?: number;
19
- TdBody?: React.ComponentType<ITdBodyProps<T> & Record<string, unknown>>;
20
- tdBodyProps?: Record<string, unknown>;
21
- renderData?: (rowData: T, dataIndex: number) => string;
22
- showTimezones?: false;
23
- sort?: (a: T, b: T, sortAsc: boolean) => number;
24
- sortByValue?: boolean;
25
- isSortable?: boolean;
26
- title?: string | React.ReactElement;
27
- width?: number;
28
- timezone?: "Asia/Jakarta" | "Europe/Amsterdam";
29
- }
30
- export interface IRenderData {
31
- _index: number;
32
- [key: string]: string;
33
- }