@prt-ts/fluent-react-table-v2 9.36.0-build.3.0 → 9.40.0-build.10.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/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@prt-ts/fluent-react-table-v2",
3
- "version": "9.36.0-build.3.0",
3
+ "version": "9.40.0-build.10.0",
4
4
  "main": "./index.js",
5
5
  "types": "./src\\index.d.ts",
6
6
  "peerDependencies": {
7
7
  "react": ">=17.0.0",
8
8
  "react-dom": ">=17.0.0",
9
- "@fluentui/react-components": ">=9.36.0",
9
+ "@fluentui/react-components": ">=9.40.0",
10
+ "@fluentui/react-datepicker-compat": ">=0.4.5",
10
11
  "@fluentui/react-icons": ">=2.0.221"
11
12
  },
12
13
  "dependencies": {
@@ -1,5 +1,5 @@
1
- import { Column, Table } from "@tanstack/react-table";
2
- export declare const Filter: <TItem extends object>({ column, table }: {
1
+ import { Column, Table } from '@tanstack/react-table';
2
+ export declare const Filter: <TItem extends object>({ column, table, }: {
3
3
  column: Column<TItem, unknown>;
4
4
  table: Table<TItem>;
5
5
  }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Column, Table } from '@tanstack/react-table';
2
+ type FilterNumberRangeProps<TItem extends object> = {
3
+ column: Column<TItem, unknown>;
4
+ table: Table<TItem>;
5
+ };
6
+ export declare const FilterDate: <TItem extends object>(props: FilterNumberRangeProps<TItem>) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Column, Table } from '@tanstack/react-table';
2
+ type FilterNumberRangeProps<TItem extends object> = {
3
+ column: Column<TItem, unknown>;
4
+ table: Table<TItem>;
5
+ };
6
+ export declare const FilterDateRange: <TItem extends object>(props: FilterNumberRangeProps<TItem>) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Table } from '@tanstack/react-table';
3
+ type FilterDrawerProps<TItem extends object> = {
4
+ open: boolean;
5
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
6
+ table: Table<TItem>;
7
+ };
8
+ export declare const FilterDrawer: <TItem extends object>({ open, setOpen, table }: FilterDrawerProps<TItem>) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -1,5 +1,5 @@
1
- import { Column, Table } from "@tanstack/react-table";
2
- export declare const FilterMultiSelectCheckbox: <TItem extends object>({ column, table }: {
1
+ import { Column, Table } from '@tanstack/react-table';
2
+ export declare const FilterMultiSelectCheckbox: <TItem extends object>({ column, table, }: {
3
3
  column: Column<TItem, unknown>;
4
4
  table: Table<TItem>;
5
5
  }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Column, Table } from '@tanstack/react-table';
2
+ type FilterNumberRangeProps<TItem extends object> = {
3
+ column: Column<TItem, unknown>;
4
+ table: Table<TItem>;
5
+ };
6
+ export declare const FilterNumberRange: <TItem extends object>(props: FilterNumberRangeProps<TItem>) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { Column, Table } from "@tanstack/react-table";
2
- export declare const FilterMultiSelectRadio: <TItem extends object>({ column, table }: {
2
+ export declare const FilterSelectRadio: <TItem extends object>({ column, table, }: {
3
3
  column: Column<TItem, unknown>;
4
4
  table: Table<TItem>;
5
5
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1,2 @@
1
1
  export { Filter } from "./Filter";
2
+ export { FilterDrawer } from "./FilterDrawer";
@@ -1,10 +1,16 @@
1
1
  import * as React from 'react';
2
- import { Table } from '@tanstack/react-table';
2
+ import { Table, TableState } from '@tanstack/react-table';
3
3
  type GridHeaderProps<TItem extends object> = {
4
4
  table: Table<TItem>;
5
5
  gridTitle: JSX.Element | React.ReactNode;
6
+ headerMenu?: JSX.Element | React.ReactNode;
6
7
  globalFilter: string;
7
8
  setGlobalFilter: (value: string) => void;
9
+ applyTableState: (tableState: Partial<TableState>) => boolean;
10
+ openFilterDrawer: boolean;
11
+ setFilterDrawerOpen: React.Dispatch<React.SetStateAction<boolean>>;
12
+ openViewsDrawer: boolean;
13
+ setViewsDrawerOpen: React.Dispatch<React.SetStateAction<boolean>>;
8
14
  };
9
15
  export declare const GridHeader: <TItem extends object>(props: GridHeaderProps<TItem>) => import("react/jsx-runtime").JSX.Element;
10
16
  export {};
@@ -1,7 +1,7 @@
1
- import * as React from "react";
2
- import { Table } from "@tanstack/react-table";
1
+ import * as React from 'react';
2
+ import { Table } from '@tanstack/react-table';
3
3
  type TableContainerProps<TItem extends object> = {
4
- rowSelectionMode?: "single" | "multiple";
4
+ rowSelectionMode?: 'single' | 'multiple';
5
5
  table: Table<TItem>;
6
6
  noItemPage?: React.ReactNode;
7
7
  noFilterMatchPage?: React.ReactNode;
@@ -0,0 +1,14 @@
1
+ import { TableState } from '@tanstack/react-table';
2
+ import { TableProps } from '..';
3
+ import { TableRef, TableView } from '../types';
4
+ import * as React from 'react';
5
+ export declare const useGridContainer: <TItem extends object>(props: TableProps<TItem>, ref: React.ForwardedRef<TableRef<TItem>>) => {
6
+ table: import("@tanstack/react-table").Table<TItem>;
7
+ globalFilter: string;
8
+ tableViews: TableView[];
9
+ headerMenu: JSX.Element | React.ReactNode;
10
+ setGlobalFilter: React.Dispatch<React.SetStateAction<string>>;
11
+ resetToDefaultView: () => boolean;
12
+ applyTableState: (tableState: Partial<TableState>) => boolean;
13
+ getTableState: () => Partial<TableState>;
14
+ };
@@ -0,0 +1,9 @@
1
+ import { TableProps } from "../../types";
2
+ import { TableState } from '@tanstack/react-table';
3
+ type ViewSaveFormProps<TItem extends object> = {
4
+ mode: 'create' | 'edit';
5
+ onSave: TableProps<TItem>['onTableViewSave'];
6
+ getTableState: () => Partial<TableState>;
7
+ };
8
+ export declare const ViewSaveForm: <TItem extends object>(props: ViewSaveFormProps<TItem>) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { TableProps, TableView } from '../../types';
3
+ import { Table, TableState } from '@tanstack/react-table';
4
+ type ViewsDrawerProps<TItem extends object> = {
5
+ open: boolean;
6
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
7
+ table: Table<TItem>;
8
+ tableViews: TableView[];
9
+ applyTableState: (tableView: Partial<TableState>) => void;
10
+ resetToGridDefaultView: () => boolean;
11
+ getTableState: () => Partial<TableState>;
12
+ onTableViewSave?: TableProps<TItem>['onTableViewSave'];
13
+ onTableViewDelete?: TableProps<TItem>['onTableViewDelete'];
14
+ };
15
+ export declare const ViewsDrawer: <TItem extends object>(props: ViewsDrawerProps<TItem>) => import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,4 @@
1
+ import { FilterFn } from "@tanstack/react-table";
2
+ export declare const arrIncludesSome: FilterFn<unknown>;
3
+ export declare const dateRange: FilterFn<unknown>;
4
+ export declare const date: FilterFn<unknown>;
@@ -0,0 +1,2 @@
1
+ import { Column } from "@tanstack/react-table";
2
+ export declare const getLeafColumns: <TItem extends object>(columns: Column<TItem, unknown>[]) => Column<TItem, unknown>[];
@@ -1,4 +1,12 @@
1
+ import { FilterFn } from "@tanstack/react-table";
2
+ declare module '@tanstack/table-core' {
3
+ interface FilterFns {
4
+ arrIncludesSome: FilterFn<unknown>;
5
+ matchDate: FilterFn<unknown>;
6
+ inDateRange: FilterFn<unknown>;
7
+ }
8
+ }
1
9
  export { Table } from "./components";
2
- export type { TableProps, TableRef } from "./types";
3
- export type { ColumnDef } from "@tanstack/react-table";
10
+ export type { TableProps, TableRef, TableView } from "./types";
11
+ export type { ColumnDef, TableState } from "@tanstack/react-table";
4
12
  export { createColumnHelper } from "@tanstack/react-table";
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { ColumnDef, ColumnFiltersState, ColumnOrderState, ColumnPinningState, ExpandedState, GroupingState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
3
+ import { TableView } from "./TableView";
3
4
  export type TableProps<TItem extends object> = {
4
5
  /**
5
6
  * Table Columns definitions.
@@ -17,6 +18,10 @@ export type TableProps<TItem extends object> = {
17
18
  * Grid title
18
19
  */
19
20
  gridTitle?: JSX.Element | React.ReactNode;
21
+ /**
22
+ * Table header menu
23
+ */
24
+ headerMenu?: (selectedItems: TItem[]) => JSX.Element | React.ReactNode;
20
25
  /**
21
26
  * Table default page size.
22
27
  */
@@ -75,4 +80,16 @@ export type TableProps<TItem extends object> = {
75
80
  * @default defaultNoItemComponent
76
81
  */
77
82
  noItemPage?: React.ReactNode;
83
+ /**
84
+ * Table Views
85
+ */
86
+ views?: TableView[];
87
+ /**
88
+ * Callback when a table view is saved
89
+ */
90
+ onTableViewSave?: (tableView: TableView) => void;
91
+ /**
92
+ * Callback when a table view is deleted
93
+ */
94
+ onTableViewDelete?: (tableView: TableView) => void;
78
95
  };
@@ -1,7 +1,7 @@
1
- import { Table } from "@tanstack/react-table";
1
+ import { Table, TableState } from "@tanstack/react-table";
2
2
  export type TableRef<TItem extends object> = {
3
3
  table: Table<TItem>;
4
- getTableState: () => Record<string, unknown>;
5
- saveCurrentTableState: (viewName: string) => boolean;
6
- applySavedView: (viewName: string) => boolean;
4
+ getTableState: () => Partial<TableState>;
5
+ applyTableState: (tableState: Partial<TableState>) => boolean;
6
+ resetToDefaultView: () => boolean;
7
7
  };
@@ -0,0 +1,8 @@
1
+ import { TableState } from "@tanstack/react-table";
2
+ export type TableView = {
3
+ id: number;
4
+ viewName: string;
5
+ tableState: Partial<TableState>;
6
+ isGlobal?: boolean;
7
+ isViewOwner?: boolean;
8
+ };
@@ -1,2 +1,3 @@
1
1
  export * from "./TableProps";
2
2
  export * from "./TableRef";
3
+ export * from "./TableView";
@@ -1,8 +0,0 @@
1
- import { TableProps } from "../..";
2
- import { TableRef } from "../../types";
3
- import * as React from "react";
4
- export declare const useGridContainer: <TItem extends object>(props: TableProps<TItem>, ref: React.ForwardedRef<TableRef<TItem>>) => {
5
- table: import("@tanstack/react-table").Table<TItem>;
6
- globalFilter: string;
7
- setGlobalFilter: React.Dispatch<React.SetStateAction<string>>;
8
- };