@bsol-oss/react-datatable5 9.2.0 → 11.0.0-beta.0

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # React Datatable
2
2
 
3
- The datetable package is built on top of `@tanstack/react-table` and `chakra-ui` to create a robust datatable. This hook simplifies to initialize the state management for controlling the datatable, and it offers several predefined tables and controls in to enhance data visualization.
3
+ The datetable package is built on top of `@tanstack/react-table` and `chakra-ui` to create a datatable. This hook simplifies to initialize the state management for controlling the datatable, and it offers several predefined tables and controls in to enhance data visualization.
4
4
 
5
5
  ## Installation
6
6
 
@@ -23,22 +23,7 @@ const datatableServer = useDataTableServer({ url: "<some-url>" });
23
23
 
24
24
  ```tsx
25
25
  <DataTable columns={columns} data={data} {...datatable}>
26
- <Flex>
27
- <TablePagination />
28
- <EditViewButton />
29
- <EditFilterButton />
30
- <EditOrderButton />
31
- <PageSizeControl />
32
- <TableSelector />
33
- <GlobalFilter />
34
- </Flex>
35
- <Table>
36
- <TableHeader canResize />
37
- <TableBody />
38
- <TableFooter />
39
- </Table>
40
- <PageSizeControl />
41
- <TablePagination />
26
+ <DataDisplay />
42
27
  </DataTable>
43
28
  ```
44
29
 
@@ -46,29 +31,7 @@ const datatableServer = useDataTableServer({ url: "<some-url>" });
46
31
 
47
32
  ```tsx
48
33
  <DataTableServer columns={columns} {...datatable}>
49
- <Flex>
50
- <TablePagination />
51
- <EditViewButton />
52
- <EditFilterButton />
53
- <DensityToggleButton />
54
- <EditOrderButton />
55
- <PageSizeControl />
56
- <TableSelector />
57
- <GlobalFilter />
58
- </Flex>
59
- <Table>
60
- <TableHeader canResize />
61
- <TableBody />
62
- <TableFooter />
63
- </Table>
64
- <Flex>
65
- <TablePagination />
66
- <EditViewButton />
67
- <EditFilterButton />
68
- <EditOrderButton />
69
- <PageSizeControl />
70
- <TableSelector />
71
- </Flex>
34
+ <DataDisplay />
72
35
  </DataTableServer>
73
36
  ```
74
37
 
@@ -127,3 +90,189 @@ For more details of props and examples, please review the stories in storybook p
127
90
  npm install
128
91
  npm run storybook
129
92
  ```
93
+
94
+ # Form
95
+
96
+ Form component can help create a object to submit an network request.
97
+
98
+ - Wrap form with confirmation, submit success and error handling ui by default
99
+ - Use `i18next` by default to display `column_id` and text in form in multiple language.
100
+ - Use `axios` by default to submit a request.
101
+
102
+
103
+ ## Usage
104
+
105
+ ```tsx
106
+ <Form
107
+ schema={someSchema as JSONSchema7}
108
+ serverUrl={"http://localhost:8081"}
109
+ />
110
+ ```
111
+
112
+ ## Set up
113
+
114
+ ### Providers
115
+
116
+ You MUST provide all three provider from packages `i18next`, `@tanstack/react-query`, and `@chakra-ui/react`
117
+
118
+ ```tsx
119
+ <Provider>
120
+ <QueryClientProvider client={queryClient}>
121
+ <I18nextProvider i18n={i18n}>
122
+ <SomeForm />
123
+ </I18nextProvider>
124
+ </QueryClientProvider>
125
+ </Provider>
126
+ ```
127
+
128
+ ### Schema
129
+
130
+ You MUST provide a `schema` props to specify the inputs in a form. You MUST specify the keyword `type` as `object`.
131
+
132
+ Currently, The `Form` component provide LIMITED json schema attributes in this release. Please check the below list to acknowledge the supported Keywords, and the intended keywords to support future releases.
133
+
134
+ The example of a valid `schema` object
135
+
136
+ ```tsx
137
+ const schema = {
138
+ type: "object",
139
+ title: "core_memberships",
140
+ required: ["id"],
141
+ properties: {
142
+ id: {
143
+ type: "string",
144
+ },
145
+ remarks: {
146
+ type: "string",
147
+ },
148
+ }
149
+ }
150
+ const SomeForm = () => {
151
+ return (
152
+ <Form
153
+ schema={schema as JSONSchema7}
154
+ serverUrl={"http://localhost:8081"}
155
+ />
156
+ )
157
+ }
158
+ ```
159
+
160
+ ## Supported Keywords
161
+
162
+ ### `title`
163
+
164
+ You MUST provide the `title` keyword to specifies the string id that will be used in `i18n` translate.
165
+
166
+ The value must be in type `string`.
167
+
168
+ ### `required`
169
+
170
+ You MAY provide the `required` keyword to specifies the input that are required to fill before confirmation.
171
+
172
+ The value must be in type `array` of `string`.
173
+
174
+ ### `properties`
175
+
176
+ You MUST provide the `properties` keywords to specifies the fields that the form should appear.
177
+
178
+ The value must be in type `object`. The keys in this object specifies the column id and the values its related properties. Check the sections **Column Keywords** show the supported column keywords.
179
+
180
+
181
+ ## Column Keywords
182
+
183
+ ### `type`
184
+
185
+ You MUST provide the `type` keywords to specifies the value type that the column should create. Some value types may include different inputs by specify the `variant` keywords.
186
+
187
+ Check the sections **Value types** show the supported keywords and input variants for each value type.
188
+
189
+ Supported value types: `array`, `string`, `number`, `boolean`, `integer`, `object`;
190
+
191
+ ## Value types
192
+
193
+ This sections show the supported keywords and input variants for each value type.
194
+
195
+ ### `string`
196
+
197
+ For input types `string`, it will generate a string input by default.
198
+
199
+ If you specify the `variant` keyword, it will render a picker to fill a string that requires a format.
200
+
201
+ Supported variants in `string`: `id-picker`, `date_picker`
202
+
203
+ #### `id-picker`
204
+
205
+ For string input variant `id-picker`, it will generate a selector that can pop up a search to help the selection. After the user select a options, the input will show the selected record, and save its correspond string value in the form object.
206
+
207
+ You MUST include the keyword `foreign_key` and a object with keys `display_column`, `table`, `column`. The `display_column` key is the column that show the label for that value to user, and `column` key is the column that its value should set in this input.
208
+
209
+ You MUST include a `/api/g` api that could accept the following request in order to search for a record.
210
+
211
+ ```ts
212
+ const requestConfig = {
213
+ method: "GET",
214
+ url: `${serverUrl}/api/g/${table}`,
215
+ params: {
216
+ searching,
217
+ where,
218
+ limit,
219
+ offset
220
+ },
221
+ }
222
+ ```
223
+
224
+ The example valid schema that use `id=picker` variant.
225
+
226
+ ```tsx
227
+ const eventsFilesSchema = {
228
+ type: "object",
229
+ title: "events_files",
230
+ required: ["event_id", "file_id"],
231
+ properties: {
232
+ file_id: {
233
+ type: "array",
234
+ variant: "file-picker",
235
+ },
236
+ event_id: {
237
+ type: "string",
238
+ variant: "id-picker",
239
+ foreign_key: {
240
+ display_column: "event_name",
241
+ table: "core_events",
242
+ column: "id",
243
+ },
244
+ },
245
+ },
246
+ }
247
+ ```
248
+
249
+ ### `number`
250
+
251
+ For value type `number`, it will generate a number input by default.
252
+
253
+ Currently no supported variants.
254
+
255
+ ### `boolean`
256
+
257
+ For value type `boolean`, it will generate a checkbox by default.
258
+
259
+ Currently no supported variants.
260
+
261
+
262
+ ### `array`
263
+
264
+ For value type `array`, by default it will generate NO input.
265
+
266
+ You MUST specify the `variant` keyword to display a relevant input.
267
+
268
+ Supported variant in `array`: `id-picker`, `file-picker`
269
+
270
+ ### `object`
271
+
272
+ For value type `object`, by default it will generate a input that can input key value pairs.
273
+
274
+ It is NOT RECOMMENDED to use the default input, Later release may include a json editor by default.
275
+
276
+ ### Intented Support Keywords in Future Release
277
+
278
+ (TBC)
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ import { RankingInfo } from '@tanstack/match-sorter-utils';
11
11
  import { UseQueryResult } from '@tanstack/react-query';
12
12
  import { JSONSchema7 } from 'json-schema';
13
13
  import { ForeignKeyProps } from '@/components/Form/components/StringInputField';
14
+ import { AxiosRequestConfig } from 'axios';
14
15
  import * as react_hook_form from 'react-hook-form';
15
16
  import { FieldValues, UseFormReturn, SubmitHandler } from 'react-hook-form';
16
17
  import { RenderProps, Props } from '@bsol-oss/dayzed-react19';
@@ -22,13 +23,9 @@ interface DensityToggleButtonProps {
22
23
  declare const DensityToggleButton: ({ text, icon, }: DensityToggleButtonProps) => react_jsx_runtime.JSX.Element;
23
24
 
24
25
  interface EditFilterButtonProps {
25
- text?: string;
26
- title?: string;
27
- closeText?: string;
28
- resetText?: string;
29
26
  icon?: React.ReactElement;
30
27
  }
31
- declare const EditFilterButton: ({ text, title, closeText, resetText, icon, }: EditFilterButtonProps) => react_jsx_runtime.JSX.Element;
28
+ declare const FilterDialog: ({ icon, }: EditFilterButtonProps) => react_jsx_runtime.JSX.Element;
32
29
 
33
30
  interface EditOrderButtonProps {
34
31
  title?: string;
@@ -45,11 +42,9 @@ interface EditSortingButtonProps {
45
42
  declare const EditSortingButton: ({ text, icon, title, }: EditSortingButtonProps) => react_jsx_runtime.JSX.Element;
46
43
 
47
44
  interface EditViewButtonProps {
48
- text?: string;
49
45
  icon?: React__default.ReactElement;
50
- title?: string;
51
46
  }
52
- declare const EditViewButton: ({ text, icon, title, }: EditViewButtonProps) => react_jsx_runtime.JSX.Element;
47
+ declare const ViewDialog: ({ icon }: EditViewButtonProps) => react_jsx_runtime.JSX.Element;
53
48
 
54
49
  interface PageSizeControlProps {
55
50
  pageSizes?: number[];
@@ -73,7 +68,7 @@ declare const ResetSortingButton: ({ text, }: ResetSortingButtonProps) => react_
73
68
 
74
69
  declare const RowCountText: () => react_jsx_runtime.JSX.Element;
75
70
 
76
- declare const TablePagination: () => react_jsx_runtime.JSX.Element;
71
+ declare const Pagination: () => react_jsx_runtime.JSX.Element;
77
72
 
78
73
  interface CardHeaderProps<TData> {
79
74
  row: Row<TData>;
@@ -159,6 +154,7 @@ interface DataTableProps<TData = unknown> {
159
154
  setColumnOrder: OnChangeFn<ColumnOrderState>;
160
155
  setDensity: OnChangeFn<DensityState>;
161
156
  setColumnVisibility: OnChangeFn<VisibilityState>;
157
+ translate: UseTranslationResponse<any, any>;
162
158
  }
163
159
  /**
164
160
  * DataTable will create a context to hold all values to
@@ -170,7 +166,7 @@ interface DataTableProps<TData = unknown> {
170
166
  *
171
167
  * @link https://tanstack.com/table/latest/docs/guide/column-defs
172
168
  */
173
- 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, children, }: DataTableProps<TData>): react_jsx_runtime.JSX.Element;
169
+ 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;
174
170
 
175
171
  interface DataTableDefaultState {
176
172
  sorting?: SortingState;
@@ -184,6 +180,7 @@ interface DataTableDefaultState {
184
180
  }
185
181
  interface UseDataTableProps {
186
182
  default?: DataTableDefaultState;
183
+ keyPrefix?: string;
187
184
  }
188
185
  interface UseDataTableReturn {
189
186
  sorting: SortingState;
@@ -202,8 +199,9 @@ interface UseDataTableReturn {
202
199
  setColumnOrder: OnChangeFn<ColumnOrderState>;
203
200
  setDensity: OnChangeFn<DensityState>;
204
201
  setColumnVisibility: OnChangeFn<VisibilityState>;
202
+ translate: UseTranslationResponse<any, any>;
205
203
  }
206
- declare const useDataTable: ({ default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, }?: UseDataTableProps) => UseDataTableReturn;
204
+ declare const useDataTable: ({ default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, keyPrefix, }?: UseDataTableProps) => UseDataTableReturn;
207
205
 
208
206
  interface UseDataTableServerProps extends UseDataTableProps {
209
207
  /**
@@ -229,7 +227,7 @@ interface Result<T = unknown> {
229
227
  interface DataResponse<T = unknown> extends Result<T> {
230
228
  count: number;
231
229
  }
232
- declare const useDataTableServer: <TData>({ url, default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, }: UseDataTableServerProps) => UseDataTableServerReturn<TData>;
230
+ declare const useDataTableServer: <TData>({ url, default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, keyPrefix, }: UseDataTableServerProps) => UseDataTableServerReturn<TData>;
233
231
 
234
232
  interface DataTableServerProps<TData extends DataResponse = DataResponse<unknown>> {
235
233
  children: ReactNode | ReactNode[];
@@ -262,6 +260,7 @@ interface DataTableServerProps<TData extends DataResponse = DataResponse<unknown
262
260
  setColumnVisibility: OnChangeFn<VisibilityState>;
263
261
  query: UseQueryResult<TData>;
264
262
  url: string;
263
+ translate: UseTranslationResponse<any, any>;
265
264
  }
266
265
  /**
267
266
  * DataTableServer will create a context to hold all values to
@@ -274,7 +273,7 @@ interface DataTableServerProps<TData extends DataResponse = DataResponse<unknown
274
273
  *
275
274
  * @link https://tanstack.com/table/latest/docs/guide/column-defs
276
275
  */
277
- declare function DataTableServer<TData extends DataResponse = DataResponse<unknown>>({ columns, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, query, children, url, }: DataTableServerProps<TData>): react_jsx_runtime.JSX.Element;
276
+ declare function DataTableServer<TData extends DataResponse = DataResponse<unknown>>({ columns, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, query, url, translate, children, }: DataTableServerProps<TData>): react_jsx_runtime.JSX.Element;
278
277
 
279
278
  interface TableBodyProps {
280
279
  pinnedBgColor?: {
@@ -301,7 +300,6 @@ interface TableControlsProps {
301
300
  totalText?: string;
302
301
  fitTableWidth?: boolean;
303
302
  fitTableHeight?: boolean;
304
- isMobile?: boolean;
305
303
  children?: ReactNode;
306
304
  showGlobalFilter?: boolean;
307
305
  showFilter?: boolean;
@@ -311,12 +309,13 @@ interface TableControlsProps {
311
309
  showPagination?: boolean;
312
310
  showPageSizeControl?: boolean;
313
311
  showPageCountText?: boolean;
312
+ showView?: boolean;
314
313
  filterOptions?: string[];
315
314
  extraItems?: ReactNode;
316
315
  loading?: boolean;
317
316
  hasError?: boolean;
318
317
  }
319
- declare const TableControls: ({ totalText, fitTableWidth, fitTableHeight, isMobile, children, showGlobalFilter, showFilter, showFilterName, showFilterTags, showReload, showPagination, showPageSizeControl, showPageCountText, filterOptions, extraItems, loading, hasError, }: TableControlsProps) => react_jsx_runtime.JSX.Element;
318
+ declare const TableControls: ({ fitTableWidth, fitTableHeight, children, showGlobalFilter, showFilter, showFilterName, showFilterTags, showReload, showPagination, showPageSizeControl, showPageCountText, showView, filterOptions, extraItems, loading, hasError, }: TableControlsProps) => react_jsx_runtime.JSX.Element;
320
319
 
321
320
  interface TableFooterProps {
322
321
  pinnedBgColor?: {
@@ -420,6 +419,7 @@ interface DataTableContext<TData = unknown> {
420
419
  globalFilter: string;
421
420
  setGlobalFilter: OnChangeFn<string>;
422
421
  type: "client" | "server";
422
+ translate: UseTranslationResponse<any, any>;
423
423
  }
424
424
  declare const DataTableContext: React$1.Context<DataTableContext<unknown>>;
425
425
 
@@ -459,6 +459,7 @@ declare const GlobalFilter: () => react_jsx_runtime.JSX.Element;
459
459
  interface FormProps<TData extends FieldValues> {
460
460
  schema: JSONSchema7;
461
461
  serverUrl: string;
462
+ requestUrl?: string;
462
463
  idMap: Record<string, object>;
463
464
  setIdMap: Dispatch<SetStateAction<Record<string, object>>>;
464
465
  form: UseFormReturn;
@@ -466,8 +467,8 @@ interface FormProps<TData extends FieldValues> {
466
467
  order?: string[];
467
468
  ignore?: string[];
468
469
  onSubmit?: SubmitHandler<TData>;
469
- preLoadedValues?: object;
470
470
  rowNumber?: number | string;
471
+ requestOptions?: AxiosRequestConfig;
471
472
  }
472
473
  interface CustomJSONSchema7Definition extends JSONSchema7 {
473
474
  variant: string;
@@ -478,7 +479,7 @@ interface CustomJSONSchema7Definition extends JSONSchema7 {
478
479
  gridRow: string;
479
480
  foreign_key: ForeignKeyProps;
480
481
  }
481
- declare const Form: <TData extends FieldValues>({ schema, idMap, setIdMap, form, serverUrl, translate, order, ignore, onSubmit, preLoadedValues, rowNumber, }: FormProps<TData>) => react_jsx_runtime.JSX.Element;
482
+ declare const Form: <TData extends FieldValues>({ schema, idMap, setIdMap, form, serverUrl, translate, order, ignore, onSubmit, preLoadedValues, rowNumber, requestOptions, }: FormProps<TData>) => react_jsx_runtime.JSX.Element;
482
483
 
483
484
  interface UseFormProps {
484
485
  preLoadedValues?: FieldValues | undefined;
@@ -601,4 +602,4 @@ declare module "@tanstack/react-table" {
601
602
  }
602
603
  }
603
604
 
604
- 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, EditFilterButton, type EditFilterButtonProps, EditOrderButton, type EditOrderButtonProps, EditSortingButton, type EditSortingButtonProps, EditViewButton, type EditViewButtonProps, EmptyState, type EmptyStateProps, ErrorAlert, type ErrorAlertProps, 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, 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, TableOrderer, TablePagination, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, TextCell, type TextCellProps, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, type UseFormProps, getColumns, getMultiDates, getRangeDates, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };
605
+ 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 EditFilterButtonProps, EditOrderButton, type EditOrderButtonProps, EditSortingButton, type EditSortingButtonProps, type EditViewButtonProps, EmptyState, type EmptyStateProps, ErrorAlert, type ErrorAlertProps, FilterDialog, FilterOptions, type FilterOptionsProps, Form, type FormProps, 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, TableOrderer, 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, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };