@absreim/react-bootstrap-data-grid-pro 3.0.0 → 4.0.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.
Files changed (184) hide show
  1. package/common/constants.d.ts +2 -0
  2. package/common/constants.js +2 -0
  3. package/common/editing/types.d.ts +7 -0
  4. package/{grid → common}/filtering/FilterOptionsTable.d.ts +4 -4
  5. package/{grid → common}/filtering/types.d.ts +6 -6
  6. package/common/filtering/useFilterFormState.d.ts +3 -0
  7. package/common/index.d.ts +11 -0
  8. package/common/index.js +11 -0
  9. package/{grid → common}/pagination/PageSelector.d.ts +1 -1
  10. package/{grid → common}/pagination/PageSizeSelector.d.ts +1 -1
  11. package/{grid → common}/pagination/types.d.ts +2 -1
  12. package/{grid → common}/pipeline/useAugFormattedRows.d.ts +1 -1
  13. package/common/pipeline/useColNameToWidth.d.ts +3 -0
  14. package/common/pipeline/useColNameToWidth.js +7 -0
  15. package/{grid → common}/pipeline/useCombinedPipeline/index.d.ts +4 -4
  16. package/{grid → common}/pipeline/useCombinedPipeline/useCurrentPageRows.d.ts +1 -1
  17. package/{grid → common}/pipeline/useCombinedPipeline/useDisplayRows.d.ts +1 -1
  18. package/{grid → common}/pipeline/useCombinedPipeline/useDisplayRows.js +1 -2
  19. package/common/pipeline/useCombinedPipeline/useFilter.d.ts +4 -0
  20. package/common/pipeline/useCombinedPipeline/useFilterStateFromEditable.d.ts +4 -0
  21. package/{grid → common}/pipeline/useCombinedPipeline/useSortedRows.d.ts +2 -2
  22. package/{grid → common}/pipeline/useGridSelectionFns.d.ts +2 -2
  23. package/{grid → common}/sorting/types.d.ts +3 -3
  24. package/{grid/main/ColHeaderCell → common/sorting}/useSortHeaderStates.d.ts +2 -2
  25. package/{grid/main/ColHeaderCell → common/sorting}/useSortHeaderStates.js +4 -4
  26. package/common/styling/types.d.ts +21 -0
  27. package/{grid → common}/types.d.ts +21 -30
  28. package/common/util/index.d.ts +5 -0
  29. package/common/util/index.js +5 -0
  30. package/grid/constants.d.ts +2 -0
  31. package/grid/constants.js +2 -0
  32. package/grid/index.d.ts +3 -10
  33. package/grid/index.js +3 -10
  34. package/grid/{Grid.d.ts → main/Grid.d.ts} +0 -1
  35. package/grid/main/Grid.js +59 -0
  36. package/grid/main/GridBody.d.ts +4 -0
  37. package/grid/main/GridBody.js +13 -0
  38. package/grid/main/GridHeader.d.ts +4 -0
  39. package/grid/main/GridHeader.js +11 -0
  40. package/grid/main/getWidthStyles.d.ts +3 -0
  41. package/grid/main/getWidthStyles.js +6 -0
  42. package/grid/main/types.d.ts +32 -0
  43. package/grid.css +1 -0
  44. package/grid.scss +231 -0
  45. package/package.json +1 -1
  46. package/pro/index.d.ts +5 -0
  47. package/pro/index.js +5 -0
  48. package/{grid/InternalGrid.d.ts → table/InternalTable.d.ts} +6 -6
  49. package/{grid/InternalGrid.js → table/InternalTable.js} +7 -7
  50. package/table/Table.d.ts +5 -0
  51. package/{grid/Grid.js → table/Table.js} +10 -14
  52. package/{grid → table}/editing/EditableRow.d.ts +1 -2
  53. package/{grid → table}/editing/EditableRow.js +2 -2
  54. package/table/index.d.ts +5 -0
  55. package/table/index.js +5 -0
  56. package/{grid → table}/main/BodyRows.d.ts +7 -7
  57. package/{grid → table}/main/BodyRows.js +1 -1
  58. package/{grid → table}/main/ColHeaderCell/index.js +3 -3
  59. package/{grid → table}/selection/SelectAllHeaderCell.d.ts +1 -1
  60. package/table/style.scss +3 -0
  61. package/{grid → table}/styling/types.d.ts +1 -21
  62. package/table/styling/types.js +1 -0
  63. package/table/types.d.ts +19 -0
  64. package/table/types.js +1 -0
  65. package/{grid-pro → table-pro}/ColHeaderCellPro.js +4 -4
  66. package/table-pro/TablePro.d.ts +4 -0
  67. package/{grid-pro/GridPro.js → table-pro/TablePro.js} +9 -9
  68. package/{grid-pro → table-pro}/index.d.ts +2 -2
  69. package/{grid-pro → table-pro}/index.js +2 -2
  70. package/{grid-pro → table-pro}/reorder/ReorderHandleCell.js +1 -1
  71. package/{grid-pro → table-pro}/reorder/useKeyboardReorder.js +1 -1
  72. package/{grid-pro → table-pro}/resize/useResizeModel.d.ts +1 -1
  73. package/table-pro/style.scss +69 -0
  74. package/{grid-pro → table-pro}/types.d.ts +3 -3
  75. package/table-pro/types.js +1 -0
  76. package/table-pro.scss +1 -0
  77. package/grid/editing/types.d.ts +0 -16
  78. package/grid/filtering/useFilterFormState.d.ts +0 -3
  79. package/grid/pipeline/useCombinedPipeline/useFilter.d.ts +0 -4
  80. package/grid/pipeline/useCombinedPipeline/useFilterStateFromEditable.d.ts +0 -4
  81. package/grid-pro/GridPro.d.ts +0 -4
  82. /package/{grid → common}/editing/inputStrsToRowData.d.ts +0 -0
  83. /package/{grid → common}/editing/inputStrsToRowData.js +0 -0
  84. /package/{grid-pro/reorder → common/editing}/types.js +0 -0
  85. /package/{grid → common}/export/ExportForm.d.ts +0 -0
  86. /package/{grid → common}/export/ExportForm.js +0 -0
  87. /package/{grid → common}/export/types.d.ts +0 -0
  88. /package/{grid-pro/resize → common/export}/types.js +0 -0
  89. /package/{grid → common}/export/useExportFn.d.ts +0 -0
  90. /package/{grid → common}/export/useExportFn.js +0 -0
  91. /package/{grid → common}/filtering/DateFilterRow.d.ts +0 -0
  92. /package/{grid → common}/filtering/DateFilterRow.js +0 -0
  93. /package/{grid → common}/filtering/FilterOptionsTable.js +0 -0
  94. /package/{grid → common}/filtering/FilterRow.d.ts +0 -0
  95. /package/{grid → common}/filtering/FilterRow.js +0 -0
  96. /package/{grid → common}/filtering/NumberFilterRow.d.ts +0 -0
  97. /package/{grid → common}/filtering/NumberFilterRow.js +0 -0
  98. /package/{grid → common}/filtering/StringFilterRow.d.ts +0 -0
  99. /package/{grid → common}/filtering/StringFilterRow.js +0 -0
  100. /package/{grid → common}/filtering/types.js +0 -0
  101. /package/{grid → common}/filtering/useFilterFormState.js +0 -0
  102. /package/{grid → common}/pagination/PageSelector.js +0 -0
  103. /package/{grid → common}/pagination/PageSizeSelector.js +0 -0
  104. /package/{grid → common}/pagination/Pagination.d.ts +0 -0
  105. /package/{grid → common}/pagination/Pagination.js +0 -0
  106. /package/{grid-pro → common/pagination}/types.js +0 -0
  107. /package/{grid → common}/pipeline/types.d.ts +0 -0
  108. /package/{grid-pro/util → common/pipeline}/types.js +0 -0
  109. /package/{grid → common}/pipeline/useAugFormattedRows.js +0 -0
  110. /package/{grid → common}/pipeline/useCombinedPipeline/index.js +0 -0
  111. /package/{grid → common}/pipeline/useCombinedPipeline/useCurrentPageRows.js +0 -0
  112. /package/{grid → common}/pipeline/useCombinedPipeline/useFilter.js +0 -0
  113. /package/{grid → common}/pipeline/useCombinedPipeline/useFilterStateFromEditable.js +0 -0
  114. /package/{grid → common}/pipeline/useCombinedPipeline/useFilterStateStore.d.ts +0 -0
  115. /package/{grid → common}/pipeline/useCombinedPipeline/useFilterStateStore.js +0 -0
  116. /package/{grid → common}/pipeline/useCombinedPipeline/useSortedRows.js +0 -0
  117. /package/{grid → common}/pipeline/useGetInputStrSubmitCallback.d.ts +0 -0
  118. /package/{grid → common}/pipeline/useGetInputStrSubmitCallback.js +0 -0
  119. /package/{grid → common}/pipeline/useGridSelectionFns.js +0 -0
  120. /package/{grid → common}/selection/types.d.ts +0 -0
  121. /package/{grid → common}/selection/types.js +0 -0
  122. /package/{grid → common}/sorting/arrowPlaceholder.d.ts +0 -0
  123. /package/{grid → common}/sorting/arrowPlaceholder.js +0 -0
  124. /package/{grid → common}/sorting/downArrow.d.ts +0 -0
  125. /package/{grid → common}/sorting/downArrow.js +0 -0
  126. /package/{grid → common}/sorting/sortOrderToAriaSort.d.ts +0 -0
  127. /package/{grid → common}/sorting/sortOrderToAriaSort.js +0 -0
  128. /package/{grid/editing → common/sorting}/types.js +0 -0
  129. /package/{grid → common}/sorting/upArrow.d.ts +0 -0
  130. /package/{grid → common}/sorting/upArrow.js +0 -0
  131. /package/{grid/export → common/styling}/types.js +0 -0
  132. /package/{grid → common}/toolbar/Toolbar.d.ts +0 -0
  133. /package/{grid → common}/toolbar/Toolbar.js +0 -0
  134. /package/{grid → common}/toolbar/ToolbarContainer.d.ts +0 -0
  135. /package/{grid → common}/toolbar/ToolbarContainer.js +0 -0
  136. /package/{grid → common}/toolbar/types.d.ts +0 -0
  137. /package/{grid/pagination → common/toolbar}/types.js +0 -0
  138. /package/{grid → common}/toolbar/useInterfaces.d.ts +0 -0
  139. /package/{grid → common}/toolbar/useInterfaces.js +0 -0
  140. /package/{grid/pipeline → common}/types.js +0 -0
  141. /package/{grid → common}/util/datetime.d.ts +0 -0
  142. /package/{grid → common}/util/datetime.js +0 -0
  143. /package/{grid → common}/util/getWidthStyle.d.ts +0 -0
  144. /package/{grid → common}/util/getWidthStyle.js +0 -0
  145. /package/{grid → common}/util/isSubset.d.ts +0 -0
  146. /package/{grid → common}/util/isSubset.js +0 -0
  147. /package/{grid → common}/util/trueModulo.d.ts +0 -0
  148. /package/{grid → common}/util/trueModulo.js +0 -0
  149. /package/{grid → common}/util/useControlledHover.d.ts +0 -0
  150. /package/{grid → common}/util/useControlledHover.js +0 -0
  151. /package/grid/{sorting → main}/types.js +0 -0
  152. /package/{grid → table}/editing/EditControlsCell.d.ts +0 -0
  153. /package/{grid → table}/editing/EditControlsCell.js +0 -0
  154. /package/{grid → table}/main/ColHeaderCell/index.d.ts +0 -0
  155. /package/{grid → table}/selection/SelectAllHeaderCell.js +0 -0
  156. /package/{grid → table}/selection/SelectionInput.d.ts +0 -0
  157. /package/{grid → table}/selection/SelectionInput.js +0 -0
  158. /package/{grid-pro → table-pro}/ColHeaderCellPro.d.ts +0 -0
  159. /package/{grid-pro → table-pro}/assets/HorizontalGrip.d.ts +0 -0
  160. /package/{grid-pro → table-pro}/assets/HorizontalGrip.js +0 -0
  161. /package/{grid-pro → table-pro}/assets/VerticalGrip.d.ts +0 -0
  162. /package/{grid-pro → table-pro}/assets/VerticalGrip.js +0 -0
  163. /package/{grid-pro/util → table-pro/lib}/regDragCleanup.d.ts +0 -0
  164. /package/{grid-pro/util → table-pro/lib}/regDragCleanup.js +0 -0
  165. /package/{grid-pro/util → table-pro/lib}/types.d.ts +0 -0
  166. /package/{grid/styling → table-pro/lib}/types.js +0 -0
  167. /package/{grid-pro → table-pro}/reorder/ReorderHandleCell.d.ts +0 -0
  168. /package/{grid-pro → table-pro}/reorder/ReorderHeaderCell.d.ts +0 -0
  169. /package/{grid-pro → table-pro}/reorder/ReorderHeaderCell.js +0 -0
  170. /package/{grid-pro → table-pro}/reorder/types.d.ts +0 -0
  171. /package/{grid/toolbar → table-pro/reorder}/types.js +0 -0
  172. /package/{grid-pro → table-pro}/reorder/useKeyboardReorder.d.ts +0 -0
  173. /package/{grid-pro → table-pro}/reorder/useKeyboardReorderListener.d.ts +0 -0
  174. /package/{grid-pro → table-pro}/reorder/useKeyboardReorderListener.js +0 -0
  175. /package/{grid-pro → table-pro}/reorder/useReorderStyles.d.ts +0 -0
  176. /package/{grid-pro → table-pro}/reorder/useReorderStyles.js +0 -0
  177. /package/{grid-pro → table-pro}/resize/types.d.ts +0 -0
  178. /package/{grid → table-pro/resize}/types.js +0 -0
  179. /package/{grid-pro → table-pro}/resize/useResizeModel.js +0 -0
  180. /package/{grid-pro → table-pro}/util/index.d.ts +0 -0
  181. /package/{grid-pro → table-pro}/util/index.js +0 -0
  182. /package/{grid-pro → table-pro}/util/reorderRows.d.ts +0 -0
  183. /package/{grid-pro → table-pro}/util/reorderRows.js +0 -0
  184. /package/{style.css → table-pro.css} +0 -0
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_COL_WIDTH = 100;
2
+ export declare const CSS_PREFIX = "rbdg-grid";
@@ -0,0 +1,2 @@
1
+ export const DEFAULT_COL_WIDTH = 100;
2
+ export const CSS_PREFIX = "rbdg-grid";
@@ -0,0 +1,7 @@
1
+ import { RowData, RowId } from "../types";
2
+ export type UpdateCallbackGenerator = (id: RowId) => (rowData: RowData) => void;
3
+ export interface EditModel {
4
+ getUpdateCallback: UpdateCallbackGenerator;
5
+ getDeleteCallback?: (id: RowId) => () => void;
6
+ editColWidth?: number;
7
+ }
@@ -1,9 +1,9 @@
1
1
  import { FC } from "react";
2
- import { EditableTableFilterState, TableFilterState } from "./types";
3
- import { FilterInputTableStyleModel } from "../styling/types";
2
+ import { EditableFilterState, FilterState } from "./types";
3
+ import { FilterInputTableStyleModel } from "../../table/styling/types";
4
4
  export interface FilterOptionsTableProps {
5
- filterState: TableFilterState;
6
- setFilterState: (filterState: EditableTableFilterState) => void;
5
+ filterState: FilterState;
6
+ setFilterState: (filterState: EditableFilterState) => void;
7
7
  closeFormCallback: () => void;
8
8
  caption?: string;
9
9
  styleModel?: FilterInputTableStyleModel;
@@ -1,7 +1,7 @@
1
- export type TableFilterState = Record<string, ColFilterState>;
2
- export type EditableTableFilterState = Record<string, FilterState>;
1
+ export type FilterState = Record<string, ColFilterState>;
2
+ export type EditableFilterState = Record<string, EditableColFilterState>;
3
3
  export interface ColFilterState {
4
- editableState: FilterState;
4
+ editableState: EditableColFilterState;
5
5
  label: string;
6
6
  }
7
7
  export interface AbstractFilterState {
@@ -44,11 +44,11 @@ export interface BetweenDatesFilterState extends AbstractDateFilterState {
44
44
  endDate: Date | null;
45
45
  }
46
46
  export type DateFilterState = StartDateFilterState | EndDateFilterState | BetweenDatesFilterState;
47
- export type FilterState = StringFilterState | NumberFilterState | DateFilterState;
47
+ export type EditableColFilterState = StringFilterState | NumberFilterState | DateFilterState;
48
48
  export interface ControlledFilterModel {
49
49
  type?: "controlled";
50
- tableFilterState: EditableTableFilterState;
51
- setTableFilterState: (state: EditableTableFilterState) => void;
50
+ tableFilterState: EditableFilterState;
51
+ setTableFilterState: (state: EditableFilterState) => void;
52
52
  filterTableCaption?: string;
53
53
  }
54
54
  export type UncontrolledFilterModel = Partial<Pick<ControlledFilterModel, "tableFilterState" | "filterTableCaption">> & {
@@ -0,0 +1,3 @@
1
+ import { FilterFormState, FilterState } from "./types";
2
+ declare const useFilterFormState: (tableFilterState: FilterState) => FilterFormState;
3
+ export default useFilterFormState;
@@ -0,0 +1,11 @@
1
+ export * from "./editing/types";
2
+ export * from "./export/types";
3
+ export * from "./filtering/types";
4
+ export * from "./pagination/types";
5
+ export * from "./pipeline/types";
6
+ export * from "./sorting/types";
7
+ export * from "./styling/types";
8
+ export * from "./toolbar/types";
9
+ export * from "./selection/types";
10
+ export * from "./types";
11
+ export * from "./util";
@@ -0,0 +1,11 @@
1
+ export * from "./editing/types";
2
+ export * from "./export/types";
3
+ export * from "./filtering/types";
4
+ export * from "./pagination/types";
5
+ export * from "./pipeline/types";
6
+ export * from "./sorting/types";
7
+ export * from "./styling/types";
8
+ export * from "./toolbar/types";
9
+ export * from "./selection/types";
10
+ export * from "./types";
11
+ export * from "./util";
@@ -1,5 +1,5 @@
1
- import { JustifyContentSetting, Size } from "../types";
2
1
  import { FC } from "react";
2
+ import { JustifyContentSetting, Size } from "../";
3
3
  export interface PageSelectorProps {
4
4
  numPages: number;
5
5
  pageNum: number;
@@ -1,5 +1,5 @@
1
1
  import { FC } from "react";
2
- import { Size } from "../types";
2
+ import { Size } from "../";
3
3
  export interface PageSizeSelectorProps {
4
4
  componentSize: Size;
5
5
  pageSizeOptions: number[];
@@ -1,4 +1,5 @@
1
- import { JustifyContentSetting, Size } from "../types";
1
+ export type JustifyContentSetting = "start" | "end" | "center" | "between" | "around" | "evenly";
2
+ export type Size = "small" | "medium" | "large";
2
3
  export interface PaginationOptions {
3
4
  pageSizeOptions?: number[];
4
5
  maxPageButtons?: number;
@@ -1,4 +1,4 @@
1
- import { AugFormattedRow, FormattedRow } from "../types";
2
1
  import { ColNameToWidth } from "./types";
2
+ import { AugFormattedRow, FormattedRow } from "../";
3
3
  declare const useAugFormattedRows: (colNameToWidth: ColNameToWidth, rows: FormattedRow[]) => AugFormattedRow[];
4
4
  export default useAugFormattedRows;
@@ -0,0 +1,3 @@
1
+ import { ColDef, ColNameToWidth } from "../";
2
+ declare const useColNameToWidth: (cols: ColDef[]) => ColNameToWidth;
3
+ export default useColNameToWidth;
@@ -0,0 +1,7 @@
1
+ import { useMemo } from "react";
2
+ const useColNameToWidth = (cols) => useMemo(() => {
3
+ const map = {};
4
+ cols.forEach(({ name, width }) => (map[name] = width));
5
+ return map;
6
+ }, [cols]);
7
+ export default useColNameToWidth;
@@ -1,14 +1,14 @@
1
1
  import { SortedRowsOutput } from "./useSortedRows";
2
2
  import { CurrentPageRowsOutput } from "./useCurrentPageRows";
3
- import { ColDefBase, FormattedRow, GridProps, RowDef } from "../../types";
4
- import { NormalizedTableFilterModel, TableFilterState } from "../../filtering/types";
5
- export type CombinedPipelineParams = Pick<GridProps, "rows" | "filterModel" | "sortModel" | "pagination" | "selectModel"> & {
3
+ import { NormalizedTableFilterModel, FilterState } from "../../";
4
+ import { ColDefBase, FormattedRow, MainComponentSharedProps, RowDef } from "../../types";
5
+ export type CombinedPipelineParams = Pick<MainComponentSharedProps, "rows" | "filterModel" | "sortModel" | "pagination" | "selectModel"> & {
6
6
  cols: ColDefBase[];
7
7
  };
8
8
  export interface UseCombinedPipelineHook {
9
9
  normalizedTableFilterModel: NormalizedTableFilterModel | null;
10
10
  filteredRows: RowDef[];
11
- filterState: TableFilterState | null;
11
+ filterState: FilterState | null;
12
12
  sortedRowsOutput: SortedRowsOutput;
13
13
  currentPageRowsOutput: CurrentPageRowsOutput;
14
14
  showSelectCol: boolean;
@@ -1,5 +1,5 @@
1
- import { AugRowDef, PostPaginationRowDef } from "../../types";
2
1
  import { NormalizedPaginationModel, PaginationModel } from "../../pagination/types";
2
+ import { AugRowDef, PostPaginationRowDef } from "../../";
3
3
  export interface CurrentPageRowsOutput {
4
4
  paginatedRows: PostPaginationRowDef[];
5
5
  normalizedModel: NormalizedPaginationModel | null;
@@ -1,3 +1,3 @@
1
- import { FormattedRow, ColDef, PostPaginationRowDef } from "../../types";
1
+ import { ColDef, FormattedRow, PostPaginationRowDef } from "../../types";
2
2
  declare const useDisplayRows: (currentPageRows: PostPaginationRowDef[], cols: ColDef[], ariaColIndexOffset: number) => FormattedRow[];
3
3
  export default useDisplayRows;
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from "react";
2
- import { dateToDatetimeInputStr, dateToInputStr } from "../../util/datetime";
2
+ import { dateToDatetimeInputStr, dateToInputStr } from "../../util";
3
3
  const getFormattedValue = (value, formatter, typeString) => {
4
4
  if (formatter) {
5
5
  return formatter(value);
@@ -31,7 +31,6 @@ const useDisplayRows = (currentPageRows, cols, ariaColIndexOffset) => useMemo(()
31
31
  const displayRow = [];
32
32
  Object.keys(row.data).forEach((name) => {
33
33
  if (!nameToIndex.has(name)) {
34
- console.error(`Warning: row data contains a property named "${name}", but it was not found among the column definitions.`);
35
34
  return;
36
35
  }
37
36
  const index = nameToIndex.get(name);
@@ -0,0 +1,4 @@
1
+ import { EditableFilterState } from "../../filtering/types";
2
+ import { AugRowDef, RowDef } from "../../types";
3
+ declare const useFilter: (rows: RowDef[], filterState: EditableFilterState | null) => AugRowDef[];
4
+ export default useFilter;
@@ -0,0 +1,4 @@
1
+ import { EditableFilterState, FilterState } from "../../filtering/types";
2
+ import { ColDef } from "../../types";
3
+ declare const useFilterStateFromEditable: (colDefs: ColDef[], editableFilterState: EditableFilterState | null) => FilterState | null;
4
+ export default useFilterStateFromEditable;
@@ -1,10 +1,10 @@
1
+ import { SortColDef, SortModel } from "../../sorting/types";
1
2
  import { AugRowDef, ColDefBase } from "../../types";
2
- import { SortColDef, TableSortModel } from "../../sorting/types";
3
3
  export interface SortedRowsOutput {
4
4
  sortedRows: AugRowDef[];
5
5
  sortingEnabled: boolean;
6
6
  sortColDef: SortColDef | null | undefined;
7
7
  setSortColDef: ((sortColDef: SortColDef | null) => void) | undefined;
8
8
  }
9
- declare const useSortedRows: (rows: AugRowDef[], cols: ColDefBase[], sortModel: TableSortModel | undefined) => SortedRowsOutput;
9
+ declare const useSortedRows: (rows: AugRowDef[], cols: ColDefBase[], sortModel: SortModel | undefined) => SortedRowsOutput;
10
10
  export default useSortedRows;
@@ -1,7 +1,7 @@
1
- import { RowDef, RowId } from "../types";
2
1
  import { MouseEventHandler } from "react";
3
2
  import { SelectionInfo, SelectModel } from "../selection/types";
4
- import { SelectionInputModel } from "../selection/SelectionInput";
3
+ import { SelectionInputModel } from "../../table/selection/SelectionInput";
4
+ import { RowDef, RowId } from "../types";
5
5
  export interface UseGridSelectionFnsHook {
6
6
  selectedSet: Set<RowId>;
7
7
  rowsAreSelectable: boolean | undefined;
@@ -7,13 +7,13 @@ export interface ColSortModel {
7
7
  sortOrder: SortOrder | null;
8
8
  setSortOrder: (order: SortOrder | null) => void;
9
9
  }
10
- export interface ControlledTableSortModel {
10
+ export interface ControlledSortModel {
11
11
  type?: "controlled";
12
12
  sortColDef: SortColDef | null;
13
13
  setSortColDef: (sortColDef: SortColDef | null) => void;
14
14
  }
15
- export interface UncontrolledTableSortModel {
15
+ export interface UncontrolledSortModel {
16
16
  type: "uncontrolled";
17
17
  initialSortColDef: SortColDef | null;
18
18
  }
19
- export type TableSortModel = ControlledTableSortModel | UncontrolledTableSortModel;
19
+ export type SortModel = ControlledSortModel | UncontrolledSortModel;
@@ -1,6 +1,6 @@
1
- import { UseControlledHoverHook } from "../../util/useControlledHover";
1
+ import { UseControlledHoverHook } from "../util/useControlledHover";
2
2
  import { ReactNode } from "react";
3
- import { ColSortModel } from "../../sorting/types";
3
+ import { ColSortModel } from "./types";
4
4
  export type UseSortHeaderStatesHook = UseControlledHoverHook<HTMLTableCellElement> & {
5
5
  handleClick: () => void;
6
6
  sortSymbol: ReactNode;
@@ -1,8 +1,8 @@
1
- import useControlledHover from "../../util/useControlledHover";
1
+ import useControlledHover from "../util/useControlledHover";
2
2
  import { useMemo } from "react";
3
- import upArrow from "../../sorting/upArrow";
4
- import arrowPlaceholder from "../../sorting/arrowPlaceholder";
5
- import downArrow from "../../sorting/downArrow";
3
+ import upArrow from "./upArrow";
4
+ import arrowPlaceholder from "./arrowPlaceholder";
5
+ import downArrow from "./downArrow";
6
6
  const useSortHeaderStates = (sortModel) => {
7
7
  const { isHovering, setIsHovering, handleMouseOver, handleMouseOut } = useControlledHover();
8
8
  const handleClick = () => {
@@ -0,0 +1,21 @@
1
+ import { AdditionalComponentsStyleModel, FilterInputTableStyleModel, TableStyleModel } from "../../table";
2
+ export interface ToolbarStyleModel {
3
+ activeButton?: string[];
4
+ inactiveButton?: string[];
5
+ toolbar?: string[];
6
+ interfaceContainer?: string[];
7
+ }
8
+ export interface ExportFormStyleModel {
9
+ legend?: string[];
10
+ radioContainer?: string[];
11
+ radioInput?: string[];
12
+ radioLabel?: string[];
13
+ submitButton?: string[];
14
+ }
15
+ export interface StyleModel {
16
+ mainTableStyleModel?: TableStyleModel;
17
+ filterInputTableStyleModel?: FilterInputTableStyleModel;
18
+ additionalComponentsStyleModel?: AdditionalComponentsStyleModel;
19
+ toolbarStyleModel?: ToolbarStyleModel;
20
+ exportFormStyleModel?: ExportFormStyleModel;
21
+ }
@@ -1,6 +1,6 @@
1
- import { CellData, EditModel } from "./editing/types";
1
+ import { EditModel } from "./editing/types";
2
2
  import { PaginationModel } from "./pagination/types";
3
- import { ColSortModel, TableSortModel } from "./sorting/types";
3
+ import { SortModel } from "./sorting/types";
4
4
  import { FilterModel } from "./filtering/types";
5
5
  import { SelectModel } from "./selection/types";
6
6
  import { StyleModel } from "./styling/types";
@@ -23,44 +23,35 @@ export interface RowDef<Data extends ValidRowData = ValidRowData> {
23
23
  id: RowId;
24
24
  data: RowData<Data>;
25
25
  }
26
- export type AugRowDef<Data extends ValidRowData = ValidRowData> = RowDef<Data> & {
27
- origIndex: number;
28
- };
29
- export type PostPaginationRowDef<Data extends ValidRowData = ValidRowData> = AugRowDef<Data> & {
30
- prePaginationIndex: number;
31
- };
32
- export type FormattedRow = {
33
- contents: CellData[];
34
- } & Omit<PostPaginationRowDef, "data">;
35
- export type AugCellData = CellData & {
36
- width?: number;
37
- };
38
- export type AugFormattedRow = Omit<FormattedRow, "contents"> & {
39
- contents: AugCellData[];
40
- };
41
- export type JustifyContentSetting = "start" | "end" | "center" | "between" | "around" | "evenly";
42
- export type Size = "small" | "medium" | "large";
43
- export type DisplayMode = "table" | "block";
44
- export interface GridProps {
26
+ export interface MainComponentSharedProps {
45
27
  rows: RowDef[];
46
28
  cols: ColDef[];
47
29
  pagination?: PaginationModel;
48
- sortModel?: TableSortModel;
30
+ sortModel?: SortModel;
49
31
  filterModel?: FilterModel;
50
32
  selectModel?: SelectModel;
51
33
  editModel?: EditModel;
52
- caption?: string;
53
34
  styleModel?: StyleModel;
54
- displayMode?: DisplayMode;
55
35
  allowExport?: boolean;
56
36
  }
57
- export type BaseGridProps = Omit<GridProps, "cols"> & {
58
- cols: ColDefBase[];
37
+ export type AugRowDef<Data extends ValidRowData = ValidRowData> = RowDef<Data> & {
38
+ origIndex: number;
59
39
  };
60
- export interface ColHeaderCellProps {
61
- label: string;
62
- sortModel?: ColSortModel;
40
+ export type PostPaginationRowDef<Data extends ValidRowData = ValidRowData> = AugRowDef<Data> & {
41
+ prePaginationIndex: number;
42
+ };
43
+ export interface CellData {
44
+ fieldName: string;
45
+ value: ColDataType;
46
+ type: ColDataTypeStrings;
63
47
  ariaColIndex: number;
64
- additionalClasses?: string[] | null;
48
+ formattedValue: string;
49
+ label: string;
65
50
  width?: number;
66
51
  }
52
+ export type FormattedRow = {
53
+ contents: Omit<CellData, "width">[];
54
+ } & Omit<PostPaginationRowDef, "data">;
55
+ export type AugFormattedRow = {
56
+ contents: CellData[];
57
+ } & Omit<PostPaginationRowDef, "data">;
@@ -0,0 +1,5 @@
1
+ export * from "./datetime";
2
+ export { default as getWidthStyle } from "./getWidthStyle";
3
+ export { default as isSubset } from "./isSubset";
4
+ export { default as trueModulo } from "./trueModulo";
5
+ export { default as useControlledHover } from "./useControlledHover";
@@ -0,0 +1,5 @@
1
+ export * from "./datetime";
2
+ export { default as getWidthStyle } from "./getWidthStyle";
3
+ export { default as isSubset } from "./isSubset";
4
+ export { default as trueModulo } from "./trueModulo";
5
+ export { default as useControlledHover } from "./useControlledHover";
@@ -0,0 +1,2 @@
1
+ export declare const GRID_BODY_DATA_TEST_ID = "rbdg-body-rowgroup";
2
+ export declare const GRID_HEADER_DATA_TEST_ID = "rbdg-header-rowgroup";
@@ -0,0 +1,2 @@
1
+ export const GRID_BODY_DATA_TEST_ID = "rbdg-body-rowgroup";
2
+ export const GRID_HEADER_DATA_TEST_ID = "rbdg-header-rowgroup";
package/grid/index.d.ts CHANGED
@@ -1,10 +1,3 @@
1
- export * from "./types";
2
- export * from "./styling/types";
3
- export * from "./editing/types";
4
- export * from "./selection/types";
5
- export * from "./filtering/types";
6
- export * from "./sorting/types";
7
- export * from "./pagination/types";
8
- export * from "./Grid";
9
- export * from "./util/datetime";
10
- export { default } from "./Grid";
1
+ export * from "./main/types";
2
+ export * from "../common";
3
+ export { default } from "./main/Grid";
package/grid/index.js CHANGED
@@ -1,10 +1,3 @@
1
- export * from "./types";
2
- export * from "./styling/types";
3
- export * from "./editing/types";
4
- export * from "./selection/types";
5
- export * from "./filtering/types";
6
- export * from "./sorting/types";
7
- export * from "./pagination/types";
8
- export * from "./Grid";
9
- export * from "./util/datetime";
10
- export { default } from "./Grid";
1
+ export * from "./main/types";
2
+ export * from "../common";
3
+ export { default } from "./main/Grid";
@@ -2,4 +2,3 @@ import { FC } from "react";
2
2
  import { GridProps } from "./types";
3
3
  declare const Grid: FC<GridProps>;
4
4
  export default Grid;
5
- export type { GridProps } from "./types";
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useMemo } from "react";
4
+ import useCombinedPipeline from "../../common/pipeline/useCombinedPipeline";
5
+ import useAugFormattedRows from "../../common/pipeline/useAugFormattedRows";
6
+ import useColNameToWidth from "../../common/pipeline/useColNameToWidth";
7
+ import GridHeader from "./GridHeader";
8
+ import GridBody from "./GridBody";
9
+ import classNames from "classnames";
10
+ import { CSS_PREFIX } from "../../common/constants";
11
+ const Grid = ({ rows, cols, filterModel, sortModel, pagination, selectModel, width, height, variant, stripes, hover, borders, small, divider, borderVariant, headerCellVariant, headerRowVariant, bodyCellVariant, bodyRowVariant, }) => {
12
+ const { displayRows, filteredRows } = useCombinedPipeline({
13
+ rows,
14
+ cols,
15
+ filterModel,
16
+ sortModel,
17
+ pagination,
18
+ selectModel,
19
+ });
20
+ const colNameToWidth = useColNameToWidth(cols);
21
+ const augFormattedRows = useAugFormattedRows(colNameToWidth, displayRows);
22
+ const gridStyle = useMemo(() => {
23
+ function getWidthProperty(width) {
24
+ if (width === "parent") {
25
+ return "100%";
26
+ }
27
+ if (typeof width === "number") {
28
+ return width;
29
+ }
30
+ return "min-content";
31
+ }
32
+ function getHeightProperty(height) {
33
+ if (height === "parent") {
34
+ return "100%";
35
+ }
36
+ if (typeof height === "number") {
37
+ return height;
38
+ }
39
+ return undefined;
40
+ }
41
+ return {
42
+ width: getWidthProperty(width),
43
+ height: getHeightProperty(height),
44
+ };
45
+ }, [width, height]);
46
+ const vertScrollable = height !== undefined && height !== "auto";
47
+ return (_jsxs("div", { style: gridStyle, className: classNames({
48
+ "overflow-x-auto": width !== undefined && width !== "auto",
49
+ "overflow-y-auto": vertScrollable,
50
+ "rbdg-grid-striped": stripes === "rows",
51
+ "rbdg-grid-striped-columns": stripes === "columns",
52
+ "rbdg-grid-hover": !!hover,
53
+ "rbdg-grid-bordered": borders === "full",
54
+ "rbdg-grid-borderless": borders === "none",
55
+ "rbdg-grid-sm": !!small,
56
+ "rbdg-grid-group-divider": !!divider,
57
+ }, "rbdg-grid", variant && `${CSS_PREFIX}-${variant}`, borderVariant && `border-${borderVariant}`), role: "grid", "aria-colcount": cols.length, "aria-rowcount": filteredRows.length + 1, children: [_jsx(GridHeader, { cols: cols, rowVariant: headerRowVariant, cellVariant: headerCellVariant, vertScrollable: vertScrollable }), _jsx(GridBody, { augFormattedRows: augFormattedRows, cols: cols, rowVariant: bodyRowVariant, cellVariant: bodyCellVariant })] }));
58
+ };
59
+ export default Grid;
@@ -0,0 +1,4 @@
1
+ import { FC } from "react";
2
+ import { GridBodyProps } from "./types";
3
+ declare const GridBody: FC<GridBodyProps>;
4
+ export default GridBody;
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import getWidthStyles from "./getWidthStyles";
3
+ import classNames from "classnames";
4
+ import { CSS_PREFIX, DEFAULT_COL_WIDTH } from "../../common/constants";
5
+ import { GRID_BODY_DATA_TEST_ID } from "../constants";
6
+ const GridBody = ({ augFormattedRows, cols, rowVariant, cellVariant, }) => {
7
+ return (_jsx("div", { role: "rowgroup", "data-testid": GRID_BODY_DATA_TEST_ID, children: augFormattedRows.map((row, rowDisplayIndex) => (_jsx("div", { role: "row", "aria-rowindex": row.prePaginationIndex + 2, className: classNames("d-flex", "flex-row", rowVariant &&
8
+ rowVariant(row, rowDisplayIndex) &&
9
+ `${CSS_PREFIX}-${rowVariant(row, rowDisplayIndex)}`), children: row.contents.map(({ formattedValue, width }, index) => (_jsx("div", { style: getWidthStyles(width || DEFAULT_COL_WIDTH), role: "gridcell", className: classNames("rbdg-grid-cell", cellVariant &&
10
+ cellVariant(row.contents[index], row, index, rowDisplayIndex) &&
11
+ `${CSS_PREFIX}-${cellVariant(row.contents[index], row, index, rowDisplayIndex)}`), "aria-colindex": index + 1, children: formattedValue }, cols[index].name))) }, row.id))) }));
12
+ };
13
+ export default GridBody;
@@ -0,0 +1,4 @@
1
+ import { FC } from "react";
2
+ import { GridHeaderProps } from "./types";
3
+ declare const GridHeader: FC<GridHeaderProps>;
4
+ export default GridHeader;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import getWidthStyles from "./getWidthStyles";
3
+ import classNames from "classnames";
4
+ import { CSS_PREFIX, DEFAULT_COL_WIDTH } from "../../common/constants";
5
+ import { GRID_HEADER_DATA_TEST_ID } from "../constants";
6
+ const GridHeader = ({ cols, vertScrollable, rowVariant, cellVariant, }) => {
7
+ return (_jsx("div", { "data-testid": GRID_HEADER_DATA_TEST_ID, role: "rowgroup", className: classNames(vertScrollable ? ["position-sticky", "z-1", "top-0"] : []), children: _jsx("div", { role: "row", className: classNames("d-flex", "flex-row", rowVariant && `${CSS_PREFIX}-${rowVariant}`), "aria-rowindex": 1, children: cols.map((col, index) => (_jsx("div", { className: classNames("rbdg-grid-cell", "fw-bold", cellVariant &&
8
+ cellVariant(col, index) &&
9
+ `${CSS_PREFIX}-${cellVariant(col, index)}`), role: "columnheader", "aria-colindex": index + 1, style: getWidthStyles(col.width || DEFAULT_COL_WIDTH), children: col.label }, col.name))) }) }));
10
+ };
11
+ export default GridHeader;
@@ -0,0 +1,3 @@
1
+ import { CSSProperties } from "react";
2
+ declare const getWidthStyles: (width: number) => CSSProperties;
3
+ export default getWidthStyles;
@@ -0,0 +1,6 @@
1
+ const getWidthStyles = (width) => ({
2
+ width: width,
3
+ maxWidth: width,
4
+ minWidth: width,
5
+ });
6
+ export default getWidthStyles;
@@ -0,0 +1,32 @@
1
+ import { AugFormattedRow, CellData, ColDef, FormattedRow, MainComponentSharedProps } from "../../common";
2
+ export type GridProps = MainComponentSharedProps & {
3
+ height?: GridHeightSetting;
4
+ width?: GridWidthSetting;
5
+ variant?: string;
6
+ stripes?: GridStripeSetting;
7
+ hover?: boolean;
8
+ borders?: GridBorderSetting;
9
+ borderVariant?: string;
10
+ small?: boolean;
11
+ divider?: boolean;
12
+ headerRowVariant?: string;
13
+ headerCellVariant?: (col: ColDef, colIndex: number) => string | null;
14
+ bodyRowVariant?: (row: FormattedRow, displayIndex: number) => string | null;
15
+ bodyCellVariant?: (cell: CellData, row: FormattedRow, colIndex: number, displayIndex: number) => string | null;
16
+ };
17
+ export interface GridHeaderProps {
18
+ cols: GridProps["cols"];
19
+ vertScrollable: boolean;
20
+ rowVariant?: GridProps["headerRowVariant"];
21
+ cellVariant?: GridProps["headerCellVariant"];
22
+ }
23
+ export type GridBodyProps = {
24
+ augFormattedRows: AugFormattedRow[];
25
+ cols: GridProps["cols"];
26
+ rowVariant?: GridProps["bodyRowVariant"];
27
+ cellVariant?: GridProps["bodyCellVariant"];
28
+ };
29
+ export type GridHeightSetting = number | "auto" | "parent";
30
+ export type GridWidthSetting = number | "auto" | "parent";
31
+ export type GridStripeSetting = "rows" | "columns" | "none";
32
+ export type GridBorderSetting = "horizontal" | "full" | "none";
package/grid.css ADDED
@@ -0,0 +1 @@
1
+ .rbdg-grid>div,.rbdg-grid>div>div,.rbdg-grid>div>div>div{border-color:inherit;border-style:solid;border-width:0}.rbdg-grid{--rbdg-grid-color: var(--bs-emphasis-color);--rbdg-grid-bg: var(--bs-body-bg);--rbdg-grid-border-color: var(--bs-border-color);--rbdg-grid-accent-bg: transparent;--rbdg-grid-striped-color: var(--bs-emphasis-color);--rbdg-grid-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);--rbdg-grid-active-color: var(--bs-emphasis-color);--rbdg-grid-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);--rbdg-grid-hover-color: var(--bs-emphasis-color);--rbdg-grid-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);border-color:var(--rbdg-grid-border-color)}.rbdg-grid>div{width:min-content}.rbdg-grid>div>div>div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:.5rem .5rem;color:var(--rbdg-grid-color-state, var(--rbdg-grid-color-type, var(--rbdg-grid-color)));background-color:var(--rbdg-grid-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--rbdg-grid-bg-state, var(--rbdg-grid-bg-type, var(--rbdg-grid-accent-bg)))}.rbdg-grid>div:first-child>div>div{border-bottom-width:var(--rbdg-grid-divider-border-width, var(--rbdg-grid-divider-borderless-width, var(--bs-border-width)));border-bottom-style:var(--rbdg-grid-divider-border-style, inherit);border-bottom-color:var(--rbdg-grid-divider-border-color, inherit)}.rbdg-grid-group-divider{--rbdg-grid-divider-border-width: calc(var(--bs-border-width) * 2);--rbdg-grid-divider-border-style: solid;--rbdg-grid-divider-border-color: currentcolor}.rbdg-grid-sm>div>div>div{padding:.25rem .25rem}.rbdg-grid-bordered{border-width:var(--bs-border-width);border-style:solid}.rbdg-grid-bordered>div>div>div:not(:last-child){border-width:0 var(--bs-border-width) 0 0}.rbdg-grid-bordered>div>div>div:last-child{border-width:0}.rbdg-grid-bordered>div:first-child>div{border-top-width:0;border-right-width:0;border-left-width:0;border-bottom-width:var(--rbdg-grid-divider-border-width, var(--rbdg-grid-divider-borderless-width, var(--bs-border-width)));border-bottom-style:var(--rbdg-grid-divider-border-style, inherit);border-bottom-color:var(--rbdg-grid-divider-border-color, inherit)}.rbdg-grid-bordered>div:last-child>div:not(:last-child){border-width:0 0 var(--bs-border-width) 0}.rbdg-grid-borderless{--rbdg-grid-divider-borderless-width: 0}.rbdg-grid-borderless>div>div>div{border-bottom-width:0}.rbdg-grid-borderless>:not(:first-child){border-top-width:0}.rbdg-grid-striped>div:nth-of-type(2)>div:nth-of-type(odd)>div{--rbdg-grid-color-type: var(--rbdg-grid-striped-color);--rbdg-grid-bg-type: var(--rbdg-grid-striped-bg)}.rbdg-grid-striped-columns>div>div>:nth-child(even){--rbdg-grid-color-type: var(--rbdg-grid-striped-color);--rbdg-grid-bg-type: var(--rbdg-grid-striped-bg)}.rbdg-grid-active{--rbdg-grid-color-state: var(--bs-grid-active-color);--rbdg-grid-bg-state: var(--rbdg-grid-active-bg)}.rbdg-grid-hover>div:nth-of-type(2)>div:hover>div{--rbdg-grid-color-state: var(--rbdg-grid-hover-color);--rbdg-grid-bg-state: var(--rbdg-grid-hover-bg)}.rbdg-grid-primary{--rbdg-grid-color: #000;--rbdg-grid-bg: rgb(206.6, 226, 254.6);--rbdg-grid-border-color: rgb(165.28, 180.8, 203.68);--rbdg-grid-striped-bg: rgb(196.27, 214.7, 241.87);--rbdg-grid-striped-color: #000;--rbdg-grid-active-bg: rgb(185.94, 203.4, 229.14);--rbdg-grid-active-color: #000;--rbdg-grid-hover-bg: rgb(191.105, 209.05, 235.505);--rbdg-grid-hover-color: #000;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}.rbdg-grid-secondary{--rbdg-grid-color: #000;--rbdg-grid-bg: rgb(225.6, 227.4, 229);--rbdg-grid-border-color: rgb(180.48, 181.92, 183.2);--rbdg-grid-striped-bg: rgb(214.32, 216.03, 217.55);--rbdg-grid-striped-color: #000;--rbdg-grid-active-bg: rgb(203.04, 204.66, 206.1);--rbdg-grid-active-color: #000;--rbdg-grid-hover-bg: rgb(208.68, 210.345, 211.825);--rbdg-grid-hover-color: #000;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}.rbdg-grid-success{--rbdg-grid-color: #000;--rbdg-grid-bg: rgb(209, 231, 220.8);--rbdg-grid-border-color: rgb(167.2, 184.8, 176.64);--rbdg-grid-striped-bg: rgb(198.55, 219.45, 209.76);--rbdg-grid-striped-color: #000;--rbdg-grid-active-bg: rgb(188.1, 207.9, 198.72);--rbdg-grid-active-color: #000;--rbdg-grid-hover-bg: rgb(193.325, 213.675, 204.24);--rbdg-grid-hover-color: #000;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}.rbdg-grid-info{--rbdg-grid-color: #000;--rbdg-grid-bg: rgb(206.6, 244.4, 252);--rbdg-grid-border-color: rgb(165.28, 195.52, 201.6);--rbdg-grid-striped-bg: rgb(196.27, 232.18, 239.4);--rbdg-grid-striped-color: #000;--rbdg-grid-active-bg: rgb(185.94, 219.96, 226.8);--rbdg-grid-active-color: #000;--rbdg-grid-hover-bg: rgb(191.105, 226.07, 233.1);--rbdg-grid-hover-color: #000;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}.rbdg-grid-warning{--rbdg-grid-color: #000;--rbdg-grid-bg: rgb(255, 242.6, 205.4);--rbdg-grid-border-color: rgb(204, 194.08, 164.32);--rbdg-grid-striped-bg: rgb(242.25, 230.47, 195.13);--rbdg-grid-striped-color: #000;--rbdg-grid-active-bg: rgb(229.5, 218.34, 184.86);--rbdg-grid-active-color: #000;--rbdg-grid-hover-bg: rgb(235.875, 224.405, 189.995);--rbdg-grid-hover-color: #000;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}.rbdg-grid-danger{--rbdg-grid-color: #000;--rbdg-grid-bg: rgb(248, 214.6, 217.8);--rbdg-grid-border-color: rgb(198.4, 171.68, 174.24);--rbdg-grid-striped-bg: rgb(235.6, 203.87, 206.91);--rbdg-grid-striped-color: #000;--rbdg-grid-active-bg: rgb(223.2, 193.14, 196.02);--rbdg-grid-active-color: #000;--rbdg-grid-hover-bg: rgb(229.4, 198.505, 201.465);--rbdg-grid-hover-color: #000;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}.rbdg-grid-light{--rbdg-grid-color: #000;--rbdg-grid-bg: #f8f9fa;--rbdg-grid-border-color: rgb(198.4, 199.2, 200);--rbdg-grid-striped-bg: rgb(235.6, 236.55, 237.5);--rbdg-grid-striped-color: #000;--rbdg-grid-active-bg: rgb(223.2, 224.1, 225);--rbdg-grid-active-color: #000;--rbdg-grid-hover-bg: rgb(229.4, 230.325, 231.25);--rbdg-grid-hover-color: #000;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}.rbdg-grid-dark{--rbdg-grid-color: #fff;--rbdg-grid-bg: #212529;--rbdg-grid-border-color: rgb(77.4, 80.6, 83.8);--rbdg-grid-striped-bg: rgb(44.1, 47.9, 51.7);--rbdg-grid-striped-color: #fff;--rbdg-grid-active-bg: rgb(55.2, 58.8, 62.4);--rbdg-grid-active-color: #fff;--rbdg-grid-hover-bg: rgb(49.65, 53.35, 57.05);--rbdg-grid-hover-color: #fff;color:var(--rbdg-grid-color);border-color:var(--rbdg-grid-border-color)}