pam-grid 1.0.5 → 1.0.7

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/dist/index.d.mts CHANGED
@@ -51,6 +51,10 @@ interface GridColumn<T extends object> {
51
51
  onCellClick?: (row: T, column: GridColumn<T>) => void;
52
52
  render?: (row: T) => React.ReactNode;
53
53
  }
54
+ interface groupByObj {
55
+ key: string;
56
+ label: string;
57
+ }
54
58
  interface GridColumnState<T extends object> extends GridColumn<T> {
55
59
  /** internal-only fields */
56
60
  order: number;
@@ -67,13 +71,27 @@ interface GridFetaures<T extends object> {
67
71
  pageSizeSelector?: boolean;
68
72
  aggregation?: boolean;
69
73
  IsNumbering?: boolean;
70
- resizing?: boolean;
71
74
  expand?: boolean;
72
75
  actions?: TableAction<T>[] | ((row: T, toggleExpand: (id: GridRowId) => void) => React.ReactNode);
73
- bulkAction?: BulkAction[];
76
+ bulkActionsConfig?: BulkAction[];
77
+ }
78
+ interface SwitchFilter {
79
+ key: string;
80
+ label: string;
81
+ queryParam: string;
82
+ defaultValue?: boolean;
83
+ trueValue?: string | number | boolean;
84
+ falseValue?: string | number | boolean;
85
+ }
86
+ interface AddNewRecord {
87
+ label: string;
88
+ name?: string;
89
+ icon?: string;
90
+ class?: string;
91
+ onClick: () => void;
74
92
  }
75
93
 
76
- declare function useGridCore<T extends Record<string, any>>({ data, columns, serverMode, rowKey, initialPageSize, }: useGridCoreProps<T>): {
94
+ declare function useGridCore<T extends Record<string, any>>({ data, columns, serverMode, rowKey, initialPageSize, addNewRecord, switchFiltersConfig, }: useGridCoreProps<T>): {
77
95
  page: number;
78
96
  setPage: react.Dispatch<react.SetStateAction<number>>;
79
97
  pageSize: number;
@@ -85,8 +103,8 @@ declare function useGridCore<T extends Record<string, any>>({ data, columns, ser
85
103
  debouncedSearch: string;
86
104
  sortBy: SortState;
87
105
  changeSort: (key: string) => void;
88
- groupBy: string | null;
89
- setGroupBy: react.Dispatch<react.SetStateAction<string | null>>;
106
+ groupBy: groupByObj | null;
107
+ setGroupBy: react.Dispatch<react.SetStateAction<groupByObj | null>>;
90
108
  advanceFilters: AdvancedFilterState;
91
109
  setColumnAdvanceFilter: (column: string, filter: AdvancedFilterInput | null) => void;
92
110
  selected: Set<GridRowId>;
@@ -95,6 +113,7 @@ declare function useGridCore<T extends Record<string, any>>({ data, columns, ser
95
113
  deselectAllOnPage: (rows: T[]) => void;
96
114
  expanded: Set<GridRowId>;
97
115
  toggleExpand: (id: GridRowId) => void;
116
+ addNewRecord: AddNewRecord | undefined;
98
117
  colState: GridColumnState<T>[];
99
118
  visibleColumns: GridColumnState<T>[];
100
119
  updateColumn: (key: GridColumn<T>["key"], patch: Partial<GridColumnState<T>>) => void;
@@ -107,6 +126,11 @@ declare function useGridCore<T extends Record<string, any>>({ data, columns, ser
107
126
  rowKey: string | keyof T;
108
127
  emptyState: EmptySate;
109
128
  setEmptyState: react.Dispatch<react.SetStateAction<EmptySate>>;
129
+ switchFilters: Record<string, boolean>;
130
+ toggleSwitchFilter: (key: string) => void;
131
+ setSwitchFilters: react.Dispatch<react.SetStateAction<Record<string, boolean>>>;
132
+ switchQuery: Record<string, any>;
133
+ switchFiltersConfig: SwitchFilter[] | undefined;
110
134
  };
111
135
 
112
136
  interface useGridCoreProps<T extends Record<string, any>> {
@@ -116,6 +140,8 @@ interface useGridCoreProps<T extends Record<string, any>> {
116
140
  /** Primary key field name */
117
141
  rowKey?: keyof T | string;
118
142
  initialPageSize?: number;
143
+ addNewRecord?: AddNewRecord;
144
+ switchFiltersConfig?: SwitchFilter[];
119
145
  }
120
146
  interface AdvancedFilterInput {
121
147
  type?: AdvancedFilterType;
@@ -130,25 +156,18 @@ interface ColumnVisibilityPanelProps<T extends Record<string, any>> {
130
156
  columns: GridColumnState<T>[];
131
157
  onToggle: (key: GridColumnState<T>["key"]) => void;
132
158
  }
133
- interface FilterAppliedProps {
134
- groupBy: string | null;
159
+ interface FilterAppliedProps<T extends Record<string, any>> {
160
+ groupBy: groupByObj | null;
135
161
  removeGroupby: () => void;
136
162
  advance: AdvancedFilterState;
137
163
  removeFilter: (columnKey: string) => void;
164
+ grid: ReturnType<typeof useGridCore<T>>;
138
165
  }
139
166
  interface PamHeaderOptionProps<T extends Record<string, any>> {
140
167
  /** Column definition */
141
- column: GridColumn<T>;
142
- /** Current pinned state */
143
- pinned?: PinnedPosition;
144
- /** Pin handlers */
145
- onPinLeft: () => void;
146
- onPinRight: () => void;
147
- onUnpin: () => void;
148
- /** Advanced filter state from grid */
149
- advanceFilters: AdvancedFilterState;
150
- /** Setter from useGridCore */
151
- setColumnAdvanceFilter: (columnKey: string, filter: AdvancedFilterInput | null) => void;
168
+ currentColumn: GridColumn<T>;
169
+ gridFetaures: GridFetaures<T>;
170
+ grid: ReturnType<typeof useGridCore<T>>;
152
171
  }
153
172
  interface PamGridProps<T extends Record<string, any>> {
154
173
  columns: GridColumn<T>[];
@@ -173,9 +192,9 @@ declare const PamGrid: <T extends Record<string, unknown>>({ columns, grid, load
173
192
 
174
193
  declare const ColumnVisibilityPanel: <T extends Record<string, any>>({ columns, onToggle, }: ColumnVisibilityPanelProps<T>) => react_jsx_runtime.JSX.Element;
175
194
 
176
- declare const PmsHeaderOption: <T extends Record<string, any>>({ column, pinned, onPinLeft, onPinRight, onUnpin, advanceFilters, setColumnAdvanceFilter, }: PamHeaderOptionProps<T>) => react_jsx_runtime.JSX.Element;
195
+ declare const PamHeaderOptions: <T extends Record<string, any>>({ currentColumn, gridFetaures, grid, }: PamHeaderOptionProps<T>) => react_jsx_runtime.JSX.Element;
177
196
 
178
- declare const FilterApplied: ({ groupBy, removeGroupby, advance, removeFilter, }: FilterAppliedProps) => react_jsx_runtime.JSX.Element;
197
+ declare const FilterApplied: <T extends Record<string, unknown>>({ groupBy, removeGroupby, advance, removeFilter, grid, }: FilterAppliedProps<T>) => react_jsx_runtime.JSX.Element;
179
198
 
180
199
  type PamDropdownPlacement = "bottom-start" | "bottom-end" | "top-start" | "top-end";
181
200
  type PamDropdownItem = {
@@ -205,4 +224,4 @@ declare function getAdvancedFilterType<T extends object>(column: GridColumn<T>):
205
224
  declare function getLeftOffset<T extends object>(colState: GridColumn<T>[], key: GridColumn<T>["key"]): number;
206
225
  declare function getRightOffset<T extends object>(colState: GridColumn<T>[], key: GridColumn<T>["key"]): number;
207
226
 
208
- export { type AdvancedFilter, type AdvancedFilterType, ColumnVisibilityPanel, FilterApplied, type GridColumn, type GridFetaures, type GridRowId, PamDropdown as PamDropDown, type PamDropdownItem, type PamDropdownPlacement, PamGrid, type PamGridProps, PmsHeaderOption as PamHeaderOption, type PinnedPosition, type TableAction, getAdvancedFilterType, getLeftOffset, getRightOffset, useGridCore };
227
+ export { type AdvancedFilter, type AdvancedFilterType, ColumnVisibilityPanel, FilterApplied, type GridColumn, type GridFetaures, type GridRowId, PamDropdown as PamDropDown, type PamDropdownItem, type PamDropdownPlacement, PamGrid, type PamGridProps, PamHeaderOptions as PamHeaderOption, type PinnedPosition, type TableAction, getAdvancedFilterType, getLeftOffset, getRightOffset, useGridCore };
package/dist/index.d.ts CHANGED
@@ -51,6 +51,10 @@ interface GridColumn<T extends object> {
51
51
  onCellClick?: (row: T, column: GridColumn<T>) => void;
52
52
  render?: (row: T) => React.ReactNode;
53
53
  }
54
+ interface groupByObj {
55
+ key: string;
56
+ label: string;
57
+ }
54
58
  interface GridColumnState<T extends object> extends GridColumn<T> {
55
59
  /** internal-only fields */
56
60
  order: number;
@@ -67,13 +71,27 @@ interface GridFetaures<T extends object> {
67
71
  pageSizeSelector?: boolean;
68
72
  aggregation?: boolean;
69
73
  IsNumbering?: boolean;
70
- resizing?: boolean;
71
74
  expand?: boolean;
72
75
  actions?: TableAction<T>[] | ((row: T, toggleExpand: (id: GridRowId) => void) => React.ReactNode);
73
- bulkAction?: BulkAction[];
76
+ bulkActionsConfig?: BulkAction[];
77
+ }
78
+ interface SwitchFilter {
79
+ key: string;
80
+ label: string;
81
+ queryParam: string;
82
+ defaultValue?: boolean;
83
+ trueValue?: string | number | boolean;
84
+ falseValue?: string | number | boolean;
85
+ }
86
+ interface AddNewRecord {
87
+ label: string;
88
+ name?: string;
89
+ icon?: string;
90
+ class?: string;
91
+ onClick: () => void;
74
92
  }
75
93
 
76
- declare function useGridCore<T extends Record<string, any>>({ data, columns, serverMode, rowKey, initialPageSize, }: useGridCoreProps<T>): {
94
+ declare function useGridCore<T extends Record<string, any>>({ data, columns, serverMode, rowKey, initialPageSize, addNewRecord, switchFiltersConfig, }: useGridCoreProps<T>): {
77
95
  page: number;
78
96
  setPage: react.Dispatch<react.SetStateAction<number>>;
79
97
  pageSize: number;
@@ -85,8 +103,8 @@ declare function useGridCore<T extends Record<string, any>>({ data, columns, ser
85
103
  debouncedSearch: string;
86
104
  sortBy: SortState;
87
105
  changeSort: (key: string) => void;
88
- groupBy: string | null;
89
- setGroupBy: react.Dispatch<react.SetStateAction<string | null>>;
106
+ groupBy: groupByObj | null;
107
+ setGroupBy: react.Dispatch<react.SetStateAction<groupByObj | null>>;
90
108
  advanceFilters: AdvancedFilterState;
91
109
  setColumnAdvanceFilter: (column: string, filter: AdvancedFilterInput | null) => void;
92
110
  selected: Set<GridRowId>;
@@ -95,6 +113,7 @@ declare function useGridCore<T extends Record<string, any>>({ data, columns, ser
95
113
  deselectAllOnPage: (rows: T[]) => void;
96
114
  expanded: Set<GridRowId>;
97
115
  toggleExpand: (id: GridRowId) => void;
116
+ addNewRecord: AddNewRecord | undefined;
98
117
  colState: GridColumnState<T>[];
99
118
  visibleColumns: GridColumnState<T>[];
100
119
  updateColumn: (key: GridColumn<T>["key"], patch: Partial<GridColumnState<T>>) => void;
@@ -107,6 +126,11 @@ declare function useGridCore<T extends Record<string, any>>({ data, columns, ser
107
126
  rowKey: string | keyof T;
108
127
  emptyState: EmptySate;
109
128
  setEmptyState: react.Dispatch<react.SetStateAction<EmptySate>>;
129
+ switchFilters: Record<string, boolean>;
130
+ toggleSwitchFilter: (key: string) => void;
131
+ setSwitchFilters: react.Dispatch<react.SetStateAction<Record<string, boolean>>>;
132
+ switchQuery: Record<string, any>;
133
+ switchFiltersConfig: SwitchFilter[] | undefined;
110
134
  };
111
135
 
112
136
  interface useGridCoreProps<T extends Record<string, any>> {
@@ -116,6 +140,8 @@ interface useGridCoreProps<T extends Record<string, any>> {
116
140
  /** Primary key field name */
117
141
  rowKey?: keyof T | string;
118
142
  initialPageSize?: number;
143
+ addNewRecord?: AddNewRecord;
144
+ switchFiltersConfig?: SwitchFilter[];
119
145
  }
120
146
  interface AdvancedFilterInput {
121
147
  type?: AdvancedFilterType;
@@ -130,25 +156,18 @@ interface ColumnVisibilityPanelProps<T extends Record<string, any>> {
130
156
  columns: GridColumnState<T>[];
131
157
  onToggle: (key: GridColumnState<T>["key"]) => void;
132
158
  }
133
- interface FilterAppliedProps {
134
- groupBy: string | null;
159
+ interface FilterAppliedProps<T extends Record<string, any>> {
160
+ groupBy: groupByObj | null;
135
161
  removeGroupby: () => void;
136
162
  advance: AdvancedFilterState;
137
163
  removeFilter: (columnKey: string) => void;
164
+ grid: ReturnType<typeof useGridCore<T>>;
138
165
  }
139
166
  interface PamHeaderOptionProps<T extends Record<string, any>> {
140
167
  /** Column definition */
141
- column: GridColumn<T>;
142
- /** Current pinned state */
143
- pinned?: PinnedPosition;
144
- /** Pin handlers */
145
- onPinLeft: () => void;
146
- onPinRight: () => void;
147
- onUnpin: () => void;
148
- /** Advanced filter state from grid */
149
- advanceFilters: AdvancedFilterState;
150
- /** Setter from useGridCore */
151
- setColumnAdvanceFilter: (columnKey: string, filter: AdvancedFilterInput | null) => void;
168
+ currentColumn: GridColumn<T>;
169
+ gridFetaures: GridFetaures<T>;
170
+ grid: ReturnType<typeof useGridCore<T>>;
152
171
  }
153
172
  interface PamGridProps<T extends Record<string, any>> {
154
173
  columns: GridColumn<T>[];
@@ -173,9 +192,9 @@ declare const PamGrid: <T extends Record<string, unknown>>({ columns, grid, load
173
192
 
174
193
  declare const ColumnVisibilityPanel: <T extends Record<string, any>>({ columns, onToggle, }: ColumnVisibilityPanelProps<T>) => react_jsx_runtime.JSX.Element;
175
194
 
176
- declare const PmsHeaderOption: <T extends Record<string, any>>({ column, pinned, onPinLeft, onPinRight, onUnpin, advanceFilters, setColumnAdvanceFilter, }: PamHeaderOptionProps<T>) => react_jsx_runtime.JSX.Element;
195
+ declare const PamHeaderOptions: <T extends Record<string, any>>({ currentColumn, gridFetaures, grid, }: PamHeaderOptionProps<T>) => react_jsx_runtime.JSX.Element;
177
196
 
178
- declare const FilterApplied: ({ groupBy, removeGroupby, advance, removeFilter, }: FilterAppliedProps) => react_jsx_runtime.JSX.Element;
197
+ declare const FilterApplied: <T extends Record<string, unknown>>({ groupBy, removeGroupby, advance, removeFilter, grid, }: FilterAppliedProps<T>) => react_jsx_runtime.JSX.Element;
179
198
 
180
199
  type PamDropdownPlacement = "bottom-start" | "bottom-end" | "top-start" | "top-end";
181
200
  type PamDropdownItem = {
@@ -205,4 +224,4 @@ declare function getAdvancedFilterType<T extends object>(column: GridColumn<T>):
205
224
  declare function getLeftOffset<T extends object>(colState: GridColumn<T>[], key: GridColumn<T>["key"]): number;
206
225
  declare function getRightOffset<T extends object>(colState: GridColumn<T>[], key: GridColumn<T>["key"]): number;
207
226
 
208
- export { type AdvancedFilter, type AdvancedFilterType, ColumnVisibilityPanel, FilterApplied, type GridColumn, type GridFetaures, type GridRowId, PamDropdown as PamDropDown, type PamDropdownItem, type PamDropdownPlacement, PamGrid, type PamGridProps, PmsHeaderOption as PamHeaderOption, type PinnedPosition, type TableAction, getAdvancedFilterType, getLeftOffset, getRightOffset, useGridCore };
227
+ export { type AdvancedFilter, type AdvancedFilterType, ColumnVisibilityPanel, FilterApplied, type GridColumn, type GridFetaures, type GridRowId, PamDropdown as PamDropDown, type PamDropdownItem, type PamDropdownPlacement, PamGrid, type PamGridProps, PamHeaderOptions as PamHeaderOption, type PinnedPosition, type TableAction, getAdvancedFilterType, getLeftOffset, getRightOffset, useGridCore };