@bsol-oss/react-datatable5 12.0.0-beta.6 → 12.0.0-beta.8

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 +21 -19
  2. package/dist/index.js +77 -0
  3. package/dist/index.mjs +77 -1
  4. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  5. package/dist/types/components/DataTable/DataTableServer.d.ts +1 -1
  6. package/dist/types/components/DataTable/DefaultTable.d.ts +5 -5
  7. package/dist/types/components/DataTable/context/DataTableContext.d.ts +2 -1
  8. package/dist/types/components/DataTable/controls/DensityFeature.d.ts +23 -0
  9. package/dist/types/components/DataTable/controls/DensityToggleButton.d.ts +6 -0
  10. package/dist/types/components/DataTable/controls/EditSortingButton.d.ts +7 -0
  11. package/dist/types/components/DataTable/controls/FilterDialog.d.ts +5 -0
  12. package/dist/types/components/DataTable/controls/PageSizeControl.d.ts +4 -0
  13. package/dist/types/components/DataTable/controls/Pagination.d.ts +1 -0
  14. package/dist/types/components/DataTable/controls/ReloadButton.d.ts +5 -0
  15. package/dist/types/components/DataTable/controls/ResetFilteringButton.d.ts +4 -0
  16. package/dist/types/components/DataTable/controls/ResetSelectionButton.d.ts +4 -0
  17. package/dist/types/components/DataTable/controls/ResetSortingButton.d.ts +4 -0
  18. package/dist/types/components/DataTable/controls/RowCountText.d.ts +1 -0
  19. package/dist/types/components/DataTable/controls/SelectAllRowsToggle.d.ts +8 -0
  20. package/dist/types/components/DataTable/controls/TableControls.d.ts +21 -0
  21. package/dist/types/components/DataTable/controls/TableFilterTags.d.ts +1 -0
  22. package/dist/types/components/DataTable/controls/TableFilters.d.ts +1 -0
  23. package/dist/types/components/DataTable/controls/TableSelector.d.ts +1 -0
  24. package/dist/types/components/DataTable/controls/TableSorter.d.ts +1 -0
  25. package/dist/types/components/DataTable/controls/TableViewer.d.ts +1 -0
  26. package/dist/types/components/DataTable/controls/ViewDialog.d.ts +5 -0
  27. package/dist/types/components/DataTable/display/CardHeader.d.ts +13 -0
  28. package/dist/types/components/DataTable/display/DataDisplay.d.ts +6 -0
  29. package/dist/types/components/DataTable/display/EmptyState.d.ts +5 -0
  30. package/dist/types/components/DataTable/display/ErrorAlert.d.ts +4 -0
  31. package/dist/types/components/DataTable/display/RecordDisplay.d.ts +9 -0
  32. package/dist/types/components/DataTable/display/Table.d.ts +10 -0
  33. package/dist/types/components/DataTable/display/TableBody.d.ts +21 -0
  34. package/dist/types/components/DataTable/display/TableCardContainer.d.ts +7 -0
  35. package/dist/types/components/DataTable/display/TableCards.d.ts +11 -0
  36. package/dist/types/components/DataTable/display/TableComponent.d.ts +6 -0
  37. package/dist/types/components/DataTable/display/TableDataDisplay.d.ts +1 -0
  38. package/dist/types/components/DataTable/display/TableFooter.d.ts +9 -0
  39. package/dist/types/components/DataTable/display/TableHeader.d.ts +13 -0
  40. package/dist/types/components/DataTable/display/TableLoadingComponent.d.ts +5 -0
  41. package/dist/types/components/DataTable/display/TextCell.d.ts +10 -0
  42. package/dist/types/components/DataTable/useDataTable.d.ts +1 -1
  43. package/dist/types/index.d.ts +32 -31
  44. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Row, Table as Table$1, OnChangeFn, RowData, Updater, FilterFn, ColumnDef, RowSelectionState, ColumnOrderState, ColumnFiltersState, PaginationState, SortingState, VisibilityState, 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, Dispatch, SetStateAction } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
@@ -85,23 +85,6 @@ interface ErrorAlertProps {
85
85
  }
86
86
  declare const ErrorAlert: ({ showMessage }: ErrorAlertProps) => react_jsx_runtime.JSX.Element;
87
87
 
88
- interface DataTableContext<TData = unknown> {
89
- table: Table$1<TData>;
90
- globalFilter: string;
91
- setGlobalFilter: OnChangeFn<string>;
92
- type: "client" | "server";
93
- translate: UseTranslationResponse<any, any>;
94
- }
95
- declare const DataTableContext: React$1.Context<DataTableContext<unknown>>;
96
-
97
- declare const useDataTableContext: <TData>() => DataTableContext<TData>;
98
-
99
- interface DataDisplayProps {
100
- variant?: "horizontal" | "stats" | "";
101
- translate?: UseTranslationResponse<any, any>;
102
- }
103
- declare const DataDisplay: ({ variant }: DataDisplayProps) => react_jsx_runtime.JSX.Element;
104
-
105
88
  type DensityState = "sm" | "md" | "lg";
106
89
  interface DensityTableState {
107
90
  density: DensityState;
@@ -183,6 +166,23 @@ interface DataTableProps<TData = unknown> {
183
166
  */
184
167
  declare function DataTable<TData = unknown>({ columns, data, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, translate, children, }: DataTableProps<TData>): react_jsx_runtime.JSX.Element;
185
168
 
169
+ interface DataTableContext<TData = unknown> extends DataTableProps {
170
+ table: Table$1<TData>;
171
+ globalFilter: string;
172
+ setGlobalFilter: OnChangeFn<string>;
173
+ type: "client" | "server";
174
+ translate: UseTranslationResponse<any, any>;
175
+ }
176
+ declare const DataTableContext: React$1.Context<DataTableContext<unknown>>;
177
+
178
+ declare const useDataTableContext: <TData>() => DataTableContext<TData>;
179
+
180
+ interface DataDisplayProps {
181
+ variant?: "horizontal" | "stats" | "";
182
+ translate?: UseTranslationResponse<any, any>;
183
+ }
184
+ declare const DataDisplay: ({ variant }: DataDisplayProps) => react_jsx_runtime.JSX.Element;
185
+
186
186
  interface DataTableDefaultState {
187
187
  sorting?: SortingState;
188
188
  columnFilters?: ColumnFiltersState;
@@ -441,6 +441,8 @@ interface GetColumnsConfigs<K extends RowData> {
441
441
  declare const widthSanityCheck: <K extends unknown>(widthList: number[], ignoreList: K[], properties: { [key in K as string]?: object | undefined; }) => void;
442
442
  declare const getColumns: <TData extends unknown>({ schema, include, ignore, width, meta, defaultWidth, translate, }: GetColumnsConfigs<TData>) => ColumnDef<TData>[];
443
443
 
444
+ declare const TableDataDisplay: () => react_jsx_runtime.JSX.Element;
445
+
444
446
  interface FilterOptionsProps {
445
447
  column: string;
446
448
  }
@@ -612,4 +614,4 @@ declare module "@tanstack/react-table" {
612
614
  }
613
615
  }
614
616
 
615
- export { type CalendarProps, CardHeader, type CardHeaderProps, type CustomJSONSchema7Definition, DataDisplay, type DataDisplayProps, type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, type DatePickerProps, DefaultCardTitle, DefaultForm, type DefaultFormProps, DefaultTable, type DefaultTableProps, DensityToggleButton, type DensityToggleButtonProps, type EditFilterButtonProps, EditSortingButton, type EditSortingButtonProps, type EditViewButtonProps, EmptyState, type EmptyStateProps, ErrorAlert, type ErrorAlertProps, FilterDialog, FilterOptions, type FilterOptionsProps, FormBody, FormRoot, type FormRootProps, FormTitle, type GetColumnsConfigs, type GetDateColorProps, type GetMultiDatesProps, type GetRangeDatesProps, type GetStyleProps, type GetVariantProps, GlobalFilter, PageSizeControl, type PageSizeControlProps, Pagination, type RangeCalendarProps, type RangeDatePickerProps, RecordDisplay, type RecordDisplayProps, 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, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, TextCell, type TextCellProps, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, type UseFormProps, ViewDialog, getColumns, getMultiDates, getRangeDates, idPickerSanityCheck, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };
617
+ export { type CalendarProps, CardHeader, type CardHeaderProps, type CustomJSONSchema7Definition, DataDisplay, type DataDisplayProps, type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, type DatePickerProps, DefaultCardTitle, DefaultForm, type DefaultFormProps, DefaultTable, type DefaultTableProps, DensityToggleButton, type DensityToggleButtonProps, type EditFilterButtonProps, EditSortingButton, type EditSortingButtonProps, type EditViewButtonProps, EmptyState, type EmptyStateProps, ErrorAlert, type ErrorAlertProps, FilterDialog, FilterOptions, type FilterOptionsProps, FormBody, FormRoot, type FormRootProps, FormTitle, type GetColumnsConfigs, type GetDateColorProps, type GetMultiDatesProps, type GetRangeDatesProps, type GetStyleProps, type GetVariantProps, GlobalFilter, PageSizeControl, type PageSizeControlProps, Pagination, type RangeCalendarProps, type RangeDatePickerProps, RecordDisplay, type RecordDisplayProps, 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, TableDataDisplay, TableFilter, TableFilterTags, TableFooter, type TableFooterProps, TableHeader, type TableHeaderProps, TableLoadingComponent, type TableLoadingComponentProps, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, TextCell, type TextCellProps, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, type UseFormProps, ViewDialog, getColumns, getMultiDates, getRangeDates, idPickerSanityCheck, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };
package/dist/index.js CHANGED
@@ -2814,6 +2814,21 @@ function DataTable({ columns, data, enableRowSelection = true, enableMultiRowSel
2814
2814
  setGlobalFilter,
2815
2815
  type: "client",
2816
2816
  translate,
2817
+ columns,
2818
+ sorting,
2819
+ setSorting,
2820
+ columnFilters,
2821
+ setColumnFilters,
2822
+ pagination,
2823
+ setPagination,
2824
+ rowSelection,
2825
+ setRowSelection,
2826
+ columnOrder,
2827
+ setColumnOrder,
2828
+ density,
2829
+ setDensity,
2830
+ columnVisibility,
2831
+ setColumnVisibility,
2817
2832
  }, children: children }));
2818
2833
  }
2819
2834
 
@@ -2882,6 +2897,21 @@ function DataTableServer({ columns, enableRowSelection = true, enableMultiRowSel
2882
2897
  setGlobalFilter,
2883
2898
  type: "server",
2884
2899
  translate,
2900
+ columns,
2901
+ sorting,
2902
+ setSorting,
2903
+ columnFilters,
2904
+ setColumnFilters,
2905
+ pagination,
2906
+ setPagination,
2907
+ rowSelection,
2908
+ setRowSelection,
2909
+ columnOrder,
2910
+ setColumnOrder,
2911
+ density,
2912
+ setDensity,
2913
+ columnVisibility,
2914
+ setColumnVisibility,
2885
2915
  }, children: jsxRuntime.jsx(DataTableServerContext.Provider, { value: { url, query }, children: children }) }));
2886
2916
  }
2887
2917
 
@@ -3488,6 +3518,52 @@ const getColumns = ({ schema, include = [], ignore = [], width = [], meta = {},
3488
3518
  return columns;
3489
3519
  };
3490
3520
 
3521
+ const TableDataDisplay = () => {
3522
+ const { table, columns, translate } = useDataTableContext();
3523
+ const { query } = useDataTableServerContext();
3524
+ const { data } = query;
3525
+ const columnDef = table._getColumnDefs();
3526
+ console.log(columnDef, "glp");
3527
+ console.log(columnDef, columns, table.getState().columnOrder, data, "glp");
3528
+ const columnsMap = Object.fromEntries(columns.map((def) => {
3529
+ return [def.accessorKey, def];
3530
+ }));
3531
+ const columnHeaders = Object.keys(columnsMap);
3532
+ const columnWidths = columns
3533
+ .map(({ size }) => {
3534
+ if (!!size === false) {
3535
+ return "1fr";
3536
+ }
3537
+ return `${size}px`;
3538
+ })
3539
+ .join(" ");
3540
+ console.log({ columnWidths }, "hadfg");
3541
+ const cellProps = {
3542
+ flex: "1 0 0%",
3543
+ overflow: "auto",
3544
+ paddingX: "2",
3545
+ py: "1",
3546
+ borderBottomColor: { base: "colorPalette.200", _dark: "colorPalette.800" },
3547
+ borderBottomWidth: "1px",
3548
+ };
3549
+ return (jsxRuntime.jsxs(react.Grid, { templateColumns: `${columnWidths}`, overflow: "auto", borderWidth: "1px", borderColor: { base: "colorPalette.200", _dark: "colorPalette.800" }, children: [jsxRuntime.jsx(react.Grid, { templateColumns: `${columnWidths}`, column: `1/span ${columns.length}`, bg: { base: "colorPalette.200", _dark: "colorPalette.800" }, children: columnHeaders.map((header) => {
3550
+ return (jsxRuntime.jsx(react.Box, { flex: "1 0 0%", paddingX: "2", py: "1", children: translate.t(`column_header.${header}`) }));
3551
+ }) }), data?.data.map((record) => {
3552
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: columnHeaders.map((header) => {
3553
+ if (!!record === false) {
3554
+ return (jsxRuntime.jsx(react.Box, { ...cellProps, children: translate.t(`column_cell.placeholder`) }));
3555
+ }
3556
+ if (!!record[header] === false) {
3557
+ return (jsxRuntime.jsx(react.Box, { ...cellProps, children: translate.t(`column_cell.placeholder`) }));
3558
+ }
3559
+ if (typeof record[header] === "object") {
3560
+ return (jsxRuntime.jsx(react.Box, { ...cellProps, children: jsxRuntime.jsx(RecordDisplay, { object: record[header] }) }));
3561
+ }
3562
+ return jsxRuntime.jsx(react.Box, { ...cellProps, children: record[header] ?? "" });
3563
+ }) }));
3564
+ })] }));
3565
+ };
3566
+
3491
3567
  const AccordionItemTrigger = React__namespace.forwardRef(function AccordionItemTrigger(props, ref) {
3492
3568
  const { children, indicatorPlacement = "end", ...rest } = props;
3493
3569
  return (jsxRuntime.jsxs(react.Accordion.ItemTrigger, { ...rest, ref: ref, children: [indicatorPlacement === "start" && (jsxRuntime.jsx(react.Accordion.ItemIndicator, { rotate: { base: "-90deg", _open: "0deg" }, children: jsxRuntime.jsx(lu.LuChevronDown, {}) })), jsxRuntime.jsx(react.HStack, { gap: "4", flex: "1", textAlign: "start", width: "full", children: children }), indicatorPlacement === "end" && (jsxRuntime.jsx(react.Accordion.ItemIndicator, { children: jsxRuntime.jsx(lu.LuChevronDown, {}) }))] }));
@@ -5105,6 +5181,7 @@ exports.TableCardContainer = TableCardContainer;
5105
5181
  exports.TableCards = TableCards;
5106
5182
  exports.TableComponent = TableComponent;
5107
5183
  exports.TableControls = TableControls;
5184
+ exports.TableDataDisplay = TableDataDisplay;
5108
5185
  exports.TableFilter = TableFilter;
5109
5186
  exports.TableFilterTags = TableFilterTags;
5110
5187
  exports.TableFooter = TableFooter;
package/dist/index.mjs CHANGED
@@ -2794,6 +2794,21 @@ function DataTable({ columns, data, enableRowSelection = true, enableMultiRowSel
2794
2794
  setGlobalFilter,
2795
2795
  type: "client",
2796
2796
  translate,
2797
+ columns,
2798
+ sorting,
2799
+ setSorting,
2800
+ columnFilters,
2801
+ setColumnFilters,
2802
+ pagination,
2803
+ setPagination,
2804
+ rowSelection,
2805
+ setRowSelection,
2806
+ columnOrder,
2807
+ setColumnOrder,
2808
+ density,
2809
+ setDensity,
2810
+ columnVisibility,
2811
+ setColumnVisibility,
2797
2812
  }, children: children }));
2798
2813
  }
2799
2814
 
@@ -2862,6 +2877,21 @@ function DataTableServer({ columns, enableRowSelection = true, enableMultiRowSel
2862
2877
  setGlobalFilter,
2863
2878
  type: "server",
2864
2879
  translate,
2880
+ columns,
2881
+ sorting,
2882
+ setSorting,
2883
+ columnFilters,
2884
+ setColumnFilters,
2885
+ pagination,
2886
+ setPagination,
2887
+ rowSelection,
2888
+ setRowSelection,
2889
+ columnOrder,
2890
+ setColumnOrder,
2891
+ density,
2892
+ setDensity,
2893
+ columnVisibility,
2894
+ setColumnVisibility,
2865
2895
  }, children: jsx(DataTableServerContext.Provider, { value: { url, query }, children: children }) }));
2866
2896
  }
2867
2897
 
@@ -3468,6 +3498,52 @@ const getColumns = ({ schema, include = [], ignore = [], width = [], meta = {},
3468
3498
  return columns;
3469
3499
  };
3470
3500
 
3501
+ const TableDataDisplay = () => {
3502
+ const { table, columns, translate } = useDataTableContext();
3503
+ const { query } = useDataTableServerContext();
3504
+ const { data } = query;
3505
+ const columnDef = table._getColumnDefs();
3506
+ console.log(columnDef, "glp");
3507
+ console.log(columnDef, columns, table.getState().columnOrder, data, "glp");
3508
+ const columnsMap = Object.fromEntries(columns.map((def) => {
3509
+ return [def.accessorKey, def];
3510
+ }));
3511
+ const columnHeaders = Object.keys(columnsMap);
3512
+ const columnWidths = columns
3513
+ .map(({ size }) => {
3514
+ if (!!size === false) {
3515
+ return "1fr";
3516
+ }
3517
+ return `${size}px`;
3518
+ })
3519
+ .join(" ");
3520
+ console.log({ columnWidths }, "hadfg");
3521
+ const cellProps = {
3522
+ flex: "1 0 0%",
3523
+ overflow: "auto",
3524
+ paddingX: "2",
3525
+ py: "1",
3526
+ borderBottomColor: { base: "colorPalette.200", _dark: "colorPalette.800" },
3527
+ borderBottomWidth: "1px",
3528
+ };
3529
+ return (jsxs(Grid, { templateColumns: `${columnWidths}`, overflow: "auto", borderWidth: "1px", borderColor: { base: "colorPalette.200", _dark: "colorPalette.800" }, children: [jsx(Grid, { templateColumns: `${columnWidths}`, column: `1/span ${columns.length}`, bg: { base: "colorPalette.200", _dark: "colorPalette.800" }, children: columnHeaders.map((header) => {
3530
+ return (jsx(Box, { flex: "1 0 0%", paddingX: "2", py: "1", children: translate.t(`column_header.${header}`) }));
3531
+ }) }), data?.data.map((record) => {
3532
+ return (jsx(Fragment, { children: columnHeaders.map((header) => {
3533
+ if (!!record === false) {
3534
+ return (jsx(Box, { ...cellProps, children: translate.t(`column_cell.placeholder`) }));
3535
+ }
3536
+ if (!!record[header] === false) {
3537
+ return (jsx(Box, { ...cellProps, children: translate.t(`column_cell.placeholder`) }));
3538
+ }
3539
+ if (typeof record[header] === "object") {
3540
+ return (jsx(Box, { ...cellProps, children: jsx(RecordDisplay, { object: record[header] }) }));
3541
+ }
3542
+ return jsx(Box, { ...cellProps, children: record[header] ?? "" });
3543
+ }) }));
3544
+ })] }));
3545
+ };
3546
+
3471
3547
  const AccordionItemTrigger = React.forwardRef(function AccordionItemTrigger(props, ref) {
3472
3548
  const { children, indicatorPlacement = "end", ...rest } = props;
3473
3549
  return (jsxs(Accordion.ItemTrigger, { ...rest, ref: ref, children: [indicatorPlacement === "start" && (jsx(Accordion.ItemIndicator, { rotate: { base: "-90deg", _open: "0deg" }, children: jsx(LuChevronDown, {}) })), jsx(HStack, { gap: "4", flex: "1", textAlign: "start", width: "full", children: children }), indicatorPlacement === "end" && (jsx(Accordion.ItemIndicator, { children: jsx(LuChevronDown, {}) }))] }));
@@ -5054,4 +5130,4 @@ const getMultiDates = ({ selected, selectedDate, selectedDates, selectable, }) =
5054
5130
  }
5055
5131
  };
5056
5132
 
5057
- export { CardHeader, DataDisplay, DataTable, DataTableServer, DefaultCardTitle, DefaultForm, DefaultTable, DensityToggleButton, EditSortingButton, EmptyState$1 as EmptyState, ErrorAlert, FilterDialog, FilterOptions, FormBody, FormRoot, FormTitle, GlobalFilter, PageSizeControl, Pagination, RecordDisplay, ReloadButton, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, RowCountText, Table, TableBody, TableCardContainer, TableCards, TableComponent, TableControls, TableFilter, TableFilterTags, TableFooter, TableHeader, TableLoadingComponent, TableSelector, TableSorter, TableViewer, TextCell, ViewDialog, getColumns, getMultiDates, getRangeDates, idPickerSanityCheck, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };
5133
+ export { CardHeader, DataDisplay, DataTable, DataTableServer, DefaultCardTitle, DefaultForm, DefaultTable, DensityToggleButton, EditSortingButton, EmptyState$1 as EmptyState, ErrorAlert, FilterDialog, FilterOptions, FormBody, FormRoot, FormTitle, GlobalFilter, PageSizeControl, Pagination, RecordDisplay, ReloadButton, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, RowCountText, Table, TableBody, TableCardContainer, TableCards, TableComponent, TableControls, TableDataDisplay, TableFilter, TableFilterTags, TableFooter, TableHeader, TableLoadingComponent, TableSelector, TableSorter, TableViewer, TextCell, ViewDialog, getColumns, getMultiDates, getRangeDates, idPickerSanityCheck, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };
@@ -1,7 +1,7 @@
1
1
  import { ColumnDef, ColumnFiltersState, ColumnOrderState, FilterFn, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
2
2
  import { ReactNode } from "react";
3
3
  import { RankingInfo } from "@tanstack/match-sorter-utils";
4
- import { DensityState } from "../Controls/DensityFeature";
4
+ import { DensityState } from "./controls/DensityFeature";
5
5
  import { UseTranslationResponse } from "react-i18next";
6
6
  declare module "@tanstack/react-table" {
7
7
  interface FilterFns {
@@ -1,7 +1,7 @@
1
1
  import { ReactNode } from "react";
2
2
  import { UseQueryResult } from "@tanstack/react-query";
3
3
  import { ColumnDef, ColumnFiltersState, ColumnOrderState, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
4
- import { DensityState } from "../Controls/DensityFeature";
4
+ import { DensityState } from "./controls/DensityFeature";
5
5
  import { DataResponse } from "./useDataTableServer";
6
6
  import { UseTranslationResponse } from "react-i18next";
7
7
  export interface DataTableServerProps<TData extends DataResponse = DataResponse<unknown>> {
@@ -1,9 +1,9 @@
1
1
  import { TableHeaderProps as ChakraHeaderProps } from "@chakra-ui/react";
2
- import { TableBodyProps } from "./TableBody";
3
- import { TableControlsProps } from "./TableControls";
4
- import { TableFooterProps } from "./TableFooter";
5
- import { TableHeaderProps } from "./TableHeader";
6
- import { TableProps } from "./Table";
2
+ import { TableBodyProps } from "./display/TableBody";
3
+ import { TableControlsProps } from "./controls/TableControls";
4
+ import { TableFooterProps } from "./display/TableFooter";
5
+ import { TableHeaderProps } from "./display/TableHeader";
6
+ import { TableProps } from "./display/Table";
7
7
  export interface DefaultTableProps {
8
8
  showFooter?: boolean;
9
9
  showSelector?: boolean;
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { OnChangeFn, Table } from "@tanstack/react-table";
3
3
  import { UseTranslationResponse } from "react-i18next";
4
- export interface DataTableContext<TData = unknown> {
4
+ import { DataTableProps } from "../DataTable";
5
+ export interface DataTableContext<TData = unknown> extends DataTableProps {
5
6
  table: Table<TData>;
6
7
  globalFilter: string;
7
8
  setGlobalFilter: OnChangeFn<string>;
@@ -0,0 +1,23 @@
1
+ import { OnChangeFn, Updater, RowData, TableFeature } from "@tanstack/react-table";
2
+ export type DensityState = "sm" | "md" | "lg";
3
+ export interface DensityTableState {
4
+ density: DensityState;
5
+ }
6
+ export interface DensityOptions {
7
+ enableDensity?: boolean;
8
+ onDensityChange?: OnChangeFn<DensityState>;
9
+ }
10
+ export interface DensityInstance {
11
+ setDensity: (updater: Updater<DensityState>) => void;
12
+ toggleDensity: (value?: DensityState) => void;
13
+ getDensityValue: (value?: DensityState) => number;
14
+ }
15
+ declare module "@tanstack/react-table" {
16
+ interface TableState extends DensityTableState {
17
+ }
18
+ interface TableOptionsResolved<TData extends RowData> extends DensityOptions {
19
+ }
20
+ interface Table<TData extends RowData> extends DensityInstance {
21
+ }
22
+ }
23
+ export declare const DensityFeature: TableFeature<any>;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export interface DensityToggleButtonProps {
3
+ icon?: React.ReactElement;
4
+ text?: string;
5
+ }
6
+ export declare const DensityToggleButton: ({ text, icon, }: DensityToggleButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export interface EditSortingButtonProps {
3
+ title?: string;
4
+ icon?: React.ReactElement;
5
+ text?: string;
6
+ }
7
+ export declare const EditSortingButton: ({ text, icon, title, }: EditSortingButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export interface EditFilterButtonProps {
3
+ icon?: React.ReactElement;
4
+ }
5
+ export declare const FilterDialog: ({ icon, }: EditFilterButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface PageSizeControlProps {
2
+ pageSizes?: number[];
3
+ }
4
+ export declare const PageSizeControl: ({ pageSizes, }: PageSizeControlProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const Pagination: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface ReloadButtonProps {
2
+ text?: string;
3
+ variant?: string;
4
+ }
5
+ export declare const ReloadButton: ({ text, variant, }: ReloadButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ResetFilteringButtonProps {
2
+ text?: string;
3
+ }
4
+ export declare const ResetFilteringButton: ({ text, }: ResetFilteringButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ResetSelectionButtonProps {
2
+ text?: string;
3
+ }
4
+ export declare const ResetSelectionButton: ({ text, }: ResetSelectionButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ResetSortingButtonProps {
2
+ text?: string;
3
+ }
4
+ export declare const ResetSortingButton: ({ text, }: ResetSortingButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const RowCountText: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ export interface SelectAllRowsToggleProps {
3
+ selectAllIcon?: React.ReactElement;
4
+ clearAllIcon?: React.ReactElement;
5
+ selectAllText?: string;
6
+ clearAllText?: string;
7
+ }
8
+ export declare const SelectAllRowsToggle: ({ selectAllIcon, clearAllIcon, selectAllText, clearAllText, }: SelectAllRowsToggleProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from "react";
2
+ export interface TableControlsProps {
3
+ totalText?: string;
4
+ fitTableWidth?: boolean;
5
+ fitTableHeight?: boolean;
6
+ children?: ReactNode;
7
+ showGlobalFilter?: boolean;
8
+ showFilter?: boolean;
9
+ showFilterName?: boolean;
10
+ showFilterTags?: boolean;
11
+ showReload?: boolean;
12
+ showPagination?: boolean;
13
+ showPageSizeControl?: boolean;
14
+ showPageCountText?: boolean;
15
+ showView?: boolean;
16
+ filterOptions?: string[];
17
+ extraItems?: ReactNode;
18
+ loading?: boolean;
19
+ hasError?: boolean;
20
+ }
21
+ export declare const TableControls: ({ fitTableWidth, fitTableHeight, children, showGlobalFilter, showFilter, showFilterName, showFilterTags, showReload, showPagination, showPageSizeControl, showPageCountText, showView, filterOptions, extraItems, loading, hasError, }: TableControlsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const TableFilterTags: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const TableFilter: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const TableSelector: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const TableSorter: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const TableViewer: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export interface EditViewButtonProps {
3
+ icon?: React.ReactElement;
4
+ }
5
+ export declare const ViewDialog: ({ icon }: EditViewButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { ImageProps } from "@chakra-ui/react";
2
+ import { Row } from "@tanstack/react-table";
3
+ import { IconType } from "react-icons";
4
+ export interface CardHeaderProps<TData> {
5
+ row: Row<TData>;
6
+ imageColumnId?: keyof TData;
7
+ titleColumnId?: keyof TData;
8
+ tagColumnId?: keyof TData;
9
+ tagIcon?: IconType;
10
+ showTag?: boolean;
11
+ imageProps?: ImageProps;
12
+ }
13
+ export declare const CardHeader: <TData>({ row, imageColumnId, titleColumnId, tagColumnId, tagIcon, showTag, imageProps, }: CardHeaderProps<TData>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { UseTranslationResponse } from "react-i18next";
2
+ export interface DataDisplayProps {
3
+ variant?: "horizontal" | "stats" | "";
4
+ translate?: UseTranslationResponse<any, any>;
5
+ }
6
+ export declare const DataDisplay: ({ variant }: DataDisplayProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface EmptyStateProps {
2
+ title?: string;
3
+ description?: string;
4
+ }
5
+ export declare const EmptyState: ({ title, description, }: EmptyStateProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ErrorAlertProps {
2
+ showMessage?: boolean;
3
+ }
4
+ export declare const ErrorAlert: ({ showMessage }: ErrorAlertProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { BoxProps } from "@chakra-ui/react";
2
+ import { UseTranslationResponse } from "react-i18next";
3
+ export interface RecordDisplayProps {
4
+ object: object | null;
5
+ boxProps?: BoxProps;
6
+ translate?: UseTranslationResponse<any, any>;
7
+ prefix?: string;
8
+ }
9
+ export declare const RecordDisplay: ({ object, boxProps, translate, prefix, }: RecordDisplayProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { TableRootProps } from "@chakra-ui/react";
2
+ import { ReactNode } from "react";
3
+ export interface TableProps extends TableRootProps {
4
+ showLoading?: boolean;
5
+ loadingComponent?: ReactNode;
6
+ emptyComponent?: ReactNode;
7
+ canResize?: boolean;
8
+ children: ReactNode;
9
+ }
10
+ export declare const Table: ({ children, emptyComponent, canResize, ...props }: TableProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,21 @@
1
+ import { Row } from "@tanstack/react-table";
2
+ export interface TableBodyProps {
3
+ pinnedBgColor?: {
4
+ light: string;
5
+ dark: string;
6
+ };
7
+ showSelector?: boolean;
8
+ alwaysShowSelector?: boolean;
9
+ canResize?: boolean;
10
+ }
11
+ export interface TableRowSelectorProps<TData> {
12
+ index: number;
13
+ row: Row<TData>;
14
+ hoveredRow: number;
15
+ pinnedBgColor?: {
16
+ light: string;
17
+ dark: string;
18
+ };
19
+ alwaysShowSelector?: boolean;
20
+ }
21
+ export declare const TableBody: ({ pinnedBgColor, showSelector, alwaysShowSelector, canResize, }: TableBodyProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { GridProps } from "@chakra-ui/react";
2
+ import { ReactNode } from "react";
3
+ export interface TableCardContainerProps extends GridProps {
4
+ children: ReactNode;
5
+ variant?: "carousel" | "";
6
+ }
7
+ export declare const TableCardContainer: ({ children, variant, ...props }: TableCardContainerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { CardBodyProps } from "@chakra-ui/react";
2
+ import { Row } from "@tanstack/react-table";
3
+ import { ReactNode } from "react";
4
+ export interface TableCardsProps<TData> {
5
+ isSelectable?: boolean;
6
+ showDisplayNameOnly?: boolean;
7
+ renderTitle?: (row: Row<TData>) => ReactNode | undefined;
8
+ cardBodyProps?: CardBodyProps;
9
+ }
10
+ export declare const DefaultCardTitle: () => import("react/jsx-runtime").JSX.Element;
11
+ export declare const TableCards: <TData>({ isSelectable, showDisplayNameOnly, renderTitle, cardBodyProps, }: TableCardsProps<TData>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { Table } from "@tanstack/react-table";
2
+ import React from "react";
3
+ export interface TableRendererProps<TData> {
4
+ render: (render: Table<TData>) => React.ReactElement;
5
+ }
6
+ export declare const TableComponent: <TData>({ render, }: TableRendererProps<TData>) => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
@@ -0,0 +1 @@
1
+ export declare const TableDataDisplay: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export interface TableFooterProps {
2
+ pinnedBgColor?: {
3
+ light: string;
4
+ dark: string;
5
+ };
6
+ showSelector?: boolean;
7
+ alwaysShowSelector?: boolean;
8
+ }
9
+ export declare const TableFooter: ({ pinnedBgColor, showSelector, alwaysShowSelector, }: TableFooterProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { TableHeaderProps as ChakraTableHeaderProps } from "@chakra-ui/react";
2
+ export interface TableHeaderProps {
3
+ canResize?: boolean;
4
+ pinnedBgColor?: {
5
+ light: string;
6
+ dark: string;
7
+ };
8
+ showSelector?: boolean;
9
+ isSticky?: boolean;
10
+ alwaysShowSelector?: boolean;
11
+ tHeadProps?: ChakraTableHeaderProps;
12
+ }
13
+ export declare const TableHeader: ({ canResize, pinnedBgColor, showSelector, isSticky, alwaysShowSelector, tHeadProps, }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from "react";
2
+ export interface TableLoadingComponentProps {
3
+ render: (loading: boolean) => ReactNode;
4
+ }
5
+ export declare const TableLoadingComponent: ({ render, }: TableLoadingComponentProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { FlexProps, TextProps } from "@chakra-ui/react";
2
+ import { ReactNode } from "react";
3
+ export interface TextCellProps {
4
+ label?: string;
5
+ noOfLines?: number[];
6
+ children: string | number | ReactNode | ReactNode[];
7
+ containerProps?: FlexProps;
8
+ textProps?: TextProps;
9
+ }
10
+ export declare const TextCell: ({ label, containerProps, textProps, children, }: TextCellProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { ColumnFiltersState, ColumnOrderState, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
2
- import { DensityState } from "../Controls/DensityFeature";
2
+ import { DensityState } from "./controls/DensityFeature";
3
3
  import { UseTranslationResponse } from "react-i18next";
4
4
  export interface DataTableDefaultState {
5
5
  sorting?: SortingState;
@@ -57,43 +57,44 @@ declare module "@tanstack/react-table" {
57
57
  renderFilter?: (column: Column<TData>) => ReactNode;
58
58
  }
59
59
  }
60
- export * from "./components/Controls/DensityToggleButton";
61
- export * from "./components/Controls/EditSortingButton";
62
- export * from "./components/Controls/FilterDialog";
63
- export * from "./components/Controls/PageSizeControl";
64
- export * from "./components/Controls/Pagination";
65
- export * from "./components/Controls/ResetFilteringButton";
66
- export * from "./components/Controls/ResetSelectionButton";
67
- export * from "./components/Controls/ResetSortingButton";
68
- export * from "./components/Controls/RowCountText";
69
- export * from "./components/Controls/ViewDialog";
70
- export * from "./components/DataTable/CardHeader";
71
- export * from "./components/DataTable/components/EmptyState";
72
- export * from "./components/DataTable/components/ErrorAlert";
60
+ export * from "./components/DataTable/controls/DensityToggleButton";
61
+ export * from "./components/DataTable/controls/EditSortingButton";
62
+ export * from "./components/DataTable/controls/FilterDialog";
63
+ export * from "./components/DataTable/controls/PageSizeControl";
64
+ export * from "./components/DataTable/controls/Pagination";
65
+ export * from "./components/DataTable/controls/ResetFilteringButton";
66
+ export * from "./components/DataTable/controls/ResetSelectionButton";
67
+ export * from "./components/DataTable/controls/ResetSortingButton";
68
+ export * from "./components/DataTable/controls/RowCountText";
69
+ export * from "./components/DataTable/controls/ViewDialog";
70
+ export * from "./components/DataTable/display/CardHeader";
71
+ export * from "./components/DataTable/display/EmptyState";
72
+ export * from "./components/DataTable/display/ErrorAlert";
73
73
  export * from "./components/DataTable/context/useDataTableContext";
74
- export * from "./components/DataTable/DataDisplay";
74
+ export * from "./components/DataTable/display/DataDisplay";
75
75
  export * from "./components/DataTable/DataTable";
76
76
  export * from "./components/DataTable/DataTableServer";
77
77
  export * from "./components/DataTable/DefaultTable";
78
- export * from "./components/DataTable/ReloadButton";
79
- export * from "./components/DataTable/Table";
80
- export * from "./components/DataTable/TableBody";
81
- export * from "./components/DataTable/TableCardContainer";
82
- export * from "./components/DataTable/TableCards";
83
- export * from "./components/DataTable/TableComponent";
84
- export * from "./components/DataTable/TableControls";
85
- export * from "./components/DataTable/TableFilters";
86
- export * from "./components/DataTable/TableFilterTags";
87
- export * from "./components/DataTable/TableFooter";
88
- export * from "./components/DataTable/TableHeader";
89
- export * from "./components/DataTable/TableLoadingComponent";
90
- export * from "./components/DataTable/TableSelector";
91
- export * from "./components/DataTable/TableSorter";
92
- export * from "./components/DataTable/TableViewer";
93
- export * from "./components/DataTable/components/TextCell";
78
+ export * from "./components/DataTable/controls/ReloadButton";
79
+ export * from "./components/DataTable/display/Table";
80
+ export * from "./components/DataTable/display/TableBody";
81
+ export * from "./components/DataTable/display/TableCardContainer";
82
+ export * from "./components/DataTable/display/TableCards";
83
+ export * from "./components/DataTable/display/TableComponent";
84
+ export * from "./components/DataTable/controls/TableControls";
85
+ export * from "./components/DataTable/controls/TableFilters";
86
+ export * from "./components/DataTable/controls/TableFilterTags";
87
+ export * from "./components/DataTable/display/TableFooter";
88
+ export * from "./components/DataTable/display/TableHeader";
89
+ export * from "./components/DataTable/display/TableLoadingComponent";
90
+ export * from "./components/DataTable/controls/TableSelector";
91
+ export * from "./components/DataTable/controls/TableSorter";
92
+ export * from "./components/DataTable/controls/TableViewer";
93
+ export * from "./components/DataTable/display/TextCell";
94
94
  export * from "./components/DataTable/useDataTable";
95
95
  export * from "./components/DataTable/useDataTableServer";
96
96
  export * from "./components/DataTable/utils/getColumns";
97
+ export * from "./components/DataTable/display/TableDataDisplay";
97
98
  export * from "./components/Filter/FilterOptions";
98
99
  export * from "./components/Filter/GlobalFilter";
99
100
  export * from "./components/Form/components/core/DefaultForm";
@@ -105,4 +106,4 @@ export * from "./components/DatePicker/DatePicker";
105
106
  export * from "./components/DatePicker/getMultiDates";
106
107
  export * from "./components/DatePicker/getRangeDates";
107
108
  export * from "./components/DatePicker/RangeDatePicker";
108
- export * from "./components/DataTable/components/RecordDisplay";
109
+ export * from "./components/DataTable/display/RecordDisplay";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsol-oss/react-datatable5",
3
- "version": "12.0.0-beta.6",
3
+ "version": "12.0.0-beta.8",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",