@bsol-oss/react-datatable5 5.0.1 → 6.0.1

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.
Files changed (44) hide show
  1. package/dist/index.d.ts +124 -26
  2. package/dist/index.js +1090 -93
  3. package/dist/index.mjs +1090 -99
  4. package/dist/types/components/Controls/TablePagination.d.ts +1 -0
  5. package/dist/types/components/DataTable/CardHeader.d.ts +13 -0
  6. package/dist/types/components/DataTable/DataDisplay.d.ts +4 -0
  7. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  8. package/dist/types/components/DataTable/DataTableContext.d.ts +2 -1
  9. package/dist/types/components/DataTable/DataTableServer.d.ts +1 -1
  10. package/dist/types/components/DataTable/Table.d.ts +1 -1
  11. package/dist/types/components/DataTable/TableCardContainer.d.ts +2 -1
  12. package/dist/types/components/DataTable/TableCards.d.ts +1 -1
  13. package/dist/types/components/DataTable/useDataFromUrl.d.ts +5 -4
  14. package/dist/types/components/DataTable/useDataTableContext.d.ts +1 -1
  15. package/dist/types/components/DataTable/useDataTableServer.d.ts +1 -2
  16. package/dist/types/components/DataTable/utils/getColumns.d.ts +13 -0
  17. package/dist/types/components/DatePicker/DatePicker.d.ts +21 -0
  18. package/dist/types/components/DatePicker/RangeDatePicker.d.ts +18 -0
  19. package/dist/types/components/DatePicker/getMultiDates.d.ts +7 -0
  20. package/dist/types/components/DatePicker/getRangeDates.d.ts +6 -0
  21. package/dist/types/components/Form/Form.d.ts +33 -0
  22. package/dist/types/components/Form/SchemaFormContext.d.ts +15 -0
  23. package/dist/types/components/Form/components/BooleanPicker.d.ts +4 -0
  24. package/dist/types/components/Form/components/DatePicker.d.ts +4 -0
  25. package/dist/types/components/Form/components/IdPicker.d.ts +7 -0
  26. package/dist/types/components/Form/components/IdViewer.d.ts +8 -0
  27. package/dist/types/components/Form/components/NumberInputField.d.ts +4 -0
  28. package/dist/types/components/Form/components/ObjectInput.d.ts +4 -0
  29. package/dist/types/components/Form/components/StringInputField.d.ts +10 -0
  30. package/dist/types/components/Form/useSchemaContext.d.ts +10 -0
  31. package/dist/types/components/Form/utils/clearEmptyString.d.ts +3 -0
  32. package/dist/types/components/Form/utils/getTableData.d.ts +12 -0
  33. package/dist/types/components/Form/utils/idListSanityCheck.d.ts +1 -0
  34. package/dist/types/components/Form/utils/snakeToLabel.d.ts +1 -0
  35. package/dist/types/components/ui/accordion.d.ts +12 -0
  36. package/dist/types/components/ui/checkbox-card.d.ts +13 -0
  37. package/dist/types/components/ui/data-list.d.ts +11 -0
  38. package/dist/types/components/ui/link-button.d.ts +5 -0
  39. package/dist/types/components/ui/number-input.d.ts +8 -0
  40. package/dist/types/components/ui/pagination.d.ts +20 -0
  41. package/dist/types/components/ui/radio-card.d.ts +16 -0
  42. package/dist/types/components/ui/toggle-tip.d.ts +10 -0
  43. package/dist/types/index.d.ts +9 -2
  44. package/package.json +8 -3
package/dist/index.d.ts CHANGED
@@ -1,12 +1,15 @@
1
1
  /// <reference types="react" />
2
- import { RowData, OnChangeFn, Updater, FilterFn, ColumnDef, RowSelectionState, ColumnOrderState, ColumnFiltersState, PaginationState, SortingState, VisibilityState, Row, Table as Table$1, Column } from '@tanstack/react-table';
2
+ import { Row, RowData, OnChangeFn, Updater, FilterFn, ColumnDef, RowSelectionState, ColumnOrderState, ColumnFiltersState, PaginationState, SortingState, VisibilityState, Table as Table$1, Column } from '@tanstack/react-table';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { ReactNode } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
- import { RankingInfo } from '@tanstack/match-sorter-utils';
6
+ import { ImageProps, TableHeaderProps as TableHeaderProps$1, TableRootProps, GridProps, CardBodyProps, TextProps } from '@chakra-ui/react';
7
7
  import { IconType } from 'react-icons';
8
- import { TableHeaderProps as TableHeaderProps$1, TableRootProps, GridProps, CardBodyProps, TextProps } from '@chakra-ui/react';
8
+ import { RankingInfo } from '@tanstack/match-sorter-utils';
9
9
  import * as _tanstack_table_core from '@tanstack/table-core';
10
+ import { JSONSchema7 } from 'json-schema';
11
+ import { FieldValues, SubmitHandler } from 'react-hook-form';
12
+ import { RenderProps, Props } from 'dayzed';
10
13
 
11
14
  interface DensityToggleButtonProps {
12
15
  icon?: React__default.ReactElement;
@@ -66,6 +69,22 @@ declare const ResetSortingButton: ({ text, }: ResetSortingButtonProps) => react_
66
69
 
67
70
  declare const RowCountText: () => react_jsx_runtime.JSX.Element;
68
71
 
72
+ interface CardHeaderProps<TData> {
73
+ row: Row<TData>;
74
+ imageColumnId?: keyof TData;
75
+ titleColumnId?: keyof TData;
76
+ tagColumnId?: keyof TData;
77
+ tagIcon?: IconType;
78
+ showTag?: boolean;
79
+ imageProps?: ImageProps;
80
+ }
81
+ declare const CardHeader: <TData>({ row, imageColumnId, titleColumnId, tagColumnId, tagIcon, showTag, imageProps, }: CardHeaderProps<TData>) => react_jsx_runtime.JSX.Element;
82
+
83
+ interface DataDisplayProps {
84
+ variant?: "horizontal" | "stats" | "";
85
+ }
86
+ declare const DataDisplay: ({ variant }: DataDisplayProps) => react_jsx_runtime.JSX.Element;
87
+
69
88
  type DensityState = "sm" | "md" | "lg";
70
89
  interface DensityTableState {
71
90
  density: DensityState;
@@ -99,7 +118,7 @@ declare module "@tanstack/react-table" {
99
118
  interface DataTableProps<TData> {
100
119
  children?: ReactNode | ReactNode[];
101
120
  data: TData[];
102
- columns: ColumnDef<TData, any>[];
121
+ columns: ColumnDef<TData, unknown>[];
103
122
  enableRowSelection?: boolean;
104
123
  enableMultiRowSelection?: boolean;
105
124
  enableSubRowSelection?: boolean;
@@ -123,6 +142,10 @@ interface DataTableProps<TData> {
123
142
  }
124
143
  declare const DataTable: <TData>({ columns, data, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, onRowSelect, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, children, }: DataTableProps<TData>) => react_jsx_runtime.JSX.Element;
125
144
 
145
+ interface RefreshDataConfig {
146
+ debounce?: boolean;
147
+ delay?: number;
148
+ }
126
149
  interface UseDataFromUrlReturn<T> {
127
150
  data: T;
128
151
  loading: boolean;
@@ -130,10 +153,7 @@ interface UseDataFromUrlReturn<T> {
130
153
  /**
131
154
  * Delays sending the request when the `refreshData` function is called multiple times within a short period.
132
155
  */
133
- refreshData: (config?: {
134
- debounce?: boolean;
135
- delay?: number;
136
- }) => void;
156
+ refreshData: (config?: RefreshDataConfig) => void;
137
157
  }
138
158
  interface UseDataFromUrlProps<T> {
139
159
  url: string;
@@ -196,17 +216,16 @@ interface UseDataTableServerProps<TData> extends Omit<UseDataFromUrlProps<DataRe
196
216
  interface UseDataTableServerReturn<TData> extends UseDataFromUrlReturn<DataResponse<TData>>, UseDataTableReturn {
197
217
  }
198
218
  interface Result<T> {
199
- results: T[];
219
+ data: T[];
200
220
  }
201
221
  interface DataResponse<T> extends Result<T> {
202
- success: boolean;
203
222
  count: number;
204
223
  }
205
224
  declare const useDataTableServer: <TData>({ url, onFetchSuccess, default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, debounce, debounceDelay, }: UseDataTableServerProps<TData>) => UseDataTableServerReturn<TData>;
206
225
 
207
226
  interface DataTableServerProps<TData> extends UseDataFromUrlReturn<DataResponse<TData>> {
208
227
  children: ReactNode | ReactNode[];
209
- columns: ColumnDef<TData, any>[];
228
+ columns: ColumnDef<TData>[];
210
229
  enableRowSelection?: boolean;
211
230
  enableMultiRowSelection?: boolean;
212
231
  enableSubRowSelection?: boolean;
@@ -230,16 +249,6 @@ interface DataTableServerProps<TData> extends UseDataFromUrlReturn<DataResponse<
230
249
  }
231
250
  declare const DataTableServer: <TData>({ columns, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, onRowSelect, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, data, loading, hasError, refreshData, children, }: DataTableServerProps<TData>) => react_jsx_runtime.JSX.Element;
232
251
 
233
- interface DefaultCardProps<TData> {
234
- row: Row<TData>;
235
- imageColumnId?: keyof TData;
236
- titleColumnId?: keyof TData;
237
- tagColumnId?: keyof TData;
238
- tagIcon?: IconType;
239
- showTag?: boolean;
240
- }
241
- declare const DefaultCard: <TData>({ row, imageColumnId, titleColumnId, tagColumnId, tagIcon, showTag, }: DefaultCardProps<TData>) => react_jsx_runtime.JSX.Element;
242
-
243
252
  interface TableControlsProps {
244
253
  totalText?: string;
245
254
  showFilter?: boolean;
@@ -275,7 +284,7 @@ interface TableProps extends TableRootProps {
275
284
  emptyComponent?: ReactNode;
276
285
  children: ReactNode;
277
286
  }
278
- declare const Table: ({ children, emptyComponent, ...props }: TableProps) => string | number | bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null;
287
+ declare const Table: ({ children, emptyComponent, ...props }: TableProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null;
279
288
 
280
289
  interface TableBodyProps {
281
290
  pinnedBgColor?: {
@@ -299,8 +308,9 @@ declare const TableBody: ({ pinnedBgColor, showSelector, alwaysShowSelector, }:
299
308
 
300
309
  interface TableCardContainerProps extends GridProps {
301
310
  children: ReactNode;
311
+ variant?: "carousel" | "";
302
312
  }
303
- declare const TableCardContainer: ({ children, ...props }: TableCardContainerProps) => react_jsx_runtime.JSX.Element;
313
+ declare const TableCardContainer: ({ children, variant, ...props }: TableCardContainerProps) => react_jsx_runtime.JSX.Element;
304
314
 
305
315
  interface TableCardsProps<TData> {
306
316
  isSelectable?: boolean;
@@ -309,7 +319,7 @@ interface TableCardsProps<TData> {
309
319
  cardBodyProps?: CardBodyProps;
310
320
  }
311
321
  declare const DefaultCardTitle: () => react_jsx_runtime.JSX.Element;
312
- declare const TableCards: <TData>({ isSelectable, showDisplayNameOnly, renderTitle, cardBodyProps }: TableCardsProps<TData>) => react_jsx_runtime.JSX.Element;
322
+ declare const TableCards: <TData>({ isSelectable, showDisplayNameOnly, renderTitle, cardBodyProps, }: TableCardsProps<TData>) => react_jsx_runtime.JSX.Element;
313
323
 
314
324
  interface TableRendererProps<TData> {
315
325
  render: (render: Table$1<TData>) => React__default.ReactElement;
@@ -368,7 +378,7 @@ declare const TextCell: ({ label, padding, children, ...props }: TextCellProps)
368
378
 
369
379
  declare const useDataTableContext: () => {
370
380
  table: _tanstack_table_core.Table<any>;
371
- refreshData: () => void;
381
+ refreshData: (config?: RefreshDataConfig | undefined) => void;
372
382
  globalFilter: string;
373
383
  setGlobalFilter: _tanstack_table_core.OnChangeFn<string>;
374
384
  loading: boolean;
@@ -382,6 +392,94 @@ declare const FilterOptions: ({ column }: FilterOptionsProps) => react_jsx_runti
382
392
 
383
393
  declare const GlobalFilter: () => react_jsx_runtime.JSX.Element;
384
394
 
395
+ interface GetColumnsConfigs<K extends RowData> {
396
+ schema: JSONSchema7;
397
+ ignore?: K[];
398
+ width?: number[];
399
+ meta?: {
400
+ [key in K as string]?: object;
401
+ };
402
+ defaultWidth?: number;
403
+ }
404
+ declare const widthSanityCheck: <K extends unknown>(widthList: number[], ignoreList: K[], properties: { [key in K as string]?: object | undefined; }) => void;
405
+ declare const getColumns: <TData extends unknown>({ schema, ignore, width, meta, defaultWidth, }: GetColumnsConfigs<TData>) => ColumnDef<TData>[];
406
+
407
+ interface DisplayTextProps {
408
+ title?: string;
409
+ addNew?: string;
410
+ submit?: string;
411
+ confirm?: string;
412
+ save?: string;
413
+ empty?: string;
414
+ cancel?: string;
415
+ submitSuccess?: string;
416
+ submitAgain?: string;
417
+ fieldRequired?: string;
418
+ }
419
+ interface FormProps<TData extends FieldValues> {
420
+ schema: JSONSchema7;
421
+ serverUrl: string;
422
+ order?: string[];
423
+ ignore?: string[];
424
+ onSubmit?: SubmitHandler<TData>;
425
+ preLoadedValues?: object;
426
+ rowNumber?: number | string;
427
+ displayText?: DisplayTextProps;
428
+ }
429
+ interface CustomJSONSchema7Definition extends JSONSchema7 {
430
+ variant: string;
431
+ in_table: string;
432
+ column_ref: string;
433
+ display_column: string;
434
+ gridColumn: string;
435
+ gridRow: string;
436
+ }
437
+ declare const Form: <TData extends FieldValues>({ schema, serverUrl, order, ignore, onSubmit, preLoadedValues, rowNumber, displayText, }: FormProps<TData>) => react_jsx_runtime.JSX.Element;
438
+
439
+ interface CalendarProps extends RenderProps {
440
+ firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
441
+ }
442
+ interface GetDateColorProps {
443
+ today: boolean;
444
+ selected: boolean;
445
+ selectable: boolean;
446
+ }
447
+ interface GetVariantProps {
448
+ today: boolean;
449
+ selected: boolean;
450
+ selectable: boolean;
451
+ }
452
+ interface DatePickerProps extends Props {
453
+ }
454
+
455
+ interface GetMultiDatesProps {
456
+ selected: boolean;
457
+ selectable: boolean;
458
+ selectedDate: Date;
459
+ selectedDates: Date[];
460
+ }
461
+ declare const getMultiDates: ({ selected, selectedDate, selectedDates, selectable, }: GetMultiDatesProps) => Date[];
462
+
463
+ interface GetRangeDatesProps {
464
+ selectable: boolean;
465
+ date: Date;
466
+ selectedDates: Date[];
467
+ }
468
+ declare const getRangeDates: ({ selectable, date, selectedDates, }: GetRangeDatesProps) => Date[] | undefined;
469
+
470
+ interface RangeCalendarProps extends RenderProps {
471
+ firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
472
+ selected?: Date[];
473
+ }
474
+ interface GetStyleProps {
475
+ today: boolean;
476
+ selected: boolean;
477
+ unavailable: boolean;
478
+ isInRange: boolean;
479
+ }
480
+ interface RangeDatePickerProps extends Props {
481
+ }
482
+
385
483
  declare module "@tanstack/react-table" {
386
484
  interface ColumnMeta<TData extends RowData, TValue> {
387
485
  /**
@@ -434,4 +532,4 @@ declare module "@tanstack/react-table" {
434
532
  }
435
533
  }
436
534
 
437
- export { type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, DefaultCard, type DefaultCardProps, DefaultCardTitle, DefaultTable, type DefaultTableProps, DensityToggleButton, type DensityToggleButtonProps, EditFilterButton, type EditFilterButtonProps, EditOrderButton, type EditOrderButtonProps, EditSortingButton, type EditSortingButtonProps, EditViewButton, type EditViewButtonProps, FilterOptions, type FilterOptionsProps, GlobalFilter, PageSizeControl, type PageSizeControlProps, ReloadButton, type ReloadButtonProps, ResetFilteringButton, type ResetFilteringButtonProps, ResetSelectionButton, type ResetSelectionButtonProps, ResetSortingButton, type ResetSortingButtonProps, type Result, RowCountText, Table, TableBody, type TableBodyProps, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableComponent, TableControls, type TableControlsProps, TableFilter, TableFilterTags, TableFooter, type TableFooterProps, TableHeader, type TableHeaderProps, TableLoadingComponent, type TableLoadingComponentProps, TableOrderer, TablePagination, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, TextCell, type TextCellProps, type UseDataFromUrlProps, type UseDataFromUrlReturn, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, useDataFromUrl, useDataTable, useDataTableContext, useDataTableServer };
535
+ export { type CalendarProps, CardHeader, type CardHeaderProps, type CustomJSONSchema7Definition, DataDisplay, type DataDisplayProps, type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, type DatePickerProps, DefaultCardTitle, DefaultTable, type DefaultTableProps, DensityToggleButton, type DensityToggleButtonProps, type DisplayTextProps, EditFilterButton, type EditFilterButtonProps, EditOrderButton, type EditOrderButtonProps, EditSortingButton, type EditSortingButtonProps, EditViewButton, type EditViewButtonProps, FilterOptions, type FilterOptionsProps, Form, type FormProps, type GetColumnsConfigs, type GetDateColorProps, type GetMultiDatesProps, type GetRangeDatesProps, type GetStyleProps, type GetVariantProps, GlobalFilter, PageSizeControl, type PageSizeControlProps, type RangeCalendarProps, type RangeDatePickerProps, type RefreshDataConfig, ReloadButton, type ReloadButtonProps, ResetFilteringButton, type ResetFilteringButtonProps, ResetSelectionButton, type ResetSelectionButtonProps, ResetSortingButton, type ResetSortingButtonProps, type Result, RowCountText, Table, TableBody, type TableBodyProps, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableComponent, TableControls, type TableControlsProps, TableFilter, TableFilterTags, TableFooter, type TableFooterProps, TableHeader, type TableHeaderProps, TableLoadingComponent, type TableLoadingComponentProps, TableOrderer, TablePagination, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, TextCell, type TextCellProps, type UseDataFromUrlProps, type UseDataFromUrlReturn, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, getColumns, getMultiDates, getRangeDates, useDataFromUrl, useDataTable, useDataTableContext, useDataTableServer, widthSanityCheck };